:root{--bg:#eef0f3;--bg-2:#f4f6f8;--card:#ffffff;--surface:#f4f6f8;--surface-2:#eef1f4;--text:#1c2129;--text-2:#58616c;--text-3:#8a919c;--line:#e3e7ec;--line-2:#d3d9e0;--blue:#2863c6;--blue-ink:#1f4f9f;--blue-soft:#e9f0fb;--blue-ring:rgba(40,99,198,0.22);--ok:#2a8150;--ok-soft:#e5f3eb;--ok-line:#b6dcc4;--no:#c23f2f;--no-soft:#fbecea;--no-line:#f0c5be;--amber:#a4660f;--amber-soft:#fbf1df;--amber-line:#ecd2a4;--subj-math:#4450c4;--subj-math-bg:#eceefb;--subj-sci:#0d7a6f;--subj-sci-bg:#e2f3f0;--subj-ela:#973d89;--subj-ela-bg:#f5e8f2;--subj-hist:#86582c;--subj-hist-bg:#f3ebe1;--subj-lang:#2a7896;--subj-lang-bg:#e3f0f5;--s-red:#ef4136;--s-orange:#fbb040;--s-green:#2bb673;--s-blue:#1c75bc;--r-xs:6px;--r-sm:8px;--r:12px;--r-lg:12px;--r-pill:999px;--sh-sm:0 1px 2px rgba(16,24,40,0.04);--sh:0 1px 2px rgba(16,24,40,0.04);--sh-lg:0 4px 12px rgba(16,24,40,0.08),0 16px 40px rgba(16,24,40,0.1);--font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}code{font-family:var(--mono);font-size:.88em;background:var(--surface);padding:1px 6px;border-radius:6px}.muted{color:var(--text-2)}.small{font-size:var(--fs-sm)}.shell{max-width:660px;margin:0 auto;padding:22px 20px 80px}.topbar{display:flex;align-items:center;gap:11px;padding:6px 4px 20px}.brandmark{width:13px;height:21px;border-radius:3px;flex:none;background:linear-gradient(180deg,var(--s-blue) 0 25%,var(--s-orange) 25% 50%,var(--s-green) 50% 75%,var(--s-red) 75% 100%);box-shadow:var(--sh-sm)}.logo{font-weight:700;letter-spacing:-.01em;font-size:var(--fs-lg)}.topbar .logo-sub{color:var(--text-3);font-size:var(--fs-sm)}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:12px}.topbar-user .who{color:var(--text-2);font-size:var(--fs-sm);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linkbtn{background:none;border:none;color:var(--blue-ink);font-size:var(--fs-sm);font-weight:600;cursor:pointer;padding:4px 2px;border-radius:6px}.linkbtn:hover{text-decoration:underline}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);padding:20px 24px 22px}.center{text-align:center;padding:64px 28px}.center h2{margin:0 0 8px}.caught-icon{width:52px;height:52px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;color:#fff;background:var(--ok)}.caught-icon svg{width:26px;height:26px}.progress{height:6px;background:var(--surface-2);overflow:hidden}.progress,.progress-bar{border-radius:var(--r-pill)}.progress-bar{height:100%;background:var(--blue);transition:width .35s cubic-bezier(.4,0,.2,1)}.meta{margin-top:16px}.meta,.meta-left,.meta-right{display:flex;align-items:center;gap:10px}.meta-right{margin-left:auto}.skill-chip{font-weight:600;font-size:var(--fs-sm);color:var(--text)}.reason{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;text-transform:lowercase;letter-spacing:.01em;padding:3px 9px 3px 7px;border-radius:var(--r-pill);border:1px solid var(--line-2);color:var(--text-2);background:var(--surface)}.reason .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.reason-new{color:var(--blue-ink);border-color:var(--blue-ring)}.reason-learning{color:var(--amber);border-color:var(--amber-line)}.reason-review{color:var(--ok);border-color:var(--ok-line)}.rating{font-size:var(--fs-sm);color:var(--text-2)}.rating b{font-family:var(--mono);font-weight:600;color:var(--text)}.qcount{font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-3)}.qview{animation:qin .28s cubic-bezier(.16,1,.3,1)}@keyframes qin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stem{font-size:var(--fs-lg);line-height:1.5;color:var(--text);margin:22px 0}.figure{margin:22px 0 4px;display:flex;justify-content:center;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}.figure svg{max-width:100%;height:auto}.qtable-wrap{margin:16px 0;overflow-x:auto}.qtable-title{font-weight:600;margin-bottom:8px}.qtable{border-collapse:collapse;font-size:.9em;line-height:1.4}.qtable td,.qtable th{border:1px solid var(--line-2);padding:7px 14px;text-align:left;vertical-align:middle}.qtable th{background:var(--surface);font-weight:600}.choices{display:grid;grid-gap:11px;gap:11px}.choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line-2);color:var(--text);border-radius:var(--r);padding:14px 16px;font-size:var(--fs-lg);cursor:pointer;transition:border-color .13s,background .13s,box-shadow .13s,transform .08s}.choice:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft);transform:translateY(-1px)}.choice:active:not(:disabled){transform:translateY(0)}.choice:disabled{cursor:default}.bullet{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;color:var(--text-2);background:var(--surface);border:1px solid var(--line-2);transition:inherit}.choice:hover:not(:disabled) .bullet{color:var(--blue-ink);border-color:var(--blue)}.choice-body{flex:1 1}.choice .mark{flex:none;margin-left:auto;display:flex}.choice.correct{border-color:var(--ok-line);background:var(--ok-soft)}.choice.correct .bullet{background:var(--ok);color:#fff;border-color:var(--ok)}.choice.correct .mark{color:var(--ok)}.choice.wrong{border-color:var(--no-line);background:var(--no-soft)}.choice.wrong .bullet{background:var(--no);color:#fff;border-color:var(--no)}.choice.wrong .mark{color:var(--no)}.choice.dim{opacity:.55}.frq-row{display:flex;gap:11px}.frq-row .btn{height:auto;min-height:38px}.frq-input{flex:1 1;background:var(--surface);border:1.5px solid var(--line-2);color:var(--text);border-radius:var(--r-sm);padding:14px 16px;font-size:var(--fs-lg);outline:none;transition:border-color .13s,box-shadow .13s,background .13s}.frq-input::placeholder{color:var(--text-3)}.frq-input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.frq-input:disabled{opacity:.7}.frq-preview{margin-top:10px;min-height:22px;font-size:var(--fs-lg);color:var(--text);padding-left:2px}.frq-preview .ph{color:var(--text-3);font-size:var(--fs-sm)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-sm);background:var(--blue);color:#fff;font-size:var(--fs-md);font-weight:600;white-space:nowrap;cursor:pointer;transition:background .13s,border-color .13s,box-shadow .13s}.btn:hover:not(:disabled){background:var(--blue-ink)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--blue-ring)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:var(--card);color:var(--text);border-color:var(--line-2)}.btn.ghost:hover:not(:disabled){background:var(--surface);border-color:var(--text-3)}.btn.block{width:100%;height:40px}.feedback{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);animation:fbin .26s cubic-bezier(.16,1,.3,1)}@keyframes fbin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.result{display:flex;align-items:center;gap:11px;font-weight:700;font-size:var(--fs-md);margin-bottom:14px}.result-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:none}.feedback.ok .result{color:var(--ok)}.feedback.ok .result-icon{background:var(--ok)}.feedback.no .result{color:var(--no)}.feedback.no .result-icon{background:var(--no)}.result .ans{font-weight:400;color:var(--text-2);margin-left:2px}.explanation{font-size:var(--fs-md);line-height:1.66;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.explanation .label{display:block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:7px}.feedback .next{margin-top:18px}.summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.summary-head h2{margin:0;color:var(--text);font-size:var(--fs-2xl)}.summary-head .sub{color:var(--text-2);font-size:var(--fs-md);margin-top:4px}.score{text-align:right;flex:none}.score .big{font-family:var(--mono);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.02em}.score .pct{display:block;font-size:var(--fs-xs);color:var(--text-3)}.summary-skills{margin:22px 0 24px;display:grid;grid-gap:12px;gap:12px}.srow{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:4px 12px;gap:4px 12px}.srow .sname{font-size:var(--fs-md);font-weight:600}.srow .smeta{font-size:var(--fs-xs);color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.srow .smeta b{font-family:var(--mono);font-weight:600;color:var(--text-2)}.srow .track{grid-column:1/-1;height:5px;background:var(--surface-2);overflow:hidden}.srow .fill,.srow .track{border-radius:var(--r-pill)}.srow .fill{height:100%;background:var(--blue)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px 40px}.login-card{width:100%;max-width:392px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:40px 36px 30px}.login-brand,.login-card{display:flex;flex-direction:column}.login-brand{align-items:center;gap:10px;margin-bottom:10px}.login-mark{width:15px;height:28px}.login-word{text-align:center}.login-logo{font-weight:700;letter-spacing:.05em;margin-right:-.05em;font-size:var(--fs-lg);line-height:1}.login-sub{font-size:var(--fs-xs);letter-spacing:.08em;margin-right:-.08em;color:var(--text-3);margin-top:4px}.login-title{text-align:center;color:var(--text);font-size:var(--fs-2xl);font-weight:700;margin:20px 0 22px}.login-field{margin-top:14px}.login-field:first-of-type{margin-top:0}.login-label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--text-2);margin-bottom:6px;letter-spacing:.01em}.login-input{width:100%;background:var(--surface);border:1.5px solid var(--line-2);color:var(--text);font-size:var(--fs-md);border-radius:var(--r-sm);padding:12px 13px;outline:none;transition:border-color .13s,box-shadow .13s,background .13s}.login-input::placeholder{color:var(--text-3)}.login-input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.login-pass{position:relative}.login-pass .login-input{padding-right:42px}.login-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-3);cursor:pointer;padding:5px;display:flex;border-radius:6px}.login-eye:hover{color:var(--text)}.login-btn{margin-top:22px}.login-error,.login-notice{font-size:var(--fs-sm);margin-top:16px;padding:10px 13px;border-radius:var(--r-sm);line-height:1.45}.login-error{color:var(--no);background:var(--no-soft);border:1px solid var(--no-line)}.login-notice{color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok-line)}.login-foot{text-align:center;margin:18px 0 0;color:var(--text-2);font-size:var(--fs-sm)}.katex{font-size:1.04em}.tex-display{display:block;margin:12px 0;overflow-x:auto;overflow-y:hidden;padding:2px 0}.tex-display .katex-display{margin:0}.app-layout{display:flex;height:100vh;overflow:hidden}.main-content{--main-pad-top:28px;flex:1 1;overflow-y:auto;padding:var(--main-pad-top) 24px 60px}.main-content .shell{padding:0}[hidden]{display:none!important}.sidebar{flex:none;width:220px;height:100%;display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--line);padding:20px 14px 16px;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 0;margin-bottom:22px}.sidebar-brand .logo{display:flex;flex-direction:column;gap:2px;line-height:1.1}.sidebar-brand-sub{font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.sidebar-groups{display:flex;flex-direction:column;gap:16px}.sidebar-group-label{padding:0 10px 4px;font-size:var(--fs-xs);font-weight:600;color:var(--text-3)}.sidebar-nav{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.sidebar-link{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:9px 10px;font-size:var(--fs-md);font-weight:600;color:var(--text-2);cursor:pointer;transition:background .12s,color .12s}.sidebar-link svg{flex:none;color:var(--text-3);transition:color .12s}.sidebar-link:hover{background:var(--surface);color:var(--text)}.sidebar-link.active{background:var(--blue-soft);color:var(--blue-ink)}.sidebar-link.active svg{color:var(--blue)}.sidebar-link:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.sidebar-user{display:flex;flex-direction:column;gap:2px;padding:0 10px;font-size:var(--fs-sm)}.sidebar-name{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-role{color:var(--text-3)}.sidebar-user .act-link{align-self:flex-start;margin-top:6px;font-size:var(--fs-sm)}.study-elo{display:flex;align-items:baseline;gap:10px;margin-bottom:18px;padding:0 2px}.study-elo .study-elo-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.study-elo .study-elo-val{font-family:var(--mono);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.02em;color:var(--text)}.qbank-filters{display:grid;grid-gap:12px;gap:12px;margin-bottom:16px}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dropdown{position:relative}.dropdown-trigger{display:inline-flex;align-items:center;gap:7px;height:30px;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 12px;font-size:var(--fs-sm);font-weight:600;color:var(--text-2);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.dropdown-trigger:hover{border-color:var(--blue);color:var(--text)}.dropdown-trigger.has-selection{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink)}.dropdown-trigger .count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--blue);color:#fff;font-size:var(--fs-xs);font-weight:700}.dropdown-trigger .chev{color:var(--text-3);transition:transform .12s}.dropdown-trigger[aria-expanded=true] .chev{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:224px;max-height:320px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);padding:6px;animation:ddin .13s ease}@keyframes ddin{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-search{position:-webkit-sticky;position:sticky;top:-6px;margin:-6px -6px 4px;padding:8px;background:var(--card);border-bottom:1px solid var(--line);z-index:1}.dropdown-search input{width:100%;height:30px;padding:0 9px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);outline:none;transition:border-color .13s,box-shadow .13s,background .13s}.dropdown-search input::placeholder{color:var(--text-3)}.dropdown-search input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 3px var(--blue-ring)}.dropdown-group+.dropdown-group{margin-top:4px;border-top:1px solid var(--line);padding-top:4px}.dropdown-group-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:8px 10px 4px}.dropdown-opt{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:none;border-radius:var(--r-sm);padding:8px 10px;font-size:var(--fs-sm);font-weight:600;color:var(--text);cursor:pointer;transition:background .1s}.dropdown-opt:hover{background:var(--surface)}.dropdown-opt.checked{color:var(--blue-ink)}.dropdown-check{flex:none;width:17px;height:17px;border-radius:var(--r-xs);border:1.5px solid var(--line-2);display:grid;place-items:center;color:#fff}.dropdown-opt.checked .dropdown-check{background:var(--blue);border-color:var(--blue)}.filter-chips{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.filter-chip{display:inline-flex;align-items:center;gap:6px;background:var(--blue-soft);border:1px solid var(--blue);color:var(--blue-ink);font-size:var(--fs-xs);font-weight:600;padding:4px 6px 4px 11px;border-radius:var(--r-sm)}.filter-chip .chip-kind{color:var(--blue);opacity:.7;font-weight:700}.chip-remove{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;border:none;background:rgba(31,79,159,.14);color:var(--blue-ink);cursor:pointer;padding:0}.chip-remove:hover{background:var(--blue);color:#fff}.chip-clear{background:none;border:none;color:var(--text-2);font-size:var(--fs-xs);font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}.chip-clear:hover{color:var(--no);text-decoration:underline}.qbank-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.qbank-actions .btn{flex:none}.practice-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.practice-count{font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-2)}.qbank-list{display:grid;grid-gap:8px;gap:8px}.qbank-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);overflow:hidden}.qbank-row.expanded{border-color:var(--line-2);box-shadow:var(--sh)}.qbank-row-head{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;background:none;border:none;padding:13px 16px;cursor:pointer;transition:background .12s}.qbank-row-head:hover{background:var(--surface)}.qbank-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.badge{font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:var(--r-xs)}.badge-skill{background:var(--surface-2);color:var(--text-2)}.badge-format{background:var(--blue-soft);color:var(--blue-ink)}.badge-elo{background:var(--surface);border:1px solid var(--line-2);color:var(--text-2);font-family:var(--mono)}.badge-figure,.badge-tier-easy{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-line)}.badge-tier-medium{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.badge-tier-hard{background:var(--no-soft);color:var(--no);border:1px solid var(--no-line)}.badge-correct{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-line)}.badge-incorrect{background:var(--no-soft);color:var(--no);border:1px solid var(--no-line)}.qbank-stem-preview{margin:0;font-size:var(--fs-md);line-height:1.45;color:var(--text)}.qbank-detail{padding:6px 18px 20px;border-top:1px solid var(--line)}.qbank-detail .stem{font-size:var(--fs-lg);margin:18px 0}@media (max-width:560px){.app-layout{flex-direction:column;height:auto;min-height:100vh;overflow:visible}.main-content{padding:18px 14px 76px}.sidebar{position:fixed;bottom:0;left:0;right:0;width:auto;height:56px;flex-direction:row;align-items:center;padding:0 12px;border-right:none;border-top:1px solid var(--line);box-shadow:0 -2px 12px rgba(20,28,40,.06);overflow:visible;z-index:100}.sidebar-brand,.sidebar-foot,.sidebar-group-label{display:none}.sidebar-groups{flex-direction:row;flex:1 1;gap:6px;justify-content:center}.sidebar-group,.sidebar-nav{display:contents}.sidebar-nav li{flex:1 1;max-width:160px}.sidebar-link{flex-direction:column;gap:2px;padding:7px 4px;font-size:var(--fs-xs);justify-content:center;text-align:center}.dropdown-menu{max-width:calc(100vw - 36px)}.shell{padding:16px 14px 64px}.card{padding:20px 18px 22px;border-radius:var(--r-lg)}.stem{font-size:var(--fs-lg)}.login-card{padding:32px 24px 26px}.frq-row{flex-wrap:wrap}.frq-row .btn{width:100%}.tutor-form{grid-template-columns:1fr}.logs-date-input{width:100%}}.tutor-form-card{margin-bottom:36px}.tutor-form{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-gap:16px 20px;gap:16px 20px}@media (min-width:561px) and (max-width:760px){.tutor-form{grid-template-columns:1fr 1fr}.tutor-form-row--student{grid-column:1/-1}}.tutor-form-row{display:flex;flex-direction:column;gap:6px}.tutor-form-row--full{grid-column:1/-1}.tutor-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.tutor-notes-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.tutor-notes-head .tutor-label{margin-right:auto}.memo-upload{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 10px}.tutor-label-hint{font-weight:400;color:var(--text-3);text-transform:none;letter-spacing:0}.tutor-input{height:38px;padding:0 10px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);outline:none;transition:border-color .13s,box-shadow .13s,background .13s}.tutor-input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.tutor-form-row .dropdown,.tutor-form-row .dropdown-menu{width:100%}.dropdown-trigger.tutor-select-trigger{width:100%;height:38px;justify-content:space-between;border-radius:var(--r-sm);background:var(--surface);padding:0 10px;font-size:var(--fs-md);font-weight:400;color:var(--text)}.dropdown-trigger.tutor-select-trigger:focus-visible{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring);outline:none}.tutor-textarea{padding:10px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);resize:vertical;outline:none;transition:border-color .13s,box-shadow .13s,background .13s;line-height:1.5}.tutor-textarea:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.tutor-form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:2px;padding-top:16px;border-top:1px solid var(--line)}.tutor-feedback{font-size:var(--fs-md);font-weight:600}.tutor-feedback--ok{color:var(--ok)}.tutor-feedback--err{color:var(--no)}.tutor-logs-section{margin-top:8px}.tutor-logs-section h2{font-size:var(--fs-lg);font-weight:700;margin:0 0 14px}.logs-list{display:flex;flex-direction:column;gap:12px}.log-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 20px;box-shadow:var(--sh-sm)}.log-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.log-student{font-size:var(--fs-md);font-weight:600}.log-body{line-height:1.6;margin:0}.log-body,.log-example{font-size:var(--fs-md);white-space:pre-wrap}.log-example{margin-top:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);line-height:1.5;color:var(--text)}.log-example-label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--text-3);margin-bottom:4px}.tutor-rating{display:flex;flex-wrap:wrap;gap:6px}.tutor-rating-btn{flex:1 1;min-width:0;padding:7px 10px;font-size:var(--fs-sm);font-weight:600;white-space:nowrap;background:var(--surface);color:var(--text-2);border:1.5px solid var(--line-2);border-radius:var(--r-sm);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.tutor-rating-btn:hover{border-color:var(--blue);color:var(--text)}.tutor-rating-btn.active{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-ink)}.logs-date-field{display:flex;align-items:center;gap:6px}.logs-date-label{font-size:var(--fs-xs);color:var(--text-3);font-weight:600;white-space:nowrap}.roster-add-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.roster-search{width:100%;margin-bottom:12px}.roster-row{display:flex;align-items:center;gap:12px}.roster-avatar{width:30px;height:30px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:700;display:grid;place-items:center;flex-shrink:0}.roster-name{font-size:var(--fs-md);font-weight:600;flex:1 1}.dev-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:8px 12px;background:repeating-linear-gradient(-45deg,var(--surface),var(--surface) 10px,var(--surface-2) 10px,var(--surface-2) 20px);border:1px dashed var(--line-2);border-radius:var(--r-sm)}.dev-bar-tag{font-family:var(--mono);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--amber)}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.cw-student{margin-bottom:16px}.cw-student-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.cw-student-head h2{font-size:var(--fs-lg);font-weight:700;margin:0}.cw-fresh{font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.cw-fresh--ok{color:var(--text-3)}.cw-fresh--stale{color:var(--amber)}.cw-fresh--never{color:var(--text-3)}.cw-setup{margin:0}.cw-group{margin-top:14px}.cw-group-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.cw-group-label{font-size:var(--fs-md);font-weight:700;color:var(--text)}.cw-empty{margin:0}.cw-due-warn{color:var(--amber);font-weight:600}.cw-banner{padding:9px 14px;margin-bottom:14px;font-size:var(--fs-md);line-height:1.45}.cw-banner--warn{border:1px solid var(--amber-line);background:var(--amber-soft)}.cw-inbox-line{margin:-6px 0 16px}.cw-unassigned{margin-bottom:16px;padding:14px 18px}.cw-unassigned-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0;border-top:1px solid var(--line);flex-wrap:wrap}.cw-unassigned-meta{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1 1}.cw-unassigned-meta .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-unassigned-sender{font-weight:600;font-size:var(--fs-md);white-space:nowrap}.cw-unassigned-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cw-unassigned-actions .dropdown-trigger.tutor-select-trigger{width:180px}.cw-remember{gap:5px;white-space:nowrap}.cw-email-row,.cw-remember{display:flex;align-items:center}.cw-email-row{gap:8px;margin-bottom:10px}.cw-email-input{height:30px;padding:0 8px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);width:230px;outline:none}.cw-email-input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 3px var(--blue-ring)}.cw-email-save{height:30px;padding:0 12px;font-size:var(--fs-sm)}.tv-assn-list{display:flex;flex-wrap:wrap;gap:8px}.tv-assn{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:6px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-xs);background:var(--surface);color:var(--text);font-size:var(--fs-sm);cursor:pointer;transition:border-color .13s,background .13s}.tv-assn:hover{border-color:var(--blue);background:var(--card)}.tv-assn--missing{border-color:var(--no-line);background:var(--no-soft)}.tv-assn .badge-test{margin-left:0}.tv-assn-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.tv-assn-due{color:var(--text-3);white-space:nowrap}.tv-assn--selected,.tv-assn--selected:hover{border-color:var(--blue);background:var(--blue-soft)}.tv-assn-check{color:var(--blue-ink);font-weight:700}.tv-assn-claim{color:var(--blue-ink);font-size:var(--fs-xs);white-space:nowrap}.tv-ref-list{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);display:flex;flex-direction:column;gap:8px}.tv-ref-row{display:flex;align-items:center;gap:10px}.tv-ref-title{font-size:var(--fs-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.tv-ref-q{margin-left:auto;white-space:nowrap}.tv-mark-btn{padding:3px 12px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;background:var(--card);color:var(--text-2);border:1.5px solid var(--line-2);border-radius:var(--r-sm);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.tv-mark-btn:hover{border-color:var(--blue);color:var(--text)}.tv-mark-btn--done{background:var(--ok-soft);border-color:var(--ok-line);color:var(--text)}.tv-mark-btn--missing{background:var(--no-soft);border-color:var(--no-line);color:var(--text)}.cw-claim-btn{padding:2px 10px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:border-color .13s,background .13s}.cw-claim-btn:hover{border-color:var(--blue);background:var(--card)}.cw-claim-btn--mine{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-ink);font-weight:600}.cw-claim-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap}.cw-claim-x{border:none;background:none;color:var(--text-3);font:inherit;font-size:var(--fs-sm);cursor:pointer;padding:0 2px}.cw-claim-x:hover{color:var(--text)}.cw-row-aged{opacity:.55}.cw-aged-toggle{display:flex;align-items:center;gap:8px;border:none;background:none;padding:0;margin-bottom:6px;font:inherit;font-size:var(--fs-md);font-weight:700;color:var(--text-2);cursor:pointer}.cw-done-card{margin-top:16px}.cw-done-card .cw-aged-toggle{width:100%;margin:0;padding:12px 16px}.cw-item--done .cw-item-title{color:var(--text-2)}.cw-aged-toggle:hover,.st-book{color:var(--text)}.st-book{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;cursor:pointer;font:inherit;margin-bottom:12px;transition:border-color .13s}.st-book:hover{border-color:var(--blue)}.st-book-title{font-size:var(--fs-md);font-weight:700}.st-section{margin-bottom:14px}.st-row{border-top:1px solid var(--line)}.st-row--removed{opacity:.5}.st-row-head{display:flex;align-items:center;gap:10px;width:100%;padding:9px 2px;border:none;background:none;font:inherit;color:var(--text);text-align:left;cursor:pointer}.st-row-name{font-weight:600;white-space:nowrap}.st-level{font-size:var(--fs-xs);font-weight:700;color:var(--blue-ink);background:var(--blue-soft);border-radius:var(--r-xs);padding:1px 7px;flex:none}.st-row-prereqs{margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-row-detail{padding:2px 2px 12px 24px;display:flex;flex-direction:column;gap:10px}.st-summary{font-size:var(--fs-md)}.st-save{align-self:flex-start;height:30px;padding:0 12px;font-size:var(--fs-sm)}.st-edges{display:flex;flex-direction:column;gap:6px}.st-chiprow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.st-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:1.5px solid var(--line-2);border-radius:var(--r-xs);background:var(--surface);font-size:var(--fs-sm)}.st-chip--human{border-color:var(--blue);background:var(--blue-soft)}.st-deps{margin:0}.st-row-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.st-row-actions .btn{height:30px;padding:0 12px;font-size:var(--fs-sm)}.st-header-actions{display:flex;align-items:center;gap:10px;flex:none}.st-stats{margin:-6px 0 14px}.st-frontier-row{padding:9px 2px;border-top:1px solid var(--line)}.st-frontier-actions,.st-frontier-row{display:flex;align-items:center;gap:14px}.st-frontier-actions{flex-shrink:0}.st-frontier-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.st-frontier-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.st-start{margin-left:auto;flex:none;height:32px;padding:0 14px}.st-session{display:flex;flex-direction:column;gap:14px}.st-session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.st-session-title{margin:0 0 2px;font-size:var(--fs-lg)}.st-question{display:flex;align-items:flex-start;gap:10px}.st-bloom{flex:none;margin-top:2px}.st-bloom--recall{background:var(--blue-soft);color:var(--blue-ink);border:1px solid var(--blue-ring)}.st-bloom--understand{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.st-bloom--apply{background:var(--ok-soft);color:var(--text);border:1px solid var(--ok-line)}.st-prompt{margin:0;font-size:var(--fs-md);line-height:1.55}.st-session-actions{display:flex;justify-content:flex-end;gap:8px}.st-clock{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.st-verdict{border-radius:var(--r-sm);border:1px solid var(--line-2);padding:12px 14px;display:flex;flex-direction:column;gap:8px}.st-verdict--correct{background:var(--ok-soft);border-color:var(--ok-line)}.st-verdict--partial{background:var(--amber-soft);border-color:var(--amber-line)}.st-verdict--incorrect{background:var(--no-soft);border-color:var(--no-line)}.st-verdict-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.st-rotate-note{margin:0;text-align:right}.st-feedback{margin:0;line-height:1.5}.st-rubric{margin:0}.st-mine{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.st-mine-text{margin:0;line-height:1.5;white-space:pre-wrap}.cw-filterbar{margin-bottom:18px}.cw-matchcount{margin:8px 0 0}.cw-dir+.cw-dir{border-top:1px solid var(--line)}.cw-dir-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 0;border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.cw-dir-chev{color:var(--text-3);transition:transform .13s}.cw-dir-chev.open{transform:rotate(90deg)}.cw-dir-name{font-weight:700;min-width:160px}.cw-dir-next{margin-left:auto;white-space:nowrap}.cw-dir-detail{padding:4px 0 16px 26px}.cw-chase-row,.cw-dir-detail{border-top:1px solid var(--line)}.cw-chase-row{display:flex;align-items:center;gap:12px;padding:10px 0;flex-wrap:wrap}.cw-chase-row .cw-email-row{margin:0 0 0 auto}.cw-notsending{margin-top:16px}.roster-grade{margin-left:auto}.cw-freshnote{margin:8px 0 0}.st-frontier-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.st-kind{font-size:var(--fs-xs)}.st-kind--theorem{background:var(--blue-soft);color:var(--blue-ink);border:1px solid var(--blue-ring)}.st-kind--procedure{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.st-kind--definition,.st-kind--notation{background:var(--surface);color:var(--text-2);border:1px solid var(--line-2)}.st-bloom--justify{background:var(--blue-soft);color:var(--blue-ink);border:1px solid var(--blue)}.st-bloom--drill{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}.st-bloom--synthesis{background:var(--blue-ink);color:#fff;border:1px solid var(--blue-ink)}.st-uses{margin:6px 0 0}.st-technique{font-size:var(--fs-xs);color:var(--blue-ink);background:var(--blue-soft);border-radius:var(--r-xs);padding:1px 8px}.st-proof-idea{margin:0;font-size:var(--fs-sm);line-height:1.5;padding:8px 10px;border-left:3px solid var(--blue);background:var(--surface)}.st-technique-group{opacity:.65;font-weight:400}.ev-page{max-width:640px}.ev-card{margin-bottom:14px;padding:18px}.ev-card--past{opacity:.6;padding:10px 18px}.ev-card-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.ev-when{font-size:var(--fs-sm);color:var(--text-2)}.ev-title{margin:0 0 4px;font-size:var(--fs-lg)}.ev-details,.ev-loc{margin:0 0 6px;font-size:var(--fs-md);color:var(--text-2)}.ev-ack-btn{width:100%;margin-top:10px;padding:12px;font-size:var(--fs-md)}.ev-acked{margin:10px 0 0;font-weight:600;color:var(--ok)}.ev-past{margin-top:18px}.ev-create{margin-bottom:24px;display:flex;flex-direction:column;gap:10px}.ev-create-grid{display:grid;grid-template-columns:2fr 1.4fr 1fr .8fr;grid-gap:10px;gap:10px}@media (max-width:760px){.ev-create-grid{grid-template-columns:1fr}}.ev-create-details{resize:vertical}.ev-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--text-2)}.ev-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:6px;gap:6px;margin-top:8px;max-height:220px;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:var(--r-sm)}.ev-create-foot{display:flex;align-items:center;gap:12px}.ev-row--canceled{opacity:.55}.ev-row-head{display:flex;align-items:center;gap:12px;width:100%;padding:0;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.ev-row-head .ev-title{flex:1 1;margin:0;font-size:var(--fs-md);font-weight:600}.ev-row-head .ev-when{min-width:150px}.ev-canceled-tag{font-size:var(--fs-xs);font-weight:600;color:var(--no)}.ev-ratio{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);white-space:nowrap}.ev-ratio--full{color:var(--ok)}.ev-detail{padding:0 18px 16px;border-top:1px solid var(--line)}.ev-buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px;padding-top:12px}.ev-bucket-head{display:flex;align-items:baseline;gap:14px;margin-bottom:8px}.ev-buckets{column-gap:32px}.ev-bucket-head h4{margin:0}.ev-names{display:flex;flex-wrap:wrap;gap:6px}.ev-nudge-note{margin:-4px 0 8px}.ev-name--dim{opacity:.7}.ev-actions{margin-top:12px}.roster-creds{font-size:var(--fs-xs);background:var(--ok-soft);border:1px solid var(--ok-line);border-radius:6px;padding:3px 8px;white-space:nowrap}.ev-toolbar{gap:14px;margin-bottom:14px}.ev-monthnav,.ev-toolbar{display:flex;align-items:center}.ev-monthnav{gap:8px;flex:1 1}.ev-navbtn{width:28px;height:28px;border:1px solid var(--line-2);border-radius:var(--r-xs);background:var(--card);color:var(--text-2);font-size:var(--fs-lg);line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ev-navbtn:hover{color:var(--text)}.ev-cal-month{font-weight:700;font-size:var(--fs-lg);min-width:150px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ev-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.ev-cal-dow{background:var(--surface);padding:6px 8px;font-size:var(--fs-xs);font-weight:600;color:var(--text-3)}.ev-cal-cell{background:var(--card);min-height:74px;min-width:0;padding:5px 6px;display:flex;flex-direction:column;gap:3px}.ev-cal-cell--out{background:var(--surface)}.ev-cal-cell--out .ev-cal-daynum{color:var(--text-3)}.ev-cal-cell--today .ev-cal-daynum{background:var(--text);color:var(--card);border-radius:999px}.ev-cal-daynum{font-size:var(--fs-xs);font-weight:600;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:2px}.ev-chip{display:flex;align-items:center;gap:4px;width:100%;min-width:0;border:none;border-radius:var(--r-xs);padding:3px 6px;font:inherit;font-size:var(--fs-xs);font-weight:600;text-align:left;cursor:pointer;background:var(--surface);color:var(--text)}.ev-chip--deadline:before,.ev-chip--todo:before{content:"";flex:none;align-self:stretch;width:3px;margin:-1px 1px -1px -2px;border-radius:2px;background:var(--amber)}.ev-chip--canceled{opacity:.5;text-decoration:line-through}.ev-chip--selected{outline:1.5px solid var(--blue);outline-offset:-1.5px}.ev-chip-title{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-chip-ratio{font-size:var(--fs-xs);font-weight:400;color:var(--text-3)}.ev-panel{margin-top:14px;padding:18px}.ev-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ev-section-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin:0 0 10px}.ev-inbox{margin-bottom:26px}.ev-inbox-count{background:var(--no);color:#fff;font-size:var(--fs-xs);font-weight:700;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.ev-card--inbox{border-left:3px solid var(--amber)}.ev-day{margin-bottom:16px}.ev-day-label{font-size:var(--fs-sm);font-weight:700;margin:0 0 6px}.ev-agenda-row{display:flex;align-items:baseline;gap:12px;background:var(--card);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:6px}.ev-agenda-time{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);min-width:64px}.ev-agenda-body{flex:1 1;display:flex;flex-direction:column}.ev-agenda-title{font-size:var(--fs-md);font-weight:600}.ev-agenda-loc{font-size:var(--fs-sm);color:var(--text-3)}.ev-agenda-ok{color:var(--ok);font-weight:700}.ev-agenda-todo{color:var(--amber);font-size:var(--fs-xs)}.m-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.m-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--card);border-bottom:1px solid var(--line)}.m-brand{flex:1 1;font-weight:700;font-size:var(--fs-md)}.m-main{flex:1 1;padding:16px 14px calc(40px + env(safe-area-inset-bottom))}.m-main .ev-page{max-width:none}.ev-cal-cell--pickable{cursor:pointer}.ev-cal-cell--pickable:hover{background:var(--blue-soft)}.ev-qc{margin-top:14px;display:flex;flex-direction:column;gap:10px}.ev-qc-head{display:flex;justify-content:space-between;align-items:baseline}.ev-qc-row{display:flex;gap:10px;flex-wrap:wrap}.ev-qc-time{width:110px}.ev-qc-kind{width:120px}.ev-push{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:14px 16px;margin-bottom:16px;font-size:var(--fs-md)}.ev-push .btn{flex:none}.ev-push-hint{margin-bottom:16px}.ev-agenda-row--todo{border-left:3px solid var(--amber)}.ev-agenda-row{align-items:center}.ev-agenda-details{display:block;font-size:var(--fs-xs);color:var(--text-2);margin-top:3px}.ev-agenda-confirm{flex:none;height:36px;padding:0 14px;font-size:var(--fs-sm)}.login-namerow{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.login-namerow .login-field{margin-top:0}.tv-assn-student{font-size:var(--fs-xs);font-weight:700;color:var(--text-3);flex:none}.legal-page{min-height:100vh;background:var(--bg-2);color:var(--text);display:flex;flex-direction:column}.legal-header{padding:22px clamp(20px,6vw,48px);border-bottom:1px solid var(--line);background:var(--card)}.legal-brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:var(--fs-lg);color:var(--text);text-decoration:none;letter-spacing:-.01em}.legal-stripes{display:inline-flex;flex-direction:column;border-radius:2px;overflow:hidden}.legal-stripes i{width:6px;height:6px}.legal-stripes i:first-child{background:var(--s-blue)}.legal-stripes i:nth-child(2){background:var(--s-orange)}.legal-stripes i:nth-child(3){background:var(--s-green)}.legal-stripes i:nth-child(4){background:var(--s-red)}.legal-body{flex:1 1;width:100%;max-width:720px;margin:0 auto;padding:40px clamp(20px,6vw,48px) 64px;font-size:var(--fs-lg);line-height:1.65}.legal-body h1{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0 0 4px;text-wrap:balance}.legal-updated{color:var(--text-3);font-size:var(--fs-sm);margin:0 0 28px}.legal-body h2{font-size:var(--fs-xl);letter-spacing:-.01em;margin:32px 0 8px}.legal-body p,.legal-body ul{margin:0 0 14px;color:var(--text-2)}.legal-body li{margin-bottom:8px}.legal-body strong{color:var(--text);font-weight:600}.legal-body a{color:var(--blue-ink);text-decoration:underline;text-underline-offset:2px}.legal-footer{border-top:1px solid var(--line);padding:18px clamp(20px,6vw,48px);display:flex;gap:20px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-3);background:var(--card)}.legal-footer a{color:var(--text-2);text-decoration:none}.legal-footer a:hover{text-decoration:underline}.legal-footer span{margin-left:auto}.roster-enroll{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.roster-enroll-title{font-weight:600;margin-bottom:2px}.roster-enroll p{margin:0;max-width:52ch}.roster-switch{flex:none;width:46px;height:26px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--surface-2);padding:2px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.roster-switch:disabled{opacity:.5;cursor:default}.roster-switch-knob{display:block;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--sh-sm);transition:transform .15s ease}.roster-switch.on{background:var(--ok);border-color:var(--ok)}.roster-switch.on .roster-switch-knob{transform:translateX(20px)}.roster-inactive{margin-top:24px}.roster-inactive summary{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:8px}.roster-row--inactive .roster-avatar,.roster-row--inactive .roster-name{opacity:.55}.login-forgot{margin:6px 0 0;text-align:right;font-size:var(--fs-sm)}.ev-grade-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.ev-grade-chip{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--r-xs);padding:3px 11px;font-size:var(--fs-xs);font-weight:600;color:var(--text-2);cursor:pointer}.ev-grade-chip:hover{border-color:var(--blue)}.ev-grade-chip.on{background:var(--blue-soft);border-color:var(--blue-ring);color:var(--blue-ink)}.ev-grade-tag{font-size:var(--fs-xs);font-weight:700;color:var(--text-3);margin-left:4px}.ins-page{min-height:100vh;background:var(--bg-2);color:var(--text);display:flex;flex-direction:column}.ins-header{padding:22px clamp(20px,6vw,48px);border-bottom:1px solid var(--line);background:var(--card)}.ins-body{flex:1 1;width:100%;max-width:660px;margin:0 auto;padding:36px clamp(20px,6vw,48px) 56px}.ins-body h1{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:0 0 20px;text-wrap:balance}.ins-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.ins-step{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;display:grid;grid-template-columns:1fr 170px;grid-gap:18px;gap:18px;align-items:center;box-shadow:var(--sh-sm);page-break-inside:avoid;break-inside:avoid}.ins-step-text{min-width:0}.ins-step-text h2{font-size:var(--fs-xl);margin:0 0 6px;letter-spacing:-.01em}.ins-step-text p{margin:0;color:var(--text-2);font-size:var(--fs-md);line-height:1.55}.ins-step-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:var(--fs-md);margin-bottom:8px}.ins-shot{width:170px;height:auto;border-radius:14px;border:1px solid var(--line-2);box-shadow:var(--sh)}.ins-art,.ins-shot{justify-self:center}.ins-art{display:flex;flex-direction:column;align-items:center;gap:8px}.ins-svg{width:170px;height:auto}.ins-appicon{border-radius:16px;box-shadow:var(--sh);border:1px solid var(--line-2)}.ins-caption{font-size:var(--fs-xs);color:var(--text-3);text-align:center;max-width:180px}.ins-note{margin-top:26px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;page-break-inside:avoid;break-inside:avoid}.ins-note h2{font-size:var(--fs-lg);margin:0 0 8px}.ins-note li,.ins-note p{color:var(--text-2);font-size:var(--fs-md);line-height:1.6;margin:0}.ins-note ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.ins-addr{display:block;margin:18px 0 6px;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(14px,3.6vw,18px);font-weight:600;text-align:center;-webkit-user-select:all;-moz-user-select:all;user-select:all;overflow-wrap:anywhere}.ins-lead{color:var(--text-2);font-size:var(--fs-lg);line-height:1.6;margin:0 0 22px}.ins-warn{border-left:3px solid var(--s-orange)}.ins-code{margin:12px 0 0;padding:14px 16px;max-height:320px;overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);line-height:1.5;color:var(--text-2);white-space:pre;-moz-tab-size:2;tab-size:2}.ins-copy{margin-top:12px}.ins-part{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:30px 0 12px}.ins-step-text .ins-addr+p,.ins-step-text p+p{margin-top:10px}.ins-step--stacked{grid-template-columns:1fr}.ins-crop{width:100%;max-width:440px;height:auto;border-radius:12px;border:1px solid var(--line-2);box-shadow:var(--sh-sm);justify-self:center}.ins-crop--menu{max-width:250px}.ins-pair{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:flex-start}.ins-pair figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}@media (max-width:560px){.ins-step{grid-template-columns:1fr}.ins-shot,.ins-svg{width:min(220px,70%)}}@media print{.ins-page{background:#fff}.ins-header,.legal-footer{display:none}.ins-note,.ins-step{box-shadow:none}.ins-body{padding:0;max-width:none}}.ev-toolbar--student{margin-bottom:12px}@media (max-width:700px){.ev-cal-cell{min-height:56px}.ev-chip{height:9px;padding:0;border-radius:var(--r-pill)}.ev-chip,.ev-chip--deadline{background:var(--blue)}.ev-chip--todo{background:var(--amber)}.ev-chip-ratio,.ev-chip-title,.ev-chip:before{display:none}}.st-frontier-meta{cursor:pointer}.st-frontier-summary--open{display:block;-webkit-line-clamp:unset;overflow:visible}.st-read{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.st-read-summary{margin:0;line-height:1.55}.st-read-proof{margin:0;line-height:1.5}.st-verdict--pending{border-color:var(--line)}.st-pending-badge{background:var(--blue-soft)}.st-recap{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}.st-recap-miss{border-left:3px solid var(--line);padding-left:10px}.st-recap-q{margin:0 0 2px}.st-recap-fb{margin:0;line-height:1.5}.bk{flex-direction:column}.bk,.bk-bar{display:flex;gap:10px}.bk-bar{position:-webkit-sticky;position:sticky;top:calc(-1 * var(--main-pad-top, 0px));z-index:2;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--bg);border-bottom:1px solid var(--line)}.bk-bar-right{display:flex;gap:8px}.bk-column{display:flex;flex-direction:column;gap:18px;max-width:900px;margin:0 auto;width:100%}.bk-page{scroll-margin-top:calc(var(--chrome-h, 100px) + 10px);content-visibility:auto;contain-intrinsic-size:auto 1100px}.bk-sheet{background:#fff;border-radius:var(--r-sm);box-shadow:0 1px 2px rgba(20,30,50,.08),0 6px 20px rgba(20,30,50,.06);overflow:hidden}.bk-sheet img{display:block;width:100%;height:auto;aspect-ratio:auto 83/129}.bk-caption{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 2px 0}.bk-num{flex-shrink:0}.bk-jump{font:inherit;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;height:30px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--text);cursor:pointer}.bk-jump-form{display:flex;align-items:center;gap:8px}.bk-jump-input{width:110px}html[data-focus="1"] .sidebar{display:none}html[data-focus="1"]{--side-w:0px}html[data-focus="1"] .main-content{max-width:none}.st-chrome{--chrome-h:100px;position:-webkit-sticky;position:sticky;top:calc(-1 * var(--main-pad-top, 0px));z-index:3;margin:0 -24px 18px;padding:12px 24px 0;background:var(--bg);border-bottom:1px solid var(--line);view-transition-name:lib-chrome}.st-chrome-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}.st-chrome-title{display:flex;align-items:baseline;gap:12px;min-width:0}.st-chrome-title h1{font-size:var(--fs-lg);line-height:1.3;overflow:hidden;text-overflow:ellipsis}.st-chrome .st-crumb,.st-chrome-title h1{margin:0;white-space:nowrap}.st-tabs-inner{flex-wrap:wrap;justify-content:space-between;gap:8px 10px;padding:8px 0 10px}.st-tabs-book,.st-tabs-inner{display:flex;align-items:center}.st-tabs-book{flex:1 1;justify-content:center;gap:8px}.st-tabs-right{display:flex;align-items:center;gap:10px}.page.page--lib{--lib-w:860px;max-width:none;margin-top:calc(-1 * var(--main-pad-top, 0px))}.page.page--lib.lib--wide{--lib-w:1320px}.page--lib .page-col{max-width:var(--lib-w)}.st-through{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex-shrink:0;height:34px;padding:0 32px 0 12px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background-color:var(--card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235a626d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.st-through:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-ring)}.page-col{max-width:860px;margin:0 auto}.st-finish{flex-direction:column}.ex-row,.st-finish{display:flex;gap:10px}.ex-row{align-items:center;padding:9px 2px;border-top:1px solid var(--line)}.ex-row:first-child{border-top:0}.ex-row .ex-line{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ex-row .act-pill,.ex-row .tag{flex-shrink:0}.ex-label--solved{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.ex-needs{margin:0}.ex-groups{margin:8px 0 0;display:flex;gap:14px}.ex-item,.ex-list{display:flex;flex-direction:column}.ex-item{gap:8px;padding:12px 2px;border-top:1px solid var(--line)}.ex-item:first-child{border-top:0}.ex-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.ex-label{font:inherit;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:2px 10px;border:1px solid var(--line-2);border-radius:var(--r-xs);background:var(--card);color:var(--text);cursor:pointer}span.ex-label{cursor:default}.ex-spacer{flex:1 1}.ex-statement{margin:0;line-height:1.55}.ex-actions{display:flex;justify-content:flex-end}.ex-panel{gap:10px;padding:10px 12px 12px;border:1px dashed var(--line-2);border-radius:var(--r-sm)}.ex-hints,.ex-panel{display:flex;flex-direction:column}.ex-hints{gap:6px;align-items:flex-start}.ex-hint{margin:0;line-height:1.5}.ex-note{margin:0;text-align:right}.vc-box{position:relative;display:flex;flex-direction:column}.vc-box>.tutor-textarea{padding-right:54px}.vc-btn{position:absolute;right:10px;bottom:10px;width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:var(--r-pill);background:var(--card);color:var(--text-2);cursor:pointer;transition:color .13s,border-color .13s,background .13s}.vc-btn:hover:not(:disabled){color:var(--blue);border-color:var(--blue)}.vc-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--blue-ring)}.vc-btn:disabled{opacity:.45;cursor:default}.vc-btn--rec,.vc-btn--rec:hover:not(:disabled){background:var(--no);border-color:var(--no);color:#fff}.vc-status{margin:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:var(--fs-xs);color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.vc-status--rec{color:var(--no)}.vc-dot{width:8px;height:8px;border-radius:50%;background:var(--no);animation:vc-pulse 1.2s ease-in-out infinite}.vc-spin{width:14px;height:14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:vc-spin .8s linear infinite}@keyframes vc-spin{to{transform:rotate(1turn)}}@keyframes vc-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.vc-dot,.vc-spin{animation:none}}.st-preview{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border:1px dashed var(--line-2);border-radius:var(--r-sm)}.st-preview-text{margin:0;line-height:1.55}.st-resume{margin:0;line-height:1.5}.st-awaiting{display:flex;flex-direction:column;gap:10px}.st-silly{margin-right:auto}.st-silly-box{display:flex;flex-direction:column;gap:8px;border:1px dashed var(--line);border-radius:var(--r-sm);padding:12px}.st-retired-note{margin:0}.sp-page{gap:16px}.sp-page,.sp-picker{display:flex;flex-direction:column}.sp-picker{gap:6px;max-width:320px}.sp-phone{width:390px;max-width:100%;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--bg,#f6f7f9);box-shadow:0 8px 30px rgba(0,0,0,.08)}.sp-phone .m-shell,.sp-shell{min-height:620px}.cw-undo{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:var(--r);background:var(--text);color:var(--card);box-shadow:var(--sh-lg);font-size:var(--fs-md)}.cw-undo .linkbtn{color:inherit;font-weight:700;text-decoration:underline}.log-actions{margin-left:auto;display:inline-flex;gap:12px;font-size:var(--fs-sm)}.log-card--editing{display:flex;flex-direction:column;gap:10px}.log-edit-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.log-edit-row .field{width:auto}.log-edit-actions{display:flex;justify-content:flex-end;gap:8px}.log-stale{margin:0 0 10px;padding:8px 12px;border-radius:var(--r-sm);background:var(--amber-soft);color:var(--text);font-size:var(--fs-sm)}.log-stale p{margin:0 0 4px}.log-edit-error{margin:0;color:var(--no);font-size:var(--fs-sm)}.log-edit-row .dropdown-trigger.tutor-select-trigger{width:auto;min-width:220px}.log-day{display:flex;flex-direction:column;gap:10px}.log-day+.log-day{margin-top:18px}.log-card--summarized,.log-summary{cursor:pointer}.log-summary{display:flex;flex-direction:column;gap:3px;width:100%;max-width:72ch;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-md);line-height:1.5;color:var(--text);text-align:left}.log-summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:var(--r-xs)}.log-summary-line b{font-weight:600}.log-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}.log-body--notes{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-2);color:var(--text-2);font-size:var(--fs-md);max-width:72ch;cursor:text}.cw-turnin{margin-left:6px;font-weight:400}.cw-turnin--no{background:var(--amber-soft);color:var(--amber)}.tv-assn-turnin{font-size:var(--fs-xs);color:var(--amber)}.ap-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:8px}.ap-head .tutor-label{margin-right:auto}.ap-search{width:220px;max-width:100%;height:32px;font-size:var(--fs-md)}.ap-scope{font-size:var(--fs-sm)}.ap-empty{margin:4px 0 0}.ap-group{display:flex;flex-direction:column;gap:4px}.ap-group+.ap-group{margin-top:10px}.ap-group-head{margin:0 0 2px}.ap-group-toggle{align-self:flex-start;padding:0;border:0;background:none;color:inherit;font-family:inherit;cursor:pointer}.ap-group-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.ap-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 6px;border:1.5px solid transparent;border-radius:var(--r-sm)}.ap-row:hover{background:var(--surface)}.ap-row--on{border-color:var(--blue-ring)}.ap-row--on,.ap-row--on:hover{background:var(--blue-soft)}.ap-main{flex:1 1 320px;min-width:0;display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;grid-gap:10px;gap:10px;padding:4px 0;border:0;background:none;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer}.ap-main:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--r-xs)}.ap-check{display:grid;place-items:center;width:18px;height:18px;border:1.5px solid var(--line-2);border-radius:var(--r-xs);background:var(--card);color:var(--blue-ink);font-size:var(--fs-xs);font-weight:700}.ap-row--on .ap-check{border-color:var(--blue)}.ap-title{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.ap-subject{color:var(--text-3)}.ap-due,.ap-subject{font-size:var(--fs-xs);white-space:nowrap}.ap-due{min-width:96px;color:var(--text-2);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ap-due--missing{color:var(--no)}.ap-who{display:inline-flex;flex-wrap:wrap;gap:4px}.ap-name{padding:1px 8px;border:1.5px solid var(--line-2);border-radius:var(--r-xs);background:var(--card);color:var(--text-3);font:inherit;font-size:var(--fs-xs);cursor:pointer}.ap-name--on{border-color:var(--blue);color:var(--blue-ink);font-weight:600}.ap-name:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.ap-marks{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:2px 0 4px 30px}.ap-mark{display:inline-flex;align-items:center;gap:5px}.ap-mark-name{font-size:var(--fs-sm);font-weight:600}.log-covered{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.log-covered-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-3)}.log-covered-item{max-width:100%}.log-covered-who{color:var(--text-3)}.dropdown-opt--sub{padding-left:30px;font-weight:400;color:var(--text-2)}.page{margin:0 auto;max-width:860px;padding:0 0 40px}.page--wide{max-width:1080px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{margin:0 0 3px;font-size:var(--fs-2xl);line-height:1.2;letter-spacing:-.01em;color:var(--text)}.page-sub{margin:0;font-size:var(--fs-sm);color:var(--text-2)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;flex:none}.btn.sm{height:30px;padding:0 12px;font-size:var(--fs-sm)}.seg{display:inline-flex;flex:none;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}.seg-btn{height:28px;padding:0 14px;border:none;background:none;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background .13s,color .13s}.seg-btn+.seg-btn{border-left:1.5px solid var(--line-2)}.seg-btn.active{background:var(--blue-soft);color:var(--blue-ink)}.seg-btn:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border-radius:var(--r-xs);background:var(--surface-2);color:var(--text-2);font-size:var(--fs-xs);font-weight:600;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.tag{text-decoration:none}a.tag:hover{text-decoration:underline}.tag--bad{background:var(--no-soft);color:var(--no)}.tag--warn{background:var(--amber-soft);color:var(--amber)}.tag--ok{background:var(--ok-soft);color:var(--ok)}.tag--ok.tag--hollow{background:transparent;box-shadow:inset 0 0 0 1px var(--ok-line)}.tag--ok-solid{background:var(--ok);color:#fff}.tag--outline{background:var(--card);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.tag--math{background:var(--subj-math-bg);color:var(--subj-math)}.tag--sci{background:var(--subj-sci-bg);color:var(--subj-sci)}.tag--ela{background:var(--subj-ela-bg);color:var(--subj-ela)}.tag--hist{background:var(--subj-hist-bg);color:var(--subj-hist)}.tag--lang{background:var(--subj-lang-bg);color:var(--subj-lang)}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;white-space:nowrap}.act-pill{height:30px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:border-color .13s,background .13s,color .13s}.act-pill:disabled{color:var(--text-3);border-color:var(--line);background:transparent;cursor:default}.act-pill:hover:not(:disabled),.act-pill[aria-pressed=true]{border-color:var(--blue);color:var(--blue-ink)}.act-pill[aria-pressed=true]{background:var(--blue-soft)}.act-pill--done:hover{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.act-link{padding:0;border:none;background:none;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.act-link:hover{color:var(--text)}.act-link--danger:hover{color:var(--no)}.act-link:focus-visible,.act-pill:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--r-xs)}.field-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.field{width:100%;height:38px;padding:0 11px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);outline:none;transition:border-color .13s,box-shadow .13s,background .13s}textarea.field{height:auto;padding:10px 11px;line-height:1.5;resize:vertical}select.field{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235a626d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}.field:focus{border-color:var(--blue);background-color:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.field--sm{width:auto;height:32px;font-size:var(--fs-md)}.filter-date{height:32px;padding:0 12px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:600;outline:none}.filter-date:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}.list-card{padding:4px 22px}.list-row{padding:12px 0}.list-row+.list-row{border-top:1px solid var(--line)}.group-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 8px;font-size:var(--fs-lg);font-weight:700;text-wrap:balance}.group-head-detail{font-size:var(--fs-sm);font-weight:600;color:var(--text-3)}.group-head--bad{color:var(--no)}.group-head--warn{color:var(--amber)}.group-head--sm{font-size:var(--fs-md)}*+.group-block{margin-top:20px}.empty{padding:22px;text-align:center;color:var(--text-2);font-size:var(--fs-md)}@media (max-width:560px){.page-head{flex-wrap:wrap}.list-card{padding:4px 16px}}.cw-controls .seg,.ev-toolbar .seg{margin-left:auto}.ev-qc-row .field{width:auto}.ev-qc-row .ev-qc-time{width:110px}.ev-qc-row .ev-qc-kind{width:130px}.sp-page>.page-head{margin-bottom:0}.dropdown-opt-label:first-letter{text-transform:uppercase}.cw-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px;margin:0 0 14px;font-size:var(--fs-md);color:var(--text-2)}.cw-summary-item{padding:0;border:0;background:none;font:inherit;color:inherit}.cw-summary-item strong{color:var(--text);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cw-summary-item strong.cw-summary-n--bad{color:var(--no)}.cw-summary-item strong.cw-summary-n--warn{color:var(--amber)}button.cw-summary-item{cursor:pointer;-webkit-text-decoration:underline dotted var(--line-2);text-decoration:underline dotted var(--line-2);text-underline-offset:4px}button.cw-summary-item:hover{color:var(--text);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}button.cw-summary-item:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:var(--r-xs)}.cw-summary-item--zero,.cw-summary-item--zero strong{color:var(--text-3)}.cw-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.cw-controls .filter-bar{flex:1 1 auto}.cw-day+.cw-day{margin-top:20px}.cw-day-card{padding:4px 22px}.cw-sblock{display:grid;grid-template-columns:170px minmax(0,1fr);grid-gap:14px;gap:14px;padding:10px 0}.cw-sblock+.cw-sblock{border-top:1px solid var(--line)}.cw-sblock-name{padding-top:2px;font-size:var(--fs-md);font-weight:600}.cw-items{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.cw-item{display:grid;grid-template-columns:minmax(0,1fr) 164px auto;align-items:start;grid-gap:12px;gap:12px}.cw-item-main{display:flex;flex-direction:column;gap:1px;min-width:0;padding-top:2px}.cw-item-title{font-size:var(--fs-md);line-height:1.4}.cw-item-title .tag{margin-left:8px;vertical-align:1px}.cw-item-due{font-size:var(--fs-xs);color:var(--text-3)}.cw-subject{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cw-dir-row .cw-fresh{min-width:120px;text-align:right}.ln-page{display:flex;flex-direction:column;gap:14px}.ln-nav{justify-content:space-between;gap:12px}.ln-nav,.ln-nav-right{display:flex;align-items:center}.ln-nav-right{gap:10px}.ln-nav--foot{justify-content:flex-end;padding-top:4px}.ln-card{display:flex;flex-direction:column;gap:10px}.ln-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ln-title{margin:0;font-size:var(--fs-lg)}.ln-text{margin:0;max-width:72ch;font-size:var(--fs-md);line-height:1.6}.ln-proof-idea{color:var(--text-2)}.ln-inline-label{font-weight:600;color:var(--text)}.ln-where{margin:0}.ln-graph{position:relative;width:100%;max-width:380px;margin:6px auto 12px}.ln-graph svg{display:block;width:100%;height:auto;overflow:visible}.ln-graph-axis{stroke:var(--text-3);stroke-width:1.2;fill:none}.ln-graph-curve{stroke:var(--text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.ln-graph-curve--dashed{stroke-dasharray:5 4}.ln-graph-pt{fill:var(--text)}.ln-graph-pt--open{fill:var(--card);stroke:var(--text);stroke-width:1.6}.ln-graph-label{position:absolute;color:var(--text-2);font-size:var(--fs-xs);line-height:1;white-space:nowrap}.ln-graph-label--x{transform:translate(-50%,2px)}.ln-graph-label--y{transform:translate(-100%,-50%)}.ln-graph-label--xaxis{transform:translate(2px,-50%)}.ln-graph-label--yaxis{transform:translate(-50%,-100%)}.ln-lecture{display:flex;flex-direction:column;gap:10px}.ln-lecture--compact{margin-top:4px}.ln-lecture-meta{margin:-4px 0 8px}.ln-group{display:flex;flex-direction:column;gap:10px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}.ln-lecture--compact .ln-group{padding:12px 14px;background:var(--surface)}.ln-group-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-3)}.ln-src{display:flex;flex-direction:column;gap:6px}.ln-src+.ln-src{padding-top:10px;border-top:1px solid var(--line)}.ln-src-foot,.ln-src-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ln-label{font-weight:600}.ln-note{margin:0}.ln-page-img{width:100%;max-width:640px;border:1px solid var(--line-2);border-radius:var(--r-sm)}.ln-locked{margin:0}.ln-quote{padding-left:12px;border-left:3px solid var(--line-2)}.ln-outline{margin:4px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-md)}.ln-outline li{display:flex;align-items:center;gap:8px}.ln-outline-link,.ln-section-link{border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.ln-outline-link:hover,.ln-section-link:hover{text-decoration:underline}.ln-section{display:flex;flex-direction:column;gap:10px;scroll-margin-top:calc(var(--chrome-h, 100px) + 10px);content-visibility:auto;contain-intrinsic-size:auto 700px}.ln-section-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ln-section-title{margin:0;display:flex;align-items:baseline;gap:8px;font-size:var(--fs-lg);font-weight:700}.ln-section-actions{margin-left:auto}.ln-lectures{padding:4px 24px}.ln-lec{display:grid;grid-template-columns:128px 1fr;grid-gap:0 20px;gap:0 20px;padding:16px 0;border-bottom:1px solid var(--line)}.ln-lec:last-child{border-bottom:none}.ln-lec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.ln-lec-titles{min-width:0}.ln-lec-date{display:flex;align-items:center;gap:8px;margin:0;padding-top:1px;font-size:var(--fs-md);font-weight:700;white-space:nowrap}.ln-lec-quiz{align-self:start;padding:0;border:none;background:none;color:var(--text);font:inherit;font-weight:700;cursor:pointer;border-radius:var(--r-xs)}.ln-lec-quiz:hover{color:var(--blue-ink)}.ln-lec-quiz .ln-ring{transition:transform var(--mo) var(--mo-ease)}.ln-lec-quiz:hover .ln-ring{transform:scale(1.25)}.ln-lec-quiz:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.ln-lec-title{margin:0;font-size:var(--fs-md);color:var(--text-2)}.ln-lec-meta{margin:4px 0 0}.ln-ring{flex-shrink:0}.ln-ring circle{fill:none;stroke:var(--line-2);stroke-width:2.5}.ln-ring .ln-ring-fill{stroke:var(--blue);stroke-linecap:round;transition:stroke-dasharray var(--mo) var(--mo-ease)}.ln-ring--full .ln-ring-fill{stroke:var(--ok)}@media (max-width:700px){.ln-lectures{padding:2px 16px}.ln-lec{grid-template-columns:1fr;gap:4px;padding:14px 0}.ln-lec-head{flex-direction:column}}.qz-head{position:relative;display:flex;flex-direction:column;gap:6px;margin-bottom:2px}.qz-line{flex-wrap:wrap;justify-content:space-between;gap:8px 12px}.qz-actions,.qz-line{display:flex;align-items:center}.qz-actions{gap:8px}.qz-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.qz-title{display:inline-flex;align-items:flex-start;gap:8px;min-width:0;padding:0;border:none;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:var(--r-xs)}.qz-title .st-session-title{margin:0}.qz-chev{flex-shrink:0;margin-top:.45em;color:var(--text-3);transition:transform var(--mo) var(--mo-ease),color var(--mo) var(--mo-ease)}.qz-title:hover .qz-chev,.qz-title[aria-expanded=true] .qz-chev{color:var(--text)}.qz-title[aria-expanded=true] .qz-chev{transform:rotate(180deg)}.qz-title:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.qz-steps{display:flex;gap:2px;flex-shrink:0;margin-top:-2px}.qz-step{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--r-sm);background:none;color:var(--text-2);cursor:pointer}.qz-step:hover:not(:disabled){background:var(--surface);color:var(--text)}.qz-step:disabled{color:var(--line-2);cursor:default}.qz-step:focus-visible{outline:2px solid var(--blue)}.qz-toc{position:absolute;z-index:3;top:100%;left:0;right:0;max-height:min(60vh,440px);overflow-y:auto;display:flex;flex-direction:column;padding:6px;margin-top:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 24px rgba(20,28,40,.12);animation:mo-in-down var(--mo) var(--mo-ease)}@keyframes mo-in-down{0%{opacity:0;transform:translateY(-4px)}}.qz-toc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:none;border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.qz-toc-row:hover{background:var(--surface)}.qz-toc-row[aria-current=true]{font-weight:700}.qz-toc-name{min-width:0;flex:1 1}.qz-items{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 16px}.qz-item{border:none;cursor:pointer;font:inherit;font-size:var(--fs-xs);font-weight:600;line-height:1.45;transition:box-shadow var(--mo) var(--mo-ease),background var(--mo) var(--mo-ease),color var(--mo) var(--mo-ease)}.qz-item:hover:not(:disabled){box-shadow:inset 0 0 0 1px currentColor}.qz-item--cur{background:var(--blue-soft);color:var(--blue-ink);box-shadow:inset 0 0 0 1px var(--blue-ring);font-weight:700}.qz-item--cur.tag--bad,.qz-item--cur.tag--ok,.qz-item--cur.tag--warn{box-shadow:inset 0 0 0 1px currentColor}.qz-item--cur.tag--ok{background:var(--ok-soft);color:var(--ok)}.qz-item--cur.tag--bad{background:var(--no-soft);color:var(--no)}.qz-item--cur.tag--warn{background:var(--amber-soft);color:var(--amber)}.qz-item--pending{box-shadow:inset 0 0 0 1px var(--line-2);background:var(--card)}.qz-item:disabled{cursor:default}.qz-item:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.qz-items .st-clock{margin-left:4px}.tag--blue{background:var(--blue-soft);color:var(--blue-ink)}.st-notes-head{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0 10px;background:var(--bg)}.st-notes-actions{display:flex;align-items:center;gap:12px}.st-notes-locate{display:grid;place-items:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--r-sm);background:none;color:var(--text-3);cursor:pointer}.st-notes-locate:hover{color:var(--text);background:var(--line)}.st-notes-locate:focus-visible{outline:2px solid var(--blue-ring)}.st-notes{position:fixed;inset:0;z-index:30;overflow:auto;padding:16px 16px 40px;background:var(--bg)}@media (min-width:1000px){.page-col.st-quiz-split{max-width:var(--lib-w,860px);display:grid;grid-template-columns:clamp(360px,calc((100% - 24px) * var(--quiz-share, .538)),calc(100% - 344px)) 24px minmax(0,1fr);align-items:start}.page-col.st-quiz-split>.st-split-handle{display:block;height:calc(100vh - var(--chrome-h, 100px) - 24px)}.page-col.st-quiz-split>.st-split-handle,.st-notes{position:-webkit-sticky;position:sticky;top:calc(var(--chrome-h, 100px) + 8px)}.st-notes{inset:auto;z-index:1;max-height:calc(100vh - var(--chrome-h, 100px) - 24px);padding:0 4px 12px 0}}.ln-row{display:flex;align-items:center;gap:10px}.ln-row-name{flex:1 1;min-width:0;font-weight:600}@media (max-width:560px){.cw-day-card{padding:4px 16px}.cw-sblock{grid-template-columns:1fr;gap:6px}.cw-item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "subject actions";row-gap:4px}.cw-item-main{grid-area:main}.cw-subject{grid-area:subject}.cw-item-actions{grid-area:actions;align-self:center}.cw-controls .seg{margin-left:0}.cw-dir-row{flex-wrap:wrap;gap:6px 10px}.cw-dir-name,.cw-dir-row .cw-fresh{min-width:0}.cw-dir-detail{padding-left:16px}.cw-undo{bottom:68px}.tutor-form{grid-template-columns:1fr}.tutor-rating{display:grid;grid-template-columns:repeat(3,1fr)}.ap-search{width:100%}.ap-main{grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"check title title" ". subject due";row-gap:2px}.ap-check{grid-area:check}.ap-title{grid-area:title;flex-wrap:wrap;white-space:normal;overflow:visible}.ap-subject{grid-area:subject}.ap-due{grid-area:due;min-width:0}}@media (max-width:700px){.ev-page--staff .ev-toolbar{flex-wrap:wrap;gap:10px}.ev-page--staff .ev-monthnav{flex:1 1 100%}.ev-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title kind" "when ratio";grid-gap:4px 10px;gap:4px 10px}.ev-row-head .ev-title{grid-area:title}.ev-row-head .tag{grid-area:kind;align-self:start;justify-self:end}.ev-row-head .ev-when{grid-area:when;min-width:0}.ev-row-head .ev-ratio{grid-area:ratio;justify-self:end}}.drag-handle{display:none;touch-action:none;z-index:2}.drag-handle--x{cursor:col-resize}.drag-handle--y{cursor:row-resize}.drag-handle--x:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;border-radius:1px;background:transparent;transition:background-color .12s linear}.drag-handle--x:hover:after,html[data-dragging=x] .drag-handle--x:after{background:var(--blue)}html[data-dragging]{-moz-user-select:none;user-select:none;-webkit-user-select:none}html[data-dragging=x] *{cursor:col-resize!important}html[data-dragging=y] *{cursor:row-resize!important}.ask-resize{position:fixed;top:0;bottom:0;right:calc(var(--ask-w) - 5px);width:10px;z-index:26}.st-sheet-grip{position:absolute;top:0;left:0;right:0;height:14px}.st-sheet-grip:after{content:"";position:absolute;top:4px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--line-2);transition:background-color .12s linear}.st-sheet-grip:hover:after,html[data-dragging=y] .st-sheet-grip:after{background:var(--blue)}:root{--ask-w:400px}.ask-panel{position:fixed;z-index:25;display:flex;flex-direction:column;background:var(--card);color:var(--text)}@media (min-width:561px){.ask-panel{width:380px;max-height:min(72vh,640px);z-index:45;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 34px rgba(20,30,50,.16);overflow:hidden}.ask-head{cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ask-panel--dragging .ask-head{cursor:-webkit-grabbing;cursor:grabbing}.ask-panel .ask-body:empty{display:none}}@media (hover:none){.ask-key{visibility:hidden}}@media (max-width:560px){.ask-panel{inset:0;height:auto;border-radius:0;box-shadow:none}html[data-ask="1"] .main-content{padding-bottom:76px}}.ask-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.ask-title{display:flex;flex-direction:column;gap:2px;min-width:0}.ask-topic{font-size:var(--fs-md);font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ask-head-actions{display:flex;align-items:center;gap:12px;padding-top:2px;flex:none}.ask-body{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:16px;padding:14px 16px 18px;font-size:var(--fs-md);line-height:1.55}.ask-empty{margin:4px 0 0}.ask-msg{min-width:0}.ask-msg--me{align-self:flex-end;max-width:90%;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.ask-where{font-size:var(--fs-xs);color:var(--text-3)}.ask-msg--me .ask-text{background:var(--blue-soft);border-radius:var(--r-lg) var(--r-lg) var(--r-xs) var(--r-lg);padding:9px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.ask-msg--me .ask-quoted{max-width:100%}.ask-quoted{margin:0;padding:2px 0 2px 10px;border-left:3px solid var(--line-2);color:var(--text-2);font-size:var(--fs-sm);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.ask-reply p{margin:0 0 8px;overflow-wrap:anywhere}.ask-reply ol,.ask-reply ul{margin:0 0 8px;padding-left:20px}.ask-reply li{margin:2px 0}.ask-reply>:last-child{margin-bottom:0}.ask-reply .tex-display{margin:8px 0}.ask-reply--streaming>:last-child:after{content:"";display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-.15em;background:var(--text-3);animation:ask-blink 1s steps(2) infinite}@keyframes ask-blink{to{opacity:0}}@media (prefers-reduced-motion:reduce){.ask-reply--streaming>:last-child:after{animation:none}}.ask-failed{margin:0;color:var(--no)}.ask-compose{flex:none;display:flex;flex-direction:column;gap:8px;padding:10px 16px 14px;border-top:1px solid var(--line);background:var(--card)}.ask-quote{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--r-sm);background:var(--surface)}.ask-quote .ask-quoted{flex:1 1;min-width:0;-webkit-line-clamp:3}.ask-input{width:100%;box-sizing:border-box;padding:9px 11px;border:1.5px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-md);line-height:1.5;resize:none;outline:none;transition:border-color .13s,box-shadow .13s,background .13s}.ask-input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 4px var(--blue-ring)}.ask-compose-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.ask-key{font-size:var(--fs-xs);color:var(--text-3)}.st-crumb{display:inline-block;margin-bottom:6px}.ask-code{font-family:var(--mono);font-size:var(--fs-sm);padding:1px 4px;border-radius:var(--r-xs);background:var(--surface-2)}.bk-text{padding:26px 32px 30px;max-width:72ch;margin:0 auto;font-size:var(--fs-lg);line-height:1.65}.bk-h{margin:0 0 12px;line-height:1.25;letter-spacing:-.01em}.bk-h1{font-size:var(--fs-2xl);margin-top:6px}.bk-h2{font-size:var(--fs-xl);margin-top:18px}.bk-h3,.bk-h4{font-size:var(--fs-lg);margin-top:14px}.bk-p{overflow-wrap:anywhere}.bk-list,.bk-p{margin:0 0 12px}.bk-list{padding-left:26px}.bk-list li{margin:2px 0}.bk-display{margin:10px 0 14px;overflow-x:auto;overflow-y:hidden}.bk-display .tex-display{margin:0}.bk-fig{margin:14px auto 16px;max-width:440px;text-align:center}.bk-fig img{display:block;width:100%;height:auto;margin:0 auto 6px}.bk-fig-missing{padding:18px 16px;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:var(--surface)}.bk-fig figcaption{text-align:left;line-height:1.5}@media (max-width:700px){.bk-text{padding:18px 16px 22px}}.bk-sheet--text{min-height:0}.seg--sm .seg-btn{padding:0 11px}.bk-jump{white-space:nowrap}@media (max-width:999px){.st-tabs-book .bk-bar-right{display:none}}.bk-fig-drawn{max-width:100%}:root{--side-w:220px;--mo:220ms;--mo-ease:cubic-bezier(0.2,0.7,0.2,1)}::view-transition-group(*){animation-duration:var(--mo);animation-timing-function:var(--mo-ease)}::view-transition-new(*),::view-transition-old(*){animation-duration:var(--mo);animation-timing-function:var(--mo-ease)}::view-transition-image-pair(lib-chrome),::view-transition-image-pair(sidebar){overflow:clip}::view-transition-new(lib-chrome),::view-transition-new(sidebar),::view-transition-old(lib-chrome),::view-transition-old(sidebar){object-fit:none;object-position:top left}.sidebar{view-transition-name:sidebar}.ask-panel{view-transition-name:ask-panel}::view-transition-group(ask-panel){z-index:3}@media (prefers-reduced-motion:no-preference){.st-notes{animation:mo-in-right var(--mo) var(--mo-ease)}html[data-notes-out] .st-notes{animation:mo-out-right var(--mo) var(--mo-ease) forwards}.ask-panel,.ls-bar{animation:mo-in-up var(--mo) var(--mo-ease)}html[data-ask-out] .ask-panel,html[data-listen-out] .ls-bar{animation:mo-out-down var(--mo) var(--mo-ease) forwards}}@keyframes mo-fade-out{to{opacity:0}}@keyframes mo-fade-in{0%{opacity:0}}html[data-vt=view]::view-transition-old(root){animation:mo-fade-out 90ms linear both}html[data-vt=view]::view-transition-new(root){animation:mo-fade-in .16s var(--mo-ease) 60ms both}@keyframes mo-in-right{0%{transform:translateX(24px);opacity:0}40%{opacity:1}}@keyframes mo-out-right{60%{opacity:1}to{transform:translateX(24px);opacity:0}}@keyframes mo-in-up{0%{transform:translateY(12px);opacity:0}}@keyframes mo-out-down{to{transform:translateY(12px);opacity:0}}@keyframes mo-in-left{0%{transform:translateX(-24px);opacity:0}}@keyframes mo-out-left{to{transform:translateX(-24px);opacity:0}}html:root::view-transition-new(sidebar):only-child{animation:mo-in-left var(--mo) var(--mo-ease)}html:root::view-transition-old(sidebar):only-child{animation:mo-out-left var(--mo) var(--mo-ease);opacity:1}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}@media (max-width:999px){.st-notes{inset:45vh 0 0 0;inset:45dvh 0 0 0;top:var(--sheet-top,45dvh);padding-top:0;border-top:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--sh-lg)}.main-content:has(.st-notes:not([hidden])){padding-bottom:calc(115vh - var(--sheet-top, 45dvh))}.st-sheet-grip{display:block}.st-notes-head{padding-top:12px}}.nav-short{display:none}@media (max-width:560px){.nav-full,.sidebar-nav li.nav-desk{display:none}.nav-short{display:inline}.sidebar-nav li{min-width:0}.sidebar-link{white-space:nowrap}.main-content{--main-pad-top:18px;overflow:visible;overflow-x:clip}.st-chrome{top:-44px;margin:0 -14px 14px;padding:8px 14px 0}.st-chrome-head{height:36px;min-height:0}.st-chrome-title{gap:10px}.st-chrome-title>.muted{display:none}.st-chrome-title h1{font-size:var(--fs-md)}.st-tabs-inner{padding:6px 0 8px}.st-frontier-row{flex-wrap:wrap;gap:6px 14px}.st-frontier-meta{flex:1 1 100%}.st-frontier-actions{margin-left:auto}.ask-panel,.st-notes{bottom:56px}html[data-focus="1"] .ask-panel,html[data-focus="1"] .st-notes{bottom:0}}.cf{--cf-bg:#16181d;--cf-surface:#1d2027;--cf-raise:#252932;--cf-line:#2c313b;--cf-text:#e4e7ec;--cf-muted:#8d94a1;--cf-faint:#636a77;--cf-accent:#7aa7ff;--cf-newbie:#a3a8b2;--cf-pupil:#5cc46e;--cf-specialist:#36c6ba;--cf-expert:#7d97ff;--cf-cm:#c97ce0;--cf-master:#ffa64d;--cf-gm:#ff6b6b;position:fixed;inset:0;z-index:120;flex-direction:column;background:var(--cf-bg);color:var(--cf-text);color-scheme:dark;overflow:auto}.cf,.cf-top{display:flex}.cf-top{position:-webkit-sticky;position:sticky;top:0;z-index:2;align-items:center;gap:16px;height:48px;padding:0 20px;background:var(--cf-surface);border-bottom:1px solid var(--cf-line)}.cf-crumb,.cf-link,.cf-sort{border:none;background:none;padding:0;font:inherit;color:var(--cf-muted);cursor:pointer}.cf-crumb{font-size:var(--fs-sm)}.cf-crumb:hover,.cf-link:hover,.cf-sort:hover{color:var(--cf-text)}.cf-brand{font-size:var(--fs-md);font-weight:700;letter-spacing:.01em}.cf-main{width:100%;max-width:1080px;margin:0 auto;padding:28px 20px 48px}.cf-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.cf-head h1{margin:0;font-size:var(--fs-2xl)}.cf-count{color:var(--cf-muted);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cf-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.cf-input{height:34px;padding:0 10px;border:1px solid var(--cf-line);border-radius:var(--r-sm);background:var(--cf-surface);color:var(--cf-text);font:inherit;font-size:var(--fs-sm)}.cf-chip:focus-visible,.cf-crumb:focus-visible,.cf-input:focus-visible,.cf-sort:focus-visible,.cf-title:focus-visible{outline:2px solid var(--cf-accent);outline-offset:1px}.cf-search{flex:1 1 260px;min-width:0}.cf-search::placeholder{color:var(--cf-faint)}.cf-search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.cf-range{display:flex;gap:6px}.cf-tags{position:relative}.cf-tags-btn{cursor:pointer}.cf-tags-btn[aria-expanded=true]{border-color:var(--cf-accent)}.cf-tags-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:3;display:flex;flex-wrap:wrap;gap:6px;width:min(520px,calc(100vw - 28px));padding:12px;background:var(--cf-raise);border:1px solid var(--cf-line);border-radius:var(--r-sm);box-shadow:0 12px 32px rgba(0,0,0,.45)}.cf-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border:1px solid var(--cf-line);border-radius:var(--r-xs);background:var(--cf-surface);color:var(--cf-text);font:inherit;font-size:var(--fs-xs);cursor:pointer}.cf-chip:hover{border-color:var(--cf-faint)}.cf-chip[aria-pressed=true]{border-color:var(--cf-accent);background:rgba(122,167,255,.14)}.cf-chip-n{color:var(--cf-faint);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cf-active-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.cf-link{font-size:var(--fs-sm)}.cf-empty{padding:40px 0;color:var(--cf-muted);text-align:center}.cf-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-md)}.cf-table th{padding:8px 12px;color:var(--cf-muted);font-size:var(--fs-xs);font-weight:600;text-align:left}.cf-table td,.cf-table th{border-bottom:1px solid var(--cf-line)}.cf-table td{padding:10px 12px;vertical-align:baseline}.cf-table tbody tr:nth-child(2n){background:rgba(255,255,255,.015)}.cf-table tbody tr:hover{background:var(--cf-surface)}.cf-sort{font-size:var(--fs-xs);font-weight:600}.cf-col-id{width:88px;white-space:nowrap}.cf-col-rating{width:80px;text-align:right!important}.cf-id{font-family:var(--mono);font-size:var(--fs-sm);color:var(--cf-muted)}.cf-title{color:var(--cf-text);font-weight:500;text-decoration:none}.cf-title:hover{color:var(--cf-accent)}.cf-flag{margin-left:8px;padding:1px 6px;border:1px solid var(--cf-line);border-radius:var(--r-xs);color:var(--cf-muted);font-size:var(--fs-xs)}.cf-col-tags{width:36%}.cf-tag-list{display:block;overflow:hidden;color:var(--cf-faint);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap}.cf-rating{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cf-rating--none{color:var(--cf-faint)}.cf-rating--newbie{color:var(--cf-newbie)}.cf-rating--pupil{color:var(--cf-pupil)}.cf-rating--specialist{color:var(--cf-specialist)}.cf-rating--expert{color:var(--cf-expert)}.cf-rating--cm{color:var(--cf-cm)}.cf-rating--master{color:var(--cf-master)}.cf-rating--gm{color:var(--cf-gm)}.cf-more{display:block;margin:16px auto 0;height:34px;padding:0 16px;border:1px solid var(--cf-line);border-radius:var(--r-sm);background:var(--cf-surface);color:var(--cf-text);font:inherit;font-size:var(--fs-sm);cursor:pointer}.cf-more:hover{border-color:var(--cf-faint)}.cf-credit{margin-top:32px;color:var(--cf-faint);font-size:var(--fs-xs)}.cf-credit a{color:var(--cf-muted)}@media (max-width:700px){.cf-col-tags{display:none}.cf-main{padding:20px 14px 40px}.cf-range{flex:1 1 100%}.cf-filters{position:relative}.cf-tags{position:static}.cf-tags-pop{left:0;right:0;width:auto}.cf-range .cf-input{flex:1 1}}.cf{--cf-editor:#1a1c22}.cf--work{overflow:hidden}.cf-navlink{height:48px;padding:0 4px;border:none;border-bottom:2px solid transparent;background:none;color:var(--cf-muted);font:inherit;font-size:var(--fs-sm);cursor:pointer}.cf-navlink:hover,.cf-navlink[aria-current=page]{color:var(--cf-text)}.cf-navlink[aria-current=page]{border-bottom-color:var(--cf-accent)}.cf-work{display:grid;flex:1 1;min-height:0;padding:8px;grid-gap:0;gap:0}.cf-pane,.cf-right{min-width:0;min-height:0;background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:var(--r-sm);overflow:hidden}.cf-pane{display:flex;flex-direction:column}.cf-right{display:grid;background:transparent;border:none}.cf-pane-body{flex:1 1;overflow:auto;padding:18px 22px 40px}.cf-tabs{display:flex;align-items:center;gap:2px;min-height:38px;padding:0 8px;border-bottom:1px solid var(--cf-line);background:var(--cf-raise);overflow-x:auto}.cf-tab{height:30px;padding:0 10px;border:none;border-radius:var(--r-xs);background:none;color:var(--cf-muted);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer}.cf-tab:hover{color:var(--cf-text)}.cf-tab[aria-selected=true]{background:rgba(255,255,255,.07);color:var(--cf-text);font-weight:600}.cf-x{position:absolute;top:-6px;right:-6px;width:16px;height:16px;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:var(--cf-line);color:var(--cf-muted);font-size:11px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s linear}.cf-pill-wrap:focus-within .cf-x,.cf-pill-wrap:hover .cf-x{opacity:1}@media (hover:none){.cf-x{opacity:1}}.cf-x:hover{background:var(--cf-faint);color:var(--cf-text)}.cf-ptitle{margin:0 0 10px;font-size:var(--fs-xl);line-height:1.3;text-wrap:balance}.cf-pmeta{align-items:center;gap:6px 14px;margin-bottom:16px;color:var(--cf-muted);font-size:var(--fs-sm)}.cf-pmeta,.cf-ptags{display:flex;flex-wrap:wrap}.cf-ptags{gap:6px;margin:-6px 0 16px}.cf-chip--static{cursor:default}.cf-h{margin:22px 0 8px;font-weight:700}.cf-h,.cf-text{font-size:var(--fs-md)}.cf-text{line-height:1.65;color:#d3d7de}.cf-text p,.cf-text ul{margin:0 0 12px}.cf-text ul{padding-left:22px}.cf-text .tex-inline{color:var(--cf-text)}.cf-display{margin:10px 0 14px;overflow-x:auto}.cf-pre{margin:0;padding:10px 12px;border-radius:var(--r-xs);background:rgba(0,0,0,.28);color:var(--cf-text);font-family:var(--mono);font-size:var(--fs-sm);line-height:1.5;white-space:pre;overflow-x:auto}.cf-example .cf-h{margin-top:22px}.cf-io{display:grid;grid-gap:6px;gap:6px;padding:12px;border-left:2px solid var(--cf-line)}.cf-io-label{color:var(--cf-muted);font-size:var(--fs-xs);font-weight:600}.cf-bar{display:flex;align-items:center;gap:14px;height:40px;padding:0 10px;background:var(--cf-surface);border:1px solid var(--cf-line);border-bottom:none;border-radius:var(--r-sm) var(--r-sm) 0 0}.cf-lang{color:var(--cf-text);font-size:var(--fs-sm);font-weight:600}.cf-bar-gap{flex:1 1}.cf-btn{height:30px;padding:0 14px;border:1px solid var(--cf-line);border-radius:var(--r-sm);background:var(--cf-raise);color:var(--cf-text);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.cf-btn:hover:not(:disabled){border-color:var(--cf-faint)}.cf-btn--primary{border-color:transparent;background:#2f9e6a;color:#fff}.cf-btn--primary:hover:not(:disabled){background:#34b077}.cf-btn:disabled{opacity:.45;cursor:default}.cf-editor{min-height:0;border-top-color:var(--cf-line);border:1px solid var(--cf-line);border-radius:0 0 var(--r-sm) var(--r-sm);overflow:hidden;background:var(--cf-editor)}.cf-cm{height:100%}.cf-cases{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:var(--r-sm);overflow:hidden}.cf-case,.cf-cases{display:flex;flex-direction:column;min-height:0}.cf-case{gap:6px;flex:1 1;padding:12px;overflow:auto}.cf-case>*{flex-shrink:0}.cf-case-input{padding:10px 12px;border:1px solid var(--cf-line);border-radius:var(--r-xs);background:rgba(0,0,0,.28);color:var(--cf-text);font-family:var(--mono);font-size:var(--fs-sm);line-height:1.5;resize:vertical}.cf-case-input:focus-visible{outline:2px solid var(--cf-accent);outline-offset:-1px}.cf-split{position:relative}.cf-split:after{content:"";position:absolute;border-radius:2px;background:transparent;transition:background .12s}.cf-split:active:after,.cf-split:hover:after{background:var(--cf-accent)}.cf-split--x{cursor:col-resize}.cf-split--x:after{top:30%;bottom:30%;left:2px;width:2px}.cf-split--y{cursor:row-resize}.cf-split--y:after{left:30%;right:30%;top:2px;height:2px}.cf{--cf-pass:#3fbf7f;--cf-fail:#ff6b6b;--cf-warn:#f2b866}.cf-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;vertical-align:1px;background:var(--cf-faint)}.cf-dot--pass{background:var(--cf-pass)}.cf-dot--error,.cf-dot--fail{background:var(--cf-fail)}.cf-dot--timeout{background:var(--cf-warn)}.cf-verdict{margin:0 0 4px;font-size:var(--fs-lg);font-weight:700}.cf-verdict-sub{margin-left:6px;color:var(--cf-muted);font-size:var(--fs-sm);font-weight:500}.cf-verdict--pass{color:var(--cf-pass)}.cf-verdict--error,.cf-verdict--fail{color:var(--cf-fail)}.cf-verdict--timeout{color:var(--cf-warn)}.cf-verdict--ran,.cf-verdict--running{color:var(--cf-muted)}.cf-note{margin:0;font-size:var(--fs-sm)}.cf-note--timeout{color:var(--cf-warn)}.cf-pre--fail{box-shadow:inset 2px 0 0 var(--cf-fail)}.cf-pre--pass{box-shadow:inset 2px 0 0 var(--cf-pass)}.cf-pre--error{color:#ffb4b4;white-space:pre-wrap}.cf-ms{color:var(--cf-faint);font-weight:500}.cf-muted{margin:0;color:var(--cf-muted);font-size:var(--fs-sm)}.cf-pills{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;padding-top:6px}.cf-pill-wrap{position:relative;display:inline-flex;align-items:center}.cf-pill{height:28px;padding:0 10px;border:none;border-radius:var(--r-sm);background:var(--cf-raise);color:var(--cf-muted);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer}.cf-pill:hover{color:var(--cf-text)}.cf-pill[aria-selected=true]{background:rgba(255,255,255,.1);color:var(--cf-text);font-weight:600}.cf-pill--add{color:var(--cf-faint);font-size:var(--fs-md)}.cf-pill:focus-visible,.cf-tab:focus-visible{outline:2px solid var(--cf-accent);outline-offset:1px}.cf-result-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}.cf-result-head .cf-pills,.cf-result-head .cf-verdict{margin:0}.cf-outs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:10px;gap:10px}.cf-outs--one{grid-template-columns:minmax(0,1fr)}.cf-out{display:flex;flex-direction:column;gap:6px;min-width:0}.cf-room{align-items:center;gap:12px}.cf-peers,.cf-room{display:inline-flex}.cf-peer{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:-4px;border:2px solid var(--cf-surface);border-radius:50%;color:#16181d;font-size:11px;font-weight:700}.cf-peer:first-child{margin-left:0}.cf-col-status{width:28px;padding-right:0!important}.cf-mark--solved{color:var(--cf-pass);font-weight:700}.cf-mark--tried{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cf-warn);vertical-align:2px}.cf-solved{color:var(--cf-pass);font-weight:600}.cf-top-gap{flex:1 1}.cf-join-page{display:grid;place-items:center;padding:24px 16px}.cf-join{display:flex;flex-direction:column;gap:14px;width:min(380px,100%);padding:28px;border:1px solid var(--cf-line);border-radius:var(--r-lg);background:var(--cf-surface)}.cf-join-title{margin:0;font-size:var(--fs-xl)}.cf-join-lede{margin:0;color:var(--cf-muted);line-height:1.5}.cf-join-field{display:flex;flex-direction:column;gap:6px;color:var(--cf-muted);font-size:var(--fs-sm)}.cf-join-error{margin:0;color:var(--cf-fail);font-size:var(--fs-sm)}.cf-join-go{height:36px}.cf-join-alt{align-self:center}.cf-phonetabs{display:none}@media (max-width:760px){.cf-phonetabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--cf-line);background:var(--cf-surface)}.cf-phonetab{flex:1 1;height:42px;border:none;border-bottom:2px solid transparent;background:none;color:var(--cf-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.cf-phonetab[aria-selected=true]{border-bottom-color:var(--cf-accent);color:var(--cf-text)}.cf-work{display:flex;flex-direction:column;padding:6px}.cf-split{display:none}.cf-pane,.cf-right{flex:1 1;min-height:0}.cf-right{display:flex;flex-direction:column}.cf-work[data-view=code] .cf-cases,.cf-work[data-view=code] .cf-pane,.cf-work[data-view=problem] .cf-right,.cf-work[data-view=tests] .cf-editor,.cf-work[data-view=tests] .cf-pane{display:none}.cf-cases,.cf-editor{flex:1 1;min-height:0}.cf-work[data-view=tests] .cf-bar{border-bottom:1px solid var(--cf-line);border-radius:var(--r-sm);margin-bottom:6px}.cf-bar{flex-wrap:wrap;height:auto;min-height:44px;padding:6px 10px;gap:6px 12px}.cf-lang{display:none}.cf-pane-body{padding:14px 16px 32px}.cf-outs{grid-template-columns:minmax(0,1fr)}.cf-case-input,.cf-input{font-size:16px}.cf-top{gap:12px;padding:0 14px}.cf-col-status{width:22px}.cf-col-id{width:84px}.cf-col-rating{width:54px}.cf-table td,.cf-table th{padding-left:8px;padding-right:8px}}@media (max-width:420px){.cf-brand{display:none}}.ls-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:0;border:none;border-radius:50%;background:none;cursor:pointer}.ls-bar button:focus-visible,.ls-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.ls-disc{fill:var(--blue-soft);transition:fill var(--mo) var(--mo-ease)}.ls-btn:hover .ls-disc{fill:var(--blue-ring)}.ls-tri{fill:var(--blue-ink)}.ls-spin{fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;transform-origin:16px 16px;animation:ls-turn 1.1s linear infinite}@keyframes ls-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ls-spin{animation-duration:3s}}.ls-btn--failed .ls-disc{fill:var(--no-soft)}.ls-btn--failed .ls-tri{fill:var(--no)}.ln-head .ls-btn{margin-left:auto}.ls-bar{position:fixed;z-index:40;left:calc(var(--side-w) + 16px);right:16px;bottom:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;grid-gap:4px 12px;gap:4px 12px;padding:10px 16px 12px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(20,30,50,.14)}@media (min-width:1100px){.ls-bar{left:auto;right:24px;bottom:20px;width:340px;gap:3px 10px;padding:8px 12px 9px 8px}.ls-bar .ls-bar-what b{font-size:var(--fs-xs)}}.ls-bar button{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;cursor:pointer}.ls-bar-play circle{fill:var(--blue)}.ls-bar-play path{stroke:#fff}.ls-bar-play .ls-bar-tri{stroke:none;fill:#fff}.ls-bar-what{min-width:0;display:flex;flex-direction:column}.ls-bar-what b{font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ls-bar-what span{font-size:var(--fs-xs);color:var(--text-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ls-bar-icon{width:32px;height:32px;border-radius:50%;color:var(--text-2)}.ls-bar-icon:hover{background:var(--surface);color:var(--text)}.ls-bar-track{grid-column:1/-1;display:flex;gap:2px;height:3px}.ls-bar-track i{position:relative;flex-basis:0;border-radius:2px;background:var(--line);overflow:hidden}.ls-bar-track em{position:absolute;inset:0 auto 0 0;background:var(--blue)}html[data-listening] .main-content{padding-bottom:140px}@media (max-width:560px){.ls-bar{left:10px;right:10px;bottom:66px}html[data-focus="1"] .ls-bar{bottom:10px}html[data-listening] body{padding-bottom:80px}}.ln-src{border-radius:var(--r-sm);transition:background var(--mo) var(--mo-ease),box-shadow var(--mo) var(--mo-ease)}.ln-src--speaking{background:var(--blue-soft);box-shadow:0 0 0 8px var(--blue-soft)}.gt{max-width:760px;margin:0 auto;padding:24px 16px 60px;flex-direction:column;gap:12px}.gt,.gt-top{display:flex}.gt-top{justify-content:space-between;align-items:baseline}.gt-count{font-size:var(--fs-sm);font-weight:600}.gt-clock{font-size:var(--fs-lg);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-2)}.gt-clock--over{color:var(--no)}.gt-bar{height:4px;border-radius:2px;background:var(--line);overflow:hidden}.gt-bar i{display:block;height:100%;background:var(--ok);transition:width var(--mo) var(--mo-ease)}.gt-card{display:flex;flex-direction:column;gap:14px}.gt-title{margin:0}.gt-head{display:flex;gap:6px}.gt-prompt{margin:0;font-size:var(--fs-md);line-height:1.55}.gt-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px;flex-wrap:wrap}.gt-note{margin:0;color:var(--no);font-size:var(--fs-sm)}.gt-answer{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface)}.gt-answer-text{line-height:1.6;white-space:pre-wrap}.gt-foot{text-align:center}.gt-key{font-weight:600}.gt-key,.gt-steps{margin:0;line-height:1.55}.gt-steps{padding-left:20px;display:flex;flex-direction:column;gap:6px}.gt-full summary{cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.gt-full[open] summary{margin-bottom:8px}.gt-top-right{display:flex;align-items:center;gap:12px}.pad{position:fixed;z-index:44;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 34px rgba(20,30,50,.16);overflow:hidden}.pad-head{justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--line);cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pad-head,.pad-tools{display:flex;align-items:center;gap:10px}.pad-tool{padding:3px 9px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--text-2);font:inherit;font-size:var(--fs-xs);font-weight:600;cursor:pointer}.pad-tool[aria-pressed=true]{background:var(--blue-soft);border-color:var(--blue-ring);color:var(--blue-ink)}.pad-canvas{flex:1 1;min-height:0;width:100%;touch-action:none;cursor:crosshair}.pad-grip{position:absolute;right:0;bottom:0;width:22px;height:22px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,var(--line-2) 50%,var(--line-2) 58%,transparent 58%,transparent 70%,var(--line-2) 70%,var(--line-2) 78%,transparent 78%)}@media (prefers-reduced-motion:no-preference){.pad{animation:mo-in-up var(--mo) var(--mo-ease)}html[data-pad-out] .pad{animation:mo-out-down var(--mo) var(--mo-ease) forwards}}.st-read-tabs{display:inline-flex;align-items:baseline;gap:14px}.st-read-tabs button{padding:4px 0;border:none;background:none;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--text-3);cursor:pointer}.st-read-tabs button[aria-selected=true]{color:var(--text);box-shadow:inset 0 -2px 0 var(--blue)}.st-read-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.st-read-book .bk-bar{position:-webkit-sticky;position:sticky;top:var(--read-head,44px);z-index:2;background:var(--bg);padding-block:8px}.ex-solution{padding-top:8px;border-top:1px solid var(--line)}.st-read-off{display:none}