/*! STRIDE — fitness dashboard — © 2026 Hasib (OVERSHOOT). All rights reserved. Licensed, not sold: see LICENSE.md. */
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f4f3ef;--surface:#fcfcfb;--surface-2:#f0efea;--ink:#0b0b0b;--ink-2:#52514e;--muted:#73716b;--grid:#e6e5df;--axis:#c3c2b7;--rim:#0b0b0b17;--shadow:0 1px 2px #14120a0d, 0 8px 24px -12px #14120a1f;--move:#eb6834;--exercise:#1baf7a;--stand:#2a78d6;--steps:#2a78d6;--heart:#eb6834;--deep:#184f95;--core:#2a78d6;--rem:#6da7ec;--awake:#c3c2b7;--ef-1:#86b6ef;--ef-2:#3987e5;--ef-3:#184f95;--good:#006300;--bad:#b3261e;--brand:#b8461a;--brand-ink:#fff;--focus:#2a78d6;--font:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--r-card:18px;--r-ctl:10px;--gap:clamp(12px, 1.6vw, 20px);--ease:cubic-bezier(.2, .7, .2, 1)}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232321;--ink:#fff;--ink-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--axis:#44443f;--rim:#ffffff14;--shadow:0 1px 0 #ffffff08 inset;--move:#d95926;--exercise:#199e70;--stand:#3987e5;--steps:#3987e5;--heart:#d95926;--deep:#b7d3f6;--core:#6da7ec;--rem:#2a78d6;--awake:#55544f;--ef-1:#1c5cab;--ef-2:#3987e5;--ef-3:#9ec5f4;--good:#3fbf3f;--bad:#f2706b;--focus:#86b6ef}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#232321;--ink:#fff;--ink-2:#c3c2b7;--muted:#9a988f;--grid:#2c2c2a;--axis:#44443f;--rim:#ffffff14;--shadow:0 1px 0 #ffffff08 inset;--move:#d95926;--exercise:#199e70;--stand:#3987e5;--steps:#3987e5;--heart:#d95926;--deep:#b7d3f6;--core:#6da7ec;--rem:#2a78d6;--awake:#55544f;--ef-1:#1c5cab;--ef-2:#3987e5;--ef-3:#9ec5f4;--good:#3fbf3f;--bad:#f2706b;--focus:#86b6ef}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}html.motion{scroll-behavior:smooth}body{background:var(--page);color:var(--ink);font:500 15px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p,ul,dl,dd,figure{margin:0}ul{padding:0;list-style:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.sprite{width:0;height:0;position:absolute;overflow:hidden}.ic{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:50;border-radius:var(--r-ctl);background:var(--ink);color:var(--page);padding:10px 14px;font-weight:700;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip:focus{transform:none}html.gated .shell{opacity:0}.shell{transition:opacity .45s var(--ease);grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.side{border-right:1px solid var(--rim);flex-direction:column;gap:20px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 10px;text-decoration:none;display:flex}.brand__mark{background:conic-gradient(var(--move) 0 62%, var(--surface-2) 0);border-radius:50%;width:26px;height:26px;-webkit-mask:radial-gradient(circle,#0000 6px,#000 6.5px);mask:radial-gradient(circle,#0000 6px,#000 6.5px)}.brand__name{letter-spacing:.14em;font-size:15px;font-weight:800}.nav{scrollbar-width:thin;min-height:0;margin:0 -4px;padding:2px 4px;overflow-y:auto}.nav ul{gap:2px;display:grid}.nav__group{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:16px 12px 6px;font-size:11px;font-weight:800}.nav__group:first-child{padding-top:0}.nav a{border-radius:var(--r-ctl);color:var(--ink-2);align-items:center;gap:12px;padding:9px 12px;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s;display:flex}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a[aria-current]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow), 0 0 0 1px var(--rim)}.nav a[aria-current] .ic{color:var(--brand)}.side__user{border-radius:var(--r-ctl);align-items:center;gap:10px;margin-top:auto;padding:10px;text-decoration:none;display:flex}.side__user:hover{background:var(--surface-2)}.side__user strong{font-size:14px;display:block}.side__user small{color:var(--muted);font-size:12px}.avatar{background:var(--surface-2);width:36px;height:36px;color:var(--ink-2);box-shadow:0 0 0 1px var(--rim);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.main{gap:var(--gap);outline:none;align-content:start;min-width:0;padding:28px clamp(16px,3vw,40px) 64px;display:grid}#page-title:focus{outline:none}.view{gap:var(--gap);min-width:0;display:grid}.view[hidden]{display:none}html.motion .view{animation:view-in .35s var(--ease)}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}}.nav__end{border-top:1px solid var(--rim);margin-top:10px;padding-top:10px}.top{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;padding-bottom:6px;display:flex}.eyebrow{color:var(--muted);font-size:13px;font-weight:600}.top h1{letter-spacing:-.02em;font-size:clamp(24px,3vw,32px);font-weight:800;line-height:1.15}.top__tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.seg{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--rim);border-radius:12px;padding:3px;display:inline-flex}.seg button{min-height:36px;color:var(--ink-2);background:0 0;border:0;border-radius:9px;padding:7px 14px;font-size:14px;font-weight:600}.seg button[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow), 0 0 0 1px var(--rim)}.btn{border-radius:var(--r-ctl);min-height:42px;transition:transform .15s var(--ease), background-color .2s;border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.97)}.btn--primary{background:var(--brand);color:var(--brand-ink)}.btn--primary:hover{background:color-mix(in oklab, var(--brand) 88%, #000)}.btn--ghost{color:var(--ink);box-shadow:inset 0 0 0 1px var(--rim);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.icon-btn{border-radius:var(--r-ctl);background:var(--surface);width:42px;height:42px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--rim);transition:transform .15s var(--ease), background-color .2s;border:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2)}.icon-btn:active{transform:scale(.94)}.icon-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.icon-btn--solid{background:var(--steps);color:#fff;box-shadow:none}.icon-btn--solid:hover{background:color-mix(in oklab, var(--steps) 88%, #000)}#theme .ic--moon,#theme[aria-pressed=true] .ic--sun{display:none}#theme[aria-pressed=true] .ic--moon{display:block}.grid{gap:var(--gap);display:grid}.grid--top{grid-template-columns:minmax(300px,5fr) 7fr}.grid--wide{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.grid--three{grid-template-columns:2fr 1fr 1fr}.grid--even{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}.card{background:var(--surface);border-radius:var(--r-card);min-width:0;box-shadow:var(--shadow), 0 0 0 1px var(--rim);flex-direction:column;gap:16px;padding:20px;display:flex}.card__head{justify-content:space-between;align-items:start;gap:12px;display:flex}.card__head--wrap{flex-wrap:wrap}.card h2{letter-spacing:-.01em;font-size:16px;font-weight:700}.card__note{color:var(--muted);font-size:13px}.card__big{text-align:right;letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.1}.card__big small{color:var(--muted);letter-spacing:0;font-size:12px;font-weight:600;display:block}.rings__body{flex:1;align-items:center;gap:24px;display:flex}.rings__svg{aspect-ratio:1;flex:none;width:min(190px,44%);transform:rotate(-90deg)}.ring__track{fill:none;stroke-width:18px;opacity:.16}.ring__fill{fill:none;stroke-width:18px;stroke-linecap:round;stroke-dasharray:100 100;stroke-dashoffset:var(--off,100)}html.motion .ring__fill{transition:stroke-dashoffset 1.4s var(--ease)}.ring--move{stroke:var(--move)}.ring--exercise{stroke:var(--exercise)}.ring--stand{stroke:var(--stand)}html.motion .ring--exercise .ring__fill{transition-delay:.12s}html.motion .ring--stand .ring__fill{transition-delay:.24s}.rings__legend{flex:1;gap:14px;min-width:0;display:grid}.rings__legend li{grid-template-columns:12px 1fr;align-items:center;column-gap:10px;display:grid}.rings__label{color:var(--ink-2);font-size:13px;font-weight:600}.rings__legend strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;grid-column:2;font-size:22px;font-weight:800}.rings__legend small{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:600}.key{border-radius:4px;width:12px;height:12px}.key--move{background:var(--move)}.key--exercise{background:var(--exercise)}.key--stand{background:var(--stand)}.kpis{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.kpi{gap:10px;padding:18px 20px}.kpi__label{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.kpi__label .ic{width:18px;height:18px;color:var(--muted)}.kpi__row{justify-content:space-between;align-items:end;gap:12px;display:flex}.kpi__value{letter-spacing:-.03em;font-size:clamp(26px,2.6vw,34px);font-weight:800;line-height:1}.kpi__value small{color:var(--muted);letter-spacing:0;margin-left:3px;font-size:14px;font-weight:600}.kpi__spark{flex:none;width:96px;height:34px;overflow:visible}.kpi__spark path{fill:none;stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.kpi__spark circle{fill:var(--ink);stroke:var(--surface);stroke-width:2px}.delta{align-items:center;gap:4px;font-size:13px;font-weight:700;display:inline-flex}.delta .ic{stroke-width:2.4px;width:15px;height:15px}.delta--good{color:var(--good)}.delta--bad{color:var(--bad)}.delta--flat{color:var(--muted)}.delta span:last-child{color:var(--muted);font-weight:600}.chart{touch-action:pan-y;border-radius:10px;flex:1 0 230px;min-height:230px;position:relative}.chart--hyp{flex:1 0 170px;min-height:170px}.chart svg{width:100%;height:100%;display:block;overflow:visible}.chart .gridline{stroke:var(--grid);stroke-width:1px;shape-rendering:crispedges}.chart .baseline{stroke:var(--axis);stroke-width:1px;shape-rendering:crispedges}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.chart .goal{stroke:var(--ink-2);stroke-width:1.5px}.chart .goal-label{fill:var(--ink-2);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font-size:11px;font-weight:700}.chart .bar{fill:var(--steps);transition:opacity .15s}.chart .bar--today{fill:var(--steps);opacity:.55}.chart.is-reading .bar:not(.is-on){opacity:.35}.chart .hit{fill:#0000}.chart .line{fill:none;stroke:var(--heart);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--heart);opacity:.1}.chart .band{fill:var(--surface-2)}.chart .band-label{fill:var(--muted);font-size:11px;font-weight:600}.chart .cross{stroke:var(--ink-2);stroke-width:1px;opacity:0}.chart .dot{fill:var(--heart);stroke:var(--surface);stroke-width:2px;opacity:0}.chart.is-reading .cross,.chart.is-reading .dot{opacity:1}.chart .hseg{transition:opacity .15s}.chart.is-reading .hseg:not(.is-on){opacity:.4}.st-deep{fill:var(--deep)}.st-core{fill:var(--core)}.st-rem{fill:var(--rem)}.st-awake{fill:var(--awake)}html.motion .chart .bar,html.motion .chart .hseg{transform-box:fill-box;transform-origin:50% 100%}html.motion .chart.is-drawing .bar{animation:rise .7s var(--ease) both;animation-delay:calc(var(--i) * 28ms)}html.motion .chart.is-drawing .hseg{transform-origin:0;animation:grow-x .6s var(--ease) both;animation-delay:calc(var(--i) * 18ms)}html.motion .chart.is-drawing .reveal{animation:wipe 1.1s var(--ease) both;transform-box:fill-box;transform-origin:0}@keyframes rise{0%{transform:scaleY(0)}}@keyframes grow-x{0%{transform:scaleX(0)}}@keyframes wipe{0%{opacity:0;transform:scaleX(0)}30%{opacity:1}}.tip{z-index:40;pointer-events:none;background:var(--ink);min-width:96px;color:var(--page);opacity:0;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:600;line-height:1.35;transition:opacity .12s;position:fixed;top:0;left:0;box-shadow:0 10px 30px -10px #0006}.tip.is-on{opacity:1}.tip b{font-size:15px;font-weight:800;display:block}.tip small{color:color-mix(in oklab, var(--page) 70%, var(--ink));font-weight:600}.stats{border-top:1px solid var(--grid);grid-template-columns:repeat(3,1fr);gap:12px;padding-top:4px;display:grid}.stats div{padding-top:10px}.stats dt{color:var(--muted);font-size:12px;font-weight:600}.stats dd{font-variant-numeric:tabular-nums;font-size:18px;font-weight:800}.stats dd small{color:var(--muted);font-size:12px;font-weight:600}.stages{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stages li{grid-template-columns:12px 1fr;align-items:center;column-gap:8px;display:grid}.stages span:nth-child(2){color:var(--ink-2);font-size:13px;font-weight:600}.stages strong{font-variant-numeric:tabular-nums;grid-column:2;font-size:16px;font-weight:800}.stages small{color:var(--muted);font-weight:600}.key.st-deep{background:var(--deep)}.key.st-core{background:var(--core)}.key.st-rem{background:var(--rem)}.key.st-awake{background:var(--awake)}.zones{gap:12px;display:grid}.zones li{grid-template-columns:1fr auto;align-items:baseline;gap:4px 10px;display:grid}.zones span{color:var(--ink-2);font-size:13px;font-weight:600}.zones span small{color:var(--muted);font-weight:600}.zones strong{font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.zones .track{background:var(--surface-2);border-radius:4px;grid-column:1/-1;height:8px;display:block;overflow:hidden}.zones .fill{background:var(--heart);transform-origin:0;height:100%;transform:scaleX(var(--p,0));border-radius:0 4px 4px 0;display:block}html.motion .zones .fill,html.motion .goals .fill{transition:transform 1s var(--ease)}.water__glasses{grid-template-columns:repeat(var(--n,8), 1fr);flex:1;gap:6px;min-height:64px;max-height:150px;display:grid}.glass{background:var(--surface-2);min-height:64px;box-shadow:inset 0 0 0 1px var(--rim);border-radius:4px 4px 9px 9px;position:relative;overflow:hidden}.glass:after{content:"";background:var(--stand);transform-origin:50% 100%;position:absolute;inset:0;transform:scaleY(0)}html.motion .glass:after{transition:transform .5s var(--ease)}.glass.is-full:after{transform:scaleY(.86)}.water__row{justify-content:space-between;align-items:center;gap:10px;display:flex}.water__count{color:var(--ink-2);font-size:14px;font-weight:600}.water__count span{color:var(--ink);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.goals{gap:18px;display:grid}.goals li{grid-template-columns:1fr auto;align-items:baseline;gap:6px 10px;display:grid}.goals .name{font-size:14px;font-weight:700}.goals .val{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.goals .val b{color:var(--ink);font-weight:800}.goals .track{background:var(--surface-2);border-radius:5px;grid-column:1/-1;height:10px;display:block;overflow:hidden}.goals .fill{background:var(--c,var(--steps));transform-origin:0;height:100%;transform:scaleX(var(--p,0));border-radius:5px;display:block}.goals .done{color:var(--good);grid-column:1/-1;align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.goals .done .ic{stroke-width:2.4px;width:15px;height:15px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);min-height:32px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--rim);border:0;border-radius:999px;padding:0 12px;font-size:13px;font-weight:600}.chip:hover{color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);color:var(--page);box-shadow:none}.table-wrap{margin:0 -4px;overflow-x:auto}.log{border-collapse:collapse;width:100%;font-size:14px}.log th{text-align:left;color:var(--muted);border-bottom:1px solid var(--grid);white-space:nowrap;padding:0 4px 10px;font-size:12px;font-weight:700}.log td{border-bottom:1px solid var(--grid);font-variant-numeric:tabular-nums;white-space:nowrap;padding:12px 4px}.log tr:last-child td{border-bottom:0}.log .num{text-align:right}.log .wk{align-items:center;gap:10px;font-weight:700;display:flex}.log .wk small{color:var(--muted);font-size:12px;font-weight:600;display:block}.log .badge{background:var(--surface-2);width:34px;height:34px;color:var(--ink-2);letter-spacing:.04em;border-radius:10px;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.log tr.is-new td{animation:flash 1.6s var(--ease)}@keyframes flash{0%{background:color-mix(in oklab, var(--move) 16%, transparent)}}.empty{color:var(--muted);padding:20px 4px}#log-more{align-self:start}.dialog{background:var(--surface);width:min(520px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:0 30px 80px -20px #00000080, 0 0 0 1px var(--rim);border:0;border-radius:20px;padding:0}.dialog::backdrop{background:#0a0a0873}html.motion .dialog[open]{animation:pop .28s var(--ease)}html.motion .dialog[open]::backdrop{animation:.28s fade}@keyframes pop{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes fade{0%{opacity:0}}.dialog form{gap:18px;padding:22px;display:grid}.dialog__head{justify-content:space-between;align-items:center;display:flex}.dialog__head h2{font-size:19px;font-weight:800}.dialog__foot{justify-content:flex-end;gap:10px;display:flex}.types{border:0;margin:0;padding:0}.types legend,.field label{color:var(--ink-2);margin-bottom:8px;padding:0;font-size:13px;font-weight:700}.types__row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.type input{opacity:0;pointer-events:none;position:absolute}.type span{border-radius:var(--r-ctl);background:var(--surface-2);min-height:42px;box-shadow:inset 0 0 0 1px var(--rim);cursor:pointer;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.type input:checked+span{background:var(--ink);color:var(--page);box-shadow:none}.type input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{align-content:start;display:grid}.field label{display:block}.unit{color:var(--muted);font-weight:600}.field input,.field select{border-radius:var(--r-ctl);background:var(--surface-2);min-height:44px;box-shadow:inset 0 0 0 1px var(--rim);border:0;width:100%;padding:0 12px;font-weight:600}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--focus);outline-offset:0}.field input[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--bad)}.field__err{min-height:18px;color:var(--bad);padding-top:4px;font-size:12px;font-weight:600}.field[hidden]{display:none}.estimate{color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-ctl);padding:10px 12px;font-size:13px}.estimate b{color:var(--ink)}.toast{left:50%;bottom:max(20px, env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:var(--page);border-radius:14px;align-items:center;gap:10px;padding:10px 10px 10px 14px;font-size:14px;font-weight:600;display:flex;position:fixed;translate:-50%;box-shadow:0 16px 40px -12px #00000073}.toast[hidden]{display:none}html.motion .toast{animation:toast-in .3s var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.toast .ic{color:var(--exercise)}.toast__undo{background:color-mix(in oklab, var(--page) 16%, transparent);color:var(--page);border:0;border-radius:8px;padding:6px 10px;font-weight:700}.more{color:var(--ink-2);border-radius:8px;flex:none;align-items:center;gap:4px;margin:-6px -8px 0 0;padding:6px 8px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.more .ic{width:16px;height:16px;transition:transform .2s var(--ease)}.more:hover{color:var(--ink);background:var(--surface-2)}.more:hover .ic{transform:translate(2px)}.hero-num{letter-spacing:-.02em;font-size:30px;font-weight:800;line-height:1}.hero-num small{color:var(--muted);letter-spacing:0;margin-left:6px;font-size:13px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.kpis--three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis--four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi--plain .kpi__value{font-size:clamp(22px,2.2vw,28px)}.kpi--plain .kpi__label .card__note{font-weight:600}.kpi--plain .kpi__label .card__note:before{content:"· "}.chart--tall{flex-basis:300px;min-height:300px}.chart .end{fill:var(--heart);stroke:var(--surface);stroke-width:2px}.stack{transform-origin:0;border-radius:4px;gap:2px;height:14px;display:flex;overflow:hidden}.stack span{min-width:2px}.stack .st-deep{background:var(--deep)}.stack .st-core{background:var(--core)}.stack .st-rem{background:var(--rem)}.stack .st-awake{background:var(--awake)}html.motion .stack{transition:transform .9s var(--ease);transform:scaleX(0)}html.motion .stack.is-in{transform:none}.mini{height:48px}.mini .kpi__spark{width:100%;height:100%}.mini .kpi__spark path{stroke:var(--heart);opacity:1}.mini .kpi__spark circle{fill:var(--heart)}.stats--two{grid-template-columns:repeat(2,1fr)}.records{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;display:grid}.records dt{color:var(--muted);font-size:12px;font-weight:700}.records dd{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.records dd small{color:var(--muted);letter-spacing:0;font-size:13px;font-weight:600}.records dd.sub{color:var(--ink-2);letter-spacing:0;font-size:12px;font-weight:600}.recent{display:grid}.recent li{border-bottom:1px solid var(--grid);grid-template-columns:34px minmax(0,1fr) repeat(3,minmax(64px,auto));align-items:center;gap:12px;padding:10px 0;display:grid}.recent li:last-child{border-bottom:0;padding-bottom:0}.recent__name{font-weight:700}.recent__name small{color:var(--muted);font-size:12px;font-weight:600;display:block}.recent__v{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2);font-size:14px}.badge{background:var(--surface-2);width:34px;height:34px;color:var(--ink-2);letter-spacing:.04em;border-radius:10px;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.log th[data-sort] button{color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;margin:-4px -6px;padding:4px 6px;display:inline-flex}.log th[data-sort] button:hover{color:var(--ink);background:var(--surface-2)}.log th[data-sort] .ic{opacity:.45;width:14px;height:14px}.log th[aria-sort]{color:var(--ink)}.log th[aria-sort] .ic{opacity:1}.log th[aria-sort=ascending] .ic{transform:scaleY(-1)}.log .act{text-align:right;width:44px}.icon-btn--sm{width:34px;height:34px}.icon-btn--sm .ic{width:17px;height:17px}.icon-btn--sm:hover{color:var(--bad)}.form{gap:18px;display:grid}.form fieldset{border:0;min-width:0;margin:0;padding:0}.form legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding:0;font-size:12px;font-weight:800}.form__foot{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.field--full{grid-column:1/-1}.opt{color:var(--muted);font-size:12px;font-weight:600}.radios{flex-wrap:wrap;gap:8px;display:flex}.radios legend{width:100%}.radios label{position:relative}.radios input{opacity:0;pointer-events:none;position:absolute}.radios span{border-radius:var(--r-ctl);background:var(--surface-2);min-height:40px;box-shadow:inset 0 0 0 1px var(--rim);cursor:pointer;align-items:center;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.radios input:checked+span{background:var(--ink);color:var(--page);box-shadow:none}.radios input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.prose{color:var(--ink-2);max-width:60ch;font-size:14px;line-height:1.6}.btn--danger{background:var(--bad);color:#fff;place-self:start}.btn--danger:hover{background:color-mix(in oklab, var(--bad) 86%, #000)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.dialog--sm{width:min(420px,100vw - 32px)}.dialog--sm form{gap:14px}.dialog--sm h2{font-size:18px;font-weight:800}.search{align-items:center;display:flex;position:relative}.search input{border-radius:var(--r-ctl);background:var(--surface);width:220px;min-height:42px;box-shadow:inset 0 0 0 1px var(--rim);border:0;padding:0 36px 0 38px;font-size:14px;font-weight:600}.search input::placeholder{color:var(--muted)}.search input:focus-visible{outline:2px solid var(--focus);outline-offset:0}.search__ic{width:18px;height:18px;color:var(--muted);pointer-events:none;position:absolute;left:11px}.search__key{min-width:20px;height:20px;box-shadow:inset 0 0 0 1px var(--rim);color:var(--muted);font:700 11px/1 var(--font);pointer-events:none;border-radius:5px;place-items:center;padding:0 5px;display:grid;position:absolute;right:10px}.search input:focus~.search__key{opacity:0}.search__list{z-index:45;background:var(--surface);width:max(100%,300px);max-height:360px;box-shadow:0 18px 50px -16px #00000059, 0 0 0 1px var(--rim);border-radius:14px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.search__list[hidden]{display:none}.search__list [role=option]{cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:8px 10px;font-size:14px;font-weight:600;display:flex}.search__list [role=option] small{color:var(--muted);font-size:12px;font-weight:700}.search__list [role=option]:hover,.search__list [aria-selected=true]{background:var(--surface-2)}.search__none{color:var(--muted);padding:10px;font-size:14px}.bell{position:relative}.bell__n{background:var(--brand);min-width:17px;height:17px;color:var(--brand-ink);text-align:center;box-shadow:0 0 0 2px var(--surface);border-radius:9px;padding:0 4px;font-size:10px;font-weight:800;line-height:17px;position:absolute;top:4px;right:4px}.bell__n[hidden]{display:none}.notes{background:var(--surface);width:min(380px,100vw - 32px);max-height:min(520px,100dvh - 120px);color:var(--ink);box-shadow:0 24px 60px -18px #0006, 0 0 0 1px var(--rim);border:0;border-radius:18px;margin:0;padding:0;position:absolute;inset:auto;overflow-y:auto}html.motion .notes:popover-open{animation:pop .22s var(--ease)}.notes__head{z-index:1;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 10px;display:flex;position:sticky;top:0}.notes__head h2{font-size:16px;font-weight:800}.notes__list{padding:0 8px 8px;display:grid}.note{border-radius:12px;grid-template-columns:36px minmax(0,1fr);gap:12px;padding:10px 8px;text-decoration:none;display:grid}.note:hover{background:var(--surface-2)}.note__ic{background:var(--surface-2);width:36px;height:36px;color:var(--ink-2);border-radius:10px;place-items:center;display:grid}.note__ic .ic{width:18px;height:18px}.note__body{color:var(--ink-2);gap:2px;font-size:13px;display:grid}.note__body strong{color:var(--ink);font-size:14px;font-weight:700}.note__body small{color:var(--muted);font-size:12px;font-weight:600}.note.is-unread .note__ic{background:color-mix(in oklab, var(--brand) 14%, var(--surface));color:var(--brand)}.note.is-unread strong:after{content:"";background:var(--brand);vertical-align:2px;border-radius:50%;width:7px;height:7px;margin-left:8px;display:inline-block}.notes .empty{padding:4px 16px 18px}.linkish{color:var(--ink);text-underline-offset:3px;background:0 0;border:0;border-radius:8px;margin:-6px -8px;padding:6px 8px;font-size:13px;font-weight:700;text-decoration:underline}.linkish:hover{background:var(--surface-2)}.linkish:disabled{color:var(--muted);cursor:default;background:0 0;text-decoration:none}.goals--tight{gap:12px}.track--xp{background:var(--surface-2);border-radius:5px;height:10px;display:block;overflow:hidden}.track--xp .fill{background:var(--brand);transform-origin:0;height:100%;transform:scaleX(var(--p,0));border-radius:5px;display:block}html.motion .track--xp .fill,html.motion .award .fill{transition:transform 1s var(--ease)}.latest{color:var(--ink-2);align-items:center;gap:8px;margin-top:auto;font-size:13px;font-weight:600;display:flex}.latest .ic{width:18px;height:18px;color:var(--brand)}.latest b{color:var(--ink)}.mini--alt .kpi__spark path{stroke:var(--steps)}.mini--alt .kpi__spark circle{fill:var(--steps)}.zones--mix .fill{background:var(--steps)}.zones strong small{color:var(--muted);font-size:12px;font-weight:600}.zones .empty{padding:4px 0}.stages--three{grid-template-columns:repeat(3,minmax(0,1fr))}.stack .ef-easy,.key.ef-easy{background:var(--ef-1)}.stack .ef-moderate,.key.ef-moderate{background:var(--ef-2)}.stack .ef-hard,.key.ef-hard{background:var(--ef-3)}.stack .mc-p,.key.mc-p{background:var(--steps)}.stack .mc-c,.key.mc-c{background:var(--move)}.stack .mc-f,.key.mc-f{background:var(--exercise)}.stages--three strong small{display:block}.grid--start{grid-template-rows:auto 1fr;align-items:start}.grid--start>:first-child{grid-row:span 2}.toolbar__end{margin-left:auto}.daypick{align-items:center;gap:8px;display:flex}.daypick__label{text-align:center;min-width:150px;font-size:15px;font-weight:800}.meals{gap:20px;display:grid}.meal__head{border-bottom:1px solid var(--grid);align-items:center;gap:10px;padding-bottom:8px;display:flex}.meal__head h3{font-size:14px;font-weight:800}.meal__sum{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}button.more{background:0 0;border:0}.meal__head .more{margin:-6px -8px -6px auto}.meal__items li{border-bottom:1px solid var(--grid);grid-template-columns:minmax(0,1fr) auto 34px;align-items:center;gap:12px;padding:9px 0;display:grid}.meal__items li:last-child{border-bottom:0;padding-bottom:0}.meal__items li.is-new{animation:flash 1.6s var(--ease)}.meal__name{min-width:0;font-size:14px;font-weight:700}.meal__name small{color:var(--muted);font-size:12px;font-weight:600;display:block}.meal__kcal{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.meal__empty{color:var(--muted);padding-top:8px;font-size:13px}.dialog__head .card__note{margin-top:2px}.toolbar--lib .field{min-width:0}.field--grow{flex:260px}.lib{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:start;display:grid}.ex{gap:10px;scroll-margin-top:16px}.ex__head{justify-content:space-between;align-items:start;gap:10px;display:flex}.ex h2:focus{outline:none}.ex:has(h2:focus){box-shadow:var(--shadow), 0 0 0 2px var(--focus)}.tag{background:var(--surface-2);color:var(--ink-2);letter-spacing:.02em;border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:800}.ex__meta{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font-size:13px;font-weight:600;display:flex}.ex__eq{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.ex__eq .ic{width:16px;height:16px}.ex__how summary{border-top:1px solid var(--grid);cursor:pointer;align-items:center;gap:6px;min-height:40px;padding-top:8px;font-size:14px;font-weight:700;list-style:none;display:flex}.ex__how summary::-webkit-details-marker{display:none}.ex__how summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:18px;font-weight:600}.ex__how[open] summary:after{content:"−"}.ex__how ol{color:var(--ink-2);gap:6px;margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.5;display:grid}.ex__tip{border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink-2);margin-top:12px;padding:10px 12px;font-size:13px}.ex__tip b{color:var(--ink);margin-right:4px}.chart--alt .line{stroke:var(--steps)}.chart--alt .area,.chart--alt .dot,.chart--alt .end{fill:var(--steps)}.sub-h{border-top:1px solid var(--grid);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding-top:14px;font-size:12px;font-weight:800}.weighins li{border-bottom:1px solid var(--grid);grid-template-columns:minmax(0,1fr) auto 34px;align-items:center;gap:12px;padding:8px 0;font-size:14px;display:grid}.weighins li:last-child{border-bottom:0;padding-bottom:0}.weighins span:first-child{font-weight:700}.weighins small{color:var(--muted);font-size:12px;font-weight:600;display:block}.weighins strong{font-variant-numeric:tabular-nums}.records--prs{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}.new{vertical-align:1px;background:var(--brand);color:var(--brand-ink);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.hero-num--xl{font-size:40px}.xp-rules div{border-bottom:1px solid var(--grid);justify-content:space-between;gap:12px;padding:10px 0;font-size:14px;display:flex}.xp-rules div:last-child{border-bottom:0}.xp-rules dt{color:var(--ink-2);font-weight:600}.xp-rules dd{font-variant-numeric:tabular-nums;font-weight:800}.badges{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;display:grid}.badges .empty{grid-column:1/-1;padding:4px}.award{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--rim);border-radius:14px;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:14px;padding:14px;display:grid}.medal{background:var(--surface);width:48px;height:48px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--rim);border-radius:50%;place-items:center;display:grid}.medal .ic{width:22px;height:22px}.award.is-earned .medal{background:var(--brand);color:var(--brand-ink);box-shadow:none}.award__body{gap:4px;min-width:0;display:grid}.award__body strong{font-size:15px;font-weight:800}.award__body>span:not(.track){color:var(--ink-2);font-size:13px}.award__body small{color:var(--ink-2);align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.award.is-earned small{color:var(--good)}.award small .ic{stroke-width:2.4px;width:14px;height:14px}.award .track{background:var(--surface);height:6px;box-shadow:inset 0 0 0 1px var(--rim);border-radius:3px;margin-top:4px;display:block;overflow:hidden}.award .fill{background:var(--steps);transform-origin:0;height:100%;transform:scaleX(var(--p,0));display:block}@media (width<=1180px){.grid--top{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis--three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi__row{flex-direction:column;align-items:start}.kpi__spark{width:100%}.grid--three{grid-template-columns:1fr 1fr}.grid--three .card--wide{grid-column:1/-1}}@media (width<=980px){.shell{grid-template-columns:minmax(0,1fr)}.side{z-index:20;border-right:0;border-bottom:1px solid var(--rim);background:color-mix(in oklab, var(--page) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-direction:row;align-items:center;gap:12px;height:auto;padding:10px 16px;position:sticky;top:0}.nav{scrollbar-width:none;flex:1;gap:4px;min-width:0;margin:0 -16px 0 0;padding:2px 16px 2px 2px;display:flex;overflow:auto visible}.nav__group{display:none}.nav ul{gap:4px;display:flex}.nav a{white-space:nowrap;padding:8px 10px}.nav__end{border:0;margin:0;padding:0}.side__user,.brand__name{display:none}.grid--wide{grid-template-columns:1fr}.grid--start>:first-child{grid-row:auto}.kpis,.kpis--four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.main{padding:18px 16px 48px}.nav .ic{display:none}.top__tools{flex-wrap:nowrap;width:100%}.search{flex:1;min-width:0}.search input{width:100%}.daypick{flex:1;justify-content:space-between}.toolbar__end{width:100%}.grid--three{grid-template-columns:1fr}.kpis,.kpis--three{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kpi{padding:14px}.delta{flex-wrap:wrap}.delta span:last-child{flex-basis:100%;font-size:12px}.rings__body{gap:16px}.card{padding:16px}.chart--tall{flex-basis:240px;min-height:240px}.stages{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:1fr}.types__row{grid-template-columns:repeat(2,1fr)}.stats dd{font-size:16px}.records dd{font-size:19px}.recent li{grid-template-columns:34px minmax(0,1fr) auto auto}.recent__v--opt{display:none}.log thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.log,.log tbody,.log tr,.log td{display:block}.log tr{border-bottom:1px solid var(--grid);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 8px;padding:12px 0;display:grid}.log td{border:0;padding:0;font-size:13px;text-align:left!important}.log td:first-child{grid-column:1/3}.log td:nth-child(2){color:var(--muted);grid-area:1/3/auto/5;align-self:center;text-align:right!important}.log tr:has(.act button) td:nth-child(2){grid-column:3/4}.log td.act{grid-area:1/4;justify-self:end;width:auto}.log td.act:empty{display:none}.log td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700;display:block}}@media (width<=400px){.kpis,.kpis--three,.kpis--four{grid-template-columns:1fr}.kpi__row{flex-direction:row;align-items:end}.kpi__spark{width:110px}.kpi--plain .kpi__label .card__note{margin-left:auto}.kpi--plain .kpi__label .card__note:before{content:none}#log-open{padding:0 12px}#log-open .btn__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stages--three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (pointer:coarse){.more{min-height:44px;margin:-12px -8px -8px 0}.chip{min-height:40px;padding:0 14px}.log th[data-sort] button{min-height:40px}.seg button{min-height:44px}.icon-btn--sm{width:44px;height:44px}.nav a{min-height:44px}.search__key{display:none}.search input{min-height:44px}.icon-btn{width:44px;height:44px}.meal__items li,.weighins li{grid-template-columns:minmax(0,1fr) auto 44px}}@media (forced-colors:active){.ring__fill,.chart .bar,.chart .line{stroke:canvastext}.chart .bar,.goals .fill,.zones .fill,.glass:after,.stack span,.track--xp .fill,.award .fill{fill:highlight;background:highlight}}.type{position:relative}
