:root{--ambient-1:rgba(107,122,90,.05);--ambient-2:rgba(74,95,110,.03);--pill-primary-border:var(--moss)}[data-theme=dark]{--ambient-1:hsla(87,18%,54%,.04);--ambient-2:rgba(107,131,152,.03);--pill-primary-border:hsla(87,18%,54%,.35)}.tv-page{--t-paint:1200ms;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11";min-height:100vh;overflow-x:hidden;transition:background-color var(--t-theme) var(--ease),color var(--t-theme) var(--ease);opacity:0;animation:tvPageFadeIn .7s var(--ease) forwards}@keyframes tvPageFadeIn{0%{opacity:0}to{opacity:1}}.tv-page:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0,var(--ambient-1),transparent 60%),radial-gradient(ellipse 60% 40% at 100% 100%,var(--ambient-2),transparent 60%);pointer-events:none;z-index:0;transition:opacity var(--t-theme) var(--ease)}.tv-page .nut-row .track,.tv-page .panel,.tv-page .stat-tile,.tv-page .theme-toggle,.tv-page .training-pill,.tv-page .tv-range button{transition:background-color var(--t-theme) var(--ease),border-color var(--t-theme) var(--ease),color var(--t-theme) var(--ease)}.tv-shell{position:relative;z-index:1;padding:56px 72px;min-height:100vh;display:flex;flex-direction:column}.tv-page .top{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;grid-gap:32px;gap:32px;margin-bottom:56px}.tv-page .top>.brand{justify-self:start}.tv-page .top>.tv-range{justify-self:center;margin-top:6px}.tv-page .top>.clock-area{justify-self:end}.tv-page .brand .wordmark{font-family:var(--display);font-weight:360;font-size:32px;letter-spacing:-.045em;font-variation-settings:"opsz" 144,"SOFT" 60;display:inline-flex;align-items:baseline;color:var(--text);line-height:1}.tv-page .brand .wordmark .dot{width:8px;height:8px;background:var(--moss);border-radius:50%;margin-left:4px;margin-bottom:6px;flex-shrink:0}.tv-page .brand .tagline{font-family:var(--mono);font-size:10px;color:var(--text-quiet);text-transform:uppercase;letter-spacing:.18em;margin-top:14px;display:flex;align-items:center;gap:12px}.tv-page .brand .tagline .pulse{width:6px;height:6px;background:var(--moss);border-radius:50%;flex-shrink:0;animation:tvPulse 2.5s var(--ease) infinite}@keyframes tvPulse{0%{box-shadow:0 0 0 0 var(--moss-glow)}70%{box-shadow:0 0 0 10px transparent}to{box-shadow:0 0 0 0 transparent}}.tv-page .tv-range{display:flex;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;overflow:hidden}.tv-page .tv-range button{background:transparent;border:none;padding:9px 18px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);cursor:pointer;border-right:1px solid var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;position:relative;overflow:hidden}.tv-page .tv-range button:last-child{border-right:none}.tv-page .tv-range button:hover{color:var(--text)}.tv-page .tv-range button.active{background:var(--moss-soft);color:var(--moss-deep)}[data-theme=dark] .tv-page .tv-range button.active{color:var(--moss)}.tv-page .tv-range button.active:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--moss);animation:tvRangeProgress var(--t-cycle) linear forwards}@keyframes tvRangeProgress{0%{width:0}to{width:100%}}.tv-page .clock-area{display:flex;align-items:flex-start;gap:20px}.tv-page .clock{text-align:right}.tv-page .clock .time{font-family:var(--display);font-weight:320;font-size:96px;line-height:.9;letter-spacing:-.045em;font-variation-settings:"opsz" 144,"SOFT" 65;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-page .clock .date{font-family:var(--mono);font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.2em;margin-top:14px}.tv-page .theme-toggle{width:38px;height:38px;border-radius:50%;background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:6px}.tv-page .theme-toggle:hover{color:var(--text);border-color:var(--border-strong)}.tv-page .theme-toggle svg{width:16px;height:16px}.tv-page .theme-toggle .t-icon{display:none}[data-theme=dark] .tv-page .theme-toggle .t-sun,[data-theme=light] .tv-page .theme-toggle .t-moon{display:block}.tv-page .stat-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:14px;gap:14px;margin-bottom:36px}.tv-page .stat-tile{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:28px 30px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between}.tv-page .stat-tile .label{font-size:10px;letter-spacing:.2em;margin-bottom:4px}.tv-page .stat-tile .label,.tv-page .stat-tile .sub{font-family:var(--mono);text-transform:uppercase;color:var(--text-quiet)}.tv-page .stat-tile .sub{font-size:9px;letter-spacing:.16em;opacity:.7}.tv-page .stat-tile .value{font-family:var(--display);font-weight:360;font-size:64px;line-height:1;letter-spacing:-.035em;font-variation-settings:"opsz" 144,"SOFT" 55;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:14px 0}.tv-page .stat-tile .value.empty{font-style:italic;color:var(--text-faint)}.tv-page .stat-tile .value .unit{font-family:var(--sans);font-size:16px;color:var(--text-muted);margin-left:4px;font-weight:400;letter-spacing:0}.tv-page .stat-tile .footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.tv-page .stat-tile .status{font-family:var(--mono);font-size:10px;color:var(--moss-deep);text-transform:uppercase;letter-spacing:.14em;display:flex;align-items:center;gap:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[data-theme=dark] .tv-page .stat-tile .status{color:var(--moss)}.tv-page .stat-tile .status.down{color:var(--clay-deep)}[data-theme=dark] .tv-page .stat-tile .status.down{color:var(--clay)}.tv-page .stat-tile .status.flat{color:var(--text-muted)}.tv-page .stat-tile .status.no-data{color:var(--text-faint)}.tv-page .stat-tile .spark{flex-shrink:0;opacity:.75}.tv-page .bottom-grid{display:grid;grid-template-columns:.85fr 1.25fr 1fr;grid-gap:14px;gap:14px;flex:1 1;min-height:280px}.tv-page .panel{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:32px 36px;display:flex;flex-direction:column}.tv-page .panel .head{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--text-quiet);margin-bottom:4px;display:flex;align-items:center;gap:14px}.tv-page .panel .head:after{content:"";flex:1 1;height:1px;background:var(--border)}.tv-page .panel .sub{font-family:var(--mono);font-size:9px;color:var(--text-quiet);opacity:.75;text-transform:uppercase;letter-spacing:.16em;margin-bottom:24px}.tv-page .km-hero{flex:1 1;display:flex;flex-direction:column;justify-content:center}.tv-page .km-hero .num{font-family:var(--display);font-weight:320;font-size:144px;line-height:.85;letter-spacing:-.05em;font-variation-settings:"opsz" 144,"SOFT" 70;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-page .km-hero .unit-line{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted);margin-top:14px}.tv-page .km-hero .ctx{font-family:var(--display);font-style:italic;font-size:17px;color:var(--text-muted);margin-top:18px;font-weight:360;letter-spacing:-.005em;max-width:22ch;line-height:1.4}.tv-page .nut-row{display:grid;grid-template-columns:80px 1fr 160px;grid-gap:18px;gap:18px;align-items:center;padding:16px 0;border-bottom:1px dashed var(--border)}.tv-page .nut-row:last-child{border-bottom:none}.tv-page .nut-row .nut-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted)}.tv-page .nut-row .nut-bar{display:flex;flex-direction:column;gap:7px}.tv-page .nut-row .track{height:6px;background:var(--bg-elevated);border-radius:3px;position:relative;overflow:hidden}.tv-page .nut-row .track .fill{position:absolute;top:0;left:0;height:100%;border-radius:3px;transition:width .7s var(--ease)}.tv-page .nut-row .track .fill.moss{background:var(--moss)}.tv-page .nut-row .track .fill.clay{background:var(--clay)}.tv-page .nut-row .track .fill.slate{background:var(--slate)}.tv-page .nut-row .bar-foot{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px}.tv-page .nut-row .bar-foot .target-pct{color:var(--moss-deep)}[data-theme=dark] .tv-page .nut-row .bar-foot .target-pct{color:var(--moss)}.tv-page .nut-row .bar-foot .target-pct.no-data{color:var(--text-faint)}.tv-page .nut-row .bar-foot .dot{width:3px;height:3px;border-radius:50%;background:var(--text-faint)}.tv-page .nut-row .nut-val{text-align:right;font-family:var(--display);font-weight:400;font-size:24px;letter-spacing:-.02em;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-page .nut-row .nut-val .unit{font-family:var(--sans);font-size:11px;color:var(--text-quiet);margin-left:3px;font-weight:400;letter-spacing:0}.tv-page .nut-row .nut-val .daily{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-quiet);margin-top:4px;font-weight:400}.tv-page .training-list{display:flex;flex-direction:column;gap:10px;flex:1 1;justify-content:center}.tv-page .training-pill{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--bg-paper);border:1px solid var(--border);border-radius:6px}.tv-page .training-pill .pip{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tv-page .training-pill .pip.run{background:var(--moss)}.tv-page .training-pill .pip.strength{background:var(--clay)}.tv-page .training-pill .pip.recovery{background:var(--slate)}.tv-page .training-pill .name{font-family:var(--display);font-size:19px;font-weight:400;letter-spacing:-.015em;color:var(--text);flex:1 1}.tv-page .training-pill .meta{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-page .training-pill.primary{background:var(--moss-soft);border-color:var(--pill-primary-border)}.tv-page .rest-day{font-family:var(--display);font-style:italic;font-size:20px;font-weight:360;letter-spacing:-.015em;color:var(--text-muted);text-align:center;flex:1 1;display:flex;align-items:center;justify-content:center}.tv-page .cycleable{transition:opacity var(--t-fade) var(--ease),transform var(--t-fade) var(--ease)}.tv-page.data-changing .cycleable{opacity:.15;transform:translateY(-4px)}.tv-page .r{opacity:0;transform:translateY(10px);animation:tvRise var(--t-paint) var(--ease) forwards}.tv-page .r-1{animation-delay:80ms}.tv-page .r-2{animation-delay:.2s}.tv-page .r-3{animation-delay:.32s}.tv-page .r-4{animation-delay:.44s}.tv-page .r-5{animation-delay:.56s}.tv-page .r-6{animation-delay:.68s}.tv-page .r-7{animation-delay:.8s}.tv-page .r-8{animation-delay:.92s}.tv-page .r-9{animation-delay:1.04s}.tv-page .r-10{animation-delay:1.16s}@keyframes tvRise{to{opacity:1;transform:translateY(0)}}.tv-exit-hint{position:fixed;bottom:24px;right:24px;font-family:var(--mono);font-size:9px;color:var(--text-quiet);text-transform:uppercase;letter-spacing:.18em;opacity:.5;z-index:10;background:none;border:none;cursor:pointer;display:flex;align-items:center}.tv-exit-hint:hover{opacity:1}.tv-exit-hint kbd{display:inline-block;padding:2px 6px;border:1px solid var(--border);border-radius:3px;margin-right:6px;font-family:var(--mono);font-size:9px;background:var(--bg-card);color:var(--text-muted)}@media (max-width:1500px){.tv-shell{padding:48px 56px}.tv-page .clock .time{font-size:80px}.tv-page .stat-tile .value{font-size:54px}.tv-page .km-hero .num{font-size:120px}}@media (max-width:1300px){.tv-page .top{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.tv-page .top>.tv-range{grid-column:1/-1;order:2;justify-self:start;margin-top:24px}}@media (max-width:1200px){.tv-page .stat-grid{grid-template-columns:repeat(4,1fr)}.tv-page .bottom-grid{grid-template-columns:1fr 1fr}.tv-page .bottom-grid .panel:nth-child(3){grid-column:1/-1}}@media (max-width:800px){.tv-shell{padding:32px}.tv-page .top{grid-template-columns:1fr;grid-template-rows:auto auto auto}.tv-page .top>.brand,.tv-page .top>.clock-area,.tv-page .top>.tv-range{justify-self:start}.tv-page .stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.tv-page .bottom-grid{grid-template-columns:1fr}.tv-page .clock .time{font-size:64px}.tv-page .stat-tile{padding:20px;min-height:140px}.tv-page .stat-tile .value{font-size:40px}.tv-page .km-hero .num{font-size:88px}.tv-page .tv-range button{padding:8px 12px;font-size:10px}}.tv-page .tv-todos{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.tv-page .tv-todos-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet);margin-bottom:4px}.tv-page .tv-todo-row{display:flex;align-items:center;gap:10px}.tv-page .tv-todo-check{width:14px;height:14px;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:3px;display:inline-block}.tv-page .tv-todo-title{font-size:13px;color:var(--text-muted);line-height:1.4}.tv-page .tv-todo-row.completed .tv-todo-title{text-decoration:line-through;color:var(--text-faint)}.tv-page .tv-todo-row.completed .tv-todo-check{background:var(--border-strong);border-color:var(--border-strong)}.tv-page .tv-todos-empty{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint)}.tv-page .tv-cal-target{margin-top:16px;padding-top:16px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:6px}.tv-page .nut-row:has(+.tv-cal-target){border-bottom:none}.tv-page .tv-cal-mode{font-size:13px;letter-spacing:.16em;color:var(--text)}.tv-page .tv-cal-delta,.tv-page .tv-cal-mode{font-family:var(--mono);text-transform:uppercase}.tv-page .tv-cal-delta{font-size:11px;letter-spacing:.14em;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tv-page .tv-cal-delta.no-data{color:var(--text-faint)}.tv-page .tv-cal-status{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--moss-deep)}[data-theme=dark] .tv-page .tv-cal-status{color:var(--moss)}.tv-page .tv-cal-status.off{color:var(--clay-deep)}[data-theme=dark] .tv-page .tv-cal-status.off{color:var(--clay)}:root{--annot-pb-border:var(--moss-soft);--annot-race-border:var(--moss-soft);--annot-race-bg:var(--moss-soft);--annot-illness-border:var(--clay-soft)}[data-theme=dark]{--annot-pb-border:hsla(87,18%,54%,.4);--annot-race-border:hsla(87,18%,54%,.4);--annot-race-bg:hsla(87,18%,54%,.15);--annot-illness-border:rgba(201,126,98,.4)}[data-cadence] .annot-list,[data-cadence] .annot-row,[data-cadence] .chart-tab,[data-cadence] .control-group,[data-cadence] .filter-pill,[data-cadence] .hero-chart-card,[data-cadence] .stat-tile{transition:background-color var(--t-theme) var(--ease),border-color var(--t-theme) var(--ease),color var(--t-theme) var(--ease)}[data-cadence] .charts-page .page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px;gap:24px}[data-cadence] .charts-page .page-head .eyebrow{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.2em;color:var(--text-quiet);margin-bottom:10px}[data-cadence] .charts-page .page-head h1{font-family:var(--display);font-weight:360;font-size:56px;letter-spacing:-.04em;font-variation-settings:"opsz" 144,"SOFT" 55;line-height:1;margin-bottom:10px;color:var(--text)}[data-cadence] .charts-page .page-head .sub{font-family:var(--display);font-style:italic;font-weight:360;font-size:17px;color:var(--text-muted);letter-spacing:-.005em}[data-cadence] .charts-page .page-head .meta{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet);display:flex;align-items:center;gap:12px;padding-bottom:4px}[data-cadence] .chart-tabs{display:flex;gap:2px;margin-bottom:18px;border-bottom:1px solid var(--border);overflow-x:auto}[data-cadence] .chart-tab{background:transparent;border:none;padding:12px 18px;cursor:pointer;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);white-space:nowrap;position:relative;display:inline-flex;align-items:center;gap:8px}[data-cadence] .chart-tab.active,[data-cadence] .chart-tab:hover{color:var(--text)}[data-cadence] .chart-tab.active:after{content:"";position:absolute;bottom:-1px;left:18px;right:18px;height:2px;background:var(--moss)}[data-cadence] .chart-tab .pip{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}[data-cadence] .chart-tab .pip.body{background:var(--moss)}[data-cadence] .chart-tab .pip.sleep{background:var(--slate)}[data-cadence] .chart-tab .pip.intake{background:var(--sand)}[data-cadence] .chart-tab .pip.lift{background:var(--clay)}[data-cadence] .hero-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);padding:32px 56px 28px;margin-bottom:20px}[data-cadence] .chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:28px}[data-cadence] .chart-head .left .eyebrow{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.18em;color:var(--text-quiet);margin-bottom:10px}[data-cadence] .chart-head .left .hero-num{font-family:var(--display);font-weight:360;font-size:80px;letter-spacing:-.04em;font-variation-settings:"opsz" 144,"SOFT" 55;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:.9}[data-cadence] .chart-head .left .hero-num .unit{font-family:var(--sans);font-size:18px;color:var(--text-muted);margin-left:6px;font-weight:400;letter-spacing:0}[data-cadence] .chart-head .left .hero-meta{margin-top:14px;font-family:var(--mono);font-size:var(--type-label);text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);display:flex;align-items:center;gap:12px;flex-wrap:wrap}[data-cadence] .chart-head .left .hero-meta .delta.up{color:var(--moss-deep)}[data-cadence] .chart-head .left .hero-meta .delta.down{color:var(--clay-deep)}[data-theme=dark] [data-cadence] .chart-head .left .hero-meta .delta.up{color:var(--moss)}[data-theme=dark] [data-cadence] .chart-head .left .hero-meta .delta.down{color:var(--clay)}[data-cadence] .chart-head .left .hero-meta .awaiting{font-family:var(--display);font-style:italic;font-weight:360;font-size:15px;color:var(--text-muted);letter-spacing:-.005em;text-transform:none}[data-cadence] .chart-head .right{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0}[data-cadence] .control-group{display:inline-flex;align-items:center;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px;gap:2px}[data-cadence] .control-group .gl{font-size:9px;letter-spacing:.18em;color:var(--text-quiet);padding:0 8px}[data-cadence] .control-group .gl,[data-cadence] .filter-pill{font-family:var(--mono);text-transform:uppercase;white-space:nowrap}[data-cadence] .filter-pill{background:transparent;border:none;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--type-meta);letter-spacing:.14em;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[data-cadence] .filter-pill:hover{color:var(--text)}[data-cadence] .filter-pill.active{background:var(--text);color:var(--bg)}[data-theme=dark] [data-cadence] .filter-pill.active{background:var(--moss);color:var(--on-moss)}[data-cadence] .chart-canvas{width:100%;margin-bottom:18px;position:relative}[data-cadence] .chart-canvas svg{width:100%;height:auto;display:block;overflow:visible}[data-cadence] .chart-canvas--placeholder{height:340px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:var(--radius-md)}[data-cadence] .chart-placeholder-note{font-family:var(--display);font-style:italic;font-weight:360;font-size:15px;color:var(--text-faint);letter-spacing:-.005em}[data-cadence] .chart-canvas .weight-line,[data-cadence] .chart-canvas svg line,[data-cadence] .chart-canvas svg path,[data-cadence] .chart-canvas svg rect,[data-cadence] .chart-canvas svg text{transition:fill var(--t-theme) var(--ease),stroke var(--t-theme) var(--ease)}[data-cadence] .chart-canvas .bar{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);animation:growBar .8s var(--ease) forwards;cursor:pointer;transition:y .4s var(--ease),height .4s var(--ease)}[data-cadence] .chart-canvas .bar:hover{filter:brightness(.85)}[data-theme=dark] [data-cadence] .chart-canvas .bar:hover{filter:brightness(1.2)}[data-cadence] .chart-canvas .bar.current{opacity:.45}[data-cadence] .chart-canvas .bar.low{opacity:.6}[data-cadence] .chart-canvas .bar.deload{opacity:.7}[data-cadence] .chart-canvas .grid-line{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:2 4}[data-cadence] .chart-canvas .baseline{stroke:var(--chart-baseline);stroke-width:1}[data-cadence] .chart-canvas .axis-label{font-family:var(--mono);font-size:10px;fill:var(--text-quiet)}[data-cadence] .chart-canvas .axis-label.x{text-anchor:middle}[data-cadence] .chart-canvas .axis-label.y{text-anchor:end}[data-cadence] .chart-canvas .target-line{stroke:var(--chart-target);stroke-width:1.25;stroke-dasharray:6 4;opacity:.7}[data-cadence] .chart-canvas .target-label{font-family:var(--mono);font-size:10px;fill:var(--chart-target);letter-spacing:.1em;text-transform:uppercase;text-anchor:end}[data-cadence] .chart-canvas .prev-line{stroke:var(--clay);stroke-width:1.5;stroke-dasharray:4 3;fill:none;opacity:.7}[data-cadence] .chart-canvas .annot{opacity:0;animation:fadeIn .6s var(--ease) forwards;animation-delay:1.4s}[data-cadence] .chart-canvas .annot-line{stroke:var(--chart-baseline);stroke-width:1;stroke-dasharray:2 2;opacity:.5}[data-cadence] .chart-canvas .annot-marker{cursor:pointer}[data-cadence] .chart-canvas .annot-marker.pb path{fill:var(--moss)}[data-cadence] .chart-canvas .annot-marker.race path{fill:var(--moss-deep)}[data-cadence] .chart-canvas .annot-marker.deload path{fill:var(--sand)}[data-cadence] .chart-canvas .annot-marker.illness path{fill:var(--clay)}[data-theme=dark] [data-cadence] .chart-canvas .annot-marker.race path{fill:var(--moss);filter:brightness(.85)}[data-cadence] .chart-canvas .chart-empty{font-family:var(--display);font-style:italic;font-weight:360;font-size:15px;fill:var(--text-faint);letter-spacing:-.005em;text-anchor:middle;dominant-baseline:middle}[data-cadence] .chart-tooltip{position:absolute;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;pointer-events:none;z-index:var(--z-dropdown);white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.06);opacity:0;transition:opacity .1s var(--ease)}[data-cadence] .chart-tooltip[data-visible=true]{opacity:1;transition:opacity .12s var(--ease)}[data-cadence] .chart-tooltip .tt-value{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:-.02em;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;display:flex;align-items:baseline;gap:5px;margin-bottom:6px}[data-cadence] .chart-tooltip .tt-unit{letter-spacing:.12em}[data-cadence] .chart-tooltip .tt-unit,[data-cadence] .chart-tooltip .tt-week{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--text-quiet)}[data-cadence] .chart-tooltip .tt-week{letter-spacing:.16em}[data-cadence] .chart-tooltip .tt-delta{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-top:4px}[data-cadence] .filter-pill[data-disabled=true]{color:var(--text-faint);cursor:not-allowed;pointer-events:none}@keyframes growBar{to{transform:scaleY(1)}}@keyframes fadeIn{to{opacity:1}}[data-cadence] .chart-canvas .axis-label.yr{text-anchor:start}[data-cadence] .chart-canvas .weight-line{stroke:var(--sand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:0;animation:fadeIn .6s var(--ease) forwards;animation-delay:.6s}[data-cadence] .chart-legend{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:0 4px 2px;margin-top:-6px}[data-cadence] .legend-item{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-quiet)}[data-cadence] .legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}[data-cadence] .legend-dot--line{border-radius:2px;height:3px}[data-cadence] .chart-tooltip .tt-multi{display:flex;flex-direction:column;gap:5px;margin-bottom:6px}[data-cadence] .chart-tooltip .tt-row{display:flex;align-items:baseline;gap:6px}[data-cadence] .chart-tooltip .tt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;align-self:center}[data-cadence] .chart-tooltip .tt-dot--line{border-radius:1px;height:2px}[data-cadence] .chart-tooltip .tt-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-quiet);min-width:44px}[data-cadence] .chart-tooltip .tt-num{font-family:var(--display);font-weight:400;font-size:15px;letter-spacing:-.01em;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}[data-cadence] .chart-controls-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:16px;border-top:1px solid var(--border);flex-wrap:wrap}[data-cadence] .chart-controls-row .left,[data-cadence] .chart-controls-row .right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}[data-cadence] .chart-foot-meta{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet)}[data-cadence] .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:32px}[data-cadence] .stat-tile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px}[data-cadence] .stat-tile .label{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.18em;color:var(--text-quiet);margin-bottom:8px}[data-cadence] .stat-tile .value{font-family:var(--display);font-weight:400;font-size:36px;letter-spacing:-.025em;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;margin-bottom:6px}[data-cadence] .stat-tile .value .unit{font-family:var(--sans);font-size:13px;color:var(--text-muted);margin-left:4px;font-weight:400;letter-spacing:0}[data-cadence] .stat-tile .ctx{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet)}[data-cadence] .annot-section{margin-top:32px}[data-cadence] .annot-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;padding-left:14px;border-left:2px solid var(--moss)}[data-cadence] .annot-head .title{font-family:var(--display);font-weight:400;font-size:20px;letter-spacing:-.015em;color:var(--text);line-height:1}[data-cadence] .annot-head .meta{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet)}[data-cadence] .annot-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}[data-cadence] .annot-row{display:grid;grid-template-columns:110px 16px 1fr auto;align-items:center;grid-gap:18px;gap:18px;padding:18px 22px;cursor:pointer}[data-cadence] .annot-row+.annot-row{border-top:1px dashed var(--border)}[data-cadence] .annot-row:hover{background:var(--bg-paper)}[data-cadence] .annot-row .date{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[data-cadence] .annot-row .pip{width:10px;height:10px;border-radius:50%;flex-shrink:0}[data-cadence] .annot-row .pip.pb{background:var(--moss)}[data-cadence] .annot-row .pip.race{background:var(--moss-deep)}[data-cadence] .annot-row .pip.deload{background:var(--sand)}[data-cadence] .annot-row .pip.illness{background:var(--clay)}[data-theme=dark] [data-cadence] .annot-row .pip.race{background:var(--moss);filter:brightness(.85)}[data-cadence] .annot-row .body{min-width:0}[data-cadence] .annot-row .body .title{font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:-.015em;color:var(--text);line-height:1.15;margin-bottom:4px}[data-cadence] .annot-row .body .note{font-family:var(--display);font-style:italic;font-size:14px;color:var(--text-muted);letter-spacing:-.005em;line-height:1.4}[data-cadence] .annot-row .kind{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--text-quiet);padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap}[data-cadence] .annot-row .kind.pb{color:var(--moss-deep);border-color:var(--annot-pb-border)}[data-cadence] .annot-row .kind.race{color:var(--moss-deep);border-color:var(--annot-race-border);background:var(--annot-race-bg)}[data-cadence] .annot-row .kind.deload{color:var(--sand);border-color:var(--sand)}[data-cadence] .annot-row .kind.illness{color:var(--clay-deep);border-color:var(--annot-illness-border)}[data-theme=dark] [data-cadence] .annot-row .kind.pb,[data-theme=dark] [data-cadence] .annot-row .kind.race{color:var(--moss)}[data-theme=dark] [data-cadence] .annot-row .kind.illness{color:var(--clay)}[data-cadence] .annot-empty{padding:32px 22px;font-family:var(--display);font-style:italic;font-weight:360;font-size:15px;color:var(--text-muted);letter-spacing:-.005em}[data-cadence] .add-annot{display:flex;align-items:center;gap:8px;padding:14px 22px;background:transparent;border:none;border-top:1px dashed var(--border);width:100%;cursor:pointer;color:var(--text-muted);font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.18em;justify-content:center}[data-cadence] .add-annot:hover{background:var(--bg-paper);color:var(--text)}[data-cadence] .add-annot svg{width:12px;height:12px}[data-cadence] .btn-annot-delete{background:transparent;border:none;cursor:pointer;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.14em;color:var(--clay-deep);padding:6px 0}[data-cadence] .btn-annot-delete:hover,[data-theme=dark] [data-cadence] .btn-annot-delete{color:var(--clay)}[data-cadence] .annot-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}[data-cadence] .annot-field:last-child{margin-bottom:0}[data-cadence] .annot-field label{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet)}[data-cadence] .annot-field-input,[data-cadence] .annot-field-textarea{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px;font-family:var(--sans);font-size:var(--type-body-sm);color:var(--text);outline:none;width:100%;transition:border-color var(--t-ui) var(--ease),box-shadow var(--t-ui) var(--ease)}[data-cadence] .annot-field-input:focus,[data-cadence] .annot-field-textarea:focus{border-color:var(--moss);box-shadow:0 0 0 2px var(--moss-glow)}[data-cadence] .annot-field-textarea{min-height:72px;resize:vertical;line-height:1.5}[data-cadence] .annot-date-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}[data-cadence] .annot-kind-row{display:flex;gap:6px}[data-cadence] .annot-kind-row .filter-pill{flex:1 1;text-align:center;padding:7px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;cursor:pointer}[data-cadence] .annot-kind-row .filter-pill.active{background:var(--text);color:var(--bg);border-color:var(--text)}[data-theme=dark] [data-cadence] .annot-kind-row .filter-pill.active{background:var(--moss);color:var(--on-moss);border-color:var(--moss)}[data-cadence] .annot-pb-body{display:flex;flex-direction:column;gap:6px}[data-cadence] .annot-pb-body .pb-title{font-family:var(--display);font-weight:400;font-size:18px;letter-spacing:-.015em;color:var(--text);line-height:1.2}[data-cadence] .annot-pb-body .pb-date{font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet)}[data-cadence] .annot-pb-body .pb-note{font-size:14px;line-height:1.45;margin-top:4px}[data-cadence] .annot-pb-body .pb-note,[data-cadence] .lift-empty{font-family:var(--display);font-style:italic;color:var(--text-muted);letter-spacing:-.005em}[data-cadence] .lift-empty{display:flex;align-items:center;justify-content:center;min-height:260px;font-weight:360;font-size:17px;text-align:center;padding:48px 32px}@media (max-width:1200px){[data-cadence] .stats-grid{grid-template-columns:repeat(2,1fr)}[data-cadence] .chart-head{flex-direction:column;align-items:stretch}[data-cadence] .chart-head .right{align-items:flex-start;flex-direction:row;flex-wrap:wrap}[data-cadence] .chart-head .left .hero-num{font-size:64px}}@media (max-width:800px){[data-cadence] .stats-grid{grid-template-columns:1fr}[data-cadence] .annot-row{grid-template-columns:1fr;gap:8px}[data-cadence] .annot-row .pip{width:8px;height:8px}[data-cadence] .annot-row .kind{justify-self:start}}.onboarding-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-10) var(--space-6) var(--space-10);overflow-y:auto;position:relative;font-size:var(--type-body);line-height:1.5;font-feature-settings:"ss01","cv11";opacity:0;animation:obFadeIn .5s var(--ease) forwards}.ob-ambient{position:fixed;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0,rgba(107,122,90,.06),transparent 70%),radial-gradient(ellipse 80% 50% at 50% 100%,rgba(74,95,110,.03),transparent 70%);pointer-events:none;z-index:0}[data-theme=dark] .ob-ambient{background:radial-gradient(ellipse 60% 50% at 50% 0,hsla(87,18%,54%,.06),transparent 70%),radial-gradient(ellipse 80% 50% at 50% 100%,rgba(107,131,152,.04),transparent 70%)}.onboarding-shell{width:100%;max-width:480px;position:relative;z-index:1}.onboarding-wordmark{font-family:var(--display);font-weight:360;font-size:28px;letter-spacing:-.045em;font-variation-settings:"opsz" 144,"SOFT" 60;color:var(--text);display:inline-flex;align-items:baseline;line-height:1;margin-bottom:var(--space-8)}.onboarding-wordmark .dot{width:5px;height:5px;background:var(--moss);border-radius:50%;margin-left:3px;margin-bottom:4px}.ob-dots{display:flex;gap:6px;margin-bottom:var(--space-7)}.ob-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background-color var(--t-ui) var(--ease)}.ob-dot--active{background:var(--moss)}.ob-dot--done{background:var(--moss-soft)}.ob-step{animation:obStepIn .28s var(--ease) forwards}.ob-title{font-family:var(--display);font-weight:380;font-size:var(--type-h3);letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 60;color:var(--text);margin:0 0 var(--space-2);line-height:1.1}.ob-tagline{font-family:var(--display);font-style:italic;font-weight:360;font-size:var(--type-body-lg);color:var(--text-muted);letter-spacing:-.005em;margin:0 0 var(--space-7)}.ob-field{margin-bottom:var(--space-4)}.ob-label{display:block;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--text-muted);margin-bottom:var(--space-2)}.ob-field input,.ob-field select,.ob-field textarea{width:100%;padding:12px 16px;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--sans);font-size:var(--type-body);color:var(--text);outline:none;box-sizing:border-box;transition:border-color var(--t-ui) var(--ease),box-shadow var(--t-ui) var(--ease)}.ob-field input:focus,.ob-field select:focus,.ob-field textarea:focus{border-color:var(--moss);box-shadow:0 0 0 3px var(--moss-glow)}.ob-field input::placeholder,.ob-field textarea::placeholder{color:var(--text-faint)}.ob-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238A867D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}[data-theme=dark] .ob-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236F6B62' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E")}.ob-field textarea{resize:vertical;min-height:80px;line-height:1.5}.ob-field textarea.tall{min-height:140px}.ob-input-unit{position:relative}.ob-input-unit input{padding-right:88px}.ob-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:var(--type-meta);color:var(--text-quiet);pointer-events:none;white-space:nowrap}.ob-field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3)}.ob-nav{margin-top:var(--space-8);gap:var(--space-2)}.ob-nav,.ob-nav-right{display:flex;align-items:center}.ob-nav-right{gap:var(--space-3);margin-left:auto}.ob-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;background:var(--moss);color:var(--on-moss);border:none;border-radius:var(--radius-md);font-family:var(--sans);font-size:var(--type-label);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-meta);cursor:pointer;transition:background-color var(--t-ui) var(--ease),transform var(--t-ui) var(--ease)}.ob-btn-primary:hover{background:var(--moss-deep)}[data-theme=dark] .ob-btn-primary:hover{filter:brightness(1.1)}.ob-btn-primary:active{transform:scale(.99)}.ob-btn-primary:disabled{opacity:.4;cursor:not-allowed}.ob-btn-primary svg{width:12px;height:12px;opacity:.85}.ob-btn-loading:after{content:"";width:12px;height:12px;border:1.5px solid var(--on-moss);border-top:1.5px solid transparent;border-radius:50%;animation:obSpin .7s linear infinite;display:inline-block}.ob-btn-ghost{display:inline-flex;align-items:center;padding:12px 0;background:transparent;color:var(--text-muted);border:none;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:var(--tracking-meta);cursor:pointer;transition:color var(--t-ui) var(--ease)}.ob-btn-ghost:hover{color:var(--text)}.ob-btn-skip{display:inline-flex;align-items:center;padding:12px 16px;background:transparent;color:var(--text-quiet);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:var(--tracking-meta);cursor:pointer;transition:color var(--t-ui) var(--ease),border-color var(--t-ui) var(--ease)}.ob-btn-skip:hover{color:var(--text-muted);border-color:var(--border-strong)}.ob-step--welcome{padding-top:var(--space-4)}.ob-welcome-title{font-family:var(--display);font-weight:380;font-size:var(--type-h1-sm);letter-spacing:var(--tracking-h1);font-variation-settings:"opsz" 144,"SOFT" 60;color:var(--text);line-height:1.05;margin:0 0 var(--space-5)}.ob-welcome-sub{font-family:var(--sans);font-size:var(--type-body);color:var(--text-muted);line-height:1.6;margin:0 0 var(--space-9);max-width:360px}.ob-step--done{padding-top:var(--space-4)}.ob-done-title{font-family:var(--display);font-weight:380;font-size:var(--type-h1-sm);letter-spacing:var(--tracking-h1);font-variation-settings:"opsz" 144,"SOFT" 60;color:var(--text);line-height:1.05;margin:0 0 var(--space-4)}.ob-done-sub{font-family:var(--display);font-style:italic;font-weight:360;font-size:var(--type-body-lg);color:var(--text-muted);letter-spacing:-.005em;margin:0 0 var(--space-9)}@media (max-width:640px){.onboarding-page{padding:var(--space-8) var(--space-5) var(--space-8)}.ob-field-row{grid-template-columns:1fr}.ob-done-title,.ob-welcome-title{font-size:var(--type-h2)}}@keyframes obFadeIn{0%{opacity:0}to{opacity:1}}@keyframes obStepIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes obSpin{to{transform:rotate(1turn)}}[data-cadence] .training-name-group{display:flex;flex-direction:column;gap:2px}[data-cadence] .training-name{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-quiet)}[data-cadence] .t-plan-banner{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:20px}[data-cadence] .t-plan-banner-label{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-bottom:4px}[data-cadence] .t-plan-banner-date{font-family:var(--sans);font-size:13px;color:var(--text-muted)}[data-cadence] .training-header{justify-content:space-between;margin-bottom:28px}[data-cadence] .training-header,[data-cadence] .training-title{display:flex;align-items:flex-end;gap:16px}[data-cadence] .training-title h1{font-family:var(--display);font-weight:400;font-size:40px;letter-spacing:var(--tracking-h2);line-height:1;color:var(--text);margin:0;font-variation-settings:"opsz" 144,"SOFT" 45}[data-cadence] .training-week{font-family:var(--mono);font-size:11px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-quiet);padding-bottom:3px}[data-cadence] .training-actions{display:flex;align-items:center;gap:8px}[data-cadence] .t-btn-ghost{background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:7px 14px;cursor:pointer;transition:border-color var(--t-ui),color var(--t-ui)}[data-cadence] .t-btn-ghost:hover{border-color:var(--text-quiet);color:var(--text)}[data-cadence] .t-btn-danger{color:var(--clay-deep);border-color:var(--clay-soft)}[data-cadence] .t-btn-danger:hover{border-color:var(--clay);color:var(--clay)}[data-theme=dark] [data-cadence] .t-btn-danger{color:var(--clay)}[data-cadence] .t-btn-primary{background:var(--moss-deep);border:1px solid transparent;border-radius:var(--radius-md);color:var(--on-moss);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:7px 18px;cursor:pointer;transition:background var(--t-ui)}[data-cadence] .t-btn-primary:hover,[data-theme=dark] [data-cadence] .t-btn-primary{background:var(--moss)}[data-theme=dark] [data-cadence] .t-btn-primary:hover{background:var(--moss-deep)}[data-cadence] .t-btn-primary:disabled{background:var(--bg-elevated);color:var(--text-faint);cursor:default}[data-cadence] .training-saved{background:var(--moss-glow);border:1px solid var(--moss-soft);border-radius:var(--radius-md);color:var(--moss-deep);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;margin-bottom:20px}[data-theme=dark] [data-cadence] .training-saved{color:var(--moss)}[data-cadence] .training-plan .day.today{border-color:var(--border);border-left-color:var(--moss);border-left-width:2px;box-shadow:none}[data-cadence] .training-plan .day{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}[data-cadence] .training-plan .day:focus-visible{outline:2px solid var(--moss);outline-offset:2px}[data-cadence] .pip.t-run{background:var(--moss)}[data-cadence] .pip.t-gym{background:var(--slate)}[data-cadence] .pip.t-functional{background:var(--sand)}[data-cadence] .pip.t-yoga{background:var(--moss-soft)}[data-cadence] .pip.t-rest{background:var(--text-faint)}[data-cadence] .t-day-sessions{margin-top:10px;display:flex;flex-direction:column;gap:6px;flex:1 1}[data-cadence] .t-day-session{border-left:2px solid var(--border);padding:7px 10px;border-radius:0 3px 3px 0}[data-cadence] .t-day-session[data-type=cycle],[data-cadence] .t-day-session[data-type=hike],[data-cadence] .t-day-session[data-type=run],[data-cadence] .t-day-session[data-type=swim]{border-left-color:var(--moss)}[data-cadence] .t-day-session[data-type=gym],[data-cadence] .t-day-session[data-type=strength]{border-left-color:var(--slate)}[data-cadence] .t-day-session[data-type=functional]{border-left-color:var(--sand)}[data-cadence] .t-day-session[data-type=stretch],[data-cadence] .t-day-session[data-type=yoga]{border-left-color:var(--moss-soft)}[data-cadence] .t-day-session[data-type=custom],[data-cadence] .t-day-session[data-type=rest]{border-left-color:var(--text-faint)}[data-cadence] .t-day-session-type{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-quiet);margin-bottom:3px}[data-cadence] .t-day-session-body{font-family:var(--sans);font-size:11px;color:var(--text-soft);line-height:1.45}[data-cadence] .t-edit-list{display:flex;flex-direction:column;gap:12px}[data-cadence] .t-edit-day{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}[data-cadence] .t-edit-day-head{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border)}[data-cadence] .t-edit-day-name{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--moss-deep);font-weight:600}[data-theme=dark] [data-cadence] .t-edit-day-name{color:var(--moss)}[data-cadence] .t-edit-day-full{font-family:var(--sans);font-size:13px;color:var(--text-muted)}[data-cadence] .t-edit-day-body{padding:16px 20px;display:flex;flex-direction:column;gap:10px}[data-cadence] .t-empty{font-family:var(--mono);font-size:11px;color:var(--text-faint);padding:8px 0;margin:0;letter-spacing:.04em}[data-cadence] .t-session-row{display:grid;grid-template-columns:160px 1fr auto;grid-gap:12px;gap:12px;align-items:start;background:var(--bg-elevated);border-radius:var(--radius-md);padding:12px 14px}[data-cadence] .t-field-label{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-quiet);margin-bottom:6px;display:flex;align-items:center;gap:6px}[data-cadence] .t-hint{color:var(--text-faint);letter-spacing:.06em;font-size:8px}[data-cadence] .t-input,[data-cadence] .t-select,[data-cadence] .t-textarea{width:100%;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:var(--sans);font-size:12px;padding:7px 10px;box-sizing:border-box;transition:border-color var(--t-ui),box-shadow var(--t-ui)}[data-cadence] .t-input:focus,[data-cadence] .t-select:focus,[data-cadence] .t-textarea:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px var(--moss-glow)}[data-cadence] .t-textarea{resize:vertical;min-height:72px;font-family:var(--mono);font-size:11px;line-height:1.5}[data-cadence] .t-session-controls{display:flex;flex-direction:column;gap:4px;padding-top:22px}[data-cadence] .t-ctrl{background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:10px;padding:4px 8px;line-height:1;transition:border-color var(--t-ui),color var(--t-ui)}[data-cadence] .t-ctrl:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}[data-cadence] .t-ctrl:disabled{color:var(--text-faint);cursor:default}[data-cadence] .t-ctrl-delete{background:var(--clay-soft);border-color:transparent;color:var(--clay-deep)}[data-cadence] .t-ctrl-delete:hover{border-color:var(--clay)}[data-theme=dark] [data-cadence] .t-ctrl-delete{color:var(--clay)}[data-cadence] .t-add-form{background:var(--bg-elevated);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:12px}[data-cadence] .t-add-head{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--moss-deep)}[data-theme=dark] [data-cadence] .t-add-head{color:var(--moss)}[data-cadence] .t-add-row{display:grid;grid-template-columns:160px 1fr;grid-gap:12px;gap:12px;align-items:start}[data-cadence] .t-add-actions{display:flex;gap:8px;align-items:center}[data-cadence] .t-add-trigger{background:none;border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:10px 14px;cursor:pointer;text-align:left;width:100%;transition:border-color var(--t-ui),color var(--t-ui)}[data-cadence] .t-add-trigger:hover{border-color:var(--moss);color:var(--moss-deep)}[data-theme=dark] [data-cadence] .t-add-trigger:hover{color:var(--moss)}[data-cadence] .t-edit-programme{display:flex;flex-direction:column;gap:20px}[data-cadence] .t-prog-meta{display:grid;grid-template-columns:1fr 200px auto;grid-gap:16px;gap:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}[data-cadence] .t-prog-meta-field{display:flex;flex-direction:column}[data-cadence] .t-input-date{font-family:var(--mono);font-size:12px}[data-cadence] .t-date-warn{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--sand);margin:6px 0 0}[data-cadence] .t-repeat-confirm{margin-top:8px}[data-cadence] .t-repeat-confirm-actions{display:flex;gap:6px;margin-top:6px}[data-cadence] .t-edit-week{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}[data-cadence] .t-edit-week-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}[data-cadence] .t-edit-week-label{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--moss-deep);font-weight:600}[data-theme=dark] [data-cadence] .t-edit-week-label{color:var(--moss)}[data-cadence] .t-edit-week-actions{display:flex;gap:6px;align-items:center}[data-cadence] .t-btn-sm{font-size:9px!important;padding:5px 10px!important;letter-spacing:.1em!important}[data-cadence] .t-week-delete-warn{font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--clay-deep);background:var(--clay-soft);padding:8px 20px;margin:0;border-bottom:1px solid var(--border)}[data-theme=dark] [data-cadence] .t-week-delete-warn{color:var(--clay)}[data-cadence] .t-repeat-row{display:flex;align-items:center;gap:12px;padding:20px}[data-cadence] .t-repeat-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-quiet)}[data-cadence] .t-select-inline{width:auto!important;min-width:120px}[data-cadence] .t-add-week-btn{background:none;border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:12px 20px;cursor:pointer;text-align:left;width:100%;transition:border-color var(--t-ui),color var(--t-ui)}[data-cadence] .t-add-week-btn:hover{border-color:var(--moss);color:var(--moss-deep)}[data-theme=dark] [data-cadence] .t-add-week-btn:hover{color:var(--moss)}[data-cadence] .t-edit-week .t-edit-list{padding:12px 20px}:root{--clay-glow:rgba(185,106,77,.15)}[data-theme=dark]{--clay-glow:rgba(201,126,98,.15)}.signin-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);overflow:hidden;position:relative;font-size:var(--type-body);line-height:1.5;font-feature-settings:"ss01","cv11";opacity:0;animation:loginFadeIn .6s var(--ease) forwards}.login-ambient{position:fixed;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0,rgba(107,122,90,.06),transparent 70%),radial-gradient(ellipse 80% 50% at 50% 100%,rgba(74,95,110,.03),transparent 70%);pointer-events:none;z-index:0;transition:opacity var(--t-theme) var(--ease)}[data-theme=dark] .login-ambient{background:radial-gradient(ellipse 60% 50% at 50% 0,hsla(87,18%,54%,.06),transparent 70%),radial-gradient(ellipse 80% 50% at 50% 100%,rgba(107,131,152,.04),transparent 70%)}.signin-shell{width:100%;max-width:380px;text-align:center;position:relative;z-index:1}.signin-page .brand{margin-bottom:56px}.signin-page .wordmark{font-family:var(--display);font-weight:360;font-size:64px;letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 60;color:var(--text);display:inline-flex;align-items:baseline;line-height:1;animation:wordmarkTighten 1.2s var(--ease) .2s forwards}.signin-page .wordmark .dot{width:8px;height:8px;background:var(--moss);border-radius:50%;margin-left:4px;margin-bottom:8px;opacity:0;transform:scale(0);transform-origin:center;--pulse-from:rgba(107,122,90,.35);--pulse-to:rgba(107,122,90,0);animation:dotLand .4s var(--ease) .7s forwards,dotPulse 2.5s var(--ease) 1.5s infinite}[data-theme=dark] .signin-page .wordmark .dot{--pulse-from:hsla(87,18%,54%,.45);--pulse-to:hsla(87,18%,54%,0)}.signin-page .tagline{margin-top:14px;font-family:var(--display);font-style:italic;font-weight:360;font-size:17px;color:var(--text-muted);letter-spacing:-.005em}.signin-form{text-align:left}.signin-form .field{margin-bottom:14px;position:relative}.signin-form .field .label{display:block;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--text-muted);margin-bottom:var(--space-2)}.signin-form .field input{width:100%;padding:14px 18px;background:var(--bg-paper);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--sans);font-size:15px;color:var(--text);outline:none;transition:border-color var(--t-ui) var(--ease),box-shadow var(--t-ui) var(--ease),background-color var(--t-theme) var(--ease)}.signin-form .field input:focus{border-color:var(--moss);box-shadow:0 0 0 3px var(--moss-glow)}.signin-form .field input::placeholder{color:var(--text-faint)}.signin-form .field.error input{border-color:var(--clay)}.signin-form .field.error input:focus{box-shadow:0 0 0 3px var(--clay-glow)}.signin-form .field .err-msg{display:none;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:.14em;color:var(--clay-deep);margin-top:7px}[data-theme=dark] .signin-form .field .err-msg{color:var(--clay)}.signin-form .field.error .err-msg{display:block}.signin-page .btn-primary{width:100%;padding:14px 24px;background:var(--moss);color:var(--on-moss);border:none;border-radius:var(--radius-md);font-family:var(--sans);font-size:var(--type-label);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-meta);cursor:pointer;margin-top:18px;transition:background-color var(--t-ui) var(--ease),transform var(--t-ui) var(--ease);display:inline-flex;align-items:center;justify-content:center;gap:10px}.signin-page .btn-primary:hover{background:var(--moss-deep)}[data-theme=dark] .signin-page .btn-primary:hover{background:var(--moss);filter:brightness(1.1)}.signin-page .btn-primary:active{transform:scale(.99)}.signin-page .btn-primary svg.arrow{width:12px;height:12px;opacity:.85;transition:transform var(--t-ui) var(--ease)}.signin-page .btn-primary:hover svg.arrow{transform:translateX(2px)}.signin-page .btn-primary.loading{pointer-events:none;opacity:.7}.signin-page .btn-primary.loading svg.arrow{display:none}.signin-page .btn-primary.loading:after{content:"";width:12px;height:12px;border:1.5px solid var(--on-moss);border-top:1.5px solid transparent;border-radius:50%;animation:spin .7s linear infinite}.signin-page .forgot{display:block;margin-top:28px;font-family:var(--mono);font-size:var(--type-meta);text-transform:uppercase;letter-spacing:var(--tracking-meta);color:var(--text-muted);text-decoration:none;text-align:center}.signin-page .forgot:hover{color:var(--text)}.login-theme-toggle{position:fixed;top:24px;right:24px;width:34px;height:34px;border-radius:50%;background:transparent;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:var(--z-sticky);transition:background-color var(--t-theme) var(--ease),border-color var(--t-theme) var(--ease),color var(--t-theme) var(--ease)}.login-theme-toggle:hover{color:var(--text);border-color:var(--border-strong)}.login-theme-toggle svg{width:14px;height:14px}.login-theme-toggle .t-icon{display:none}[data-theme=dark] .login-theme-toggle .t-sun,[data-theme=light] .login-theme-toggle .t-moon{display:block}.login-footer{position:fixed;bottom:24px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--text-faint);z-index:1}.login-footer .sep{margin:0 var(--space-2);opacity:.5}.login-splash{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-splash-spinner{width:20px;height:20px;border:1.5px solid var(--moss);border-top:1.5px solid transparent;border-radius:50%;animation:spin .7s linear infinite}.signin-page .r{opacity:0;transform:translateY(10px);animation:rise var(--t-paint) var(--ease) forwards}.signin-page .r-1{animation-delay:.12s}.signin-page .r-2{animation-delay:.28s}.signin-page .r-3{animation-delay:.44s}.signin-page .r-4{animation-delay:.6s}@keyframes loginFadeIn{to{opacity:1}}@keyframes wordmarkTighten{to{letter-spacing:-.045em}}@keyframes dotLand{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes dotPulse{0%{box-shadow:0 0 0 0 var(--pulse-from)}60%{box-shadow:0 0 0 16px var(--pulse-to)}to{box-shadow:0 0 0 0 var(--pulse-to)}}@keyframes rise{to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:480px){.signin-page .wordmark{font-size:52px}.signin-page .tagline{font-size:16px}.signin-page .brand{margin-bottom:44px}}