:root{--ground: #eceae2;--surface: #ffffff;--ink: #1f1e1e;--ink-soft: rgba(31,30,30,.72);--ink-label: rgba(31,30,30,.63);--hairline: rgba(31,30,30,.1);--fill-quiet: rgba(31,30,30,.06);--glass: rgba(250,250,248,.82);--accent: #e6c25e;--accent-ink: #1f1e1e;--on-accent: #1f1e1e;--silver: radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,.95) 0%, rgba(206,196,240,.38) 16%, rgba(176,206,238,.34) 30%, rgba(192,230,222,.24) 44%, rgba(255,255,255,0) 62%), linear-gradient(225deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.85) 40%, rgba(255,255,255,0) 48%), linear-gradient(160deg, #f6f9fb 0%, #dde4ea 22%, #fbfcfd 40%, #ccd5dc 58%, #eef2f5 78%, #d3dae1 100%);--sunrise: #f2a65a;--dusk: #d07a8f;--dusk-ink: #9e3f57;--light-night: #0f1322;--light-day: #dfe6ee;--light-dawn: #f1d9b0;--weather-cold: #3b5bdb;--weather-hot: #d9533c;--rain: rgba(31,30,30,.22);--font-sans: "Instrument Sans", system-ui, -apple-system, sans-serif;--type-hero: 500 96px/.86 var(--font-sans);--track-hero: -.04em;--type-week: 500 72px/.9 var(--font-sans);--track-week: -.035em;--type-stat: 500 24px/28px var(--font-sans);--track-stat: -.02em;--type-lede: 400 16px/22px var(--font-sans);--track-lede: 0;--type-body: 400 14px/20px var(--font-sans);--track-body: 0;--type-label: 500 11px/14px var(--font-sans);--track-label: .02em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 34px;--radius-band: 6px;--radius-stat: 0px;--radius-card: 0px;--radius-pill: 30px;--radius-chip: 4px;--header: 50px;--tabbar: 60px;--tabbar-gap: 18px;--target: 44px;--band: 12px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ground: #121110;--surface: rgba(255,255,255,.025);--ink: #f4f4f2;--ink-soft: rgba(244,244,242,.78);--ink-label: rgba(244,244,242,.56);--hairline: rgba(255,255,255,.11);--fill-quiet: rgba(255,255,255,.08);--glass: rgba(14,15,18,.86);--accent: #f0d683;--accent-ink: #f0d683;--silver: radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,.22) 0%, rgba(160,150,220,.18) 16%, rgba(130,170,215,.16) 30%, rgba(140,200,190,.1) 44%, rgba(255,255,255,0) 62%), linear-gradient(225deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.16) 40%, rgba(255,255,255,0) 48%), linear-gradient(160deg, #3a4148 0%, #22282d 30%, #444c54 52%, #262c31 74%, #353c43 100%);--dusk-ink: #d07a8f;--light-day: #eef2f6;--light-dawn: #f6e6c8;--rain: rgba(255,255,255,.18);color-scheme:dark}}:root[data-theme=dark]{--ground: #121110;--surface: rgba(255,255,255,.025);--ink: #f4f4f2;--ink-soft: rgba(244,244,242,.78);--ink-label: rgba(244,244,242,.56);--hairline: rgba(255,255,255,.11);--fill-quiet: rgba(255,255,255,.08);--glass: rgba(14,15,18,.86);--accent: #f0d683;--accent-ink: #f0d683;--silver: radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,.22) 0%, rgba(160,150,220,.18) 16%, rgba(130,170,215,.16) 30%, rgba(140,200,190,.1) 44%, rgba(255,255,255,0) 62%), linear-gradient(225deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.16) 40%, rgba(255,255,255,0) 48%), linear-gradient(160deg, #3a4148 0%, #22282d 30%, #444c54 52%, #262c31 74%, #353c43 100%);--dusk-ink: #d07a8f;--light-day: #eef2f6;--light-dawn: #f6e6c8;--rain: rgba(255,255,255,.18);color-scheme:dark}:root{--paper: var(--ground);--muted: var(--ink-label);--rule: var(--ink);--forest: var(--accent);--forest-ink: var(--on-accent);--indigo: var(--surface);--indigo-ink: var(--ink);--olive: var(--accent);--moss: #0f1322;--sage: var(--accent);--sage-ink: var(--on-accent);--lime: var(--ground);--scrim: rgba(0,0,0,.6);--photo-fade: rgba(5,6,7,.6);--race-giro: #e8588a;--race-tour: #f2c200;--race-vuelta: #d2232a;--race-other: #c9873b;--font-serif: var(--font-sans);--type-wordmark: 500 18px/1 var(--font-sans);--track-wordmark: -.01em;--type-menu-item: 400 15px/1.4 var(--font-sans);--track-menu-item: 0;--type-headline: 400 16px/22px var(--font-sans);--track-headline: 0;--type-section: 500 16px/1.3 var(--font-sans);--track-section: 0;--type-title: 500 30px/1.1 var(--font-sans);--track-title: -.03em;--type-figure: 500 24px/28px var(--font-sans);--track-figure: -.02em;--type-bar: 400 15px/1.4 var(--font-sans);--track-bar: 0;--type-strong: 500 14px/20px var(--font-sans);--track-strong: 0;--type-link: 400 14px/1.6 var(--font-sans);--track-link: 0;--type-caption: 400 13px/1.4 var(--font-sans);--track-caption: 0;--type-tick: 400 9.5px/1 var(--font-sans);--track-tick: 0;--space-8: var(--space-2);--space-10: 10px;--space-12: var(--space-3);--space-16: var(--space-4);--space-20: var(--space-5);--space-22: 22px;--radius-0: 0px;--radius-check: 2px;--bar: 96px;--photo-today: 184px;--photo-route: 150px;--photo-pair: 120px;--drawer: 360px;--arrow-s: 22px;--arrow-m: 30px;--arrow-l: 34px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font:var(--type-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto;position:relative}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.header{position:fixed;top:0;left:50%;z-index:5;width:100%;max-width:560px;transform:translate(-50%);height:calc(var(--header) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-16) 0;display:flex;align-items:center;justify-content:flex-start;color:var(--ink)}.header:before{content:"";position:absolute;inset:0;background:var(--paper);z-index:-1;opacity:1;transition:opacity var(--base) var(--settle)}body[data-hero]:not([data-past]) .header{color:#fff}body[data-hero]:not([data-past]) .header:before{opacity:0}.header .icon-btn{width:var(--target);height:var(--target);margin:0 -3px 0 -10px;display:flex;align-items:center;justify-content:center;color:inherit}.wordmark{font:var(--type-wordmark);letter-spacing:var(--track-wordmark);color:inherit;padding-top:2px}body:not([data-hero]) #app{padding-top:calc(var(--header) + env(safe-area-inset-top,0px))}.hero{position:relative;overflow:hidden;background:var(--moss);color:#fff;display:flex;flex-direction:column;justify-content:flex-end}.hero-tall{height:min(84svh,760px)}.hero-mid{height:min(58svh,520px)}.hero img,.hero-blank{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero:before{content:"";position:absolute;inset:0 0 auto;height:140px;background:linear-gradient(180deg,rgba(0,0,0,.38),transparent);z-index:1}.hero:after{content:"";position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.5))}.hero-cap{position:relative;z-index:2;padding:0 var(--space-16) 20px;display:flex;flex-direction:column;gap:6px}.hero-title{margin:0;font:var(--type-title);letter-spacing:var(--track-title)}.hero-line{font:var(--type-body)}.hero-link{display:flex;align-items:center;gap:16px;min-height:40px;font:var(--type-body)}.hero-end{position:absolute;top:-12px;left:0;width:1px;height:1px}.hero+.lede{padding-top:var(--space-16)}.screen{flex:1 1 auto;display:flex;flex-direction:column;padding-bottom:calc(var(--bar) + 8px)}.screen.no-bar{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.title-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-12);padding:var(--space-16) var(--space-16) var(--space-12)}.title{margin:0;font:var(--type-title);letter-spacing:var(--track-title);white-space:nowrap}.title-row .caption{text-align:right}.caption{font:var(--type-caption);color:var(--muted)}.lede{margin:0;padding:0 var(--space-16) var(--space-12);font:var(--type-headline);letter-spacing:var(--track-headline);border-bottom:1px solid var(--hairline)}.section{display:flex;justify-content:space-between;align-items:baseline;margin:18px var(--space-16) 0;padding-bottom:6px;border-bottom:1px solid var(--rule)}.section h2{margin:0;font:var(--type-section)}.photo{position:relative;overflow:hidden;background:var(--hairline)}.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,var(--photo-fade) 100%)}.photo .cap{position:absolute;left:var(--space-16);right:var(--space-16);bottom:10px;z-index:1;color:#fff;display:flex;flex-direction:column}.photo .cap .name{font:var(--type-strong);font-size:13px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:2px}.photo-pair .photo:after{display:none}.photo.empty{display:flex;align-items:flex-end;background:var(--moss)}.list{display:flex;flex-direction:column}.row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-12);min-height:var(--target);padding:var(--space-10) var(--space-16);border-bottom:1px solid var(--hairline)}.row .label{color:var(--muted);flex:none}.row .value{text-align:right}.row .value .muted,.muted{color:var(--muted)}.row .with-arrow{display:flex;align-items:center;gap:var(--space-12)}.figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--space-12);padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--hairline)}.figures>div{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.figure{font:var(--type-figure);font-variant-numeric:tabular-nums}.links{display:flex;justify-content:flex-end;gap:22px;padding:4px var(--space-16) 0}.links a,.links button{color:var(--muted);font:var(--type-link);min-height:40px;display:flex;align-items:center}.bar{position:fixed;left:0;right:0;bottom:0;z-index:6;max-width:560px;margin:0 auto;height:calc(var(--bar) + env(safe-area-inset-bottom,0px) - 22px);min-height:var(--bar);padding:0 var(--space-20) max(var(--space-22),env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;align-items:center;background:var(--forest);color:var(--forest-ink);font:var(--type-bar)}.bar .done{opacity:.9}.week-row{display:grid;grid-template-columns:44px 1fr 28px;gap:8px;align-items:start;padding:11px var(--space-16) 11px 12px;border-bottom:1px solid var(--hairline)}.week-row .day{font:var(--type-caption);color:var(--muted);padding-top:2px}.week-row .day b{display:block;font-weight:400;color:var(--ink)}.week-row .what{display:flex;flex-direction:column;gap:2px}.week-row .what strong{font:var(--type-strong)}.week-row.kept{color:var(--muted)}.tick{width:22px;height:22px;border:1px solid var(--ink);border-radius:var(--radius-check);display:flex;align-items:center;justify-content:center;margin-top:1px}.tick[aria-checked=true]{background:var(--forest);border-color:var(--forest);color:#fff}.scrim{position:fixed;inset:0;z-index:9;background:var(--scrim)}.drawer{position:fixed;top:0;bottom:0;left:0;z-index:10;width:min(360px,calc(100vw - 30px));background:var(--indigo);color:var(--indigo-ink);display:flex;flex-direction:column;overflow:hidden}.drawer-top{height:calc(var(--header) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-16) 0;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.22);flex:none}.drawer-top .icon-btn{width:var(--target);height:var(--target);margin:0 -3px 0 -10px;display:flex;align-items:center;justify-content:center;color:inherit}.menu{display:flex;flex-direction:column;padding:11px 0}.menu-item{font:var(--type-menu-item);letter-spacing:var(--track-menu-item);min-height:43px;padding:0 var(--space-16);display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);color:inherit;text-align:left;width:100%}.menu-item[aria-current=page] span{border-bottom:1px solid currentColor;padding-bottom:1px}.menu-item:active{opacity:.68}.menu-quiet{border-top:1px solid rgba(255,255,255,.22);padding:16px var(--space-16) max(24px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:0;font:var(--type-body);color:#ffffffb8}.menu-quiet>a,.menu-quiet>span,.menu-quiet>button{min-height:46px;display:flex;align-items:center}.menu-quiet>button{font:inherit;border:0;width:100%;cursor:pointer}.menu-button{justify-content:center;background:#fff;color:var(--ink)!important;margin-bottom:10px}.sublevel{position:absolute;inset:0;background:var(--lime);color:var(--ink);display:flex;flex-direction:column}.sublevel .drawer-top{border-bottom-color:#14141424}.sub-head{min-height:52px;padding:0 var(--space-16);display:flex;align-items:center;gap:18px;border-bottom:1px solid rgba(20,20,20,.14)}.sub-back{display:flex;align-items:center;min-height:44px}.sub-title{flex:1;font:var(--type-section);font-weight:400;font-size:18px}.sub-all{font:var(--type-body)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--forest);margin-right:6px;vertical-align:1px}.race-band{height:6px}.empty-note{padding:var(--space-16);color:var(--muted)}.signin{display:flex;flex-direction:column;gap:var(--space-8, 8px);padding:var(--space-16)}.signin input{font:var(--type-link);padding:12px 0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);outline:none}.signin input:focus-visible{border-bottom-color:var(--forest)}.pad{padding:8px var(--space-16) 0;margin:0}.ready{padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;gap:6px}.ready-top{display:flex;justify-content:space-between;gap:var(--space-12)}.ready-bar{position:relative;height:4px;background:var(--hairline);overflow:hidden}.ready-bar span{position:absolute;inset:0;background:var(--forest);transform-origin:left}.ramp-chart{margin:12px var(--space-16) 0}.note{padding:var(--space-12) var(--space-16);border-bottom:1px solid var(--hairline)}.note-top{display:flex;justify-content:space-between;align-items:baseline}.note p{margin:4px 0 0;color:var(--muted)}.dirs{display:flex;flex-direction:column}.dir{text-align:left;display:flex;flex-direction:column;gap:4px;padding:14px var(--space-16);border-bottom:1px solid var(--hairline);border-left:3px solid transparent}.dir[aria-pressed=true]{border-left-color:var(--forest)}.dir-title{font:var(--type-section)}.dir-line{color:var(--muted)}.prose{padding:var(--space-12) var(--space-16) 0}.prose p{margin:0 0 var(--space-12)}.tabs{display:flex;gap:22px;padding:0 var(--space-16) var(--space-12)}.tabs button{font:var(--type-body);color:var(--muted);min-height:32px}.tabs button[aria-selected=true]{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}body{background:var(--ground);color:var(--ink);font:var(--type-body);letter-spacing:var(--track-body);-webkit-tap-highlight-color:transparent}#app{padding-bottom:calc(62px + max(10px,calc(env(safe-area-inset-bottom,0px) - 12px)) + var(--space-5))}button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px;border-radius:6px}.label{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-label);font-variant-numeric:tabular-nums}.label.ink{color:var(--ink)}.label.amber,.amber{color:var(--accent-ink)}.label.dusk{color:var(--dusk-ink)}.hero-n{font:var(--type-hero);letter-spacing:var(--track-hero);font-variant-numeric:tabular-nums;color:var(--ink)}.hero-n.sm{font-size:64px}.week-n{font:var(--type-week);letter-spacing:var(--track-week);font-variant-numeric:tabular-nums}.stat-n{font:var(--type-stat);letter-spacing:var(--track-stat);font-variant-numeric:tabular-nums;color:var(--ink)}.stat-n small{font-size:13px;letter-spacing:0;color:var(--ink-label);font-weight:500}.lede-s{font:var(--type-lede);color:var(--ink-soft)}.soft{color:var(--ink-soft)}.say{font:500 20px/26px var(--font-sans);letter-spacing:-.015em;color:var(--ink)}.row-between{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--space-3)}.s-head{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + var(--space-4)) var(--space-5) 0;min-height:calc(var(--header) + env(safe-area-inset-top,0px))}.s-head .mark{font:500 18px/1 var(--font-sans);letter-spacing:-.01em;color:var(--ink)}.s-head button{min-height:var(--target)}.screen.signal{padding-top:0;padding-bottom:var(--space-4)}.screen.signal:has(.dock){padding-bottom:96px}body:not([data-hero]) #app:has(.screen.signal){padding-top:0}.stack{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-5)}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);color:inherit}a.card:active,button.card:active{transform:scale(.99)}.card.stat{border-radius:var(--radius-stat);padding:var(--space-3) var(--space-4);gap:var(--space-1)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.coach-line{margin-top:var(--space-5);margin-bottom:var(--space-4);gap:var(--space-1);color:inherit}.ride-card{padding-top:var(--space-4)}.editor{display:flex;flex-direction:column;gap:var(--space-3)}.editor-time{display:flex;align-items:flex-end;gap:var(--space-3)}.editor-to{display:flex;flex-direction:column;gap:2px;padding-bottom:8px}.editor-to .stat-n{color:var(--ink-soft)}.readouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-3) 0 0;border-top:1px solid var(--hairline)}.readouts>div{display:flex;flex-direction:column;gap:2px}.editor-line{font-size:14px}.confirm{display:flex;align-items:center;gap:var(--space-4)}.band-wrap{display:flex;flex-direction:column;gap:var(--space-2)}.band-head{display:flex;justify-content:space-between}.band{position:relative;height:var(--band);border-radius:var(--radius-band);box-shadow:inset 0 0 0 1px var(--hairline)}.band.big{height:14px;border-radius:7px}.band.rest{opacity:.45}.band-ride{position:absolute;top:-3px;bottom:-3px;border-radius:9px;border:1.5px solid var(--ink);box-shadow:0 0 0 1.5px var(--ground)}.band-ride.done{background:var(--accent);border-color:var(--accent)}.band-kept{position:absolute;top:-2px;bottom:-2px;border-radius:8px;background:color-mix(in srgb,var(--ink) 14%,transparent);border:1px solid color-mix(in srgb,var(--ink) 28%,transparent)}.band-kept.big{top:14px;bottom:auto;height:18px}.band-rain{position:absolute;top:0;bottom:0;background-image:repeating-linear-gradient(-45deg,var(--rain) 0 2px,transparent 2px 6px);border-radius:inherit}.band-tick{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--ink);opacity:.6}.band-ticks{display:flex;justify-content:space-between;gap:var(--space-2)}.band-wrap.compact .band{height:8px;border-radius:4px}.band-wrap.compact .band-ride{top:-3px;bottom:-3px;border-radius:7px}.scrub{display:flex;flex-direction:column;gap:var(--space-2)}.scrub-track{position:relative;height:46px;display:flex;align-items:center;touch-action:pan-y;user-select:none;-webkit-user-select:none}.scrub-track .band{width:100%}.scrub-wall{position:absolute;top:6px;bottom:6px;border-radius:8px;background-image:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--ink) 16%,transparent) 0 1.5px,transparent 1.5px 6px);transition:background-color .2s ease;pointer-events:none}.scrub-wall.hit{background-color:color-mix(in srgb,var(--accent) 35%,transparent)}.scrub-wall-label.end{left:auto;right:0}.scrub-wall-label{position:absolute;top:-14px;left:4px;font:var(--type-label);letter-spacing:var(--track-label);font-size:9px;text-transform:uppercase;color:var(--ink-label);white-space:nowrap}.scrub-ride{position:absolute;top:9px;bottom:9px;border-radius:14px;border:2px solid var(--ink);box-shadow:0 0 0 2px var(--ground),0 6px 18px #0000002e;background:color-mix(in srgb,var(--ground) 18%,transparent);display:flex;align-items:center;justify-content:center;cursor:grab;transition:box-shadow .15s ease}.scrub-ride:active{cursor:grabbing;box-shadow:0 0 0 2px var(--ground),0 10px 26px #00000047}.scrub-ride.done{background:var(--accent);border-color:var(--accent);cursor:default}.scrub-ride .grip{width:10px;height:12px;background:repeating-linear-gradient(90deg,var(--ink) 0 1.5px,transparent 1.5px 4px);opacity:.8}.scrub:not(.editable) .scrub-ride{cursor:default}.chips{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--space-4) * -1);padding:2px var(--space-4);scroll-snap-type:x proximity;scroll-padding-inline:var(--space-4)}.chips::-webkit-scrollbar{display:none}.chip{flex:none;scroll-snap-align:start;min-height:var(--target);padding:8px 14px;border-radius:var(--radius-chip);background:var(--fill-quiet);color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;font:500 14px/18px var(--font-sans);border:1.5px solid transparent}.chip small{font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-label);font-size:10px}.chip.on{border-color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.chip:active{transform:scale(.97)}.checks{display:flex;flex-wrap:wrap;gap:var(--space-2)}.check{min-height:40px;padding:0 14px 0 10px;border-radius:20px;background:var(--fill-quiet);display:flex;align-items:center;gap:8px;font:500 14px/1 var(--font-sans);color:var(--ink)}.check .box{width:20px;height:20px;border-radius:10px;border:1.5px solid var(--ink-label);display:flex;align-items:center;justify-content:center;color:var(--on-accent)}.check.on{background:color-mix(in srgb,var(--accent) 16%,var(--surface))}.check.on .box{background:var(--accent);border-color:var(--accent)}.strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.strip-day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0;border-radius:12px;min-height:var(--target);color:inherit}.strip-day .n{font:500 15px/1 var(--font-sans);font-variant-numeric:tabular-nums}.strip-day .dot{width:8px;height:8px;border-radius:4px;background:transparent;border:1.5px solid transparent}.strip-day.planned .dot{border-color:var(--ink)}.strip-day.booked .dot{border-color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 30%,transparent)}.strip-day.done .dot{background:var(--accent);border-color:var(--accent)}.strip-day.kept .dot{background:var(--fill-quiet);border-color:color-mix(in srgb,var(--ink) 25%,transparent)}.strip-day.today{background:var(--fill-quiet)}.strip-day.today .label{color:var(--ink)}.photo-card{position:relative;padding:0;min-height:168px;overflow:hidden;border:0;justify-content:flex-end}.photo-card.tall{min-height:260px}.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#05060700 35%,#050607d1)}.photo-cap{position:relative;z-index:1;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.dock-wrap{position:fixed;left:50%;transform:translate(-50%);z-index:6;bottom:calc(72px + max(10px,calc(env(safe-area-inset-bottom,0px) - 12px)));width:calc(100% - 42px);max-width:520px;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.dock-wrap>*{pointer-events:auto}.dock{background:var(--glass);border:1px solid var(--hairline);border-radius:24px;padding:8px;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);display:flex;flex-direction:column;gap:8px;box-shadow:0 10px 30px #0000001f}.dock>.label{padding:6px 8px 0}.dock-line{display:flex;flex-direction:column;gap:2px;padding:8px 10px;font:500 15px/20px var(--font-sans)}.feel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.feel .chip{align-items:center;padding:0}body[data-sheet] .dock-wrap{display:none}.pill{min-height:50px;padding:0 var(--space-5);border-radius:18px;background:var(--accent);color:var(--on-accent);font:600 15px/1 var(--font-sans);letter-spacing:-.01em;display:inline-flex;align-items:center;justify-content:center;align-self:flex-start}.pill.wide{align-self:stretch;width:100%}.pill.ghost{background:var(--silver);color:var(--ink);font-weight:500;box-shadow:inset 0 0 0 1px var(--hairline)}.pill:active{transform:scale(.98)}.pill[disabled]{opacity:.6}.text-btn{min-height:var(--target);display:inline-flex;align-items:center;color:var(--accent-ink);font:500 15px/1 var(--font-sans);align-self:flex-start}.text-btn.quiet{color:var(--ink-label)}.back{min-height:var(--target);display:flex;align-items:center}.toast{align-self:center;display:flex;align-items:center;gap:var(--space-4);background:var(--ink);color:var(--ground);border-radius:18px;padding:10px 10px 10px 16px;font:500 14px/18px var(--font-sans);box-shadow:0 8px 24px #0003;max-width:100%}.toast button{color:var(--accent);font:600 14px/1 var(--font-sans);min-height:32px;padding:0 8px}@media (prefers-color-scheme: light){:root:not([data-theme=dark]) .toast button{color:#f0d683}}.segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--fill-quiet);border-radius:12px;padding:2px}.segmented button{min-height:36px;border-radius:10px;font:500 14px/1 var(--font-sans);color:var(--ink-soft)}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0000001f}.week-head{flex-direction:row;align-items:center;gap:var(--space-4);margin-top:var(--space-5)}.week-ask{display:flex;flex-direction:column;gap:4px;min-width:0}.week-ask .ask{font:500 34px/1 var(--font-sans);letter-spacing:-.035em}.ring{position:relative;flex:none}.ring svg{display:block}.ring-off{stroke:var(--fill-quiet)}.ring-on{stroke:var(--accent)}.ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}.ring-in .label{font-size:9px}.days{padding:var(--space-2) var(--space-3);gap:0}.day-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;border-bottom:1px solid var(--hairline)}.day-row:last-child{border-bottom:0}.day-open{display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--space-3);align-items:center;text-align:left;padding:12px 4px;min-height:60px}.day-open:active{opacity:.7}.day-name{display:flex;flex-direction:column;align-items:center;gap:3px}.day-name .n{font:500 17px/1 var(--font-sans);font-variant-numeric:tabular-nums}.day-row.today .day-name .n{color:var(--accent-ink)}.day-row.past{opacity:.6}.day-mid{display:flex;flex-direction:column;gap:8px;min-width:0}.day-what{font:500 14px/18px var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-what.quiet{color:var(--ink-label);font-weight:400}.tick{width:28px;height:28px;border-radius:14px;border:1.5px solid var(--ink-label);justify-self:end;display:flex;align-items:center;justify-content:center;color:var(--on-accent)}.tick.on{background:transparent;border-color:var(--accent-ink);color:var(--accent-ink)}.tick.fixed{border:0}.tick.done{background:var(--accent);color:var(--on-accent)}.tick.booked{color:var(--accent-ink)}.tick.none{border:0}.ramp{display:flex;align-items:flex-end;gap:var(--space-2);height:72px}.ramp>button{flex:1;border-radius:6px;background:var(--fill-quiet);min-height:8px;transition:background-color .15s ease}.ramp>button.now{background:var(--accent)}.ramp>button.picked:not(.now){background:color-mix(in srgb,var(--ink) 40%,transparent)}.ramp>button.picked{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--ink)}.ramp-labels{display:flex;gap:var(--space-2)}.ramp-labels .label{flex:1;text-align:center;font-size:10px;letter-spacing:var(--track-label)}.sheet-scrim{position:fixed;inset:0;z-index:20;background:#00000052;animation:fade .2s ease}.sheet{position:fixed;left:50%;bottom:0;z-index:21;width:100%;max-width:560px;transform:translate(-50%);max-height:calc(100svh - 48px);overflow-y:auto;background:var(--ground);border-radius:28px 28px 0 0;border-top:1px solid var(--hairline);padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-6));animation:rise .28s cubic-bezier(.2,.8,.2,1);transition:transform .2s ease}.sheet{translate:-50% 0;transform:none;left:50%}.sheet-grab{display:flex;justify-content:center;padding:10px 0 14px;touch-action:none;cursor:grab}.sheet-grab span{width:40px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--ink) 22%,transparent)}.sheet-body{padding:0 var(--space-5)}.sheet-stack{display:flex;flex-direction:column;gap:var(--space-4)}.sheet-group{display:flex;flex-direction:column;gap:var(--space-2)}.check-line{display:flex;align-items:center;gap:10px;min-height:var(--target);font:400 15px/1.3 var(--font-sans)}.check-line input{width:20px;height:20px;accent-color:var(--accent)}@keyframes rise{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.ready-card{gap:var(--space-3)}.ready-big{display:flex;align-items:baseline;gap:var(--space-3)}.track{position:relative;height:10px;border-radius:5px;background:var(--fill-quiet);margin:6px 0 14px}.track.thin{height:6px;border-radius:3px;margin:2px 0 6px}.track-fill{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;background:var(--accent)}.track-dot{position:absolute;top:50%;width:16px;height:16px;border-radius:8px;background:var(--ground);border:3px solid var(--accent);transform:translate(-50%,-50%)}.track.thin .track-dot{display:none}.track-mark{position:absolute;top:-3px;bottom:-3px;width:1px;background:var(--ink-label)}.track-mark .label{position:absolute;top:16px;left:50%;transform:translate(-50%);font-size:9px}.weeks{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:88px;align-items:end}.weeks button{height:100%;display:flex;align-items:flex-end;padding:0}.weeks button span{display:block;width:100%;height:var(--h);min-height:3px;border-radius:4px;background:color-mix(in srgb,var(--ink) 30%,transparent);transition:background-color .15s ease}.weeks button.zero span{background:var(--fill-quiet)}.weeks button.now span{background:color-mix(in srgb,var(--accent) 60%,transparent)}.weeks button.on span{background:var(--accent)}.ride-row{flex-direction:row;gap:var(--space-3);align-items:center;padding:var(--space-3)}.ride-row img{width:72px;height:72px;border-radius:12px;object-fit:cover;flex:none}.ride-row-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}:root{--spring-move: linear(0, .022, .077, .154, .243, .337, .431, .521, .604, .68, .746, .804, .852, .893, .926, .953, .974, .989, 1.001, 1.009, 1.015, 1.018, 1.02, 1.02, 1.019, 1.018, 1.017, 1.015, 1.013, 1.011, 1.009, 1.008, 1.006, 1.005, 1.004, 1.003, 1);--spring-lift: linear(0, .034, .119, .235, .366, .499, .626, .739, .836, .915, .977, 1.022, 1.053, 1.071, 1.079, 1.08, 1.076, 1.068, 1.058, 1.047, 1.037, 1.027, 1.018, 1.011, 1.005, 1, .997, .995, .994, .993, .994, .994, .995, .996, .996, .997, 1);--spring-unlift: linear(0, .029, .102, .201, .315, .431, .544, .647, .739, .817, .882, .934, .973, 1.003, 1.023, 1.036, 1.043, 1.046, 1.045, 1.042, 1.038, 1.033, 1.028, 1.022, 1.017, 1.013, 1.009, 1.006, 1.004, 1.002, 1, .999, .998, .998, .998, .998, 1);--tab-glass: rgba(255,255,255,.56);--tab-lens: rgba(31,30,30,.07);--tab-lens-lift: rgba(255,255,255,.78);--tab-rim: rgba(255,255,255,.7)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--tab-glass: rgba(28,30,34,.58);--tab-lens: rgba(255,255,255,.1);--tab-lens-lift: rgba(255,255,255,.18);--tab-rim: rgba(255,255,255,.14)}}:root[data-theme=dark]{--tab-glass: rgba(28,30,34,.58);--tab-lens: rgba(255,255,255,.1);--tab-lens-lift: rgba(255,255,255,.18);--tab-rim: rgba(255,255,255,.14)}.tabbar{position:fixed;left:50%;transform:translate(-50%);z-index:7;bottom:max(10px,calc(env(safe-area-inset-bottom,0px) - 12px));width:calc(100% - 42px);max-width:520px;height:62px;border-radius:31px;background:var(--tab-glass);border:.5px solid var(--hairline);backdrop-filter:blur(14px) saturate(1.8);-webkit-backdrop-filter:blur(14px) saturate(1.8);box-shadow:inset 0 1px 0 var(--tab-rim),inset 0 -.5px #0000000d,0 6px 24px #0000001f,0 1px 3px #0000000f;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:0 4px;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .5s var(--spring-unlift)}.tabbar.pressed{transform:translate(-50%) scale(1.015);transition:transform .3s var(--spring-lift)}.tab-lens{position:absolute;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/5);border-radius:27px;background:var(--tab-lens);pointer-events:none;transform:translate(calc(var(--i, 0) * 100%));transition:transform .53s var(--spring-move),background-color .3s ease,box-shadow .3s ease}.tabbar.pressed .tab-lens{background:var(--tab-lens-lift);box-shadow:0 4px 16px #00000024,inset 0 1px 0 var(--tab-rim);transform:translate(calc(var(--i, 0) * 100%)) scale(1.12);transition:transform .43s var(--spring-lift),background-color .2s ease,box-shadow .2s ease}.tabbar.dragging .tab-lens{transition:background-color .2s ease,box-shadow .2s ease}.tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:54px;font:500 10px/12px -apple-system,system-ui,sans-serif;letter-spacing:.01em;color:var(--ink);-webkit-touch-callout:none;-webkit-user-drag:none;transition:color .2s ease,transform .43s var(--spring-lift)}.tabbar a[aria-current=page]{color:var(--accent-ink)}.tabbar.pressed a.lit{transform:scale(1.08)}.tabbar svg{width:25px;height:25px}body[data-nobar] .tabbar,body[data-sheet] .tabbar{display:none}@media (prefers-reduced-motion: reduce){.sheet,.sheet-scrim{animation:none}*{transition:none!important}.tabbar.pressed{transform:translate(-50%)}.tabbar.pressed .tab-lens{transform:translate(calc(var(--i, 0) * 100%))}.tabbar.pressed a.lit{transform:none}}.appearance{display:grid;grid-template-columns:repeat(3,1fr);background:var(--fill-quiet);border-radius:12px;padding:2px;margin:6px 0 8px}.appearance button{min-height:36px!important;border-radius:10px;font:500 13px/1 var(--font-sans)!important;color:var(--ink-soft);justify-content:center}.appearance button[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #0000001f}.say.big{font-size:24px;line-height:30px;letter-spacing:-.02em}.coach-card{gap:var(--space-2)}.thread{display:flex;flex-direction:column;gap:var(--space-3)}.msg-pair{display:flex;flex-direction:column;gap:6px}.msg{max-width:86%;padding:10px 14px;border-radius:18px;display:flex;flex-direction:column;gap:4px;font:400 15px/20px var(--font-sans)}.msg.me{align-self:flex-end;background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-bottom-right-radius:6px}.msg.them{align-self:flex-start;background:var(--fill-quiet);border-bottom-left-radius:6px}.msg.waiting{padding:8px 12px}.msg .label{font-size:9.5px}.link{color:var(--accent-ink);font:inherit;text-transform:inherit;letter-spacing:inherit}.composer{display:flex;align-items:flex-end;gap:var(--space-2);background:var(--fill-quiet);border-radius:22px;padding:6px 6px 6px 14px}.composer textarea{flex:1;border:0;background:transparent;color:var(--ink);font:400 16px/22px var(--font-sans);resize:none;outline:none;padding:6px 0;min-height:34px}.composer textarea::placeholder{color:var(--ink-label)}.send{width:44px;height:44px;border-radius:22px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;flex:none}.send[disabled]{background:color-mix(in srgb,var(--ink) 18%,transparent);color:var(--ground)}.stage-list{display:flex;flex-direction:column}.stage{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--hairline);text-align:left;color:inherit}.stage:first-child{border-top:0;padding-top:2px}.stage-name{display:flex;align-items:baseline;gap:10px;font:500 15px/20px var(--font-sans)}.stage-more{display:flex;flex-direction:column;gap:6px;animation:rise .22s ease}.choices{display:flex;flex-direction:column;gap:var(--space-2)}.choice{display:flex;gap:var(--space-3);align-items:flex-start;text-align:left;padding:12px;border-radius:16px;background:var(--fill-quiet);border:1.5px solid transparent;color:inherit}.choice.on{border-color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.choice-dot{width:20px;height:20px;border-radius:10px;border:1.5px solid var(--ink-label);flex:none;margin-top:1px}.choice.on .choice-dot{border:6px solid var(--accent)}.choice-text{display:flex;flex-direction:column;gap:4px}.choice-title{font:500 15px/20px var(--font-sans)}.ramp-all{position:relative;display:flex;align-items:flex-end;gap:2px;height:96px}.ramp-all button{flex:1;height:100%;display:flex;align-items:flex-end;padding:0;min-width:0}.ramp-all button span{display:block;width:100%;height:var(--h);border-radius:2px;background:color-mix(in srgb,var(--ink) 34%,transparent)}.ramp-all button.easy span{background:color-mix(in srgb,var(--ink) 18%,transparent)}.ramp-all button.past span{opacity:.45}.ramp-all button.now span{background:var(--accent)}.ramp-all button.on span{background:var(--ink)}.ramp-all button.now.on span{background:var(--accent);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--ink)}.ramp-all .best{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed var(--ink-label);pointer-events:none;z-index:1}.note-s{display:flex;flex-direction:column;gap:4px;padding-top:var(--space-3);border-top:1px solid var(--hairline)}.note-s:first-of-type{border-top:0;padding-top:0}.note-title{font:500 15px/20px var(--font-sans);color:var(--ink)}.race-next{position:relative;overflow:hidden;padding-top:calc(var(--space-4) + 6px)}.race-stripe{position:absolute;left:0;right:0;top:0;height:6px;background:var(--race)}.season{display:flex;flex-direction:column;gap:8px}.season-months{display:grid;grid-template-columns:repeat(10,1fr)}.season-months .label{font-size:9px}.season-line{position:relative;height:40px;border-radius:12px;background:var(--fill-quiet)}.season-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);border-radius:1px}.season-block{position:absolute;top:8px;bottom:8px;border-radius:8px;background:var(--race);min-width:10px;transition:transform .15s ease}.season-block.you{top:4px;bottom:4px;border-radius:10px}.season-block.on{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--ink);z-index:1}.season-key{display:flex;gap:var(--space-4);font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;font-size:9.5px;color:var(--ink-label)}.season-key span{display:flex;align-items:center;gap:6px}.k{width:10px;height:10px;border-radius:3px;display:inline-block}.k.you{background:var(--accent)}.k.race{background:linear-gradient(90deg,var(--race-giro),var(--race-tour),var(--race-vuelta))}.season-detail{display:flex;flex-direction:column;gap:6px;padding-top:var(--space-3);border-top:1px solid var(--hairline)}.text-btn.small{min-height:44px;font-size:14px;padding:0 4px}.stages{display:flex;flex-direction:column;margin-top:4px}.stage-row{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:9px 0;border-top:1px solid var(--hairline)}.stage-row.past{opacity:.5}.stage-what{font:400 14px/19px var(--font-sans)}.going{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;text-align:left;padding:10px 0;border-top:1px solid var(--hairline);color:inherit}.going:first-of-type{border-top:0}.going-stripe{width:6px;height:36px;border-radius:3px;background:var(--race)}.going-text{display:flex;flex-direction:column;gap:2px}.podium{display:flex;flex-direction:column}.podium-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding:10px 0;border-top:1px solid var(--hairline)}.podium-row:first-child{border-top:0}.podium-n{width:28px;height:28px;border-radius:14px;display:flex;align-items:center;justify-content:center;font:600 14px/1 var(--font-sans);background:var(--fill-quiet)}.podium-row.p1 .podium-n{background:var(--race-tour);color:#1f1e1e}.podium-who{display:flex;flex-direction:column;gap:2px;min-width:0}.move-row{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--hairline)}.move-row:nth-of-type(1){border-top:0}.ink-strong{color:var(--ink)}.menu-sheet{padding-bottom:var(--space-4)}.menu-group{display:flex;flex-direction:column;gap:var(--space-2)}.menu-group>.label{padding:0 var(--space-4)}.menu-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-card);overflow:hidden}.menu-row{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:50px;padding:0 var(--space-4);border-top:1px solid var(--hairline);font:400 16px/1 var(--font-sans);color:var(--ink);text-align:left}.menu-row:first-child{border-top:0}.menu-row:active{background:var(--fill-quiet)}.menu-detail{display:flex;align-items:center;gap:10px;color:var(--ink-label);font-size:15px}.menu-detail svg{opacity:.6}.segmented.three{grid-template-columns:repeat(3,1fr)}.weight-top{display:flex;flex-direction:column;gap:4px}.stat-n.big{font-size:40px;line-height:44px;letter-spacing:-.03em}.weight-chart{display:flex;flex-direction:column;gap:8px}.weight-chart svg{display:block;cursor:crosshair}.w-dot{fill:color-mix(in srgb,var(--ink) 30%,transparent)}.w-line{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.w-cursor{stroke:var(--ink-label);stroke-width:1}.w-sel{fill:var(--ground);stroke:var(--accent);stroke-width:3}.composer input{flex:1;border:0;background:transparent;color:var(--ink);font:400 17px/22px var(--font-sans);outline:none;padding:8px 0;min-width:0}.composer input::placeholder{color:var(--ink-label)}.days-line{display:flex;gap:4px}.days-line button{min-height:64px;border-radius:4px;background:var(--fill-quiet);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:8px 10px;color:var(--ink);border:1.5px solid transparent;min-width:0}.days-line button.on{background:var(--accent);color:var(--on-accent)}.days-line button.on .label{color:var(--on-accent)}.dl-km{font:500 18px/1 var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.day-detail{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--hairline)}.open-list{display:flex;flex-direction:column}.open-list span{padding:10px 0;border-top:1px solid var(--hairline);font:400 15px/20px var(--font-sans)}.open-list span:first-child{border-top:0;padding-top:0}.climbs{display:flex;flex-direction:column}.climb{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-top:1px solid var(--hairline);text-align:left;color:inherit}.climb:first-child{border-top:0}.climb-bars{position:relative;height:8px;border-radius:4px;background:var(--fill-quiet)}.cb-climb{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:color-mix(in srgb,var(--ink) 55%,transparent)}.cb-you{position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:2px;background:var(--accent);transform:translate(-1.5px)}.climb-more{display:flex;flex-direction:column;gap:4px;animation:rise .2s ease}.race-photo .race-stripe{z-index:2}.book-stage{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--hairline)}.book-stage:nth-of-type(1){border-top:0}.book-stage.past{opacity:.5}.route-card{gap:var(--space-2);color:inherit}.strip-r{position:relative;height:22px}.strip-r.big{height:40px}.sr-line{position:absolute;left:0;right:0;top:10px;height:2px;border-radius:1px;background:var(--ink)}.sr-dark{position:absolute;top:5px;height:12px;border-radius:6px;background:var(--strip-night, var(--light-night));box-shadow:0 0 0 2px var(--surface)}.sr-tick{position:absolute;top:7px;width:1px;height:8px;background:var(--ink-label)}.sr-tick .label{position:absolute;top:14px;left:50%;transform:translate(-50%);font-size:9px}.prose-s p{margin:0;font:400 15px/22px var(--font-sans);color:var(--ink-soft)}.stat-n{white-space:nowrap}.day-detail .card.stat{padding:var(--space-3)}.day-detail .stat-n{font-size:20px;line-height:24px}.days-line button{padding:8px}.days-line .label,.route-card .row-between .label,.climb .row-between .label{white-space:nowrap}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--strip-night: #3b4566}}:root[data-theme=dark]{--strip-night: #3b4566}.card.row-between{flex-direction:row;align-items:center}.season-block:before{content:"";position:absolute;inset:-10px -8px}.s-head .mark{padding:12px 12px 12px 0;margin:-12px 0}.row-between>a.label{padding:14px 0 14px 16px;margin:-14px 0}.s-head-r{display:flex;align-items:center;gap:12px}.avatar{width:34px;height:34px;border-radius:17px;background:var(--fill-quiet);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font:600 15px/1 var(--font-sans);letter-spacing:0;flex:none;position:relative}.avatar:before{content:"";position:absolute;inset:-5px}.avatar.on{background:var(--ink);color:var(--ground)}.avatar.big{width:56px;height:56px;border-radius:28px;font-size:22px;background:var(--accent);color:var(--on-accent)}.you-head{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-1)}.you-name{display:flex;flex-direction:column;gap:2px}.label.sec{padding:0 var(--space-1)}.stepper,.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);min-height:52px;border-top:1px solid var(--hairline);padding-top:var(--space-2);width:100%;text-align:left;color:inherit}.card>.label+.stepper,.card>.row-between+.stepper,.card>.label+.toggle-row{border-top:0;padding-top:0}.stepper-text{display:flex;flex-direction:column;gap:3px;min-width:0}.stepper-ctl{display:flex;align-items:center;background:var(--fill-quiet);border-radius:14px;flex:none}.stepper-ctl button{width:44px;height:44px;font:400 22px/1 var(--font-sans);color:var(--ink)}.stepper-ctl button:active{opacity:.5}.stepper-v{min-width:62px;text-align:center;font:500 16px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink)}.switch{width:51px;height:31px;border-radius:16px;background:color-mix(in srgb,var(--ink) 16%,transparent);position:relative;flex:none;transition:background-color .18s ease}.switch span{position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;box-shadow:0 2px 4px #0003;transition:transform .18s ease}.switch.on{background:var(--accent)}.switch.on span{transform:translate(20px)}.days7{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.days7 button{height:44px;border-radius:12px;background:var(--fill-quiet);font:600 14px/1 var(--font-sans);color:var(--ink-soft)}.days7 button.on{background:var(--accent);color:var(--on-accent)}.range{width:100%;accent-color:var(--accent);height:44px}.bike{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--hairline)}.bike:first-child{border-top:0;padding-top:0}.chip.small{min-height:36px;padding:6px 12px;font-size:13px}.chip.on{background:var(--accent);color:var(--on-accent)}.first{display:flex;align-items:center;gap:var(--space-3);min-height:48px;border-top:1px solid var(--hairline)}.first-dot{width:12px;height:12px;border-radius:6px;border:1.5px solid var(--ink-label);flex:none}.first.done .first-dot{background:var(--accent);border-color:var(--accent)}.first.done .note-title{color:var(--ink-soft)}.preview{display:flex;flex-direction:column;gap:2px;padding:0 var(--space-1) var(--space-2)}a.menu-row[href]:after{content:"";width:7px;height:7px;border-right:1.5px solid var(--ink-label);border-top:1.5px solid var(--ink-label);transform:rotate(45deg);margin-left:10px;flex:none}.menu-row .menu-detail{margin-left:auto;color:var(--ink-label);font-size:15px}.route-map{width:100%;height:auto;display:block;background:var(--fill-quiet);border-radius:14px}.route-map.thumb{width:72px;height:72px;flex:none;border-radius:12px}.rm-under{fill:none;stroke:var(--surface);stroke-width:6;stroke-linejoin:round;stroke-linecap:round;opacity:.9}.rm-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.route-map.thumb .rm-line{stroke-width:2}.route-map.thumb .rm-under{stroke-width:4}.rm-start{fill:var(--surface);stroke:var(--ink);stroke-width:2}.route-map.tiled{--rm-halo: #ffffff;background:var(--fill-quiet)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .route-map.tiled{--rm-halo: #0b0d10}}:root[data-theme=dark] .route-map.tiled{--rm-halo: #0b0d10}.rm-wash{fill:var(--rm-halo);opacity:.18}.route-map.tiled .rm-under{stroke:var(--rm-halo);stroke-width:7;opacity:.95}.route-map.tiled .rm-line{stroke:var(--accent-ink);stroke-width:3.2}.rm-attr{font:500 7px var(--font-sans);fill:var(--ink-label);paint-order:stroke;stroke:var(--rm-halo);stroke-width:2px}.map-card{padding:var(--space-2);gap:var(--space-2)}.map-card .label{padding:0 var(--space-2) var(--space-1)}.profile{display:flex;flex-direction:column;gap:4px;touch-action:pan-y}.profile svg{width:100%;height:120px;display:block}.pf-area{fill:color-mix(in srgb,var(--accent) 22%,transparent)}.pf-line{fill:none;stroke:var(--accent-ink);stroke-width:1.6}.pf-tick{stroke:var(--ink-label);stroke-width:1}.pf-cursor{stroke:var(--ink);stroke-width:1.2}.pf-labels{position:relative;height:14px}.pf-labels .label{position:absolute;transform:translate(-50%);font-size:9.5px}.pf-labels .label:first-child{left:0;transform:none}.pf-labels .label.end{right:0;left:auto;transform:none}.pf-read{min-height:18px}.pull{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;transition:height .16s ease}.fitchart{display:flex;flex-direction:column;gap:6px;touch-action:pan-y}.fitchart svg{width:100%;height:170px;display:block}.fc-grid{stroke:var(--hairline);stroke-width:1}.fc-zero{stroke:var(--ink-label);stroke-width:1;opacity:.5}.fc-ctl{fill:none;stroke:var(--accent-ink);stroke-width:2.2;stroke-linejoin:round}.fc-atl{fill:none;stroke:var(--ink-label);stroke-width:1.2;stroke-linejoin:round}.fc-ctl.proj{stroke-dasharray:5 4}.fc-atl.proj{stroke-dasharray:2 3;opacity:.45}.fc-form{fill:color-mix(in srgb,var(--accent) 70%,transparent)}.fc-form.neg{fill:color-mix(in srgb,var(--ink) 30%,transparent)}.fc-form.proj{opacity:.5}.fc-today{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 3}.fc-cursor{stroke:var(--ink);stroke-width:1.2}.fc-months{position:relative;height:14px}.fc-months .label{position:absolute;transform:translate(-50%);font-size:9.5px}.fc-months .label.end{right:0;transform:none;color:var(--accent-ink)}.readouts.three>div .stat-n small{font-size:11px}.msg-text{white-space:pre-line}.msg-actions{display:flex;flex-direction:column;gap:6px;padding:4px 0}.pill.small{min-height:40px;padding:0 14px;font-size:14px;border-radius:14px}.coach-card.new{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.coach-card.new .msg.them{max-width:100%}.typing{display:inline-flex;gap:4px;padding:4px 2px}.typing i{width:6px;height:6px;border-radius:3px;background:var(--ink-label);animation:typing 1.2s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.typing i{animation:none;opacity:.7}}.ramp-all{touch-action:none}.ramp-all button.drafting span{background:var(--accent);opacity:.85}.weeks,.weeks button{position:relative}.weeks button .wk-target{position:absolute;left:0;right:0;bottom:0;height:var(--t);border:1.5px dashed color-mix(in srgb,var(--ink) 28%,transparent);border-radius:4px;pointer-events:none}.weeks button.ahead span{background:transparent}.weeks-best{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed var(--accent-ink);opacity:.55;pointer-events:none;z-index:1}.day-row{position:relative;overflow:hidden;display:block}.day-swipe{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;background:var(--surface);position:relative;z-index:1;transition:transform .2s ease;touch-action:pan-y}.day-row.dragging .day-swipe{transition:none}.day-row.dragging .band-ride{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--accent)}.day-row .day-open{touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer}.swipe-under{position:absolute;inset:0;display:flex;align-items:center;padding:0 var(--space-4)}.swipe-under.left{justify-content:flex-end;background:color-mix(in srgb,var(--dusk) 30%,var(--surface))}.swipe-under.right{justify-content:flex-start;background:color-mix(in srgb,var(--accent) 35%,var(--surface))}.segmented.four{grid-template-columns:repeat(4,1fr)}.review-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:var(--space-3)}.review-steps button{min-height:44px;border-radius:12px;border-bottom:3px solid var(--fill-quiet);display:flex;align-items:center;justify-content:center}.review-steps button.on{border-color:var(--accent)}.review-steps button.on .label{color:var(--ink)}.review-steps button.done{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.review-day{display:flex;align-items:center;gap:var(--space-3);min-height:56px;border-top:1px solid var(--hairline);text-align:left;color:inherit;width:100%}.review-day .box{width:24px;height:24px;border-radius:12px;border:1.5px solid var(--ink-label);display:flex;align-items:center;justify-content:center;color:var(--on-accent);flex:none}.review-day.on .box{background:var(--accent);border-color:var(--accent)}.ready-card{text-decoration:none}.weeks~.row-between .label:first-child{white-space:nowrap}.pf-dark{fill:color-mix(in srgb,var(--light-night) 22%,transparent)}:root[data-theme=dark] .pf-dark{fill:color-mix(in srgb,#8a96c8 26%,transparent)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .pf-dark{fill:color-mix(in srgb,#8a96c8 26%,transparent)}}.profile.paint svg{touch-action:none;cursor:crosshair}.days7.two{grid-template-columns:1fr 1fr}.days7.two button{font-weight:500}.add-route{border-style:dashed}.coach-tabs{margin-top:var(--space-2)}.trends{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4)}.trend{display:flex;flex-direction:column;gap:4px;min-width:0}.trend-n{font:600 22px/1.1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink);display:flex;align-items:baseline;gap:6px}.tr-arrow{font-style:normal;font-size:18px;color:var(--ink-soft)}.tr-arrow.good{color:var(--ink);font-weight:700}.tr-arrow.bad{color:var(--accent-ink);font-weight:700}.say.sm{font-size:17px;line-height:23px}.card.legs{gap:var(--space-3)}.ideas .idea{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--hairline)}.ideas .idea:first-of-type{border-top:0}.idea-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.idea.on .note-title{color:var(--accent-ink)}.quiet-pill{background:var(--silver);color:var(--ink);flex:none;box-shadow:inset 0 0 0 1px var(--hairline)}.paris-bar{height:6px;border-radius:3px;background:var(--fill-quiet);overflow:hidden}.paris-bar span{display:block;height:100%;background:var(--accent);border-radius:3px}.scrub-ride{transition:box-shadow .15s ease}.scrub.editable .scrub-ride{transition:left .26s cubic-bezier(.3,1.5,.5,1),box-shadow .15s ease}.scrub.editable .scrub-ride.dragging{transition:box-shadow .15s ease}.scrub.editable .scrub-ride.dragging.jump{transition:left .17s cubic-bezier(.2,.8,.2,1),box-shadow .15s ease}.scrub-fold{position:absolute;top:4px;bottom:4px;border-radius:6px;background:var(--ground);box-shadow:inset 0 0 0 1px var(--hairline);background-image:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--ink) 18%,transparent) 0 1.5px,transparent 1.5px 5px);transition:background-color .2s ease,transform .2s ease;pointer-events:none}.scrub-fold.hit{background-color:color-mix(in srgb,var(--accent) 35%,var(--ground));transform:scaleY(1.08)}.scrub-fold-label{position:absolute;top:-15px;left:50%;transform:translate(-50%);font:var(--type-label);letter-spacing:var(--track-label);font-size:9px;text-transform:uppercase;color:var(--ink-label);white-space:nowrap;transition:color .15s ease}.scrub-fold.hit .scrub-fold-label{color:var(--accent-ink)}.scrub-fold.first .scrub-fold-label{left:0;transform:none}.scrub-fold.last .scrub-fold-label{left:auto;right:0;transform:none}.fold-edges{position:relative;height:14px}.fold-edges .label{position:absolute;top:0;font-size:10px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip;font-variant-numeric:tabular-nums}.scrub.folded .band-ticks{justify-content:center;gap:var(--space-4)}.segmented.five{grid-template-columns:repeat(5,1fr)}.explore-card{gap:var(--space-2)}.review-row{justify-content:flex-start;gap:var(--space-2)}.graphic-sheet{gap:var(--space-3);padding-bottom:var(--space-5)}.graphic-frame{align-self:center;height:min(52vh,520px);max-width:100%;border-radius:16px;overflow:hidden;background:var(--fill-quiet);box-shadow:0 10px 30px #0000002e}.graphic-frame canvas{width:100%;height:100%;display:block}.map-card .row-between{padding:0 var(--space-2) var(--space-1);align-items:center}.map-card .row-between .label{padding:0}.paris-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-1)}.paris-line .paris-bar{height:4px}.routes-sheet{gap:var(--space-4);padding-bottom:var(--space-6);max-height:70vh;overflow-y:auto}.routes-sheet .ideas{display:flex;flex-direction:column;gap:var(--space-3)}.paris-line .paris-bar{display:block}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.tile{gap:var(--space-2);min-height:132px;justify-content:space-between;text-align:left;font:inherit;color:inherit;cursor:pointer}.tile.wide{grid-column:1 / -1;min-height:0}.tile-row{display:flex;align-items:center;gap:var(--space-3)}.tile-big{font:500 40px/1 var(--font-sans);letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--ink)}.tile-big small{font-size:13px;letter-spacing:0;font-weight:500;color:var(--ink-label);margin-left:2px}.tile-big.muted{color:var(--ink-label)}.tile-big.right{margin-left:auto;text-align:right}.tile-cap{font:var(--type-body);color:var(--ink-soft)}.tile-bar{display:block;height:4px;border-radius:2px;background:var(--fill-quiet);overflow:hidden}.tile-bar span{display:block;height:100%;background:var(--accent);border-radius:2px}.tile-light{display:block;height:6px;border-radius:3px}.ring-n{font:500 15px/1 var(--font-sans);font-variant-numeric:tabular-nums}.spark{flex:1;height:48px;min-width:0}.spark-past{fill:none;stroke:var(--accent-ink);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.spark-ahead{fill:none;stroke:var(--ink-label);stroke-width:1.6;stroke-dasharray:3 4;opacity:.55;vector-effect:non-scaling-stroke}.tile.photo-tile{position:relative;padding:0;min-height:188px;overflow:hidden;border:0;justify-content:flex-end}.photo-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#05060700 35%,#050607d1)}.photo-tile .photo-cap{position:relative;z-index:1;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.idea-tile{flex-direction:row;align-items:center;gap:var(--space-4);border:1px solid var(--hairline)}.idea-tile-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.tile-link{font:500 15px/1 var(--font-sans);color:var(--accent-ink);margin-top:4px}.tile-km{font:500 32px/1 var(--font-sans);letter-spacing:-.04em}.tile-km small{font-size:13px;color:var(--ink-label)}:root{--rule: rgba(31,30,30,.16);--band-ink: #1f1e1e}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--rule: rgba(255,255,255,.15);--band-ink: #1e1d1b}}:root[data-theme=dark]{--rule: rgba(255,255,255,.15);--band-ink: #1e1d1b}.screen.signal .stack{gap:0}.screen.signal .card{background:transparent;border:0;border-top:1px solid var(--rule);border-radius:0;padding:var(--space-4) 0 18px;box-shadow:none}.screen.signal .card.stat{padding:var(--space-3) 0}.screen.signal .stats{gap:0;border-top:1px solid var(--rule)}.screen.signal .stats .card.stat{border-top:0}.screen.signal .stats .card.stat+.card.stat{border-left:1px solid var(--rule);padding-left:var(--space-3)}.screen.signal .photo-card{margin:0 calc(var(--space-5) * -1);border-radius:0;border-top:0;padding:0}.screen.signal .map-card{padding:var(--space-3) 0}.screen.signal .route-map{border-radius:0}.screen.signal .ride-card{margin:0 calc(var(--space-5) * -1);padding:22px var(--space-5) var(--space-5);background:var(--band-ink);border-top:0;--ink: #f4f4f2;--ink-soft: rgba(244,244,242,.78);--ink-label: rgba(244,244,242,.58);--hairline: rgba(255,255,255,.12);--rule: rgba(255,255,255,.14);--fill-quiet: rgba(255,255,255,.08);--surface: var(--band-ink);--accent-ink: #f0d683;color:#f4f4f2}.screen.signal .tiles{gap:0;border-top:1px solid var(--rule)}.screen.signal .tiles .tile{border-top:0;border-bottom:1px solid var(--rule);padding:var(--space-4) 0 18px;min-height:120px}.screen.signal .tiles .tile:not(.wide):nth-child(odd){border-right:1px solid var(--rule);padding-right:var(--space-4)}.screen.signal .tiles .tile:not(.wide):nth-child(2n){padding-left:var(--space-4)}.screen.signal .tiles .tile.photo-tile{margin:0 calc(var(--space-5) * -1);padding:0;border-bottom:0;min-height:220px}.screen.signal .tiles .idea-tile{border:0;border-bottom:1px solid var(--rule)}.tile-big{font-size:44px}.pill,.quiet-pill,.segmented,.segmented button,.chip,.pill.small{border-radius:4px}.screen.signal .menu-card{background:transparent;border:0;border-top:1px solid var(--rule);border-radius:0}.screen.signal .day-swipe{background:var(--ground)}.screen.signal .ride-card .day-swipe{background:var(--band-ink)}.segmented{background:transparent;box-shadow:inset 0 0 0 1px var(--rule);padding:0}.segmented button[aria-selected=true]{background:var(--ink);color:var(--ground);box-shadow:none}.setup-name{display:inline-flex;align-items:center;gap:10px}.setup-dot{width:8px;height:8px;border-radius:50%;background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-label);flex:none}.setup-dot.ok{background:var(--accent);box-shadow:none}.chat{display:flex;flex-direction:column;gap:14px;padding:4px 0 8px}.chat-day{display:flex;align-items:center;gap:10px;margin:6px 0 2px;font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;font-size:10px;color:var(--ink-label)}.chat-day:before,.chat-day:after{content:"";flex:1;border-top:1px solid var(--rule)}.chat-group{display:flex;flex-direction:column;gap:3px;max-width:84%}.chat-group.me{align-self:flex-end;align-items:flex-end}.chat-group.them{align-self:flex-start;align-items:flex-start}.bubble{padding:9px 13px 10px;border-radius:14px;font:400 15px/21px var(--font-sans);white-space:pre-line;overflow-wrap:anywhere}.me .bubble{background:var(--ink);color:var(--ground);border-bottom-right-radius:3px}.them .bubble{background:var(--fill-quiet);color:var(--ink);border-radius:3px 14px 14px 3px}.them .bubble:first-of-type{border-top-left-radius:14px}.them .bubble:last-of-type{border-bottom-left-radius:3px}.chat-who{display:inline-flex;align-items:center;gap:6px;margin:0 0 3px;font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;font-size:10px;color:var(--ink-label)}.chat-meta{margin-top:2px;font:var(--type-label);letter-spacing:var(--track-label);text-transform:uppercase;font-size:9.5px;color:var(--ink-label)}.coach-mark{width:16px;height:16px;border-radius:3px;background:var(--ink);color:var(--ground);display:inline-grid;place-items:center;font:600 11px/1 var(--font-sans);letter-spacing:0;text-transform:none;padding-bottom:1px}.coach-mark.big{width:36px;height:36px;border-radius:6px;font-size:22px;padding-bottom:3px;flex:none}.chat-title{display:inline-flex;align-items:center;gap:12px;text-align:left}.chat-title>span:last-child{display:flex;flex-direction:column;gap:3px}.chat-open{width:100%;color:inherit;padding-bottom:6px}.chat-actions{display:flex;flex-direction:column;gap:4px;margin-top:5px;width:100%;min-width:260px}.chat-act{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:0 14px;border-radius:4px;background:var(--ink);color:var(--ground);text-align:left;font:500 14px/18px var(--font-sans)}.chat-act svg{flex:none;transition:transform .16s ease}.chat-act:hover svg{transform:translate(3px)}.chat-act:active{transform:scale(.985)}.chat-done{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:4px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink-label);font:400 14px/18px var(--font-sans)}.typing-b{padding:11px 14px}.arrive .bubble,.arrive .chat-actions{animation:arrive .36s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--k, 0) * .42s)}@keyframes arrive{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.arrive .bubble,.arrive .chat-actions{animation:none}}.chat-peek{position:relative;max-height:340px;overflow:hidden;cursor:pointer;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 64px);mask-image:linear-gradient(to bottom,transparent 0,#000 64px);display:flex;flex-direction:column;justify-content:flex-end}.ask-card{gap:var(--space-3)}.coach-card.new .chat-group{max-width:100%}.link-quiet{color:var(--ink)}.chips.quick{margin:0 calc(var(--space-5) * -1);padding:2px var(--space-5);scroll-padding-inline:var(--space-5);gap:6px}.chips.quick .chip{min-height:34px;padding:6px 11px;background:transparent;box-shadow:inset 0 0 0 1px var(--rule);border:0;border-radius:4px;font:400 13px/18px var(--font-sans);color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--ink) 35%,transparent);text-underline-offset:3px}.composer{align-items:stretch;gap:0;background:transparent;border-radius:4px;box-shadow:inset 0 0 0 1px var(--rule);padding:0;overflow:hidden;transition:box-shadow .16s ease}.composer:focus-within{box-shadow:inset 0 0 0 1px var(--ink)}.composer textarea{min-height:46px;padding:12px 12px 12px 14px;font:400 16px/22px var(--font-sans)}.composer input{font:400 16px/22px var(--font-sans);padding:12px 14px;min-height:46px}.send{width:46px;height:auto;min-height:46px;border-radius:0;background:var(--ink);color:var(--ground);align-self:stretch}.send[disabled]{background:var(--fill-quiet);color:var(--ink-label);box-shadow:none}.send:not([disabled]):active{opacity:.8}.sheet.tall{top:calc(var(--vvt, 0px) + 48px);bottom:auto;height:calc(var(--vvh, 100svh) - 48px);max-height:none;overflow:hidden;display:flex;flex-direction:column;padding-bottom:0;border-radius:14px 14px 0 0}.sheet.tall .sheet-body,.convo{flex:1;min-height:0;display:flex;flex-direction:column}.convo-head{padding-bottom:12px;border-bottom:1px solid var(--rule);margin:0 calc(var(--space-5) * -1);padding-left:var(--space-5);padding-right:var(--space-5)}.convo-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:0 calc(var(--space-5) * -1);padding:8px var(--space-5);border-bottom:1px solid var(--rule)}.convo-foot{display:flex;flex-direction:column;gap:10px;padding:12px 0 calc(env(safe-area-inset-bottom,0px) + 12px)}.convo .toast{position:absolute;left:var(--space-5);right:var(--space-5);bottom:calc(env(safe-area-inset-bottom,0px) + 120px)}.segmented,.appearance{display:grid;background:transparent;border-radius:4px;padding:0;gap:0;overflow:hidden;box-shadow:inset 0 0 0 1px var(--rule)}.segmented button,.appearance button{min-height:44px!important;border-radius:0;background:transparent;box-shadow:none;color:var(--ink-soft);font:500 14px/1 var(--font-sans)!important;letter-spacing:-.005em;transition:background-color .16s ease,color .16s ease}.segmented button+button,.appearance button+button{box-shadow:inset 1px 0 0 var(--rule)}.segmented button:hover{color:var(--ink)}.segmented button[aria-selected=true],.segmented button[aria-checked=true],.appearance button[aria-checked=true]{background:var(--ink);color:var(--ground);box-shadow:none}.ride-card .segmented button[aria-selected=true]{color:var(--band-ink)}.segmented button:active{background:color-mix(in srgb,var(--ink) 8%,transparent)}.segmented.text{display:flex;gap:18px;box-shadow:none;border-radius:0;overflow:visible}.segmented.text button{flex:none;padding:0;min-height:44px!important;color:var(--ink-label);font:500 16px/1 var(--font-sans)!important;letter-spacing:-.01em;box-shadow:none!important;background:transparent!important}.segmented.text button[aria-selected=true]{color:var(--ink)}.toast{border-radius:4px}.coach-tabs{margin-bottom:var(--space-4)}.coach-style .note-title{margin-top:6px}.brief{display:flex;flex-direction:column;gap:4px;font:400 15px/21px var(--font-sans);color:var(--ink);padding-bottom:4px}.purpose{display:flex;flex-direction:column;gap:4px;margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--rule)}.purpose .label{color:var(--accent-ink)}.purpose-target{font:500 17px/23px var(--font-sans);letter-spacing:-.01em}.band-ready{display:flex;flex-direction:column;gap:10px;margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--rule)}.band-ready .brief{color:var(--ink)}.spark-peak{stroke:var(--ink-label);stroke-width:1;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.screen.signal .ride-card.brief{padding:0}.brief-map{margin:0}.brief-map .route-map.tiled{--rm-halo: #0b0d10;border-radius:0;background:#161514}.brief-map .route-map .rm-wash{fill:#16151440}.brief-map .route-map .rm-attr{fill:#f4f4f266}.brief-body{padding:18px var(--space-5) var(--space-5);display:flex;flex-direction:column}.brief-name{margin-top:10px;font:500 30px/33px var(--font-sans);letter-spacing:-.03em}.brief-meta{margin-top:6px;font:400 15px/20px var(--font-sans);color:var(--ink-soft);font-variant-numeric:tabular-nums}.ride-card.brief .purpose{margin-top:16px;padding-top:14px}.ride-card.brief .purpose-target{font-size:18px;line-height:24px}.brief-grid{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.brief-grid>div{padding:10px 0;display:flex;flex-direction:column;gap:4px;min-width:0}.brief-grid>div+div{border-left:1px solid var(--rule);padding-left:10px}.brief-grid .label{font-size:10px}.brief-n{font:500 20px/24px var(--font-sans);letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}.brief-n small{font-size:12px;color:var(--ink-label);letter-spacing:0}.brief-actions{margin-top:16px;display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:8px}.brief-go{height:48px;border-radius:4px;background:var(--accent-ink);color:var(--band-ink);display:flex;align-items:center;justify-content:space-between;padding:0 16px;font:500 15px var(--font-sans)}.brief-go-r{display:inline-flex;align-items:center;gap:10px;font-size:13px}.brief-go-r>span{opacity:.72}.brief-go:active{transform:scale(.985)}.brief-edit{height:48px;border-radius:4px;background:var(--fill-quiet);color:var(--ink);display:grid;place-items:center}.brief-links{margin-top:6px;display:flex;flex-wrap:wrap;gap:0 20px}.brief-links .text-btn{min-height:40px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px;padding:0}.edit-sheet{display:flex;flex-direction:column;gap:14px;padding-bottom:var(--space-4)}.editor.compact .hero-n{font-size:44px;line-height:48px;letter-spacing:-.04em}.editor.compact .editor-time{gap:10px}.ready-sheet{display:flex;flex-direction:column;gap:10px;padding-bottom:var(--space-4)}.ready-group{display:flex;flex-direction:column;margin-top:6px}.ready-group>.row-between{padding:10px 0 2px;border-top:1px solid var(--rule)}.label.quiet{text-transform:none;letter-spacing:0;font-size:12px}.ready-row{display:flex;align-items:center;gap:12px;min-height:48px;border-bottom:1px solid var(--hairline);text-align:left;font:400 15px/20px var(--font-sans);color:var(--ink)}.ready-row .box{width:20px;height:20px;border-radius:3px;box-shadow:inset 0 0 0 1.5px var(--ink-label);display:grid;place-items:center;flex:none;color:var(--on-accent)}.ready-row.on .box{background:var(--accent);box-shadow:none}.ready-row.on>span:last-child{color:var(--ink-label)}.dock-block{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;padding:0 18px;border-radius:4px;background:var(--ink);color:var(--ground);font:500 15px var(--font-sans);box-shadow:0 10px 28px #0000002e}.dock-block.quiet{background:var(--glass);color:var(--ink);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:0 10px 28px #0000001f,inset 0 0 0 1px var(--hairline)}.dock{border-radius:14px}.chips:not(.quick) .chip,.feel .chip{background:transparent;box-shadow:inset 0 0 0 1px var(--rule);border:0;border-radius:4px;color:var(--ink)}.chips:not(.quick) .chip.on,.feel .chip.on{background:var(--ink);color:var(--ground);box-shadow:none}.chips:not(.quick) .chip.on small{color:inherit;opacity:.7}.feel,.chips.feel-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--rule)}.feel .chip,.chips.feel-strip .chip{border-radius:0;box-shadow:none;justify-content:center;min-height:44px}.feel .chip+.chip,.chips.feel-strip .chip+.chip{box-shadow:inset 1px 0 0 var(--rule)}.chips.feel-strip .chip.on{box-shadow:none}.stepper-ctl{background:transparent;box-shadow:inset 0 0 0 1px var(--rule);border-radius:4px}.pill.ghost,.quiet-pill{background:transparent;color:var(--ink);font-weight:500;box-shadow:inset 0 0 0 1px var(--rule)}.label.sec{padding:0}.rm-line,.route-map.tiled .rm-line{stroke:var(--accent-ink)}.rm-start{fill:var(--ground)}.brief-map .route-map .rm-line{stroke:#f0d683}.route-map.thumb,.ride-row img{border-radius:0!important}.bike-pick{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;text-align:left;color:inherit}.bike-pick .note-title{flex:1;min-width:0}.bike-pick .radio{width:18px;height:18px;border-radius:9px;box-shadow:inset 0 0 0 1.5px var(--ink-label);flex:none}.bike-pick.on .radio{box-shadow:inset 0 0 0 6px var(--ink)}.bike-pick.on .label{color:var(--ink)}.bike-meta{padding-left:30px}.days-line{gap:0;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--rule)}.days-line button{background:transparent;border:0;border-radius:0;box-shadow:none}.days-line button+button{box-shadow:inset 1px 0 0 var(--rule)}.days-line button.on{background:var(--ink);color:var(--ground);box-shadow:none}.days-line button.on .label{color:var(--ground);opacity:.75}.screen.signal .menu-row{padding-left:0;padding-right:0}a.brief-go{text-decoration:none;flex:1}.brief-actions>.brief-go:only-child{grid-column:1 / -1}.chips.feel-strip{margin:0;padding:0;overflow:hidden}.chips.feel-strip .chip{justify-content:center;text-align:center;padding:0 4px}.days7{gap:0;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--rule)}.days7 button{border-radius:0;background:transparent;font-weight:500;color:var(--ink-soft)}.days7 button+button{box-shadow:inset 1px 0 0 var(--rule)}.days7 button.on{background:var(--ink);color:var(--ground);box-shadow:none}:root{--fast: .12s;--quick: .16s;--base: .2s;--drawer: .28s;--draw: .6s;--ambient: 12s;--settle: cubic-bezier(.2, .8, .2, 1);--leave: cubic-bezier(.4, 0, 1, 1);--stagger: 40ms}.screen{animation:screen-in var(--base) var(--settle) 60ms both}@keyframes screen-in{0%{opacity:0}to{opacity:1}}.scrim{opacity:0;transition:opacity var(--drawer) var(--leave);pointer-events:none}.scrim[data-open=true]{opacity:1;transition-timing-function:var(--settle);pointer-events:auto}.drawer{transform:translate(calc(-100% - 2px));visibility:hidden;transition:transform var(--drawer) var(--leave),visibility 0s linear var(--drawer)}.drawer[data-open=true]{transform:translate(0);visibility:visible;transition:transform var(--drawer) var(--settle),visibility 0s linear 0s}.sublevel{transform:translate(100%);visibility:hidden;transition:transform var(--drawer) var(--leave),visibility 0s linear var(--drawer)}.sublevel[data-open=true]{transform:none;visibility:visible;transition:transform var(--drawer) var(--settle),visibility 0s linear 0s}.drawer .menu-item{opacity:0;transform:translateY(6px);transition:opacity var(--base) var(--settle),transform var(--base) var(--settle)}.drawer[data-open=true] .menu-item{opacity:1;transform:none;transition-delay:calc(80ms + var(--i, 0) * var(--stagger))}.pressable .arrow{transform:translate(0);transition:transform var(--quick) var(--settle)}.pressable:active .arrow{transform:translate(4px)}.list:has(.pressable:active)>.pressable:not(:active){opacity:.55;transition:opacity var(--quick) var(--settle)}.pressable:active .label{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.tick{transition:background-color var(--fast) var(--settle)}.bar{transform:translateY(0);transition:transform var(--drawer) var(--settle)}.bar[data-hidden=true]{transform:translateY(100%);transition-timing-function:var(--leave)}.strip-line{stroke-dasharray:400;stroke-dashoffset:400;animation:strip-draw var(--draw) var(--settle) forwards}.strip-dark{opacity:0;animation:fade-in var(--quick) var(--settle) var(--draw) forwards}[data-drawn=true] .strip-line{animation:none;stroke-dashoffset:0}[data-drawn=true] .strip-dark{animation:none;opacity:1}@keyframes strip-draw{to{stroke-dashoffset:0}}@keyframes fade-in{to{opacity:1}}.photo img{animation:pan var(--ambient) linear infinite alternate}.photo[data-still=false] img{animation-play-state:paused}@keyframes pan{0%{transform:scale(1.06) translate(-1.5%)}to{transform:scale(1.06) translate(1.5%)}}@media (prefers-reduced-motion: reduce){:root{--fast: 0ms;--quick: 0ms;--base: 0ms;--drawer: 0ms;--draw: 0ms;--stagger: 0ms}.photo img,.screen,.strip-line,.strip-dark{animation:none!important}.strip-line{stroke-dashoffset:0}.strip-dark{opacity:1}}
