@import "https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;600&display=swap";:root{--ink:#0a111b;--panel:#111b28;--well:#070d16;--line:#1e2b3c;--chalk:#e9f0f7;--steel:#8797ac;--faint:#3a4a5f;--accent:#8ad8f2;--on-accent:#06141d;--gold:#f2c46b;--on-gold:#1a1206;--hot:#f2687e;--blue:#6aa5f7;--green:#56d4a8;--on-color:#07121c;--nav-h:64px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--ink:#edf2f7;--panel:#fff;--well:#e1e8f0;--line:#cbd5e1;--chalk:#0f1b29;--steel:#526377;--faint:#a2b0c1;--accent:#0b7ba6;--on-accent:#fff;--gold:#a5650a;--on-gold:#fff;--hot:#c4314a;--blue:#2462c8;--green:#11845d;--on-color:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*,:before,:after{box-sizing:border-box}html,body{background:var(--ink);margin:0}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.app{background:var(--ink);min-height:100vh;color:var(--chalk);-webkit-font-smoothing:antialiased;max-width:640px;padding:env(safe-area-inset-top) 0 calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);margin:0 auto;font-family:Inter,system-ui,sans-serif}.boot{background:var(--ink);min-height:100vh;color:var(--steel);place-items:center;font-family:system-ui;display:grid}.topbar{justify-content:space-between;align-items:center;padding:12px 16px 0;display:flex}.brand{letter-spacing:.08em;text-transform:uppercase;font-family:Anton,sans-serif;font-size:15px}.brand em{color:var(--accent);font-style:normal}.vh{padding:18px 16px 4px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--steel);font-family:IBM Plex Mono,monospace;font-size:11px;display:block}.vh h1{letter-spacing:.01em;text-transform:uppercase;margin:6px 0 0;font-family:Anton,sans-serif;font-size:38px;font-weight:400;line-height:1}.vh h1 em{color:var(--accent);letter-spacing:.04em;margin-top:4px;font-size:17px;font-style:normal;display:block}.motivation{color:var(--hot);margin:8px 0 0;font-size:13.5px;font-weight:600;line-height:1.4}.sec{border-top:1px solid var(--line);padding:18px 16px}.sec-h{letter-spacing:.14em;text-transform:uppercase;color:var(--steel);margin-bottom:12px;font-family:IBM Plex Mono,monospace;font-size:11px;display:block}.sec-h b{color:var(--accent);font-weight:400}.note{color:var(--steel);margin:10px 0 0;font-size:12.5px;line-height:1.5}.note strong{color:var(--accent);font-weight:600}.callout{border-left:2px solid var(--accent);background:var(--panel);color:var(--steel);border-radius:0 8px 8px 0;margin:0 16px 14px;padding:11px 13px;font-size:13px;line-height:1.5}.callout strong{color:var(--accent)}.callout.flat{color:var(--chalk);margin:12px 0 0}.hero-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.hero-num{letter-spacing:.01em;font-family:Anton,sans-serif;font-size:60px;line-height:1;display:block}.hero-num em{color:var(--steel);margin-left:6px;font-size:20px;font-style:normal}.hero-sub{color:var(--steel);margin-top:6px;font-family:IBM Plex Mono,monospace;font-size:13px;display:block}.hero-side{color:var(--steel);font-family:IBM Plex Mono,monospace;font-size:15px}.hero-sub.good,.hero-side.good{color:var(--green)}.hero .row{margin-top:14px}.stat{font-family:Anton,sans-serif;font-size:34px;line-height:1}.stat em{color:var(--steel);margin-left:8px;font-family:Inter,sans-serif;font-size:13px;font-style:normal}.stat.hot{color:var(--hot)}.spark{flex-shrink:0}.spark-line{fill:none;stroke:var(--blue);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.spark-dot{fill:var(--steel);opacity:.45}.spark-end{fill:var(--blue)}.row{justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.row-l{font-size:15px}.row-l em{color:var(--steel);margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:11px;font-style:normal;display:block}.row-r{align-items:center;gap:6px;display:flex}.unit{color:var(--steel);width:22px;font-size:12px;font-style:normal}.weight-input{background:var(--well);border:1px solid var(--line);width:96px;height:52px;color:var(--chalk);text-align:center;border-radius:8px;font-family:IBM Plex Mono,monospace;font-size:22px}.weight-input::placeholder{color:var(--faint)}.weight-input:focus{outline:2px solid var(--blue);outline-offset:1px}.stepper{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:7px 0;display:flex}.stepper-label{font-size:14px}.stepper-ctrl{align-items:center;gap:5px;display:flex}.stepper-ctrl button{border:1px solid var(--line);background:var(--well);width:44px;height:44px;color:var(--chalk);cursor:pointer;border-radius:8px;font-size:20px;line-height:1}.stepper-ctrl button:active{background:var(--line)}.stepper-hint{color:var(--steel);margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-style:normal;display:block}.stepper-input{background:var(--well);border:1px solid var(--line);width:66px;height:44px;color:var(--chalk);text-align:center;border-radius:8px;padding:0 2px;font-family:IBM Plex Mono,monospace;font-size:16px}.stepper-input.dim{color:var(--steel)}.stepper-input:focus{outline:2px solid var(--blue);outline-offset:1px}.stepper-unit{color:var(--steel);width:48px;font-size:11px;font-style:normal}.meter+.stepper{margin-top:4px}.meter{margin-bottom:14px}.meter-top{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.meter-label{font-size:14px}.meter-val{font-family:IBM Plex Mono,monospace;font-size:15px}.meter-target{color:var(--steel);font-size:12px}.meter-track{background:var(--well);border-radius:4px;height:8px;overflow:hidden}.meter-fill{border-radius:4px;height:100%;transition:width .25s}.btn{border:1px solid var(--line);background:var(--panel);width:100%;min-height:52px;color:var(--chalk);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:10px;padding:13px;font-family:Anton,sans-serif;font-size:15px}.btn.on{background:var(--green);border-color:var(--green);color:var(--on-color)}.btn:disabled{opacity:.4;cursor:not-allowed}.linkbtn{min-height:44px;color:var(--steel);cursor:pointer;letter-spacing:.11em;text-transform:uppercase;background:0 0;border:none;padding:0 2px;font-family:IBM Plex Mono,monospace;font-size:11px}.linkbtn:active{color:var(--chalk)}.seg{border:1px solid var(--line);background:var(--well);border-radius:10px;display:flex;overflow:hidden}.seg button{border:none;border-left:1px solid var(--line);min-height:46px;color:var(--steel);cursor:pointer;background:0 0;flex:1;font-size:14px}.seg button:first-child{border-left:none}.seg button.on{background:var(--panel);color:var(--chalk);box-shadow:inset 0 -2px 0 var(--accent);font-weight:600}.sessionrow{background:var(--panel);border:1px solid var(--line);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:10px 14px;display:flex}.sessionrow b{letter-spacing:.04em;text-transform:uppercase;font-family:Anton,sans-serif;font-size:19px;font-weight:400;display:block}.sessionrow em{color:var(--steel);margin-top:2px;font-size:12.5px;font-style:normal;display:block}.tag{color:var(--accent);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:12px}.tag.ok{color:var(--green)}.nudges{flex-direction:column;gap:8px;padding:4px 16px 14px;display:flex}.nudge{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);text-align:left;width:100%;min-height:44px;color:var(--chalk);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;font-size:13px;line-height:1.4;display:flex}button.nudge{cursor:pointer}.nudge span{color:var(--accent)}.nudge.hot{border-left-color:var(--hot)}.weekbar{align-items:center;gap:2px;padding:12px 6px 0;display:flex}.weeknav{width:32px;height:56px;color:var(--steel);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:24px;line-height:1}.weekdays{flex:1;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.wd{background:var(--panel);border:1px solid var(--line);min-height:56px;color:var(--steel);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:7px 0 6px;font-family:IBM Plex Mono,monospace;display:flex}.wd.on{border-color:var(--accent);color:var(--chalk);box-shadow:inset 0 0 0 1px var(--accent)}.wd.now .wd-n{color:var(--accent)}.wd-n{letter-spacing:.06em;text-transform:uppercase;font-size:10px}.wd-d{font-size:15px}.wd-dot{background:var(--blue);border-radius:50%;width:5px;height:5px}.wd-dot.rest{background:var(--faint)}.wd-dot.done{background:var(--green)}.daybar-foot{justify-content:space-between;padding:0 12px 6px;display:flex}.modal{z-index:50;background:#060a0bb8;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);border-top:1px solid var(--line);width:100%;max-width:640px;padding:18px 16px calc(24px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;max-height:88vh;overflow:auto}.sheet-hd{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sheet-t{letter-spacing:.05em;text-transform:uppercase;font-family:Anton,sans-serif;font-size:17px}.calgrid{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.calhead{text-align:center;color:var(--steel);text-transform:uppercase;letter-spacing:.08em;padding-bottom:4px;font-family:IBM Plex Mono,monospace;font-size:10px}.calday{aspect-ratio:1;background:var(--well);border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:44px;display:flex}.calday.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calday.now .calday-n{color:var(--accent)}.calday-n{font-family:IBM Plex Mono,monospace;font-size:13px}.calday-marks{gap:2px;height:5px;display:flex}.callegend{color:var(--steel);justify-content:center;gap:16px;margin-top:14px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.callegend span{align-items:center;gap:6px;display:inline-flex}.mk{border-radius:50%;width:5px;height:5px;display:block}.mk.trained{background:var(--green)}.mk.weighed{background:var(--blue)}.log{margin:0;padding:0;list-style:none}.log li{border-top:1px solid var(--line);grid-template-columns:1fr auto 92px;align-items:baseline;gap:10px;padding:10px 0;font-size:14px;display:grid}.log li:first-child{border-top:none}.log b{font-family:IBM Plex Mono,monospace;font-weight:400}.log em{color:var(--steel);text-align:right;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-style:normal}.log li.cur span,.log li.cur b{color:var(--accent)}.tl-head,.timeline li{grid-template-columns:1fr 80px 92px;align-items:center;gap:10px;display:grid}.tl-head{letter-spacing:.1em;text-transform:uppercase;color:var(--steel);padding-bottom:6px;font-family:IBM Plex Mono,monospace;font-size:10px}.tl-head span:nth-child(n+2){text-align:right}.timeline{border-left:2px solid var(--line);margin:0;padding:0 0 0 14px;list-style:none}.timeline li{padding:11px 0;font-size:14px;position:relative}.timeline li:before{content:"";background:var(--ink);border:2px solid var(--faint);border-radius:50%;width:10px;height:10px;margin-top:-5px;position:absolute;top:50%;left:-20px}.timeline li.past:before{background:var(--faint)}.timeline li.now:before{background:var(--accent);border-color:var(--accent)}.timeline li.now .tl-d{color:var(--accent);font-weight:600}.tl-plan,.tl-act{text-align:right;font-family:IBM Plex Mono,monospace}.tl-plan{color:var(--steel)}.tl-act.good{color:var(--green)}.tl-act.behind{color:var(--gold)}.tl-head{margin-left:14px}.phases{border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(3,1fr);margin:14px 0;padding:0;list-style:none;display:grid;overflow:hidden}.phases li{border-left:1px solid var(--line);padding:10px}.phases li:first-child{background:var(--panel);border-left:none}.phases span{color:var(--steel);font-size:11.5px;display:block}.phases b{margin-top:3px;font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:400;display:block}.chart-ph{height:190px}.legend{color:var(--steel);gap:16px;margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.lg{display:inline-block}.lg.pt{background:var(--steel);opacity:.6;border-radius:50%;width:5px;height:5px}.lg.line{background:var(--blue);width:14px;height:2px}.lg.dash{border-top:1px dashed var(--steel);width:14px}.lift{border-bottom:1px solid var(--line);padding:14px 0}.lift:first-child{padding-top:0}.lift-hd{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.lift-n{font-size:15px;font-weight:600}.lift-p{color:var(--steel);white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:12px}.lift-cue{color:var(--accent);margin-left:8px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:400;display:inline-block}.lift-prev{color:var(--steel);margin-bottom:9px;font-family:IBM Plex Mono,monospace;font-size:11.5px;line-height:1.45}.lift-prev b{color:var(--chalk);font-weight:400}.lift-prev i{color:var(--accent);font-style:normal}.sets{flex-wrap:wrap;gap:6px;display:flex}.setbox{background:var(--well);border:1px solid var(--line);border-radius:8px;align-items:center;gap:2px;min-height:46px;padding:0 6px;display:flex}.setbox input{width:44px;height:44px;color:var(--chalk);text-align:center;background:0 0;border:none;padding:0;font-family:IBM Plex Mono,monospace;font-size:15px}.setbox input::placeholder{color:var(--faint)}.setbox input:focus{outline:2px solid var(--blue);outline-offset:-2px;border-radius:4px}.setbox b{color:var(--steel);font-size:11px;font-weight:400}.setbox.solo input{width:50px}.setbox.auto input{color:var(--steel)}.setbox.auto{border-style:dashed}.feels{border:1px solid var(--line);background:var(--well);border-radius:8px;margin-top:10px;display:flex;overflow:hidden}.feel{border:none;border-left:1px solid var(--line);min-height:44px;color:var(--steel);cursor:pointer;background:0 0;flex:1;padding:4px 2px;font-size:12.5px}.feel:first-child{border-left:none}.feel.on{color:var(--on-color);font-weight:600}.feel.helppo.on{background:var(--green)}.feel.sopiva.on{background:var(--blue)}.feel.raskas.on{background:var(--gold);color:var(--on-gold)}.feel.ei.on{background:var(--hot)}.liftdone{border:none;border-bottom:1px solid var(--line);width:100%;min-height:48px;color:var(--steel);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:9px;padding:10px 2px;display:flex}.liftdone-dot{background:var(--steel);border-radius:50%;flex-shrink:0;width:8px;height:8px}.liftdone-dot.helppo{background:var(--green)}.liftdone-dot.sopiva{background:var(--blue)}.liftdone-dot.raskas{background:var(--gold)}.liftdone-dot.ei{background:var(--hot)}.liftdone-n{color:var(--chalk);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.liftdone-s{white-space:nowrap;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:12px}.liftdone-x{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:9.5px}.liftclose{min-height:36px;color:var(--steel);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;margin:0 0 4px auto;padding:0;font-family:IBM Plex Mono,monospace;font-size:10px;display:block}.swap-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--well);min-height:44px;color:var(--steel);cursor:pointer;border-radius:22px;padding:0 15px;font-size:13px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.notes{background:var(--well);border:1px solid var(--line);width:100%;color:var(--chalk);resize:vertical;border-radius:8px;padding:11px;font-family:Inter,sans-serif;font-size:15px;line-height:1.5}.notes:focus{outline:2px solid var(--blue);outline-offset:1px}.notes::placeholder{color:var(--faint)}.prevnote{background:var(--panel);border-left:2px solid var(--accent);border-radius:0 8px 8px 0;margin-bottom:11px;padding:10px 12px;font-size:13px;line-height:1.5}.prevnote-h{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:5px;font-family:IBM Plex Mono,monospace;font-size:10px;display:block}.lock{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.lock .stat{font-size:44px}.lock-side{color:var(--steel);flex-direction:column;align-items:flex-end;gap:4px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex}.lock-side b{color:var(--chalk);font-size:15px;font-weight:600}.checks{grid-template-columns:1fr 1fr;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.checks li{border:1px solid var(--line);min-height:36px;color:var(--steel);border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.checks li:before{content:"○";font-size:13px}.checks li.ok{color:var(--chalk);border-color:var(--green)}.checks li.ok:before{content:"✓";color:var(--green)}.checks li.aside{border-style:dashed}.runko{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;width:100%;min-height:60px;margin-bottom:16px;padding:0 16px;display:flex}.runko span{letter-spacing:.06em;text-transform:uppercase;font-family:Anton,sans-serif;font-size:20px}.runko em{color:var(--steel);font-family:IBM Plex Mono,monospace;font-size:12px;font-style:normal}.runko.on{background:var(--green);border-color:var(--green);color:var(--on-color)}.runko.on em{color:var(--on-color);opacity:.8}.food-list{margin:0 0 4px;padding:0;list-style:none}.food-list li{border-top:1px solid var(--line);align-items:center;gap:10px;font-size:14px;display:flex}.food-list span{flex:1}.food-list b{color:var(--steel);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:400}.food-list li.minus span{color:var(--steel)}.food-list button{width:44px;height:44px;color:var(--steel);cursor:pointer;background:0 0;border:none;font-size:20px}.chip:disabled{opacity:.4}.custom{grid-template-columns:1fr 64px 64px auto;gap:6px;margin-top:12px;display:grid}.custom input{background:var(--well);border:1px solid var(--line);min-width:0;height:44px;color:var(--chalk);border-radius:8px;padding:0 10px;font-size:15px}.custom input::placeholder{color:var(--faint)}.custom input:focus{outline:2px solid var(--blue);outline-offset:1px}.tabs{z-index:40;background:var(--well);border-top:1px solid var(--line);max-width:640px;padding-bottom:env(safe-area-inset-bottom);margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{height:var(--nav-h);color:var(--steel);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:flex}.tabs svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tabs button[aria-current=true]{color:var(--accent)}.pill{border:1px solid var(--line);background:var(--well);border-radius:20px;align-items:center;gap:6px;padding:4px 9px 4px 7px;font-family:IBM Plex Mono,monospace;font-size:10.5px;display:inline-flex}.pill-dot{background:var(--steel);border-radius:50%;flex-shrink:0;width:6px;height:6px}.pill.ok{color:var(--green)}.pill.ok .pill-dot{background:var(--green)}.pill.busy{color:var(--gold)}.pill.busy .pill-dot{background:var(--gold);animation:1s ease-in-out infinite pulse}.pill.err{color:var(--hot)}.pill.err .pill-dot{background:var(--hot)}.pill.off{color:var(--steel)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.gate{flex-direction:column;justify-content:center;gap:14px;min-height:100vh;padding:0 22px;display:flex}.gate-t{text-transform:uppercase;letter-spacing:.02em;margin:0;font-family:Anton,sans-serif;font-size:44px;font-weight:400}.gate-t em{color:var(--accent);font-style:normal}.gate-n{margin:0}.gate-i{background:var(--well);border:1px solid var(--line);height:52px;color:var(--chalk);border-radius:8px;padding:0 13px;font-family:IBM Plex Mono,monospace;font-size:16px}.gate-i:focus{outline:2px solid var(--blue);outline-offset:1px}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
