/* 英途 · neutral black and gold, clear glass without backdrop blur. */
:root{--bg:#000;--bg2:#090909;--paper:rgba(20,20,20,.54);--paper-solid:#141414;--paper2:#1d1d1d;--ink:#f5f5f5;--ink2:#d0d0d0;--muted:#a0a0a0;--line:rgba(255,255,255,.12);--line2:rgba(221,183,116,.32);--brand:#d9b574;--brand-2:#c8a25f;--brand-hi:#f1d9a4;--brand-soft:rgba(217,181,116,.09);--brand-ink:#e6c78e;--gold:#d9b574;--gold-hi:#edd29b;--gold-deep:#ad894a;--ok:#dfc18a;--ok-soft:rgba(217,181,116,.11);--warn:#e5c98e;--warn-soft:rgba(217,181,116,.12);--bad:#d7c9b0;--bad-soft:rgba(200,185,157,.09);--info:#c0c0c0;--info-soft:rgba(255,255,255,.065);--grey:#999;--grey-soft:rgba(255,255,255,.065);--glass:rgba(18,18,18,.68);--glass-border:rgba(255,255,255,.19);--control:rgba(255,255,255,.055);--veil:rgba(0,0,0,.70);--accent:#d9b574;--glass-base:rgba(12,12,12,.50);--sheet-base:rgba(12,12,12,.93);--shine:rgba(255,255,255,.095);--rim:rgba(255,255,255,.14);--on-gold:#080808;color-scheme:dark;--r:25px;--r-sm:15px;--ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.18,.9,.25,1.15);--spring-b:cubic-bezier(.18,1.35,.3,1);--spring-soft:cubic-bezier(.2,.9,.3,1.08);--shadow:inset 0 1px 0 rgba(255,255,255,.075),0 12px 32px -22px rgba(0,0,0,.6);--shadow-lg:0 24px 100px -25px rgba(0,0,0,.75);--material-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(255,255,255,.035),0 8px 32px -12px rgba(0,0,0,.5);}
:root[data-theme=light]{--bg:#f5f5f5;--bg2:#eee;--paper:rgba(255,255,255,.55);--paper-solid:#fafafa;--paper2:#ededed;--ink:#202020;--ink2:#505050;--muted:#707070;--line:rgba(0,0,0,.10);--line2:rgba(151,112,51,.3);--brand:#876127;--brand-2:#75521e;--brand-hi:#a37732;--brand-soft:rgba(166,128,63,.09);--brand-ink:#7d581f;--gold:#876127;--gold-hi:#97702f;--gold-deep:#70501e;--ok:#816028;--ok-soft:rgba(157,123,63,.1);--warn:#816028;--warn-soft:rgba(157,123,63,.12);--bad:#5c4a30;--bad-soft:rgba(93,77,50,.08);--info:#666;--info-soft:rgba(0,0,0,.05);--grey:#707070;--grey-soft:rgba(0,0,0,.05);--glass:rgba(255,255,255,.62);--glass-border:rgba(255,255,255,.75);--control:rgba(0,0,0,.045);--veil:rgba(0,0,0,.45);--accent:#99753b;--glass-base:rgba(255,255,255,.42);--sheet-base:rgba(246,246,246,.95);--shine:rgba(255,255,255,.75);--rim:rgba(0,0,0,.1);--on-gold:#fff;color-scheme:light;}
@media(prefers-color-scheme:light){:root[data-theme=system]{--bg:#f5f5f5;--bg2:#eee;--paper:rgba(255,255,255,.55);--paper-solid:#fafafa;--paper2:#ededed;--ink:#202020;--ink2:#505050;--muted:#707070;--line:rgba(0,0,0,.10);--line2:rgba(151,112,51,.3);--brand:#876127;--brand-2:#75521e;--brand-hi:#a37732;--brand-soft:rgba(166,128,63,.09);--brand-ink:#7d581f;--gold:#876127;--gold-hi:#97702f;--gold-deep:#70501e;--ok:#816028;--ok-soft:rgba(157,123,63,.1);--warn:#816028;--warn-soft:rgba(157,123,63,.12);--bad:#5c4a30;--bad-soft:rgba(93,77,50,.08);--info:#666;--info-soft:rgba(0,0,0,.05);--grey:#707070;--grey-soft:rgba(0,0,0,.05);--glass:rgba(255,255,255,.62);--glass-border:rgba(255,255,255,.75);--control:rgba(0,0,0,.045);--veil:rgba(0,0,0,.45);--accent:#99753b;--glass-base:rgba(255,255,255,.42);--sheet-base:rgba(246,246,246,.95);--shine:rgba(255,255,255,.75);--rim:rgba(0,0,0,.1);--on-gold:#fff;color-scheme:light;}}
html{scroll-padding-top:108px}body{background:var(--bg);background-attachment:fixed;color:var(--ink);font-size:15px;line-height:1.6;padding-bottom:0;min-height:100dvh;letter-spacing:-.012em}
body::after{display:none}body.has-modal{overflow:hidden;overscroll-behavior:none}a{color:var(--brand-ink)}button,input,select,textarea{touch-action:manipulation}button{font-family:inherit}button:disabled{cursor:default}::selection{background:var(--brand-soft);color:var(--ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:4px} [hidden]{display:none!important}.ui-icon{display:block;width:22px;height:22px;flex-shrink:0}
#view>*,.cols>*,.stats>*,.sday-col,.bar>i,.ebar i,.gh-barwrap i,.bcol .b{animation:none}
#view{min-height:40vh}main{max-width:1240px;padding:6px 32px 64px;margin:0 auto}main>*,section{min-width:0}
#topbar{max-width:1440px;margin:0 auto;position:sticky;top:0;z-index:45;border:0;padding:calc(20px + env(safe-area-inset-top)) 36px 14px;min-height:80px;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .25s}
body.scrolled #topbar{background:var(--glass);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 var(--line)}
.brand{gap:11px;color:var(--ink)}.brand-logo{width:35px;height:35px}.brand-logo svg{filter:none}.brand-name{display:block;font-size:20px;letter-spacing:.06em;font-weight:760}.brand-en{display:block;font-size:7px;letter-spacing:.2em;margin-top:5px}.role-badge{font-size:12px;color:var(--muted);margin-left:10px;padding:3px 0 3px 18px;border-left:1px solid var(--line)}.top-actions{gap:8px}
.toolbar-button,.sheet-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;border:1px solid var(--glass-border);background:var(--glass);color:var(--ink);box-shadow:var(--material-shadow);backdrop-filter:none;-webkit-backdrop-filter:none;cursor:pointer;transition:transform .25s var(--spring-b),background .2s}
.toolbar-button:active,.sheet-close:active{transform:scale(.94)}.toolbar-button:hover{background:var(--paper)}
/* Navigation must sit above the transparent sticky header so pointer clicks reach it. */
#tabs{position:relative;z-index:50;display:flex;width:max-content;max-width:calc(100% - 48px);gap:4px;padding:5px;margin:2px auto 0;background:var(--glass);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--material-shadow);backdrop-filter:none;-webkit-backdrop-filter:none}
#tabs:empty{display:none}.tab{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 24px;font-size:14px;line-height:1.2;border:0;color:var(--ink2);background:transparent;box-shadow:none;animation:none;border-radius:999px;transition:background .2s,color .2s,transform .25s var(--spring-b)}.tab .ui-icon{width:20px;height:20px}.tab.active{background:var(--paper-solid);color:var(--brand-ink);box-shadow:0 2px 9px rgba(0,0,0,.07),inset 0 1px 0 var(--glass-border);animation:none}.tab:hover{background:var(--control);color:var(--ink)}.tab.active:hover{background:var(--paper-solid)}.tab:active{transform:scale(.97)}
.page-heading{max-width:1240px;margin:36px auto 22px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.page-eyebrow{font-size:11px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.page-eyebrow span{padding:0 6px}.page-heading h1{font-size:36px;line-height:1.25;letter-spacing:-.045em;margin:8px 0 8px;font-weight:750}.page-heading p{font-size:14px;color:var(--muted);margin:0}.heading-mark{height:68px;width:68px;background:var(--brand-soft);border-radius:23px;display:grid;place-items:center;color:var(--brand-ink)}.heading-mark .ui-icon{width:30px;height:30px}
/* Quiet content surfaces. */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);backdrop-filter:none;-webkit-backdrop-filter:none;transition:border-color .2s,transform .2s}.card:hover{box-shadow:var(--shadow)}.grid{gap:16px}.cols{grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr))}.section-title{font-size:16px;letter-spacing:-.02em;text-transform:none;color:var(--ink);font-weight:700;margin:28px 2px 13px}.section-title:first-child{margin-top:8px}.section-count{font-size:12px;color:var(--muted);font-weight:500;margin-left:8px}.sec-hint{font-size:12px;letter-spacing:0;color:var(--muted)}
.stats{gap:16px;grid-template-columns:2fr 1fr 1fr}.cmd-hero{grid-column:auto;gap:22px}.stat{padding:22px 24px}.stat .k{font-size:13px;letter-spacing:0;font-weight:550}.stat .v{font-size:38px;line-height:1.2;margin:10px 0 6px;font-weight:700;color:var(--ink);text-shadow:none}.stat .v small{font-size:12px;margin-left:7px;font-weight:500}.stat .s{font-size:12px;color:var(--muted)}.stat .v.warnv,.stat .v.badv,.stat .v.okv{text-shadow:none}.cmd-hero .gring{width:84px;height:84px}.cmd-hero .gring svg{width:84px;height:84px}.cmd-hero .gring .gv b{font-size:20px}
.gring .bg{stroke:var(--control)}.gring .fg{stroke:var(--accent);stroke-width:6}.gring .fg.c2{stroke:var(--brand)}.gring .gv span{font-size:10px}.bar{height:5px;background:var(--control)}.bar>i{box-shadow:none;background:var(--accent)}.bar.grey>i{background:var(--brand)}.bar.amber>i{background:var(--warn)}.bcol.has .b,.gh-barwrap i{box-shadow:none;background:var(--accent)}.hbar{fill:var(--accent)}.trend .grid-l{stroke:var(--line)}.trend .dot.last{filter:none}.dot,.hcell{background:var(--control)}.dot.done{box-shadow:none}.dot.zero{background:var(--line)}.hcell.h3{background:var(--accent);box-shadow:none}.hcell.h2{background:color-mix(in srgb,var(--accent) 60%,var(--paper))}.hcell.h1{background:color-mix(in srgb,var(--accent) 26%,var(--paper))}
.scard{padding:20px;overflow:hidden}.scard:hover{transform:none;border-color:var(--line2)}.scard .hd{align-items:center;gap:10px}.scard .nm{font-size:16px;font-weight:650}.scard .mx{font-size:11px;font-weight:500}.scard .mini{margin:15px 0 0}.student-avatar{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border-radius:13px;background:var(--brand-soft);color:var(--brand-ink);font-size:15px;font-weight:650;vertical-align:middle}.scard:nth-child(3n+2) .student-avatar{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--paper))}.scard:nth-child(3n+3) .student-avatar{color:var(--info);background:var(--info-soft)}.scard-exp{width:36px;height:36px;border:0;border-radius:50%;background:var(--control);margin-left:2px;color:var(--muted)}.trows.open{margin-top:14px}.trows.open .trow{animation:none}.trow{padding:12px 4px;min-height:48px;border-radius:0;border-bottom:1px solid var(--line);gap:6px}.trow:last-child{border-bottom:0}.trow:hover{transform:none;background:var(--control)}.trow .tt{font-size:13px}.trow .tt .kind{display:none}.chip{font-size:11px;padding:5px 9px;border:0;line-height:1.4;white-space:normal;max-width:100%;word-break:break-word}.chip .dot{height:5px;width:5px;flex:none;animation:none}.chip.none{background:var(--control);color:var(--ink2);border:0}.chip.off{color:var(--muted);border:0}.chip.submitted{background:var(--warn-soft);color:var(--warn)}.chip.verified{background:var(--ok-soft);color:var(--ok)}.chip.rejected{background:var(--bad-soft);color:var(--bad)}
/* Controls are deliberately larger than their visible symbols. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:999px;background:var(--control);color:var(--ink);border:1px solid transparent;box-shadow:none;font-size:14px;font-weight:600;line-height:1.35;transition:transform .24s var(--spring-b),background .2s,opacity .2s;filter:none}.btn:hover{filter:none;background:var(--grey-soft)}.btn:active{transform:scale(.96)}.btn.brand{background:var(--brand);color:var(--paper-solid);box-shadow:0 4px 12px -6px color-mix(in srgb,var(--brand) 35%,transparent);border:0}.btn.brand:hover{background:var(--brand-2);filter:none;box-shadow:none}.btn.soft{background:var(--brand-soft);color:var(--brand-ink);border-color:transparent}.btn.soft:hover{background:color-mix(in srgb,var(--brand) 15%,var(--paper))}.btn.ghost{background:var(--control);color:var(--ink2);border:0}.btn.ghost:hover{background:var(--grey-soft);color:var(--ink)}.btn.danger,.btn.nope{background:var(--bad-soft);color:var(--bad);border:0}.btn.okay{background:var(--ok-soft);color:var(--ok);border:0}.btn.sm{min-height:38px;padding:8px 14px;font-size:12px;border-radius:999px}.btn.wide{width:100%}.btn[aria-busy=true]{opacity:.65;cursor:progress}.btn .ui-icon{width:18px;height:18px}
.input,select.input,textarea.input{font-size:15px;background:var(--control);border:1px solid transparent;color:var(--ink);min-height:46px;padding:12px 15px;border-radius:15px;box-shadow:none;transition:background .2s,border-color .2s}.input:focus{border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft)}.input::placeholder{color:var(--muted);opacity:.8}select.input option{background:var(--paper-solid)}.input-label,.field>label{display:block;font-size:12px;font-weight:600;color:var(--ink2);margin:16px 2px 8px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}input[type=range]{accent-color:var(--brand)}
.datebar{gap:10px;margin:0 0 20px;align-items:center}.datebar .right.row{gap:8px;flex-wrap:wrap}.seg{padding:4px;border:0;border-radius:999px;background:var(--control);gap:2px;min-height:42px}.seg button{border-radius:999px;color:var(--ink2);padding:8px 13px;min-height:34px;line-height:1.2;font-size:12px;font-weight:550}.seg button.on{background:var(--paper-solid);color:var(--brand-ink);box-shadow:0 1px 6px rgba(0,0,0,.07)}.seg button:hover{background:var(--paper);color:var(--ink)}.seg .lbl{font-size:12px;min-width:130px;padding:8px 4px}.todo-bar{gap:8px;margin:22px 0 4px}.tchip{background:var(--control);border:1px solid transparent;border-radius:999px;padding:8px 14px;min-height:40px;font-size:12px;font-weight:500;color:var(--ink2)}.tchip .n{font-size:14px;font-weight:650;min-width:14px}.tchip.on{background:var(--brand-soft);border-color:var(--line2);color:var(--brand-ink)}.tchip:hover{background:var(--brand-soft);border-color:transparent}
/* Grouped content: tables, assignments, growth and schedules. */
.shead{padding:20px 24px;margin-bottom:22px}.shead .nm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:20px;font-weight:700}.shead .meta:empty{display:none}.shead .meta{margin:5px 0 0 48px}.taskcard{padding:24px}.taskcard .tt{font-size:17px;font-weight:650}.taskcard .hd{align-items:flex-start}.taskcard .facts{margin:20px 0;gap:24px}.taskcard .k{font-size:11px}.taskcard .v{font-size:14px;font-weight:600}.taskcard .row{gap:10px}.student-panel{margin-bottom:20px}.student-panel .section-title:first-child{margin-top:12px}.growth{padding:24px}.list-item{padding:14px 4px}.assigncard{padding:24px}.alist,.wp-rows,.err-list{background:var(--control);border-color:var(--line)}.pick{background:var(--paper);border-color:var(--line);border-radius:14px;padding:10px 14px}.pick:has(input:checked){background:var(--brand-soft);border-color:var(--line2)}.code-chip{border:0;background:var(--control);color:var(--ink2);font-size:13px}.sp-tip,.cr-item{background:var(--control);border-color:var(--line)}.streak{background:var(--brand-soft);border:0;color:var(--brand-ink)}.streak.dim{background:var(--control);color:var(--muted)}
body[data-mode=student] .student-panel{display:none}body[data-mode=student][data-student-section=today] [data-panel=today],body[data-mode=student][data-student-section=learning] [data-panel=learning],body[data-mode=student][data-student-section=practice] [data-panel=practice]{display:block}
.tbl{font-size:13px!important}.tbl th{background:var(--control);color:var(--muted);padding:17px 16px;font-size:11px;letter-spacing:0;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:18px 16px;white-space:nowrap}.tbl tr:hover td{background:var(--control)}.tbl tr:last-child td:first-child{border-bottom-left-radius:var(--r)}.tbl tr:last-child td:last-child{border-bottom-right-radius:var(--r)}.tbl th:first-child{border-top-left-radius:var(--r)}.tbl th:last-child{border-top-right-radius:var(--r)}.card:has(>.tbl){scrollbar-width:thin;overscroll-behavior-x:contain}
.sched-grid{gap:12px;scroll-snap-type:x proximity;padding:4px 0 16px;scrollbar-width:thin;overscroll-behavior-x:contain}.sday-col{background:var(--control);border:1px solid transparent;border-radius:20px;padding:12px 8px;scroll-snap-align:center}.sday-col.today{border-color:var(--line2);background:var(--brand-soft);box-shadow:none}.sday-hd{padding:4px 6px 12px;font-size:13px;color:var(--ink);gap:4px}.sday-hd span{font-size:11px}.sent{padding:13px 10px;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:14px;margin-bottom:8px}.sent:hover{background:var(--paper-solid);box-shadow:var(--shadow);border-color:var(--line2);transform:none}.sent .st{font-size:11px;font-weight:550}.sent b{font-size:13px;font-weight:650}.sent .sc{color:var(--muted)}.sent.mine{background:var(--paper);border-color:var(--line2);box-shadow:none}.s-tick{border-radius:99px;padding:7px 8px;background:var(--control);font-size:11px}.s-tick.on{background:var(--ok-soft);color:var(--ok)}.sday-empty{min-height:90px;display:grid;place-items:center;color:var(--muted)}
/* Sheets and focused practice. */
.modal-veil,.quiz-veil{background:var(--veil);backdrop-filter:none;-webkit-backdrop-filter:none;padding:24px;animation:veilIn .2s ease both}.modal-veil{z-index:100}.quiz-veil{z-index:90}.modal-card,.quiz-card{background:var(--paper-solid);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);border-radius:30px;padding:26px;max-height:calc(100dvh - 48px);animation:sheetIn .3s var(--ease) both;min-width:0;overflow:auto}.modal-card{width:min(520px,94vw);display:flex;flex-direction:column;overscroll-behavior:contain}.modal-card.modal-wide{width:min(760px,94vw)}.modal-card .body{min-height:0;overflow:auto;overscroll-behavior:contain}.sheet-header{display:flex;align-items:flex-start;gap:18px;margin:0 0 22px}.sheet-header>div{flex:1;min-width:0}.sheet-header h3{font-size:23px;font-weight:700;line-height:1.35;margin:2px 0 6px}.sheet-header .sub{font-size:13px;color:var(--muted);margin:0;line-height:1.6}.sheet-close{width:34px;height:34px;min-width:34px;box-shadow:none;background:var(--control);border:0;backdrop-filter:none}.sheet-close .ui-icon{width:17px;height:17px}.sheet-grabber{display:none}.modal-actions{gap:10px;padding-top:18px;margin-top:20px;border-top:1px solid var(--line);flex-shrink:0}.modal-actions .btn{flex:1;min-width:100px}.modal-veil.closing .modal-card,.quiz-veil.closing .quiz-card{animation:sheetDown .2s ease both}.modal-veil.closing,.quiz-veil.closing{animation:veilOut .2s ease both}.modal-card .grid{gap:12px}
.quiz-card{width:min(700px,96vw);padding:28px 32px}.quiz-guard{color:var(--muted);background:var(--control);border:0;border-radius:12px;font-size:11px}.quiz-prompt{font-size:clamp(30px,6vw,48px);letter-spacing:-.035em;color:var(--ink);font-weight:700}.quiz-mid{padding:42px 0 16px}.quiz-input{font-size:22px;border-radius:19px;min-height:58px}.quiz-top{font-size:13px}.quiz-nav{margin-top:22px}.quiz-nav .btn{min-height:48px}.quiz-bot{border-color:var(--line)}.quiz-bot .stat{padding:12px 0}.spk{background:var(--brand-soft);border:0;color:var(--brand-ink);box-shadow:none}.mini-spk{background:var(--control);color:var(--brand-ink);border:0;width:32px;height:32px}.sp-tip .ai-text{color:var(--ink2)}.quiz-prompt,.quiz-input,.f2f-word.pop{animation:none}.photo-add{border-color:var(--line2);background:var(--brand-soft);color:var(--brand-ink)}.loading,.empty{color:var(--muted)}.toast{background:var(--glass);color:var(--ink);border:1px solid var(--glass-border);border-radius:999px;box-shadow:var(--material-shadow);backdrop-filter:none;-webkit-backdrop-filter:none;font-size:13px;padding:13px 22px;max-width:min(500px,90vw);text-align:center;animation:tin .25s var(--ease) both}#toast-root{bottom:28px;z-index:130}.appearance-options{display:grid;gap:10px}.appearance-choice{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--paper);color:var(--ink);text-align:left;cursor:pointer}.appearance-choice.selected{background:var(--brand-soft);border-color:var(--line2)}.appearance-choice small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.choice-check{margin-left:auto;color:var(--brand-ink)}
/* Entrances: one brand, three clear destinations. */
body[data-auth=no] main{max-width:1200px;padding-top:30px}.login-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:100px;min-height:calc(100dvh - 220px);max-width:1040px;margin:auto;padding:20px 0 64px}.login-intro h1{font-size:clamp(38px,4vw,56px);font-weight:700;line-height:1.25;letter-spacing:-.04em;margin:18px 0 22px}.login-intro p{font-size:15px;line-height:1.9;color:var(--muted);margin:0}.login-emblem{height:64px;width:64px;border-radius:21px;padding:16px;background:var(--paper);box-shadow:var(--shadow);margin-bottom:30px}.login-emblem svg{height:100%;width:100%}.login-features{display:flex;gap:20px;margin-top:34px;font-size:12px;color:var(--ink2)}.login-features span{display:flex;align-items:center;gap:7px}.login-features .ui-icon{width:17px;height:17px;color:var(--brand)}.login-card{padding:36px;border-radius:30px}.login-role{display:inline-block;font-size:11px;color:var(--brand-ink);background:var(--brand-soft);padding:5px 12px;border-radius:999px;font-weight:600}.login-card h2{font-size:25px;line-height:1.3;font-weight:700;letter-spacing:-.03em;margin:22px 0 10px}.login-card .sub{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:24px}.login-card .btn.wide{margin-top:24px;min-height:48px;justify-content:space-between;padding-left:24px;padding-right:24px}.login-foot{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:22px;font-size:11px;color:var(--muted)}.login-foot .ui-icon{height:14px;width:14px}.code-input{font-size:22px;letter-spacing:.15em;text-align:center;min-height:58px}.code-input::placeholder{font-size:14px;letter-spacing:.04em}
@media(min-width:1100px){body[data-auth=yes] #tabs{position:absolute;top:20px;left:50%;transform:translateX(-50%);margin:0;max-width:600px}.page-heading{margin-top:40px}.tab{padding:10px 20px}.top-actions{margin-left:auto}}
@media(max-width:1099px) and (min-width:761px){.stats{grid-template-columns:1.4fr 1fr 1fr}.cmd-hero{gap:12px}.stat{padding:20px 16px}.cmd-hero .gring{display:none}.login-layout{gap:40px}.role-badge{margin-left:4px}}
@media(max-width:760px){
 body{background:var(--bg)}
 #topbar{padding:calc(12px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 10px max(20px,env(safe-area-inset-left));min-height:70px;gap:10px}.brand-logo{width:29px;height:29px}.brand-name{font-size:18px}.brand-en{font-size:6px;letter-spacing:.16em}.role-badge{font-size:10px;margin-left:2px;padding-left:12px}.top-actions{gap:7px}.toolbar-button{height:40px;width:40px;min-width:40px}.toolbar-button .ui-icon{height:20px;width:20px}
 #tabs{position:fixed;top:auto;bottom:calc(14px + env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);margin:0;width:calc(100% - 36px);max-width:460px;display:flex;justify-content:space-between;padding:5px;gap:2px;overflow:visible;border:1px solid var(--glass-border);border-radius:32px;background:var(--glass);box-shadow:var(--material-shadow),0 10px 38px -16px rgba(0,0,0,.18)}
 .tab{flex:1;flex-direction:column;gap:4px;min-width:0;min-height:55px;padding:7px 2px;border-radius:26px;font-size:10px;font-weight:600}.tab .ui-icon{width:22px;height:22px}.tab.active{background:var(--paper-solid)}
 main{padding:6px max(20px,env(safe-area-inset-right)) calc(110px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));width:100%;max-width:100%}.page-heading{padding:0 22px;margin:24px auto 20px}.page-heading h1{font-size:30px;margin:7px 0 7px;letter-spacing:-.04em}.page-heading p{font-size:12px;max-width:270px}.page-eyebrow{font-size:10px;letter-spacing:.05em}.heading-mark{width:50px;height:50px;border-radius:18px}.heading-mark .ui-icon{width:24px;height:24px}
 .stats{grid-template-columns:1fr 1fr;gap:12px}.cmd-hero{grid-column:1/-1;padding:22px;gap:24px}.stat{padding:20px}.stat .v{font-size:32px;margin-top:7px}.stat .s{font-size:11px}.cmd-hero .v{font-size:34px}.cmd-hero .gring,.cmd-hero .gring svg{width:88px;height:88px}
 .grid{gap:14px}.section-title{font-size:16px;margin-top:26px}.sec-hint{display:none}.datebar{gap:10px;flex-wrap:wrap;margin-bottom:18px}.datebar>.right.row{width:100%;margin:0;display:flex}.datebar #flt{flex:1;width:auto!important;min-width:100px}.datebar .seg{flex-shrink:0}.seg button{min-height:36px;padding:9px 12px;font-size:11px}.seg .lbl{font-size:12px;min-width:125px}.datebar>.right.small{width:100%;margin-left:2px;font-size:11px}
 .todo-bar{gap:8px;margin:18px 0 4px}.todo-bar .sp{display:none}.todo-bar .tchip{flex:1;white-space:nowrap;padding:8px 10px;font-size:11px;justify-content:center}.todo-bar .btn{margin-top:2px}.todo-bar #t-expand{margin-right:auto}.tchip .n{font-size:13px}
 .scard{padding:18px}.scard .hd{gap:9px}.scard .mx{font-size:11px}.scard-exp{width:36px;height:36px}.student-avatar{height:36px;width:36px;border-radius:13px}.scard .mini{margin-top:14px}.trow .tt{white-space:normal;line-height:1.5;flex:1}.trow .sp{max-width:48%}.trow .chip{font-size:10px}
 .btn.sm{min-height:40px;padding:9px 13px;font-size:12px}.btn{min-height:46px;padding:12px 17px;font-size:14px}.input,select.input,textarea.input{font-size:16px;min-height:48px}.shead{padding:18px;margin-bottom:22px;gap:14px}.shead .nm{font-size:20px}.shead .right.dots{width:100%;margin:0;padding-left:0}.shead .dot{height:8px;width:8px;border-radius:3px}.shead .meta{margin-left:0;font-size:12px}.taskcard{padding:20px}.taskcard .tt{font-size:16px}.taskcard .facts{gap:20px;margin:18px 0}.taskcard .row>.btn{flex:1;white-space:nowrap}.growth{padding:20px}.g-body{gap:24px}.g-side{min-width:0;width:100%}.g-head{gap:9px}.g-head .section-title{font-size:14px}.g-nums{gap:20px}.g-rings{justify-content:flex-start;gap:32px}.g-rings .gring{width:90px;height:90px}.g-rings .gring svg{width:90px;height:90px}.gh-body{gap:20px}.gh-chart{min-width:0;width:100%}.gh-nums{gap:22px}.student-panel .grid[style*="1fr 1fr"]{grid-template-columns:1fr!important}
 .tbl th{padding:15px 14px}.tbl td{padding:16px 14px}.sched-grid{grid-template-columns:repeat(7,minmax(250px,75vw));gap:12px;scroll-snap-type:x mandatory}.sday-col{padding:14px 12px;border-radius:22px}.sday-hd{font-size:15px;align-items:center}.sent{padding:14px;gap:6px}.sent b{font-size:15px}.sent .st{font-size:12px}.sent .sc{font-size:13px}.s-tick{min-height:36px;display:flex;align-items:center;justify-content:center}.sday-empty{min-height:140px}
 .modal-veil{padding:12px 10px max(10px,env(safe-area-inset-bottom));align-items:flex-end}.modal-card,.modal-card.modal-wide{width:100%;max-width:620px;max-height:calc(100dvh - 70px - env(safe-area-inset-top));padding:0 20px 20px;border-radius:30px;animation:sheetUpMob .36s var(--ease) both;overflow:hidden}.sheet-grabber{display:flex;justify-content:center;align-items:center;height:27px;flex-shrink:0;touch-action:none;cursor:grab}.sheet-grabber i{width:34px;height:4px;border-radius:99px;background:var(--muted);opacity:.3}.sheet-header{margin:1px 0 18px;gap:12px;flex-shrink:0}.sheet-header h3{font-size:22px}.sheet-header .sub{font-size:12px}.sheet-close{width:34px;height:34px}.modal-actions{margin-top:16px;padding-top:16px;gap:8px;flex-wrap:wrap}.modal-actions .btn{min-width:100px;min-height:46px}.modal-veil.closing .modal-card{animation:sheetDownMob .2s ease both}.modal-card .body{padding:0 1px}.modal-card .grid[style*="1fr 1fr"]{grid-template-columns:1fr!important}
 .quiz-veil{padding:0;background:var(--bg);align-items:stretch}.quiz-card{padding:calc(18px + env(safe-area-inset-top)) 22px calc(20px + env(safe-area-inset-bottom));width:100%;max-height:100dvh;border-radius:0;border:0;box-shadow:none;overflow:auto;animation:veilIn .2s ease}.quiz-mid{min-height:220px;padding:36px 0 22px}.quiz-input{font-size:22px;min-height:58px}.quiz-nav .btn{min-height:48px;padding:10px 12px;font-size:13px}.quiz-bot .stat{font-size:11px}.quiz-guard{font-size:10px;line-height:1.6;margin-top:16px}.quiz-prompt{font-size:35px}.quiz-sub{font-size:13px}.quiz-card .modal-actions{margin-top:22px}.quiz-card .ring{margin-top:30px}
 #toast-root{bottom:calc(94px + env(safe-area-inset-bottom));width:100%;left:0;right:0}.toast{font-size:12px;max-width:calc(100vw - 40px);padding:12px 18px;border-radius:24px}
 body[data-auth=no] main{padding-top:12px;padding-bottom:40px}.login-layout{grid-template-columns:1fr;gap:30px;padding:0;min-height:0;max-width:430px}.login-intro{text-align:center;padding:12px 0 0}.login-emblem{width:52px;height:52px;border-radius:18px;padding:12px;margin:0 auto 20px}.login-intro .page-eyebrow{font-size:9px;letter-spacing:.14em}.login-intro h1{font-size:32px;margin:12px 0;line-height:1.35}.login-intro h1 br{display:none}.login-intro p{font-size:12px;line-height:1.8}.login-features{justify-content:center;margin-top:18px;gap:18px;font-size:10px}.login-features .ui-icon{width:15px;height:15px}.login-card{padding:26px 24px;border-radius:27px}.login-card h2{font-size:23px;margin-top:18px}.login-card .sub{font-size:12px;margin-bottom:20px}.login-card .input-label{font-size:11px}.login-card .btn.wide{margin-top:20px;font-size:14px}.login-foot{margin-top:20px;font-size:10px}.code-input{font-size:24px;min-height:56px}
}
@media(max-width:360px){main{padding-left:14px;padding-right:14px}#topbar{padding-left:16px;padding-right:16px}.role-badge{display:none}.page-heading{padding:0 16px}.heading-mark{display:none}.tab{font-size:9px}.scard .mx{font-size:10px}.login-layout{gap:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.ring-fill{animation:none!important}}
@media(prefers-reduced-transparency:reduce){#tabs,.toolbar-button,.toast,body.scrolled #topbar{background:var(--paper-solid);backdrop-filter:none;-webkit-backdrop-filter:none}.modal-veil{backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(prefers-contrast:more){:root{--line:currentColor;--muted:var(--ink2)}.card,.input{border-width:1px}.tab.active{outline:2px solid var(--brand)}#tabs,.toolbar-button,.toast{background:var(--paper-solid)}}
/* Content grids fill the available space; activity rings stay inside narrow cards. */
.student-panel>.grid[style*="auto-fill"]{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr))!important;margin-bottom:20px}
@media(max-width:760px){.g-rings{gap:12px;justify-content:space-between}.g-rings .gring{flex:1;min-width:0;max-width:84px;width:100%;height:auto;aspect-ratio:1}.g-rings .gring svg{width:100%;height:auto}.g-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}.g-nums .gn b{font-size:20px}.g-nums .gn span{font-size:10px}.g-rings .gring .gv b{font-size:18px}}

