:root{--bg:#f4f4f1;--surface:#fff;--surface-2:#ecece7;--line:#deded8;--text:#16171a;--muted:#62646b;--accent:#e5480f;--accent-ink:#fff;--accent-soft:#fde5da;--ok:#1d8a4e;--ok-soft:#dcf2e4;--warn:#a8670a;--warn-soft:#fbedd3;--bad:#c42b2b;--protein:#2f6fdb;--carbs:#d08a00;--fat:#b4479a;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000a;--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-feature-settings:"tnum" 1, "cv11" 1;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1012;--surface:#18191c;--surface-2:#232428;--line:#2e3035;--text:#f1f1ee;--muted:#9a9ca3;--accent:#ff6a33;--accent-ink:#160700;--accent-soft:#3a1c10;--ok:#4cc983;--ok-soft:#12301f;--warn:#f0b04a;--warn-soft:#33260f;--bad:#ff6b6b;--protein:#6a9cff;--carbs:#f0b429;--fat:#e07ac8;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1012;--surface:#18191c;--surface-2:#232428;--line:#2e3035;--text:#f1f1ee;--muted:#9a9ca3;--accent:#ff6a33;--accent-ink:#160700;--accent-soft:#3a1c10;--ok:#4cc983;--ok-soft:#12301f;--warn:#f0b04a;--warn-soft:#33260f;--bad:#ff6b6b;--protein:#6a9cff;--carbs:#f0b429;--fat:#e07ac8;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{overscroll-behavior-y:none;min-height:100dvh;font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.15rem;font-weight:700}h3{font-size:1rem;font-weight:650}p{margin:0}.app{max-width:560px;min-height:100dvh;margin:0 auto}.page{padding:calc(16px + var(--safe-t)) 16px calc(var(--nav-h) + var(--safe-b) + 24px);flex-direction:column;gap:16px;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;padding-top:8px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.78rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.num{font-variant-numeric:tabular-nums}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:8px;display:flex}.stack.lg{gap:16px}.grow{flex:1;min-width:0}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.tight{padding:12px}.card.accent{background:var(--accent);color:var(--accent-ink);border-color:#0000}.card.accent .muted{color:inherit;opacity:.8}.list{flex-direction:column;display:flex}.list>*+*{border-top:1px solid var(--line)}.list-item{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:52px;padding:12px 0;display:flex}.btn{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:650;transition:transform 80ms;display:inline-flex}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--bad)}.btn.block{width:100%}.btn.sm{min-height:36px;padding:0 14px;font-size:.9rem}.btn:disabled{opacity:.45;pointer-events:none}.icon-btn{background:var(--surface-2);border:0;border-radius:999px;flex:none;place-items:center;width:44px;height:44px;display:inline-grid}.icon-btn.plain{background:0 0}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:6px;min-height:40px;padding:0 14px;font-size:.92rem;font-weight:550;display:inline-flex}.chip[aria-pressed=true],.chip.on{background:var(--text);color:var(--bg);border-color:var(--text)}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.field{flex-direction:column;gap:6px;display:flex}.field label,.label{color:var(--muted);font-size:.85rem;font-weight:600}.input{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;padding:0 14px;font-size:16px}textarea.input{resize:vertical;min-height:88px;padding:12px 14px}.segmented{background:var(--surface-2);border-radius:999px;gap:4px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:1;font-size:.9rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.option{border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);text-align:left;align-items:center;gap:14px;width:100%;padding:16px;display:flex}.option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.option .emoji{text-align:center;width:36px;font-size:1.6rem}.nav{z-index:20;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);padding-bottom:var(--safe-b);position:fixed;inset:auto 0 0}.nav-inner{max-width:560px;height:var(--nav-h);grid-template-columns:repeat(5,1fr);margin:0 auto;display:grid}.nav a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.7rem;font-weight:600;text-decoration:none;display:flex}.nav a.active{color:var(--accent)}.sheet-backdrop{z-index:40;background:#00000073;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;max-height:92dvh;padding:8px 16px calc(24px + var(--safe-b));border-radius:22px 22px 0 0;animation:.2s up;overflow-y:auto}.sheet-grip{background:var(--line);border-radius:99px;width:40px;height:5px;margin:4px auto 12px}.sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}@keyframes up{0%{opacity:.6;transform:translateY(40px)}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.set-row{grid-template-columns:34px 1fr 1fr 56px 48px;align-items:center;gap:6px;padding:6px 0;display:grid}.set-row.head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0;font-size:.7rem;font-weight:700}.set-row.done .set-input{background:var(--ok-soft);border-color:#0000}.set-idx{background:var(--surface-2);border:0;border-radius:8px;place-items:center;height:34px;font-size:.85rem;font-weight:700;display:grid}.set-idx.warm{color:var(--warn)}.set-idx.test{color:var(--accent)}.set-input{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);text-align:center;font-variant-numeric:tabular-nums;width:100%;min-width:0;height:44px;font-size:17px;font-weight:650}.set-input::placeholder{color:var(--muted);opacity:.7;font-weight:500}.check{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.check.on{background:var(--ok);border-color:var(--ok);color:#fff}.ss-tag{color:var(--accent);font-size:.72rem;font-weight:800}.timer-bar{left:50%;bottom:calc(12px + var(--safe-b));z-index:30;background:var(--text);width:calc(100% - 24px);max-width:536px;color:var(--bg);border-radius:20px;align-items:center;gap:8px;padding:10px 10px 10px 18px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #00000040}.timer-bar .t{font-variant-numeric:tabular-nums;flex:1;font-size:1.6rem;font-weight:800}.timer-bar button{background:color-mix(in srgb, var(--bg) 15%, transparent);color:inherit;border:0;border-radius:12px;min-width:52px;height:44px;font-weight:700}.timer-progress{background:color-mix(in srgb, var(--bg) 20%, transparent);border-radius:99px;height:3px;position:absolute;bottom:4px;left:18px;right:18px;overflow:hidden}.timer-progress>div{background:var(--accent);height:100%}.bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.bar>div{background:var(--accent);border-radius:99px;height:100%}.week-strip{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day-dot{color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:.72rem;font-weight:600;display:flex}.day-dot .d{background:var(--surface-2);width:34px;height:34px;color:var(--text);border-radius:999px;place-items:center;font-size:.85rem;display:grid}.day-dot .d.plan{box-shadow:inset 0 0 0 2px var(--accent)}.day-dot .d.done{background:var(--accent);color:var(--accent-ink)}.day-dot .d.today{outline:2px solid var(--text);outline-offset:2px}.stat{flex-direction:column;gap:2px;display:flex}.stat .v{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:750}.stat .l{color:var(--muted);font-size:.78rem;font-weight:600}.empty{text-align:center;color:var(--muted);padding:32px 16px}.toast{top:calc(12px + var(--safe-t));z-index:60;background:var(--text);color:var(--bg);border-radius:999px;max-width:calc(100% - 32px);padding:10px 18px;font-size:.9rem;font-weight:600;animation:.2s fade;position:fixed;left:50%;transform:translate(-50%)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .c{aspect-ratio:1;background:var(--surface-2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.8rem;display:flex}.cal .c.out{color:var(--muted);opacity:.4;background:0 0}.cal .c.today{outline:2px solid var(--text)}.cal .dots{gap:2px;height:5px;display:flex}.cal .dots i{border-radius:99px;width:5px;height:5px}a{color:var(--accent)}
