:root{--bg:#07080a;--surface:#121417;--surface-sunken:#0e1013;--surface-raised:#1c1f23;--glass:#16191ce0;--hairline:.5px;--border:#ffffff0f;--border-strong:#ffffff1f;--grid-line:#ffffff0b;--text:#f2f4f0;--text-secondary:#b7bdc2;--text-muted:#8f969c;--text-faint:#5c636a;--text-fainter:#40464c;--text-ghost:#2a2f34;--accent:#cdf441;--accent-contrast:#0b0d06;--accent-soft:#cdf4411f;--accent-line:#cdf44140;--accent-glow:#cdf44173;--accent-wash:#cdf4410f;--accent-halo:#cdf44112;--accent-glow-soft:#cdf44147;--danger:#ff6157;--danger-soft:#ff61571f;--danger-wash:#ff61570f;--danger-line:#ff615747;--zone-1:#6e7c87;--zone-2:#4c8dd9;--zone-3:#3fbf7f;--zone-4:#efc13c;--zone-5:#f2873b;--zone-6:#e04a3c;--zone-7:#a461e8;--zone-track:#ffffff0d;--ring-tick:#ffffff29;--ring-tick-major:#fff3;--ring-tick-minor:#ffffff1a;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--size-ring:5.25rem;--size-hero:3.625rem;--size-tile:2.125rem;--size-title:1.625rem;--size-lg:1.3125rem;--size-md:1rem;--size-sm:.875rem;--size-xs:.6875rem;--size-micro:.625rem;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-hero:-.04em;--tracking-title:-.02em;--tracking-label:.16em;--tracking-mono:.1em;--tracking-wordmark:.18em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-card:20px;--radius:14px;--radius-sm:12px;--radius-tile:9px;--radius-pill:999px;--radius-badge:5px;--duration-press:.12s;--duration-shift:.24s;--duration-sweep:.6s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-swing:cubic-bezier(.3, 1.2, .4, 1);--press-wash:#ffffff0a;--touch-target:44px;--max-width:27rem;--tabbar-height:62px}*,:before,:after{box-sizing:border-box}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-text-size-adjust:100%}body{font-family:var(--font);font-size:var(--size-md);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}.app{max-width:var(--max-width);padding:calc(env(safe-area-inset-top) + var(--space-5)) var(--space-4) calc(env(safe-area-inset-bottom) + var(--tabbar-height) + var(--space-6));margin:0 auto}.screen{gap:var(--space-4);animation:screen-enter var(--duration-shift) var(--ease-out);flex-direction:column;display:flex;position:relative}@keyframes screen-enter{0%{opacity:0;transform:translateY(4px)}}.screen-today{align-items:center}.screen-today>.section,.screen-today>.stat-row,.screen-today>.day-zero-actions,.screen-today>.sparkline,.screen-today>.rank-insight{width:100%}.screen-header{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;display:flex}.screen-title{font-size:var(--size-title);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);margin:0}.wordmark{font-size:var(--size-title);font-weight:var(--weight-bold);letter-spacing:-.03em;color:var(--text);display:inline-block;position:relative}.wordmark:after{content:"";background:var(--accent);width:2.48em;height:1.5px;position:absolute;bottom:-5px;left:0}.wordmark-accent{color:var(--accent)}.wordmark-micro{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wordmark);color:var(--text-faint);display:flex}.wordmark-micro-mark{width:14px;height:14px;color:var(--accent);flex:none}.section{gap:var(--space-3);flex-direction:column;display:flex}.section-title{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--text-faint);margin:0}.card{background:var(--surface);border:var(--hairline) solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.card>p{margin:0}.row{align-items:center;gap:var(--space-2);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.muted{color:var(--text-muted);font-size:var(--size-sm);margin:0;line-height:1.45}.error-text{color:var(--danger);font-size:var(--size-sm);margin:0}.eyebrow{font-size:var(--size-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);color:var(--accent);margin:0}.app-footnote{margin:var(--space-4) 0 0;text-align:center;font-size:var(--size-xs);color:var(--text-fainter)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button,.icon-button,.segment,.rank-pill-action,.stale-badge,.preset,.tab{transition:transform var(--duration-press) var(--ease-out), background-color var(--duration-shift) var(--ease-out), color var(--duration-shift) var(--ease-out), border-color var(--duration-shift) var(--ease-out), opacity var(--duration-shift) var(--ease-out)}.button:active:not(:disabled),.stale-badge:active,.preset:active,.tab:active{transform:scale(.97)}.icon-button:active:not(:disabled),.segment:active,.rank-pill-action:active{transform:scale(.94)}@media (hover:hover){.button:hover:not(:disabled),.icon-button:hover:not(:disabled),.segment:hover,.rank-pill-action:hover,.stale-badge:hover,.preset:hover,.tab:hover{filter:brightness(1.08)}.tool-row:hover{background:var(--press-wash)}}.button{min-height:var(--touch-target);justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--space-5);border:var(--hairline) solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text-secondary);font-family:inherit;font-size:var(--size-sm);font-weight:var(--weight-semibold);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;display:inline-flex}.button:disabled{opacity:.4;cursor:default}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:var(--weight-bold);box-shadow:inset 0 1px #ffffff40,0 0 28px #cdf4412e}.button-lg{min-height:56px;font-size:var(--size-md)}.button-arrow{flex:none;width:15px;height:12px}.button-ghost{border-color:var(--border-strong);color:var(--text-secondary)}.button-plain{color:var(--text-muted);border-color:#0000}.button-danger{color:var(--danger);border-color:var(--danger-soft)}.button-block{width:100%}.button-grow{flex:1}.icon-button{border:var(--hairline) solid var(--border);border-radius:var(--radius-pill);width:34px;height:34px;min-height:34px;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff0d;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.icon-button:after{content:"";inset:calc((var(--touch-target) - 34px) / -2);position:absolute}.icon-button:disabled{cursor:default}.icon-button-failed{border-color:var(--danger-soft);color:var(--danger)}.icon-button-glyph{width:15px;height:17px}.input{width:100%;min-height:var(--touch-target);padding:0 var(--space-4);border:var(--hairline) solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit;font-weight:var(--weight-semibold);font-size:max(var(--size-md), 16px)}.input:focus-visible{border-color:var(--accent-line);outline:none}.input-pill{min-height:56px;padding:0 var(--space-5);border-color:var(--border-strong);font-weight:var(--weight-normal);border-radius:var(--radius-pill);background:#ffffff0d}.input-pill::placeholder{color:var(--text-fainter)}.input-pill:focus-visible{border-color:#ffffff2e}.input-hero{font-size:max(var(--size-tile), 16px);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0}.field{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.field-label{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--text-faint)}.segmented{border:var(--hairline) solid var(--border);border-radius:var(--radius-pill);background:#ffffff0d;gap:2px;padding:3px;display:inline-flex}.segment{min-height:34px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--text-muted);font-family:inherit;font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;position:relative}.segment:after{content:"";inset:calc((34px - var(--touch-target)) / 2) 0;position:absolute}.segmented-sm .segment:after{inset:calc((28px - var(--touch-target)) / 2) 0}.segment-grow{flex:1}.segment[aria-pressed=true]{box-shadow:inset 0 0 0 var(--hairline) var(--border-strong);color:var(--text);background:#ffffff38}.segmented-sm .segment{min-height:28px;padding:0 var(--space-2);font-size:var(--size-micro)}.delta-pill{align-items:center;gap:var(--space-1);border:var(--hairline) solid transparent;border-radius:var(--radius-badge);font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;padding:3px 9px;display:inline-flex}.delta-pill-up{border-color:var(--accent-line);background:var(--accent-wash);color:var(--accent)}.delta-pill-down{border-color:var(--danger-line);background:var(--danger-wash);color:var(--danger)}.rank-pill{border:var(--hairline) solid var(--border);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);text-transform:uppercase;font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;padding:3px 10px;display:inline-flex}.rank-pill-action{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;position:relative}.rank-pill-action:after{content:"";inset:calc((var(--touch-target) - 20px) / -2);position:absolute}.rank-pill-prompt{color:var(--text-faint)}.ladder{padding:var(--space-2) var(--space-4);gap:0}.ladder-row{gap:var(--space-2);padding:var(--space-3) 0;border-bottom:var(--hairline) solid var(--border);font-size:var(--size-sm);grid-template-columns:1.4fr 1fr 1fr;align-items:baseline;display:grid}.ladder-row:last-child{border-bottom:0}.ladder-head{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--text-faint)}.ladder-num{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.ladder-row-here,.ladder-row-here .ladder-num{color:var(--accent)}.estimate-note{width:100%;padding:var(--space-2) 0;color:var(--text-fainter);font-family:inherit;font-size:var(--size-micro);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--duration-press) var(--ease-out);background:0 0;border:0;line-height:1.4;position:relative}.estimate-note:active{color:var(--text-muted)}.estimate-note:after{content:"";inset:calc((var(--touch-target) - 30px) / -2) 0;position:absolute}.source-note{font-size:var(--size-xs);color:var(--text-fainter)}.ladder-note{font-size:var(--size-micro);color:var(--text-fainter);display:block}.status-pill{border-radius:var(--radius-pill);background:var(--danger-soft);color:var(--danger);font-size:var(--size-micro);font-weight:var(--weight-semibold);padding:3px 10px}.stale-badge{min-height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--danger-soft);color:var(--danger);font-family:inherit;font-size:var(--size-xs);font-weight:var(--weight-semibold);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;justify-content:center;align-items:center;display:inline-flex}.ftp-ring{width:252px;max-width:100%;height:252px;margin-top:var(--space-4);flex:none;position:relative}.ftp-ring-live:before{content:"";background:radial-gradient(50% 50% at 50% 50%, var(--accent-halo) 0%, transparent 100%);pointer-events:none;width:340px;height:340px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ftp-ring-svg{width:100%;height:100%;display:block}.ftp-ring-svg-rotated{transform:rotate(-90deg)}.ftp-ring-track{stroke:#ffffff12;stroke-width:5px}.ftp-ring-tick{stroke:var(--ring-tick);stroke-width:1.2px}.ftp-ring-arc{stroke:var(--accent);stroke-width:5px;filter:drop-shadow(0 0 12px var(--accent-glow-soft));transition:stroke-dashoffset var(--duration-sweep) var(--ease-out)}.ftp-ring[data-intro] .ftp-ring-arc{transition:none}.ftp-ring-live[data-intro]:before{animation:halo-in var(--duration-sweep) var(--ease-out) both}@keyframes halo-in{0%{opacity:0}}.ftp-ring[data-intro] .ftp-ring-label,.ftp-ring[data-intro] .delta-pill{animation:ring-support-in var(--duration-shift) var(--ease-out) var(--duration-shift) both}@keyframes ring-support-in{0%{opacity:0;transform:translateY(2px)}}.ftp-ring-empty-track{stroke:#ffffff21;stroke-width:4px}.ftp-ring-inner{justify-content:center;align-items:center;gap:var(--space-1);padding:0 var(--space-6);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.ftp-ring-value{font-size:var(--size-ring);font-weight:var(--weight-bold);letter-spacing:var(--tracking-hero);font-variant-numeric:tabular-nums;line-height:1}.ftp-ring-value[data-counting]{animation:value-arrive var(--duration-sweep) var(--ease-out)}@keyframes value-arrive{50%{text-shadow:0 0 24px var(--accent-glow-soft)}}.ftp-ring-label{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-mono);color:var(--text-faint)}.ftp-ring-empty-title{font-size:var(--size-lg);font-weight:var(--weight-bold);margin:0}.ftp-ring-empty-body{font-size:var(--size-sm);color:var(--text-muted);margin:0;line-height:1.45}.ftp-ring-inner .delta-pill{margin-top:var(--space-1)}.ring-caption{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-faint);text-align:center;margin:0}.window-note{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-muted);text-align:center;margin:0}.proof-line{justify-content:center;align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-faint);text-align:center;margin:0;display:flex}.proof-mark{flex:none;width:1.1em;height:1.1em}.day-zero-actions{gap:var(--space-3);flex-direction:column;display:flex}.sparkline{gap:var(--space-2);flex-direction:column;display:flex}.sparkline-svg{width:100%;height:40px;display:block}.sparkline-line{stroke:var(--accent);vector-effect:non-scaling-stroke;stroke-width:1.5px;opacity:.9;filter:drop-shadow(0 0 4px var(--accent-glow))}.sparkline-caption{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-fainter);text-align:center}.stat-row{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.stat-tile{background:var(--surface);border:var(--hairline) solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.stat-tile-label,.stat-label{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-medium);letter-spacing:var(--tracking-mono);color:var(--text-faint)}.stat-tile-value{font-size:var(--size-tile);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);font-variant-numeric:tabular-nums;line-height:1.1}.stat-tile-sub{font-size:var(--size-xs);color:var(--text-faint)}.stat-tile-note{font-size:var(--size-micro);color:var(--text-fainter);line-height:1.3}.stat-tile-gap{font-size:var(--size-micro);font-weight:var(--weight-semibold);color:var(--text-fainter);font-variant-numeric:tabular-nums;line-height:1.3}.stat-tile-proof{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-fainter);white-space:nowrap;align-items:center;gap:3px;display:flex}.stat-tile-empty{background:var(--surface-sunken);border-color:#ffffff0a}.stat-tile-empty .stat-tile-label{color:var(--text-fainter)}.stat-tile-empty .stat-tile-value,.stat-tile-empty .stat-tile-sub{color:var(--text-ghost)}.hero-value{font-size:var(--size-tile);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);font-variant-numeric:tabular-nums;line-height:1.1}.setting-state{font-size:var(--size-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-title);line-height:1.1}.hero-unit,.unit-suffix{margin-left:var(--space-1);font-size:var(--size-sm);font-weight:var(--weight-normal);color:var(--text-faint)}.drop-overlay{inset:calc(var(--space-4) * -1);border:1px dashed var(--accent);border-radius:var(--radius-card);background:var(--accent-soft);-webkit-backdrop-filter:blur(6px);color:var(--accent);font-weight:var(--weight-semibold);pointer-events:none;animation:overlay-in var(--duration-press) var(--ease-out);justify-content:center;align-items:center;display:flex;position:absolute}@keyframes overlay-in{0%{opacity:0}}.ride-card{background:var(--surface);border:var(--hairline) solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);gap:var(--space-3);animation:card-in var(--duration-shift) var(--ease-out);flex-direction:column;display:flex}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}}.ride-card-new-ftp{border-color:var(--accent-line);background:linear-gradient(160deg, #cdf4410f, var(--surface));animation:card-celebrate var(--duration-sweep) var(--ease-swing)}@keyframes card-celebrate{0%{opacity:0;transform:translateY(14px)scale(.98)}}.ride-card-invalid{border-color:var(--border-strong)}.ride-headline{font-size:var(--size-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);margin:0}.peak-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.peak{gap:var(--space-1);flex-direction:column;display:flex}.peak-value{font-size:var(--size-lg);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.screen-trends{gap:var(--space-3)}.trend-summary{align-items:flex-end;gap:var(--space-3);display:flex}.trend-summary-value{font-size:var(--size-hero);font-weight:var(--weight-bold);letter-spacing:var(--tracking-hero);font-variant-numeric:tabular-nums;line-height:.9}.trend-summary-meta{align-items:flex-start;gap:var(--space-2);flex-direction:column;padding-bottom:2px;display:flex}.trend-summary-unit{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-mono);color:var(--text-faint)}.trend-insight{font-size:var(--size-sm);color:var(--text-muted);text-wrap:pretty;margin:0;line-height:1.45}.chart-frame{height:266px;margin-left:calc(var(--space-2) * -1)}.chart-frame-loading{border-radius:var(--radius-card);background:linear-gradient(100deg, var(--surface-sunken) 40%, var(--press-wash) 50%, var(--surface-sunken) 60%);background-size:200% 100%;animation:1.4s linear infinite sheen}@keyframes sheen{to{background-position:-200% 0}}.trend-area path{filter:drop-shadow(0 0 6px var(--accent-glow))}.chart-caption{font-size:var(--size-xs);color:var(--text-fainter);text-align:center;margin:0}.ride-log,.weight-log{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ride-log-item,.weight-log-item{background:var(--surface);border:var(--hairline) solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.ride-log-item-pr{border-color:var(--accent-line)}.ride-log-peaks{font-family:var(--font-mono);font-size:var(--size-xs);color:var(--text-muted)}.ride-log-note{font-size:var(--size-xs);color:var(--text-faint);margin:0}.pr-tag{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-bold);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--accent)}.weight-log-value{font-size:var(--size-md);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.tool-list{gap:0;padding:0}.tool-row{align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-target);padding:var(--space-3) var(--space-4);border:0;border-bottom:var(--hairline) solid var(--border);color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-press) var(--ease-out);background:0 0;font-family:inherit;display:flex}.tool-row:active{background:var(--press-wash)}.tool-row:first-child{border-radius:var(--radius-card) var(--radius-card) 0 0}.tool-row:last-child{border-radius:0 0 var(--radius-card) var(--radius-card);border-bottom:0}.tool-mark{background:var(--surface-raised);border:var(--hairline) solid var(--border-strong);width:38px;height:38px;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tool-mark-derived{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.tool-row-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tool-row-title{font-size:var(--size-md);font-weight:var(--weight-semibold);color:var(--text)}.tool-row-blurb{font-size:var(--size-sm);color:var(--text-faint)}.tool-chevron{width:7px;height:12px;color:var(--text-fainter);flex:none}.tool-header{align-items:center;gap:var(--space-2);display:flex}.tool-back{color:var(--text-muted);flex:none}.tool-back-glyph{width:8px;height:14px}.hero-block{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.tool-caveat{color:var(--text-fainter)}.tool-note{cursor:default}.tool-note:after{content:none}.tool-empty{align-items:stretch;gap:var(--space-3)}.stepper{align-items:center;gap:var(--space-2);padding:var(--space-2);flex-direction:row}.stepper-button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);border:var(--hairline) solid var(--border-strong);color:var(--text-secondary);font-size:var(--size-lg);background:#ffffff0f;flex:none}.stepper-button:disabled{opacity:.35;cursor:default}.stepper-value{justify-content:center;align-items:baseline;gap:var(--space-1);flex:1;display:flex}.stepper-number,.input-bare{font-size:var(--size-tile);font-weight:var(--weight-bold);letter-spacing:var(--tracking-hero);font-variant-numeric:tabular-nums;color:var(--text)}.input-bare{text-align:right;width:3.5ch;font-family:inherit;font-size:max(var(--size-tile), 16px);background:0 0;border:0;padding:0}.input-bare-wide{width:4.5ch}.input-bare:focus{color:var(--accent);outline:none}.stepper-unit{font-family:var(--font-mono);font-size:var(--size-xs);color:var(--text-faint)}.preset-row{gap:var(--space-2);display:flex}.preset{border:var(--hairline) solid var(--border-strong);border-radius:var(--radius-pill);min-height:32px;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--size-xs);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;flex:1;padding:0;position:relative}.preset:after{content:"";inset:calc((32px - var(--touch-target)) / 2) 0;position:absolute}.preset[aria-pressed=true]{border-color:var(--border-strong);color:var(--text);background:#ffffff38}.pacing-row{grid-template-columns:5.5rem 1fr;align-items:start}.pacing-when{font-family:var(--font-mono);font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-faint);padding-top:2px}.pacing-body{gap:var(--space-1);flex-direction:column;display:flex}.pacing-watts{font-size:var(--size-md);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--text)}.fuel-row{gap:var(--space-2);grid-template-columns:1.15fr 1fr 1fr;align-items:stretch;display:grid}.fuel-row .stat-tile{padding:var(--space-3) var(--space-2);text-align:center;justify-content:center;align-items:center}.fuel-value{white-space:nowrap;font-size:var(--size-md);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--text)}.zones{padding:var(--space-2) var(--space-4);gap:0}.zones-empty{background:var(--surface-sunken);padding:var(--space-4)}.zones-basis{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-mono);color:var(--text-faint);font-variant-numeric:tabular-nums}.zones-picker{width:100%;display:flex}.zone-row{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) 0;border-bottom:var(--hairline) solid var(--border);grid-template-columns:1fr auto;grid-template-areas:"head head""bar pct";display:grid}.zone-row:last-child{border-bottom:0}.zone-head{align-items:baseline;gap:var(--space-2);font-size:var(--size-sm);grid-area:head;display:flex}.zone-chip{background:var(--zone);border-radius:2px;flex:none;width:9px;height:9px;transform:translateY(-1px)}.zone-num{font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-bold);letter-spacing:var(--tracking-mono);color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none}.zone-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text);flex:1;overflow:hidden}.zone-watts{font-variant-numeric:tabular-nums;color:var(--text-secondary);flex:none}.zone-bar{grid-area:bar;width:100%;height:4px;display:block;overflow:visible}.zone-bar-track{fill:var(--zone-track)}.zone-bar-fill{fill:var(--zone);transition:x var(--duration-shift) var(--ease-out), width var(--duration-shift) var(--ease-out)}.zone-bar-open{-webkit-mask-image:linear-gradient(90deg,#000 55%,#0000 100%);mask-image:linear-gradient(90deg,#000 55%,#0000 100%)}.zone-pct{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-mono);color:var(--text-fainter);font-variant-numeric:tabular-nums;text-align:right;grid-area:pct}.zone-row-here .zone-name,.zone-row-here .zone-watts{color:var(--text);font-weight:var(--weight-semibold)}.zone-verdict{font-size:var(--size-sm);color:var(--text-secondary);text-align:center;margin:0}.zone-tone-1{--zone:var(--zone-1)}.zone-tone-2{--zone:var(--zone-2)}.zone-tone-3{--zone:var(--zone-3)}.zone-tone-4{--zone:var(--zone-4)}.zone-tone-5{--zone:var(--zone-5)}.zone-tone-6{--zone:var(--zone-6)}.zone-tone-7{--zone:var(--zone-7)}.source-row{align-items:center;gap:var(--space-3);flex-direction:row}.source-mark{border:var(--hairline) solid var(--accent-line);border-radius:var(--radius-tile);width:34px;height:34px;color:var(--accent);font-size:var(--size-xs);font-weight:var(--weight-bold);background:#cdf4411a;flex:none;justify-content:center;align-items:center;display:inline-flex}.source-name{font-size:var(--size-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;flex:1}.source-check{border-radius:var(--radius-pill);width:20px;height:20px;color:var(--accent);background:#cdf44126;flex:none;justify-content:center;align-items:center;display:inline-flex}.source-check svg{width:10px;height:8px}.tab-bar{left:50%;bottom:calc(env(safe-area-inset-bottom) + var(--space-4));z-index:10;align-items:center;gap:var(--space-1);border:var(--hairline) solid var(--border-strong);border-radius:var(--radius-pill);background:var(--glass);-webkit-backdrop-filter:blur(14px);padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.tab{min-height:var(--touch-target);align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--text-muted);font-family:inherit;font-size:var(--size-sm);font-weight:var(--weight-semibold);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;display:inline-flex}.tab-active{color:var(--accent);background:#cdf44121}.tab-icon{flex:none;width:18px;height:18px}.tab-label{white-space:nowrap;animation:tab-label-in var(--duration-shift) var(--ease-out)}@keyframes tab-label-in{0%{opacity:0;transform:translate(-2px)}}.landing{min-height:100dvh;padding:calc(env(safe-area-inset-top) + var(--space-5)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-5));flex-direction:column;align-items:center;display:flex}.landing-inner{width:100%;max-width:var(--max-width);flex-direction:column;flex:1;align-items:center;display:flex}.landing-ring{width:248px;max-width:100%;height:248px;margin-top:var(--space-6);position:relative}.landing-ring:before{content:"";background:radial-gradient(50% 50% at 50% 50%, var(--accent-halo) 0%, transparent 100%);pointer-events:none;width:340px;height:340px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.landing-ring-svg{width:100%;height:100%;display:block;position:relative}.landing-ring-track{stroke:#ffffff12;stroke-width:5px}.landing-ring-tick{stroke:var(--ring-tick-minor);stroke-width:1.2px}.landing-ring-tick-major{stroke:var(--ring-tick-major)}.landing-ring-arc{stroke:var(--accent);stroke-width:5px;filter:drop-shadow(0 0 12px var(--accent-glow-soft))}.landing-ring-inner{justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex;position:absolute;inset:0}.landing-ring-figure{align-items:baseline;gap:6px;display:flex}.landing-ring-value{font-size:var(--size-ring);font-weight:var(--weight-bold);letter-spacing:var(--tracking-hero);font-variant-numeric:tabular-nums;line-height:1}.landing-ring-unit{font-size:var(--size-title);font-weight:var(--weight-bold);color:var(--accent)}.landing-caption{margin:var(--space-4) 0 0;font-family:var(--font-mono);font-size:var(--size-micro);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);color:var(--text-faint)}.landing-headline{margin:var(--space-5) 0 0;font-size:var(--size-title);font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);text-align:center;text-wrap:pretty;line-height:1.2}.landing-lede{margin:var(--space-3) 0 0;max-width:22rem;font-size:var(--size-md);color:var(--text-muted);text-align:center;text-wrap:pretty;line-height:1.5}.landing-form{width:100%;margin-top:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.landing-field{gap:var(--space-2)}.landing-field>.field-label{margin-left:var(--space-5)}.landing-reassure{font-size:var(--size-sm);color:var(--text-faint);text-align:center;margin:0;line-height:1.5}.landing-sent{width:100%;margin-top:var(--space-5);padding-top:var(--space-5);border-top:var(--hairline) solid var(--border);gap:var(--space-2);text-align:center;flex-direction:column;align-items:center;display:flex}.landing-sent-head{font-size:var(--size-md);font-weight:var(--weight-semibold);margin:0}.landing-footer{padding-top:var(--space-6);align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;margin:auto 0 0;display:flex}.landing-tagline{font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);color:var(--text-fainter);margin:0}.landing-colophon{font-size:var(--size-xs);color:var(--text-fainter);margin:0}.auth-screen{min-height:100dvh;max-width:var(--max-width);padding:calc(env(safe-area-inset-top) + var(--space-6)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-6));justify-content:center;align-items:center;gap:var(--space-5);text-align:center;flex-direction:column;margin:0 auto;display:flex}.auth-brand{align-items:center;gap:var(--space-5);flex-direction:column;display:flex}.auth-mark{width:56px;height:56px;color:var(--accent);filter:drop-shadow(0 0 10px var(--accent-glow))}.auth-body{gap:var(--space-4);flex-direction:column;width:100%;display:flex}.auth-form{gap:var(--space-3);text-align:left;flex-direction:column;display:flex}.auth-tagline{font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:.16em;color:var(--text-fainter);margin:auto 0 0}.first-run{min-height:100dvh;max-width:var(--max-width);padding:calc(env(safe-area-inset-top) + var(--space-6)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-5));gap:var(--space-3);flex-direction:column;margin:0 auto;display:flex}.first-run-title{margin:0 0 var(--space-4);font-size:2rem;font-weight:var(--weight-bold);letter-spacing:var(--tracking-title);text-wrap:pretty;line-height:1.15}.first-run-form{gap:var(--space-3);flex-direction:column;flex:1;display:flex}.first-run-outro{margin:0 0 var(--space-2);font-size:var(--size-md);line-height:1.35}.first-run-actions{padding-top:var(--space-5);gap:var(--space-2);flex-direction:column;margin-top:auto;display:flex}@media (width>=40rem){.stat-row{gap:var(--space-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
