:root{--bg: #141416;--surface-1: #1D1D21;--surface-2: #26262B;--tabbar: #0F0F11;--rest-sheet: #0D0D0F;--surface-fade: #1B1B1E;--disabled-ink: #3A3A40;--group-bg: rgba(244,244,241,.03);--group-border: rgba(244,244,241,.05);--scrim-meal: rgba(13,13,15,.8);--scrim-modal: rgba(13,13,15,.75);--volt: #C8F031;--volt-rgb: 200,240,49;--green-2: #5C8A00;--volt-fill-30: rgba(200,240,49,.3);--volt-fill-14: rgba(200,240,49,.14);--volt-fill-12: rgba(200,240,49,.12);--volt-fill-10: rgba(200,240,49,.1);--volt-fill-08: rgba(200,240,49,.08);--volt-fill-07: rgba(200,240,49,.07);--volt-fill-04: rgba(200,240,49,.04);--volt-border-50: rgba(200,240,49,.5);--volt-border-40: rgba(200,240,49,.4);--volt-border-35: rgba(200,240,49,.35);--volt-border-30: rgba(200,240,49,.3);--restday: rgba(92,138,0,.45);--ink-1: #F4F4F1;--ink-2: #B9B9C0;--ink-3: #8B8B93;--ink-4: #6E6E76;--placeholder: #5A5A62;--cal-off: #4A4A52;--water: #7FA6F5;--water-btn: #3E6FE0;--rir: #B08FE0;--sleep: #B08FE0;--warn: #F0A05A;--warn-base: #E0662E;--warn-bg: rgba(224,102,46,.12);--warn-border: rgba(224,102,46,.5);--chart-pink: #E06C9F;--chart-teal: #6FD9C3;--line-04: rgba(244,244,241,.04);--line-05: rgba(244,244,241,.05);--line-06: rgba(244,244,241,.06);--line-07: rgba(244,244,241,.07);--line-08: rgba(244,244,241,.08);--line-09: rgba(244,244,241,.09);--line-10: rgba(244,244,241,.1);--line-12: rgba(244,244,241,.12);--line-14: rgba(244,244,241,.14);--line-16: rgba(244,244,241,.16);--line-18: rgba(244,244,241,.18);--line-20: rgba(244,244,241,.2);--line-25: rgba(244,244,241,.25);--line-30: rgba(244,244,241,.3);--font-display: "Space Grotesk", sans-serif;--font-body: "Instrument Sans", -apple-system, BlinkMacSystemFont, sans-serif;--track-kick: .18em;--track-tempo: .1em;--track-cal: .05em;--r-pill: 999px;--r-sheet: 20px;--r-card: 18px;--r-lg: 16px;--r-md: 14px;--r-sm: 12px;--r-xs: 10px;--r-2xs: 9px;--r-chip: 8px;--r-badge: 6px;--r-bar: 3px;--shadow-cal: 0 20px 40px -10px rgba(0,0,0,.6);--app-max: 520px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}html,body{overflow-x:hidden}body{background:var(--bg);color:var(--ink-1);font-family:var(--font-body);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;width:100%;max-width:100vw}button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}input,textarea{font-family:inherit;color:inherit}.disp{font-family:var(--font-display)}#app{max-width:var(--app-max);margin:0 auto;display:flex;flex-direction:column;height:100dvh;background:var(--bg);overflow-x:hidden}#view{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 18px 24px}#view::-webkit-scrollbar{width:0}.scrollY{overflow-y:auto}.scrollY::-webkit-scrollbar{width:0}.hdr{display:flex;align-items:center;gap:10px;padding:14px 18px 4px}.brand{flex:1;font-family:var(--font-display);font-weight:700;font-size:17px}.brand .dot{color:var(--volt)}.flame{display:inline-flex;align-items:center;gap:5px;background:var(--surface-1);border:1px solid var(--line-09);border-radius:var(--r-pill);padding:5px 11px 5px 8px}.flame svg{width:14px;height:14px;fill:var(--volt)}.flame .n{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--volt)}.avatar{width:32px;height:32px;border-radius:var(--r-pill);background:var(--volt);color:var(--bg);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:13px}.tabs{display:grid;grid-template-columns:repeat(5,1fr);background:var(--tabbar);border-top:1px solid var(--line-08);padding:8px 6px calc(14px + env(safe-area-inset-bottom)) 6px}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-4);font-size:10.5px;font-weight:600}.tab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:square}.tab.on{color:var(--volt)}.card{background:var(--surface-1);border:1px solid var(--line-07);border-radius:var(--r-card);padding:16px}.card+.card,.card.mt{margin-top:10px}.group{background:var(--group-bg);border:1px solid var(--group-border);border-radius:var(--r-card);padding:10px 12px}.kick{font-size:11px;letter-spacing:var(--track-kick);text-transform:uppercase;color:var(--ink-3);font-weight:600}.h1{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:-.01em;line-height:1.2}.muted{color:var(--ink-3)}.tip{font-size:12.5px;color:var(--ink-2);line-height:1.5}.note{font-size:12px;color:var(--volt);font-weight:500}.btn{display:block;width:100%;background:var(--volt);color:var(--bg);font-weight:600;font-size:15px;border-radius:var(--r-md);padding:14px;text-align:center}.btn.sec{background:var(--surface-2);color:var(--ink-1)}.counterBtn{width:28px;height:28px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-1);font-size:18px;line-height:1;display:grid;place-items:center}.counterBtn.water{background:var(--water-btn);color:#fff}.bar{height:5px;background:var(--line-10);border-radius:var(--r-bar);overflow:hidden}.bar>i{display:block;height:100%;background:var(--volt);border-radius:var(--r-bar);transition:width 1s linear}.set{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line-06);border-radius:var(--r-sm);padding:12px}.set.done{background:var(--volt-fill-10);border-color:var(--volt-border-35)}.set .sn{font-family:var(--font-display);font-weight:700;font-size:11px;color:var(--ink-3)}.set.done .sn,.set.done .tg{color:var(--volt)}.set .tg{flex:1;font-size:12.5px;color:var(--ink-2)}.fld{display:flex;align-items:baseline;gap:3px;background:var(--line-05);border:1px solid var(--line-12);border-radius:var(--r-chip);padding:6px 8px}.fld.filled{background:var(--volt-fill-14);border-color:var(--volt-border-40)}.fld input{width:34px;background:none;border:0;outline:0;text-align:right;font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink-1)}.fld.filled input{color:var(--volt)}.fld .u{font-size:8.5px;color:var(--ink-4)}.ck{width:26px;height:26px;border-radius:var(--r-pill);border:2px solid var(--line-25);display:grid;place-items:center;color:var(--bg);font-size:15px;flex:0 0 auto}.ck.on{border-color:var(--volt);background:var(--volt)}.ssr{border:1px solid var(--line-09);border-radius:var(--r-md);padding:10px 10px 8px;display:flex;flex-direction:column;gap:8px}.ssr.done{border-color:var(--volt-border-40);background:var(--volt-fill-04)}.chip{display:inline-flex;align-items:center;font-size:12px;font-weight:600;background:var(--volt-fill-12);color:var(--volt);border-radius:var(--r-chip);padding:5px 10px}.daybadge{font-size:10px;font-weight:700;background:var(--surface-2);color:var(--ink-2);border-radius:var(--r-badge);padding:3px 7px}.tempo{font-size:10px;font-weight:700;letter-spacing:var(--track-tempo);background:var(--volt);color:var(--bg);border-radius:var(--r-badge);padding:3px 6px}.rirbadge{font-size:10px;font-weight:700;background:var(--rir);color:var(--bg);border-radius:var(--r-badge);padding:3px 6px}.warn{font-size:12px;color:var(--warn);background:var(--warn-bg);border-radius:var(--r-chip);padding:7px 10px;line-height:1.45}.cal{position:absolute;z-index:40;background:var(--surface-1);border:1px solid var(--line-12);border-radius:var(--r-lg);padding:14px;width:252px;box-shadow:var(--shadow-cal)}.cal .grid{display:grid;grid-template-columns:repeat(7,32px);gap:2px}.cal .wd{font-size:10px;font-weight:600;color:var(--ink-3);letter-spacing:var(--track-cal);text-align:center}.cd{position:relative;width:32px;height:32px;display:grid;place-items:center;font-size:12.5px;font-weight:600;color:var(--ink-1);border-radius:var(--r-2xs)}.cd.off{color:var(--cal-off)}.cd.sel{background:var(--volt);color:var(--bg)}.cd.today:not(.sel){border:1px solid var(--volt-border-50)}.cd .dot{position:absolute;bottom:3px;width:4px;height:4px;border-radius:var(--r-pill);background:var(--volt)}.cd.sel .dot{background:var(--bg)}.bubble{max-width:85%;padding:9px 13px;font-size:13.5px;line-height:1.5}.bubble.u{align-self:flex-end;background:var(--volt);color:var(--bg);border-radius:16px 16px 4px;font-weight:500}.bubble.g{align-self:flex-start;background:var(--surface-1);border:1px solid var(--line-07);border-radius:16px 16px 16px 4px}.chatInput{display:flex;align-items:center;gap:8px}.chatInput input{flex:1;background:var(--surface-1);border:1px solid var(--line-12);border-radius:var(--r-pill);padding:12px 16px;font-size:14px;outline:0}.chatInput input::placeholder{color:var(--placeholder)}.sendBtn{width:44px;height:44px;flex:0 0 auto;border-radius:var(--r-pill);background:var(--volt);color:var(--bg);font-size:18px;display:grid;place-items:center}.sugg{border:1px solid var(--line-15, var(--line-16));border-radius:var(--r-pill);color:var(--ink-2);font-size:12.5px;padding:7px 12px}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--scrim-modal);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:var(--app-max);background:var(--surface-1);border:1px solid var(--line-10);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:18px 18px calc(22px + env(safe-area-inset-bottom))}.sheet textarea,.sheet input{width:100%;background:var(--surface-2);border:1px solid var(--line-12);border-radius:var(--r-sm);padding:12px;font-size:14px;outline:0;resize:none}.sheet textarea{border-color:var(--line-14)}#rest{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--rest-sheet);border-top:1px solid var(--volt-border-30);padding:20px 18px calc(22px + env(safe-area-inset-bottom));max-width:var(--app-max);margin:0 auto}.restRow{display:flex;justify-content:space-between;align-items:baseline}.restSet{font-size:11px;letter-spacing:var(--track-kick);text-transform:uppercase;color:var(--ink-4);font-weight:600}.restBig{font-family:var(--font-display);font-weight:700;font-size:60px;line-height:1;letter-spacing:-.02em;text-align:center;margin-top:10px;font-variant-numeric:tabular-nums;transition:color .3s ease}.restBig[data-zone=under]{color:var(--ink-2)}.restBig[data-zone=ideal]{color:var(--volt)}.restBig[data-zone=over]{color:var(--warn)}.restStatus{text-align:center;font-size:13px;line-height:1.4;margin-top:2px;min-height:18px;color:var(--ink-3);transition:color .3s ease}.restStatus[data-zone=ideal]{color:var(--volt)}.restStatus[data-zone=over]{color:var(--warn)}.restMeter{position:relative;height:14px;border-radius:var(--r-pill);margin-top:16px;isolation:isolate}.restMeter .zones{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;border-radius:var(--r-pill);overflow:hidden}.restMeter .z1{flex:38;background:var(--line-08)}.restMeter .z2{flex:42;background:var(--volt-fill-10)}.restMeter .z3{flex:20;background:var(--warn-bg)}.restMeter .fill{position:absolute;left:0;top:0;bottom:0;min-width:14px;z-index:2;border-radius:var(--r-pill);transition:width .25s linear,background-color .3s ease}.restMeter .fill[data-zone=under]{background:var(--green-2);color:var(--green-2)}.restMeter .fill[data-zone=ideal]{background:var(--volt);color:var(--volt)}.restMeter .fill[data-zone=over]{background:var(--warn);color:var(--warn)}.restMeter .fill:after{content:"";position:absolute;right:0;top:-1px;bottom:-1px;width:3px;background:currentColor;border-radius:2px;box-shadow:0 0 8px currentColor}.restMeter .tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;z-index:3;background:var(--line-30);border-radius:2px}.restMeter .tick.lit{background:var(--volt)}.restMeter .tick.ideal{background:var(--volt);box-shadow:0 0 0 2px rgba(var(--volt-rgb),.15)}.restMeter .idealDot{position:absolute;top:-9px;width:6px;height:6px;margin-left:-3px;z-index:4;background:var(--volt);transform:rotate(45deg);border-radius:1px}.restLabels{position:relative;height:30px;margin-top:9px}.restLabels .rl{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px}.restLabels .rl em{font-style:normal;font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-4)}.restLabels .rl b{font-family:var(--font-display);font-size:11px;font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}.restLabels .rl.ideal em,.restLabels .rl.ideal b{color:var(--volt)}.restGo{display:block;width:100%;height:56px;border-radius:var(--r-md);margin-top:16px;background:var(--volt);color:var(--bg);font-weight:700;font-size:16px;text-align:center}.restDiscard{display:block;margin:10px auto 0;padding:11px 16px;min-height:44px;color:var(--ink-3);font-size:12px;font-weight:600}.restMinBtn{background:none;color:var(--ink-3);font-size:11px;font-weight:600;padding:4px 6px}.restMini{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;gap:8px;background:var(--rest-sheet);border:1px solid var(--volt-border-30);border-radius:var(--r-pill);padding:6px 6px 6px 14px;box-shadow:0 10px 28px -10px #000000b3;max-width:calc(var(--app-max) - 32px)}.restMini[data-zone=under]{color:var(--ink-2)}.restMini[data-zone=ideal]{color:var(--volt)}.restMini[data-zone=over]{color:var(--warn)}.restMiniMain{display:flex;align-items:center;gap:8px;background:none}.restMiniDot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}.restMiniMain .disp{font-weight:700;font-size:18px;color:currentColor;font-variant-numeric:tabular-nums}.restMiniLbl{font-size:11px;color:var(--ink-4);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.restMiniGo{background:var(--volt);color:var(--bg);font-weight:700;font-size:13px;border-radius:var(--r-pill);padding:9px 16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes restPulse{0%{box-shadow:0 0 rgba(var(--volt-rgb),.5)}to{box-shadow:0 0 0 12px rgba(var(--volt-rgb),0)}}.restMeter.pulse:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-pill);animation:restPulse .6s ease-out;z-index:1}@media(prefers-reduced-motion:reduce){.restMeter .fill{transition:background-color 0s}.restMeter .fill:after{box-shadow:none}.restMeter.pulse:before{animation:none}.restBig,.restStatus{transition:none}}.row{display:flex;align-items:center}.link{color:var(--volt);font-weight:600}.pulseDot{animation:pulseDot 1.4s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}
