:root{--bg:#0b121b;--surface:#101a26;--card:#15212f;--card-hi:#1b2838;--border:#233344;--border-soft:#1c2a3a;--blue:#3d9bf5;--blue-bright:#54a9ff;--blue-soft:rgba(61,155,245,.14);--blue-line:rgba(61,155,245,.35);--red:#f04559;--red-soft:rgba(240,69,89,.13);--text:#e9f0f8;--text-dim:#aab8c8;--muted:#7d8da1;--faint:#5a6878;--ok:#3ddc97;--wick:#6b7a8d;--r-lg:18px;--r-md:14px;--r-sm:10px;--maxw:560px;--font-head:"Oswald",sans-serif;--font-body:"Hanken Grotesk",-apple-system,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}body{font-size:15px;line-height:1.45}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit}::selection{background:var(--blue);color:#04101e}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:#26384c;border-radius:8px}*::-webkit-scrollbar-track{background:transparent}.app{max-width:var(--maxw);margin:0 auto;min-height:100vh;padding:0 16px 120px;position:relative}@media(min-width:600px){.app{padding:0 22px 120px}}.h-eyebrow{font-family:var(--font-head);font-weight:600;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--blue)}.h-title{font-family:var(--font-head);font-weight:700;text-transform:uppercase;letter-spacing:.5px;line-height:1}.h-num{font-family:var(--font-head);font-weight:700}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md)}.card-hi{background:var(--card-hi)}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:600;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;padding:5px 10px;border-radius:30px}.pill-blue{background:var(--blue);color:#04101e}.pill-red{background:var(--red);color:#fff}.pill-outline{border:1px solid var(--border);color:var(--muted)}.pill-ghost{background:var(--blue-soft);color:var(--blue-bright)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.fade-up{animation:fadeUp .4s cubic-bezier(.2,.7,.3,1) both}@keyframes spin{to{transform:rotate(360deg)}}.chk{width:24px;height:24px;border-radius:7px;border:2px solid #36475b;display:grid;place-items:center;flex-shrink:0;transition:all .16s ease}.chk.on{background:var(--blue);border-color:var(--blue)}.chk.on.circle{background:var(--ok);border-color:var(--ok)}.chk.circle{border-radius:50%}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#0b121bdb;backdrop-filter:blur(14px);border-top:1px solid var(--border-soft)}.tabbar-inner{max-width:var(--maxw);margin:0 auto;display:flex;padding:8px 6px calc(8px + env(safe-area-inset-bottom))}.tabbtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.3px;transition:color .15s}.tabbtn.on{color:var(--blue-bright)}.tabbtn svg{width:22px;height:22px}.seg{display:flex;gap:3px;background:#0e1722;border:1px solid var(--border-soft);border-radius:12px;padding:4px}.seg button{flex:1;padding:8px 4px;font-family:var(--font-head);font-weight:600;font-size:12px;letter-spacing:1px;text-transform:uppercase;border-radius:9px;color:var(--muted);transition:all .18s}.seg button.on{background:var(--blue);color:#04101e}.row{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:12px 14px;transition:border-color .16s,background .16s}.row.tap{cursor:pointer}.row.tap:active{background:var(--card-hi)}.row.done{border-color:var(--blue-line)}.hr{height:1px;background:var(--border-soft);border:none;margin:0}.sheet-back{position:fixed;inset:0;z-index:100;background:#04090fa8;backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;animation:fadeUp .25s ease}@media(min-width:600px){.sheet-back{align-items:center}}.sheet{background:var(--surface);border:1px solid var(--border);border-radius:20px 20px 0 0;width:100%;max-width:var(--maxw);max-height:90vh;overflow-y:auto;animation:sheetUp .3s cubic-bezier(.2,.8,.2,1)}@media(min-width:600px){.sheet{border-radius:20px;max-height:86vh}}@media(min-width:600px){.sheet-wide{max-width:min(880px,94vw)}}@keyframes sheetUp{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}.sheet-grip{width:38px;height:4px;border-radius:4px;background:#33445a;margin:10px auto 2px}.field{width:100%;background:#0e1722;border:1px solid var(--border);border-radius:10px;color:var(--text);padding:11px 13px;font-size:14px;outline:none}.field:focus{border-color:var(--blue)}.step{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0e1722}.step button{width:40px;height:40px;font-size:20px;color:var(--blue-bright)}.step input{width:62px;text-align:center;background:transparent;border:none;color:var(--text);font-size:16px;font-weight:700;outline:none}.bar{height:7px;border-radius:5px;background:#0e1722;overflow:hidden}.bar>span{display:block;height:100%;border-radius:5px}.list-grid{display:flex;flex-direction:column;gap:8px}.list-grid>*{min-width:0}.cols2{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.today-grid{display:block}.side-logo,.side-spacer{display:none}@media(min-width:980px){.app{max-width:1140px;margin-left:248px;padding:0 clamp(28px,4vw,72px) 72px}.tabbar{inset:0 auto 0 0;width:248px;border-top:none;border-right:1px solid var(--border-soft);background:var(--surface);backdrop-filter:none}.tabbar-inner{flex-direction:column;height:100%;max-width:none;padding:26px 16px 22px;gap:5px}.tabbtn{flex:none;flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;width:100%;padding:12px 14px;border-radius:11px;font-size:14.5px;letter-spacing:.2px;color:var(--text-dim)}.tabbtn:hover{background:var(--card);color:var(--text)}.tabbtn.on{background:var(--blue-soft);color:var(--blue-bright)}.tabbtn svg{width:21px;height:21px}.side-logo{display:flex;align-items:center;gap:10px;padding:6px 12px 22px}.side-spacer{display:block;flex:1}.list-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cols2{grid-template-columns:1.15fr .85fr;gap:26px}.today-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:26px;align-items:start}.sticky-aside{position:sticky;top:24px}body{font-size:15.5px}}
