.workout-editor{gap:var(--space-5);min-width:0;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-panel);display:grid}.workout-editor legend{padding:0 var(--space-2);color:var(--color-text-secondary)}.editor-toolbar,.editor-block-heading{align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.editor-field{gap:var(--space-2);min-width:0;font-size:var(--text-small);color:var(--color-text-secondary);display:grid}.editor-field input,.editor-field select,.workout-editor button{min-height:var(--control-height);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);padding:var(--space-2) var(--space-3);font:inherit;width:100%;min-width:0}.workout-editor button{width:auto}.workout-editor button.primary{background:var(--color-accent);color:var(--color-text-on-accent)}.editor-toolbar .editor-field{flex:160px}.editor-blocks{gap:var(--space-3);display:grid}.editor-block{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-inset);display:grid}.editor-block-heading{align-items:center}.editor-block-heading strong{flex:1;min-width:70px}.editor-block-heading .editor-field{width:90px}.editor-step{align-items:end;gap:var(--space-2);grid-template-columns:minmax(100px,1.4fr) repeat(4,minmax(75px,1fr)) auto;display:grid}.editor-preview{color:var(--color-text-muted);font-size:var(--text-small)}.editor-preview svg{width:100%;height:110px;margin-bottom:var(--space-2);display:block}.editor-preview polygon{fill:var(--color-profile-steady);stroke:var(--color-accent);stroke-width:.6px}.editor-status{min-height:1.4em;font-size:var(--text-small);color:var(--color-text-secondary)}.editor-error{color:var(--color-danger-text)}@media (width<=900px){.editor-step{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-step .editor-field:first-child{grid-column:1/-1}}:root{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-body:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--color-background:#111414;--color-surface:#1a201e;--color-surface-inset:#181d1b;--color-surface-raised:#242c26;--color-surface-hover:#283126;--color-text:#f0f2ec;--color-text-secondary:#c1cea8;--color-text-muted:#929d9a;--color-text-on-accent:#172018;--color-border:#303735;--color-border-strong:#475141;--color-border-selected:#8d9c62;--color-accent:#d3f477;--color-spice-mild:#d3f477;--color-spice-spicy:#f7b880;--color-spice-hot:#f49c89;--color-chart-power:var(--color-accent);--color-chart-heart-rate:#f4a3b4;--color-accent-subtle:#d3f47709;--color-accent-halo:#d3f47710;--color-status-idle:#727d76;--color-status-halo:#ffffff06;--color-warning:#f7b880;--color-warning-text:#f1cd9f;--color-warning-surface:#30281e;--color-warning-border:#695137;--color-danger-text:#ffd3bd;--color-danger-surface:#32231f;--color-danger-border:#765046;--color-danger-action:#422d26;--color-success-surface:#20291e;--color-success-border:#72845b;--color-ride-glow:#29322290;--color-profile-steady:#819f543d;--color-profile-steady-border:#a1c96a55;--color-profile-easy:#79957440;--color-profile-easy-border:#8aa57b50;--color-profile-hard:#ba936050;--color-profile-hard-border:#edb27670;--color-profile-current:#bce77d85;--color-profile-marker:#e1ebd6;--color-shimmer:#f0f2ec18;--text-tiny:8px;--text-micro:9px;--text-label:10px;--text-caption:11px;--text-small:12px;--text-body:14px;--text-brand:18px;--text-heading:26px;--text-metric:28px;--text-power:104px;--text-target:62px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-9:36px;--space-10:40px;--space-12:48px;--radius-small:4px;--radius-control:6px;--radius-panel:10px;--radius-pill:999px;--control-height:44px;--focus-width:2px;--focus-offset:4px;--opacity-disabled:.36;--opacity-completed:.4;--motion-fast:.14s;--motion-standard:.22s;--motion-live:3s;--motion-interval:5s;--ease-standard:cubic-bezier(.2, .7, .3, 1);--color-power-below:#81b9dc;--color-power-pocket:#d3f477;--color-power-above:#f7b880;--color-guidance-background:#101713}button,input,select{font:inherit}.icon-button{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-control);background:0 0;width:36px;height:36px;font-size:24px}.connection-dot{background:var(--color-status-idle);width:8px;height:8px;box-shadow:0 0 0 5px var(--color-status-halo);border-radius:50%;flex-shrink:0}.connection-dot.connected{background:var(--color-accent);box-shadow:0 0 0 5px var(--color-accent-halo)}.button{border-radius:var(--radius-control);padding:var(--space-3) var(--space-5);font-size:var(--text-small);font-weight:var(--weight-semibold);min-height:var(--control-height);white-space:nowrap;transition:background var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard);border:1px solid #0000}.button:hover:not(:disabled){filter:brightness(1.12)}.button.primary{background:var(--color-accent);color:var(--color-text-on-accent)}.button.primary span{margin-left:var(--space-4)}.button.subtle{background:var(--color-surface-raised);border-color:var(--color-border);color:var(--color-text)}.text-button{color:var(--color-text-secondary);font-size:var(--text-small);padding:var(--space-3) 0;text-underline-offset:4px;background:0 0;border:0;text-decoration:underline}.demo-badge{font:var(--text-micro) var(--font-mono);color:var(--color-warning);letter-spacing:.5px}.notice{background:var(--color-warning-surface);border:1px solid var(--color-warning-border);border-radius:var(--radius-control);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);color:var(--color-warning-text);font-size:13px;line-height:1.6}.error-notice{background:var(--color-danger-surface);border-color:var(--color-danger-border);color:var(--color-danger-text)}.state-pill{font:var(--text-micro) var(--font-mono);letter-spacing:1px;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);color:var(--color-text-secondary)}.state-pill.live{color:var(--color-accent);border-color:var(--color-border-strong);animation:live-pulse var(--motion-live) ease-in-out infinite}.main-metrics{padding-bottom:var(--space-7);grid-template-columns:1.4fr 1fr;align-items:center;display:grid}.metric-label{color:var(--color-text-muted);font-size:var(--text-micro);font-family:var(--font-mono);letter-spacing:1.2px;margin-bottom:var(--space-2);display:block}.power-metric strong{font-size:var(--text-power);font-weight:var(--weight-medium);letter-spacing:-6px;line-height:1.1}.unit{color:var(--color-text-secondary);margin-left:var(--space-3);font-size:24px;font-weight:var(--weight-regular);letter-spacing:0}.metric-caption{color:var(--color-text-muted);font-size:var(--text-caption)}.target-metric{border-left:1px solid var(--color-border-strong);padding-left:var(--space-8)}.target-metric strong{font-size:var(--text-target);letter-spacing:-3px;line-height:1.25;font-weight:var(--weight-medium);color:var(--color-accent)}.target-controls{align-items:center;gap:var(--space-4);margin-top:var(--space-2);display:flex}.square-button{border:1px solid var(--color-border-strong);background:var(--color-surface-hover);width:34px;height:34px;color:var(--color-text-secondary);border-radius:var(--radius-small);flex-shrink:0;font-size:19px}.target-controls span{font:var(--text-label) var(--font-mono);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.secondary-metrics{padding:var(--space-6) 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);gap:var(--space-3);grid-template-columns:1fr 1.2fr 1fr;display:grid}.secondary-metrics strong{font-size:var(--text-metric);font-weight:var(--weight-medium);letter-spacing:-1.2px}.secondary-metrics small{font-size:var(--text-caption);color:var(--color-text-muted);margin-left:var(--space-2)}.secondary-metrics #next-step{margin:var(--space-2) 0 0;display:block}fieldset{border:0;margin:0;padding:0}.workout-option{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4);margin-bottom:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-control);cursor:pointer;transition:background var(--motion-standard) var(--ease-standard), border-color var(--motion-standard) var(--ease-standard);display:flex;position:relative}.workout-option:has(input:checked){border-color:var(--color-border-selected);background:var(--color-accent-subtle)}.workout-option:has(input:focus-visible){outline:var(--focus-width) solid var(--color-accent);outline-offset:2px}.workout-option:has(input:disabled){cursor:default}.workout-option input{opacity:0;width:1px;height:1px;position:absolute}.option-icon{font-size:var(--text-heading);text-align:center;width:25px;color:var(--color-text-secondary)}.workout-option strong{font-size:13px;font-weight:var(--weight-medium);display:block}.workout-option small{font-size:var(--text-label);color:var(--color-text-muted);margin-top:var(--space-2);display:block}.radio-mark{border:1px solid var(--color-border-strong);border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-left:auto}.workout-option:has(input:checked) .radio-mark{background:var(--color-accent);border:3px solid var(--color-border-strong);box-shadow:0 0 0 1px var(--color-accent)}select,.watts-input{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface-raised);color:var(--color-text);min-height:36px}select{padding:var(--space-2) var(--space-3);font-size:var(--text-small);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.watts-input{padding-right:var(--space-3);align-items:center;display:flex}.watts-input input{width:70px;min-width:0;color:inherit;padding:var(--space-2) var(--space-3);background:0 0;border:0;font-size:13px}.watts-input span{font-size:var(--text-caption);color:var(--color-text-muted)}.muted{color:var(--color-text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon-button,.square-button,.text-button{transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard)}.button:active:not(:disabled),.icon-button:active:not(:disabled),.square-button:active:not(:disabled),.text-button:active:not(:disabled){transform:translateY(1px)}@media (hover:hover){.icon-button:hover:not(:disabled),.square-button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-selected)}.text-button:hover:not(:disabled){color:var(--color-accent)}.workout-option:hover:not(:has(input:disabled)){background:var(--color-accent-subtle);border-color:var(--color-border-selected)}}@keyframes live-pulse{0%,to{box-shadow:0 0 0 0 var(--color-accent-halo)}50%{box-shadow:0 0 0 4px var(--color-accent-halo)}}.stop-button{background:var(--color-danger-action);border-color:var(--color-danger-border);color:var(--color-danger-text)}:root{font-family:var(--font-body);color:var(--color-text);background:var(--color-background);font-synthesis:none;font-variant-numeric:tabular-nums}*{box-sizing:border-box}body{min-width:360px;margin:0}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:var(--focus-width) solid var(--color-accent);outline-offset:var(--focus-offset)}[hidden]{display:none!important}h1,h2,p{margin:0}h2{font-size:var(--text-heading);font-weight:var(--weight-medium);letter-spacing:-.8px}.shell{width:min(1280px,100% - 80px);margin:auto}.masthead{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;height:72px;display:flex}.brand{font-size:var(--text-brand);letter-spacing:-.6px;align-items:center;font-weight:800;display:flex}.brand-light{font-weight:var(--weight-regular);color:var(--color-text-secondary)}.brand-mark{background:var(--color-accent);color:var(--color-text-on-accent);width:32px;height:32px;margin-right:var(--space-3);border-radius:50%;place-items:center;font-size:30px;display:grid}.header-right{align-items:center;gap:var(--space-8);display:flex}.local-label,.eyebrow,.section-number,.profile-heading,.profile-axis,footer,.settings-row label{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:1.3px}.local-label{color:var(--color-text-muted)}.intro{padding:var(--space-6) 0;justify-content:space-between;align-items:center;display:flex;overflow:hidden}.eyebrow{color:var(--color-text-muted);align-items:center;gap:var(--space-3);display:flex}.tiny-line{background:var(--color-accent);width:22px;height:2px}h1{letter-spacing:-2px;font-size:clamp(36px,4vw,48px);font-weight:var(--weight-medium);margin:var(--space-3) 0;line-height:1.05}h1 span{color:var(--color-accent)}.intro-copy{font-size:var(--text-body);color:var(--color-text-muted)}.intro-side{align-items:center;gap:var(--space-12);display:flex}.intro-side p{font-size:var(--text-small);color:var(--color-text-muted);line-height:1.8}.large-outline{color:#0000;-webkit-text-stroke:1px var(--color-border-strong);font-size:112px;line-height:1;transform:rotate(-7deg)}.connection-bar{border:1px solid var(--color-border);border-radius:var(--radius-panel);justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);background:var(--color-surface-inset);display:flex}.connection-info{align-items:center;gap:var(--space-4);min-width:0;display:flex}.connection-info strong{font-size:var(--text-body);font-weight:var(--weight-medium);display:block}.connection-info span:not(.connection-dot){color:var(--color-text-muted);font-size:var(--text-caption);margin-top:var(--space-1);display:block}.connection-actions{align-items:center;gap:var(--space-5);display:flex}.ride-grid{gap:var(--space-5);grid-template-columns:minmax(0,1.85fr) minmax(310px,1fr);display:grid}.ride-panel,.setup-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-7) var(--space-7)}.ride-panel{background:radial-gradient(ellipse at 10% 0%, var(--color-ride-glow), transparent 65%), var(--color-surface);position:relative;overflow:hidden}.panel-top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.ride-heading{margin:var(--space-5) 0 var(--space-6);justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.ride-heading h2{font-size:27px}.ride-heading>span{font-size:var(--text-label);color:var(--color-text-muted)}.profile-heading{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-6) 0 var(--space-3);color:var(--color-text-muted);font-size:var(--text-tiny);letter-spacing:.6px;display:flex}.profile-heading .metric-label{margin:0}.workout-profile{border-bottom:1px solid var(--color-border-strong);align-items:flex-end;gap:3px;height:75px;display:flex;position:relative}.profile-block{background:var(--color-profile-steady);border:1px solid var(--color-profile-steady-border);border-radius:3px 3px 0 0;min-width:1px;position:relative}.profile-block.easy{background:var(--color-profile-easy);border-color:var(--color-profile-easy-border)}.profile-block.hard{background:var(--color-profile-hard);border-color:var(--color-profile-hard-border)}.profile-block.current{background:var(--color-profile-current);border-color:var(--color-accent)}.profile-block.done{opacity:var(--opacity-completed)}.profile-marker{background:var(--color-profile-marker);z-index:1;pointer-events:none;width:1px;position:absolute;top:0;bottom:-4px;left:0}.profile-marker:before{content:"";border:4px solid #0000;border-top-color:var(--color-profile-marker);position:absolute;top:-6px;left:-3px}.profile-axis{font-size:var(--text-tiny);color:var(--color-text-muted);margin-top:var(--space-2);letter-spacing:.6px;justify-content:space-between;display:flex}.ride-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-6);display:flex}.start-button{justify-content:space-between;min-width:160px;display:flex}.ride-actions>span{font-size:var(--text-caption);color:var(--color-text-muted);max-width:165px;margin-left:auto;line-height:1.5}.setup-panel h2{margin:var(--space-5) 0 var(--space-6)}.section-number{color:var(--color-text-muted);font-size:var(--text-micro);letter-spacing:.5px}.settings-row{border-bottom:1px solid var(--color-border);padding:var(--space-4) 0;justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.settings-row label{font-size:var(--text-micro);letter-spacing:1px;color:var(--color-text-muted)}.setup-note{font-size:var(--text-caption);color:var(--color-text-muted);margin-top:var(--space-4);max-width:275px;line-height:1.7}.setup-footer{border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:var(--space-6);gap:var(--space-3);color:var(--color-text-secondary);display:flex}.setup-footer p{font-size:var(--text-caption);line-height:1.7}.ride-bottom{border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-6) var(--space-7);margin-top:var(--space-5);gap:var(--space-6);grid-template-columns:1fr 1fr 1fr 1.6fr;display:grid}.ride-bottom strong{font-size:25px;font-weight:var(--weight-medium);letter-spacing:-.6px}.ride-bottom small{font-size:var(--text-caption);color:var(--color-text-muted);letter-spacing:0}.ride-tip{border-left:1px solid var(--color-border);padding-left:var(--space-6)}.ride-tip p{color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.8}.summary{border:1px solid var(--color-success-border);background:var(--color-success-surface);border-radius:var(--radius-panel);margin-top:var(--space-5);padding:var(--space-7);justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.summary h2{margin:var(--space-3) 0;font-size:24px}.summary p:not(.eyebrow){color:var(--color-text-secondary);font-size:var(--text-small);line-height:1.7}.summary-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.help{margin-top:var(--space-6);font-size:var(--text-small);color:var(--color-text-muted);line-height:1.8}.help summary{cursor:pointer;color:var(--color-text-secondary)}.help ol{padding-left:var(--space-5);max-width:780px}.help p{max-width:780px}footer{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-8) 0;margin-top:var(--space-9);border-top:1px solid var(--color-border);font-size:var(--text-micro);letter-spacing:.5px;display:flex}footer a{color:var(--color-text-secondary);text-underline-offset:4px;text-decoration:underline}body.riding .intro{display:none}body.riding .connection-bar{margin-top:var(--space-6)}@media (width>=1440px){.shell{max-width:1280px}.intro{padding-top:var(--space-7);padding-bottom:var(--space-7)}.ride-panel,.setup-panel{padding:var(--space-8) var(--space-8)}.main-metrics{padding-top:var(--space-3)}.workout-option{padding:var(--space-5) var(--space-4)}}@media (width<=1050px){.shell{width:calc(100% - 40px)}.intro-side{gap:var(--space-5)}.large-outline{font-size:100px}.ride-grid{gap:var(--space-4);grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr)}.ride-panel,.setup-panel{padding:var(--space-6) var(--space-5)}.ride-heading>span{display:none}.ride-actions{flex-wrap:wrap}.ride-actions>span{max-width:none;margin-left:0}.secondary-metrics strong{font-size:24px}.secondary-metrics small{margin:var(--space-1) 0 0;display:block}.target-metric{padding-left:var(--space-6)}.power-metric strong{font-size:85px}.target-metric strong{font-size:54px}body.riding .power-metric strong{font-size:100px}.demo-badge{max-width:120px;line-height:1.6}}@media (width<=760px){.shell{width:calc(100% - 28px)}.masthead{height:72px}.brand{font-size:16px}.local-label{display:none}.intro{padding:var(--space-5) var(--space-1)}.intro-side{display:none}h1{font-size:38px}.connection-bar{padding:var(--space-5);align-items:stretch;gap:var(--space-4);flex-direction:column}.connection-actions{justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.connection-actions .button{flex:1}.ride-grid{grid-template-columns:1fr}.ride-panel,.setup-panel{padding:var(--space-6)}.ride-heading{margin-bottom:var(--space-5)}.ride-heading h2{font-size:var(--text-heading)}.power-metric strong{font-size:90px}.target-metric strong{font-size:60px}.secondary-metrics strong{font-size:var(--text-heading)}.main-metrics{grid-template-columns:1.25fr 1fr}.ride-actions .button{flex:1}.ride-actions>span{text-align:center;width:100%;margin:3px 0 0}.ride-bottom{gap:var(--space-5);padding:var(--space-6);grid-template-columns:repeat(3,1fr)}.ride-tip{padding:var(--space-4) 0 0;border:0;border-top:1px solid var(--color-border);grid-column:1/-1}.summary{flex-direction:column;align-items:stretch}.summary-actions .button{flex:1}footer>span:last-child{display:none}footer{font-size:var(--text-tiny);gap:var(--space-3)}body.riding .setup-panel{display:none}.demo-badge{max-width:none}.metric-label{font-size:var(--text-tiny)}.profile-heading{font-size:7px}.profile-heading .metric-label{font-size:var(--text-tiny)}.setup-note{max-width:none}}.profile-block{overflow:hidden}.ride-panel:has(.state-pill.live) .profile-block.current:after{content:"";background:linear-gradient(110deg, transparent, var(--color-shimmer), transparent);pointer-events:none;animation:interval-shimmer var(--motion-interval) var(--ease-standard) infinite;position:absolute;inset:0}@keyframes interval-shimmer{0%,35%{transform:translate(-100%)}75%,to{transform:translate(100%)}}@media (width<=760px){.target-controls{gap:var(--space-2)}.target-metric{padding-left:var(--space-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.ride-feedback{--feedback-color:var(--color-text-muted);padding:var(--space-5);margin-bottom:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-guidance-background);transition:border-color var(--motion-standard), background var(--motion-standard)}.ride-feedback[data-band=below]{--feedback-color:var(--color-power-below)}.ride-feedback[data-band=pocket]{--feedback-color:var(--color-power-pocket);border-color:var(--color-border-selected)}.ride-feedback[data-band=above]{--feedback-color:var(--color-power-above)}.feedback-top,.feedback-bottom,.gauge-labels{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.feedback-top strong{color:var(--feedback-color);font-size:20px;font-weight:var(--weight-medium)}.speed-readout{text-align:right}.speed-readout strong{color:var(--color-text);font-size:30px}.speed-readout small{color:var(--color-text-muted);font-size:var(--text-caption)}.power-gauge{height:8px;margin-top:var(--space-5);border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-power-below), var(--color-power-pocket) 45%, var(--color-power-pocket) 55%, var(--color-power-above));opacity:.8;position:relative}.pocket-window{border:1px solid var(--color-text);border-radius:var(--radius-small);width:10%;position:absolute;inset:-5px auto -5px 45%}.power-needle{width:3px;height:24px;top:-8px;left:var(--power-position,50%);background:var(--color-text);border-radius:var(--radius-small);transition:left var(--motion-standard) var(--ease-standard);position:absolute}.ride-feedback[data-band=waiting] .power-needle{visibility:hidden}.gauge-labels{margin-top:var(--space-3);color:var(--color-text-muted);font:var(--text-tiny) var(--font-mono);letter-spacing:1px}.feedback-bottom{margin-top:var(--space-4)}.feedback-bottom p{color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.6}.ride-road{border-bottom:1px solid var(--color-border);width:95px;min-width:70px;height:29px;position:relative;overflow:hidden}.rider{z-index:1;color:var(--feedback-color);transition:color var(--motion-standard);font-size:23px;position:absolute;top:0;left:35%}.road-dashes{background:repeating-linear-gradient(90deg, var(--color-border-strong) 0 12px, transparent 12px 24px);height:2px;position:absolute;bottom:1px;left:-20px;right:-20px}.moving .road-dashes{animation:road-flow var(--road-duration,2s) linear infinite}.in-pocket .rider{animation:1.8s ease-in-out infinite rider-bob}@keyframes road-flow{to{transform:translate(-24px)}}@keyframes rider-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.recovery-card{justify-content:space-between;align-items:center;gap:var(--space-6);border:1px solid var(--color-success-border);border-radius:var(--radius-panel);padding:var(--space-6);margin-bottom:var(--space-5);background:var(--color-success-surface);display:flex}.recovery-card h2{margin:var(--space-2) 0}.recovery-card p:not(.eyebrow){font-size:var(--text-small);color:var(--color-text-secondary)}.history-panel{padding:var(--space-6) 0;margin-top:var(--space-5);border-top:1px solid var(--color-border)}.history-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.history-heading h2{margin-top:var(--space-2)}.history-note{color:var(--color-text-muted);font-size:var(--text-caption);max-width:650px;line-height:1.7}.ride-history{gap:var(--space-2);margin-top:var(--space-5);display:grid}.history-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-inset);grid-template-columns:minmax(150px,1.5fr) 1fr 1fr auto;display:grid}.history-row strong{font-size:var(--text-small);font-weight:var(--weight-medium)}.history-row small{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-caption);display:block}.history-row .history-metric{color:var(--color-text-secondary);font-size:var(--text-small)}.settings-row label small{margin-top:var(--space-1);font-size:var(--text-tiny);color:var(--color-text-muted);display:block}#workout-options{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;max-height:420px;padding:2px;overflow-y:auto}body.riding .main-metrics{padding:var(--space-4) 0 var(--space-6)}body.riding .power-metric strong{font-size:108px}body.riding .ride-heading{margin-top:var(--space-3);margin-bottom:0}@media (width>=900px){body.riding .masthead{height:52px}body.riding .connection-bar{margin-top:var(--space-3);margin-bottom:var(--space-3);padding-block:var(--space-3)}body.riding .setup-panel{display:none}body.riding .ride-grid{grid-template-columns:minmax(0,1fr)}body.riding .ride-panel{column-gap:var(--space-7);padding:var(--space-5) var(--space-7);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);display:grid}body.riding .panel-top,body.riding .ride-heading,body.riding .profile-heading,body.riding .workout-profile,body.riding .profile-axis,body.riding .ride-actions{grid-column:1/-1}body.riding .main-metrics{padding-block:var(--space-3);grid-area:3/1}body.riding .ride-feedback{width:100%;padding:var(--space-6);grid-area:3/2/5;align-self:center;margin:0}body.riding .secondary-metrics{padding-block:var(--space-3);grid-area:4/1}body.riding .profile-heading{margin-top:var(--space-4)}body.riding .workout-profile{height:48px}body.riding .ride-actions{margin-top:var(--space-4)}body.riding .square-button{width:48px;height:48px}}@media (width<=760px){.recovery-card{flex-direction:column;align-items:stretch}.history-row{grid-template-columns:1fr 1fr}.history-row .button{grid-area:2/2}.feedback-top strong{font-size:17px}.speed-readout strong{font-size:25px}.ride-feedback{padding:var(--space-4)}}@media (prefers-reduced-motion:reduce){.ride-feedback *,.power-needle{transition:none!important;animation:none!important}}.training-tools{gap:var(--space-4);margin-block:var(--space-6);display:grid}.spice-setting{--spice-color:var(--color-spice-mild);margin-block:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-inset);transition:border-color var(--motion-standard)}.spice-setting[data-active=true]{border-color:var(--spice-color);background:var(--color-success-surface)}.spice-setting[data-level=spicy]{--spice-color:var(--color-spice-spicy)}.spice-setting[data-level=hot]{--spice-color:var(--color-spice-hot)}.spice-controls{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.spice-controls label{width:100%;color:var(--color-text-muted);font-size:var(--text-small)}.spice-controls select{min-width:100px;min-height:var(--control-height);border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-surface-raised);color:var(--spice-color);padding-inline:var(--space-3);font:inherit;flex:1}.spice-heading,.spice-heading label{align-items:center;gap:var(--space-2);display:flex}.spice-heading{justify-content:space-between}.spice-heading label{min-height:var(--control-height);cursor:pointer;font-weight:var(--weight-semibold)}.spice-heading input{width:20px;height:20px;accent-color:var(--color-accent)}#spice-index{color:var(--spice-color);font:var(--text-caption) var(--font-mono);white-space:nowrap}#target-detail{margin-top:var(--space-2);color:var(--color-text-secondary)}#intensity-help{margin-top:var(--space-2);max-width:26ch;font-size:var(--text-caption);line-height:1.5}#spice-help{margin-block:var(--space-2) var(--space-3);color:var(--color-text-muted);font-size:var(--text-small);line-height:1.6}@media (prefers-reduced-motion:reduce){.spice-setting{transition:none}}.auto-pause-notice{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3);border:1px solid var(--color-warning-border);border-radius:var(--radius-control);color:var(--color-warning-text);background:var(--color-warning-surface);display:flex}.auto-pause-notice p{margin-top:var(--space-1);font-size:var(--text-small);line-height:1.5}#auto-pause-countdown{font:var(--weight-semibold) var(--text-metric) var(--font-mono)}.tool-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-5)}.tool-panel>summary{cursor:pointer;padding-block:var(--space-2);font-size:1.05rem;font-weight:600}.tool-content{margin-top:var(--space-5)}.tool-panel p,.mode-help{color:var(--color-text-muted);font-size:.85rem;line-height:1.6}.mode-controls{gap:var(--space-3);margin-block:var(--space-4);display:grid}.mode-controls label{gap:var(--space-2);color:var(--color-text-muted);font-size:.8rem;display:grid}.mode-controls select,.analysis-controls input,.analysis-controls select{background:var(--color-background);border:1px solid var(--color-border);width:100%;min-height:44px;color:var(--color-text);border-radius:var(--radius-small);padding:var(--space-3)}#terrain-setup{gap:var(--space-3);display:grid}#terrain-setup[hidden],#terrain-progress[hidden]{display:none}.terrain-progress{margin-block:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control)}.route-heading,.coaching-strip,.tool-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.route-heading{justify-content:space-between;font-size:.8rem}#route-profile{height:58px;margin-top:var(--space-3);align-items:end;gap:3px;display:flex;position:relative;overflow:hidden}#route-profile>span{background:var(--color-surface-raised);border-top:2px solid var(--color-accent);border-radius:4px 4px 0 0;flex:1}.route-marker{border-left:2px solid var(--color-text);height:100%;transition:left var(--motion-standard);position:absolute;top:0}#ghost-status{color:var(--color-accent);margin-bottom:0;font-size:.8rem}.coaching-strip{margin-top:var(--space-4);font-size:.8rem}.coaching-strip label{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.coaching-strip input{accent-color:var(--color-accent);width:18px;height:18px}#cadence-cue{color:var(--color-text-muted)}#heart-rate{color:var(--color-text);font-family:var(--font-mono)}#wake-status{color:var(--color-text-muted);margin-top:var(--space-3);font-size:.75rem;display:block}#wake-status[data-active=true]{color:var(--color-accent)}.analysis-controls{gap:var(--space-4);margin-block:var(--space-4);display:flex}.analysis-controls label{gap:var(--space-2);color:var(--color-text-muted);flex:1;font-size:.8rem;display:grid}#analysis-chart svg{background:var(--color-background);border-radius:var(--radius-control);width:100%;min-height:140px}.analysis-metrics{gap:var(--space-4);margin-block:var(--space-5);grid-template-columns:repeat(5,1fr);display:grid}.analysis-metrics small,.analysis-metrics strong{display:block}.analysis-metrics small{color:var(--color-text-muted);margin-bottom:var(--space-2);font-size:.72rem}.analysis-metrics strong{font-family:var(--font-mono);font-size:1.2rem}.zone-row{gap:var(--space-3);margin-block:var(--space-2);grid-template-columns:28px 1fr 70px;align-items:center;font-size:.75rem;display:grid}.zone-track{background:var(--color-background);border-radius:5px;height:10px;overflow:hidden}.zone-track i{background:var(--color-power-below);height:100%;display:block}.zone-track i[data-zone="3"],.zone-track i[data-zone="4"]{background:var(--color-accent)}.zone-track i[data-zone="5"],.zone-track i[data-zone="6"],.zone-track i[data-zone="7"]{background:var(--color-warning)}.history-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:end;display:flex}.history-actions .button{padding-inline:var(--space-3);font-size:.75rem}.history-row{grid-template-columns:minmax(160px,1fr) auto auto minmax(220px,auto)}.sensor-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.sensor-card{border:1px solid var(--color-border);border-radius:var(--radius-control);padding:var(--space-4)}.sensor-card select{width:100%;min-height:44px;color:var(--color-text);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-small)}.sensor-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=760px){.analysis-metrics{grid-template-columns:repeat(2,1fr)}.analysis-controls{flex-direction:column}.history-row{grid-template-columns:1fr auto}.history-actions{grid-column:1/-1;justify-content:start}.sensor-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.route-marker{transition:none}}.no-power-target .power-gauge,.no-power-target .gauge-labels{display:none}.sensor-row{gap:var(--space-3);padding-block:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;display:flex}.sensor-row strong{min-width:80px}.sensor-row select{min-height:var(--control-height);background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius-control);padding-inline:var(--space-2)}.sensor-row button{min-height:var(--control-height);padding-inline:var(--space-3);border-radius:var(--radius-control);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text);cursor:pointer}.sensor-status{color:var(--color-text-muted);font-size:var(--text-small)}@media (width>=900px){body.riding .terrain-progress,body.riding .coaching-strip,body.riding #wake-status{grid-column:1/-1}body.riding .terrain-progress{margin-block:var(--space-3)}body.riding #route-profile{height:32px}}.live-chart-panel{min-width:0;margin:var(--space-6) 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-inset)}.live-chart-heading,.live-chart-scales,.live-chart-time,.live-chart-keys{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.live-chart-heading,.live-chart-scales,.live-chart-time{color:var(--color-text-muted);font:var(--text-caption) var(--font-mono)}.live-chart-heading{margin-bottom:var(--space-4)}.live-chart-keys{justify-content:flex-start;gap:var(--space-2) var(--space-5);margin-bottom:var(--space-4);font-size:var(--text-small);flex-wrap:wrap}.live-chart-keys span:before{content:"";width:16px;margin-right:var(--space-2);vertical-align:middle;border-top:2px solid;display:inline-block}.live-chart-power{color:var(--color-chart-power)}.live-chart-heart{color:var(--color-chart-heart-rate)}#live-chart-target-key{color:var(--color-text-muted)}#live-chart-target-key:before{border-top-style:dashed}.live-chart-keys strong{margin-left:var(--space-1);font-family:var(--font-mono)}.live-chart-panel svg{width:100%;height:140px;margin:var(--space-2) 0;display:block;overflow:visible}.live-chart-panel path{fill:none;vector-effect:non-scaling-stroke}.live-chart-grid{stroke:var(--color-border);stroke-width:1px}.live-chart-line{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}#live-chart-power{stroke:var(--color-chart-power)}#live-chart-heartRate{stroke:var(--color-chart-heart-rate)}#live-chart-target{stroke:var(--color-text-muted);stroke-dasharray:5 5;stroke-width:1px}.live-chart-panel figcaption{margin-top:var(--space-3);color:var(--color-text-muted);font-size:var(--text-caption);line-height:1.6}#live-chart-heart-help{display:block}@media (width>=900px){body.riding .live-chart-panel{margin:var(--space-3) 0;padding:var(--space-3);grid-area:5/2/8}body.riding .live-chart-panel svg{height:100px}body.riding .live-chart-heading,body.riding .live-chart-keys{margin-bottom:var(--space-2)}body.riding .profile-heading{grid-area:5/1;align-self:end}body.riding .workout-profile{grid-area:6/1;align-self:center}body.riding .profile-axis{grid-area:7/1;align-self:start}}.up-next{justify-content:space-between;align-items:center;gap:var(--space-4);margin-block:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface-inset);transition:background var(--motion-standard), border-color var(--motion-standard);display:flex}.up-next[data-soon=true]{border-color:var(--color-accent);background:var(--color-success-surface)}#up-next-name{margin-top:var(--space-2);font-size:var(--text-brand);display:block}#up-next-detail{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-small);line-height:1.5}#up-next-countdown{color:var(--color-text-secondary);font:var(--weight-semibold) var(--text-body) var(--font-mono);text-align:right;white-space:nowrap}.up-next[data-soon=true] #up-next-countdown{color:var(--color-accent)}@media (width>=900px){body.riding .up-next{margin-block:var(--space-3);grid-area:5/1/auto/-1}body.riding .live-chart-panel{grid-row:6/9}body.riding .profile-heading{grid-row:6}body.riding .workout-profile{grid-row:7}body.riding .profile-axis{grid-row:8}}@media (width<=480px){.up-next{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.up-next{transition:none}}
