:root{--bg:#f4f5f7;--card:#fff;--card-2:#e9ecef;--text:#15191c;--muted:#5f6b73;--accent:#1a8c80;--accent-soft:#1a8c8024;--good:#2e9e59;--good-soft:#2e9e592e;--bad:#c7403a;--bad-soft:#c7403a29;--line:#d9dde2;--nav-h:64px}@media (prefers-color-scheme:dark){:root{--bg:#101518;--card:#1a2126;--card-2:#242d33;--text:#eef2f3;--muted:#9aa7ae;--accent:#3cb8aa;--accent-soft:#3cb8aa2e;--line:#2d383f}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:17px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}h1{margin:0 0 4px;font-size:28px}h2{margin:0;font-size:20px}p{margin:0}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.bold{font-weight:600}.accent{color:var(--accent)}.good{color:var(--good)}.bad{color:var(--bad)}.page{max-width:640px;padding:20px 16px calc(var(--nav-h) + 24px + env(safe-area-inset-bottom));margin:0 auto}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.card{background:var(--card);border-radius:14px;padding:16px}.card-2{background:var(--card-2)}.list{background:var(--card);border-radius:14px;overflow:hidden}.list>*{border-bottom:1px solid var(--line);min-height:44px;padding:14px 16px;display:block}.list>:last-child{border-bottom:none}.list>a:active{background:var(--card-2)}.section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 8px 4px;font-size:13px}.btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:10px 18px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-ghost{color:var(--accent);background:0 0;border:none;min-height:44px}.btn-small{width:auto;min-height:40px;padding:6px 14px;font-size:15px}.btn-good{background:var(--good-soft);color:var(--good);border-color:#0000}.btn-bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.btn-accent{background:var(--accent-soft);color:var(--accent);border-color:#0000}.field{border:1px solid var(--line);background:var(--card);border-radius:12px;width:100%;min-height:48px;padding:10px 14px}textarea.field{resize:vertical;min-height:100px}.progress{background:var(--card-2);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%}.choice{background:var(--card-2);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 14px;display:flex}.choice.right{background:var(--good-soft);border-color:var(--good)}.choice.wrong{background:var(--bad-soft);border-color:var(--bad)}.choice:disabled{cursor:default}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.nav a.active{color:var(--accent)}.nav svg{width:24px;height:24px}.overlay{background:var(--bg);z-index:20;position:fixed;inset:0;overflow-y:auto}.overlay .page{padding-bottom:32px}.topbar{background:var(--bg);z-index:1;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 0;display:grid;position:sticky;top:0}.topbar .btn-ghost{justify-self:start;width:auto;padding:0 4px}.sheet-backdrop{z-index:30;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:640px;padding:16px 16px calc(24px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;max-height:85vh;overflow-y:auto}.prompt{font-size:21px;font-weight:500}.grades{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.two{grid-template-columns:1fr 1fr;gap:8px;display:grid}.center{text-align:center}.status-dot{text-align:center;flex:none;width:22px}.only-wide{display:none}.cols{grid-template-columns:1fr;gap:18px;display:grid}.nav-brand,.nav-foot{display:none}table.grid{border-collapse:collapse;width:100%;font-size:15px}table.grid th,table.grid td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}table.grid th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}table.grid td.num{text-align:right;white-space:nowrap}kbd{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:6px;padding:1px 6px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}@media (min-width:900px){:root{--side-w:220px}.only-wide{display:block}.only-narrow{display:none!important}.nav{width:var(--side-w);height:auto;padding:18px 12px calc(16px + env(safe-area-inset-bottom));border-top:none;border-right:1px solid var(--line);flex-direction:column;align-items:stretch;top:0;bottom:0;right:auto}.nav a{border-radius:10px;flex-direction:row;flex:none;justify-content:flex-start;gap:10px;min-height:42px;padding:0 12px;font-size:15px}.nav a.active{background:var(--card-2)}.nav-brand{align-items:center;gap:10px;padding:4px 12px 18px;font-weight:600;display:flex}.nav-brand span.mark{color:#fff;letter-spacing:.04em;background:#15191c;border-radius:6px;padding:3px 6px;font-size:11px}.nav-foot{color:var(--muted);overflow-wrap:anywhere;margin-top:auto;padding:12px;font-size:12px;display:block}.page{margin-left:var(--side-w);max-width:1040px;padding:28px 32px 40px}.cols{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}.cols .section-title:first-child{margin-top:0}.hero{justify-content:space-between;align-items:center;gap:16px;display:flex}.hero .btn{width:auto;min-width:180px}.overlay{background:#0000008c;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;overflow-y:auto}.overlay .page{background:var(--bg);border-radius:18px;width:100%;max-width:600px;margin:0;padding:8px 24px 24px}.topbar{background:var(--bg);border-radius:18px 18px 0 0}.sheet-backdrop{align-items:center}.sheet{border-radius:18px;max-width:520px}.list>a:hover{background:var(--card-2)}}
