/* Coach product preview. Kept separate so the live athlete site stays lean. */
.coach-page { --coach-blue:#53B9E8; --coach-coral:#F06E5E; --coach-violet:#9B86E6; }
.active-nav { color:var(--text) !important; }
.coach-hero {
  padding:76px 0 94px;
  background:
    radial-gradient(52% 70% at 88% 16%, rgba(245,166,35,.14), transparent 70%),
    radial-gradient(46% 56% at 4% 100%, rgba(83,185,232,.09), transparent 70%);
}
.coach-hero-grid { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:72px; }
.honest-note { max-width:640px; border-left:2px solid var(--border-lit); padding-left:14px; margin-top:22px; }
.honest-note strong { color:var(--dim); }
.coach-signal {
  position:relative; overflow:hidden; min-height:430px; padding:28px;
  border:1px solid var(--border-lit); border-radius:24px;
  background:linear-gradient(150deg, rgba(255,255,255,.035), transparent 42%), var(--surface);
  box-shadow:0 32px 80px rgba(0,0,0,.46);
}
.coach-signal::before {
  content:""; position:absolute; width:280px; height:280px; right:-110px; top:-120px;
  border-radius:50%; background:rgba(245,166,35,.10); filter:blur(4px);
}
.signal-top { position:relative; display:flex; align-items:center; justify-content:space-between; color:var(--dim); font-size:11px; font-weight:800; letter-spacing:1.7px; text-transform:uppercase; }
.live-pill { display:inline-flex; align-items:center; gap:7px; padding:5px 9px; border:1px solid var(--border); border-radius:99px; color:var(--text); letter-spacing:.5px; }
.live-pill i { width:6px; height:6px; border-radius:50%; background:var(--green); }
.signal-number { position:relative; color:var(--text); font-size:92px; font-weight:850; letter-spacing:-6px; line-height:1; margin-top:56px; }
.coach-signal > p { position:relative; color:var(--dim); font-size:15px; margin:3px 0 30px; }
.signal-rule { height:1px; background:var(--border); margin-bottom:13px; }
.signal-row { display:grid; grid-template-columns:9px 1fr auto; gap:10px; align-items:center; padding:9px 0; color:var(--dim); font-size:13px; }
.signal-row strong { color:var(--text); font-variant-numeric:tabular-nums; }
.signal-dot { width:7px; height:7px; border-radius:50%; }
.signal-dot.good { background:var(--green); }.signal-dot.warn { background:var(--brand); }.signal-dot.calm { background:var(--coach-blue); }
.signal-callout { margin-top:20px; padding:13px 14px; border-radius:11px; background:var(--brand-soft); border:1px solid rgba(245,166,35,.24); color:var(--brand); font-size:13px; font-weight:700; }

.coach-problem { padding:72px 0; }
.workspace-section { padding-top:76px; }
.workspace-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:28px; }
.workspace-intro h2 { margin-bottom:0; }
.workspace-disclosure { max-width:310px; text-align:right; margin:0; }
.workspace-frame {
  min-height:690px; overflow:hidden; border:1px solid var(--border-lit); border-radius:20px;
  background:#111820; box-shadow:0 34px 86px rgba(0,0,0,.48);
}
.workspace-topbar { height:62px; display:flex; align-items:center; gap:24px; padding:0 20px; border-bottom:1px solid var(--border); background:#151D25; }
.workspace-brand { display:flex; align-items:center; gap:8px; color:var(--text); text-decoration:none; }
.workspace-brand strong { font-size:17px; letter-spacing:-.4px; }.workspace-brand em { color:var(--brand); font-style:normal; font-size:10px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; }
.bird-dot { display:inline-flex; align-items:center; justify-content:center; width:27px; height:27px; border-radius:9px 12px 10px 13px; background:var(--brand); color:#111820; font-weight:900; }
.workspace-race { margin:auto; color:var(--text); font-size:11px; font-weight:800; letter-spacing:1.1px; }.workspace-race span { color:var(--dimmer); }
.coach-avatar { width:34px; height:34px; padding:0; border-radius:50%; border:1px solid var(--border-lit); background:var(--surface-2); color:var(--text); font-size:10px; font-weight:800; }
.coach-shell { display:grid; grid-template-columns:188px 1fr; min-height:628px; }
.coach-sidebar { padding:18px 12px; border-right:1px solid var(--border); background:#131A22; }
.coach-tab,.race-link { width:100%; display:flex; align-items:center; gap:9px; border:0; color:var(--dim); background:transparent; cursor:pointer; text-align:left; }
.coach-tab { min-height:43px; padding:0 10px; border-radius:10px; font:600 12px var(--font); }
.coach-tab:hover,.coach-tab.is-active { color:var(--text); background:var(--surface-2); }
.coach-tab.is-active { box-shadow:inset 2px 0 var(--brand); }
.coach-tab b { margin-left:auto; display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; border-radius:9px; color:#111820; background:var(--brand); font-size:9px; }
.tab-glyph { width:18px; color:var(--brand); font-size:15px; }
.sidebar-rule { height:1px; background:var(--border); margin:18px 9px; }
.sidebar-label { color:var(--dimmer); font-size:9px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; padding:0 10px 8px; }
.race-link { padding:8px 10px; font:500 11px var(--font); }.race-link span { margin-left:auto; color:var(--dimmer); }.race-link.is-active { color:var(--text); }
.race-color { width:7px; height:7px; border-radius:50%; }.race-color.amber { background:var(--brand); }.race-color.blue { background:var(--coach-blue); }.race-color.coral { background:var(--coach-coral); }
.workspace-main { min-width:0; padding:26px; }
.coach-panel { display:none; padding:0; border:0; animation:panel-in .26s ease both; }
.coach-panel.is-active { display:block; }.coach-panel[hidden] { display:none; }
@keyframes panel-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.panel-heading h3 { font-size:25px; line-height:1.2; margin:2px 0 0; }
.panel-kicker { color:var(--brand); font-size:9px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; }
.workspace-action { border:0; border-radius:9px; background:var(--brand); color:#10171E; padding:10px 14px; font:800 11px var(--font); cursor:pointer; transition:transform .12s ease,background .12s ease; }
.workspace-action:hover { transform:translateY(-1px); background:#ffb63a; }
.coach-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:23px; }
.coach-metrics > div { min-height:104px; padding:15px; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.coach-metrics span,.coach-metrics small { display:block; color:var(--dimmer); font-size:9px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; }
.coach-metrics strong { display:block; color:var(--text); font-size:27px; line-height:1.2; margin:8px 0 5px; font-variant-numeric:tabular-nums; }
.coach-metrics .needs { border-color:rgba(245,166,35,.28); background:var(--brand-soft); }.coach-metrics .needs strong { color:var(--brand); }
.roster-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:7px; }
.filter-group { display:flex; gap:6px; }.roster-filter { padding:6px 9px; border:1px solid var(--border); border-radius:7px; background:transparent; color:var(--dimmer); font:700 9px var(--font); cursor:pointer; }.roster-filter.is-active { border-color:rgba(245,166,35,.35); background:var(--brand-soft); color:var(--brand); }
.roster-label { color:var(--dimmer); font-size:9px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; }
.athlete-list { border-top:1px solid var(--border); }
.athlete-row { display:grid; grid-template-columns:36px minmax(105px,.8fr) minmax(100px,1fr) minmax(130px,1.25fr) auto; align-items:center; gap:11px; min-height:70px; border-bottom:1px solid var(--border); }
.athlete-row[hidden] { display:none; }
.athlete-avatar { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:11px; font-size:9px; font-weight:900; color:#0F151B; }.athlete-avatar.coral { background:var(--coach-coral); }.athlete-avatar.blue { background:var(--coach-blue); }.athlete-avatar.purple { background:var(--coach-violet); }.athlete-avatar.green { background:#65C494; }.athlete-avatar.amber { background:var(--brand); }
.athlete-name strong,.athlete-name span,.athlete-key strong,.athlete-key span { display:block; }.athlete-name strong,.athlete-key strong { color:var(--text); font-size:11px; }.athlete-name span,.athlete-key span { color:var(--dimmer); font-size:9px; margin-top:2px; }
.athlete-load > span { display:block; width:100%; height:4px; overflow:hidden; border-radius:2px; background:var(--surface-2); }.athlete-load i { display:block; height:100%; border-radius:2px; background:var(--brand); }.athlete-load small { color:var(--dimmer); font-size:9px; }
.athlete-status { display:inline-flex; align-items:center; justify-content:center; min-height:22px; padding:3px 8px; border-radius:99px; font-size:8px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; white-space:nowrap; }.athlete-status.good { color:#8DDBB6; background:rgba(79,169,126,.12); }.athlete-status.warn { color:var(--brand); background:var(--brand-soft); }.athlete-status.calm { color:#85CDEA; background:rgba(83,185,232,.11); }

.draft-pill,.queue-count { border:1px solid var(--border); border-radius:99px; color:var(--dim); padding:5px 10px; font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }
.compiler-note { display:flex; align-items:flex-start; gap:10px; padding:13px 14px; border-radius:10px; border:1px solid rgba(245,166,35,.24); background:var(--brand-soft); margin-bottom:17px; }.compiler-note strong { color:var(--brand); font-size:11px; white-space:nowrap; }.compiler-note span { color:var(--dim); font-size:10px; line-height:1.5; }
.plan-week-head { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:13px; }.plan-week-head > div { padding:10px 12px; border-left:2px solid var(--border-lit); }.plan-week-head span,.plan-week-head strong { display:block; }.plan-week-head span { color:var(--dimmer); font-size:8px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; }.plan-week-head strong { color:var(--text); font-size:11px; margin-top:3px; }
.week-builder { display:grid; grid-template-columns:repeat(7,minmax(72px,1fr)); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.builder-day { min-height:250px; padding:10px 7px; border-right:1px solid var(--border); }.builder-day:last-child { border-right:0; }.builder-day > span { display:flex; justify-content:space-between; color:var(--dimmer); font-size:8px; font-weight:800; letter-spacing:.8px; }.builder-day > span b { color:var(--text); }
.session-pill { margin-top:10px; min-height:55px; padding:8px; border-left:3px solid; border-radius:6px; background:var(--surface-2); color:var(--text); font-size:9px; font-weight:700; line-height:1.3; }.session-pill small { display:block; color:var(--dimmer); font-size:7px; font-weight:600; margin-top:4px; }.session-pill.swim { border-color:var(--coach-blue); }.session-pill.bike { border-color:var(--brand); }.session-pill.run { border-color:var(--coach-coral); }.session-pill.strength { border-color:var(--coach-violet); }.session-pill.brick { border-color:#38C2B4; }.session-pill.rest { border-color:var(--border-lit); color:var(--dim); }
.compiler-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:16px; }.compiler-footer strong,.compiler-footer span { display:block; }.compiler-footer strong { color:var(--text); font-size:11px; }.compiler-footer span { color:var(--dimmer); font-size:9px; margin-top:2px; }
.compile-result { margin-top:12px; padding:11px 12px; border-radius:9px; background:rgba(79,169,126,.1); border:1px solid rgba(79,169,126,.3); color:#9AD8BB; font-size:10px; }

.adapt-card { padding:17px; border:1px solid var(--border); border-radius:13px; background:var(--surface); margin-bottom:12px; }.adapt-card.urgent { border-color:rgba(245,166,35,.3); }
.adapt-head { display:flex; align-items:center; gap:10px; }.adapt-head > div:nth-child(2) { flex:1; }.adapt-head strong,.adapt-head span { display:block; }.adapt-head strong { color:var(--text); font-size:12px; }.adapt-head span { color:var(--dimmer); font-size:9px; margin-top:2px; }
.adapt-flow { display:grid; grid-template-columns:1fr 25px 1fr; align-items:center; gap:8px; margin:15px 0 12px; }.adapt-flow > div { padding:9px 10px; border-radius:8px; background:var(--surface-2); }.adapt-flow > span { color:var(--brand); text-align:center; }.adapt-flow small,.adapt-flow strong { display:block; }.adapt-flow small { color:var(--dimmer); font-size:7px; font-weight:800; letter-spacing:1px; }.adapt-flow strong { color:var(--text); font-size:10px; margin-top:3px; }.adapt-card p { color:var(--dim); font-size:10px; line-height:1.6; margin:0 0 13px; }
.adapt-actions { display:flex; gap:7px; }.adapt-actions button { padding:7px 9px; border:1px solid var(--border); border-radius:7px; background:transparent; color:var(--text); font:700 9px var(--font); cursor:pointer; }.adapt-actions button:first-child { border-color:rgba(245,166,35,.3); color:var(--brand); }
.safety-line { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-top:1px solid var(--border); color:var(--brand); }.safety-line p { color:var(--dimmer); font-size:9px; line-height:1.5; margin:0; }.safety-line strong { color:var(--dim); }

.coach-principles { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--border); margin-top:38px; }.coach-principles article { padding:24px 22px 0 0; margin-right:22px; border-right:1px solid var(--border); }.coach-principles article:last-child { border-right:0; margin-right:0; }.coach-principles span { color:var(--brand); font-size:10px; font-weight:800; letter-spacing:1px; }.coach-principles h3 { margin-top:18px; }.coach-principles p { color:var(--dim); font-size:14px; line-height:1.55; }
.scope-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:start; }.scope-list { border-top:1px solid var(--border); }.scope-list > div { display:grid; grid-template-columns:38px 1fr; gap:14px; padding:17px 0; border-bottom:1px solid var(--border); }.scope-list > div > span { color:var(--brand); font-size:10px; font-weight:800; }.scope-list p { color:var(--dim); font-size:14px; margin:0; }.scope-list p strong { display:block; color:var(--text); font-size:15px; margin-bottom:2px; }
.pilot-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }.pilot-form { padding:24px; border:1px solid var(--border-lit); border-radius:16px; background:var(--surface); }.pilot-form textarea { min-height:125px; }

@media (max-width:900px) {
  .coach-hero-grid { grid-template-columns:1fr; gap:42px; }.coach-signal { max-width:560px; width:100%; }
  .coach-shell { grid-template-columns:1fr; }.coach-sidebar { display:flex; gap:7px; overflow:auto; border-right:0; border-bottom:1px solid var(--border); padding:10px; }.coach-tab { width:auto; min-width:max-content; }.sidebar-rule,.sidebar-label,.race-link { display:none; }
  .workspace-main { padding:20px; }.athlete-row { grid-template-columns:36px minmax(100px,1fr) minmax(95px,1fr) auto; }.athlete-key { display:none; }
  .coach-principles { grid-template-columns:repeat(2,1fr); }.coach-principles article:nth-child(2) { border-right:0; }.scope-grid,.pilot-grid { grid-template-columns:1fr; gap:36px; }
}
@media (max-width:650px) {
  .coach-hero { padding:56px 0 70px; }.workspace-intro { display:block; }.workspace-disclosure { text-align:left; margin-top:12px; }
  .workspace-frame { margin-left:-18px; margin-right:-18px; border-left:0; border-right:0; border-radius:0; }.workspace-race { display:none; }.workspace-topbar { justify-content:space-between; }
  .workspace-main { padding:16px 13px; }.panel-heading { align-items:flex-end; }.panel-heading h3 { font-size:21px; }.workspace-action { padding:9px 10px; }
  .coach-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.coach-metrics > div { min-height:91px; padding:11px 8px; }.coach-metrics strong { font-size:21px; }.coach-metrics small { letter-spacing:0; font-size:7px; }
  .roster-label { display:none; }.athlete-row { grid-template-columns:33px minmax(90px,1fr) minmax(92px,1fr); gap:8px; }.athlete-status { display:none; }
  .compiler-note { display:block; }.compiler-note strong { display:block; margin-bottom:5px; white-space:normal; }.plan-week-head { grid-template-columns:1fr; }.plan-week-head > div { padding:7px 10px; }
  .week-builder { display:flex; overflow-x:auto; }.builder-day { min-width:96px; min-height:220px; }.compiler-footer { display:block; }.compiler-footer .workspace-action { margin-top:12px; width:100%; }
  .coach-principles { grid-template-columns:1fr; }.coach-principles article,.coach-principles article:nth-child(2) { border-right:0; border-bottom:1px solid var(--border); margin-right:0; padding-bottom:18px; }
}
@media (prefers-reduced-motion:reduce) { .coach-panel { animation:none; } }
