:root{--bg:#eef3f1;--shell:#f7faf8;--surface:#fff;--ink:#12211c;--ink-muted:#57685f;--ink-faint:#93a199;--line:#dee7e1;--brand:#0b7a63;--brand-ink:#fff;--brand-soft:#e1f2ec;--amber:#de9a2e;--amber-soft:#fbf0dc;--good:#2f9e5b;--good-soft:#e4f5ea;--bad:#d2493b;--bad-soft:#fbe8e5;--ring-track:#e3ece7;--shadow:0 1px 2px #12211c0a, 0 8px 24px -12px #12211c2e}@media (prefers-color-scheme:dark){:root{--bg:#0b120f;--shell:#101915;--surface:#16211c;--ink:#eaf2ed;--ink-muted:#96a69d;--ink-faint:#5b685f;--line:#25332c;--brand:#35c79e;--brand-ink:#06140f;--brand-soft:#132a22;--amber:#eab35c;--amber-soft:#2a2115;--good:#4cc17e;--good-soft:#132a1d;--bad:#e38077;--bad-soft:#2e1a17;--ring-track:#233028;--shadow:0 1px 2px #0000004d, 0 12px 28px -14px #0009}}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:ui-rounded,SF Pro Rounded,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}button,input{font-family:inherit}a{color:inherit;text-decoration:none}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;margin:0}p{margin:0}.shell{background:var(--bg);min-height:100vh}.layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:2px;width:236px;height:100vh;padding:22px 14px;display:none;position:sticky;top:0}.sidebar .brand-mark{padding:2px 10px 6px}.sidebar-streak{background:var(--amber-soft);color:var(--amber);font-variant-numeric:tabular-nums;border-radius:100px;align-items:center;gap:6px;width:fit-content;margin:6px 10px 18px;padding:7px 12px;font-size:13.5px;font-weight:800;display:flex}.side-link{cursor:pointer;text-align:left;width:100%;color:var(--ink-muted);background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:11px 12px;font-size:14.5px;font-weight:700;display:flex}.side-link svg{flex-shrink:0;width:19px;height:19px}.side-link.active{background:var(--brand-soft);color:var(--brand)}.side-link:hover{background:var(--ring-track)}.side-link.active:hover{background:var(--brand-soft)}.main-col{flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.content-wrap{flex:1;width:100%;max-width:900px;margin:0 auto}.narrow{max-width:600px;margin:0 auto}.centered-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.centered-shell main{width:100%;max-width:480px}@media (min-width:640px){.centered-shell main{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px}}@media (min-width:768px){.sidebar{display:flex}.main-col .topbar{display:none}main{padding-bottom:40px}}@media (min-width:1024px){.content-wrap,.main-col .topbar{max-width:1020px}}.hero-row{flex-direction:column;gap:14px;display:flex}@media (min-width:640px){.hero-row{flex-direction:row}.hero-row>*{flex:1}}.subject-grid{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:640px){.subject-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.subject-grid{grid-template-columns:repeat(3,1fr)}}.topbar{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px 10px;display:flex}.brand-mark{letter-spacing:-.01em;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.brand-mark .dot{background:var(--brand);border-radius:50%;width:9px;height:9px}.streak-pill{background:var(--amber-soft);color:var(--amber);font-variant-numeric:tabular-nums;border-radius:100px;align-items:center;gap:6px;padding:6px 11px;font-size:13.5px;font-weight:800;display:flex}main{flex:1;padding:28px 18px 90px;overflow-y:auto}@media (min-width:768px){main{padding-top:36px}}.tabbar{background:var(--surface);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));z-index:10;flex-shrink:0;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 2px;font-size:11px;font-weight:700;display:flex}.tab svg{width:21px;height:21px}.tab.active{color:var(--brand)}@media (min-width:768px){.tabbar{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:19px}.stack{flex-direction:column;gap:14px;display:flex}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between;align-items:center;display:flex}.btn{cursor:pointer;letter-spacing:-.005em;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:15.5px;font-weight:800;transition:transform 80ms;display:inline-flex}.btn svg{flex-shrink:0;width:17px;height:17px}.btn:active{transform:scale(.97)}.btn-primary{background:var(--brand);color:var(--brand-ink);width:100%}.btn-ghost{background:var(--brand-soft);color:var(--brand);width:100%}.btn-outline{color:var(--ink-muted);border:1.5px solid var(--line);background:0 0;width:100%}.btn:disabled{opacity:.45;cursor:default}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:12px;font-weight:800}.hero-icon{background:var(--brand);width:58px;height:58px;color:var(--brand-ink);border-radius:18px;justify-content:center;align-items:center;display:flex}.hero-icon svg{width:30px;height:30px}.name-input{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:16px;padding:14px 16px;font-size:16px;font-weight:600}.name-input:focus{outline:2px solid var(--brand);outline-offset:1px}@keyframes pop-in{0%{opacity:0;transform:scale(.86)}65%{opacity:1;transform:scale(1.035)}to{transform:scale(1)}}.pop-in{animation:.32s cubic-bezier(.25,1.4,.5,1) both pop-in}.timerbar-track{background:var(--ring-track);border-radius:4px;height:7px;overflow:hidden}.timerbar-fill{background:var(--brand);border-radius:4px;height:100%;transition:width .1s linear}.timerbar-fill.urgent{background:var(--bad)}.score-tile{text-align:center}.score-tile .n{font-variant-numeric:tabular-nums;color:var(--brand);font-size:32px;font-weight:800}.score-tile .l{color:var(--ink-muted);letter-spacing:.03em;text-transform:uppercase;font-size:12px;font-weight:700}.feedback-banner{border-radius:16px;align-items:center;gap:10px;padding:14px 16px;font-size:15.5px;font-weight:800;display:flex}.feedback-banner.good{background:var(--good-soft);color:var(--good)}.feedback-banner.bad{background:var(--bad-soft);color:var(--bad)}.feedback-banner.neutral{background:var(--ring-track);color:var(--ink-muted)}.feedback-banner svg{flex-shrink:0;width:21px;height:21px}.subj-card{align-items:center;gap:13px;display:flex}.ring{flex-shrink:0;width:52px;height:52px;position:relative}.ring svg{transform:rotate(-90deg)}.ring-pct{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex;position:absolute;inset:0}.subj-name{font-size:16px;font-weight:800}.subj-meta{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.chev{color:var(--ink-faint);margin-left:auto}.chev svg{width:18px;height:18px}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px}.stat-tile .n{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.stat-tile .l{color:var(--ink-muted);margin-top:2px;font-size:12px;font-weight:700}.bar-row{align-items:center;gap:10px;display:flex}.bar-track{background:var(--ring-track);border-radius:5px;flex:1;height:9px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:5px;height:100%}.empty-note{text-align:center;color:var(--ink-muted);padding:26px 14px;font-size:13.5px;font-weight:600}.hist-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 0;font-size:14px;display:flex}.hist-row:last-child{border-bottom:none}.hist-score{font-variant-numeric:tabular-nums;font-weight:800}.section-title{margin:6px 0 14px;font-size:22px;font-weight:800}.reset-link{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.tab-link{background:var(--ring-track);color:var(--ink-muted);cursor:pointer;border:none;border-radius:100px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:800}.tab-link.active{background:var(--brand);color:var(--brand-ink)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.pop-in{animation:none}}
