:root{--page:#f4f7f5;--surface:#fdfdfc;--ink:#131714;--ink-2:#565d58;--muted:#8a918b;--hair:#e2e6e2;--hair-2:#eef1ee;--accent:#0e795a;--accent-ink:#ffffff;--accent-soft:#e3f2ec;--mark:#12805d;--mark-soft:#27a878;--r0:#f0f3f0;--r1:#58c295;--r2:#27a878;--r3:#12805d;--r4:#0b5c43;--over-ink:#8f6400;--over-mark:#e3a51a;--good:#006300;--shadow:0 10px 30px rgba(19,23,20,.08);--seg-empty:#e6eae6}@media (prefers-color-scheme: dark){:root{--page:#0d0f0e;--surface:#191c1a;--ink:#f1f4f1;--ink-2:#b8beb8;--muted:#858c86;--hair:#2a2e2b;--hair-2:#222623;--accent:#2ec48a;--accent-ink:#0b1f17;--accent-soft:#1d2f27;--mark:#25ad7c;--mark-soft:#1f8a63;--r0:#20241f;--r1:#2b6a52;--r2:#1f8a63;--r3:#25ad7c;--r4:#4fd6a2;--over-ink:#f3c04b;--over-mark:#d9a029;--good:#0ca30c;--shadow:0 10px 30px rgba(0,0,0,.4);--seg-empty:#262a26}}*{box-sizing:border-box}html,body{background:var(--page);color:var(--ink)}body{font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;margin:0;overscroll-behavior-y:none}#root{max-width:430px;margin:0 auto;padding:12px 16px 96px}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}input,select{font:inherit;color:inherit}.top{display:flex;align-items:baseline;justify-content:space-between;padding:14px 2px 4px}.brand{font-size:26px;font-weight:800;letter-spacing:-.02em}.brand .dot{color:var(--accent)}.date{color:var(--muted);font-size:13px;margin:0 2px 14px}.iconbtn{font-size:20px;color:var(--muted);padding:6px 8px;border-radius:10px}.iconbtn:hover{color:var(--accent)}.stack{display:flex;flex-direction:column;gap:12px}.card{background:var(--surface);border:1px solid var(--hair);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:10px}.card.tappable{cursor:pointer}.card.done{opacity:.55}.head{display:flex;align-items:center;gap:8px}.head .name{font-weight:650}.head .kindtag{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-left:auto}.head .chev{color:var(--muted);font-size:18px;line-height:1}.emo{font-size:17px;margin-right:2px}.counter-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.bignum{font-size:40px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.bignum .of{font-size:15px;font-weight:500;color:var(--ink-2);letter-spacing:0}.overbadge{display:inline-block;font-size:13px;font-weight:600;color:var(--over-ink);margin-left:8px}.btnplus{min-width:64px;height:52px;padding:0 18px;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-size:20px;font-weight:700;transition:transform .08s ease}.btnghost{height:44px;padding:0 16px;border-radius:14px;border:1px solid var(--hair);color:var(--accent);font-weight:650;font-size:15px;transition:transform .08s ease}.btnghost.onq{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}@media (prefers-reduced-motion: no-preference){.btnplus:active,.btnghost:active,.check:active{transform:scale(.94)}}.segbar{display:flex;gap:3px}.segbar i{flex:1;height:8px;border-radius:4px;background:var(--seg-empty)}.segbar i.f{background:var(--mark)}.segbar i.o{background:var(--over-mark)}.times{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.subtle{color:var(--muted);font-size:13px}.goodtxt{color:var(--good);font-weight:600;font-size:14px}.overtxt{color:var(--over-ink);font-weight:600;font-size:14px}.minibars{display:flex;gap:2px;align-items:flex-end;height:20px}.minibars i{flex:1;border-radius:2px 2px 0 0;background:var(--seg-empty);min-height:2px}.minibars i.f{background:var(--mark-soft)}.check{width:44px;height:44px;border-radius:50%;border:2px solid var(--hair);display:grid;place-items:center;font-size:20px;color:transparent;transition:transform .08s ease;flex:none}.check.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.weekdots{display:flex;gap:10px}.weekdots .d{text-align:center;font-size:11px;color:var(--muted)}.weekdots .d b{display:block;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--hair);margin:0 auto 3px;font-weight:400}.weekdots .d b.hit{background:var(--accent);border-color:var(--accent)}.weekdots .d.today span{color:var(--ink);font-weight:700}.newbtn{margin-top:6px;width:100%;height:52px;border-radius:18px;border:1.5px dashed var(--hair);color:var(--muted);font-weight:600;font-size:15px}.newbtn:hover{color:var(--accent);border-color:var(--accent)}.empty{text-align:center;padding:56px 20px 24px}.empty .glyph{font-size:44px}.empty h2{font-size:21px;margin:14px 0 8px}.empty p{color:var(--ink-2);font-size:15px;margin:0 auto 22px;max-width:34ch}.empty .btnplus{width:auto;font-size:16px}.install{border-style:dashed;gap:6px}.install .t{font-weight:650}.install p{margin:0;color:var(--ink-2);font-size:14px}.install button{align-self:flex-start;color:var(--accent);font-weight:650;font-size:14px;padding:4px 0}.backbar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 6px}.backbar .bk{color:var(--accent);font-weight:650;font-size:16px;padding:6px 8px 6px 0}.hero{text-align:center;padding:14px 0 6px}.hero .n{font-size:76px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.hero .cap{color:var(--ink-2);font-size:15px;margin-top:4px}.hero .btnplus{margin-top:16px;width:160px;height:56px;font-size:22px}.sec{margin-top:22px}.sec h3{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:650;margin:0 0 10px 2px}.datebar{display:flex;align-items:center;gap:4px;margin-bottom:10px}.datebar button{color:var(--accent);font-size:19px;font-weight:700;padding:2px 12px;border-radius:10px}.datebar button:disabled{color:var(--hair);cursor:default}.datebar .lbl{font-size:14px;font-weight:650;min-width:12ch;text-align:center}.evtlist{display:flex;flex-wrap:wrap;gap:8px}.evt{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--hair);border-radius:999px;padding:7px 8px 7px 13px;font-size:14px;font-variant-numeric:tabular-nums}.evt button{color:var(--muted);font-size:15px;width:22px;height:22px;border-radius:50%;line-height:1}.evt button:hover{color:var(--over-ink);background:var(--hair-2)}.addrow{display:flex;gap:8px;margin-top:10px;align-items:center}.addrow input[type=time]{background:var(--surface);border:1px solid var(--hair);border-radius:12px;padding:9px 12px;font-variant-numeric:tabular-nums}.chartcard{background:var(--surface);border:1px solid var(--hair);border-radius:18px;padding:14px 14px 10px;position:relative}.chartcard svg{display:block;width:100%;height:auto}.chartcard.scrollx{overflow-x:auto}.tip{position:absolute;z-index:5;pointer-events:none;background:var(--surface);border:1px solid var(--hair);border-radius:10px;box-shadow:var(--shadow);padding:7px 10px;font-size:12.5px;line-height:1.4;white-space:nowrap}.tip b{font-variant-numeric:tabular-nums}.tip .o{color:var(--over-ink)}.legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-top:8px;flex-wrap:wrap}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.legend .ring{border:1.5px solid var(--over-mark);background:transparent}.tiles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.tile{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:12px}.tile .v{font-size:22px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.tile .v small{font-size:13px;font-weight:500;color:var(--ink-2)}.tile .k{color:var(--muted);font-size:11.5px;line-height:1.3;margin-top:3px}.tile .delta{font-size:12.5px;font-weight:650;margin-top:2px}.tile .delta.good{color:var(--good)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e0b73;z-index:20}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;max-width:430px;margin:0 auto;max-height:88vh;overflow-y:auto;background:var(--surface);border-radius:22px 22px 0 0;border:1px solid var(--hair);border-bottom:0;padding:10px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow)}@media (prefers-reduced-motion: no-preference){.sheet{animation:up .22s ease}@keyframes up{0%{transform:translateY(30%);opacity:.6}to{transform:none;opacity:1}}}.grip{width:38px;height:4px;border-radius:2px;background:var(--hair);margin:4px auto 14px}.sheet h2{font-size:19px;margin:0 0 14px}.fld{margin-bottom:14px}.fld label{display:block;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:7px}.fld input[type=text]{width:100%;background:var(--page);border:1px solid var(--hair);border-radius:12px;padding:11px 13px}.segctl{display:flex;background:var(--page);border:1px solid var(--hair);border-radius:12px;padding:3px;gap:3px}.segctl button{flex:1;padding:8px 4px;border-radius:9px;font-size:14px;font-weight:600;color:var(--muted)}.segctl button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0000001f}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:40px;height:40px;border-radius:12px;border:1px solid var(--hair);font-size:20px;font-weight:600;color:var(--accent)}.stepper .val{font-size:22px;font-weight:750;min-width:34px;text-align:center;font-variant-numeric:tabular-nums}.createbtn{width:100%;height:52px;border-radius:16px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:700;margin-top:6px}.createbtn:disabled{opacity:.4}.hint{color:var(--muted);font-size:12.5px;margin:-6px 0 12px}.dangerbtn{width:100%;height:44px;border-radius:14px;border:1px solid var(--hair);color:var(--over-ink);font-weight:600;margin-top:10px}.emorow{display:flex;flex-wrap:wrap;gap:6px}.emorow button{width:40px;height:40px;border-radius:11px;border:1px solid var(--hair);font-size:19px;display:grid;place-items:center}.emorow button.on{border-color:var(--accent);background:var(--accent-soft)}.chkrow{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--ink-2);padding:4px 0}.chkrow i{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--hair);display:grid;place-items:center;font-size:13px;font-style:normal;color:var(--accent-ink);flex:none}.chkrow.on{color:var(--ink)}.chkrow.on i{background:var(--accent);border-color:var(--accent)}.setrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair-2)}.setrow:last-of-type{border-bottom:0}.setrow .lbl{font-weight:600;font-size:15px}.setnote{color:var(--muted);font-size:13px;margin-top:12px;line-height:1.5}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:16px;background:var(--ink);color:var(--page);border-radius:999px;padding:11px 8px 11px 18px;font-size:14px;box-shadow:var(--shadow);white-space:nowrap}.toast span{font-variant-numeric:tabular-nums}.toast button{color:#4fd6a2;font-weight:700;font-size:14px;padding:4px 12px;border-radius:999px}@media (prefers-reduced-motion: no-preference){.toast{animation:toastup .18s ease}@keyframes toastup{0%{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%);opacity:1}}}.archrow{margin-top:16px}.archrow summary{color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;padding:6px 2px}.archrow .stack{margin-top:10px}
