:root{--bg:#eef1f6;--bg-2:#e6eaf2;--ink:#14172a;--ink-2:#3a3f57;--muted:#6a7088;--faint:#a2a8bc;--line:#14172a14;--line-2:#14172a24;--glass:#ffffffad;--glass-strong:#ffffffdb;--solid:#fff;--fill:#14172a0d;--fill-2:#14172a17;--accent:#4a3aff;--accent-ink:#fff;--accent-soft:#4a3aff1a;--good:#0f9d63;--good-soft:#0f9d631c;--bad:#e0414b;--bad-soft:#e0414b1a;--warn:#c77800;--m-new:#14172a12;--m-learn:#ffb020;--m-young:#8190ff;--m-mature:#3a2be0;--shadow-s:0 1px 1px #14172a0a, 0 2px 8px #14172a0a;--shadow-l:0 1px 2px #14172a0d, 0 18px 48px -12px #14172a2e;--serif:"Instrument Serif", "Iowan Old Style", "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, monospace;--r-s:12px;--r-m:18px;--r-l:26px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0a0c16;--bg-2:#101321;--ink:#eef0f8;--ink-2:#c9cde0;--muted:#9399b3;--faint:#5d6380;--line:#ffffff12;--line-2:#ffffff21;--glass:#181b2c9e;--glass-strong:#1c1f32e6;--solid:#171a2b;--fill:#ffffff0f;--fill-2:#ffffff1a;--accent:#8b80ff;--accent-ink:#0a0c16;--accent-soft:#8b80ff29;--good:#3fd08f;--good-soft:#3fd08f21;--bad:#ff6b74;--bad-soft:#ff6b7421;--warn:#ffb547;--m-new:#ffffff12;--m-learn:#f5a524;--m-young:#5563d8;--m-mature:#a39bff;--shadow-s:0 1px 1px #0000004d;--shadow-l:0 1px 2px #0006, 0 24px 60px -16px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;font-size:16px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:8px}::selection{background:var(--accent-soft)}.halo{pointer-events:none;z-index:0;background:radial-gradient(60vmax 40vmax at 85% -10%, var(--accent-soft), transparent 70%), radial-gradient(50vmax 30vmax at -10% 30%, #ffb0200f, transparent 70%);position:fixed;inset:0}.shell{z-index:1;max-width:600px;padding:calc(var(--safe-t) + 14px) 20px calc(var(--safe-b) + 120px);margin:0 auto;position:relative}.display{font-family:var(--serif);letter-spacing:-.01em;margin:6px 0 0;font-size:44px;font-weight:400;line-height:1}.h2{letter-spacing:-.015em;margin:0;font-size:20px;font-weight:650}.h3{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:600}.muted{color:var(--muted)}.small{font-size:13.5px}.tiny{font-size:12px}.num{font-variant-numeric:tabular-nums}.lead{color:var(--ink-2);max-width:34ch;margin:10px 0 0;font-size:16.5px;line-height:1.5}.lead b{color:var(--ink);font-weight:650}.topbar{justify-content:space-between;align-items:center;gap:12px;min-height:38px;display:flex}.date{color:var(--muted);font-size:14px;font-weight:500}.pill{background:var(--fill);height:32px;color:var(--ink-2);white-space:nowrap;border:0;border-radius:99px;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:550;display:inline-flex}.dot{background:var(--faint);border-radius:50%;flex:none;width:7px;height:7px}.dot.ok{background:var(--good)}.dot.busy{background:var(--accent);animation:1s ease-in-out infinite pulse}.dot.warn{background:var(--warn)}@keyframes pulse{50%{opacity:.35}}.avatar{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);border:0;border-radius:50%;flex:none;place-items:center;font-size:13.5px;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.guest{background:var(--fill-2);color:var(--ink-2)}.surface{background:var(--glass);-webkit-backdrop-filter:saturate(180%)blur(22px);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-s)}.block{margin-top:16px;padding:20px}.section-title{justify-content:space-between;align-items:baseline;margin:32px 2px 10px;display:flex}.section-title .h2{font-size:19px}.link{color:var(--accent);background:0 0;border:0;padding:4px 0;font-size:14.5px;font-weight:600}.btn{appearance:none;letter-spacing:-.01em;background:var(--fill-2);height:52px;color:var(--ink);-webkit-user-select:none;user-select:none;border:0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16.5px;font-weight:650;transition:transform .1s ease-out,background .2s,opacity .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 26px -10px var(--accent)}.btn.good{background:var(--good);color:#fff}.btn.ghost{color:var(--accent);background:0 0}.btn.quiet{background:var(--fill)}.btn.danger{color:var(--bad)}.btn.sm{border-radius:13px;height:42px;padding:0 15px;font-size:15px}.btn.block-w{width:100%}.btn:disabled{opacity:.4;pointer-events:none}.btn svg{width:19px;height:19px}.row{gap:10px;display:flex}.row>.btn{flex:1}.field-wrap{margin-top:22px}.mfield{grid-template-columns:repeat(15,1fr);gap:4px;display:grid}.mcell{aspect-ratio:1;background:var(--m-new);border:0;border-radius:5px;padding:0;transition:transform .15s ease-out}.mcell:active{transform:scale(.8)}.mcell.learn{background:var(--m-learn)}.mcell.young{background:var(--m-young)}.mcell.mature{background:var(--m-mature)}.mcell.due{box-shadow:inset 0 0 0 2px var(--bad)}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-top:14px;font-size:12.5px;font-weight:500;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.legend i.due{box-shadow:inset 0 0 0 2px var(--bad);background:0 0}.start{margin-top:20px}.start .btn{height:58px;font-size:17px}.start-meta{color:var(--muted);justify-content:center;gap:16px;margin-top:12px;font-size:13.5px;display:flex}.start-meta b{color:var(--ink);font-weight:650}.list{padding:4px 0;overflow:hidden}.li{text-align:left;border:0;border-top:1px solid var(--line);background:0 0;align-items:center;gap:14px;width:100%;padding:13px 18px;display:flex}.li:first-child{border-top:0}.li:active{background:var(--fill)}.li-main{flex:1;min-width:0}.li-t{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-size:16px;font-weight:600;overflow:hidden}.li-t em{color:var(--muted);font-style:normal;font-weight:450}.li-s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:13.5px;overflow:hidden}.li-r{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:600}.chev{width:16px;height:16px;color:var(--faint);flex:none}.badge{background:var(--fill-2);color:var(--ink-2);vertical-align:1px;border-radius:6px;margin-left:6px;padding:2px 7px;font-size:11.5px;font-weight:650;display:inline-block}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.acc{background:var(--accent-soft);color:var(--accent)}.mdot{background:var(--m-new);border-radius:3.5px;flex:none;width:10px;height:10px}.mdot.learn{background:var(--m-learn)}.mdot.young{background:var(--m-young)}.mdot.mature{background:var(--m-mature)}.minibar{background:var(--fill-2);border-radius:9px;width:44px;height:4px;margin-top:5px;margin-left:auto;overflow:hidden}.minibar i{background:var(--accent);border-radius:9px;height:100%;display:block}.subj-mark{letter-spacing:.02em;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:12px;font-weight:750;display:grid}.prog{background:var(--fill-2);border-radius:9px;height:6px;margin-top:8px;display:flex;overflow:hidden}.prog i{height:100%;display:block}.modes{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.mode{text-align:left;border-radius:var(--r-m);border:1px solid var(--line);background:var(--glass);flex-direction:column;justify-content:space-between;min-height:96px;padding:15px 16px;transition:transform .1s ease-out;display:flex}.mode:active{transform:scale(.975)}.mode svg{width:21px;height:21px;color:var(--accent)}.mode b{letter-spacing:-.01em;margin-top:10px;font-size:15.5px;font-weight:650;display:block}.mode span{color:var(--muted);font-size:12.5px}.search-wrap{margin-top:18px;position:relative}.search-wrap svg{width:18px;height:18px;color:var(--muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search{background:var(--fill-2);border:0;border-radius:14px;outline:none;width:100%;height:46px;padding:0 14px 0 42px;font-size:16px}.chips{scrollbar-width:none;gap:8px;margin:0 -20px;padding:12px 20px 2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--fill-2);border:0;border-radius:99px;flex:none;height:34px;padding:0 13px;font-size:14px;font-weight:600}.chip.on{background:var(--ink);color:var(--bg)}.tabbar{left:50%;bottom:calc(var(--safe-b) + 12px);z-index:20;background:var(--glass-strong);-webkit-backdrop-filter:saturate(180%)blur(26px);border:1px solid var(--line-2);box-shadow:var(--shadow-l);border-radius:30px;gap:2px;padding:5px;display:flex;position:fixed;transform:translate(-50%)}.tab{color:var(--muted);background:0 0;border:0;border-radius:24px;flex-direction:column;align-items:center;gap:1px;min-width:70px;padding:7px 15px 6px;font-size:10.5px;font-weight:600;display:flex;position:relative}.tab svg{z-index:1;width:23px;height:23px;position:relative}.tab span{z-index:1;position:relative}.tab.on{color:var(--accent)}.tab-bg{background:var(--fill-2);border-radius:24px;position:absolute;inset:0}.scrim{z-index:60;background:#080a145c;position:fixed;inset:0}.sheet{z-index:61;background:var(--solid);max-width:600px;padding:8px 22px calc(var(--safe-b) + 24px);border-radius:28px 28px 0 0;max-height:92vh;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -20px 60px -20px #0000004d}.grab{background:var(--fill-2);border-radius:9px;width:40px;height:5px;margin:4px auto 16px}.kv{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.kv>div{background:var(--fill);border-radius:14px;padding:12px 14px}.kv b{letter-spacing:-.01em;font-size:19px;font-weight:700;display:block}.kv span{color:var(--muted);font-size:12.5px}.set{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.set:first-child{border-top:0}.set-l{font-size:15.5px;font-weight:550}.set-l small{color:var(--muted);margin-top:2px;font-size:13px;font-weight:450;display:block}.seg{background:var(--fill-2);border-radius:11px;flex:none;padding:2px;display:flex}.seg button{background:0 0;border:0;border-radius:9px;padding:7px 11px;font-size:13.5px;font-weight:600}.seg button.on{background:var(--solid);box-shadow:0 1px 4px #0000001f}.stepper{flex:none;align-items:center;gap:6px;display:flex}.stepper button{background:var(--fill-2);border:0;border-radius:10px;width:34px;height:34px;font-size:19px;font-weight:600}.stepper b{text-align:center;font-variant-numeric:tabular-nums;min-width:28px}.switch{appearance:none;background:var(--fill-2);border-radius:99px;flex:none;width:51px;height:31px;margin:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .22s cubic-bezier(.3,.7,.4,1);position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #00000038}.switch:checked{background:var(--good)}.switch:checked:after{transform:translate(20px)}.subj-toggle{flex-wrap:wrap;gap:8px;padding:14px 18px;display:flex}.session{z-index:50;background:var(--bg);position:fixed;inset:0;overflow-y:auto}.s-inner{z-index:1;max-width:560px;padding:calc(var(--safe-t) + 12px) 18px calc(var(--safe-b) + 24px);flex-direction:column;min-height:100%;margin:0 auto;display:flex;position:relative}.s-top{align-items:center;gap:14px;height:40px;display:flex}.iconbtn{background:var(--fill-2);border:0;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:grid}.iconbtn svg{width:18px;height:18px}.track{background:var(--fill-2);border-radius:9px;flex:1;height:6px;overflow:hidden}.track i{background:var(--accent);border-radius:9px;height:100%;transition:width .45s cubic-bezier(.2,.8,.2,1);display:block}.s-count{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:30px;font-size:13px;font-weight:700}.qcard{margin-top:20px;padding:22px 20px 20px}.qmeta{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.qmeta .k{color:var(--accent)}.qmeta .k.retry{color:var(--bad)}.qmeta .k.fresh{color:var(--warn)}.qword{font-family:var(--serif);letter-spacing:-.01em;word-break:break-word;margin:18px 0 4px;font-size:46px;line-height:1.02}.qword.long{font-size:30px;line-height:1.15}.qword.prose{font-family:var(--sans);letter-spacing:-.015em;font-size:22px;font-weight:600;line-height:1.32}.qhint{color:var(--muted);min-height:21px;font-size:15px}.fields{flex-direction:column;gap:12px;margin-top:20px;display:flex}.fl label{color:var(--muted);margin:0 0 6px 4px;font-size:13px;font-weight:600;display:block}.inp{letter-spacing:-.01em;background:var(--fill-2);border:2px solid #0000;border-radius:15px;outline:none;width:100%;height:56px;padding:0 16px;font-size:21px;font-weight:600;transition:border-color .18s,background .18s}.inp:focus{border-color:var(--accent);background:var(--solid)}.fl.ok .inp{border-color:var(--good);background:var(--good-soft)}.fl.bad .inp{border-color:var(--bad);background:var(--bad-soft);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--bad) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--bad) 55%, transparent)}.fl.given .inp{border-color:var(--line-2);color:var(--muted);background:0 0}.fix{letter-spacing:-.01em;margin:8px 4px 0;font-size:18px;font-weight:650}.fix .l{color:var(--muted);letter-spacing:0;margin-right:8px;font-size:13px;font-weight:550}.fix mark{background:var(--good-soft);color:var(--good);border-radius:4px;padding:0 1px}.fix .near{color:var(--warn);letter-spacing:0;margin-left:8px;font-size:12.5px;font-weight:600}.s-actions{gap:10px;margin-top:18px;display:flex}.s-actions .btn{flex:1}.kbd{color:var(--faint);text-align:center;margin-top:12px;font-size:12.5px}.result{border-radius:var(--r-m);margin-top:16px;padding:16px 16px 14px}.result.good{background:var(--good-soft)}.result.bad{background:var(--bad-soft)}.result h3{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.result.good h3{color:var(--good)}.result.bad h3{color:var(--bad)}.result p{color:var(--ink-2);margin:6px 0 0;font-size:14.5px;line-height:1.45}.forms{font-family:var(--serif);margin-top:6px;font-size:28px;line-height:1.1}.forms span{color:var(--faint);margin:0 6px}.fam{color:var(--ink-2);margin-top:10px;font-size:14px}.fam b{color:var(--ink);font-weight:650}.choices{flex-direction:column;gap:10px;margin-top:20px;display:flex}.choice{text-align:left;background:var(--fill-2);border:2px solid #0000;border-radius:15px;align-items:center;gap:12px;width:100%;min-height:54px;padding:12px 16px;font-size:17px;font-weight:600;transition:transform .1s ease-out,border-color .15s,background .15s;display:flex}.choice:active{transform:scale(.985)}.choice .key{background:var(--fill-2);width:26px;height:26px;color:var(--muted);border-radius:8px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.choice.ok{border-color:var(--good);background:var(--good-soft)}.choice.bad{border-color:var(--bad);background:var(--bad-soft)}.choice.dim{opacity:.45}.answer{border-radius:var(--r-m);background:var(--fill);color:var(--ink);margin-top:20px;padding:18px;font-size:17px;line-height:1.5}.grades{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px;display:grid}.grade{background:var(--fill-2);border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;transition:transform .1s ease-out;display:flex}.grade:active{transform:scale(.95)}.grade b{font-size:14.5px;font-weight:650}.grade span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.grade.g1 b{color:var(--bad)}.grade.g4 b{color:var(--good)}.summary-big{font-family:var(--serif);letter-spacing:-.02em;margin-top:18px;font-size:84px;line-height:.95}.summary-big small{color:var(--muted);font-size:34px}.stats3{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.stats3>div{background:var(--fill);border-radius:14px;padding:12px}.stats3 b{font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;display:block}.stats3 span{color:var(--muted);font-size:12.5px}.sprint-clock{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:40px}.sprint-score{color:var(--good);font-size:15px;font-weight:650}.chart{align-items:flex-end;gap:5px;height:128px;margin-top:16px;display:flex}.chart .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.chart .bar{background:var(--fill-2);border-radius:6px 6px 3px 3px;width:100%;min-height:3px;position:relative;overflow:hidden}.chart .bar i{background:var(--accent);position:absolute;bottom:0;left:0;right:0}.chart .d{color:var(--faint);font-size:10.5px;font-weight:600}.chart .col.today .d{color:var(--accent)}.formerr{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;display:grid}.formerr>div{background:var(--fill);border-radius:14px;padding:12px}.formerr b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:750;display:block}.formerr span{color:var(--muted);font-size:12.5px}.formerr .hi b{color:var(--bad)}.auth-hero{font-family:var(--serif);margin:4px 0 6px;font-size:34px;line-height:1.05}.oauth{border:1px solid var(--line-2);background:var(--solid);border-radius:15px;justify-content:center;align-items:center;gap:10px;width:100%;height:52px;font-size:16px;font-weight:650;display:flex}.oauth svg{width:20px;height:20px}.or{color:var(--faint);align-items:center;gap:12px;margin:16px 0;font-size:13px;display:flex}.or:before,.or:after{content:"";background:var(--line-2);flex:1;height:1px}.code-inp{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.err{color:var(--bad);margin-top:10px;font-size:14px}.toast{left:50%;top:calc(var(--safe-t) + 12px);z-index:90;background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line-2);max-width:90vw;box-shadow:var(--shadow-l);border-radius:16px;padding:11px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.empty{text-align:center;color:var(--muted);padding:26px 20px;font-size:15px}.hidden{display:none!important}.splash{min-height:70vh;font-family:var(--serif);color:var(--muted);place-items:center;font-size:40px;display:grid}@media (min-width:640px){.display{font-size:54px}.qword{font-size:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}}@media (prefers-reduced-transparency:reduce){.surface,.tabbar,.toast{-webkit-backdrop-filter:none;background:var(--solid)}}
