.today-briefing{border-bottom:1px solid var(--hairline);grid-column:1;min-width:0;padding-bottom:24px}.today-briefing h2{font-size:19px}.today-briefing .training-section-heading{align-items:baseline;margin-bottom:12px}.today-briefing-text{max-width:62ch;color:var(--ink-2);text-wrap:pretty;overflow-wrap:anywhere;margin-bottom:16px;font-size:16px;line-height:1.65}.today-briefing-controls{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.today-briefing-voice{color:var(--muted);font-size:14px}.today-briefing-error{color:var(--warn);text-wrap:pretty;margin-top:14px;font-size:14px;line-height:1.6}.today-briefing .voice-player{margin-top:0}@media (max-width:900px){.today-briefing-controls{align-items:flex-start}}
.morning-check{background:var(--paper-2);border-radius:8px;gap:16px;padding:18px 20px;display:grid}.morning-check-title{color:var(--ink);font-size:15px;font-weight:650;line-height:1.35}.morning-check-question{border:0;min-width:0;margin:0;padding:0}.morning-check-question legend{color:var(--ink-2);margin-bottom:8px;padding:0;font-size:14px}.morning-check-options{flex-wrap:wrap;gap:8px;display:flex}.morning-check-options label{background:var(--paper);border:1px solid var(--hairline-strong);min-height:44px;color:var(--ink);cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:8px 16px 8px 12px;font-size:14.5px;display:inline-flex}.morning-check-options label:hover{border-color:var(--ink-2)}.morning-check-options label[data-selected]{background:var(--paper-3);border-color:var(--violet)}.morning-check-options input{width:16px;height:16px;accent-color:var(--violet);flex:none;margin:0}.morning-check-options label:has(input:focus-visible){outline:2px solid var(--violet);outline-offset:2px}.morning-check-words{color:var(--ink-2);gap:6px;font-size:14px;display:grid}.morning-check-words input{border:1px solid var(--field-border);background:var(--paper);min-height:44px;color:var(--ink);font-family:var(--font-nb-sans);border-radius:8px;padding:10px 12px;font-size:15px}.morning-check-words input::placeholder{color:var(--muted)}.morning-check-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 16px;font-size:13.5px;line-height:1.5;display:flex}.morning-check-foot .text-action{min-height:44px}.morning-check .dashboard-error{margin:0}.today-main>:is(.morning-check,.morning-check-line){grid-column:1;min-width:0;max-width:none}.morning-check-line{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:14px;line-height:1.5;display:flex}.morning-check-line>span b{color:var(--ink);font-weight:600}.morning-check-line .text-action{min-height:44px;margin-block:-12px}@media (max-width:700px){.morning-check{padding:16px}.morning-check-words input{font-size:16px}}
.today-main>.daily-look{grid-column:1;min-width:0}.daily-look{border-top:1px solid var(--hairline);padding-top:26px}.daily-look h2{font-size:19px}.daily-look h2:focus{outline:none}.daily-look h2:focus-visible{outline:2px solid var(--violet);outline-offset:4px}.daily-look-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.daily-look-head span{color:var(--muted);font-size:14px}.daily-look>p,.daily-look-message p{max-width:62ch;color:var(--ink-2);text-wrap:pretty;overflow-wrap:anywhere;margin-top:12px;font-size:16px;line-height:1.65}.daily-look-message{margin-top:2px}.daily-look .dashboard-actions{margin-top:16px}.daily-look .coach-urgent{margin-top:14px}.daily-look .coach-dock-proposal{max-width:62ch;margin-top:16px}.daily-look-stale{color:var(--muted)!important;font-size:14px!important}.daily-look-earlier{max-width:62ch;margin-top:6px}.daily-look-earlier>summary{cursor:pointer;min-height:44px;color:var(--violet);align-content:center;font-size:14px;font-weight:600}.daily-look-earlier>summary:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:4px}.daily-look-earlier .daily-look-message p:first-child{margin-top:0}.daily-look-reply{margin-top:10px}.daily-look-reply .text-action{min-height:44px;color:var(--violet);gap:8px;font-size:14px;font-weight:600}
.today-other-races{padding:26px 4px 4px}.today-other-races h2{font-size:19px}.today-other-races ul{border-top:1px solid var(--hairline);margin:14px 0 6px;padding:0;list-style:none}.today-other-races li{border-bottom:1px solid var(--hairline);padding:12px 0}.today-other-races li a{min-height:30px;color:var(--ink);justify-content:space-between;align-items:baseline;gap:12px;text-decoration:none;display:flex}.today-other-races li a strong{overflow-wrap:anywhere;font-size:15.5px;font-weight:600}.today-other-races li a span{font-family:var(--font-nb-mono);color:var(--ink-2);flex:none;font-size:13px}.today-other-races li a:hover strong{color:var(--violet);text-underline-offset:3px;text-decoration:underline}.today-other-races li p{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.5}.today-other-races>.text-action{margin-top:4px;font-size:14px}
.season-chart{--season-bars:172px;margin:0}.dashboard-main .season-chart-head .season-chart-title{max-width:none;color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.season-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;margin-bottom:8px;display:flex}.dashboard-main .season-chart-head p{max-width:58ch;color:var(--muted);text-wrap:pretty;margin:0;font-size:14px;line-height:1.55}.season-chart-plot{grid-template-columns:38px minmax(0,1fr);align-items:start;gap:8px;display:grid}.season-chart-axis{height:var(--season-bars);margin-top:24px;position:relative}.season-chart-axis span{font-family:var(--font-nb-mono);color:var(--muted);white-space:nowrap;font-size:11.5px;position:absolute;right:0;transform:translateY(50%)}.season-chart-scroll{min-width:0;padding-top:24px}.season-chart-bars{height:var(--season-bars);grid-template-columns:repeat(var(--season-weeks), minmax(0, 1fr));border-bottom:1px solid var(--hairline-strong);align-items:end;gap:4px;display:grid;position:relative}.season-chart-bars>i{border-top:1px dashed var(--hairline);pointer-events:none;height:0;position:absolute;left:0;right:0}.season-chart-week{min-width:0;height:100%;position:relative}.season-chart-week>span{border-radius:3px 3px 0 0;position:absolute;bottom:0;left:0;right:0}.season-chart-scheduled{border:1px solid var(--season-planned-edge);background:var(--paper-2);border-bottom:0}.season-chart-done{background:var(--season-done)}.season-chart-week[data-when=now] .season-chart-scheduled{border-color:var(--season-now)}.season-chart-week[data-when=now] .season-chart-done{background:var(--season-now)}.season-chart-flag{color:var(--ink-2);position:absolute;top:-20px;left:50%;translate:-50%}.season-chart-sports{border-radius:2px 2px 0 0;flex-direction:column-reverse;display:flex;position:absolute;inset:0;overflow:hidden}.season-chart-sports i{min-height:0;display:block}.season-chart [data-chart-sport=swim]{--chart-sport:var(--swim)}.season-chart [data-chart-sport=bike]{--chart-sport:var(--bike)}.season-chart [data-chart-sport=run]{--chart-sport:var(--run)}.season-chart [data-chart-sport=strength]{--chart-sport:var(--muted)}.season-chart-sports i{background:var(--chart-sport)}.season-chart[data-by-sport] .season-chart-week[data-when=now] .season-chart-scheduled{border:2px solid var(--ink);border-bottom:0}.season-chart .season-chart-phases{grid-template-columns:repeat(var(--season-weeks), minmax(0, 1fr));max-width:none;color:var(--muted);gap:4px;margin:8px 0 0;font-size:12.5px;display:grid}.season-chart-phases span{border-top:1px solid var(--hairline-strong);text-overflow:ellipsis;white-space:nowrap;min-width:0;padding-top:5px;overflow:hidden}.season-chart .season-chart-key{max-width:none;color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:16px 0 0 46px;font-size:13px;display:flex}.season-chart-key span{align-items:center;gap:7px;display:inline-flex}.season-chart-key span:before{content:"";border:1px solid var(--season-planned-edge);background:var(--paper-2);border-radius:3px;width:12px;height:12px}.season-chart-key [data-key=done]:before{border-color:var(--season-done);background:var(--season-done)}.season-chart-key [data-key=now]:before{border-color:var(--season-now);background:linear-gradient(to top, var(--season-now) 45%, var(--paper-2) 45%)}.season-chart-key [data-chart-sport]:before{border-color:var(--chart-sport);background:var(--chart-sport)}.season-chart-key [data-key=now-outline]:before{border:2px solid var(--ink);background:0 0}.season-chart .training-chart-data{margin-left:46px}.season-chart .training-chart-data tr[data-now]>*{background:var(--paper-2)}.season-chart[data-interactive] button.season-chart-week{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px 4px 0 0;padding:0;display:block}.season-chart[data-interactive] button.season-chart-week:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.season-chart[data-interactive] button.season-chart-week[aria-pressed=true]{background:var(--paper-3);box-shadow:inset 0 -3px 0 var(--ink)}.season-chart[data-interactive] button.season-chart-week:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.season-chart[data-interactive] .season-chart-week>span{left:3px;right:3px}@media (max-width:600px){.season-chart{--season-bars:140px}.season-chart-plot{grid-template-columns:30px minmax(0,1fr);gap:6px}.season-chart-bars,.season-chart .season-chart-phases{gap:2px}.season-chart .season-chart-phases{font-size:11.5px}.season-chart .season-chart-key,.season-chart .training-chart-data{margin-left:0}}@media (forced-colors:active){.season-chart-done,.season-chart-sports i{background:canvastext}}
.process{border-top:1px solid var(--hairline-strong);margin-top:56px;padding-top:30px}.process-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px 32px;display:flex}.process-head h2{font-family:var(--font-nb-display);letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.2}.dashboard-main .process-head p{max-width:50ch;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.process-nav{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.process-nav a{border:1px solid var(--hairline-strong);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;padding:0 16px;font-size:14px;text-decoration:none;display:inline-flex}.process-nav a:hover{background:var(--paper-2);border-color:var(--season-planned-edge)}.process :is(a,button,summary):focus-visible,.build-panel a:focus-visible{outline:2px solid var(--violet);outline-offset:3px}.process-row{border-top:1px solid var(--hairline);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:52px;padding:40px 0 44px;scroll-margin-top:96px;display:grid}.process-row:first-of-type{margin-top:30px}.process-row[data-single]{grid-template-columns:minmax(0,1fr)}.process-say,.process-show{min-width:0}.process-say h3{font-family:var(--font-nb-display);letter-spacing:-.02em;color:var(--ink);font-size:21px;font-weight:600;line-height:1.3}.dashboard-main .process-answer{max-width:46ch;color:var(--ink);text-wrap:pretty;margin:12px 0 0;font-size:19px;line-height:1.5}.said-figure{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;word-spacing:-.3em;white-space:nowrap;font-weight:500}.process-answer .said-figure{font-size:.95em}.dashboard-main .process-fact{max-width:60ch;color:var(--muted);text-wrap:pretty;margin:10px 0 0;font-size:14px;line-height:1.55}.process-fact .said-figure{color:var(--ink)}.dashboard-main .process-empty{max-width:56ch;color:var(--muted);margin:12px 0 0;font-size:15px;line-height:1.55}.process-how{margin-top:14px;font-size:14px}.process-how summary{width:fit-content;min-height:44px;color:var(--violet);cursor:pointer;align-items:center;display:flex}.process-how summary:hover{text-underline-offset:4px;text-decoration:underline}.dashboard-main .process-how p{max-width:60ch;color:var(--muted);margin:0;line-height:1.55}.process-test{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.dashboard-main .process-test p{color:var(--ink-2);margin:0}.process-test a{color:var(--violet);align-items:center;gap:4px;font-weight:600;text-decoration:none;display:inline-flex}.process-test a:hover{text-underline-offset:3px;text-decoration:underline}.process-block{margin-top:26px}.dashboard-main .process-block-title{color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.process-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:4px;display:flex}.dashboard-main .process-chart-head p{color:var(--muted);margin:0;font-size:14px}.process-toggle{border:1px solid var(--hairline-strong);background:var(--paper-2);border-radius:8px;padding:3px;display:inline-flex}.process-toggle button{min-height:44px;color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 14px;font-size:14px}.process-toggle button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline-strong);font-weight:600}.work-strip{margin:0}.work-strip figcaption{color:var(--ink-2);font-size:14px;font-weight:600}.work-strip-bars{grid-template-columns:repeat(var(--weeks), minmax(0, 1fr));border-bottom:1px solid var(--season-planned-edge);align-items:end;gap:4px;height:96px;margin-top:14px;display:grid}.work-strip-bars span{height:100%;position:relative}.work-strip-bars :is(i,b){border-radius:3px 3px 0 0;position:absolute;bottom:0;left:0;right:0}.work-strip-bars i{border:1px solid var(--season-planned-edge);background:var(--paper-2);border-bottom:0}.work-strip-bars b{background:var(--season-done)}.work-strip-bars [data-when=now] i{border-color:var(--season-now)}.work-strip-bars [data-when=now] b{background:var(--season-now)}.dashboard-main .work-strip-ends{max-width:none;color:var(--muted);justify-content:space-between;gap:12px;margin:6px 0 0;font-size:12.5px;display:flex}.work-strip-now{color:var(--ink);font-weight:600}.sport-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0 0;display:grid}.sport-counts>div{--sport:var(--muted);border-top:1px solid var(--hairline);padding-top:12px}.process [data-sport-row=swim],.build-panel [data-sport-row=swim]{--sport:var(--swim)}.process [data-sport-row=bike],.build-panel [data-sport-row=bike]{--sport:var(--bike)}.process [data-sport-row=run],.build-panel [data-sport-row=run]{--sport:var(--run)}.sport-counts dt{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:flex}.sport-swatch{background:var(--sport);flex:none;width:8px;height:8px}.sport-counts dd{gap:2px;margin:6px 0 0;display:grid}.sport-count{color:var(--muted);font-size:14px}.sport-count .said-figure{color:var(--ink);font-size:19px}.sport-time{color:var(--muted);font-size:13.5px}.long-sessions{margin:10px 0 0;padding:0;list-style:none}.long-sessions li{--sport:var(--muted);margin-top:12px}.dashboard-main .long-sessions li>p:first-child{justify-content:space-between;gap:12px;max-width:none;margin:0;font-size:14.5px;display:flex}.long-track{background:var(--paper-3);border-radius:3px;height:6px;margin-top:7px;display:block;position:relative}.long-track i{background:var(--sport);border-radius:3px;height:100%;display:block}.long-track b{background:var(--ink);width:2px;height:14px;margin-left:-1px;position:absolute;top:-4px}.long-sessions .process-fact{margin-top:4px}.effort-row{margin-top:12px}.dashboard-main .effort-row>p:first-child{justify-content:space-between;gap:12px;max-width:none;margin:0 0 6px;font-size:14px;display:flex}.effort-bar{border-radius:3px;gap:2px;min-width:6px;height:12px;display:flex;overflow:hidden}.effort-bar i{flex-basis:0;min-width:3px}.effort-row .process-fact{margin-top:5px;font-size:13px}[data-effort=easy]{--effort:var(--ramp-1)}[data-effort=medium]{--effort:var(--ramp-2)}[data-effort=hard]{--effort:var(--ramp-3)}[data-effort=sprint]{--effort:var(--ink)}[data-effort=unset]{--effort:var(--paper-3)}.effort-bar i{background:var(--effort)}.effort-bar i[data-effort=unset]{box-shadow:inset 0 0 0 1px var(--season-planned-edge)}.dashboard-main .effort-key,.dashboard-main .body-key{max-width:none;color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;font-size:13px;display:flex}.effort-key span,.body-key span{align-items:center;gap:7px;display:inline-flex}.effort-key span:before{content:"";background:var(--effort);border-radius:3px;width:12px;height:12px}.effort-key [data-effort=unset]:before{box-shadow:inset 0 0 0 1px var(--season-planned-edge)}.body-ranges{margin:6px 0 0;padding:0;list-style:none}.body-ranges li{border-bottom:1px solid var(--hairline);padding:12px 0}.dashboard-main .body-ranges li>p:first-child{justify-content:space-between;gap:12px;max-width:none;margin:0;font-size:14.5px;display:flex}.body-ranges li>p:first-child .said-figure{font-size:17px}.body-range{background:linear-gradient(var(--hairline-strong), var(--hairline-strong)) center / 100% 1px no-repeat;margin-top:6px;padding:0 6px;display:block}.body-range-track{height:28px;display:block;position:relative}.body-range i{position:absolute}.body-range-ends{color:var(--muted);font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;word-spacing:-.3em;justify-content:space-between;margin-top:2px;font-size:12px;display:flex}.body-band{background:var(--paper-3);height:12px;box-shadow:inset 0 0 0 1px var(--season-planned-edge);border-radius:3px;top:8px}.body-day{background:var(--ink-2);border-radius:50%;width:10px;height:10px;margin-left:-5px;top:9px}.body-mean{background:var(--ink);width:2px;height:26px;margin-left:-1px;top:1px}.body-ranges .process-fact{margin-top:4px;font-size:13px}.body-key span:before{content:"";display:inline-block}.body-key [data-key=band]:before{background:var(--paper-3);width:18px;height:10px;box-shadow:inset 0 0 0 1px var(--season-planned-edge);border-radius:2px}.body-key [data-key=day]:before{background:var(--ink-2);border-radius:50%;width:9px;height:9px}.body-key [data-key=mean]:before{background:var(--ink);width:2px;height:14px}.morning-rows{border-collapse:collapse;width:100%;margin-top:10px}.morning-rows th{width:84px;color:var(--ink-2);text-align:left;white-space:nowrap;padding:6px 12px 6px 0;font-size:14px;font-weight:400}.morning-rows td{padding:6px 0}.morning-cells{grid-template-columns:repeat(14,minmax(0,1fr));gap:3px;min-width:196px;display:grid}.morning-cells>span{border-radius:3px;height:20px}.morning-cells [data-empty]{box-shadow:inset 0 0 0 1px var(--season-planned-edge)}:is(.morning-cells,.morning-scale) [data-level="1"]{background:var(--ramp-1)}:is(.morning-cells,.morning-scale) [data-level="2"]{background:var(--ramp-2)}:is(.morning-cells,.morning-scale) [data-level="3"]{background:var(--ramp-3)}.morning-scale{color:var(--muted);white-space:nowrap;justify-content:flex-end;align-items:center;gap:3px;font-size:12.5px;display:flex;padding-left:14px!important}.morning-scale i{border-radius:2px;width:9px;height:9px}.morning-scale i:first-of-type{margin-left:5px}.morning-scale i:last-of-type{margin-right:5px}.easy-trends{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.easy-trend{--sport:var(--muted);min-width:0;margin:0}.easy-trend figcaption{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.easy-slope{border-bottom:1px solid var(--season-planned-edge);height:88px;margin-top:12px;position:relative}.easy-slope svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.easy-slope polyline{fill:none;stroke:var(--sport);stroke-width:2px}.easy-dot{background:var(--sport);width:11px;height:11px;box-shadow:0 0 0 2px var(--paper);border-radius:50%;margin:-5.5px 0 0 -5.5px;position:absolute}.dashboard-main .easy-ends{justify-content:space-between;gap:12px;max-width:none;margin:8px 0 0;display:flex}.easy-ends>span{color:var(--muted);gap:1px;font-size:13px;display:grid}.easy-ends>span:last-child:not(:first-child){text-align:right}.easy-ends .said-figure{color:var(--ink);font-size:14.5px}.process-record{border-top:1px solid var(--hairline);padding-top:22px;scroll-margin-top:96px}.process-record summary{cursor:pointer;min-height:44px;color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding-top:8px;font-size:14px;display:flex}.process-record-title{font-family:var(--font-nb-display);letter-spacing:-.02em;color:var(--ink);font-size:21px;font-weight:600}.process-record summary{list-style:none}.process-record summary::-webkit-details-marker{display:none}.process-record-chevron{width:20px;height:20px;color:var(--violet);flex:none;align-self:center;margin-left:auto;transition:transform .18s ease-out}.process-record details[open] .process-record-chevron{transform:rotate(180deg)}.process-record summary:hover .process-record-title{text-underline-offset:4px;text-decoration:underline}@media (prefers-reduced-motion:reduce){.process-record-chevron{transition:none}}.process-table{border-collapse:collapse;text-align:left;width:100%;margin-top:14px;font-size:13.5px}.process-table caption{color:var(--muted);text-align:left;margin-bottom:8px;font-size:13.5px}.process-table :is(th,td){border-bottom:1px solid var(--hairline);white-space:nowrap;padding:10px 16px 10px 0}.process-table thead th{color:var(--muted);font-size:13px;font-weight:500}.process-table tbody th{font-weight:600}.process-table td{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;color:var(--ink-2)}.process-months td{font-family:var(--font-nb-sans);color:var(--muted)}.process-months td .said-figure{color:var(--ink-2);font-weight:400}.build-panel{border-top:1px solid var(--hairline-strong);padding-top:28px}.build-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;margin-bottom:8px;display:flex}.build-panel-head h2{font-family:var(--font-nb-display);letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:1.2}.dashboard-main .build-panel-head p{color:var(--muted);margin:0;font-size:14px}.build-panel .season-chart .training-chart-data{display:none}.build-rows{margin:24px 0 0}.build-rows>div{border-top:1px solid var(--hairline);grid-template-columns:172px minmax(0,1fr);align-items:baseline;gap:18px;display:grid}.build-rows dt{color:var(--ink);padding:16px 0;font-size:14.5px;font-weight:600}.build-rows dd{margin:0}.build-rows a{color:var(--ink);grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:14px;padding:14px 0;text-decoration:none;display:grid}.build-rows a:hover{background:var(--paper-2);box-shadow:-10px 0 0 var(--paper-2), 10px 0 0 var(--paper-2)}.dashboard-main .build-rows a p{max-width:none;margin:0;font-size:16.5px;line-height:1.5}.build-rows a>svg{color:var(--violet)}.dashboard-main .build-note{color:var(--muted);margin:14px 0 0;font-size:13.5px}@media (max-width:900px){.process-row{grid-template-columns:minmax(0,1fr);gap:26px}}@media (max-width:700px){.build-rows>div{grid-template-columns:minmax(0,1fr);gap:0}.build-rows dt{padding:14px 0 2px}.build-rows a{padding:2px 0 14px}.process-head h2{font-size:24px}.process-row{padding:30px 0 34px}.dashboard-main .process-answer{font-size:18px}.process-toggle{width:100%}.process-toggle button{flex:1}.morning-rows th{width:auto;padding-right:8px;font-size:13.5px}.morning-scale{justify-content:flex-start;padding:2px 0 4px!important}.morning-rows tr{grid-template-columns:minmax(0,1fr);display:grid}.morning-rows th{padding-bottom:2px}.process-months thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.process-months :is(tbody,tr,th,td){display:block}.process-months tr{border-bottom:1px solid var(--hairline);padding:10px 0}.process-months :is(th,td){white-space:normal;border:0;padding:3px 0}.process-months td{justify-content:space-between;gap:12px;display:flex}.process-month-value{text-align:right}.process-months td:before{content:attr(data-label);color:var(--muted);font-family:var(--font-nb-sans)}}@media (max-width:600px){.easy-trends{grid-template-columns:minmax(0,1fr)}}@media (forced-colors:active){.work-strip-bars b,.long-track i,.effort-bar i,.morning-cells [data-level],.body-day,.body-mean,.easy-dot{background:canvastext}.easy-slope polyline{stroke:canvastext}}
.squad-sees{border:0;gap:4px;min-width:0;margin:20px 0 0;padding:0;display:grid}.squad-sees legend{color:var(--ink);margin-bottom:8px;padding:0;font-size:16px;font-weight:600}.squad-sees-always,.squad-sees-never{color:var(--ink-2);max-width:70ch;margin:0;font-size:14px;line-height:1.6}.squad-sees-never{color:var(--muted);margin-top:10px}.squad-see{border-top:1px solid var(--hairline);cursor:pointer;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;min-height:44px;padding:10px 0;display:grid}.squad-see:first-of-type{margin-top:8px}.squad-see input{width:20px;height:20px;accent-color:var(--violet);margin:2px 0 0}.squad-see>span{min-width:0;color:var(--muted);gap:2px;font-size:14px;line-height:1.55;display:grid}.squad-see strong{color:var(--ink);font-size:15px;font-weight:600}.squad-sees:disabled .squad-see{cursor:default;opacity:.7}.squad-sees-read ul{margin:8px 0 0;padding:0;list-style:none;display:grid}.squad-sees-read li{border-top:1px solid var(--hairline);color:var(--muted);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 16px;padding:10px 0;font-size:14px;line-height:1.55;display:grid}.squad-sees-read li>span:first-child{gap:2px;min-width:0;display:grid}.squad-sees-read li strong{color:var(--ink);font-size:15px;font-weight:600}.squad-see-state{color:var(--muted);white-space:nowrap;font-size:13.5px;font-weight:600}.squad-sees-read li[data-on] .squad-see-state{color:var(--violet)}.squad-sees-read li:not([data-on]) strong{color:var(--ink-2)}.squad-section .dashboard-actions{margin-top:16px}.squad-coach,.squad-invite{border-top:1px solid var(--hairline);margin-top:20px;padding:20px 0 4px}.squad-coach h3{font-size:18px;font-weight:600}.squad-invite>p:first-child,.squad-link-panel>p:first-child{gap:2px;margin:0;display:grid}.squad-invite>p:first-child strong,.squad-link-panel>p:first-child strong{color:var(--ink);font-size:16px;font-weight:600}.squad-invite>p:first-child span,.squad-link-panel>p:first-child span{color:var(--muted);font-size:14px}.squad-link{max-width:560px;color:var(--muted);gap:6px;margin-top:14px;font-size:13px;display:grid}.squad-link input{border:1px solid var(--field-border,var(--hairline-strong));background:var(--paper-2);width:100%;min-width:0;min-height:44px;color:var(--ink);font:14px/1.4 var(--font-nb-mono);border-radius:4px;padding:10px 12px}.squad-saved{color:var(--violet);margin:12px 0 0;font-size:14px;font-weight:600}.squad-coach-line{border-top:1px solid var(--hairline);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin:28px 0 0;padding-top:20px;font-size:14px;display:flex}.squad-join{max-width:720px}.squad-join .dashboard-actions{margin-top:24px}.squad-join-sub{margin-top:24px;font-size:16px;font-weight:600}.squad-page{max-width:1080px}.squad-status,.squad-empty{color:var(--muted)}.squad-empty{max-width:60ch;margin-top:24px}.squad-link-panel{background:var(--paper-2);border-radius:8px;margin:8px 0 28px;padding:20px}.squad-link-panel .dashboard-actions{margin-top:14px}.squad-table{border-collapse:collapse;width:100%;font-size:15px}.squad-table th,.squad-table td{border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;padding:14px 16px 14px 0}.squad-table thead th{color:var(--muted);padding-top:0;font-size:13px;font-weight:600}.squad-table tbody th{font-weight:600}.squad-table tbody th a{color:var(--ink);text-decoration:none}.squad-table tbody th a:hover,.squad-table tbody th a:focus-visible{color:var(--violet);text-underline-offset:4px;text-decoration:underline}.squad-table small{color:var(--muted);margin-top:2px;font-size:13px;font-weight:400;display:block}.squad-table tbody tr{position:relative}.squad-table tbody tr:hover{background:var(--paper-2)}.squad-table tbody th a:after{content:"";position:absolute;inset:0}.squad-table tbody tr:hover th a{color:var(--violet);text-underline-offset:4px;text-decoration:underline}.squad-table tbody tr:has(a:focus-visible){outline:2px solid var(--violet);outline-offset:-2px}.squad-table tbody th a:focus-visible{outline:none}.squad-ledger,.squad-num{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums}.squad-ledger{color:var(--ink-2);white-space:nowrap;font-size:14px}.squad-flag{white-space:nowrap}.squad-flags{flex-wrap:wrap;justify-content:flex-start;gap:4px 14px;margin:0;padding:0;list-style:none;display:flex}.squad-flag-word{color:var(--ink-2);white-space:nowrap;align-items:center;gap:7px;font-size:13.5px;font-weight:600;display:inline-flex}.squad-flag-word:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.squad-flag-word[data-flag=missed]{color:var(--warn)}.squad-flag-word:is([data-flag=quiet],[data-flag=short]){color:var(--caution)}.squad-flag-word[data-flag=on-track]{color:var(--violet)}.squad-athlete>.squad-flags{justify-content:flex-start;margin:-8px 0 20px}.squad-recent{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;gap:10px;font-size:13.5px;display:inline-flex}.squad-recent [data-full]{color:var(--ink-2)}.squad-recent-weeks{margin-top:32px}.squad-recent-weeks h2{font-size:20px;font-weight:600}.squad-recent-weeks ol{margin:10px 0 0;padding:0;list-style:none;display:grid}.squad-recent-weeks li{border-bottom:1px solid var(--hairline);color:var(--ink-2);font-size:14px}.squad-recent-weeks a{min-height:44px;color:inherit;border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin-inline:-8px;padding:10px 8px;text-decoration:none;display:flex}.squad-recent-weeks a:hover{background:var(--paper-2)}.squad-recent-weeks a:hover>span:first-child{color:var(--violet);text-underline-offset:4px;text-decoration:underline}.squad-recent-weeks a:focus-visible{outline:2px solid var(--violet);outline-offset:-2px}.squad-recent-weeks a[aria-current]>span:first-child{color:var(--ink);font-weight:600}.squad-quiet{color:var(--muted)}.squad-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.squad-back{margin-bottom:20px}.squad-hold-note{border-left:1px solid var(--hairline-strong);background:var(--paper-2);max-width:70ch;color:var(--ink-2);margin:0 0 24px;padding:14px 16px;line-height:1.6}.squad-hold-note strong{color:var(--ink)}.squad-week-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;display:flex}.squad-week-head h2,.squad-mornings h2{font-size:20px;font-weight:600}.squad-week-head p{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0;font-size:14px;display:flex}.squad-week-controls{border-bottom:1px solid var(--hairline-strong);flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:10px;padding-bottom:12px;display:flex}.squad-week-controls .text-action{font-size:14px}.squad-week-controls .text-action[aria-current],.squad-week-controls .text-action[aria-current]:hover{color:var(--muted);cursor:default;font-weight:400}.squad-week-head h2:focus{outline:none}.squad-week-step{place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.squad-week-step:first-child{margin-right:-10px}.squad-week .squad-days{transition:opacity .2s cubic-bezier(.16,1,.3,1)}.squad-week[aria-busy=true] .squad-days{opacity:.55}.squad-week .integration-notice{margin:12px 0 0}.squad-day-body{align-content:start;gap:10px;min-width:0;display:grid}.squad-day-body>p{margin:0}.squad-race-day{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.squad-race-day svg{color:var(--ink-2);flex:none}.squad-days{margin:0;padding:0;list-style:none;display:grid}.squad-days>li{border-bottom:1px solid var(--hairline);grid-template-columns:9rem minmax(0,1fr);gap:6px 20px;padding:14px 12px;display:grid}.squad-days>li[data-status=done]{background:var(--day-done)}.squad-days>li[data-status=todo]{background:var(--day-todo)}.squad-days>li[data-status=missed]{background:var(--day-missed)}.squad-days>li[data-status=missed] .squad-day-head strong,.squad-workout-status[data-status=missed]{color:var(--warn)}.squad-days li:has(>p .squad-workout-status[data-status=missed]) .squad-sport{color:var(--warn)}.squad-day-head{color:var(--ink-2);align-content:start;gap:2px;margin:0;font-size:14px;display:grid}.squad-day-head strong{color:var(--ink);font-size:13px;font-weight:600}.squad-days ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.squad-days ul p{margin:0}.squad-days ul li>p:first-child{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.squad-days ul strong{color:var(--ink);font-weight:600}.squad-sport{color:var(--ink-2);align-items:center;gap:7px;font-size:13px;font-weight:600;display:inline-flex}.squad-sport:before{content:"";background:var(--ink-2);border-radius:50%;width:8px;height:8px}.squad-sport[data-sport=swim]:before{background:var(--swim)}.squad-sport[data-sport=bike]:before{background:var(--bike)}.squad-sport[data-sport=run]:before{background:var(--run)}.squad-days .squad-num{color:var(--ink-2);font-size:13.5px}.squad-workout-status{color:var(--muted);font-size:13px}.squad-checkin,.squad-note{color:var(--ink-2);font-size:14px;line-height:1.55;margin-top:4px!important}.squad-days ul li>p:first-child .squad-change{color:var(--violet);margin:-10px 0 -10px 4px;font-size:14px}.squad-change:hover{text-underline-offset:4px;text-decoration:underline}.squad-workout-measure{color:var(--ink-2);font-size:13.5px}.squad-workout-from:before{content:"· ";color:var(--muted)}.squad-workout-status+.squad-workout-from{margin-left:-6px}.squad-add{color:var(--violet);justify-self:start;margin:-6px 0 -10px;font-size:14px}.squad-add:hover{text-underline-offset:4px;text-decoration:underline}.squad-workout-from{color:var(--ink-2);font-size:13px}.squad-instructions{max-width:70ch;color:var(--ink);white-space:pre-line;font-size:14px;line-height:1.55;margin-top:4px!important}.squad-edit-off{max-width:70ch;color:var(--muted);margin:12px 0 0;font-size:14px}.squad-edit-said{color:var(--ink-2);margin:0;font-size:14px}.squad-edit-said:not(:empty){padding-top:12px}.squad-copy-open{font-size:14px}.squad-editor,.squad-copy-week{border:1px solid var(--hairline-strong);background:var(--paper);border-radius:8px;gap:16px;max-width:640px;padding:16px}.squad-copy-week{margin-top:12px}.squad-editor h3,.squad-copy-week h3{color:var(--ink);font-size:16px;font-weight:600}.squad-editor h4{font-size:15px;font-weight:600}.squad-editor .dashboard-actions,.squad-copy-week .dashboard-actions{margin:0}.squad-editor-remove{margin-left:auto}.squad-editor-hold{color:var(--ink-2);margin:0;font-size:14px}@media (max-width:720px){.squad-editor .dashboard-fields{grid-template-columns:minmax(0,1fr)}.squad-editor-remove{margin-left:0}}.squad-races{margin-top:32px}.squad-races h2{font-size:20px;font-weight:600}.squad-races ul{margin:10px 0 0;padding:0;list-style:none;display:grid}.squad-races li{border-bottom:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;padding:14px 0;display:flex}.squad-races li>div{gap:4px;min-width:0;display:grid}.squad-races p{margin:0}.squad-race-name{flex-wrap:wrap;align-items:baseline;gap:2px 12px;display:flex}.squad-race-name strong{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:600}.squad-race-name span{color:var(--ink-2);font-size:13px;font-weight:600}.squad-race-facts{color:var(--muted);flex-wrap:wrap;gap:2px 16px;font-size:14px;display:flex}.squad-race-facts .squad-num,.squad-race-goal .squad-num{color:var(--ink-2);font-size:13.5px}.squad-race-goal{color:var(--ink-2);font-size:14px}.squad-races .text-action{font-size:14px}.squad-mornings{margin-top:32px}.squad-mornings ul{margin:10px 0 0;padding:0;list-style:none;display:grid}.squad-mornings li{border-bottom:1px solid var(--hairline);color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;padding:10px 0;font-size:14px;display:flex}.squad-mornings li>span{min-width:8rem;color:var(--muted)}.squad-mornings q{color:var(--ink-2);quotes:"“" "”"}.squad-shared{max-width:760px;margin-top:32px}.squad-shared h2{font-size:20px;font-weight:600}.squad-shared .squad-sees{margin-top:12px}.squad-shares{max-width:70ch;color:var(--muted);margin:16px 0;font-size:14px;line-height:1.6}@media (max-width:720px){.squad-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.squad-table,.squad-table tbody,.squad-table tr,.squad-table th,.squad-table td{display:block}.squad-table tr{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:14px 0;display:grid}.squad-table th,.squad-table td{border:0;padding:0}.squad-table td[data-label]{grid-column:1/-1}.squad-table .squad-flag{grid-area:2/1/auto/-1}.squad-table td[data-label="Last 4 weeks"]:before{content:"Last 4 weeks";font-family:var(--font-nb-sans);color:var(--muted);margin-right:10px;font-size:13px}.squad-ledger{white-space:normal}.squad-days>li{grid-template-columns:minmax(0,1fr);padding-inline:10px}.squad-day-head{grid-auto-flow:column;justify-content:space-between}}.squad-draft{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);gap:12px;max-width:760px;margin:0 0 28px;padding:20px 0;display:grid}.squad-draft h2{font-size:20px;font-weight:600}.squad-draft .dashboard-actions{margin:0}.squad-draft-help{max-width:70ch;color:var(--muted);margin:0;font-size:14px;line-height:1.6}.squad-draft-text{color:var(--ink);gap:6px;font-size:14px;font-weight:600;display:grid}.squad-draft-text textarea{border:1px solid var(--field-border,var(--hairline-strong));background:var(--field-ground,var(--paper));width:100%;min-width:0;min-height:128px;color:var(--ink);font:400 16px/1.6 var(--font-nb-sans);resize:vertical;border-radius:4px;padding:12px 14px}.squad-draft-text textarea:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.squad-draft-facts summary{cursor:pointer;color:var(--violet);align-items:center;min-height:44px;font-size:14px;font-weight:600;list-style:none;display:flex}.squad-draft-facts summary::-webkit-details-marker{display:none}.squad-draft-facts ul{color:var(--ink-2);gap:6px;margin:0 0 4px;padding-left:0;font-size:13.5px;line-height:1.55;list-style:none;display:grid}.squad-draft-urgent{border:1px solid var(--hairline-strong);color:var(--ink);border-radius:6px;margin:0;padding:14px 16px;line-height:1.6}.squad-draft-off{max-width:70ch;color:var(--muted);margin:0 0 24px;font-size:14px}.squad-plan{gap:12px;max-width:760px;margin-top:32px;display:grid}.squad-plan h2{font-size:20px;font-weight:600}.squad-plan .dashboard-actions{margin:0}.squad-plan-state{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);color:var(--ink-2);gap:4px;margin:0;padding:14px 0;font-size:14px;line-height:1.6;display:grid}.squad-plan-state strong{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.squad-plan-form{gap:14px;display:grid}.squad-plan-mode{border:0;flex-wrap:wrap;gap:4px 20px;margin:0;padding:0;display:flex}.squad-plan-mode legend{width:100%;color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:600}.squad-plan-mode label{min-height:44px;color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-size:15px;display:inline-flex}.squad-plan-mode input{width:18px;height:18px;accent-color:var(--violet);margin:0}.squad-plan-file{color:var(--ink);gap:6px;font-size:14px;font-weight:600;display:grid}.squad-plan-file input{min-height:44px;font:400 15px/1.5 var(--font-nb-sans);color:var(--ink-2)}.squad-plan-file input::file-selector-button{border:1px solid var(--hairline-strong);background:var(--paper);min-height:40px;color:var(--ink);font:600 14px/1 var(--font-nb-sans);cursor:pointer;border-radius:6px;margin-right:12px;padding:0 16px}.squad-plan-file small{color:var(--muted);overflow-wrap:anywhere;font-size:13.5px;font-weight:400}.squad-sent-plan{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);color:var(--ink-2);gap:6px;margin:4px 0 8px;padding:12px 0;font-size:14px;line-height:1.6;display:grid}.squad-sent-plan strong{color:var(--ink);font-weight:600;display:block}.squad-sent-plan .text-action{justify-self:start}.squad-messages{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);gap:12px;max-width:760px;margin:0 0 28px;padding:20px 0;display:grid}.squad-messages h2{font-size:20px;font-weight:600}.squad-messages .coach-dock-thread{border:1px solid var(--hairline);background:var(--paper);border-radius:8px;max-height:440px;padding:16px}.squad-messages .coach-dock-thread:has(.talk-empty){padding:14px 16px}.squad-messages .dashboard-actions{margin:0}.squad-messages .talk-ended{border:0;border-radius:8px;padding:12px 14px}.squad-block{justify-self:start}.today-invite-coach{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:2px 14px;margin:0 0 20px;font-size:14px;line-height:1.5;display:flex}.today-invite-coach .text-action{color:var(--violet);font-size:14px}.squad-table th small.squad-unread{color:var(--violet);font-weight:600}.squad-messages .squad-draft-facts summary{gap:6px}.squad-messages .squad-draft-facts summary svg{transition:transform .15s ease-out}.squad-messages .squad-draft-facts[open] summary svg{transform:rotate(180deg)}.squad-messages .btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.training-overview{--training-swim:var(--swim);--training-bike:var(--bike);--training-run:var(--run);--training-strength:var(--muted);min-width:0}.training-overview [data-sport=swim]:not(.activity-sport){background:var(--training-swim)}.training-overview [data-sport=bike]:not(.activity-sport){background:var(--training-bike)}.training-overview [data-sport=run]:not(.activity-sport){background:var(--training-run)}.training-overview [data-sport=strength]:not(.activity-sport){background:var(--training-strength)}.training-overview :is(button,a,input,summary):focus-visible{outline:2px solid var(--violet);outline-offset:4px}.training-overview ::selection{color:var(--action-ink);background:var(--accent)}.training-overview h3{font-family:var(--font-nb-display);letter-spacing:-.02em;font-size:19px;font-weight:600;line-height:1.35}.training-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.training-section-heading p{color:var(--muted);margin-top:6px;font-size:14px}.training-section-heading>span{color:var(--muted);font-size:14px}.today-overview{grid-template-columns:minmax(0,1.8fr) minmax(250px,1fr);align-items:start;gap:36px;display:grid}.today-main{flex-direction:column;grid-area:1/1;gap:36px;min-width:0;display:flex}.today-main>*{min-width:0}.today-training-aside{grid-area:1/2;min-width:0}.today-missed{border-top:1px solid var(--hairline);padding-top:26px}.today-main>.today-hold-section{grid-column:1;min-width:0}.today-hold.coach-hold{border:0;border-radius:8px;padding:16px 20px}.today-missed .training-section-heading p{max-width:48ch}.today-last-week{color:var(--muted);margin-top:18px;font-size:13px}.today-session-focus>.dashboard-actions{margin-top:18px}.today-session-focus .dashboard-sessions{margin-top:0}:is(.today-session-focus,.training-day-panel) .dashboard-sessions>li[data-featured]{background:var(--day-todo);border:0;border-radius:12px;margin-bottom:12px;overflow:hidden}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session{border:0;grid-template-columns:38px minmax(0,1fr) auto;align-items:start;gap:12px;padding:28px;display:grid}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session:hover{background:color-mix(in srgb, var(--day-todo) 95%, var(--ink))}:is(.today-session-focus,.training-day-panel) [data-featured] .workout-status-todo{color:var(--caution);font-weight:600}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session:focus-visible{outline-offset:-4px}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-sport{background:0 0;margin-top:4px}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session-copy strong{font-family:var(--font-nb-display);letter-spacing:-.025em;font-size:27px;line-height:1.15}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session-copy>span{color:var(--ink-2)}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-duration{letter-spacing:-.03em;color:var(--ink);margin-top:2px;font-size:22px}.workout-featured-footer{border-top:1px solid color-mix(in srgb, var(--ink) 14%, transparent);grid-column:1/-1;justify-content:space-between;align-items:end;gap:20px;margin-top:8px;padding-top:24px;display:flex}.workout-featured-footer>span:first-child:not(.workout-featured-action){color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere;font-size:15px;line-height:1.5}.workout-featured-action{color:var(--violet);flex-shrink:0;align-items:center;gap:10px;margin-left:auto;font-weight:600;display:inline-flex}.workout-featured-open{min-height:46px;color:var(--violet);align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.workout-featured-open:hover{text-underline-offset:3px;text-decoration:underline}.today-open-day{background:var(--paper-2);border-radius:12px;padding:26px}.today-open-day p{color:var(--ink-2);margin-bottom:20px}.today-open-day-actions{flex-wrap:wrap;gap:12px;display:flex}.training-overview-section{border-top:1px solid var(--hairline);padding-top:26px}.today-recent>.dashboard-section{margin-top:0}.training-week-strip{border-block:1px solid var(--hairline);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.training-week-strip li{min-width:0}.training-week-strip :is(a,.training-week-day){flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:106px;padding:12px 2px;text-decoration:none;display:flex}.training-week-strip a:hover{background:var(--paper-2)}.training-week-strip li[data-status=done]>:is(a,.training-week-day){background:var(--day-done)}.training-week-strip li[data-status=todo]>:is(a,.training-week-day){background:var(--day-todo)}.training-week-strip li[data-status=missed]>:is(a,.training-week-day){background:var(--day-missed)}.training-week-strip li[data-status]>a:hover{box-shadow:inset 0 0 0 1px var(--hairline-strong)}.training-week-strip .training-week-name{color:var(--muted);font-size:13px}.training-week-strip :is(a,.training-week-day)>strong{text-align:center;width:32px;height:32px;font-family:var(--font-nb-mono);border-radius:50%;font-size:19px;font-weight:500;line-height:32px}.training-week-strip :is(a[aria-current=date],.training-week-day[data-today])>strong{background:var(--ink);color:var(--paper)}.training-week-strip .training-day-word{white-space:nowrap;min-height:16px;font-size:12px;font-weight:600;line-height:16px}.training-week-strip [data-status=done] .training-day-word{color:var(--violet)}.training-week-strip [data-status=todo] .training-day-word{color:var(--caution)}.training-week-strip [data-status=missed] .training-day-word{color:var(--warn)}.training-day-marks{height:16px;color:var(--violet);justify-content:center;align-items:center;gap:3px;display:flex}.training-day-marks i{border-radius:50%;width:6px;height:6px}.training-day-marks>span{color:var(--muted);line-height:16px}.training-day-marks i[data-missed]{border:2px solid var(--warn);background:0 0;width:8px;height:8px}.training-visual-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px 24px;display:flex}.training-visual-heading p{color:var(--muted);margin-top:6px;font-size:14px}.training-chart-legend{color:var(--muted);flex-wrap:wrap;gap:10px 16px;font-size:13px;display:flex}.training-chart-legend>span{align-items:center;gap:6px;display:inline-flex}.training-chart-legend i{flex:none;width:9px;height:9px;display:block}.training-chart-legend .legend-scheduled{background:var(--paper-3);border:1px solid var(--muted)}.training-chart-legend .legend-completed{background:var(--violet)}.training-chart-legend .legend-available{border-top:2px dashed var(--muted);background:0 0;width:14px;height:0}.calendar-hours-column[data-ahead]>strong{color:var(--muted)}.calendar-hours-column[data-ahead] .hours-scheduled{border-style:dashed}.calendar-hours{margin-top:30px}.calendar-hours .training-visual-heading h2{font-size:20px}.calendar-hours-plot{--hours-bar-height:112px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:16px;padding-top:24px;display:grid;position:relative}.calendar-hours-available{left:0;right:0;top:calc(30px + var(--hours-bar-height) * (1 - var(--available-ratio,1)));border-top:2px dashed var(--muted);pointer-events:none;position:absolute}.calendar-hours-column{cursor:pointer;border-radius:5px;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:6px 2px;display:flex}.calendar-hours-column:hover{background:var(--paper-2)}.calendar-hours-bars{height:var(--hours-bar-height);border-bottom:1px solid var(--hairline-strong);justify-content:center;align-items:flex-end;gap:5px;width:100%;display:flex}.calendar-hours-bars>span{width:22px;max-width:40%}.hours-scheduled{background:var(--paper-3);border:1px solid var(--muted);border-bottom:0}.hours-scheduled[style="height: 0%;"]{border:0}.hours-completed{background:var(--violet)}.calendar-hours-column>span{min-height:2.6em;color:var(--muted);text-align:center;justify-content:center;align-items:flex-start;font-size:12px;line-height:1.3;display:flex}.calendar-hours-column>strong{font-family:var(--font-nb-mono);font-size:13px;font-weight:400}.training-chart-caption,.training-chart-data p{color:var(--muted);margin-top:18px;font-size:13px}.training-chart-data{margin-top:8px;font-size:13px}.training-chart-data summary{cursor:pointer;width:fit-content;min-height:44px;color:var(--violet);text-underline-offset:4px;align-content:center}.training-chart-data summary:hover{text-decoration:underline}.training-chart-data p{margin:0 0 14px}.training-table-scroll{scrollbar-color:var(--hairline-strong) var(--paper);overflow-x:auto}.training-chart-data table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.training-chart-data :is(th,td){border-bottom:1px solid var(--hairline);white-space:nowrap;padding:10px 12px}.training-chart-data th{font-weight:600}.training-chart-data td{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums}.today-race-horizon{background:var(--signal-ground,#191f1c);color:var(--on-dark);border-radius:12px;padding:26px}.today-race-horizon h2{overflow-wrap:anywhere;font-size:24px;line-height:1.2}.today-race-horizon p{color:var(--muted-on-dark);margin-top:14px;font-size:14px}.today-race-journey{color:var(--muted-on-dark);flex-wrap:wrap;align-items:center;gap:10px;margin-block:26px;font-size:13px;display:flex}.race-journey-line{background:var(--muted-on-dark);flex:1;height:1px;position:relative}.race-journey-line i{height:3px;width:calc(var(--journey,0) * 100%);background:var(--accent);border-radius:2px;position:absolute;top:-1px;left:0}.today-race-journey small{text-align:right;color:var(--muted-on-dark);flex-basis:100%;font-size:12px}.today-race-journey svg{color:var(--accent)}.today-race-journey strong{text-align:right;color:var(--on-dark);font-weight:400;font-family:var(--font-nb-mono);flex-basis:100%;font-size:18px}.today-race-times{border-top:1px solid #46513f;gap:18px;margin-top:24px;padding-top:22px;display:grid}.today-race-times>div{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.today-race-times dt{color:var(--muted-on-dark);font-size:13px}.today-race-times dd{font-family:var(--font-nb-mono);letter-spacing:-.025em;font-size:24px}.today-race-horizon .today-pacing-note{font-size:12px}.today-race-training-count{border-top:1px solid #46513f;padding-top:18px}.today-race-horizon .text-action{color:var(--accent);justify-content:space-between;margin-top:14px;font-size:14px;display:flex}.today-race-horizon .text-action+.text-action{margin-top:0}.today-race-horizon .text-action:hover{color:var(--on-dark)}.today-race-horizon .text-action:focus-visible{outline-color:var(--accent)}.today-availability{margin-inline:4px;padding:27px 0}.today-availability h2{font-size:19px}.today-availability p{color:var(--muted);margin-top:12px;font-size:14px}.today-availability p strong{font-family:var(--font-nb-mono);color:var(--ink);font-weight:500}.today-availability .training-available-days{margin-top:8px;font-size:13px}.today-availability .text-action{margin-top:8px;font-size:14px}.training-coach-note{border-top:1px solid var(--hairline);padding-top:24px}.training-coach-note p{color:var(--muted);margin-top:12px;font-size:14px}.training-coach-note .text-action{margin-top:10px;font-size:14px}.coach-build-progress{background:var(--paper-3);border-radius:2px;max-width:320px;height:4px;margin-top:16px;position:relative;overflow:hidden}.coach-build-progress span{background:var(--violet);border-radius:2px;width:38%;animation:1.6s ease-in-out infinite coach-build-sweep;position:absolute;inset:0 auto 0 0}@keyframes coach-build-sweep{0%{transform:translate(-110%)}to{transform:translate(290%)}}.training-coach-note .coach-build-stage{color:var(--ink-2);margin-top:10px;font-size:13px}@media (prefers-reduced-motion:reduce){.coach-build-progress span{opacity:.35;width:100%;animation:none}}.today-main>.today-plan-lead{background:var(--violet-wash);border-top:0;grid-column:1;min-width:0;padding:24px 28px}.today-plan-lead h3{font-family:var(--font-nb-display);letter-spacing:-.02em;font-size:23px;font-weight:600}.today-plan-lead p{color:var(--ink-2)}@media (max-width:700px){.today-main>.today-plan-lead{padding:22px 20px}}.scheduled-volume{background:var(--paper-2);border-radius:12px;padding:26px}.scheduled-volume-scroll{scrollbar-color:var(--hairline-strong) var(--paper-2);overflow-x:auto}.scheduled-volume-plot{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;min-width:500px;margin-top:26px;display:grid}.scheduled-volume-week{cursor:pointer;border-radius:5px;flex-direction:column;align-items:center;min-width:0;padding:10px 5px 6px;display:flex}.scheduled-volume-week:hover{background:var(--paper-3)}.scheduled-volume-week[aria-pressed=true]{background:var(--hero-ground)}.scheduled-volume-week:focus-visible{outline-offset:-2px}.volume-value{min-height:26px;font-family:var(--font-nb-mono);color:var(--ink-2);font-size:13px}.volume-track{border-bottom:1px solid var(--hairline-strong);justify-content:center;align-items:flex-end;width:100%;height:140px;display:flex}.volume-stack{flex-direction:column-reverse;gap:0;width:min(36px,70%);display:flex}.volume-stack>i{min-height:0;display:block}.volume-date{white-space:nowrap;margin-top:10px;font-size:12px}.volume-selection{min-height:21px;color:var(--violet);align-items:center;gap:4px;font-size:12px;display:flex}.race-training-week-layout{grid-template-columns:minmax(0,1fr) 245px;gap:36px;margin-top:32px;display:grid}.race-training-heading{border-bottom:1px solid var(--hairline-strong);align-items:flex-start;padding-bottom:24px}.race-training-heading .dashboard-actions{justify-content:flex-end;align-items:center}.race-selected-week{min-width:0}.race-training-period{align-items:end;margin-bottom:18px}.race-training-period h2{margin-top:4px;font-size:24px}.race-training-week-controls{border-bottom:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:26px;padding-bottom:22px;display:flex}.race-training-week-buttons{gap:8px;display:flex}.race-training-week-buttons .btn{place-items:center;width:44px;height:44px;padding:0;display:grid}.race-training-week-controls .text-action{font-size:14px}.race-training-week-controls button:disabled{opacity:.5;cursor:default}.race-training-week-layout aside{padding-top:2px}.race-training-week-layout .training-coach-note{border-top:0;padding-top:0}.race-training-data-note{color:var(--muted);border-top:1px solid var(--hairline);margin-top:24px;padding-top:20px;font-size:13px}.race-training-agenda{margin-top:30px}.race-training-group-heading{align-items:end}.race-training-group-heading>div{min-width:0}.race-training-group-heading h3{font-family:var(--font-nb-sans);letter-spacing:0;font-size:15px;font-weight:600}.race-training-group-heading p{color:var(--muted);margin-top:4px;font-size:14px;line-height:1.45}.race-training-days{display:grid}.race-training-day{min-width:0;padding-top:26px}.race-training-day+.race-training-day{border-top:1px solid var(--hairline-strong);margin-top:10px}.race-training-day-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.race-training-day-heading h4{font-family:var(--font-nb-display);letter-spacing:-.02em;font-size:19px;font-weight:600}.race-training-day-heading>span{color:var(--muted);font-size:14px}.race-training-entry-kind{margin-top:18px}.race-training-entry-kind+.race-training-entry-kind{margin-top:24px}.race-training-entry-kind>p{color:var(--muted);font-size:14px;font-weight:600}.race-training-entry-kind :is(.activity-list,.dashboard-sessions){margin-top:6px}.race-week-empty{padding-block:24px}.race-week-empty h4{font-weight:600}.race-selected-week>.scheduled-volume{margin-top:36px}.race-selected-week .volume-track{height:96px}.race-week-empty p{color:var(--muted);margin-top:8px;font-size:14px}.race-training-overview+.race-strava-control{margin-top:32px}@media (max-width:1200px){.today-overview{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:24px}.today-main{gap:24px}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session{grid-template-columns:30px minmax(0,1fr);padding:22px}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-duration{grid-column:2;font-size:22px}.today-race-horizon{padding:22px}.race-training-week-layout{grid-template-columns:minmax(0,1fr) 210px;gap:24px}}@media (max-width:1000px){.today-overview{grid-template-columns:minmax(0,1fr);gap:36px}.today-main{display:contents}.today-training-aside{order:1}.today-main>.build-panel{order:2}.today-main>.today-recent{order:3}.today-training-aside{grid-area:auto/1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.today-race-horizon{grid-row:span 2}.today-availability{padding-top:0;padding-bottom:0}.race-training-week-layout{grid-template-columns:minmax(0,1fr)}.race-training-week-layout aside{border-top:1px solid var(--hairline);padding-top:24px}}@media (max-width:600px){.today-training-aside{grid-template-columns:minmax(0,1fr)}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session-copy strong{font-size:25px}:is(.today-session-focus,.training-day-panel) [data-featured] .dashboard-session{padding:22px 18px}.workout-featured-footer{flex-direction:column;align-items:start;gap:18px;padding-top:18px}.workout-featured-action{margin-left:0}.training-section-heading{gap:8px 14px}.training-section-heading>span{font-size:13px}.training-week-strip :is(a,.training-week-day){min-height:100px}.training-week-strip .training-week-name{font-size:12px}.training-week-strip :is(a,.training-week-day)>strong{font-size:17px}.calendar-hours-plot{--hours-bar-height:100px;gap:9px}.scheduled-volume{padding:22px 16px}.scheduled-volume .training-chart-legend{gap:8px 12px}.race-training-week-controls{align-items:center;gap:8px 16px}.race-training-heading{gap:12px;padding-bottom:18px}.race-training-heading .dashboard-actions{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:10px;width:100%;display:grid}.race-training-heading .dashboard-actions :is(.button,.btn){justify-content:center;width:100%;min-width:0;padding-inline:10px}.race-training-week-layout{margin-top:24px}}.race-training-day-heading h4,.race-training-period h2{scroll-margin-top:96px}
.coach-workspace{max-width:1240px;font-family:var(--font-nb-sans);margin-inline:auto}.coach-workspace .button:disabled{background:var(--paper-3);border-color:var(--hairline-strong);color:var(--muted);cursor:not-allowed}.coach-back{margin-bottom:22px}.coach-workspace .dashboard-heading{max-width:850px}.coach-workspace h1:focus{outline:none}.coach-lead{max-width:62ch}:is(.coach-workspace:has(.coach-form),.coach-workspace:has(.coach-generating)){max-width:920px}.coach-main{min-width:0}.coach-steps{border-bottom:1px solid var(--hairline);gap:20px;margin:0 0 34px;padding:0;list-style:none;display:flex}.coach-steps li{flex:1}.coach-steps button{width:100%;min-height:56px;color:var(--muted);text-align:left;border-bottom:2px solid #0000;align-items:center;gap:8px;padding-inline:4px;font-size:14px;display:flex}.coach-steps [aria-current] button{color:var(--violet);border-bottom-color:var(--violet);font-weight:600}.coach-steps button>span{font-family:var(--font-nb-mono)}.coach-steps button:disabled{cursor:default;opacity:1}.coach-form{grid-template-columns:minmax(0,1fr);gap:30px;display:grid}.coach-form section:not([hidden]){gap:24px;display:grid}.coach-form h2,.coach-review h2{letter-spacing:-.025em;font-size:26px;line-height:1.2}.coach-workspace :is(h1,h2):focus{outline:none}.coach-workspace :is(h1,h2):focus-visible{outline:2px solid var(--violet);outline-offset:6px}.coach-help{color:var(--muted);max-width:65ch;margin-top:-12px;font-size:15px;line-height:1.6}.coach-form label{flex-direction:column;align-items:stretch;gap:8px;font-size:14px;font-weight:500;line-height:1.4;display:flex}:is(.coach-form,.coach-tests) :is(input:not([type=checkbox]),select,textarea){background:var(--paper);border:1px solid var(--field-border);width:100%;min-height:46px;color:var(--ink);font-family:var(--font-nb-sans);caret-color:var(--violet);border-radius:6px;padding:10px 12px;font-size:16px;font-weight:400}.coach-form textarea{resize:vertical}:is(.coach-form,.coach-tests) input[type=number]{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums}.coach-form ::placeholder{color:var(--muted);opacity:1}.coach-form fieldset{border:0;min-width:0;margin:0;padding:0}.coach-form legend{margin-bottom:14px;font-size:16px;font-weight:600}.coach-form legend+.coach-field-help{margin:-8px 0 14px}.coach-field{align-content:start;gap:8px;min-width:0;display:grid}.coach-course{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.coach-field-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.coach-baselines{border-block:1px solid var(--hairline)}.coach-baselines fieldset{padding-block:16px}.coach-baselines fieldset+fieldset{border-top:1px solid var(--hairline)}.coach-baseline-fields{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:16px;display:grid}.coach-baseline-field{grid-template-rows:minmax(20px,auto) auto 1fr;align-self:start;gap:8px;display:grid}.coach-baseline-field>label{align-self:end}.coach-baseline-fields label{align-self:start;min-width:0}.coach-check,.coach-form .coach-check{cursor:pointer;flex-direction:row;align-items:flex-start;gap:10px;min-height:44px;font-size:14px;font-weight:400;line-height:1.6;display:flex}.coach-check input{width:19px;height:19px;accent-color:var(--violet);flex:none;margin-top:2px}.coach-form-actions{border-top:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:12px 18px;padding-top:26px;display:flex}.coach-form-actions-end{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-left:auto;display:flex}.coach-save-status{min-height:44px;color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.coach-save-status svg{flex:none}.coach-save-status[data-state=saved] svg{color:var(--violet)}.coach-save-status[data-state=saving] svg{animation:1.5s linear infinite coach-spin}.coach-save-status[data-state=error]{color:var(--warn)}.coach-save-status .text-action{min-height:0;font-size:14px}.coach-weekly-budget{max-width:290px}.coach-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.coach-access{gap:8px;display:grid}.coach-brief-summary{margin:0;display:grid}.coach-brief-summary>div{border-bottom:1px solid var(--hairline);grid-template-columns:145px 1fr;gap:18px;padding:18px 0;font-size:14px;display:grid}.coach-brief-summary dt{color:var(--muted)}.coach-brief-summary dd{overflow-wrap:anywhere;min-width:0;margin:0}.coach-summary-prose{white-space:pre-line}.coach-data-preview summary,.coach-review-aside summary{cursor:pointer;min-height:44px;color:var(--violet);align-content:center;font-size:14px}.coach-data-preview p{color:var(--muted);font-size:14px;line-height:1.6}.coach-consent{background:var(--hero-ground);border-radius:12px;padding:24px}.coach-consent h3{font-size:20px}.coach-consent p{color:var(--ink-2);margin-block:12px 20px;font-size:14px;line-height:1.6}.coach-consent a{color:var(--violet);text-underline-offset:3px;text-decoration:underline}.coach-readiness{border-top:1px solid var(--hairline-strong);margin-top:22px;padding-top:18px}.coach-consent .coach-readiness p{color:var(--ink);margin:0 0 8px;font-size:15px;font-weight:600}.coach-readiness ul{margin:0;padding:0;list-style:none;display:grid}.coach-readiness li{min-height:36px;color:var(--ink);align-items:flex-start;gap:10px;padding-block:6px;font-size:14px;line-height:1.5;display:flex}.coach-readiness li>svg{color:var(--ink-2);flex:none;margin-top:3px}.coach-readiness li[data-done=true]{color:var(--muted)}.coach-readiness li[data-done=true]>svg{color:var(--violet)}.coach-readiness-detail{color:var(--ink-2);display:block}.coach-readiness-action{min-height:32px;color:var(--violet);align-items:center;gap:6px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.coach-readiness-action:hover{text-decoration:underline}.coach-service-status{color:var(--ink-2);border-block:1px solid var(--hairline);margin-bottom:28px;padding-block:14px;font-size:14px}.coach-service-status p+p{color:var(--muted);margin-top:4px}.coach-service-status button{margin-top:8px;display:block}.coach-errors{border:1px solid var(--hairline-strong);color:var(--ink-2);border-radius:8px;margin-bottom:24px;padding:20px 24px;font-size:14px;line-height:1.6}.coach-errors ul{margin:10px 0 0;padding-left:20px}.coach-errors:focus{outline:2px solid var(--violet);outline-offset:3px}.coach-generating{max-width:60ch;padding:42px 0}.coach-generating>svg{color:var(--violet);margin-bottom:20px;animation:1.5s linear infinite coach-spin}.coach-generating h2{font-size:28px}.coach-generating p{color:var(--muted);margin-block:18px;line-height:1.6}.coach-generating .button{margin-top:12px}.coach-generating-bar{background:var(--paper-3);border-radius:2px;max-width:360px;height:4px;margin-top:4px;position:relative;overflow:hidden}.coach-generating-bar span{background:var(--violet);border-radius:2px;width:38%;animation:1.6s ease-in-out infinite coach-sweep;position:absolute;inset:0 auto 0 0}@keyframes coach-sweep{0%{transform:translate(-110%)}to{transform:translate(290%)}}.coach-generating-clock{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;color:var(--ink-2);margin-block:10px 6px;font-size:15px}.coach-build-steps{gap:8px;max-width:360px;margin:14px 0 6px;padding:0;list-style:none;display:grid}.coach-build-steps li{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.coach-build-steps li[data-state=done]{color:var(--ink-2)}.coach-build-steps li[data-state=done] svg{color:var(--violet)}.coach-build-steps li[data-state=current]{color:var(--ink);font-weight:600}.coach-build-steps li[data-state=current] svg{color:var(--violet);animation:1.5s linear infinite coach-spin}.coach-build-dot{border:1.5px solid var(--hairline-strong);border-radius:50%;flex:none;width:14px;height:14px}.coach-waiting{border:1px solid var(--hairline-strong);background:var(--paper-2);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 30px;margin-bottom:28px;padding:22px 26px;display:flex}.coach-waiting h2{font-size:20px}.coach-waiting p{max-width:60ch;color:var(--ink-2);margin-top:6px;font-size:14px;line-height:1.5}.coach-empty{max-width:650px;padding-block:40px}.coach-empty h1{margin-block:22px 16px;font-size:40px}.coach-empty p{color:var(--muted);margin-bottom:24px}.coach-device-note{border-top:1px solid var(--hairline);color:var(--muted);margin-top:38px;padding-top:20px;font-size:13px}.coach-plan-intro{justify-content:space-between;align-items:start;gap:40px;margin-bottom:30px;display:flex}.coach-plan-intro h2{overflow-wrap:anywhere}.coach-plan-intro p{max-width:65ch;color:var(--muted);margin-top:12px;line-height:1.6}.coach-draft-state{max-width:260px;color:var(--violet);flex-wrap:wrap;flex:none;gap:8px;font-size:14px;display:flex}.coach-draft-state>span{color:var(--muted);flex-basis:100%}.coach-volume{background:var(--hero-ground);border-radius:12px;padding:28px}.coach-volume .training-visual-heading p{color:var(--ink-2)}.coach-budget-label{color:var(--ink-2);font-size:14px}.coach-volume-scroll{scrollbar-color:var(--hairline-strong) var(--hero-ground);margin-block:28px 16px;padding-bottom:8px;overflow-x:auto}.coach-volume-plot{gap:4px;display:grid}.coach-volume-week{min-width:48px;font-family:var(--font-nb-mono);border-radius:5px;flex-direction:column;align-items:center;gap:10px;padding:8px 6px;font-size:12px;display:flex}.coach-volume-week[aria-pressed=true]{background:var(--paper)}:root[data-theme=dark] .coach-volume-week[aria-pressed=true]{background:var(--selected-ground)}.coach-volume-week:hover{outline:1px solid var(--violet);outline-offset:-1px}.coach-volume-track{border-bottom:1px solid var(--muted);justify-content:center;align-items:end;width:100%;height:132px;display:flex}.coach-volume-track>span{flex-direction:column-reverse;width:24px;display:flex}.coach-volume-track i{display:block}.coach-sport-swim{background:var(--swim)}.coach-sport-bike{background:var(--bike)}.coach-sport-run{background:var(--run)}.coach-sport-kept{background:var(--ink-2)}.coach-legend{color:var(--ink-2);flex-wrap:wrap;gap:10px 20px;font-size:13px;display:flex}.coach-legend>span{align-items:center;gap:7px;display:inline-flex}.coach-legend i{width:9px;height:9px;display:block}.coach-review-layout{grid-template-columns:minmax(0,1fr) 280px;gap:44px;margin-block:38px;display:grid}.coach-week-review{min-width:0}.coach-week-review>.coach-help{margin-top:12px}.coach-session-days{margin:24px 0 0;padding:0;list-style:none}.coach-session-days>li{border-top:1px solid var(--hairline);grid-template-columns:110px minmax(0,1fr);gap:20px;padding-block:18px;display:grid}.coach-session-days h3{font-family:var(--font-nb-sans);padding-top:10px;font-size:14px;font-weight:500;line-height:1.5}.coach-session summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:64px;list-style:none;display:flex}.coach-session summary::-webkit-details-marker{display:none}.coach-session summary>span{flex-direction:column;gap:5px;min-width:0;display:flex}.coach-session summary>strong{font-family:var(--font-nb-mono);white-space:nowrap;font-size:14px;font-weight:400}.coach-session summary span span{color:var(--muted);font-size:13px}.coach-session summary>span>strong{overflow-wrap:anywhere}.coach-session summary>span>strong:after{content:" +";color:var(--violet)}.coach-session[open] summary>span>strong:after{content:" −"}.coach-session>div{color:var(--ink-2);overflow-wrap:anywhere;padding:12px 0 20px;font-size:14px;line-height:1.6}.coach-session ol{margin-top:14px;padding-left:20px}.coach-session li+li{margin-top:10px}.coach-evidence{color:var(--muted);margin-top:16px;font-size:13px}.coach-rest-day{color:var(--muted);padding-block:10px;font-size:14px}.coach-day-milestone{color:var(--violet);padding-block:10px;font-weight:600}.coach-kept-session{padding-block:10px;font-size:14px}.coach-kept-session span{color:var(--muted);margin-top:5px;font-size:13px;display:block}.coach-review-aside{min-width:0;padding-top:3px}.coach-review-aside h2{font-size:23px}.coach-review-aside p,.coach-review-aside li{color:var(--muted);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.coach-review-aside p{margin-top:14px}.coach-review-aside h3{margin-top:26px;font-size:17px}.coach-review-aside ul{margin-block:14px 24px;padding-left:18px}.coach-review-aside li+li{margin-top:10px}.coach-review-aside .coach-brief-summary>div{grid-template-columns:1fr;gap:4px;padding:12px 0}.coach-review-aside .coach-brief-summary dd{color:var(--ink-2)}.coach-accept{background:var(--paper-2);border-radius:12px;justify-content:space-between;align-items:center;gap:30px;padding:28px;display:flex}.coach-accept p{color:var(--muted);margin-block:12px 18px;font-size:14px}.coach-accept p:last-child{margin-bottom:0}.coach-accept-links{flex-wrap:wrap;gap:4px 22px;display:flex}.coach-accept[data-state=removed]{border:1px solid var(--hairline-strong);background:var(--paper)}.coach-accept-actions{flex-direction:column;flex:none;align-items:start;gap:14px;max-width:280px;display:flex}.coach-accept-issues{padding-left:18px;font-size:14px;line-height:1.6}.coach-edit-note{color:var(--muted);margin-top:-6px;font-size:13px;line-height:1.5}@keyframes coach-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.coach-generating>svg,.coach-save-status svg,.coach-typing svg,.coach-build-steps li[data-state=current] svg{animation:none}.coach-generating-bar span{opacity:.35;width:100%;animation:none}}@media (max-width:700px){.dashboard-screen:has(.coach-form:focus-within) .dashboard-sidebar{display:none}}@media (max-width:1050px){.coach-review-layout{grid-template-columns:minmax(0,1fr) 240px;gap:28px}.coach-steps{gap:10px}}@media (max-width:760px){.coach-review-layout{grid-template-columns:minmax(0,1fr);gap:28px}.coach-steps{gap:8px;margin-bottom:26px}.coach-steps button{align-items:start;gap:5px;padding-block:15px;font-size:13px;line-height:1.4}.coach-form h2,.coach-review h2{font-size:23px}.coach-course,.coach-baseline-fields{gap:10px}.coach-baseline-fields label{font-size:14px}.coach-baseline-field{grid-template-rows:minmax(60px,auto) auto 1fr}.coach-field-pair{grid-template-columns:1fr}.coach-days{grid-template-columns:repeat(2,minmax(0,1fr))}.coach-form-actions .button-primary{flex:1}.coach-form-actions-end{flex-wrap:wrap;flex-basis:100%;justify-content:space-between;margin-left:0}.coach-save-status{flex:100%;align-items:flex-start;min-width:0}.coach-save-status>svg{margin-top:3px}.coach-form-actions-end>.text-action{white-space:nowrap;flex:none}.coach-brief-summary>div{grid-template-columns:1fr;gap:6px}.coach-consent,.coach-volume,.coach-accept,.coach-breakdown{padding:20px}.coach-breakdown-goal h2{font-size:24px}.coach-plan-intro,.coach-accept{flex-direction:column;align-items:stretch;gap:20px}.coach-accept-actions{max-width:none}.coach-session-days>li{grid-template-columns:1fr;gap:4px}.coach-session-days h3{color:var(--muted);padding-top:0}.coach-review-aside{border-top:1px solid var(--hairline);padding-top:24px}.coach-accept-actions .button{width:100%}}.coach-race-summary{background:var(--signal-ground);color:var(--on-dark);border-radius:12px;justify-content:space-between;align-items:start;gap:24px;margin-bottom:28px;padding:22px 26px;display:flex}.coach-race-summary>div{min-width:0}.coach-race-summary h2{overflow-wrap:anywhere;font-size:21px;line-height:1.3}.coach-race-summary p{color:var(--muted-on-dark);margin-top:8px;font-size:14px;line-height:1.6}.coach-race-summary .coach-race-facts{color:var(--on-dark);overflow-wrap:anywhere}.coach-race-summary .coach-race-edit{--violet:var(--action-hover);color:var(--accent);margin-top:4px;font-size:14px}.coach-race-summary .coach-race-edit:hover{text-underline-offset:4px;text-decoration:underline}.coach-race-summary details{flex-shrink:0;max-width:240px}.coach-race-summary summary{min-height:44px;color:var(--accent);cursor:pointer;align-content:center;font-size:14px}.coach-race-summary details a{color:var(--on-dark);text-underline-offset:3px;padding-block:8px;font-size:14px;text-decoration:underline;display:block}.coach-options{border-block-start:1px solid var(--hairline)}.coach-options>summary{min-height:56px;color:var(--violet);cursor:pointer;padding-block:16px;font-size:15px;font-weight:500;line-height:1.6}.coach-options>summary>span{float:right;color:var(--muted);margin-left:16px;font-size:14px;font-weight:400}.coach-options-fields{gap:22px;padding-block:12px 24px;display:grid}.coach-field-help,.coach-field-error{color:var(--muted);font-size:13px;font-weight:400;line-height:1.5;display:block}.coach-field-error{color:var(--warn)}:is(.coach-form,.coach-tests) :is(input,select,textarea)[aria-invalid=true]{border-color:var(--warn)}.coach-errors .text-action{margin-top:14px}.coach-summary-line{display:block}.coach-summary-line+.coach-summary-line{margin-top:6px}.coach-day-choices>div{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.coach-day-choices label{border:1px solid var(--field-border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:64px;padding:10px 6px}.coach-day-choices label:has(:checked){background:var(--violet-wash);border-color:var(--violet);color:var(--violet)}.coach-day-choices label:has(:disabled){cursor:not-allowed}.coach-day-choices input{width:18px;height:18px;accent-color:var(--violet)}.coach-day-choices .coach-field-help,.coach-day-choices .coach-field-error{margin-top:12px}.coach-consent .coach-data-preview{margin-bottom:20px}.coach-consent .coach-data-preview p{margin-block:10px 16px}.coach-dates-off{gap:12px;display:grid}.coach-dates-off-add{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;max-width:460px;display:grid}.coach-dates-off-add .button{min-height:46px}.coach-date-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.coach-date-list li{border:1px solid var(--field-border);background:var(--paper);border-radius:6px;align-items:center;gap:4px;min-height:44px;padding-left:12px;font-size:14px;display:inline-flex}.coach-date-list li[data-outside=true]{border-color:var(--warn);color:var(--warn)}.coach-date-list li em{color:inherit;font-style:normal}.coach-date-list button{width:44px;height:44px;color:var(--muted);border-radius:6px;place-items:center;display:grid}.coach-date-list button:hover{background:var(--paper-3);color:var(--ink)}@media (max-width:760px){.coach-race-summary{flex-direction:column;gap:8px;padding:20px}.coach-race-summary details{max-width:100%}.coach-options>summary>span{float:none;margin-left:16px;display:block}.coach-day-choices>div{grid-template-columns:repeat(4,minmax(0,1fr))}.coach-dates-off-add{grid-template-columns:1fr;max-width:none}}.coach-gated{background:var(--paper-2);border-radius:12px;max-width:640px;padding:28px 30px}.coach-gated h2{font-size:24px}.coach-gated>p{color:var(--ink-2);margin-top:12px}.coach-gated-inputs{border-block:1px solid var(--hairline-strong);gap:14px;margin:24px 0;padding-block:20px;display:grid}.coach-gated-inputs>div{grid-template-columns:150px minmax(0,1fr);gap:12px;display:grid}.coach-gated-inputs dt{color:var(--muted);font-size:14px}.coach-gated-inputs dd{margin:0;font-size:15px}.coach-gated .coach-help{margin-bottom:20px}.coach-issue-trailer{color:var(--muted)}.coach-issue-details{margin-top:12px}.coach-issue-details summary{cursor:pointer;min-height:44px;color:var(--violet);align-content:center}.coach-availability-note{margin-top:8px}.coach-availability-note .text-action{min-height:0;font-size:inherit;display:inline}@media (max-width:700px){.coach-gated{padding:22px 18px}.coach-gated-inputs>div{grid-template-columns:1fr;gap:4px}}.coach-checking{min-height:120px;color:var(--muted);font-size:15px}@media (max-width:480px){.coach-baseline-fields,.coach-course{grid-template-columns:1fr;gap:14px}.coach-baseline-field{grid-template-rows:auto auto auto}.coach-volume .training-chart-data :is(table,tbody,tr,th,td){display:block}.coach-volume .training-chart-data thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.coach-volume .training-chart-data tr{border-top:1px solid var(--hairline-strong);padding-block:10px 6px}.coach-volume .training-chart-data tr:first-child{border-top:0}.coach-volume .training-chart-data th[scope=row]{white-space:normal;border:0;padding:0 0 6px}.coach-volume .training-chart-data td{border:0;justify-content:space-between;gap:12px;padding:4px 0;display:flex}.coach-volume .training-chart-data td:before{content:attr(data-label);color:var(--muted);font-family:var(--font-nb-sans)}}.coach-race-actions{flex-wrap:wrap;gap:0 22px;display:flex}.coach-form .coach-fresh{min-height:40px;margin-top:-6px}.coach-fresh-hint{margin:-4px 0 14px 29px}.coach-baselines fieldset>.coach-fresh-hint:last-child{margin-bottom:4px}.coach-workspace:has(.coach-conversation){max-width:1240px}.coach-conversation{grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr);align-items:start;gap:0 36px;display:grid}.coach-consent-card{background:var(--paper-2);border-radius:12px;grid-column:1/-1;gap:16px;max-width:66ch;padding:28px 30px;display:grid}.coach-consent-card h2{font-size:24px}.coach-consent-card>p{color:var(--ink-2);line-height:1.6}.coach-consent-card .coach-data-preview summary{cursor:pointer;min-height:44px;color:var(--violet);align-content:center;font-size:14px}.coach-consent-card .coach-data-preview p{color:var(--muted);margin-block:8px 12px;font-size:14px;line-height:1.6}.coach-consent-card .coach-check-text{min-width:0}.coach-consent-card .coach-check .coach-field-help{margin-top:2px;display:block}.coach-consent-card .coach-check:has(input:disabled){color:var(--muted);cursor:default}.coach-consent-actions{flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:4px;display:flex}.coach-chat{flex-direction:column;gap:16px;min-height:520px;display:flex}.coach-chat-head{border-bottom:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;padding-bottom:12px;display:flex}.coach-chat-head h2{font-size:22px}.coach-chat-title{flex-wrap:wrap;align-items:baseline;gap:4px 20px;display:flex}.coach-chat-actions{flex-wrap:wrap;align-items:center;gap:4px 20px;display:flex}.coach-chat-head .text-action{font-size:14px}.coach-history{border:1px solid var(--hairline-strong);background:var(--paper-2);border-radius:8px;padding:12px 14px}.coach-history>ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.coach-history summary{cursor:pointer;min-height:44px;color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:4px 14px;padding:6px 4px;font-size:14px;list-style:none;display:grid}.coach-history summary::-webkit-details-marker{display:none}.coach-history summary svg{color:var(--violet);transition:transform .15s}.coach-history details[open] summary svg{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.coach-history summary svg{transition:none}}.coach-history summary>span:first-child{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:12.5px}.coach-history-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.coach-history-count{color:var(--muted);white-space:nowrap;font-size:12.5px}.coach-history-turns{border-top:1px solid var(--hairline);flex-direction:column;gap:14px;margin:8px 0 12px;padding:12px 8px 0;list-style:none;display:flex}.coach-history>p{color:var(--muted);margin-top:10px;font-size:12.5px}@media (max-width:480px){.coach-history summary{grid-template-columns:minmax(0,1fr) auto auto}.coach-history summary>span:first-child{grid-column:1/-1}.coach-history-summary{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.coach-turns{flex-direction:column;gap:14px;display:flex}.coach-turns>ol{flex-direction:column;gap:18px;margin:0;padding:0;list-style:none;display:flex}.coach-turn{grid-template-columns:34px minmax(0,1fr);gap:12px;max-width:64ch;display:grid}.coach-turn-me{grid-template-columns:minmax(0,1fr);justify-items:end;max-width:52ch;margin-left:auto}.coach-who{background:var(--signal-ground);width:34px;height:34px;color:var(--accent);font-family:var(--font-nb-display);border-radius:50%;place-items:center;margin-top:2px;font-size:12px;font-weight:700;display:grid}.coach-bubble{color:var(--ink);overflow-wrap:anywhere;font-size:15px;line-height:1.6}.coach-bubble p+p{margin-top:8px}.coach-turn-me .coach-bubble{background:var(--violet-wash);border-radius:12px 12px 2px;padding:12px 16px}.coach-turn-meta{color:var(--muted);font-size:13px}.coach-done{background:var(--paper-2);color:var(--ink-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;padding:8px 14px;font-size:14px;display:flex}.coach-done p{margin:0}.coach-done .text-action{min-height:44px;font-size:14px}.coach-chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.coach-chip{border:1px solid var(--field-border);background:var(--paper);min-height:40px;color:var(--ink-2);cursor:pointer;border-radius:20px;padding:6px 14px;font-size:14px}.coach-chip:hover{border-color:var(--violet);color:var(--violet)}.coach-sources-fold{margin-top:10px}.coach-sources-fold summary{min-height:32px;color:var(--violet);cursor:pointer;align-items:center;font-size:13px;display:inline-flex}.coach-sources-fold summary::marker{color:var(--muted)}.coach-sources{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.coach-sources li{border:1px solid var(--hairline-strong);border-radius:6px;max-width:56ch;padding:8px 12px;font-size:13px;line-height:1.5}.coach-sources a{color:var(--ink-2);font-weight:600;text-decoration:none;display:block}.coach-sources a:hover{color:var(--violet);text-decoration:underline}.coach-sources a span{color:var(--violet);margin-right:8px;display:inline-block}.coach-sources a .coach-source-host{color:var(--muted);margin:2px 0 0;font-size:12.5px;font-weight:400;display:block}.coach-sources small{color:var(--muted);display:block}.coach-week-preview{border:1px solid var(--hairline-strong);background:var(--paper-2);border-radius:8px;max-width:56ch;margin-top:12px;padding:12px 14px}.coach-week-preview-head{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:8px;font-size:13px;display:flex}.coach-week-preview table{border-collapse:collapse;width:100%;font-size:13.5px}.coach-week-preview th,.coach-week-preview td{border-top:1px solid var(--hairline);text-align:left;vertical-align:top;padding:6px 0}.coach-week-preview th[scope=row]{white-space:nowrap;width:100px;color:var(--muted);font-weight:400;font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;font-size:12.5px}.coach-week-preview td:last-child{text-align:right;white-space:nowrap;font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums}.coach-week-preview td i{vertical-align:middle;border-radius:2px;width:8px;height:8px;margin-right:8px;display:inline-block}.coach-week-preview td small{color:var(--muted);font-size:12px;display:block}.coach-week-preview>p{color:var(--ink-2);margin-top:10px;font-size:13.5px}.coach-week-preview-foot{font-size:12.5px;color:var(--muted)!important}.coach-typing{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.coach-typing svg{animation:1.5s linear infinite coach-spin}.coach-chat-error{border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.5}.coach-composer{border-top:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:auto;padding-top:14px;display:grid}.coach-composer input{border:1px solid var(--field-border);background:var(--paper);width:100%;min-height:48px;font-family:var(--font-nb-sans);color:var(--ink);caret-color:var(--violet);border-radius:8px;padding:12px 14px;font-size:16px}.coach-composer input::placeholder{color:var(--muted);opacity:1}.coach-composer .button{min-height:48px}.coach-breakdown{background:var(--paper-2);border-radius:12px;gap:22px;margin-bottom:30px;padding:26px 28px;display:grid}.coach-breakdown-goal h2{text-wrap:balance;font-size:28px;line-height:1.15}.coach-breakdown-race{color:var(--ink-2);margin-top:6px;font-size:15px}.coach-breakdown-approach{max-width:64ch;color:var(--ink);margin-top:14px;font-size:16px;line-height:1.6}.coach-breakdown-caveat{color:var(--muted);margin-top:10px;font-size:13px}.coach-phases{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.coach-phases li{border:1px solid var(--hairline-strong);background:var(--paper);border-radius:8px;padding:14px 16px}.coach-phases h3{font-size:16px}.coach-phase-dates{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;color:var(--muted);margin:4px 0 8px;font-size:12.5px}.coach-phases li>p:last-child{color:var(--ink-2);font-size:14px;line-height:1.5}.coach-breakdown-facts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 24px;margin:0;display:grid}.coach-breakdown-facts div{border-top:1px solid var(--hairline);gap:2px;padding-top:10px;display:grid}.coach-breakdown-facts dt{color:var(--muted);font-size:13px}.coach-breakdown-facts dd{color:var(--ink);margin:0;font-size:14px;line-height:1.5}.coach-card-aside{position:sticky;top:92px}.coach-card-aside:focus{outline:none}.coach-card-aside:focus-visible{outline:2px solid var(--violet);outline-offset:4px;border-radius:12px}.coach-card{background:var(--paper-2);border-radius:12px;gap:12px;padding:20px 22px 18px;display:grid}.coach-card-head h2{font-size:18px}.coach-card-head p{color:var(--muted);margin-top:4px;font-size:13px}.coach-card-rows{margin:0;display:grid}.coach-card-row{border-top:1px solid var(--hairline);grid-template-columns:86px minmax(0,1fr);align-items:start;gap:6px 10px;padding:10px 0;font-size:14px;display:grid}.coach-card-row:first-child{border-top:0}.coach-card-row dt{color:var(--muted)}.coach-card-row dd{color:var(--ink);grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:6px 10px;min-width:0;margin:0;display:grid}.coach-card-value{overflow-wrap:anywhere;min-width:0}.coach-card-value small{color:var(--muted);margin-top:2px;font-size:12.5px;line-height:1.45;display:block}.coach-state{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border-radius:4px;margin-top:2px;padding:2px 7px;font-size:11px;font-weight:600}.coach-state-known,.coach-state-web{background:var(--paper-3);color:var(--ink-2)}.coach-state-heard{background:var(--violet-wash);color:var(--violet)}.coach-state-proposed{background:var(--caution-wash);color:var(--caution)}.coach-state-needed{border:1px dashed var(--field-border);color:var(--muted)}.coach-card-edit{color:var(--violet);min-height:24px;padding:0 2px;font-size:13px;font-weight:600}.coach-card-edit:hover{text-decoration:underline}.coach-card-foot{gap:14px;padding-top:4px;display:grid}.coach-card-foot .coach-consent{border-top:1px solid var(--hairline-strong);background:0 0;border-radius:0;padding:14px 0 0}.coach-card-foot .coach-consent h3{font-size:16px}.coach-card-foot .coach-consent p{margin-block:8px 12px}.coach-card-foot .coach-readiness{margin-top:12px;padding-top:12px}.coach-card-actions{gap:10px;display:grid}.coach-card-actions .button{width:100%}.coach-card-toggle-head{margin:0;font-size:14px}@media (max-width:900px){.coach-conversation{grid-template-columns:minmax(0,1fr);gap:20px}.coach-card-aside{border:1px solid var(--hairline-strong);background:var(--paper-2);border-radius:10px;order:-1;position:static}.coach-card-toggle{width:100%;min-height:48px;color:var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.coach-card-toggle span{color:var(--violet)}.coach-card-aside:not([data-open=true]) .coach-card-body{display:none}.coach-card-aside .coach-card{border-radius:0 0 10px 10px;padding-top:4px}.coach-card-row{grid-template-columns:74px minmax(0,1fr);gap:4px 10px}.coach-card-row dd{grid-template-columns:minmax(0,1fr) auto auto;gap:4px 8px}.coach-composer{grid-template-columns:minmax(0,1fr) auto}.coach-composer .button{padding-inline:14px}.coach-chat{min-height:0}.coach-chat-head{flex-direction:column;align-items:stretch;gap:2px}.coach-chip,.coach-card-edit{min-height:44px}.coach-turn{max-width:none}.coach-turn-me{max-width:90%}}.coach-long-day{border-block-start:1px solid var(--hairline);gap:14px;min-width:0;padding-block:22px 4px;display:grid}.coach-long-day h3{font-size:17px;font-weight:500}.coach-long-day>.coach-field-help{max-width:62ch;margin-top:-6px}.coach-long-day-controls{grid-template-columns:minmax(0,250px) minmax(0,160px);justify-content:start;align-items:start;gap:16px 18px;min-width:0;display:grid}.coach-long-day #coach-long-day-minutes{font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums}.coach-long-day-note{color:var(--ink-2);max-width:62ch;font-size:13px;font-weight:400;line-height:1.5;display:block}.coach-tests,.coach-tests .coach-options-fields{min-width:0}.coach-tests .coach-help{max-width:68ch}.coach-tests-list{border-block:1px solid var(--hairline);min-width:0}.coach-test{gap:14px;min-inline-size:0;padding-block:24px 26px;display:grid}.coach-test+.coach-test{border-top:1px solid var(--hairline)}.coach-test>legend{padding-block:2px 8px;font-size:15px;font-weight:500}.coach-test-protocol{color:var(--ink-2);max-width:66ch;font-size:14px;line-height:1.6}.coach-test-fields{flex-wrap:wrap;align-items:start;gap:16px 22px;min-width:0;display:flex}.coach-test-fields>.coach-test-note{flex:0 0 100%;max-width:none;margin:-8px 0 0}.coach-test :is(.coach-test-time,.coach-test-number){align-content:start;gap:7px;display:grid}.coach-test-label{color:var(--muted);min-height:20px;font-size:13px;line-height:1.5;display:block}.coach-test-time>div,.coach-test-number>span:last-child{color:var(--muted);align-items:center;gap:7px;min-height:44px;font-size:14px;display:flex}.coach-test :is(.coach-test-time,.coach-test-number) input{width:88px;font-family:var(--font-nb-mono);font-variant-numeric:tabular-nums;text-align:right}.coach-test-time input{width:64px}.coach-test-time span[aria-hidden]{font-family:var(--font-nb-mono);color:var(--ink-2)}.coach-test-number input[type=date]{text-align:left;width:auto}.coach-test-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 18px;min-width:0;display:flex}.coach-test-foot>p{max-width:46ch;margin:0}.coach-test-derived{color:var(--ink-2);font-size:13px;line-height:1.5}.coach-test-derived b{font-family:var(--font-nb-mono);font-weight:500}.coach-test-result{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 18px;display:flex}.coach-test-result p{margin:0;font-size:14px}.coach-test-result b{font-family:var(--font-nb-mono);color:var(--violet);margin-right:10px;font-size:21px;font-weight:500}.coach-test-result span{color:var(--muted)}.coach-test-payoff{overflow-wrap:anywhere;color:var(--ink-2);background:var(--violet-wash);border-radius:8px;max-width:62ch;padding:11px 14px;font-size:13px;line-height:1.6}.coach-test-payoff b{font-family:var(--font-nb-mono);font-weight:500}.coach-test-stale{color:var(--warn);max-width:62ch;font-size:13px;line-height:1.6}.coach-test-saved{color:var(--violet);align-items:center;gap:7px;margin:0;font-size:13px;display:inline-flex}.coach-test-act{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.coach-test[data-state=stale]>legend{color:var(--warn)}.coach-test .text-action{align-items:center;gap:6px;display:inline-flex}@media (max-width:720px){.coach-long-day-controls{grid-template-columns:minmax(0,1fr);max-width:260px}.coach-test-fields{grid-template-columns:minmax(0,1fr);display:grid}.coach-test :is(.coach-test-time,.coach-test-number){max-width:260px}.coach-test-foot{flex-direction:column;align-items:stretch}.coach-test-act{flex-direction:column;align-items:stretch;gap:10px}.coach-test-foot .button{width:100%;min-height:44px}}.coach-consent-card .coach-data-preview a,.coach-data-preview p a{color:var(--violet);text-underline-offset:3px;text-decoration:underline}.coach-consent .coach-acknowledgement{color:var(--muted);margin-block:-8px 16px;font-size:13px}.coach-accept .coach-acknowledgement{margin-block:6px 0;font-size:13px}.coach-accept .coach-acknowledgement a{align-items:center;min-height:44px;display:inline-flex}.coach-shortfall{border-top:1px solid var(--hairline-strong);max-width:72ch;padding-top:16px}.coach-shortfall h3{font-size:16px}.coach-shortfall ul{gap:12px;margin:10px 0 0;padding:0;list-style:none;display:grid}.coach-shortfall li p{color:var(--ink-2);font-size:14px;line-height:1.55}.coach-shortfall .coach-shortfall-option{color:var(--muted);margin-top:3px;font-size:13px}.coach-shortfall-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:0 14px;margin-top:10px;font-size:13px;display:flex}.coach-shortfall-foot .text-action{color:var(--violet);font-size:14px}.coach-changes{margin-block:28px}.coach-changes h2{margin:4px 4px 8px;font-size:18px}.coach-change-body{border-top:1px solid var(--hairline);margin:4px 0 12px;padding:12px 8px 0}.coach-change-body>p{color:var(--muted);font-size:13.5px;line-height:1.55}.coach-change-body ul{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.coach-change-body li{gap:2px;display:grid}.coach-change-day{color:var(--muted);font-size:12px}.coach-change-edit{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:14px;line-height:1.45;display:flex}.coach-change-edit s{color:var(--muted);text-decoration-thickness:1px}.coach-change-edit strong{font-weight:600}.coach-change-edit em{color:var(--muted);font-style:normal}
.race-trace-module__eKug5W__companion{gap:18px;padding-top:36px;padding-bottom:24px}.race-trace-module__eKug5W__trace{width:100%;margin-block:auto}.race-trace-module__eKug5W__chart{width:100%;max-height:220px;display:block;overflow:visible}.race-trace-module__eKug5W__labels{fill:var(--muted-on-dark);font-family:var(--font-nb-sans);font-size:14px}.race-trace-module__eKug5W__time{fill:var(--on-dark);font-family:var(--font-nb-mono);font-size:15px}.race-trace-module__eKug5W__rails{fill:none;stroke:var(--preview-hairline,#424e42);stroke-width:1px}.race-trace-module__eKug5W__transitions{fill:none;stroke:var(--muted-on-dark);stroke-width:1px;stroke-dasharray:2 4}.race-trace-module__eKug5W__legs{fill:none;stroke-width:7px;stroke-linecap:round}.race-trace-module__eKug5W__swim{stroke:var(--preview-swim,#7edbd3)}.race-trace-module__eKug5W__bike{stroke:var(--accent)}.race-trace-module__eKug5W__run{stroke:var(--preview-run,#efb697)}.race-trace-module__eKug5W__start{fill:var(--signal-ground,#191f1c);stroke:var(--preview-swim,#7edbd3);stroke-width:2px}.race-trace-module__eKug5W__marker{fill:var(--on-dark);stroke:var(--signal-ground,#191f1c);stroke-width:2px}.race-trace-module__eKug5W__finish{border-top:1px solid var(--preview-hairline,#424e42);justify-content:space-between;align-items:center;gap:16px;padding-top:20px;display:flex}.race-trace-module__eKug5W__finish>div{flex-direction:column;gap:8px;display:flex}.race-trace-module__eKug5W__finish span{color:var(--muted-on-dark);font-size:13px}.race-trace-module__eKug5W__finish strong{font-family:var(--font-nb-mono);letter-spacing:-.035em;color:var(--accent);font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1.1}.race-trace-module__eKug5W__trace figcaption{max-width:32ch;color:var(--muted-on-dark);margin-top:14px;font-size:12px;line-height:1.6}.race-trace-module__eKug5W__finishFlag{grid-template-rows:repeat(3,8px);grid-template-columns:repeat(3,8px);display:grid;transform:skewY(-10deg)}.race-trace-module__eKug5W__finishFlag i:nth-child(odd){background:var(--accent)}.race-trace-module__eKug5W__finishFlag i:nth-child(2n){background:var(--preview-hairline,#424e42)}.race-trace-module__eKug5W__event{border-block:1px solid var(--preview-hairline,#424e42);padding-block:16px}.race-trace-module__eKug5W__event>p{overflow-wrap:anywhere;margin:0 0 9px;font-size:15px;font-weight:500;line-height:1.4}.race-trace-module__eKug5W__event [data-testid=race-countdown]{color:var(--accent)}.race-trace-module__eKug5W__companion .companion-garmin{margin-top:0;padding-top:18px}.race-trace-module__eKug5W__companion .companion-garmin p{display:none}.race-trace-module__eKug5W__companion[data-has-event=true] .companion-story>p{display:none}@media (min-width:960px) and (max-height:850px){.race-trace-module__eKug5W__companion{gap:18px;min-height:690px}.race-trace-module__eKug5W__companion .companion-story>p{margin-top:15px}.race-trace-module__eKug5W__chart{max-height:170px}.race-trace-module__eKug5W__finish{padding-top:15px}.race-trace-module__eKug5W__finish strong{font-size:34px}.race-trace-module__eKug5W__trace figcaption{margin-top:9px}.race-trace-module__eKug5W__event{padding-block:12px}}@media (max-width:959px){.race-trace-module__eKug5W__companion{gap:0 15px;padding-top:20px;padding-bottom:15px}.race-trace-module__eKug5W__trace{align-self:center;margin:0}.race-trace-module__eKug5W__chart{height:110px}.race-trace-module__eKug5W__labels,.race-trace-module__eKug5W__finish,.race-trace-module__eKug5W__trace figcaption,.race-trace-module__eKug5W__event{display:none}.race-trace-module__eKug5W__companion .companion-garmin{margin-top:12px}.race-trace-module__eKug5W__legs{stroke-width:10px}}@media (max-width:639px){.race-trace-module__eKug5W__companion{padding-top:16px;padding-bottom:16px}.race-trace-module__eKug5W__trace{grid-area:1/2/3}.race-trace-module__eKug5W__chart{height:72px}.race-trace-module__eKug5W__companion .companion-garmin{border-top:0;grid-column:1;margin-top:10px;padding-top:0}}@media (max-width:360px){.race-trace-module__eKug5W__companion{grid-template-columns:minmax(0,1fr) 100px}}
