/* AthletiSync Client — Coach dashboard extras. Depends on hc-widgets for --hc-* variables and the shared
 * .hc/.hc-card/.hc-line/.hc-badge/.hc-input/.hc-btn/.hc-tabs/.hc-tab/.hc-pane/.hc-modal/.hc-dialog/.hc-chip/
 * .hc-daybtn/.hc-check/.hc-error/.hc-ok/.hc-coach-photo base rules. */
.hc-coach-gate .hc-card { max-width: 480px; margin: 0 auto; text-align: center; }
.hc-coach-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.hc-coach-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.hc-week-strip { display: flex; gap: 6px; overflow-x: auto; flex: 1 1 auto; padding-bottom: 2px; }
.hc-week-strip .hc-daybtn { flex: 0 0 auto; }

.hc-cap-meter { height: 6px; background: var(--hc-seat-taken); border-radius: var(--hc-radius); overflow: hidden; margin: 6px 0 14px; }
.hc-cap-meter i { display: block; height: 100%; background: var(--hc-accent); }

.hc-roster-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--hc-line); font-size: 14px; }
.hc-roster-row:first-child { border-top: 0; }

.hc-team-grid { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.hc-event-row { padding: 10px 0; border-top: 1px solid var(--hc-line); font-size: 14px; }
.hc-event-row:first-of-type { border-top: 0; }

.hc-coach-photo-wrap { width: 120px; }
.hc-coach-photo-wrap .hc-coach-photo { width: 120px; height: 120px; }

.hc-sub .hc-label { margin-top: 4px; }
details > summary.hc-link { cursor: pointer; list-style: none; }
details > summary.hc-link::-webkit-details-marker { display: none; }

@media (max-width: 600px) {
  .hc-coach-head { flex-direction: column; }
  .hc-coach-toolbar { flex-direction: column; align-items: stretch; }
  .hc-roster-row { flex-direction: column; align-items: flex-start; }
}

/* ---- v2.8 Today view: expandable sessions, 44px check-in targets, headcount ---- */
.hc-today-session{border:1px solid var(--hc-line);border-radius:var(--hc-radius);margin:10px 0;overflow:hidden}
.hc-today-session.is-live{border-color:var(--hc-accent)}
.hc-today-session.is-done,.hc-today-session.is-cancelled{opacity:.75}
.hc-today-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;width:100%;text-align:left;background:transparent;border:0;color:inherit;font:inherit;padding:14px 16px;cursor:pointer;min-height:64px}
.hc-today-head .hc-time{font-size:22px}
.hc-today-head .hc-time small{font-size:11px;letter-spacing:.08em;text-transform:none;margin-top:4px}
.hc-today-head .hc-body{display:grid;gap:2px;min-width:0}
.hc-today-meta{display:flex;align-items:center;gap:8px;white-space:nowrap}
.hc-chev{display:inline-block;font-size:22px;line-height:1;color:var(--hc-muted);transition:transform .15s}
.hc-today-session.is-open .hc-chev{transform:rotate(90deg)}
.hc-today-roster{border-top:1px solid var(--hc-line);padding:12px 16px 16px}
.hc-today-tools{flex-wrap:wrap;gap:8px;margin-bottom:6px}
.hc-today-tools .hc-actions{flex-wrap:wrap;gap:8px;align-items:center}
.hc-headcount{color:var(--hc-muted)}
.hc-headcount strong{color:var(--hc-ink)}
.hc-warn-text{color:#FFD84D}
.hc-checkin-list{display:grid;gap:6px;margin-top:8px}
.hc-checkin-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;border-top:1px solid var(--hc-line)}
.hc-checkin-row:first-child{border-top:0}
.hc-checkin-who{display:grid;gap:2px;min-width:0}
.hc-checkin-row.is-in .hc-checkin-who>strong{color:var(--hc-accent)}
.hc-btn.hc-checkin{min-height:44px;min-width:128px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.hc-empty-state{display:grid;gap:10px;justify-items:start;padding:8px 0}
@media (max-width:600px){.hc-today-head{grid-template-columns:auto 1fr;padding:12px}.hc-today-meta{grid-column:1/-1;justify-content:flex-start}.hc-checkin-row{flex-wrap:wrap}.hc-btn.hc-checkin{width:100%}}

/* ---- setup checklist ---- */
.hc-coach-setup{border-color:var(--hc-accent)}
.hc-setup-step{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--hc-line)}
.hc-setup-step .hc-body{display:grid;gap:2px;min-width:0}
.hc-setup-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--hc-line);font-size:12px;font-weight:800;color:var(--hc-muted)}
.hc-setup-step.is-done .hc-setup-mark{background:var(--hc-accent);color:var(--hc-btn-ink);border-color:var(--hc-accent)}
.hc-setup-step.is-done>.hc-body strong{color:var(--hc-muted);text-decoration:line-through}
@media (max-width:480px){.hc-setup-step{grid-template-columns:auto 1fr}.hc-setup-step .hc-btn{grid-column:2}}

/* ---- teams summary ---- */
.hc-team-summary{display:flex;gap:24px;flex-wrap:wrap}
.hc-team-summary .hc-stat{text-align:left}
.hc-team-summary .hc-stat strong{font-size:18px}
.hc-team-summary .hc-stat.is-warn strong{color:#FFD84D}

/* ---- availability editor ---- */
.hc-avail-summary{margin:0 0 10px}
.hc-avail-presets{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.hc-avail-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:0 0 12px}
.hc-avail-day{border:1px solid var(--hc-line);border-radius:var(--hc-radius);padding:8px;display:grid;gap:6px;align-content:start;min-height:64px}
.hc-avail-day.is-empty{opacity:.55}
.hc-avail-day>.hc-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--hc-muted)}
.hc-avail-window{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:13px;font-weight:600;background:var(--hc-seat-taken);padding:6px 8px;border-radius:var(--hc-radius)}
.hc-avail-window .hc-close{font-size:16px;min-width:24px;min-height:24px}
@media (max-width:760px){.hc-avail-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:480px){.hc-avail-grid{grid-template-columns:1fr 1fr}}
