.coach-hero { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:24px; }
.coach-hero h1 { font-size:clamp(1.4rem,4vw,2.2rem); margin:6px 0 12px; }
.coach-nav,.coach-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin:16px 0; }
.coach-nav .button[aria-pressed="true"] { background:var(--accent,#087c70); color:white; }
.coach-content { display:grid; gap:20px; }
.coach-content>.card { padding:24px; min-width:0; }
.coach-content p,.coach-content li { line-height:1.6; overflow-wrap:anywhere; }
.coach-status { min-height:1.5em; overflow-wrap:anywhere; }
.coach-status.is-error,.coach-warnings { border-inline-start:4px solid #bd5f26; padding-inline-start:18px; }
.coach-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px; }
.coach-metrics>div { padding:14px; border:1px solid var(--line,#cddbd8); border-radius:12px; min-width:0; }
.coach-metrics span,.coach-metrics strong,.coach-metrics small { display:block; overflow-wrap:anywhere; }
.coach-metrics strong { font-size:1.25rem; margin:8px 0; }
.coach-metrics small { font-size:.85rem; opacity:.85; }
.coach-form-grid,.coach-budget-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:12px 0; }
.coach-budget-grid { grid-template-columns:repeat(auto-fit,minmax(115px,1fr)); }
.coach-content label { display:grid; gap:6px; min-width:0; margin:8px 0; }
.coach-content input:not([type="checkbox"]),.coach-content select,.coach-content textarea { width:100%; max-width:100%; min-width:0; box-sizing:border-box; min-height:44px; border:1px solid var(--line,#cddbd8); border-radius:8px; padding:10px; font:inherit; color:inherit; background:var(--card,#fff); }
.coach-content input[type="checkbox"] { width:20px; height:20px; flex-shrink:0; accent-color:var(--accent,#087c70); }
.coach-content label.coach-check { display:flex; align-items:center; gap:10px; min-height:44px; }
.coach-content fieldset { min-width:0; border:1px solid var(--line,#cddbd8); border-radius:10px; padding:14px; margin:16px 0; }
.coach-content legend { font-weight:650; max-width:100%; }
.coach-days { display:flex; flex-wrap:wrap; gap:8px 18px; }
.coach-content button,.coach-nav button { min-height:44px; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.coach-content details summary { cursor:pointer; padding:12px 0; min-height:44px; box-sizing:border-box; font-weight:650; }
.coach-content :is(button,input,select,textarea,summary,a):focus-visible,.coach-nav button:focus-visible { outline:3px solid var(--accent,#087c70); outline-offset:3px; }
.coach-scroll { max-width:100%; overflow-x:auto; }
.coach-content table { width:100%; border-collapse:collapse; min-width:520px; }
.coach-content th,.coach-content td { text-align:start; padding:10px; border-block-end:1px solid var(--line,#cddbd8); font-variant-numeric:tabular-nums; }
.coach-content caption { text-align:start; padding:10px 0; }
.coach-steps { padding-inline-start:24px; }
.coach-steps li { padding:12px 4px; border-block-end:1px solid var(--line,#cddbd8); }
.coach-pending { border:2px solid #b16b2a; }
.coach-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.coach-chart { min-width:0; }
.coach-chart svg { width:100%; height:auto; overflow:visible; color:var(--accent,#087c70); }
.coach-axis { fill:none; stroke:currentColor; opacity:.4; }
.coach-line { fill:none; stroke:currentColor; stroke-width:2; }
.coach-chart circle { fill:currentColor; }
.coach-chart text { fill:currentColor; font-size:12px; }
.coach-revisions { max-height:450px; overflow:auto; padding-inline-start:24px; }
@media(max-width:600px) { .coach-form-grid,.coach-chart-grid { grid-template-columns:minmax(0,1fr); } .coach-content>.card { padding:16px; } .coach-actions .button { flex:1 1 140px; } .coach-nav .button { flex:1 1 110px; } }
@media(prefers-reduced-motion:reduce) { .running-page * { scroll-behavior:auto; transition:none; } }

/* Compact first-run form; touch targets retain their accessible minimum size. */
.coach-hero { padding:16px; gap:10px; }
.coach-hero h1 { font-size:clamp(1.25rem,3vw,1.7rem); margin:2px 0 6px; }
.coach-hero p { margin:4px 0; }
.coach-content { gap:12px; }
.coach-content>.card { padding:16px; }
.coach-content p { margin:8px 0; }
.coach-form-grid,.coach-budget-grid { gap:8px 12px; margin:6px 0; }
.coach-content label { gap:4px; margin:4px 0; }
.coach-content fieldset { padding:10px; margin:12px 0; }
.coach-days { gap:0 12px; }
.coach-hint { font-size:.85rem; color:var(--muted,#526763); }
.coach-metrics { gap:8px; }
.coach-metrics>div { padding:10px; }
.coach-content details>summary { padding:8px 0; }
.coach-nav { margin:10px 0; gap:6px; }
.coach-nav { align-items:center; }
.coach-nav-primary { display:flex; align-items:center; gap:10px; flex:0 1 auto; min-width:0; max-width:100%; }
.coach-nav-primary>.button { flex:0 0 auto; }
.coach-active-goal { display:grid; gap:2px; min-width:0; max-width:340px; padding:5px 10px; border-inline-start:2px solid var(--accent,#087c70); line-height:1.3; }
.coach-active-goal strong { font-size:.9rem; overflow-wrap:anywhere; }
.coach-active-goal small { font-size:.75rem; color:var(--muted,#526763); overflow-wrap:anywhere; }
@media(max-width:600px) { .coach-nav-primary { flex:1 1 100%; } .coach-active-goal { flex:1 1 0; max-width:none; } }

.coach-distance-group { display:flex; flex-wrap:wrap; gap:8px; grid-column:1/-1; }
.coach-distance-group .button { flex:1 1 120px; }
.coach-distance-group .button[aria-pressed="true"] { background:var(--accent,#087c70); color:white; }

.coach-state-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.coach-state-grid>div { padding:10px; border:1px solid var(--border,#d5e1dd); border-radius:10px; min-width:0; }
.coach-state-grid span,.coach-state-grid strong,.coach-state-grid small { display:block; overflow-wrap:anywhere; }
.coach-state-grid span,.coach-method-note { color:var(--muted,#526763); font-size:.85rem; }
.coach-state-grid strong { margin:4px 0; font-size:1.05rem; }
@media(max-width:600px) { .coach-state-grid { grid-template-columns:minmax(0,1fr); } }
.coach-weekly-balance li { overflow-wrap:anywhere; }
.coach-weekly-balance details details { margin:8px 0; padding:8px; border:1px solid var(--border,#d5e1dd); border-radius:8px; }

/* Training hues identify purpose; separate labelled badges identify execution state. */
.coach-calendar-card { --calendar-cell:#ffffff; --calendar-rest:#f5f7f6; --calendar-weekend:#eef3f1; --calendar-muted:#53645f; --calendar-border:#d6e2dd; --calendar-today:#0b7068; --calendar-today-ink:#ffffff; --calendar-today-bg:#edf9f3; --calendar-focus:#316ac4; --calendar-record-bg:#eff3f8; --calendar-record-ink:#3d526d; --status-neutral-bg:#e9eeec; --status-neutral-ink:#43564f; --status-done-bg:#d8f3e4; --status-done-ink:#17613f; --status-linked-bg:#dcecff; --status-linked-ink:#204e8a; --status-attention-bg:#fff0cc; --status-attention-ink:#754b08; --status-alert-bg:#ffe1e5; --status-alert-ink:#9a273c; }
.coach-tone-easy { --coach-tone:#076b57; --coach-tint:#e7f4ee; --coach-border:#b9dece; }
.coach-tone-long { --coach-tone:#215cc6; --coach-tint:#eaf1ff; --coach-border:#c2d4f6; }
.coach-tone-quality { --coach-tone:#8a4a08; --coach-tint:#fff1dd; --coach-border:#efd1a7; }
.coach-tone-technique { --coach-tone:#7343af; --coach-tint:#f3edff; --coach-border:#d9c8f1; }
.coach-tone-race { --coach-tone:#a52d62; --coach-tint:#fceaf2; --coach-border:#edc0d4; }
body[data-theme="dark"] .coach-calendar-card { --calendar-cell:#10251f; --calendar-rest:#0e201b; --calendar-weekend:#152b24; --calendar-muted:#acc1b8; --calendar-border:#314b40; --calendar-today:#6bded1; --calendar-today-ink:#07251e; --calendar-today-bg:#163a30; --calendar-focus:#93c5fd; --calendar-record-bg:#1b2c3b; --calendar-record-ink:#b8cde4; --status-neutral-bg:#2a3e35; --status-neutral-ink:#c0d3c9; --status-done-bg:#1b4a36; --status-done-ink:#9ce4b7; --status-linked-bg:#203e60; --status-linked-ink:#aed3ff; --status-attention-bg:#4b3819; --status-attention-ink:#f9d48b; --status-alert-bg:#512936; --status-alert-ink:#ffb4c3; }
body[data-theme="dark"] .coach-tone-easy { --coach-tone:#84dbb6; --coach-tint:#163b2f; --coach-border:#2f6550; }
body[data-theme="dark"] .coach-tone-long { --coach-tone:#a3c6ff; --coach-tint:#1a3050; --coach-border:#345783; }
body[data-theme="dark"] .coach-tone-quality { --coach-tone:#f5c47f; --coach-tint:#44331f; --coach-border:#75552d; }
body[data-theme="dark"] .coach-tone-technique { --coach-tone:#ceb1ff; --coach-tint:#332649; --coach-border:#5d4682; }
body[data-theme="dark"] .coach-tone-race { --coach-tone:#ffafd0; --coach-tint:#47283a; --coach-border:#7d4662; }
.coach-calendar-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; padding-bottom:12px; border-bottom:1px solid var(--calendar-border); }
.coach-calendar-heading h2 { margin:0; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--calendar-muted); font-weight:650; }
.coach-calendar-heading #coachCalendarMonth { margin:4px 0 0; font-size:clamp(1.25rem,3vw,1.65rem); font-weight:750; line-height:1.15; letter-spacing:-.02em; }
.coach-calendar-toolbar { gap:4px; margin:0; align-items:center; }
.coach-calendar-toolbar>.button { flex:0 0 auto; padding:6px 12px; border-radius:9px; }
.coach-calendar-toolbar>[data-coach-action="calendar-today"] { background:var(--green-soft,#dff1ed); color:var(--green-deep,#07564f); font-weight:700; }
.coach-calendar-toolbar label { margin:0 0 0 8px; font-size:.7rem; color:var(--calendar-muted); }
.coach-calendar-toolbar input { padding:5px 8px; min-height:36px; max-width:155px; }
.coach-calendar-legend { display:flex; flex-wrap:wrap; gap:5px 7px; margin:12px 0 0; font-size:.72rem; }
.coach-calendar-legend>span { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border:1px solid var(--coach-border); border-radius:20px; background:var(--coach-tint); color:var(--coach-tone); font-weight:650; }
.coach-calendar-legend>span::before { content:''; width:6px; height:6px; background:var(--coach-tone); border-radius:50%; flex-shrink:0; }
.coach-calendar-card .coach-calendar-key { margin:7px 0 12px; font-size:.7rem; line-height:1.4; color:var(--calendar-muted); }
.coach-calendar-key>span { margin-inline:4px; }
.coach-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; align-items:stretch; }
.coach-calendar-day { min-width:0; padding:6px; border:1px solid var(--calendar-border); border-radius:10px; background:var(--calendar-cell); }
.coach-calendar-day.is-adjacent { border-style:dashed; }
.coach-calendar-day.is-month-start { border-block-start:3px solid var(--calendar-today); }
.coach-day-heading .coach-month-label { padding:1px 3px; border-radius:3px; background:var(--calendar-today); color:var(--calendar-today-ink); font-size:.58rem; font-weight:700; line-height:1.2; }
.coach-calendar-day.is-rest { background:var(--calendar-rest); }
.coach-calendar-day.is-weekend { background:var(--calendar-weekend); }
.coach-calendar-day.is-today { border-color:var(--calendar-today); background:var(--calendar-today-bg); box-shadow:inset 0 3px var(--calendar-today); }
.coach-calendar-day.is-active { outline:2px solid var(--calendar-focus); outline-offset:1px; }
.coach-day-heading { display:flex; align-items:center; justify-content:space-between; gap:2px; margin-bottom:6px; }
.coach-day-heading h3 { min-width:0; margin:0; font-size:.75rem; }
.coach-day-heading time { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px; line-height:1.3; }
.coach-day-heading time>span { font-size:.67rem; font-weight:600; color:var(--calendar-muted); }
.coach-day-heading time>b { font-size:1.05rem; font-variant-numeric:tabular-nums; }
.is-today .coach-day-heading time>b { background:var(--calendar-today); color:var(--calendar-today-ink); padding:1px 5px; border-radius:6px; }
.coach-content .coach-day-add { flex:0 0 26px; width:26px; min-height:26px; padding:0; border:1px solid var(--calendar-border); border-radius:8px; background:var(--calendar-cell); color:var(--green,#0b7068); font:inherit; font-size:1.1rem; cursor:pointer; }
.coach-day-content { display:grid; gap:5px; min-width:0; }
.coach-calendar-unit { min-width:0; border:1px solid var(--coach-border); border-inline-start:4px solid var(--coach-tone); border-radius:7px; background:var(--coach-tint); }
.coach-calendar-unit[data-preview="true"] { border-style:dashed; border-inline-start-style:solid; }
.coach-session { display:block; width:100%; padding:7px 5px 5px; border:0; border-radius:5px; background:transparent; color:inherit; text-align:start; line-height:1.25; cursor:pointer; }
.coach-session strong,.coach-session>span,.coach-session-note { display:block; overflow-wrap:anywhere; }
.coach-session strong { color:var(--coach-tone); font-size:.78rem; font-weight:750; }
.coach-session>span { font-size:.83rem; font-weight:650; margin-top:4px; font-variant-numeric:tabular-nums; }
.coach-session>.coach-actual-summary { font-size:.72rem; font-weight:700; }
.coach-calendar-card .coach-session-status { display:inline-flex; align-items:baseline; gap:3px; max-width:100%; padding:2px 5px; margin-top:5px; border-radius:5px; background:var(--status-neutral-bg); color:var(--status-neutral-ink); font-size:.65rem; font-weight:650; line-height:1.3; overflow-wrap:anywhere; }
.coach-session-status>i { flex-shrink:0; font-style:normal; font-weight:800; }
.coach-session-status[data-state="done"] { background:var(--status-done-bg); color:var(--status-done-ink); }
.coach-session-status[data-state="linked"] { background:var(--status-linked-bg); color:var(--status-linked-ink); }
.coach-session-status[data-state="attention"] { background:var(--status-attention-bg); color:var(--status-attention-ink); }
.coach-session-status[data-state="alert"] { background:var(--status-alert-bg); color:var(--status-alert-ink); }
.coach-session-note { font-size:.63rem; margin-top:4px; color:var(--calendar-muted); }
.coach-session.is-selected { box-shadow:inset 0 0 0 2px var(--calendar-focus); }
.coach-unit-actions { display:flex; border-top:1px solid var(--coach-border); }
.coach-content .coach-unit-assignment { display:flex; flex:1 1 auto; min-width:0; align-items:center; justify-content:center; gap:4px; width:100%; min-height:26px; padding:4px 3px; border:0; border-radius:0 0 5px 5px; background:transparent; color:var(--coach-tone); font:inherit; font-size:.68rem; font-weight:650; line-height:1.2; cursor:pointer; }
.coach-content .coach-unit-confirm { flex:0 0 30px; min-width:30px; min-height:26px; padding:2px; border:0; border-inline-start:1px solid var(--coach-border); border-radius:0 0 5px 0; background:var(--status-done-bg); color:var(--status-done-ink); font:inherit; font-size:.9rem; font-weight:800; cursor:pointer; }
.coach-unit-assignment>span:first-child { font-weight:800; }
.coach-rest { display:block; padding:7px 0; color:var(--calendar-muted); font-size:.68rem; }
.coach-calendar-record { display:block; width:100%; padding:6px 5px; border:1px dashed var(--calendar-record-ink); border-radius:7px; color:inherit; background:var(--calendar-record-bg); text-align:start; cursor:pointer; line-height:1.25; }
.coach-calendar-record strong,.coach-calendar-record>span { display:block; font-size:.72rem; overflow-wrap:anywhere; }
.coach-calendar-record strong { color:var(--calendar-record-ink); }
.coach-calendar-record>span { margin-top:3px; font-weight:650; }
.coach-calendar-card :is(button,input):focus-visible { outline:3px solid var(--calendar-focus); outline-offset:2px; }
@media(hover:hover) { .coach-calendar-unit:hover,.coach-calendar-record:hover { box-shadow:0 2px 7px rgba(24,57,50,.14); } .coach-day-add:hover { border-color:var(--green,#0b7068); } .coach-unit-assignment:hover { background:var(--calendar-cell); } }
@media(max-width:700px) {
 .coach-content>.coach-calendar-card { padding:10px; }
 .coach-calendar { gap:3px; }
 .coach-calendar-day { padding:4px; border-radius:7px; }
 .coach-day-heading { flex-wrap:wrap; }
 .coach-day-heading h3 { flex:1 1 100%; }
 .coach-content .coach-day-add { margin-inline-start:auto; }
 .coach-calendar-toolbar { flex:1 1 100%; }
 .coach-calendar-toolbar label { margin-inline-start:auto; }
 .coach-calendar-unit { border-inline-start-width:2px; }
 .coach-session { padding:5px 2px; }
 .coach-session strong,.coach-session>span { font-size:.7rem; }
 .coach-calendar-card .coach-session-status { padding:2px; font-size:.6rem; gap:2px; }
 .coach-session-note { font-size:.6rem; }
 .coach-assignment-label { display:none; }
 .coach-calendar-record { padding:5px 2px; }
 .coach-calendar-record strong,.coach-calendar-record>span { font-size:.68rem; }
 .coach-calendar-legend { gap:4px; font-size:.67rem; }
 .coach-calendar-legend>span { padding:3px 6px; }
}
@media(max-width:380px) {
 .coach-content>.coach-calendar-card { padding:6px; }
 .coach-calendar { gap:2px; }
 .coach-calendar-day { padding:2px; }
 .coach-day-heading time { gap:2px; }
 .coach-day-heading time>span { font-size:.6rem; }
 .coach-day-heading time>b { font-size:.8rem; }
 .coach-calendar-card .coach-session-status { flex-wrap:wrap; }
}
.coach-calendar-editor { grid-column:1/-1; min-width:0; padding:12px; border:1px solid var(--calendar-focus); border-inline-start-width:3px; border-radius:9px; background:var(--calendar-cell); }
.coach-calendar-editor>header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.coach-calendar-editor>header h3 { margin:0; font-size:1rem; overflow-wrap:anywhere; }
.coach-calendar-editor>header .button { padding:6px 10px; }
.coach-calendar-editor form { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px; margin:8px 0; }
.coach-calendar-editor form>h3,.coach-calendar-editor form>p,.coach-calendar-editor form>details { grid-column:1/-1; margin:0; }
.coach-calendar-editor form>h3 { font-size:.9rem; }
.coach-calendar-editor form>label { margin:0; }
.coach-calendar-editor select,.coach-calendar-editor textarea { max-width:100%; box-sizing:border-box; }
@media(max-width:600px) { .coach-calendar-editor { padding:9px; } .coach-calendar-editor form { grid-template-columns:minmax(0,1fr); } }
.coach-steady-target { padding:10px 12px; border-inline-start:3px solid var(--accent,#087c70); background:rgba(8,124,112,.06); border-radius:6px; }
.coach-steady-target small,.coach-recorded small { display:block; color:var(--muted,#526763); font-size:.8rem; }
.coach-assignment-suggestions li { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-block:8px; }
.coach-assignment-suggestions .button { max-width:100%; white-space:normal; }
.coach-measurement-comparison td small,.coach-measurement-comparison th small { display:block; margin-top:4px; font-weight:normal; line-height:1.4; }
.coach-measurement-comparison table { min-width:680px; }

.coach-reference { border:2px solid var(--accent,#087c70); border-radius:12px; padding:16px; margin:0 0 20px; background:rgba(8,124,112,.06); min-width:0; }
.coach-reference legend { font-size:1.1rem; font-weight:750; padding-inline:6px; }
.coach-reference-status { font-weight:650; margin-top:4px; }
.coach-reference>label,.coach-reference>.button { display:block; width:100%; box-sizing:border-box; margin-block:12px; }
.coach-reference select { width:100%; min-height:44px; max-width:100%; }
.coach-reference>.button { background:var(--accent,#087c70); color:white; white-space:normal; }
