:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--math:#2a78d6;--physics:#eb6834;--chemistry:#1baf7a;--english:#eda100;--knowledge:#e87ba4;--approach:#008300;--calc:#6250d6;--time:#e34948;--uncategorized:#898781;--positive:#2a78d6;--negative:#e34948}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--ink:#f0efec;--ink-2:#c3c2b7;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--math:#3987e5;--physics:#d95926;--chemistry:#199e70;--english:#c98500;--knowledge:#d55181;--calc:#9085e9;--time:#e66767;--positive:#3987e5;--negative:#e66767}}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Segoe UI,sans-serif;line-height:1.6}main{gap:16px;max-width:960px;margin:0 auto;padding:24px 16px 64px;display:grid}h1,h2,h3,p{margin:0}h1{font-size:16px;font-weight:600}h2{margin-top:24px;font-size:20px;font-weight:600}h3{font-size:14px;font-weight:600}code{font-family:ui-monospace,Menlo,monospace;font-size:.92em}.header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.sub,.notice{color:var(--ink-2);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;padding:16px}.hero{font-size:56px;font-weight:600;line-height:1.1}.hero small{margin-left:4px;font-size:20px;font-weight:500}.phases{grid-template-columns:repeat(4,1fr);gap:2px;margin:16px 0 0;padding:0;list-style:none;display:grid}.phases li{border-top:4px solid var(--grid);color:var(--ink-2);min-width:0;padding-top:8px;font-size:13px}.phases li.done{border-top-color:var(--axis)}.phases li.now{border-top-color:var(--math);color:var(--ink);font-weight:600}.phases span{color:var(--ink-2);font-size:12px;font-weight:400;display:block}.tiles{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.tile-value{margin-top:4px;font-size:28px;font-weight:600;line-height:1.3}.tile-value small{color:var(--ink-2);margin-left:4px;font-size:14px;font-weight:400}.legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;margin:8px 0;padding:0;font-size:13px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.swatch{border-radius:2px;flex:none;width:10px;height:10px}.chart{margin-top:8px}.chart svg{display:block;overflow:visible}.chart text{fill:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12px}.empty{color:var(--ink-2);padding:24px 0;font-size:14px}.card.empty{padding:16px}.tooltip{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;box-shadow:0 2px 8px #0000001f}.tooltip strong{margin-bottom:2px;font-weight:600;display:block}.tooltip div{color:var(--ink-2);align-items:center;gap:6px;display:flex}.tooltip b{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px;font-weight:600}details{margin-top:8px;font-size:13px}summary{cursor:pointer;color:var(--ink-2);padding:4px 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;white-space:nowrap;width:100%}th,td{text-align:right;border-bottom:1px solid var(--grid);padding:4px 8px}th{color:var(--ink-2);font-weight:600}th:first-child,td:first-child{text-align:left;padding-left:0}.unlock{gap:12px;font-size:14px;display:grid}.unlock input{font:inherit;border:1px solid var(--axis);background:var(--page);color:var(--ink);border-radius:8px;width:100%;padding:8px 12px;font-size:16px}.unlock button{font:inherit;background:var(--math);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-self:start;padding:8px 16px;font-weight:600}.unlock button:disabled{opacity:.5;cursor:default}button.link{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:13px;text-decoration:underline}@media (width<=480px){.hero{font-size:48px}.phases span{display:none}}
