.physiology-endlabel{font-size:var(--type-micro);white-space:nowrap;pointer-events:none;margin-top:-14px;font-weight:600;position:absolute;transform:translate(-100%,-50%)}.physiology-endlabel.primary{color:var(--series-1-text)}.physiology-endlabel.secondary{color:var(--accent-text)}.physiology-y-note{writing-mode:vertical-rl;color:var(--text-muted);font-size:var(--type-micro);letter-spacing:var(--type-eyebrow-spacing);text-transform:var(--type-eyebrow-case);align-self:center;margin-right:2px;transform:rotate(180deg)}.physiology-y-col{align-items:stretch;gap:2px;display:flex}.dc-profile [data-section=account] .set-card,.dc-profile [data-section=connections] .set-card,.dc-profile [data-section=workouts] .set-card,.dc-profile [data-section=zones] .set-card,.dc-profile [data-section=account]>.card,.dc-profile [data-section=connections]>.card,.dc-profile [data-section=workouts]>.card,.dc-profile [data-section=zones]>.card{box-shadow:none;margin-bottom:var(--space-3);background:0 0;border:0;border-radius:0;padding:0}.dc-profile [data-section=account] .set-kick,.dc-profile [data-section=connections] .set-kick,.dc-profile [data-section=workouts] .set-kick,.dc-profile [data-section=zones] .set-kick{color:var(--faint);border-top:1px solid var(--rule);padding-top:var(--space-3);margin-top:var(--space-2);font-family:inherit}.dc-profile [data-section=account] .set-row,.dc-profile [data-section=connections] .set-row,.dc-profile [data-section=workouts] .set-row,.dc-profile [data-section=zones] .set-row{border-bottom:0;border-top:1px solid var(--hairline);min-height:44px;padding:var(--space-2) 0}.dc-profile [data-section=account] .set-lab b,.dc-profile [data-section=connections] .set-lab b,.dc-profile [data-section=workouts] .set-lab b,.dc-profile [data-section=zones] .set-lab b{color:var(--ink)}.dc-profile [data-section=account] .set-lab span,.dc-profile [data-section=connections] .set-lab span,.dc-profile [data-section=workouts] .set-lab span,.dc-profile [data-section=zones] .set-lab span{color:var(--faint)}.dc-profile [data-section=account] .set-val,.dc-profile [data-section=zones] .set-val{color:var(--mid)}.dc-profile .connection-switch{border-color:var(--rule);background:var(--surface-2);border-radius:3px;width:46px;height:27px}.dc-profile .connection-switch.on{background:var(--accent);border-color:var(--accent)}.dc-profile .connection-switch .connection-switch-knob{background:var(--text-secondary);border-radius:2px}.dc-profile .connection-switch.on .connection-switch-knob{background:#fff}.set-kick-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.dc-profile .set-kick-row{border-top:1px solid var(--rule);padding-top:var(--space-3);margin-top:var(--space-2)}.dc-profile .set-kick-row>.set-kick{border-top:0;margin-top:0;padding-top:0}.dc-profile .set-row.stacked>.set-ctl>.filter-input{flex:90px}.pwa-install-row summary{cursor:pointer;list-style:none}.pwa-install-row summary::-webkit-details-marker{display:none}.set-more-cue{color:var(--accent-text);font-size:var(--type-small)}.set-more-cue:after{content:"+";font-size:var(--type-body);margin-left:4px}.pwa-install-row details[open] .set-more-cue:after{content:"−"}.zone-anchor-row{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.zone-anchor-field{flex-direction:column;flex:1 1 0;gap:2px;min-width:0;display:flex}.goal-form .zone-anchor-field>input{text-align:center;flex:auto;width:100%;min-width:0}.zone-anchor-field>.field-label{text-align:center;overflow-wrap:normal;word-break:normal;flex:none;margin:0}.goal-form .zone-anchor-row>button{flex:none;margin:0}.zone-anchor-help{margin:var(--space-2) 0 0}.pwa-install-how{color:var(--text-secondary);font-size:var(--type-body);margin:8px 0 0;line-height:1.55}.dc-profile [data-section=account] .filter-chip,.dc-profile [data-section=connections] .filter-chip,.dc-profile [data-section=workouts] .filter-chip,.dc-profile [data-section=zones] .filter-chip,:is(.dc-profile [data-section=account] .set-ctl:has(>.set-seg),.dc-profile [data-section=connections] .set-ctl:has(>.set-seg),.dc-profile [data-section=workouts] .set-ctl:has(>.set-seg),.dc-profile [data-section=zones] .set-ctl:has(>.set-seg)){border-radius:var(--control-radius);border-color:var(--rule)}.dc-profile [data-section=account] .set-card .set-ctl>.filter-chip.set-seg.active,.dc-profile [data-section=connections] .set-card .set-ctl>.filter-chip.set-seg.active,.dc-profile [data-section=workouts] .set-card .set-ctl>.filter-chip.set-seg.active,.dc-profile [data-section=zones] .set-card .set-ctl>.filter-chip.set-seg.active{color:var(--accent-ink)}.dc-profile [data-section=connections] .set-card{overflow:visible}.dc-profile [data-section=zones] .activity-table th,.dc-profile [data-section=zones] .activity-table td{border-bottom:1px solid var(--hairline);font-variant-numeric:tabular-nums}.dc-profile [data-section=zones] .activity-table th{color:var(--faint);text-transform:var(--type-eyebrow-case);letter-spacing:var(--type-eyebrow-spacing);font-size:var(--type-eyebrow);font-weight:var(--type-eyebrow-weight)}.dc-profile [data-section=zones] .activity-table td{color:var(--ink)}.dc-profile [data-section=zones] .zone-observed{color:var(--faint)}.dc-profile [data-section=zones] .zone-evidence{border-top:1px solid var(--rule);padding-top:var(--space-3)}.dc-profile [data-section=zones] .zone-evidence>summary{color:var(--mid)}#perf-panel-recipe .card:not(.dc-cream),#perf-panel-trends .card:not(.dc-cream),#perf-panel-review .card:not(.dc-cream){box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}#perf-panel-recipe .ink-rail,#perf-panel-trends .ink-rail,#perf-panel-review .ink-rail{box-shadow:none;background:0 0;border:0;border-radius:0}#perf-panel-recipe .card>.kicker:not(.section-kicker),#perf-panel-trends .card>.kicker:not(.section-kicker),#perf-panel-review .card>.kicker:not(.section-kicker){color:var(--faint);border-top:1px solid var(--rule);padding-top:var(--space-3);margin-top:var(--space-5);font-family:inherit;display:block}#perf-panel-recipe .card-read,#perf-panel-trends .card-read,#perf-panel-review .card-read{color:var(--ink)}#perf-panel-recipe .curve-intro,#perf-panel-trends .curve-intro,#perf-panel-review .curve-intro{color:var(--mid)}#perf-panel-recipe .pyr-row-label{color:var(--faint);font-family:inherit}#perf-panel-recipe .pyr-selected{border:0;border-top:1px solid var(--hairline);min-height:44px;padding:var(--space-2) 0;background:0 0;border-radius:0}#perf-panel-recipe .pyr-selected-body b{color:var(--ink)}#perf-panel-recipe .pyr-selected-body span{color:var(--faint)}#perf-panel-recipe .pyr-selected-go{color:var(--accent-text)}#perf-panel-recipe .pyr-tap-hint{color:var(--faint)}#perf-panel-recipe .pyr-base-line{border-top-color:var(--rule)}#perf-panel-recipe .recipe-table th,#perf-panel-review .recipe-table th{color:var(--faint);border-bottom-color:var(--rule);font-family:inherit}#perf-panel-recipe .recipe-table td,#perf-panel-review .recipe-table td{border-bottom-color:var(--hairline);color:var(--mid)}#perf-panel-recipe .recipe-table td.name,#perf-panel-review .recipe-table td.name{color:var(--ink)}#perf-panel-recipe .hold-row{border-top:1px solid var(--hairline);padding:var(--space-2) 0;min-height:44px}#perf-panel-recipe .hold-band{color:var(--ink);font-family:inherit}#perf-panel-recipe .hold-time{color:var(--mid)}#perf-panel-recipe .hold-segments{color:var(--faint)}#perf-panel-recipe .hold-track,#perf-panel-recipe .hold-bar{border-radius:var(--control-radius)}#perf-panel-trends .trend-week{border:0;border-top:1px solid var(--hairline);padding:var(--space-3) 0;background:0 0;border-radius:0}#perf-panel-trends .trend-week.current{box-shadow:none;border-left:2px solid var(--accent);padding-left:var(--space-3)}#perf-panel-trends .trend-weeks{gap:0}#perf-panel-trends .trend-week-total{font-variant-numeric:tabular-nums}#perf-panel-trends .trend-week-stats{color:var(--faint)}#perf-panel-trends .trend-week-stats b{color:var(--ink)}#perf-panel-trends .trend-bar,#perf-panel-trends .trend-seg{border-radius:0}#perf-panel-trends .trend-legend .trend-key{color:var(--faint)}#perf-panel-trends .season-node{border:0;border-top:1px solid var(--hairline);padding:var(--space-3) var(--space-3) var(--space-3) 0;background:0 0;border-radius:0}#perf-panel-trends .season-node.raced{background:0 0}#perf-panel-trends .season-node.goal{border-top-color:var(--accent)}#perf-panel-trends .season-when{color:var(--faint);font-family:inherit}#perf-panel-trends .season-name{color:var(--ink)}#perf-panel-trends .season-figure{font-variant-numeric:tabular-nums}#perf-panel-trends .season-node.goal .season-figure{color:var(--accent-text)}#perf-panel-trends .season-sub{color:var(--faint)}#perf-panel-trends .activity-table th{color:var(--faint);border-bottom-color:var(--rule)}#perf-panel-trends .activity-table td{border-bottom-color:var(--hairline);font-variant-numeric:tabular-nums}#perf-panel-trends .filter-chip,#perf-panel-trends .filter-input,#perf-panel-trends .race-custom-input{border-radius:var(--control-radius);border-color:var(--rule)}#perf-panel-review .review-coach.dc-cream{padding:10px 12px}#perf-panel-review .review-coach.dc-cream .card-read{margin-top:6px}#perf-panel-review .review-coach.dc-cream>.kicker{color:var(--cream-faint);border-top:0;margin-top:0;padding-top:0}#perf-panel-review .review-coach.dc-cream .card-read{color:var(--cream-ink)}#perf-panel-review .review-note.good span[aria-hidden]{color:var(--ink)}#perf-panel-review .review-note.thin span[aria-hidden]{color:var(--mid)}#perf-panel-review .review-note.thin span[aria-hidden]:only-child,#perf-panel-review .review-race .review-note.thin span[aria-hidden]{color:var(--accent-text)}#perf-panel-review .review-note{color:var(--mid)}#perf-panel-review .raa-lab{font-family:inherit}#perf-panel-review .raa-lab.repeat{color:var(--ink)}#perf-panel-review .raa-lab.adjust{color:var(--mid)}#perf-panel-review .raa-lab.avoid{color:var(--accent-text)}#perf-panel-review .review-raa>div p{color:var(--mid)}#perf-panel-review .bank-target thead th{color:var(--faint);font-family:inherit}#perf-panel-review .bank-target th,#perf-panel-review .bank-target td{border-bottom-color:var(--hairline);font-variant-numeric:tabular-nums}#perf-panel-review .bank-target th[scope=row]{color:var(--ink)}#perf-panel-review .bank-target-caveat,#perf-panel-review .block-sub{color:var(--faint)}#perf-panel-review .review-figs .review-fig-l{color:var(--mid)}#perf-panel-review .review-why>summary{color:var(--accent-text)}#perf-panel-review .review-why .review-fig-caveat{color:var(--faint)}#perf-panel-review .review-why .review-fig-caveat strong{color:var(--mid)}#perf-panel-review .bank-row-l{color:var(--ink)}#perf-panel-review .bank-row-v{color:var(--faint)}#perf-panel-review .bank-row-bar{background:var(--hairline)}#perf-panel-review .bank-row-then{background:var(--ink)}#perf-panel-review .recipe-key{color:var(--faint)}.dc-profile [data-section=gear] .set-card:not(.danger),.dc-profile [data-section=data] .set-card:not(.danger),.dc-profile [data-section=admin] .set-card:not(.danger){box-shadow:none;margin-bottom:var(--space-3);background:0 0;border:0;border-radius:0;padding:0}.dc-profile [data-section=gear] .set-kick,.dc-profile [data-section=data] .set-kick,.dc-profile [data-section=admin] .set-kick{color:var(--faint);border-top:1px solid var(--rule);padding-top:var(--space-3);margin-top:var(--space-2);font-family:inherit}.dc-profile [data-section=gear] .set-row,.dc-profile [data-section=data] .set-row,.dc-profile [data-section=admin] .set-row{border-bottom:0;border-top:1px solid var(--hairline);min-height:44px;padding:var(--space-2) 0}.dc-profile [data-section=gear] .set-lab b,.dc-profile [data-section=data] .set-lab b,.dc-profile [data-section=admin] .set-lab b{color:var(--ink)}.dc-profile [data-section=gear] .set-lab span,.dc-profile [data-section=data] .set-lab span,.dc-profile [data-section=admin] .set-lab span{color:var(--faint)}.dc-profile [data-section=data] .set-val,.dc-profile [data-section=admin] .set-val{color:var(--mid)}.dc-profile [data-section=gear] .filter-chip,.dc-profile [data-section=data] .filter-chip,.dc-profile [data-section=admin] .filter-chip{border-radius:var(--control-radius);border-color:var(--rule)}.dc-profile [data-section=gear] .set-card .set-ctl>.filter-chip.set-seg.active,.dc-profile [data-section=data] .set-card .set-ctl>.filter-chip.set-seg.active{color:var(--accent-ink)}.dc-profile [data-section=data] .set-more,.dc-profile [data-section=gear] .set-more{border-top:1px solid var(--rule);padding-top:var(--space-3)}.dc-profile [data-section=data] .set-more>summary,.dc-profile [data-section=gear] .set-more>summary{color:var(--mid)}.dc-profile [data-section=data] .notes-hint,.dc-profile [data-section=gear] .notes-hint{color:var(--faint)}.milestones .milestones-stats>div{padding:var(--space-3) 0;border:0;border-radius:0}.milestones .milestones-stats>div+div{border-left:1px solid var(--hairline);padding-left:var(--space-4)}.milestones .milestones-stats strong{color:var(--ink);font-variant-numeric:tabular-nums}.milestones .milestones-stats span{color:var(--faint)}.milestones .milestones-list{border:0;border-radius:0}.milestones .milestone-row{min-height:44px;padding:var(--space-2) 0;border-top:1px solid var(--hairline)}.milestones .milestone-row+.milestone-row{border-top-color:var(--hairline)}.milestones .milestone-badge{border-radius:var(--control-radius);color:var(--accent-text)}.milestones .milestone-row.locked .milestone-badge{border-color:var(--rule);color:var(--faint)}.milestones .milestone-body strong{color:var(--ink)}.milestones .milestone-body small{color:var(--faint)}.milestones .milestone-value{color:var(--ink)}.milestones .milestone-value em{color:var(--accent-text)}.milestones .milestones-group-label,.milestones .milestones-reach-label{color:var(--faint);border-top:1px solid var(--rule);padding-top:var(--space-3)}.milestones .milestones-foot{color:var(--faint)}.dc-profile [data-section=gear] .shoe-row{border-bottom:0;border-top:1px solid var(--hairline);padding:var(--space-2) 0}.dc-profile [data-section=gear] .shoe-main{min-height:44px}.dc-profile [data-section=gear] .shoe-wear-bar{background:var(--hairline)}.dc-profile [data-section=gear] .shoe-wear-fig{color:var(--faint)}.dc-profile [data-section=gear] .shoe-retire{color:var(--ink)}.dc-profile [data-section=gear] .shoe-row:last-child{border-bottom:0}.dc-profile [data-section=gear] .shoe-id b{color:var(--ink)}.dc-profile [data-section=gear] .shoe-km{color:var(--ink);font-variant-numeric:tabular-nums}.dc-profile [data-section=gear] .shoe-km-unit,.dc-profile [data-section=gear] .shoe-runs,.dc-profile [data-section=gear] .shoe-go{color:var(--faint)}.dc-profile [data-section=gear] .shoe-pill{border-radius:var(--control-radius);border-color:var(--rule);color:var(--faint);font-family:inherit}.dc-profile [data-section=gear] .shoe-grouplab{color:var(--faint);border-top:1px solid var(--rule);padding-top:var(--space-3);font-family:inherit}.dc-profile [data-section=data] .set-card.danger{border-radius:var(--control-radius);border-color:var(--critical-text);padding:var(--space-4)}.dc-profile [data-section=data] .set-kick.crit{color:var(--critical-text);border-top:0;padding-top:0}.dc-profile [data-section=data] .danger .goal-form button:not(.filter-chip){border-radius:var(--control-radius);text-transform:none;letter-spacing:normal;min-height:44px;font-size:var(--type-body);font-weight:700}.dc-profile [data-section=data] .danger .goal-form button.danger-delete{color:var(--status-critical-ink)}.dc-profile [data-section=data] .danger .goal-form input{border-radius:var(--control-radius);border-color:var(--rule);min-height:44px}.dc-profile [data-section=data] .danger .set-more{border-top-color:var(--critical-text)}.plan-position{margin:8px 0 2px;padding:3px 0}.plan-position-run{gap:2px;height:10px;display:flex;position:relative}.plan-position-phase{background:var(--surface-2);border-radius:2px;flex-basis:0}.plan-position-phase.base{background:var(--surface-2)}.plan-position-phase.build{background:var(--baseline)}.plan-position-phase.peak{background:var(--text-muted)}.plan-position-phase.taper{background:color-mix(in srgb, var(--accent) 55%, transparent)}.plan-position-ahead{background:var(--surface);opacity:.62;border-radius:2px;position:absolute;top:0;bottom:0;right:0}.plan-position-here{background:var(--accent);border-radius:2px;width:3px;margin-left:-1.5px;position:absolute;top:-3px;bottom:-3px}.plan-position-race{background:var(--text-muted);width:1px;position:absolute;top:-3px;bottom:-3px;right:-4px}.plan-position-axis{gap:2px;margin-top:5px;display:flex;overflow:hidden}.plan-position-axis span{white-space:nowrap;text-align:center;min-width:max-content;font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--text-3xs);letter-spacing:.08em;text-transform:var(--type-eyebrow-case);color:var(--text-muted);flex-basis:0}.plan-position-axis span.here{color:var(--accent-text);font-weight:650}.season-arc{margin:6px 0 10px}.season-arc-head{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-micro);letter-spacing:.08em;text-transform:var(--type-eyebrow-case);color:var(--text-primary);margin:0 0 6px;font-weight:700}.season-arc-head span{color:var(--text-muted);font-weight:600}.season-arc-pins{height:18px;position:relative}.season-pin{white-space:nowrap;font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--text-3xs);letter-spacing:.06em;text-transform:var(--type-eyebrow-case);color:var(--text-secondary);align-items:center;gap:4px;display:flex;position:absolute;bottom:2px;transform:translate(-50%)}.season-pin i{border-radius:50%;flex:none;width:7px;height:7px}.season-pin.goal i{background:var(--accent)}.season-pin.goal{color:var(--accent-text);font-weight:650}.season-pin.tune i{border:1.5px solid var(--text-secondary);background:var(--page)}.season-pin.tune{z-index:2;pointer-events:none;bottom:-9.5px}.season-next{text-overflow:ellipsis;white-space:nowrap;max-width:70%;font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--text-3xs);letter-spacing:.06em;text-transform:var(--type-eyebrow-case);color:var(--accent-text);margin-left:9px;font-weight:650;position:absolute;bottom:2px;overflow:hidden}.season-next.left{margin-left:-9px;transform:translate(-100%)}.season-arc-run{gap:6px;height:12px;display:flex;position:relative}.season-block{cursor:pointer;outline-offset:3px;background:0 0;border:0;border-radius:3px;flex-basis:0;gap:2px;min-width:0;padding:0;display:flex}.season-block.open{outline:1.5px solid var(--text-secondary)}.season-arc-run .plan-position-ahead,.season-arc-run .plan-position-here{pointer-events:none}.season-block.open{z-index:1;position:relative}.season-arc-run .plan-position-ahead{opacity:.4}.plan-position-phase.sharpen{background:var(--text-muted)}.season-block .plan-position-phase{height:100%}.plan-position-phase.recovery{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}.season-arc-axis{gap:6px;margin-top:6px;display:flex}.season-arc-axis span{white-space:nowrap;min-width:max-content;font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--text-3xs);letter-spacing:.08em;text-transform:var(--type-eyebrow-case);color:var(--text-muted);flex-basis:0}.season-arc-axis span.open{color:var(--text-primary);font-weight:650}.dc-progress .perf-panel .card{margin-top:0;margin-bottom:0}#perf-panel-recipe .card>.kicker:not(.section-kicker),#perf-panel-trends .card>.kicker:not(.section-kicker),#perf-panel-review .card>.kicker:not(.section-kicker){margin-top:var(--space-3)}.dc-progress .perf-panel .ink-rail{margin-bottom:0;padding-top:0;padding-bottom:0}#perf-panel-review .review-coach.dc-cream{margin-top:var(--space-3)}#perf-panel-review .review-raa{margin-top:var(--space-2);display:block}#perf-panel-review .review-raa>div+div{margin-top:6px}#perf-panel-review .review-raa>div p{margin:0;display:inline}#perf-panel-review .review-raa>div.raa-two p{margin-top:4px;display:block}#perf-panel-review .review-raa>div.raa-two p:first-of-type{margin-top:0}#perf-panel-review .raa-lab{margin-right:8px}.dc-profile .settings-wrap .set-card{margin-bottom:var(--space-1)}.dc-profile [data-section=account] .set-card>.set-kick:first-child,.dc-profile [data-section=connections] .set-card>.set-kick:first-child,.dc-profile [data-section=workouts] .set-card>.set-kick:first-child,.dc-profile [data-section=zones] .set-card>.set-kick:first-child{margin-top:var(--space-1);padding-top:var(--space-2);border-top:0}.dc-progress .perf-panel p,.dc-progress .perf-panel li,.dc-profile .settings-wrap p,.dc-profile .settings-wrap li{line-height:1.34}.dc-progress .perf-panel table th,.dc-progress .perf-panel table td{padding-top:4px;padding-bottom:4px;line-height:1.3}.dc-profile .settings-wrap .set-row{min-height:40px;padding-top:4px;padding-bottom:4px}.dc-profile .settings-wrap .set-lab b,.dc-profile .settings-wrap .set-lab span{line-height:1.25}#perf-panel-recipe .card>.kicker:not(.section-kicker),#perf-panel-trends .card>.kicker:not(.section-kicker),#perf-panel-review .card>.kicker:not(.section-kicker){margin-top:8px;padding-top:8px}.dc-progress .perf-panel .kicker.section-kicker{margin-top:10px;margin-bottom:3px}.dc-profile .settings-wrap .set-kick{margin-top:6px;padding-top:6px}.dc-progress .perf-panel .pred-table-pace{display:inline}.dc-progress .perf-panel .pred-table-pace:before{content:"\a ";white-space:pre}.dc-progress .perf-panel .pred-ready{margin-top:0;display:inline}.dc-progress .perf-panel .pred-ready:before{content:" · ";color:var(--faint);font-weight:400}.dc-progress .perf-panel .rail-row{align-items:flex-start;gap:8px;padding-top:5px;padding-bottom:5px}.dc-progress .perf-panel .rail-row-value{text-align:right;line-height:1.2}.dc-progress .perf-panel .rail-row-main{gap:0;min-width:0}.dc-progress .perf-panel .threshold-row{min-height:0;padding-top:6px;padding-bottom:6px}.dc-progress .perf-panel .rail-band{height:18px;margin-top:8px}.dc-progress .perf-panel .rail-band-track{top:7px}.dc-progress .perf-panel .rail-band-tick{height:14px;top:2px}.dc-progress .perf-panel .rail-conf-line{margin-top:6px}.dc-progress .perf-panel .rail-why{margin-top:4px}.dc-progress .perf-panel .rail-ready-line{margin-top:3px}.dc-progress .perf-panel .rail-hero-lead{gap:2px}.dc-progress .perf-panel .review-note{margin-top:4px}.dc-progress .perf-panel .block-sub{margin-bottom:2px}#perf-panel-recipe .pyr-row{gap:3px 4px}#perf-panel-recipe .pyr-row-label{margin:2px 0 6px}#perf-panel-recipe .pyr-tap-hint{margin-top:4px}.block-stats{gap:var(--space-3);margin:var(--space-2) 0 var(--space-3);display:flex}.block-stat{flex-direction:column;flex:1 1 0;gap:1px;min-width:0;display:flex}.block-stat-n{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-heading);color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1}.block-stat-n small{color:var(--text-muted);font-size:.6em}.block-stat-l{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-eyebrow);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-spacing);text-transform:var(--type-eyebrow-case);color:var(--text-muted);line-height:1.2}.review-fig{align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--hairline,var(--border));display:flex}.review-fig:first-of-type{border-top:0}.review-fig-n{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-title);font-variant-numeric:tabular-nums;text-align:right;flex:0 0 4.2rem;line-height:1.05}.review-fig.good .review-fig-n{color:var(--status-good)}.review-fig.thin .review-fig-n{color:var(--status-warning)}.review-fig-l{min-width:0;font-size:var(--type-body);color:var(--text-secondary);flex:auto;line-height:1.3}.review-fig-caveat{font-size:var(--type-small);color:var(--text-muted);margin:4px 0 0;line-height:1.35}.review-figs{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.review-figs .review-fig{border-top:0;padding:0;display:block}.review-figs .review-fig-n{text-align:left;flex:none;display:block}.review-figs .review-fig-l{font-size:var(--type-small);color:var(--text-muted);margin-top:2px;line-height:1.25;display:block}.review-read .review-raa{margin-top:var(--space-4)}.review-read .review-raa>div.raa-two p+p{margin-top:4px}#perf-panel-review .review-coach.dc-cream>.kicker:not(.section-kicker){border-top:0;margin-top:0;padding-top:0}.review-why{margin-top:var(--space-3)}.review-why>summary{font-size:var(--type-small);color:var(--accent-text)}.review-why .review-fig-caveat strong{color:var(--text-secondary);font-weight:600}.bank-rows{gap:var(--space-2);margin-top:var(--space-2);display:grid}.bank-row{align-items:center;gap:var(--space-2);grid-template-columns:5.5rem 1fr auto;display:grid}.bank-row-l{font-size:var(--type-small);color:var(--text-primary)}.bank-row-bar{background:var(--baseline,var(--border));border-radius:6px;height:10px;position:relative;overflow:hidden}.bank-row-now{background:var(--accent);border-radius:6px;height:100%;position:absolute;top:0;left:0}.bank-row-then{background:var(--text-primary);width:2px;height:calc(100% + 4px);margin-left:-1px;position:absolute;top:-2px}.bank-row-v{font-size:var(--type-small);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.recipe-stack-labelled{border-radius:8px;height:26px}.recipe-stack-labelled>span{justify-content:center;align-items:center;display:flex;overflow:hidden}.recipe-stack-labelled>span>em{font-style:normal;font-size:var(--type-micro);font-variant-numeric:tabular-nums;line-height:1}.recipe-key{gap:4px var(--space-3);margin:0 0 var(--space-2);font-size:var(--type-small);color:var(--text-muted);flex-wrap:wrap;display:flex}.recipe-key>span{align-items:center;gap:5px;display:inline-flex}.plan-tile-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:8px 0 10px;display:grid}.plan-tile{border:1px solid var(--gridline);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 2px 7px;display:flex;position:relative}.plan-tile.open{box-shadow:inset 0 0 0 2px var(--text-primary), inset 0 0 0 4px var(--tile-fill,transparent)}.plan-tile-weekday{white-space:nowrap;font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-eyebrow);letter-spacing:.04em;font-weight:var(--type-eyebrow-weight);text-transform:var(--type-eyebrow-case);color:inherit;justify-content:center;align-items:baseline;gap:3px;display:flex}.plan-tile-date{font-size:var(--type-micro);letter-spacing:0;font-variant-numeric:tabular-nums;color:inherit;font-weight:700}.plan-tile.is-today .plan-tile-weekday{font-weight:800}.plan-tile-km{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-body-lg);font-variant-numeric:tabular-nums;color:inherit;font-weight:700;line-height:1.1}.plan-tile-runs{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-micro);color:inherit;opacity:.75;font-weight:600;line-height:1}.plan-tile-mark{width:10px;height:10px;font-size:var(--type-micro);border-radius:999px;font-weight:700;line-height:10px}.plan-tile.planned .plan-tile-mark{border:1.5px solid}.plan-tile.unlinked .plan-tile-mark{border:1.5px dashed}.plan-tile.rest .plan-tile-mark{visibility:hidden}.plan-tile.skipped .plan-tile-mark,.plan-tile.missed .plan-tile-mark{border:1.5px dotted}.plan-row-actual{font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-small);color:var(--text-muted);font-variant-numeric:tabular-nums;grid-column:1/-1}.dc-profile .settings-wrap{padding-top:12px}.dc-profile .settings-wrap>.set-card:first-of-type>.set-kick:first-child,.dc-profile .settings-wrap>.set-card:first-of-type>.set-kick-row:first-child,.dc-profile .settings-wrap>.set-card:first-of-type>.set-kick-row:first-child>.set-kick,.dc-profile .settings-wrap>.card:first-of-type>.set-kick:first-child,.dc-profile .settings-wrap>.card:first-of-type>.card-head-row:first-child,.dc-profile .settings-wrap>.card:first-of-type>.card-head-row:first-child>.card-kicker{border-top:0;margin-top:0;padding-top:0}.dc-profile .settings-wrap .block-sub{color:var(--text-muted);font-size:var(--type-small);max-width:52ch;margin:2px 0 10px;line-height:1.34}.dc-profile .settings-wrap .set-act{min-height:var(--tap-min);border-radius:var(--control-radius);background:var(--accent);color:var(--accent-ink);font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-small);white-space:nowrap;cursor:pointer;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:650;display:inline-flex}.dc-profile .settings-wrap .set-act:disabled{opacity:.55;cursor:default}.dc-profile .settings-wrap .set-act-quiet{min-height:var(--tap-min);border:1px solid var(--border);border-radius:var(--control-radius);color:var(--text-secondary);font-family:var(--font-grotesk), system-ui, sans-serif;font-size:var(--type-small);white-space:nowrap;cursor:pointer;background:0 0;flex:1;padding:0 14px;font-weight:650}.dc-profile .settings-wrap .set-act-quiet:disabled{opacity:.55;cursor:default}.dc-profile .settings-wrap .zone-reactions{gap:var(--space-2);margin-top:10px}.dc-profile .settings-wrap .set-kick-row{align-items:flex-start}.wb-styles{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.wb-preview{background:var(--surface-2,#8080801f);border-radius:12px;margin:8px 0 16px;padding:12px}.wb-preview p{margin:0 0 6px}.conn-list{margin-top:4px}.conn-row{border:0;border-bottom:1px solid var(--gridline);text-align:left;cursor:pointer;width:100%;min-height:60px;font:inherit;color:inherit;background:0 0;align-items:center;gap:12px;padding:12px 0;display:flex}.conn-row:last-child{border-bottom:0}.conn-row-main{flex:1;min-width:0;display:block}.conn-state{font-size:var(--type-eyebrow);font-weight:var(--type-eyebrow-weight);letter-spacing:var(--type-eyebrow-spacing);text-transform:var(--type-eyebrow-case);color:var(--text-muted)}.conn-state.on{color:var(--accent-text)}.conn-chev{color:var(--text-muted);font-size:var(--type-heading);line-height:1}.set-row.set-door{border:0;border-bottom:1px solid var(--border);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;flex-wrap:nowrap}.set-row.set-door:last-child{border-bottom:0}.set-row.set-door .set-lab{flex:auto;min-width:0}.set-row.set-door .set-lab>b.crit{color:var(--critical-text)}.set-row.set-door .conn-chev{flex:none}.set-row.set-door.set-door-fig{flex-wrap:wrap;row-gap:10px;padding:12px 0 14px}.set-row.set-door.set-door-fig .set-lab{flex:auto;min-width:0}.set-door-note{font:var(--role-meta);color:var(--mid);font-variant-numeric:tabular-nums;flex:none}.set-door-figure{flex:1 0 100%;display:block}.tf-week{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;display:grid}.tf-day{flex-direction:column;gap:5px;display:flex}.tf-bar{background:var(--mid);opacity:.35;border-radius:3px;height:10px;display:block}.tf-long .tf-bar{background:var(--zone-2);opacity:1;height:30px}.tf-hard .tf-bar{background:var(--zone-4);opacity:1;height:20px}.tf-rest .tf-bar{background:var(--faint);opacity:1;height:2px}.tf-dlab{font:var(--role-label);color:var(--faint);text-align:center}.tf-long .tf-dlab,.tf-hard .tf-dlab{color:var(--ink)}.tf-watch{display:block}.tf-watch svg{width:100%;height:32px;display:block}.tf-easy{fill:var(--zone-2)}.tf-work{fill:var(--zone-4)}.tf-target{fill:var(--ink)}.tf-open{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:2 2}.tf-cap{font:var(--role-label);color:var(--faint);grid-template-columns:1fr 2fr 1fr;margin-top:5px;display:grid}.tf-cap>span:nth-child(2){text-align:center}.tf-zones{display:block}.tf-ramp{grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;display:grid}.tf-zone{text-align:center;font:var(--role-label);border-radius:3px;padding:5px 0;display:block}.tf-lines{font:var(--role-chart);color:var(--faint);font-variant-numeric:tabular-nums;margin-top:5px;display:grid}.tf-line{text-align:center}.tf-line.tf-thr{color:var(--ink);font-weight:650}.tf-weather{font:var(--role-meta);color:var(--mid);align-items:center;gap:8px;display:flex}.tf-weather svg{width:22px;height:22px;color:var(--ink);flex:none}a.set-row.set-door{text-decoration:none}.race-inbox-count{background:var(--accent);min-width:22px;color:var(--accent-ink);font-size:var(--type-small);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:1px 7px;font-weight:600}.race-inbox-bar{justify-content:space-between;align-items:center;gap:var(--space-3);margin:var(--space-3) 0;display:flex}.race-inbox-list{padding-top:0;padding-bottom:0;list-style:none}.race-inbox-row{border-bottom:1px solid var(--gridline);padding:10px 0}.race-inbox-row:last-child{border-bottom:0}.race-inbox-row.not-race .ri-head,.race-inbox-row.not-race .ri-stats{opacity:.55}.ri-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);display:flex}.ri-name{color:var(--text-primary);overflow-wrap:anywhere;min-width:0;font-weight:600;text-decoration:none}.ri-date{font-size:var(--type-small);color:var(--text-muted);white-space:nowrap;flex:none}.ri-stats{font-size:var(--type-small);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:2px 0 0}.ri-desc{font-size:var(--type-small);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-style:italic;overflow:hidden}.ri-pick{align-items:center;gap:var(--space-2);margin-top:6px;display:flex}.ri-pick .notes-select{flex:0 auto;max-width:48%;padding-top:6px;padding-bottom:6px}.ri-pick .filter-chip{flex:none}.ri-why{min-width:0;font-size:var(--type-small);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:auto;line-height:1.3;display:-webkit-box;overflow:hidden}.race-inbox-bar .login-btn{width:auto;padding-inline:var(--space-5);flex:none}.race-inbox-more{margin:var(--space-3) auto 0;display:block}.dc-profile .set-sheet>.set-card,.dc-profile .set-sheet>.set-card.danger,.dc-profile .set-sheet>.card{box-shadow:none;margin:0 0 var(--space-3);background:0 0;border:0;border-radius:0;padding:0;overflow:visible}.set-sheet .set-kick-row{justify-content:flex-end}.sheet-grp #strava-writeback{background:0 0;border:0;border-radius:0;margin:0;padding:0;overflow:visible}.threshold-goal-row{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.threshold-goal-tile{border:1px solid var(--border);padding:var(--space-3);background:var(--surface);border-radius:12px}.threshold-goal-tile:first-child{border-color:var(--accent)}.threshold-goal-label{color:var(--text-secondary);font-size:var(--type-small);margin:0}.threshold-goal-now{font-size:var(--type-heading);font-variant-numeric:tabular-nums;margin:2px 0;font-weight:650}.threshold-goal-need{color:var(--text-secondary);font-size:var(--type-small);margin:0}.threshold-goal-need b{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:650}.threshold-goal-verdict{margin:var(--space-2) 0 0;color:var(--text-primary);font-size:var(--type-small)}.threshold-goal-note{color:var(--text-muted);font-size:var(--type-small);margin:0}.wb-preview .filter-chip{margin-top:4px}.wb-edit{gap:8px;display:grid}.wb-edit .edit-input{box-sizing:border-box;width:100%}@keyframes ap-fade{0%{opacity:0}}@keyframes ap-pop{0%{opacity:0;transform:scale(.2)}}@keyframes ap-growx{0%{transform:scaleX(0)}}.dc-progress .curve-line,.dc-progress .physiology-line.primary,.dc-progress .base-line,.dc-progress .base-recent,.dc-progress .adj-line-yours{animation:1.1s cubic-bezier(.2,.7,.2,1) .1s backwards ap-wipe}.dc-progress .curve-fit-line,.dc-progress .physiology-line.secondary,.dc-progress .curve-fit-band,.dc-progress .curve-band,.dc-progress .base-fill,.dc-progress .adj-heat-band,.dc-progress .adj-heat-edge,.dc-progress .adj-line-published{animation:.8s .6s both ap-fade}.dc-progress .curve-dot,.dc-progress .base-peakdot,.dc-progress .base-now,.dc-progress .adj-dot{transform-box:fill-box;transform-origin:50%;animation:.45s cubic-bezier(.2,.7,.2,1) both ap-pop;animation-delay:calc(.9s + var(--i,0) * 50ms)}.dc-progress .trend-bar,.dc-progress .hold-bar,.dc-progress .bank-row-now,.dc-progress .recipe-stack>span{transform-origin:0;animation:.7s cubic-bezier(.2,.7,.2,1) both ap-growx;animation-delay:calc(var(--i,0) * 45ms)}.dc-progress .hold-row:nth-child(2) .hold-bar,.dc-progress .bank-row:nth-child(2) .bank-row-now,.dc-progress .recipe-stack>span:nth-child(2){animation-delay:60ms}.dc-progress .hold-row:nth-child(3) .hold-bar,.dc-progress .bank-row:nth-child(3) .bank-row-now,.dc-progress .recipe-stack>span:nth-child(3){animation-delay:.12s}.dc-progress .hold-row:nth-child(4) .hold-bar,.dc-progress .bank-row:nth-child(4) .bank-row-now,.dc-progress .recipe-stack>span:nth-child(4){animation-delay:.18s}.dc-progress .hold-row:nth-child(5) .hold-bar,.dc-progress .bank-row:nth-child(5) .bank-row-now,.dc-progress .recipe-stack>span:nth-child(5){animation-delay:.24s}.dc-progress .hold-row:nth-child(n+6) .hold-bar,.dc-progress .bank-row:nth-child(n+6) .bank-row-now,.dc-progress .recipe-stack>span:nth-child(n+6){animation-delay:.3s}.dc-progress .tbank-bar{transform-origin:bottom;animation:.7s cubic-bezier(.2,.7,.2,1) both ap-grow}.dc-progress .tbank-col:nth-child(2) .tbank-bar{animation-delay:40ms}.dc-progress .tbank-col:nth-child(3) .tbank-bar{animation-delay:80ms}.dc-progress .tbank-col:nth-child(4) .tbank-bar{animation-delay:.12s}.dc-progress .tbank-col:nth-child(5) .tbank-bar{animation-delay:.16s}.dc-progress .tbank-col:nth-child(6) .tbank-bar{animation-delay:.2s}.dc-progress .tbank-col:nth-child(7) .tbank-bar{animation-delay:.24s}.dc-progress .tbank-col:nth-child(n+8) .tbank-bar{animation-delay:.28s}@media (prefers-reduced-motion:reduce){.dc-progress .curve-line,.dc-progress .physiology-line.primary,.dc-progress .base-line,.dc-progress .base-recent,.dc-progress .adj-line-yours,.dc-progress .curve-fit-line,.dc-progress .physiology-line.secondary,.dc-progress .curve-fit-band,.dc-progress .curve-band,.dc-progress .base-fill,.dc-progress .adj-heat-band,.dc-progress .adj-heat-edge,.dc-progress .curve-dot,.dc-progress .base-peakdot,.dc-progress .base-now,.dc-progress .adj-dot,.dc-progress .trend-bar,.dc-progress .hold-bar,.dc-progress .bank-row-now,.dc-progress .recipe-stack>span,.dc-progress .tbank-bar,.dc-progress .adj-line-published{animation:none}}.tg-track{height:30px;margin:var(--space-2) 0 var(--space-1);position:relative}.tg-track:before{content:"";background:var(--rule);border-radius:2px;height:2px;position:absolute;top:14px;left:0;right:0}.tg-goal,.tg-start,.tg-now{position:absolute;transform:translate(-50%)}.tg-goal,.tg-start{font:var(--role-chart);color:var(--mid);white-space:nowrap;flex-direction:column;align-items:center;display:flex}.tg-goal{flex-direction:column-reverse;top:0}.tg-goal i{background:var(--ink);width:2px;height:12px;margin-top:1px}.tg-start{top:11px}.tg-start i{width:8px;height:8px;box-shadow:inset 0 0 0 1.5px var(--faint);background:var(--surface);border-radius:50%}.tg-now{background:var(--accent);border-radius:50%;width:10px;height:10px;top:10px}.profile-section{display:block}.profile-section+.profile-section{margin-top:22px}.dc-profile .settings-wrap>.profile-section:first-of-type>.set-card:first-of-type>.set-kick:first-child,.dc-profile .settings-wrap>.profile-section:first-of-type>.set-card:first-of-type>.set-kick-row:first-child,.dc-profile .settings-wrap>.profile-section:first-of-type>.set-card:first-of-type>.set-kick-row:first-child>.set-kick,.dc-profile .settings-wrap>.profile-section:first-of-type>.card:first-of-type>.set-kick:first-child,.dc-profile .settings-wrap>.profile-section:first-of-type>.card:first-of-type>.card-head-row:first-child,.dc-profile .settings-wrap>.profile-section:first-of-type>.card:first-of-type>.card-head-row:first-child>.card-kicker{border-top:0}.dc-profile.prp .settings-wrap>h1+.profile-section>.set-card{margin-top:0}

