:root{--navy:#00004c;--red:#d70f27;--text:#181b24;--muted:#69717d;--line:#e2e5ea;--bg:#f3f5f8;--state-pending-bg:#fff0f1;--state-pending-border:#dc7580;--state-pending-text:#a32836;--state-pending-dot:#d94b5a;--state-draft-bg:#eaf2ff;--state-draft-border:#6f9fe4;--state-draft-text:#174f9f;--state-draft-dot:#2767c7}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}button,input{font:inherit}.hidden{display:none!important}.coach-home-shell{min-height:100vh}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(165deg,#00004c 0 42%,#f3f5f8 42% 100%)}.login-card{width:min(430px,100%);padding:28px;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(0,0,35,.18)}.login-mark{width:54px;height:54px;border-radius:13px;display:grid;place-items:center;margin-bottom:20px;color:#fff;background:var(--navy);font-weight:900}.eyebrow,.home-kicker{color:var(--red);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:900}.login-card h1,.home-header h1{margin:4px 0;color:var(--navy)}.login-copy{color:var(--muted);line-height:1.5}.login-card form{display:grid;gap:14px;margin-top:22px}.login-card label{display:grid;gap:6px;font-size:.78rem;font-weight:750;color:#3e4550}.login-card input{width:100%;height:46px;border:1px solid #cfd4dc;border-radius:9px;padding:0 12px}.btn{min-height:42px;border:0;border-radius:9px;padding:0 15px;font-weight:850;cursor:pointer}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:#fff;color:var(--navy);border:1px solid #cdd2da}.btn.ghost{background:rgba(255,255,255,.11);color:#fff;border:1px solid rgba(255,255,255,.3)}.error{margin:14px 0 0;color:#a3192c;font-size:.78rem;font-weight:700}
.home-screen{max-width:900px;margin:0 auto;padding:0 14px 28px}.home-header{margin:0 -14px 14px;padding:calc(16px + env(safe-area-inset-top)) 18px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--navy);color:#fff}.home-header h1{color:#fff;font-size:1.35rem}.home-header p{margin:4px 0 0;color:#d9dbe6;font-size:.78rem}.notice{display:flex;flex-direction:column;gap:3px;margin:12px 0;padding:12px 14px;border-radius:10px;font-size:.76rem}.notice.warning{background:#fff5df;border:1px solid #edd29b;color:#76510a}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.summary-grid>article{padding:12px;border-radius:11px;background:#fff;border:1px solid var(--line)}.summary-grid small{display:block;color:var(--muted);font-size:.62rem}.summary-grid strong{display:block;margin-top:4px;color:var(--navy);font-size:1.22rem}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--line)}.toolbar small{display:block;color:var(--muted);font-size:.58rem}.toolbar strong{font-size:.73rem;color:var(--navy)}
.reports-list{display:grid;gap:9px}.report-card{display:grid;grid-template-columns:66px 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-date{display:grid;place-items:center;align-content:center;min-height:58px;border-radius:9px;background:#f0f2f6;color:var(--navy)}.report-date b{font-size:1.05rem}.report-date small{text-transform:uppercase;font-size:.57rem;font-weight:800}.report-main{min-width:0}.report-main h2{margin:0 0 3px;color:var(--navy);font-size:.87rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-main p{margin:2px 0;color:var(--muted);font-size:.65rem}.report-state{display:inline-flex;width:max-content;margin-top:5px;padding:3px 7px;border-radius:99px;font-size:.57rem;font-weight:850}.report-state.pending{background:#ffe7e3;color:#9a2930}.report-state.draft{background:#fff2bd;color:#795500}.report-state.completed{background:#dff2e8;color:#14633f}.report-state.future{background:#e9edf3;color:#606873}.report-action{min-width:108px}.empty-card{padding:28px 18px;text-align:center;border:1px dashed #cdd3dc;border-radius:12px;background:#fff}.empty-card strong{color:var(--navy)}.empty-card p{color:var(--muted);font-size:.74rem}@media(max-width:680px){.summary-grid{grid-template-columns:1fr 1fr}.report-card{grid-template-columns:58px 1fr}.report-action{grid-column:1/-1;width:100%}}

/* v1.28.1 · calendario mensual de partes */
.calendar-card{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.calendar-head small{display:block;color:var(--muted);font-size:.58rem;text-transform:uppercase;font-weight:800}.calendar-head strong{display:block;margin-top:2px;color:var(--navy);font-size:.85rem}
.calendar-nav{display:flex;align-items:center;gap:5px}.calendar-nav .btn{min-height:32px;height:32px;padding:0 10px}.month-btn{width:34px;min-width:34px;font-size:1rem}.today-btn{font-size:.65rem}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:9px;color:var(--muted);font-size:.58rem}.calendar-legend span{display:flex;align-items:center;gap:4px}.dot{width:8px;height:8px;border-radius:50%}.dot.pending,.marker.pending{background:#d94b5a}.dot.draft,.marker.draft{background:#e2b82f}.dot.completed,.marker.completed{background:#2d9c59}.dot.future,.marker.future{background:#9aa3af}
.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.weekdays span{text-align:center;color:#5d6570;font-size:.58rem;font-weight:900}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-day{position:relative;min-height:64px;padding:6px;border:1px solid #e3e6eb;border-radius:8px;background:#fff;text-align:left;color:var(--text)}.cal-day.outside{background:#fafbfc;border-color:#f0f1f3}.cal-day.weekend{background:#f5f6f8}.cal-day.state-pending{background:#fff0f1;border-color:#dc7580}.cal-day.state-draft{background:#fff9df;border-color:#e6c65d}.cal-day.state-completed{background:#edf8f0;border-color:#75b98b}.cal-day.state-future{background:#f1f3f6;border-color:#cfd4db}.day-num{font-size:.72rem;font-weight:900}.marker{position:absolute;right:6px;top:6px;width:9px;height:9px;border-radius:50%}.cal-day small{display:block;margin-top:22px;color:#606775;font-size:.52rem}.multi{position:absolute;right:5px;bottom:5px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--navy);color:#fff;font-size:.49rem;font-weight:900}
.day-detail{margin:10px 0;padding:0;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.day-detail>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.day-detail header small{display:block;color:var(--muted);font-size:.55rem;text-transform:uppercase}.day-detail header strong{color:var(--navy);font-size:.78rem}.close-day{min-height:30px;height:30px;font-size:.62rem}.day-rows{display:grid}.day-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.day-row:last-child{border-bottom:0}.day-row>div strong{display:block;color:var(--navy);font-size:.75rem}.day-row>div small{display:block;margin-top:2px;color:var(--muted);font-size:.62rem}.state-pill{display:inline-flex;padding:4px 7px;border-radius:99px;font-size:.56rem;font-weight:850}.state-pill.pending{background:#ffe1e4;color:#9c2030}.state-pill.draft{background:#fff4c4;color:#715800}.state-pill.completed{background:#dff2e5;color:#176439}.state-pill.future{background:#e9edf3;color:#606873}
@media(max-width:680px){.calendar-card{padding:9px;margin-left:-2px;margin-right:-2px}.calendar-grid,.weekdays{gap:3px}.cal-day{min-height:55px;padding:5px}.cal-day small{margin-top:17px;font-size:.47rem}.day-num{font-size:.66rem}.calendar-legend{gap:7px;font-size:.53rem}.day-row{grid-template-columns:1fr auto}.day-row .btn{grid-column:1/-1;width:100%}}

/* v1.28.2 · distinguir próximos, fines de semana y festivos */
.dot.future,.marker.future{background:#f0a12b}
.cal-day.weekend{background:#eef4f9;border-color:#cad8e5}
.cal-day.holiday{background:#f3effb;border-color:#c9b9e6}
.cal-day.state-future{background:#fff6e6;border-color:#efb65d}
.cal-day.state-pending{background:#fff0f1;border-color:#dc7580}
.cal-day.state-draft{background:#fff9df;border-color:#e6c65d}
.cal-day.state-completed{background:#edf8f0;border-color:#75b98b}
.holiday-label{position:absolute;left:5px;bottom:5px;display:grid;place-items:center;width:16px;height:16px;border-radius:5px;background:#7a64a8;color:#fff;font-size:.47rem;font-weight:900}


/* v1.28.3 · resumen compacto y acceso directo al parte */
.summary-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:7px 0 8px;
}
.summary-grid>article{
  min-height:46px;
  padding:6px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-radius:9px;
  background:#fff;
}
.summary-grid small{
  font-size:.58rem;
  font-weight:800;
  text-transform:uppercase;
}
.summary-grid strong{
  margin:0;
  font-size:.98rem;
  line-height:1;
}
.summary-grid>article.attention-pending{
  background:#fff0f1;
  border-color:#dc7580;
}
.summary-grid>article.attention-pending small,
.summary-grid>article.attention-pending strong{
  color:#a32836;
}
.summary-grid>article.attention-draft{
  background:#fff9df;
  border-color:#e6c65d;
}
.summary-grid>article.attention-draft small,
.summary-grid>article.attention-draft strong{
  color:#765b00;
}
@media(max-width:680px){
  .summary-grid{
    grid-template-columns:1fr 1fr;
    gap:6px;
    margin:5px 0 7px;
  }
  .summary-grid>article{
    min-height:38px;
    padding:5px 8px;
  }
  .summary-grid small{font-size:.51rem}
  .summary-grid strong{font-size:.86rem}
}


/* v1.32.3 · primer acceso y equipos */
.coach-teams-card{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:12px 0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}
.coach-teams-heading small{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:.56rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.coach-teams-heading strong{
  color:var(--navy);
  font-size:.76rem;
}
.coach-team-chips{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.coach-team-chip{
  display:grid;
  gap:1px;
  min-width:140px;
  padding:7px 9px;
  border:1px solid #d8dce4;
  border-radius:9px;
  background:#f7f8fa;
}
.coach-team-chip strong{
  color:var(--navy);
  font-size:.68rem;
}
.coach-team-chip small{
  color:var(--muted);
  font-size:.54rem;
}
.password-change-card{
  margin:14px 0;
  overflow:hidden;
  border:1px solid #e5c66b;
  border-radius:13px;
  background:#fff;
  box-shadow:0 8px 24px rgba(34,38,60,.08);
}
.password-change-head{
  padding:15px 16px 12px;
  background:#fff8df;
  border-bottom:1px solid #ead79b;
}
.password-step{
  display:block;
  margin-bottom:3px;
  color:#8a6200;
  font-size:.57rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.password-change-head h2{
  margin:0;
  color:var(--navy);
  font-size:1rem;
}
.password-change-head p{
  margin:5px 0 0;
  color:#6c5820;
  font-size:.69rem;
  line-height:1.45;
}
.password-change-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:14px 16px 16px;
}
.password-change-form label{
  display:grid;
  gap:5px;
  color:#3f4651;
  font-size:.66rem;
  font-weight:750;
}
.password-change-form label:first-child{
  grid-column:1/-1;
}
.password-change-form input{
  width:100%;
  height:42px;
  padding:0 11px;
  border:1px solid #cfd4dc;
  border-radius:8px;
  background:#fff;
}
.password-change-form .btn,
.password-change-form .error,
.password-change-form .success-message{
  grid-column:1/-1;
}
.password-change-form .error,
.success-message{
  margin:0;
  padding:8px 10px;
  border-radius:8px;
  font-size:.66rem;
  font-weight:700;
}
.success-message{
  background:#edf8f0;
  border:1px solid #c6e1ce;
  color:#176239;
}
.portal-locked{
  display:none;
}
@media(max-width:680px){
  .coach-teams-card{
    display:grid;
  }
  .coach-team-chips{
    justify-content:stretch;
  }
  .coach-team-chip{
    min-width:0;
    width:100%;
  }
  .password-change-form{
    grid-template-columns:1fr;
  }
  .password-change-form label:first-child{
    grid-column:auto;
  }
}


/* v1.33.0 · cabecera y selector de equipo */
.login-mark{display:none!important}
.login-copy{display:none!important}
.login-card .eyebrow{margin-top:0}
.home-header-main{min-width:0;flex:1}
.home-title-row{display:flex;align-items:center;gap:12px;min-width:0}
.home-title-row h1{flex:0 0 auto;margin:4px 0}
.header-team-switcher{
  display:flex;
  gap:6px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
  padding:2px 0;
}
.header-team-switcher::-webkit-scrollbar{display:none}
.header-team-btn{
  flex:0 0 auto;
  min-height:31px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:.68rem;
  font-weight:850;
  cursor:pointer;
}
.header-team-btn.active{
  background:#fff;
  border-color:#fff;
  color:var(--navy);
}
.coach-teams-card{display:none!important}

/* Borrador = azul; Próximo = gris neutro */
.dot.draft,.marker.draft{background:#2767c7}
.cal-day.state-draft{background:#eaf2ff;border-color:#6f9fe4}
.state-pill.draft{background:#dceaff;color:#174f9f}
.dot.future,.marker.future{background:#8e98a6}
.cal-day.state-future{background:#f3f4f6;border-color:#c5cbd3}
.state-pill.future{background:#edf0f3;color:#58616d}

@media(max-width:680px){
  .home-header{align-items:flex-start}
  .home-title-row{display:grid;gap:4px}
  .header-team-switcher{width:100%;max-width:calc(100vw - 115px)}
}


/* v1.33.1 · calendario móvil más compacto */
.cal-day{
  min-height:52px;
  padding:4px 5px;
}
.day-num{
  line-height:1;
}
.marker{
  top:5px;
  right:5px;
  width:8px;
  height:8px;
}
.cal-day small{
  margin-top:12px;
  line-height:1;
}
@media(max-width:680px){
  .cal-day{
    min-height:46px;
    padding:4px;
  }
  .cal-day small{
    margin-top:9px;
    font-size:.5rem;
  }
  .marker{
    top:4px;
    right:4px;
  }
}

/* v1.33.2 */
.home-title-row{margin-top:4px}
@media(max-width:680px){.home-title-row{margin-top:3px}}

/* v1.34.8 · invitación de entrenador */
.invite-card .invite-intro{margin:0 0 16px;color:var(--muted,#667085);font-size:.9rem;line-height:1.5}.invite-card form{display:grid;gap:12px}.invite-card .error{margin-top:12px}

/* v1.35.0 · recuperación autónoma de acceso */
.access-help-link{border:0;background:transparent;color:var(--navy);font:800 .76rem/1.35 inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:3px 0 0;text-align:center}
.access-help-link:hover{opacity:.78}.recovery-card .recovery-intro{margin:8px 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.recovery-back{background:#fff!important;color:var(--navy)!important;border:1px solid #cdd2da!important}.recovery-message{margin:15px 0 0;padding:11px 12px;border-radius:9px;font-size:.78rem;line-height:1.45}.recovery-message.success-message{background:#edf7f1;color:#176144;border:1px solid #cbe7d5}.recovery-message.error{background:#fff1f2;color:#a3192c;border:1px solid #f0c7cd}


/* v1.35.1 · coherencia visual del acceso y recuperación */
.login-recovery{display:grid;gap:8px;margin-top:2px;padding-top:14px;border-top:1px solid var(--line);text-align:center}
.login-recovery>span{color:var(--muted);font-size:.72rem;line-height:1.4}
.access-recovery-btn{width:100%;background:#fff;color:var(--navy);border:1px solid #cdd2da}
.access-recovery-btn:hover{background:#f7f8fa}
.recovery-card .recovery-intro{margin:7px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}
.recovery-card form{margin-top:18px}
.recovery-back{width:100%}
@media(max-width:680px){.login-recovery{padding-top:12px}.login-recovery>span{font-size:.7rem}}


/* v1.35.6 · acceso híbrido: contraseña propia o enlace por correo */
.invite-password-choice{display:grid;gap:14px}
.invite-choice-head{display:grid;gap:4px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}
.invite-choice-head strong{color:var(--navy);font-size:.86rem}
.invite-choice-head span,.invite-skip span{color:var(--muted);font-size:.74rem;line-height:1.45}
.invite-skip{display:grid;gap:8px;padding-top:13px;border-top:1px solid var(--line);text-align:center}
.invite-skip .btn{width:100%}
.password-setup-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:18px;align-items:center;margin:0 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.password-setup-copy{display:grid;gap:4px}.password-setup-copy h2{margin:0;color:var(--navy);font-size:1rem}.password-setup-copy p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}
.password-setup-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.password-setup-form label{display:grid;gap:5px}.password-setup-form label span{font-size:.7rem;font-weight:750;color:var(--navy)}.password-setup-form input{min-width:0}.password-setup-form .btn,.password-setup-form .error,.password-setup-form .success-message{grid-column:1/-1}
@media(max-width:760px){.password-setup-card{grid-template-columns:1fr}.password-setup-form{grid-template-columns:1fr}.password-setup-form .btn,.password-setup-form .error,.password-setup-form .success-message{grid-column:auto}}


/* v1.35.9 · Datos entreno plegables */
.coach-data-card{
  margin-top:12px;
  border:1px solid var(--line,#dfe3ea);
  border-radius:12px;
  background:#fff;
  overflow:hidden;
}
.coach-data-toggle{
  width:100%;
  border:0;
  background:#fff;
  padding:13px 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.coach-data-toggle small{
  display:block;
  margin-bottom:2px;
  color:var(--muted,#697386);
  font-size:.7rem;
}
.coach-data-toggle strong{
  color:var(--navy,#00004c);
  font-size:.95rem;
}
.coach-data-chevron{
  color:var(--navy,#00004c);
  font-size:1.25rem;
  line-height:1;
  transition:transform .18s ease;
}
.coach-data-toggle[aria-expanded="true"] .coach-data-chevron{transform:rotate(180deg)}
.coach-data-body{border-top:1px solid var(--line,#dfe3ea);padding:0 14px 12px}
.coach-data-section{border-bottom:1px solid var(--line,#dfe3ea)}
.coach-data-section:last-child{border-bottom:0}
.coach-data-section>summary{
  list-style:none;
  cursor:pointer;
  padding:13px 2px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--navy,#00004c);
  font-size:.82rem;
  font-weight:800;
}
.coach-data-section>summary::-webkit-details-marker{display:none}
.coach-data-section>summary::after{content:'+';font-size:1rem;color:var(--muted,#697386)}
.coach-data-section[open]>summary::after{content:'−'}
.coach-data-section-body{padding:0 2px 13px}
.coach-data-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.coach-data-metrics>div{
  padding:10px;
  border:1px solid var(--line,#dfe3ea);
  border-radius:9px;
  background:#fafbfc;
}
.coach-data-metrics small{
  display:block;
  color:var(--muted,#697386);
  font-size:.64rem;
  line-height:1.25;
}
.coach-data-metrics strong{
  display:block;
  margin-top:3px;
  color:var(--navy,#00004c);
  font-size:1rem;
}
.coach-data-period,.coach-data-empty{
  margin:10px 0 0;
  color:var(--muted,#697386);
  font-size:.68rem;
  line-height:1.45;
}
.coach-player-list{padding-bottom:5px}
.coach-player-row{
  border-top:1px solid var(--line,#dfe3ea);
}
.coach-player-row:first-child{border-top:0}
.coach-player-row>summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 2px;
}
.coach-player-row>summary::-webkit-details-marker{display:none}
.coach-player-name{
  min-width:0;
  color:var(--navy,#00004c);
  font-size:.75rem;
  font-weight:750;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.coach-player-quick{text-align:right}
.coach-player-quick strong{
  display:block;
  color:var(--navy,#00004c);
  font-size:.72rem;
}
.coach-player-quick small{
  display:block;
  margin-top:1px;
  color:var(--muted,#697386);
  font-size:.62rem;
}
.coach-player-detail{padding:0 2px 10px}
.coach-player-detail p{
  margin:0;
  color:var(--muted,#697386);
  font-size:.66rem;
}
.coach-absence-list{
  display:grid;
  gap:5px;
}
.coach-absence-list>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:6px 8px;
  border-radius:7px;
  background:#f7f8fa;
  font-size:.66rem;
}
.coach-absence-list time{color:var(--navy,#00004c);font-weight:750}
.coach-absence-list span{color:var(--muted,#697386);text-align:right}
.coach-data-error{
  margin:12px 0 0;
  color:#a01f2f;
  font-size:.7rem;
}
@media(max-width:560px){
  .coach-data-metrics{grid-template-columns:1fr}
}


/* v1.36.1 · Datos entreno: subtareas visuales + detalle de jugador */
.coach-data-body{
  display:grid;
  gap:9px;
  padding:11px 12px 12px;
}
.coach-data-section{
  border:1px solid transparent;
  border-radius:10px;
  overflow:hidden;
}
.coach-data-section.coach-data-team{
  background:#f4f7fb;
  border-color:#dce5f1;
}
.coach-data-section.coach-data-players{
  background:#f7f5fb;
  border-color:#e4dff0;
}
.coach-data-section>summary{
  padding:11px 12px;
}
.coach-data-section>summary span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.coach-data-section-body,
.coach-player-list{
  padding-left:10px;
  padding-right:10px;
  padding-bottom:10px;
}
.coach-player-row{
  background:#fff;
  border:1px solid rgba(16,24,40,.08);
  border-radius:8px;
  margin-top:7px;
  overflow:hidden;
}
.coach-player-row:first-child{border-top:1px solid rgba(16,24,40,.08)}
.coach-player-row>summary{
  padding:9px 10px;
}
.coach-player-quick small{
  white-space:normal;
  max-width:250px;
  line-height:1.25;
}
.coach-player-detail{
  padding:0 10px 10px;
  border-top:1px solid rgba(16,24,40,.06);
}
.coach-player-detail-block{
  padding-top:9px;
}
.coach-player-detail-block>strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy,#00004c);
  font-size:.66rem;
}
.coach-observation-list{
  display:grid;
  gap:6px;
}
.coach-observation-list details{
  border:1px solid rgba(16,24,40,.08);
  border-radius:7px;
  background:#fff;
}
.coach-observation-list summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:7px 8px;
  font-size:.65rem;
}
.coach-observation-list summary::-webkit-details-marker{display:none}
.coach-observation-list time{
  color:var(--navy,#00004c);
  font-weight:800;
}
.coach-observation-list summary span{
  color:var(--muted,#697386);
  font-weight:700;
}
.coach-observation-list p{
  margin:0;
  padding:0 8px 8px;
  color:#394150;
  font-size:.66rem;
  line-height:1.45;
}
@media(max-width:560px){
  .coach-player-row>summary{
    grid-template-columns:1fr;
    gap:4px;
  }
  .coach-player-quick{text-align:left}
  .coach-player-quick small{max-width:none}
}


/* v1.36.2 · resumen compacto y acordeón de jugadores */
.coach-player-quick small{
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}


/* v1.36.4 · resumen de jugador en dos líneas + color de asistencia */
.coach-player-row>summary{
  grid-template-columns:1fr;
  align-items:stretch;
  gap:5px;
}
.coach-player-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.coach-player-name{
  flex:1 1 auto;
}
.coach-player-events{
  color:var(--muted,#697386);
  font-size:.63rem;
  line-height:1.3;
  font-variant-numeric:tabular-nums;
}
.coach-attendance-badge{
  flex:0 0 auto;
  min-width:52px;
  padding:4px 7px;
  border-radius:999px;
  text-align:center;
  font-size:.7rem;
  font-weight:850;
  font-variant-numeric:tabular-nums;
  border:1px solid transparent;
}
.coach-attendance-badge.good{
  background:#edf7ef;
  color:#17633c;
  border-color:#cfe8d6;
}
.coach-attendance-badge.warn{
  background:#fff6e8;
  color:#9a5a00;
  border-color:#f1d9ad;
}
.coach-attendance-badge.bad{
  background:#fff0f1;
  color:#a02535;
  border-color:#efc9ce;
}
.coach-attendance-badge.neutral{
  background:#f4f5f7;
  color:#697386;
  border-color:#e1e4e8;
}


/* v1.36.5 · jugador desplegado destacado */
.coach-player-row[open]{
  background:#fffaf0;
  border-color:#ead7ad;
  box-shadow:0 2px 8px rgba(54,43,20,.08);
}
.coach-player-row[open]>summary{
  background:#fff6df;
}
.coach-player-row[open] .coach-player-name{
  color:var(--navy,#00004c);
}
.coach-player-row[open] .coach-player-detail{
  background:#fffdf8;
}


/* v1.36.6 · calendario no realizado + métricas de equipo */
.marker.not-held{
  background:#d94b5a;
}
.coach-data-metrics.team-metrics{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.coach-data-metrics.team-metrics .metric-attendance strong{
  font-size:1.08rem;
}
@media(max-width:760px){
  .coach-data-metrics.team-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .coach-data-metrics.team-metrics .metric-attendance{
    grid-column:1/-1;
  }
}


/* v1.36.7 · Datos entreno > Contenidos */
.coach-data-section.coach-data-contents{
  background:#f1f8f6;
  border-color:#d4e8e1;
}
.coach-content-recent{
  display:grid;
  gap:7px;
  padding-top:2px;
}
.coach-content-recent-row{
  background:#fff;
  border:1px solid rgba(16,24,40,.08);
  border-radius:8px;
  padding:8px 9px;
}
.coach-content-recent-row>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:4px;
}
.coach-content-recent-row small{
  color:var(--muted,#697386);
  font-size:.61rem;
  font-weight:750;
}
.coach-content-recent-row time{
  color:var(--navy,#00004c);
  font-size:.64rem;
  font-weight:800;
}
.coach-content-recent-row p{
  display:grid;
  gap:2px;
  margin:0;
  font-size:.64rem;
  line-height:1.35;
}
.coach-content-divider{
  height:1px;
  margin:10px 0;
  background:rgba(16,24,40,.08);
}
.coach-content-context{
  margin:0 0 7px;
  color:var(--muted,#697386);
  font-size:.62rem;
}
.coach-content-context strong{
  color:var(--navy,#00004c);
}
.coach-content-areas{
  display:grid;
  gap:6px;
}
.coach-content-area{
  overflow:hidden;
  border:1px solid rgba(16,24,40,.08);
  border-radius:8px;
  background:#fff;
}
.coach-content-area>summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 9px;
  font-size:.66rem;
}
.coach-content-area>summary::-webkit-details-marker{
  display:none;
}
.coach-content-area>summary span{
  color:var(--navy,#00004c);
  font-weight:800;
}
.coach-content-area>summary strong{
  color:var(--muted,#697386);
  font-size:.62rem;
}
.coach-content-area[open]{
  border-color:#b9d9cf;
  box-shadow:0 2px 7px rgba(20,70,58,.06);
}
.coach-content-area[open]>summary{
  background:#eaf5f1;
}
.coach-content-detail{
  display:grid;
  padding:2px 9px 8px;
}
.coach-content-detail>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:5px 0;
  border-top:1px solid rgba(16,24,40,.06);
  font-size:.63rem;
}
.coach-content-detail>div strong{
  color:var(--navy,#00004c);
  font-variant-numeric:tabular-nums;
}


.summary-card-action{
  appearance:none;
  width:100%;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.summary-card-action:disabled{
  cursor:default;
}
.summary-card-action:not(:disabled):focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}


/* v1.37.8 - las tarjetas de resumen volvieron a ser botones en v1.37.7.
   Recuperamos exactamente su aspecto de tarjeta manteniendo el clic. */
.summary-grid>.summary-card-action{
  min-width:0;
  min-height:58px;
  padding:10px 12px;
  border:1px solid #d9dee8;
  border-radius:12px;
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  box-sizing:border-box;
}
.summary-grid>.summary-card-action small{
  display:block;
  margin:0;
}
.summary-grid>.summary-card-action strong{
  display:block;
  margin:0;
  font-size:.98rem;
  line-height:1;
}
.summary-grid>.summary-card-action.attention-pending{
  background:#fff0f1;
  border-color:#dc7580;
}
.summary-grid>.summary-card-action.attention-pending small,
.summary-grid>.summary-card-action.attention-pending strong{
  color:#a32836;
}
.summary-grid>.summary-card-action.attention-draft{
  background:#fff9df;
  border-color:#e6c65d;
}
.summary-grid>.summary-card-action.attention-draft small,
.summary-grid>.summary-card-action.attention-draft strong{
  color:#765b00;
}
@media(max-width:680px){
  .summary-grid>.summary-card-action{
    min-height:38px;
    padding:6px 8px;
  }
}


/* v1.37.10 · indicadores visuales del resumen de jugador */
.coach-player-events{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.coach-player-event{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:2px 6px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:.61rem;
  font-weight:750;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.coach-player-event.neutral{
  background:#f3f4f6;
  color:#8a919c;
  border-color:#e5e7eb;
}
.coach-player-event.excused{
  background:#fff6df;
  color:#7a5b00;
  border-color:#ead48b;
}
.coach-player-event.unexcused{
  background:#fff0f1;
  color:#a32836;
  border-color:#e3a2aa;
}
.coach-player-event.observation{
  background:#f0effb;
  color:#5b4b9b;
  border-color:#cfc8ea;
}


/* v1.37.13 · colores unificados de estado */
.dot.pending,.marker.pending{
  background:var(--state-pending-dot);
}
.cal-day.state-pending,
.summary-grid>.summary-card-action.attention-pending{
  background:var(--state-pending-bg);
  border-color:var(--state-pending-border);
}
.summary-grid>.summary-card-action.attention-pending small,
.summary-grid>.summary-card-action.attention-pending strong{
  color:var(--state-pending-text);
}

.dot.draft,.marker.draft{
  background:var(--state-draft-dot);
}
.cal-day.state-draft,
.summary-grid>.summary-card-action.attention-draft{
  background:var(--state-draft-bg);
  border-color:var(--state-draft-border);
}
.state-pill.draft{
  background:#dceaff;
  color:var(--state-draft-text);
}
.summary-grid>.summary-card-action.attention-draft small,
.summary-grid>.summary-card-action.attention-draft strong{
  color:var(--state-draft-text);
}

/* Cuando el contador es 0 no recibe attention-* y queda blanco/neutro. */
