/* Sport Control operational views; extends the incumbent endurance tokens. */
.endurance-coach { color:var(--text); font-size:14px; }
.endurance-coach .ec-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.endurance-coach h2 { font-size:22px; line-height:1.25; letter-spacing:-.02em; margin:0 0 8px; font-weight:600; }
.endurance-coach h3 { font-size:17px; line-height:1.35; margin:0 0 16px; font-weight:600; }
.endurance-coach h4 { font-size:14px; margin:24px 0 12px; font-weight:600; }
.endurance-coach p { margin:6px 0; line-height:1.5; }
.endurance-coach .ec-heading p,.endurance-coach small,.endurance-coach .ec-help,.endurance-coach .ec-empty { color:var(--text-secondary); }
.endurance-coach .ec-help { font-size:12px; margin:12px 0; max-width:74ch; }
.endurance-coach .ec-empty { padding:12px 0; }
.endurance-coach .ec-nav,.endurance-coach .ec-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.endurance-coach .ec-nav { border-bottom:1px solid var(--line); margin:0 0 20px; padding-bottom:12px; }
.endurance-coach button[aria-current],.endurance-coach button[aria-pressed=true] { background:var(--surface-soft); border-color:var(--brand-teal); }
.endurance-coach .ec-filters { display:grid; grid-template-columns:minmax(160px,1.3fr) minmax(140px,1fr) minmax(140px,1fr) minmax(140px,1fr) auto; align-items:end; gap:12px; margin-bottom:20px; }
.endurance-coach .ec-field { display:flex; flex-direction:column; min-width:0; gap:6px; font-size:12px; color:var(--text-secondary); }
.endurance-coach :is(input,select,textarea) { width:100%; max-width:100%; min-width:0; min-height:44px; padding:10px 12px; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius,8px); caret-color:var(--brand-teal); }
.endurance-coach textarea { min-height:80px; resize:vertical; }
.endurance-coach :is(button,input,select,summary) { min-height:44px; }
.endurance-coach :focus-visible { outline:3px solid var(--brand-teal); outline-offset:3px; }
.endurance-coach ::selection { background:var(--brand-teal-light); color:var(--text); }
.endurance-coach .ec-panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg,16px); padding:24px; margin-bottom:24px; min-width:0; }
.endurance-coach .ec-columns { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); gap:24px; }
.endurance-coach .ec-columns>.ec-panel { margin-bottom:24px; }
.endurance-coach .ec-section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.endurance-coach .ec-section-head h3,.endurance-coach .ec-section-head h4 { margin:0; }
.endurance-coach .ec-section-head>span { color:var(--text-secondary); font-size:12px; }
.endurance-coach .ec-list { list-style:none; margin:0; padding:0; }
.endurance-coach .ec-list>li { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding:14px 0; }
.endurance-coach .ec-list>li>div:first-child { min-width:0; overflow-wrap:anywhere; }
.endurance-coach .ec-list form { width:100%; }
.endurance-coach .ec-list strong { font-size:14px; }
.endurance-coach .ec-list p { color:var(--text-secondary); font-size:13px; }
.endurance-coach .ec-list small { font-size:12px; }
.endurance-coach .ec-count { font-size:12px; color:var(--text-secondary); margin-left:8px; font-variant-numeric:tabular-nums; }
.endurance-coach .ec-table-wrap { overflow-x:auto; }
.endurance-coach .ec-table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.endurance-coach .ec-table caption { text-align:left; color:var(--text-secondary); font-size:12px; padding:0 0 12px; }
.endurance-coach .ec-table :is(th,td) { padding:12px 8px; text-align:left; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.endurance-coach .ec-table thead th { font-size:12px; color:var(--text-secondary); font-weight:500; }
.endurance-coach .ec-notice { border:1px solid var(--line); padding:12px 16px; border-radius:8px; background:var(--surface-soft); color:var(--text-secondary); margin:0 0 20px; }
.endurance-coach [role=alert] { color:#9b2c2c; }
.endurance-coach .ec-message:empty { display:none; }
.endurance-coach .ec-message { margin:0 0 16px; overflow-wrap:anywhere; }
.endurance-coach .ec-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:16px; align-items:end; }
.endurance-coach .ec-record { border-top:1px solid var(--line); padding:16px 0; }
.endurance-coach .ec-record:first-child { border-top:0; }
.endurance-coach .ec-availability { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.endurance-coach fieldset { border:0; padding:0; margin:0; min-width:0; }
.endurance-coach fieldset[disabled],.endurance-coach :disabled { opacity:.65; cursor:default; }
.endurance-coach .ec-details { border-top:1px solid var(--line); padding:16px 0; margin-top:16px; }
.endurance-coach summary { font-weight:600; padding:12px 0; cursor:pointer; }
.endurance-coach .ec-check { display:flex; align-items:center; gap:10px; min-height:44px; font-size:13px; }
.endurance-coach .ec-check input { width:20px; height:20px; min-height:20px; accent-color:var(--brand-teal); }
.endurance-coach .ec-device { padding:16px 0; border-top:1px solid var(--line); }
.endurance-coach .ec-feedback { border-top:1px solid var(--line); padding:14px 0; overflow-wrap:anywhere; }
.endurance-coach .ec-editor-inline { border-top:1px solid var(--line); margin-top:24px; padding-top:8px; }
.endurance-coach .ec-season { border-top:1px solid var(--line); padding:20px 0; }
.endurance-coach .ec-periods { list-style:none; margin:0 0 20px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.endurance-coach .ec-periods li { background:var(--surface-soft); padding:12px; border-radius:8px; }
.endurance-coach .ec-periods p { font-size:12px; color:var(--text-secondary); }
.endurance-coach .ec-race-row { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding:8px 0; }
.endurance-coach .ec-loading { padding:24px; color:var(--text-secondary); }
@media(max-width:1000px) { .endurance-coach .ec-columns { grid-template-columns:1fr; }.endurance-coach .ec-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.endurance-coach .ec-filters>button { justify-self:start; }.endurance-coach .ec-availability { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:600px) { .endurance-coach .ec-heading { align-items:stretch; flex-direction:column; gap:16px; }.endurance-coach .ec-panel { padding:16px; margin-bottom:16px; }.endurance-coach .ec-form-grid { grid-template-columns:1fr; gap:12px; }.endurance-coach .ec-availability { grid-template-columns:repeat(2,minmax(0,1fr)); }.endurance-coach .ec-periods { grid-template-columns:1fr; }.endurance-coach .ec-list>li { align-items:stretch; flex-direction:column; gap:12px; }.endurance-coach .ec-list>li>button { align-self:flex-start; }.endurance-coach .ec-table { font-size:12px; }.endurance-coach .ec-table :is(th,td) { padding:10px 5px; }.endurance-coach .ec-nav { gap:4px; }.endurance-coach .ec-nav button { padding:8px; }.endurance-coach .ec-race-row { align-items:stretch; flex-direction:column; }.endurance-coach .ec-section-head { align-items:stretch; flex-direction:column; } }
