:root{--ground: #F7F5F0;--surface: #FFFFFF;--ink: #1A1A2E;--muted: #4A4A5E;--line: #E6E2D8;--track: #EFEDE6;--action: #1565C0;--action-dark: #0D47A1;--done: #2E7D32;--highlight: #FFD23F;--ok-bg: #E3F1E4;--ok-fg: #1B5E20;--warn-bg: #FFF4D6;--warn-fg: #5C3D00;--late-bg: #FBE3E1;--late-fg: #9B1C12;--r-card: 20px;--r-control: 12px;--display: "Secular One", system-ui, sans-serif;--body: "Assistant", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5}body{-webkit-font-smoothing:antialiased}a{color:var(--action)}a:hover{color:var(--action-dark)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--action);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{max-width:1320px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}.brand img{height:44px;width:auto}.brand .sep{width:1px;height:34px;background:var(--line)}.brand .name{font-family:var(--display);font-weight:400;font-size:26px;line-height:1}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{text-decoration:none;color:var(--ink);padding:0 16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:600;font-size:15px}.nav a:hover{background:var(--track);color:var(--ink)}.nav a[aria-current=page]{background:var(--ink);color:#fff;font-weight:600}.userbox{margin-inline-start:auto;display:flex;align-items:center;gap:10px}.userbox .who{text-align:left;font-size:13px;line-height:1.3}.userbox .who .role{color:var(--muted)}.avatar{width:44px;height:44px;border-radius:50%;background:var(--highlight);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;overflow:hidden;border:0;padding:0}.avatar img{width:100%;height:100%;object-fit:cover}.page{max-width:1320px;margin:0 auto;padding:32px 24px 64px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:15px;color:var(--muted);font-weight:500}h1.display{margin:4px 0 6px;font-family:var(--display);font-weight:400;font-size:clamp(34px,5vw,52px);line-height:1.1}h2.section{margin:0 0 14px;font-size:21px;font-weight:700}.lead{margin:0;font-size:18px}.muted{color:var(--muted)}.cols{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}.cols>.main{flex:999 1 620px;min-width:0}.cols>.side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:20px}.side select.input{width:100%;min-width:0}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.era-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:#fff;flex-shrink:0}.era-icon img{width:40px;height:40px;display:block}.bottomnav{display:none}@media(max-width:760px){.nav{display:none}.topbar-inner{padding:8px 16px;flex-wrap:nowrap;gap:10px}.brand{gap:10px;min-width:0}.brand .name{font-size:22px;white-space:nowrap}.brand img{height:32px}.userbox .who{display:none}.page{padding:20px 16px 96px}.bottomnav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;bottom:0;inset-inline:0;background:var(--surface);border-top:1px solid var(--line);padding:6px 6px calc(10px + env(safe-area-inset-bottom));z-index:30}.bottomnav a{text-decoration:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:13px;white-space:nowrap;min-height:48px;justify-content:center}.bottomnav a[aria-current=page]{color:var(--ink);font-weight:700}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);font-weight:600;font-size:15px;text-decoration:none}.btn:hover{background:var(--track);color:var(--ink)}.btn.primary{background:var(--action);border-color:var(--action);color:#fff}.btn.primary:hover{background:var(--action-dark);border-color:var(--action-dark);color:#fff}.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}.btn.small{min-height:44px;padding:0 14px;font-size:14px}.btn.ghost{border-color:var(--line)}.btn[disabled]{opacity:.5;cursor:not-allowed}.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}.chip.outline{background:var(--surface);border:1px solid currentColor;padding:3px 10px}.chip.ok{background:var(--ok-bg);color:var(--ok-fg)}.chip.warn{background:var(--warn-bg);color:var(--warn-fg)}.chip.late{background:var(--late-bg);color:var(--late-fg)}.chip.neutral{background:var(--track);color:#3f4656}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card)}.card.pad{padding:22px}.card.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.class-card{overflow:hidden;display:flex;flex-direction:column}.class-card .band{padding:20px 22px;padding-inline-end:66px;position:relative;overflow:hidden;min-height:112px}.class-card .band .era-icon{position:absolute;left:16px;top:16px}.class-card .band .chips{display:flex;gap:8px;flex-wrap:wrap;position:relative}.class-card .band .cname{font-family:var(--display);font-weight:400;font-size:40px;line-height:1.1;margin-top:10px;position:relative}.class-card .body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:14px;flex:1}.class-card .label{font-size:13px;color:var(--muted)}.class-card .topic{font-size:18px;font-weight:600}.class-card .row{display:flex;align-items:center;gap:8px;font-size:14px}.class-card .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.class-card .actions .btn{flex:1}.class-card .actions>*{flex:1;min-height:44px;border-radius:var(--r-control)}.bar{height:8px;background:var(--track);border-radius:99px;position:relative}.bar>span{display:block;height:8px;border-radius:99px}.datebox{width:56px;flex-shrink:0;text-align:center;background:#fff;color:var(--ink);border-radius:12px;padding:6px 0}.datebox.hl{background:var(--highlight)}.datebox .d{font-family:var(--display);font-weight:400;font-size:24px;line-height:1}.datebox .m{font-size:13px;font-weight:600}.upcoming{display:flex;flex-direction:column;gap:14px}.upcoming .ev{display:flex;gap:14px;align-items:center}.upcoming .ev .t{font-weight:600}.upcoming .ev .s{font-size:14px;color:#c9d1e6}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;min-width:640px}table.data th{padding:10px 14px;text-align:right;font-size:13px;font-weight:600;color:var(--muted);background:#f7f8f4}table.data td{padding:11px 14px;border-top:1px solid var(--track);vertical-align:middle}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600;font-size:14px}.input,select.input{min-height:44px;border:1.5px solid #C9CDC0;border-radius:var(--r-control);padding:0 12px;background:#fff}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.tabs button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:500}.tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.notice{border-radius:14px;padding:12px 16px;background:var(--warn-bg);color:var(--warn-fg)}.notice.info{background:#e0e9f8;color:#1f3a6e}.notice.ok{background:var(--ok-bg);color:var(--ok-fg)}.notice.err{background:var(--late-bg);color:var(--late-fg)}.course-tile{text-decoration:none;color:var(--ink);border-radius:18px;padding:18px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:150px}.course-tile .era-icon{position:absolute;top:12px;left:12px;width:64px;height:64px}.course-tile .era-icon img{width:48px;height:48px}.course-tile .g{font-size:13px;font-weight:600;position:relative}.course-tile .t{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.15;position:relative}.course-tile .full{font-size:13px;line-height:1.35;margin-top:6px;position:relative;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-tile .m{font-size:13px;color:var(--muted);margin-top:6px;position:relative}.ctx-band{border-radius:20px;padding:18px 24px;padding-inline-end:66px;position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin-bottom:24px}.ctx-band .era-icon{position:absolute;left:16px;top:16px}.ctx-band h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(30px,5vw,44px);line-height:1.1;position:relative}details.topic{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:10px}details.topic>summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;gap:12px;font-weight:600}details.topic>summary::-webkit-details-marker{display:none}details.topic>summary .hrs{margin-inline-start:auto}details.topic[open]>summary{border-bottom:1px solid var(--track)}.item{padding:16px 18px;border-top:1px solid var(--track);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr);gap:18px}.item:first-of-type{border-top:0}.item h4{margin:0 0 6px;font-size:15px}.item ul{margin:0;padding-inline-start:18px;font-size:14px}.item .colhead{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:4px}.skill-tag{display:inline-block;font-size:13px;font-weight:600;padding:2px 8px;border-radius:999px;margin:6px 0 4px 4px}@media(max-width:900px){.item{grid-template-columns:1fr}}.ashnab p{margin:6px 0}.ashnab .label{font-weight:700;margin-top:14px}.ashnab .point{padding-inline-start:16px;position:relative}.ashnab .point:before{content:"•";position:absolute;inset-inline-start:2px}.ashnab .reading{font-size:13px;color:var(--muted)}.unit-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--track)}.unit-row .no{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.center-box{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{max-width:440px;width:100%;text-align:center;padding:36px 28px}.login-card img{height:64px}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid var(--track);border-top-color:var(--action);animation:spin .9s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.light{width:12px;height:12px;border-radius:50%;display:inline-block;flex-shrink:0}.light.green{background:#2e7d32}.light.yellow{background:#f2b705}.light.red{background:#c62828}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}@media(max-width:1080px){.plan-layout{grid-template-columns:1fr}}.plan-side{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}@media(max-width:1080px){.plan-side{position:static;max-height:none}}.week{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:10px 14px;border-top:1px solid var(--track)}.week:first-child{border-top:none}.week.now{background:#fff8de}.week.past{opacity:.78}.week.drop{outline:2px dashed var(--action);outline-offset:-2px;background:#eef4fd}.week .wdate{font-weight:700;font-size:14px}.week .wdate small{display:block;font-weight:500;color:var(--muted)}.week .wbody{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:30px}.slotdots{display:inline-flex;flex-wrap:wrap;margin-inline-end:4px}.slotdot{width:44px;height:44px;border:0;background:none;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.slotdot:before{content:"";width:22px;height:22px;border-radius:5px;border:1.5px solid #B9BDB0;background:#fff}@media(min-width:901px){.slotdots{gap:2px}.slotdot{width:28px;height:28px}}.slotdot.done:before{background:var(--done);border-color:var(--done)}.slotdot.partial:before{background:linear-gradient(135deg,var(--done) 50%,#fff 50%);border-color:var(--done)}.slotdot.cancelled:before{background:#f3d3cf;border-color:#c62828}.slotdot.free:before{border-style:dashed}.pchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;font-size:13px;font-weight:600;padding:4px 10px;border-radius:10px;border:1px solid transparent;cursor:grab}.pchip .amt{font-weight:500;opacity:.75}.pchip span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}@media(max-width:760px){.pchip span.t{white-space:normal;overflow:visible;max-width:none;overflow-wrap:anywhere}}.offtag{font-size:13px;padding:3px 8px;border-radius:8px;background:var(--track);color:#3f4656}.examtag{font-size:13px;font-weight:700;padding:4px 10px;border-radius:10px;background:var(--late-bg);color:var(--late-fg);border:none}.evtag{font-size:13px;padding:3px 8px;border-radius:8px;background:#e0e9f8;color:#1f3a6e}.item-row{display:grid;grid-template-columns:10px minmax(0,1fr) 58px auto;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--track)}.item-row:first-child{border-top:none}.item-row .dot{width:10px;height:10px;border-radius:3px}.item-row .ttl{font-size:14px;font-weight:600;line-height:1.3}.item-row .ttl small{display:block;color:var(--muted);font-weight:500;font-size:13px}.item-row input{width:64px;min-height:44px;text-align:center;padding:0 4px}.item-row .acts{display:flex;gap:2px}.iconbtn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);padding:0}.iconbtn:hover{background:var(--track);color:var(--ink)}.iconbtn[disabled]{opacity:.3}.daypick{display:flex;gap:8px;flex-wrap:wrap}.daypick .d{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);border-radius:12px;padding:6px 8px;min-width:54px;background:#fff}.daypick .d b{font-size:14px}.daypick .d .ctl{display:flex;align-items:center;gap:4px}.markbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.markbar .btn{min-height:44px;padding:0 12px;font-size:14px}.btn.okb{background:var(--done);border-color:var(--done);color:#fff}.statbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.statbox>div{background:#f7f8f4;border-radius:14px;padding:10px 14px}.statbox .k{font-size:13px;color:var(--muted);font-weight:600}.statbox .v{font-size:22px;font-weight:700;line-height:1.2}.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--done)}.dialog-back{position:fixed;inset:0;background:#16213e73;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:#fff;border-radius:20px;padding:20px;width:min(560px,100%);max-height:86vh;overflow:auto}.checklist label{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--track);font-size:14px}.checklist label:first-child{border-top:none}.checklist input{margin-top:3px;width:18px;height:18px;flex-shrink:0}.chapter-h{font-weight:700;margin:14px 0 4px;font-size:15px}.tpl-layout{grid-template-columns:320px minmax(0,1fr)}@media(max-width:1080px){.tpl-layout{grid-template-columns:1fr}}.topic-pick{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:6px 10px;background:#fff}.topic-pick .tp-course{font-weight:700;margin:10px 0 4px}.topic-pick .tp-group{font-size:13px;font-weight:700;color:var(--muted);margin:10px 4px 2px}.topic-pick .tp-item{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:10px;cursor:pointer;font-size:15px;line-height:1.4}.topic-pick .tp-item:hover{background:#f7f8f4}.topic-pick .tp-item.on{background:#e0e9f8;font-weight:600}.topic-pick .tp-item input{margin-top:4px;flex-shrink:0}.tabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-weight:500}.tabs a[aria-current=page]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}.tabs button[aria-selected=true] .muted-in{color:#c9d1e6}.muted-in{color:var(--muted);font-weight:400}.form-col{display:flex;flex-direction:column;gap:14px}.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.form-row>.field{flex:1 1 160px;min-width:0}textarea.input,.input.ta{padding:10px 12px;min-height:0;line-height:1.5;resize:vertical;width:100%}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-weight:600;font-size:14px;margin-bottom:6px;padding:0}.chips-pick{display:flex;flex-wrap:wrap;gap:6px 8px}.chips-pick legend{width:100%}.chips-pick label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:14px;cursor:pointer;background:#fff}.chips-pick label:has(input:checked){background:#e0e9f8;border-color:#9db6e3}.checklist.plain label{border-top:1px solid var(--track)}.linkbtn{background:none;border:0;padding:0;color:var(--action);text-decoration:underline;font:inherit;cursor:pointer}.lib-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.lib-filters>.field{flex:1 1 140px;min-width:0}.lib-check{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px}.lib-check input{width:18px;height:18px}.lib-list{display:flex;flex-direction:column;gap:10px}.lib-item{display:flex;gap:16px;padding:14px 18px;border-inline-start:6px solid var(--line);flex-wrap:wrap}.lib-item.is-hidden{opacity:.6}.lib-main{flex:1 1 380px;min-width:0}.lib-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}.lib-title{font-size:17px;margin:2px 0;line-height:1.35;overflow-wrap:anywhere}.lib-title a{color:var(--ink);text-decoration-color:var(--line)}.lib-title a:hover{color:var(--action)}.lib-meta{font-size:13px}.lib-skills{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.lib-skills .chip{font-size:13px;font-weight:500}.lib-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.pick-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;position:sticky;top:72px;z-index:5}.q-list{display:flex;flex-direction:column;gap:12px}.q-card{padding:16px 18px;display:flex;flex-direction:column;gap:10px}.q-card.picked{border-color:var(--action);box-shadow:0 0 0 2px #c9daf5}.q-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-focus{font-size:13px;margin-inline-start:auto}.q-pick input{width:20px;height:20px}.q-source{background:#f7f8f4;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:15px;white-space:pre-wrap}.q-text{white-space:pre-wrap;font-size:16px}.q-rubric summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--muted)}.q-rubric>div{white-space:pre-wrap;font-size:14px;padding-top:6px}.q-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}.q-actions{display:inline-flex;gap:6px;flex-wrap:wrap;margin-inline-start:auto}table.data.past-table{min-width:560px}table.data.past-table td{vertical-align:top;font-size:15px}.exam-qs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.gen-styles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 12px}.gen-style{display:flex;align-items:center;gap:8px;font-size:14px}.gen-style .input{width:64px;min-height:44px;padding:0 8px;text-align:center}.exam-sec{border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:10px}.sticky-save{position:sticky;bottom:0;background:var(--ground);padding:12px 0;display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.pool{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}.pool-item{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--track);padding-top:8px}.pool-text{font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.wiz-steps{list-style:none;padding:0;margin:0 0 16px;display:flex;gap:6px;flex-wrap:wrap}.wiz-steps button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:500}.wiz-steps .n{width:26px;height:26px;border-radius:50%;background:var(--track);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.wiz-steps li[aria-current=step] button{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}.wiz-steps li[aria-current=step] .n{background:var(--highlight);color:var(--ink)}.wiz-steps li.done .n{background:var(--ok-bg);color:var(--ok-fg)}.wiz-body{min-height:240px}.wiz-grade{font-size:17px;margin:18px 0 8px}.wiz-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.wiz-summary{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:6px}.course-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.course-pick .chip{font-weight:500}.chip-x{border:0;background:none;padding:0 2px;font-weight:700;color:var(--muted);cursor:pointer}.chip-x:hover{color:var(--ink)}.small-select{min-height:44px;font-size:13px;padding:0 8px}.arch-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--track)}@media(max-width:760px){.lib-item{padding:12px 14px}.pick-bar{top:56px}}.form-col>*,.wiz-body>*{min-width:0}.table-wrap{max-width:100%;position:relative}.tabs button{white-space:normal;text-align:start;max-width:100%}.field{min-width:0}.input,select.input{max-width:100%}fieldset,.topic-pick{min-width:0;max-width:100%}.legal-links{font-size:14px;text-align:center;color:var(--muted);margin-top:16px}.legal-links a{color:inherit}.site-footer{padding:8px 16px 32px}.legal-page{max-width:760px}.legal-body h2{font-size:20px;margin:24px 0 8px}.legal-body p,.legal-body li{line-height:1.7}@media(max-width:760px){.site-footer{padding-bottom:96px}}.btn.white{background:#fff;border-color:#fff;color:var(--ink)}.daystrip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-bottom:18px}.daybtn{min-height:64px;border-radius:var(--r-control);border:1.5px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:4px 0}.daybtn .dn{font-size:13px;font-weight:600;color:var(--muted)}.daybtn .dd{font-family:var(--display);font-size:20px;line-height:1.1}.daybtn .dots{display:flex;gap:3px;height:8px}.daybtn .dots i{width:6px;height:6px;border-radius:50%;background:var(--ink)}.daybtn[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.daybtn[aria-pressed=true] .dn{color:#fff}.daybtn[aria-pressed=true] .dots i{background:var(--highlight)}.daybtn[aria-current=date]:not([aria-pressed=true]){border-color:var(--ink)}.remind{background:var(--highlight);color:var(--ink);border-radius:var(--r-card);padding:16px 20px;margin-bottom:22px}.remind-row{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}.remind-n{margin:0;font-family:var(--display);font-weight:400;font-size:26px;line-height:1.15}.remind-actions{display:flex;gap:10px;flex-wrap:wrap}.remind-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.remind-list li{background:#fff;border-radius:14px;padding:10px 14px;display:flex;flex-direction:column;gap:8px}.today-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.lesson-card{color:#fff;border-radius:var(--r-card);padding:16px 18px;display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:start}.lesson-card .btn{grid-column:1 / -1;width:100%;justify-self:stretch;align-self:start;display:flex;align-items:center;justify-content:center}.lc-class{font-family:var(--display);font-size:24px;line-height:1.15}.lc-part{font-family:var(--body);font-size:14px;font-weight:600}.lc-topic{font-size:18px;font-weight:700;line-height:1.3;margin-top:2px}.lc-state{font-size:14px;margin-top:4px;font-weight:600;opacity:.95}.cname-s{font-family:var(--display);font-size:22px;line-height:1.15}.myclass{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--ink)}.myclass:hover{color:var(--ink);border-color:var(--ink)}.class-head{color:#fff;border-radius:var(--r-card);padding:16px 20px 18px;margin-bottom:18px}.class-head a.ch-back{color:#fff;text-decoration:none;font-weight:600;font-size:14px;display:inline-block;padding:8px 0}.ch-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ch-name{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(30px,5vw,44px);line-height:1.1}.ch-sub{font-size:14px;font-weight:600;margin-top:2px}.ch-summary{margin:14px 0 0;font-size:16px;font-weight:700}.yearbar{position:relative;margin-top:30px;padding-bottom:22px}.yb-track{height:12px;border-radius:99px;background:#ffffff4d;overflow:hidden}.yb-fill{display:block;height:100%;background:#fff;border-radius:99px}.yb-mark{position:absolute;top:-8px;transform:translate(50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}html[dir=ltr] .yb-mark{transform:translate(-50%)}.yb-mark i{width:4px;height:28px;border-radius:2px;background:var(--highlight)}.yb-mark em{font-style:normal;font-size:13px;font-weight:700;white-space:nowrap}.yb-mark.today em{position:absolute;top:-20px;color:#fff}.yb-mark.exam i{background:#fff}.yb-mark.exam em{position:absolute;top:30px}.yb-months{position:absolute;inset-inline:0;bottom:0;display:flex;justify-content:space-between;font-size:13px;opacity:.9}.slotrow{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 16px;border-top:1px solid var(--track)}.card>.slotrow:first-child{border-top:none}.sr-date{font-weight:700;font-size:14px}.sr-topic{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.sr-side{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}@media(max-width:560px){.slotrow{grid-template-columns:1fr auto}.sr-date{grid-column:1 / -1}}.btn.act{min-height:44px;padding:0 14px;font-size:14px}.btn.hl{background:var(--highlight);border-color:var(--highlight);color:var(--ink)}.chip.big{min-height:32px;font-size:14px;padding:4px 12px;border:0}button.chip.big{min-height:44px}.chip.hlchip{background:var(--highlight);color:var(--ink)}details.month{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:10px;overflow:hidden}details.month>summary{list-style:none;cursor:pointer;min-height:48px;padding:0 18px;display:flex;align-items:center;font-weight:700;font-size:17px}details.month>summary::-webkit-details-marker{display:none}details.month>summary:after{content:"+";margin-inline-start:auto;font-size:22px}details.month[open]>summary:after{content:"−"}.wk{padding:8px 0;border-top:1px solid var(--track)}.wk.now{background:#fff8de}.wk.drop{outline:2px dashed var(--action);outline-offset:-2px;background:#eef4fd}.wk-head{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:4px 16px}.exrow{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--track);flex-wrap:wrap}.savebar{position:fixed;z-index:35;inset-inline:12px;bottom:12px;max-width:640px;margin-inline:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:0 8px 30px #1a1a2e33;padding:12px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between}@media(max-width:760px){.savebar{bottom:84px}}.team-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:26px}.ts{border-radius:var(--r-card);padding:14px 16px;display:flex;flex-direction:column;gap:2px}.ts .n{font-family:var(--display);font-size:40px;line-height:1.1}.ts .l{font-size:14px;font-weight:700}.ts.risk{background:var(--late-bg);color:var(--late-fg)}.ts.stale{background:var(--highlight);color:var(--ink)}.ts.ok{background:var(--ok-bg);color:var(--ok-fg)}.team-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}.team-card:hover{color:var(--ink);border-color:var(--ink)}.team-card.risk{border-color:var(--late-fg)}.team-card.stale{background:var(--warn-bg);border-color:var(--highlight)}.tc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}details.month>summary>.era-icon{width:36px;height:36px;background:transparent}.create-usage{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-weight:600}.create-usage .n{font-family:var(--display);font-size:22px}.create-tool{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);min-height:150px}.create-tool:hover{color:var(--ink);border-color:var(--ink)}.ct-icon{width:52px;height:52px;border-radius:14px;background:var(--ink);display:inline-flex;align-items:center;justify-content:center}.ct-title{font-family:var(--display);font-size:22px;line-height:1.2}.recent-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 16px;border-top:1px solid var(--track);text-decoration:none;color:var(--ink)}.card>.recent-row:first-child{border-top:none}.recent-row:hover{background:var(--track);color:var(--ink)}.lib-search{width:100%;min-height:52px;font-size:17px;border-radius:999px;padding:0 20px}.lib-chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.fchip{min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:6px}.fchip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.fchip.more{margin-inline-start:auto}.linkbtn{background:none;border:0;padding:8px 4px;color:var(--action);font-weight:600;text-decoration:underline;min-height:44px}.lib-group{margin-bottom:22px}.lib-group-h{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 8px}.lib-group-h .era-icon{width:32px;height:32px;background:transparent}.lib-item{display:flex;gap:14px;align-items:flex-start;padding:12px 16px;border-inline-start:0;flex-wrap:nowrap;position:relative}.lib-type{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lib-star{width:32px;height:32px;border-radius:50%;background:var(--highlight);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.item-menu{position:relative;flex-shrink:0}.menu-btn{width:44px;height:44px}.menu-pop{position:absolute;inset-inline-end:0;top:46px;z-index:40;padding:6px;min-width:170px;display:flex;flex-direction:column}.menu-item{min-height:44px;padding:0 14px;border:0;background:none;text-align:start;font-weight:600;font-size:15px;border-radius:10px}.menu-item:hover{background:var(--track)}.menu-item.sure{background:var(--ink);color:#fff}.legal-links a{display:inline-flex;align-items:center;min-height:44px;padding:0 8px}.brand{min-height:44px}.class-head a.ch-back{min-height:44px;display:inline-flex;align-items:center}.lib-title a{display:inline-flex;align-items:center;min-height:44px}.setup-card{background:var(--highlight);color:var(--ink);border-radius:var(--r-card);padding:16px 20px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}.ts.close{background:#ffe0b2;color:#7a3e00}.team-card.close{background:#fff1dc;border-color:#e8a04a}@media(max-width:560px){.team-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