.student-table td:first-child{white-space:nowrap}.student-table .student-avatar{margin-right:7px;width:30px;height:30px;border-radius:11px;font-size:12px}
@media(max-width:760px){
 .student-table-wrap.card{background:transparent;border:0;box-shadow:none;overflow:visible!important}.student-table,.student-table tbody{display:block;width:100%}.student-table tr:first-child{display:none}.student-table tr{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 6px;padding:19px;margin:14px 0;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
 .student-table td{display:block;padding:0;border:0!important;white-space:normal;grid-column:span 2;background:none!important;min-width:0}.student-table td:first-child{grid-column:span 4;display:flex;align-items:center;font-size:15px;white-space:normal}.student-table td:nth-child(2){text-align:right;align-self:center}.student-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-weight:500;line-height:1.5;margin-bottom:7px;font-size:10px}.student-table td:nth-child(6){grid-column:1/-1;border-top:1px solid var(--line)!important;padding-top:12px;font-size:12px}.student-table td:nth-child(6):empty{display:none}.student-table td:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.student-table td:last-child .btn{padding:8px 4px;font-size:11px;min-height:40px;white-space:nowrap}.student-table .student-avatar{margin-right:8px}.student-table .code-chip{font-size:13px;padding:4px 6px}
}
@media(max-width:360px){.student-table td:last-child{grid-template-columns:repeat(2,1fr)}}

