:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0f13;--surface:#16171d;--surface-2:#1a1b22;--border:#2a2b35;--border-soft:#23242c;--text:#e8e8ee;--text-2:#c9c9d6;--muted:#8a8a99;--faint:#6f6f80;--accent:#8b7cf6;--accent-soft:#1d1b2e;--accent-text:#b3a8ff;--on-accent:#0e0f13;--success:#2fbf71;--success-bg:#10261b;--success-text:#7fe0a8;--error:#e05656;--error-bg:#2a1414;--error-text:#ff8a8a;--warning:#f0c46a;--warning-bg:#2a2414;--radius-sm:10px;--radius:14px;--radius-lg:22px;--tabbar-h:64px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--code-bg:#2b2c3a;--code-text:#e3ddff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}html{overscroll-behavior-y:none}body{background:var(--bg);color:var(--text);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit}a{color:var(--accent-text)}code{background:var(--code-bg);color:var(--code-text);font-family:var(--font-mono);vertical-align:baseline;overflow-wrap:anywhere;-webkit-box-decoration-break:slice;box-decoration-break:slice;border-radius:5px;padding:1px 5px;font-size:.86em;font-weight:500;line-height:1}strong code{font-weight:500}.boot{text-align:center;padding:48px 20px}.app{flex-direction:column;min-height:100%;display:flex}.screen{width:100%;max-width:640px;padding:calc(var(--safe-top) + 12px) 16px calc(var(--tabbar-h) + var(--safe-bottom) + 24px);flex:1;margin:0 auto}.screen-head{align-items:center;gap:6px;min-height:44px;margin:4px 0 14px;display:flex}.screen-head h1{letter-spacing:-.4px;margin:0;font-size:26px}.spacer{flex:1}.icon-btn{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;text-decoration:none;display:inline-grid}.icon-btn:active{background:var(--surface)}.btn{border-radius:var(--radius);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 18px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn+.btn{margin-top:8px}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-ghost{color:var(--accent-text);background:0 0}.btn-danger{background:var(--error-bg);color:var(--error-text)}.btn-block{width:100%;display:flex}.btn:disabled{opacity:.45;cursor:default}.panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);margin:10px 0;padding:14px}.panel h2,.panel h3{margin:0 0 6px;font-size:16px}.panel.center{text-align:center}.panel-link{text-align:left;width:100%;color:var(--text);cursor:pointer;align-items:center;gap:12px;text-decoration:none;display:flex}button.panel-link{font:inherit;background:0 0;border:0;padding:0}.panel-link .grow{flex:1;min-width:0}.panel-link .chev{color:var(--faint)}.muted{color:var(--muted);font-size:13px}.big-num{color:var(--accent-text);letter-spacing:-.5px;font-size:34px;font-weight:800}.tag{background:var(--accent-soft);color:var(--accent-text);border-radius:10px;padding:3px 9px;font-size:11px;display:inline-block}.badge{background:var(--success-bg);color:var(--success-text);border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:800;display:inline-block}.tabbar{z-index:20;padding:6px 8px calc(var(--safe-bottom) + 6px);border-top:1px solid var(--border-soft);-webkit-backdrop-filter:blur(14px);background:#121318eb;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{isolation:isolate;min-height:48px;color:var(--faint);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:10.5px;font-weight:650;text-decoration:none;display:flex;position:relative}.tab.active{color:var(--accent-text)}.tab-pill{z-index:-1;background:var(--accent-soft);border-radius:12px;position:absolute;inset:2px 14px}.sheet{z-index:30;max-width:640px;max-height:62vh;padding:8px 16px calc(var(--safe-bottom) + 16px);border-top:1px solid var(--border);background:var(--surface-2);border-radius:22px 22px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 40px #00000080}.sheet-handle{touch-action:none;cursor:grab;margin:-8px -16px 0;padding:8px 16px 6px}.sheet-grip{background:var(--border);border-radius:3px;width:38px;height:5px;margin:0 auto 10px}.sheet-row{border:0;border-top:1px solid var(--border-soft);width:100%;min-height:44px;color:var(--text);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;font-weight:600;text-decoration:none;display:flex}.chev{color:var(--faint);display:inline-grid}.disclosure-body{color:var(--text-2);font-size:14px;overflow:hidden}.disclosure-body p{margin:0 0 10px}.source{min-height:44px;color:var(--accent-text);align-items:center;margin:4px 0 8px;font-size:12px;text-decoration:none;display:flex}.seg{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:3px;display:flex}.seg-opt{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:10px 4px;font-size:12.5px;font-weight:650;position:relative}.seg-opt.on{color:var(--on-accent)}.seg-pill{background:var(--accent);border-radius:9px;position:absolute;inset:0}.seg-label{position:relative}.meter{background:var(--border-soft);border-radius:4px;height:6px;overflow:hidden}.progress{background:var(--border-soft);border-radius:3px;height:4px;margin:0 0 14px;overflow:hidden}.meter-fill,.progress-fill{background:var(--accent);border-radius:4px;height:100%;display:block}.tone-good{background:var(--success)}.tone-mid{background:var(--warning)}.tone-low{background:var(--error)}.tone-neutral{background:var(--muted)}.tone-none{background:0 0}.domain-row{grid-template-columns:1fr auto;align-items:center;gap:4px 10px;margin:10px 0;font-size:13px;display:grid}.domain-row .meter{grid-column:1/-1}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--muted);cursor:pointer;border-radius:999px;padding:10px 14px;font-size:12.5px;font-weight:650}.chip.on{background:var(--accent-soft);color:var(--accent-text);border-color:#3a3366}.diagram{margin:10px 0}.diagram figcaption{color:var(--muted);margin-top:6px;font-size:12px}.dg-bar{gap:4px;display:flex}.dg-seg{text-align:center;border-radius:8px;flex-direction:column;flex-basis:0;padding:9px 6px;font-size:11px;display:flex}.dg-success{background:var(--success-bg);color:var(--success-text)}.dg-error{background:var(--error-bg);color:var(--error-text)}.dg-accent{background:var(--accent-soft);color:var(--accent-text)}.dg-neutral{background:var(--border-soft);color:var(--text-2)}.dg-flow{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.dg-step{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;padding:8px 10px;font-size:13px;display:flex;position:relative}.dg-step+.dg-step:before{content:"↓";color:var(--faint);font-size:11px;position:absolute;top:-15px;left:50%}.dg-step span,.dg-seg span{color:var(--muted);font-size:11px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:48px 16px}.big-emoji{font-size:44px}.banner{border-radius:var(--radius);background:var(--warning-bg);color:#f3e3bf;border:1px solid #5c4a1f;align-items:center;gap:10px;margin:8px 0;padding:10px 12px;font-size:13px;display:flex}.banner .grow{flex:1}.input,input[type=search]{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;padding:11px 12px;font-size:16px}.fatal{white-space:pre-wrap;color:var(--error-text);padding:24px}.section-title{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:22px 0 4px;font-size:12px;font-weight:800}.stepper-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.stepper{align-items:center;gap:4px;display:flex}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:32px;font-weight:800}.stepper .icon-btn{border:1px solid var(--border);color:var(--text);font-size:20px}.flag-list{margin:0;padding:0;list-style:none}.flag-list li{border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;padding:8px 0;display:flex}.flag-list .grow{flex:1;min-width:0}.update-toast{top:calc(var(--safe-top) + 8px);z-index:40;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:8px;max-width:616px;margin:0 auto;padding:8px 8px 8px 14px;font-weight:650;display:flex;position:fixed;left:12px;right:12px;box-shadow:0 12px 30px #00000080}.update-toast .grow{flex:1}.update-toast .btn{min-height:44px;padding:8px 14px}.error-toast{border-color:var(--error);background:var(--error-bg);color:var(--error-text)}.term{cursor:help;-webkit-text-decoration:underline dotted var(--accent-text);text-decoration:underline dotted var(--accent-text);text-underline-offset:3px;-webkit-tap-highlight-color:transparent;border-radius:3px;text-decoration-thickness:1.5px}.term:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.term-backdrop{z-index:45;background:#00000073;position:fixed;inset:0}.sheet.term-sheet{z-index:50;touch-action:none}.term-title{margin:0 0 4px;font-size:19px}.term-aka{margin-bottom:8px;font-size:13px}.term-def{margin:0 0 10px;font-size:15px;line-height:1.5}.term-extra{color:var(--text-2);margin:0 0 10px;font-size:14px;line-height:1.5}.domain-link{color:var(--text);text-decoration:none}.readiness-key{margin:0 0 6px;font-size:12.5px}.key{font-weight:700}.key.good,.status-on-track{color:var(--success-text)}.key.mid,.status-close{color:var(--warning)}.key.low,.status-needs-work{color:var(--error-text)}.status{font-size:12.5px;font-weight:650}.status-not-started,.status-early{color:var(--muted);font-weight:500}.section-num,.module-num{color:var(--accent);background:#211d3a;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.section-num{width:40px;height:40px;font-size:18px}.module-num{width:26px;height:26px;font-size:13px}.module-row{align-items:flex-start;gap:10px;display:flex}.section-title{letter-spacing:-.3px;text-transform:none;color:var(--text);margin:4px 0 0;font-size:22px}.takeaways ol{margin:0;padding-left:20px}.takeaways li{margin:10px 0}.takeaways li p{color:var(--text-2);margin:2px 0 0;font-size:14px;line-height:1.5}.runner{width:100%;max-width:640px;padding:calc(var(--safe-top) + 6px) 16px calc(var(--safe-bottom) + 32px);flex:1;margin:0 auto}.runner.has-sheet{padding-bottom:64vh}.runner-head{justify-content:space-between;align-items:center;min-height:44px;display:flex}.runner-count{color:var(--muted);font-size:13px;font-weight:650}.icon-btn-spacer{width:44px}.qv-top{justify-content:space-between;align-items:center;min-height:44px;display:flex}.qv-stem{letter-spacing:-.1px;margin:6px 0 14px;font-size:17px;font-weight:650;line-height:1.45}.qv-choices{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.choice{text-align:left;cursor:pointer;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-height:52px;color:var(--text);gap:11px;padding:12px;font-size:14.5px;transition:border-color .2s,background .2s,opacity .2s,transform .1s;display:flex}.choice:not([aria-disabled=true]):active{transform:scale(.985)}.choice[aria-disabled=true]{cursor:default;color:var(--text)}.choice-multi .choice-letter{border-radius:6px}.qv-code{background:var(--code-bg);border-radius:12px;margin:-4px 0 14px;overflow:hidden}.qv-code figcaption{letter-spacing:.3px;color:var(--muted);padding:7px 12px 0;font-size:11.5px;font-weight:700}.qv-code pre{-webkit-overflow-scrolling:touch;margin:0;padding:6px 12px 12px;overflow-x:auto}.qv-code pre code{white-space:pre;overflow-wrap:normal;background:0 0;width:max-content;min-width:100%;padding:0;font-size:12.5px;font-weight:400;line-height:1.5;display:block}@media (width<=480px){.qv-code{border-radius:0;margin-inline:-16px}.panel .qv-code{margin-inline:-14px}.qv-code figcaption,.qv-code pre{padding-inline:10px}.qv-code pre code{font-size:12px}}.qv-select{color:var(--accent-text);letter-spacing:.2px;margin:-6px 0 12px;font-size:13.5px;font-weight:750}.guess-row{justify-content:flex-end;margin:-4px 0 -6px;display:flex}.check-bar{bottom:calc(var(--safe-bottom) + 12px);margin-top:14px;position:sticky}.choice-letter{background:var(--border-soft);min-width:26px;height:26px;color:var(--muted);border-radius:8px;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 5px;font-size:12px;font-weight:800;display:inline-flex}.choice-letter svg{width:14px;height:14px}.choice-body{flex-direction:column;flex:1;gap:5px;display:flex}.choice-reason{color:var(--text-2);font-size:13px;display:block;overflow:hidden}.choice-yours{color:var(--muted);font-size:12.5px}.choice-selected{border-color:var(--accent);background:var(--accent-soft)}.choice-selected .choice-letter{background:var(--accent);color:var(--on-accent)}.choice-correct{border-color:var(--success);background:var(--success-bg)}.choice-correct .choice-letter{background:var(--success);color:var(--bg)}.choice-wrong{border-color:var(--error);background:var(--error-bg)}.choice-wrong .choice-letter{background:var(--error);color:var(--bg)}.choice-muted{opacity:.8}.verdict-line{align-items:center;gap:8px;margin:2px 0 10px;font-size:17px;font-weight:800;display:flex}.verdict.ok .verdict-line{color:var(--success-text)}.verdict.bad .verdict-line{color:var(--error-text)}.takeaway{border-left:3px solid var(--accent);background:#211d3a;border-radius:10px;margin-bottom:8px;padding:11px 12px;font-size:14px}.related{margin:0 0 8px;padding-left:18px}.related li{margin:6px 0}.summary{max-width:480px;padding:calc(var(--safe-top) + 64px) 24px calc(var(--safe-bottom) + 24px);text-align:center;flex-direction:column;gap:12px;margin:0 auto;display:flex}.summary .score{color:var(--accent-text);font-size:44px;font-weight:800}.flag.on{color:var(--warning)}.why{background:var(--surface);border-radius:10px;margin-bottom:8px;padding:11px 12px;font-size:14px;line-height:1.5}.terms-list{margin:0 0 8px}.terms-list>div{border-bottom:1px solid var(--border-soft);padding:6px 0}.terms-list>div:last-child{border-bottom:0}.terms-list dt{color:var(--text);font-weight:700}.terms-list dd{margin:2px 0 0}.topic-row{border-top:1px solid var(--border-soft);align-items:center;gap:10px;padding:10px 0;display:flex}.topic-row:first-child{border-top:0;padding-top:0}.topic-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.topic-name{font-weight:650}.topic-row .muted{font-size:12.5px}.topic-row .chip{flex:none;text-decoration:none}.d-block{margin:2px 0 8px;display:block}.lesson-title{letter-spacing:-.4px;margin:0 0 6px;font-size:26px}.lesson-summary{border-left:3px solid var(--accent);background:#211d3a;border-radius:10px;margin:10px 0;padding:12px;font-size:15px}.key-points{margin:0;padding-left:18px}.key-points li{margin:6px 0}.lesson-section{margin:22px 0}.lesson-section h2{margin:0 0 8px;font-size:18px}.lesson-section p,.lesson-section li{color:var(--text-2);font-size:15px;line-height:1.6}.lesson-sources h3{margin:20px 0 0;font-size:14px}.lesson-sources .source{margin:6px 0}.lesson-overlay{z-index:40;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.lesson-overlay-head{z-index:1;padding:calc(var(--safe-top) + 8px) 16px 8px;background:var(--bg);border-bottom:1px solid var(--border-soft);position:sticky;top:0}.lesson-overlay-body{max-width:640px;padding:8px 16px calc(var(--safe-bottom) + 24px);margin:0 auto}.lesson-example{border:1px solid var(--border-soft);border-left:3px solid var(--success-text);background:var(--surface);border-radius:10px;margin:10px 0;padding:10px 12px}.lesson-example>strong{letter-spacing:.4px;text-transform:uppercase;color:var(--success-text);margin-bottom:2px;font-size:12px;display:block}.lesson-example p,.lesson-example li{margin:6px 0;font-size:14px}.lesson .terms-list{margin:0 0 8px}.lesson .terms-list>div{border-bottom:1px solid var(--border-soft);padding:6px 0}.lesson .terms-list>div:last-child{border-bottom:0}.lesson .terms-list dt{color:var(--text);font-weight:700}.lesson .terms-list dd{color:var(--text-2);margin:2px 0 0}.course-entry{border-color:var(--accent)}.center-text{text-align:center;margin:8px 0 0;font-size:13px}.rules{color:var(--text-2);margin:0;padding-left:18px;font-size:14px}.rules li{margin:4px 0}.timer{font-variant-numeric:tabular-nums;color:var(--text-2);align-items:center;gap:5px;font-weight:750;display:inline-flex}.timer svg{width:16px;height:16px}.timer.low{color:var(--error-text)}.mock-tools{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.mock-nav{gap:8px;margin-top:16px;display:flex}.mock-nav .btn{flex:1;margin-top:0}.navgrid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;margin:8px 0 14px;display:grid}.navcell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--muted);cursor:pointer;border-radius:9px;font-size:12px;font-weight:750;position:relative}.navcell.answered{background:var(--accent-soft);color:var(--accent-text);border-color:#3a3366}.navcell.current{outline:2px solid var(--accent)}.navcell.flagged:after{content:"";background:var(--warning);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}.result-score{letter-spacing:-1px;font-size:52px;font-weight:800}.result-pass{color:var(--success-text)}.result-fail{color:var(--error-text)}.review-head{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.review-head h3{margin:0}.vocab-letter{color:var(--muted);margin:18px 0 4px;font-size:12px;font-weight:800}.vocab-list{margin:0;padding:0;list-style:none}.vocab-item{border:0;border-bottom:1px solid var(--border-soft);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 0;display:flex}.vocab-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.vocab-term{font-weight:700}.vocab-def{color:var(--text-2);font-size:13.5px}