/* Clear liquid glass: monochrome transmission and edge reflections, never blur. */
*,*::before,*::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body{background:var(--bg)!important}
:is(.card,.shead,.sday-col,.sent,.pick,.alist,.wp-rows,.err-list,.sp-tip,.cr-item,.heading-mark,.login-emblem,.appearance-choice,.quiz-guard){
 background-color:var(--glass-base);
 background-image:radial-gradient(ellipse at var(--glass-x,16%) var(--glass-y,0%),var(--shine),transparent 65%),linear-gradient(145deg,rgba(255,255,255,.052),rgba(255,255,255,.012) 32%,rgba(0,0,0,.06) 65%,rgba(255,255,255,.035));
 border:1px solid var(--rim);border-top-color:var(--glass-border);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.07),inset 1px 0 0 rgba(255,255,255,.025),inset 0 -1px 0 rgba(0,0,0,.3),0 12px 34px -24px rgba(0,0,0,.9);
 transition:border-color .25s,box-shadow .3s;
}
:is(.card,.sent,.pick,.appearance-choice):hover{border-color:var(--glass-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(255,255,255,.025),0 14px 36px -24px rgba(0,0,0,.95)}
:is(.sday-col.today,.sent.mine,.appearance-choice.selected,.pick:has(input:checked)){border-color:var(--line2);background-color:var(--glass-base)}
:is(.list-item,.trow,.cr-item,.err-row){border-radius:14px;background:linear-gradient(140deg,rgba(255,255,255,.045),rgba(255,255,255,.009));border:1px solid var(--line);padding:12px;margin:7px 0}
.trow:last-child{border-bottom:1px solid var(--line)}.trow:hover{background:linear-gradient(140deg,rgba(255,255,255,.07),rgba(255,255,255,.02))}
:is(.input,select.input,textarea.input){background:linear-gradient(150deg,rgba(255,255,255,.04),rgba(255,255,255,.008)),rgba(0,0,0,.15);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),inset 0 2px 8px rgba(0,0,0,.09)}
.input:focus{background-color:var(--glass-base);border-color:var(--gold);box-shadow:0 0 0 3px var(--brand-soft),inset 0 1px 0 rgba(255,255,255,.1)}
:is(.toolbar-button,.sheet-close,.scard-exp,.tchip,.btn,.seg,.mini-spk,.spk,.s-tick,.student-avatar,.streak,.code-chip,.chip){
 background-image:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.015) 50%,rgba(255,255,255,.04));
 border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.055),inset 0 -1px 0 rgba(0,0,0,.16);
}
.btn.brand,.btn.brand:hover{color:#080808;background:linear-gradient(135deg,#f0d49b 0%,#d7b271 44%,#b99250 76%,#dfc084);border:1px solid rgba(249,225,175,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(80,53,15,.22),0 6px 18px -12px rgba(217,181,116,.45)}
:root[data-theme=light] .btn.brand{color:#16100a}
.btn.danger,.btn.nope{border:1px dashed var(--line2);color:var(--ink2)}
.btn.okay,.chip.verified,.chip.submitted,.chip.rejected,.s-tick.on{background-color:var(--brand-soft);color:var(--brand-ink)}
:is(.btn,.tab,.toolbar-button,.sheet-close,.scard-exp,.tchip,.seg button):active{transform:none}
.scard:hover,.sent:hover,.trow:hover{transform:none}
:is(.btn,.tab,.toolbar-button,.sheet-close,.scard-exp,.tchip,.sent,.scard,.card,.pick){transform-origin:50% 50%}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
#tabs,body.scrolled #topbar{background:linear-gradient(155deg,rgba(255,255,255,.095),rgba(255,255,255,.02) 40%,rgba(255,255,255,.045)),var(--glass);box-shadow:var(--material-shadow)}
#tabs{border:1px solid var(--glass-border)}.tab{position:relative;isolation:isolate}.tab.active,.tab.active:hover{background:none;box-shadow:none;color:var(--gold-hi)}
.tab.active::before{pointer-events:none;content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(140deg,rgba(255,255,255,.15),rgba(255,255,255,.04) 50%,rgba(255,255,255,.07));border:1px solid var(--line2);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 2px 7px rgba(0,0,0,.2);transform-origin:center}
.tab.nav-arrive::before{animation:liquidNav .72s linear both}
@keyframes liquidNav{0%{transform:translateX(var(--tab-from,0px)) scaleX(1)}35%{transform:translateX(calc(var(--tab-from,0px) * -.08)) scaleX(var(--tab-stretch,1.12)) scaleY(.94)}58%{transform:translateX(calc(var(--tab-from,0px) * .025)) scaleX(.96) scaleY(1.025)}78%{transform:translateX(0) scaleX(1.012) scaleY(.995)}100%{transform:none}}
:is(.modal-card,.quiz-card){background:radial-gradient(ellipse at 5% 0,rgba(255,255,255,.07),transparent 60%),linear-gradient(150deg,rgba(255,255,255,.035),transparent 50%),var(--sheet-base);border:1px solid var(--glass-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(255,255,255,.04),0 24px 80px rgba(0,0,0,.5)}
.modal-veil,.quiz-veil{background:var(--veil)}.modal-card,.quiz-card{animation:liquidSheet .72s both linear}
@keyframes liquidSheet{0%{opacity:0;transform:translateY(38px) scale(.93,.9)}35%{opacity:1;transform:translateY(-9px) scale(1.018,1.028)}58%{transform:translateY(3px) scale(.996,.986)}78%{transform:translateY(-1px) scale(1.002,1.005)}100%{opacity:1;transform:none}}
@keyframes liquidSheetMobile{0%{opacity:.25;transform:translateY(90px) scale(.96,.94)}36%{opacity:1;transform:translateY(-12px) scale(1.012,1.018)}59%{transform:translateY(5px) scale(.997,.99)}80%{transform:translateY(-1px) scale(1.001,1.003)}100%{opacity:1;transform:none}}
@keyframes liquidContent{0%{opacity:.15;transform:translateY(17px) scale(.993,.985)}42%{opacity:1;transform:translateY(-4px) scale(1.003,1.005)}68%{transform:translateY(1px) scale(.999,.998)}100%{opacity:1;transform:none}}
#view>.card,#view>.login-layout,#view>.stats,#view>.cols,#view>.student-panel{animation:liquidContent .66s linear both}
#view>.student-panel{animation-delay:.025s}.trows.open{animation:liquidContent .6s linear both}
.quiz-prompt,.f2f-word.pop{animation:liquidContent .55s linear both}
.toast{background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.01)),var(--sheet-base);animation:liquidContent .6s linear both}
.gring .fg,.gring .fg.c2,.gring .fg.c3{stroke:var(--gold)}.gring .fg.c2{stroke:var(--ink2)}.gring .fg.c3{stroke:var(--gold-deep)}.gring .bg{stroke:var(--control)}
.dot.done,.hcell.h3{background:var(--gold)}.dot.off{background:var(--grey-soft)}.trend .dot.ok,.trend .dot{stroke:var(--gold);filter:none}.trend .dot.ok.last{filter:none}.trend .line.ok{stroke:var(--ink2)}
@media(max-width:760px){
 .modal-card,.modal-card.modal-wide{animation:liquidSheetMobile .75s linear both}.quiz-card{animation:liquidContent .6s linear both;background-color:var(--sheet-base)}
 .student-table-wrap.card{background:none;border:0;box-shadow:none}.student-table tr:not(:first-child){background:radial-gradient(ellipse at var(--glass-x,12%) var(--glass-y,0%),var(--shine),transparent 70%),linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.01)),var(--glass-base);border:1px solid var(--rim);border-top-color:var(--glass-border);box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 28px -24px rgba(0,0,0,.7)}
}
@media(prefers-reduced-transparency:reduce){:is(.card,.shead,.sday-col,.sent,.pick,.alist,.wp-rows,.err-list,.modal-card,.quiz-card,.toast,#tabs,.toolbar-button,.appearance-choice,.student-table tr){background:var(--paper-solid)!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* WWDC25 interaction pass: a quiet content plane and one floating control layer. */
#topbar{transition:background .2s,box-shadow .2s}
body.scrolled #topbar{background:var(--sheet-base);box-shadow:0 1px 0 var(--line),0 12px 28px -15px rgba(0,0,0,.8)}
#tabs{isolation:isolate}.tab{transition:color .18s}.tab.active::before{background:var(--control);border-color:var(--line2);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.tab.nav-arrive::before{animation-duration:.48s}
:is(.card,.sday-col) :is(.alist,.wp-rows,.err-list,.list-item,.cr-item){box-shadow:inset 0 1px 0 rgba(255,255,255,.025);background:var(--control)}
.card .card{box-shadow:none;background-color:var(--control)}
.btn.ghost{background-color:transparent;box-shadow:none}
[hidden]{display:none!important}
@keyframes contentSettle{from{transform:translateY(7px)}to{transform:none}}
#view>.card,#view>.login-layout,#view>.stats,#view>.cols,#view>.student-panel,.trows.open,.quiz-prompt,.f2f-word.pop,.toast{animation:contentSettle .26s var(--ease) both;animation-delay:0s}
.study-progress{display:flex;align-items:center;gap:24px;margin:0 0 20px;padding:4px 2px 12px}
.study-progress b{display:block;font-size:19px;font-weight:650}.study-progress span{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.study-progress progress{margin-left:auto;width:150px;height:5px;border:0;border-radius:8px;overflow:hidden;appearance:none;background:var(--control);accent-color:var(--gold)}
.study-progress progress::-webkit-progress-bar{background:var(--control)}.study-progress progress::-webkit-progress-value{background:var(--gold);border-radius:8px}.study-progress progress::-moz-progress-bar{background:var(--gold);border-radius:8px}
.task-grid{grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));margin-bottom:20px}
.task-history{border-top:1px solid var(--line);margin-top:18px}.task-history>summary{cursor:pointer;min-height:60px;padding:18px 3px;font-size:16px;font-weight:600}.task-history>summary span{color:var(--muted);font-size:12px;font-weight:400;margin-left:10px}
.task-history[open]>.task-grid{animation:contentSettle .24s var(--ease)}
.recipient-card{padding:24px!important;margin-bottom:22px}.step-label{display:block;color:var(--ink);font-size:16px;margin-bottom:12px}.recipient-card .pick-grid{margin:14px 0;gap:10px}.recipient-card .pick{min-height:44px;align-items:center}.recipient-card #recipient-summary{margin-top:14px}
.workflow{min-width:0}.workflow-tabs{display:flex;gap:4px;padding:5px;border:1px solid var(--line);background:var(--glass);border-radius:22px;width:fit-content;max-width:100%;margin:0 0 24px}
.workflow-tabs button{border:1px solid transparent;min-height:44px;padding:10px 22px;border-radius:17px;color:var(--ink2);font:inherit;font-size:14px;background:transparent;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}
.workflow-tabs button[aria-selected=true]{color:var(--gold-hi);border-color:var(--line2);background:var(--control);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.workflow-panel{min-width:0;outline-offset:6px}.workflow-panel:not([hidden]){animation:contentSettle .26s var(--ease)}.workflow-panel>.section-title{margin:0 0 14px;font-size:17px}.workflow-panel>.card{padding:24px!important}.workflow-panel .field{min-width:0}.workflow-panel .row{gap:12px}.workflow-panel .input{max-width:100%}
.flow-help{border-top:1px solid var(--line);margin-top:22px;padding-top:14px}.flow-help summary{cursor:pointer;color:var(--muted);font-size:13px;min-height:32px;display:list-item}.flow-help .small{line-height:1.85}
.modal-veil{animation:veilIn .16s ease both}.modal-card,.modal-card.modal-wide{animation:contextSheet .42s var(--ease) both}
@keyframes contextSheet{0%{opacity:.65;transform:translate(var(--sheet-x,0px),var(--sheet-y,22px)) scale(.96)}65%{opacity:1;transform:translate(0,-2px) scale(1.005)}100%{opacity:1;transform:none}}
.modal-veil.closing .modal-card{animation:contextSheetOut .18s ease both}
@keyframes contextSheetOut{to{opacity:0;transform:translate(calc(var(--sheet-x,0px)*.18),calc(var(--sheet-y,20px)*.18)) scale(.975)}}
.overlay-covered{visibility:hidden;pointer-events:none}.overlay-covered .modal-card{animation:none}
.is-popover{background:rgba(0,0,0,.22)}.is-popover .modal-card{position:absolute;width:350px;max-height:calc(100dvh - 32px);padding:22px;border-radius:25px}.is-popover .sheet-header h3{font-size:20px}
.modal-card[aria-busy=true] .sheet-close{opacity:.45;cursor:wait}.btn[aria-busy=true]{cursor:wait}
.draft-check{flex-shrink:0;border-top:1px solid var(--line2);padding-top:18px;margin-top:18px}.draft-check>b{font-size:17px}.draft-check p{color:var(--muted);font-size:13px;margin:6px 0 14px}.draft-check .row{flex-wrap:wrap;gap:8px}
.modal-card:has(.draft-check)>.body{opacity:.5}.modal-card:has(.draft-check)>.modal-actions{display:none}
@media(max-width:760px){
 body[data-auth=yes]::before{content:'';position:fixed;inset:auto 0 0;height:110px;background:linear-gradient(transparent,var(--bg) 90%);z-index:40;pointer-events:none}
 .workflow-tabs{width:100%;gap:2px;border-radius:21px;margin-bottom:22px}.workflow-tabs button{flex:1;min-width:0;padding:10px 6px;font-size:12px;min-height:44px}
 .recipient-card,.workflow-panel>.card{padding:20px!important}.workflow-panel .row>.field{flex:1;min-width:130px!important}.workflow-panel .row>.btn.brand{width:100%}
 .study-progress{gap:16px}.study-progress b{font-size:17px}.study-progress progress{width:80px;flex-shrink:0}.task-history>summary span{display:block;margin:5px 0 0 17px}
 .modal-card,.modal-card.modal-wide{animation:contextSheetMobile .42s var(--ease) both;transform-origin:50% 100%!important}.modal-veil.closing .modal-card{animation:sheetDownMob .18s ease both}
 @keyframes contextSheetMobile{0%{transform:translateY(48px) scale(.985,.97);opacity:.7}68%{transform:translateY(-3px) scale(1.002,1.005);opacity:1}100%{transform:none;opacity:1}}
 .quiz-card{animation:contentSettle .24s var(--ease) both}
}
@media(prefers-reduced-transparency:reduce){.workflow-tabs,.is-popover .modal-card,.card .card{background:var(--paper-solid)!important}}
@media(prefers-contrast:more){.workflow-tabs button[aria-selected=true]{outline:2px solid currentColor;outline-offset:-3px}.task-history{border-color:var(--ink2)}.is-popover{background:var(--veil)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep global destinations reachable while reading a long page. */
@media(min-width:1100px){body[data-auth=yes] #tabs{position:fixed}}
@media(min-width:761px) and (max-width:1099px){body[data-auth=yes] #tabs{position:sticky;top:88px}html{scroll-padding-top:160px}}

/* Result review keeps the original record beside the teacher's correction. */
.quiz-session-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:68px;text-align:left;padding:14px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.quiz-session-row:hover,.quiz-session-row:focus-visible{background:var(--control)}.quiz-session-row:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:12px}
.quiz-session-main{display:grid;gap:5px;min-width:0}.quiz-session-main b{font-weight:600}.quiz-session-score{display:grid;gap:5px;text-align:right;flex-shrink:0}.quiz-session-score b{font-size:19px;color:var(--gold-hi);font-variant-numeric:tabular-nums}.quiz-session-score>span{font-size:12px;color:var(--muted)}
.quiz-review-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 0 18px;border-bottom:1px solid var(--line)}.quiz-review-summary h4{font-size:21px;margin:8px 0}.quiz-review-totals{display:grid;gap:9px;max-width:55%;text-align:right}.quiz-review-totals>span{color:var(--muted);font-size:13px}.quiz-review-totals>b{font-size:17px;color:var(--gold-hi);line-height:1.5}
.quiz-review-notices,.quiz-review-conflict{padding:14px 16px;border:1px solid var(--line2);border-radius:16px;background:var(--control);font-size:13px;line-height:1.7;margin:14px 0}.quiz-review-notices p,.quiz-review-conflict p{margin:4px 0 10px}.quiz-review-message{margin:12px 0;color:var(--gold-hi);line-height:1.7}.quiz-review-message:empty{display:none}
.quiz-review-list{display:grid;gap:12px;margin-top:14px}.quiz-review-item{padding:17px 18px;border:1px solid var(--line);border-radius:19px;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent),var(--control);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);min-width:0}.quiz-review-item.quiz-review-changed{border-color:var(--gold-deep)}
.quiz-review-word{display:flex;gap:10px;align-items:flex-start}.quiz-review-word>div{min-width:0;flex:1}.quiz-review-word b{font-size:17px;overflow-wrap:anywhere}.quiz-review-word .small{margin-top:5px;line-height:1.6;overflow-wrap:anywhere}.quiz-review-number{font-size:12px;color:var(--muted);min-width:22px;padding-top:3px;font-variant-numeric:tabular-nums}.qr-draft-tag{color:var(--gold-hi);white-space:nowrap}
.quiz-review-answer{padding:12px 0;display:grid;gap:5px;line-height:1.6;overflow-wrap:anywhere}.quiz-review-answer>div{white-space:pre-wrap}.quiz-review-bottom{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}.quiz-review-controls{display:flex;align-items:center;gap:6px}.quiz-review-controls .input{width:132px;min-height:44px;padding:8px 10px}.quiz-review-controls .btn{min-height:44px;white-space:nowrap}.quiz-review-verdict{font-size:14px;white-space:nowrap}
.quiz-review-editor{margin-top:24px}.quiz-review-editor>label{display:block;margin-bottom:10px;font-weight:600}.quiz-review-editor textarea{resize:vertical;min-height:100px}.quiz-review-editor-meta{display:flex;justify-content:space-between;gap:15px;margin-top:8px;line-height:1.6}.quiz-review-audit{border-top:1px solid var(--line);margin-top:24px;padding-top:14px}.quiz-review-audit>summary{min-height:44px;cursor:pointer;font-weight:600;padding:8px 0}.quiz-review-audit article{padding:14px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.quiz-review-audit article>b{display:block;margin-top:6px}.quiz-review-audit p{white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0}.quiz-review-audit ul{margin:8px 0 0;padding-left:20px}
.quiz-review-controls .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.quiz-review-summary{align-items:flex-start;flex-direction:column;gap:15px}.quiz-review-totals{max-width:none;text-align:left}.quiz-review-summary h4{font-size:19px}.quiz-review-item{padding:15px 13px}.quiz-review-bottom{align-items:flex-start;flex-direction:column}.quiz-review-controls{width:100%;justify-content:space-between}.quiz-review-controls .input{flex:1;width:auto;max-width:200px}.quiz-review-editor-meta{font-size:12px}.quiz-review-editor-meta>span:last-child{white-space:nowrap}.quiz-session-row{gap:10px}}
@media(prefers-reduced-transparency:reduce){.quiz-review-item,.quiz-review-notices,.quiz-review-conflict{background:var(--paper-solid)!important}}
