:root {
  --bcoach-green: #1b6e3c;
  --bcoach-green-dark: #124d29;
  --bcoach-orange: #f08c00;
}

body {
  background-color: #f4f6f5;
  font-family: 'Segoe UI', Roboto, sans-serif;
}

.app-navbar {
  background: linear-gradient(90deg, var(--bcoach-green-dark), var(--bcoach-green));
}

.card {
  border: none;
  border-radius: .75rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

a.stat-card {
  display: block;
  transition: transform .12s ease, box-shadow .12s ease;
}
a.stat-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.exercise-link-card {
  transition: box-shadow .12s ease, transform .12s ease;
}
.exercise-link-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.btn-brand {
  background-color: var(--bcoach-green);
  border-color: var(--bcoach-green);
  color: #fff;
}
.btn-brand:hover { background-color: var(--bcoach-green-dark); color:#fff; }

.badge-category {
  color: #fff;
  font-weight: 500;
}

.auth-wrapper {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--bcoach-green-dark), var(--bcoach-green));
}
.auth-card {
  width: 100%;
  max-width: 420px;
}

/* ---- Pizarra táctica ---- */
.board-wrapper {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  background: #2e7d32;
  user-select: none;
}
.board-wrapper-lg {
  max-width: 100%;
}
#tacticalCanvas,
#lineupCanvas {
  width: 100%;
  height: auto;
  display: block;
  cursor: crosshair;
  border-radius: 8px;
  touch-action: none;
}
.bench-strip {
  background: #fff;
  border-radius: .75rem;
  padding: 10px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.bench-player {
  width: 68px;
}
.bench-photo {
  width: 52px; height: 52px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
  background: #6c757d;
  display: flex; align-items:center; justify-content:center;
  color: #fff; font-weight:bold; font-size:.85rem;
  border: 2px solid var(--bcoach-orange);
}
.bench-photo img {
  width: 100%; height: 100%; object-fit: cover;
}
.board-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  background: #f1f3f5;
  border-radius: 10px;
  padding: 8px;
  margin-bottom: 10px;
}
.board-toolbar .btn {
  width: 38px;
  height: 38px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 1rem;
  line-height: 1;
  transition: transform .1s ease;
}
.board-toolbar .btn.border {
  background: #fff;
}
.board-toolbar .btn:hover {
  transform: translateY(-1px);
}
.board-toolbar .tool-divider {
  width: 1px;
  align-self: stretch;
  background: #dee2e6;
  margin: 2px 4px;
}
.tool-btn.active {
  outline: 2px solid var(--bcoach-orange);
  outline-offset: 1px;
}
.palette-token {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: inline-flex; align-items:center; justify-content:center;
  cursor: grab;
  font-size: .8rem;
  color:#fff;
  font-weight:bold;
}

/* Calendario simple */
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.calendar-cell {
  min-height: 100px;
  background: #fff;
  border-radius: 6px;
  padding: 4px;
  font-size: .8rem;
}
.calendar-cell.muted { background: #eee; color:#999; }
.calendar-event {
  display:block;
  border-radius: 4px;
  padding: 1px 4px;
  margin-bottom: 2px;
  font-size: .7rem;
  color:#fff;
  text-decoration:none;
}
.event-session { background: var(--bcoach-green); }
.event-match { background: var(--bcoach-orange); }

/* Ajustes para móvil / tablet */
@media (max-width: 576px) {
  .calendar-grid { gap: 2px; }
  .calendar-cell { min-height: 64px; padding: 2px; font-size: .7rem; }
  .calendar-event { font-size: .6rem; padding: 0 2px; }
  .board-toolbar .btn { width: 34px; height: 34px; font-size: .9rem; }
  h2.fw-bold { font-size: 1.4rem; }
  .dash-vs-crest { width: 42px !important; height: 42px !important; font-size: .9rem !important; }
}



/* =========================================================
   BCOACH · Sistema visual Profesional Deportivo
   Capa de modernización global. No altera la lógica PHP/JS.
   ========================================================= */
:root {
  --bcoach-green: #16794b;
  --bcoach-green-dark: #103d2b;
  --bcoach-green-deep: #0a281c;
  --bcoach-orange: #f4a62a;
  --bc-ink: #17251d;
  --bc-muted: #738078;
  --bc-bg: #f3f6f4;
  --bc-surface: #fff;
  --bc-border: #e1e9e3;
  --bc-radius: 16px;
  --bc-shadow: 0 5px 22px rgba(16, 61, 43, .055);
  --bc-shadow-hover: 0 14px 32px rgba(16, 61, 43, .11);
}
html { scroll-behavior: smooth; }
body {
  background: var(--bc-bg);
  color: var(--bc-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { text-underline-offset: 3px; }
.app-navbar {
  background: linear-gradient(110deg, var(--bcoach-green-deep), var(--bcoach-green-dark) 58%, #145b39) !important;
  border-bottom: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 5px 22px rgba(13, 42, 29, .13);
  backdrop-filter: blur(16px);
  padding: .68rem 1rem;
}
.app-navbar .navbar-brand {
  letter-spacing: -.035em;
  font-size: 1.05rem;
  color: #fff;
  padding-right: .8rem;
  white-space: nowrap;
}
.app-navbar .navbar-brand img {
  width: 34px !important;
  height: 34px !important;
  object-fit: contain;
  border-radius: 10px !important;
  background: rgba(255,255,255,.95);
  padding: 3px;
}
.app-navbar .nav-link {
  color: rgba(255,255,255,.79) !important;
  border-radius: 9px;
  padding: .57rem .66rem !important;
  margin: 0 .06rem;
  font-weight: 570;
  font-size: .875rem;
  transition: background .18s ease, color .18s ease;
}
.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus,
.app-navbar .nav-link.active {
  color: #fff !important;
  background: rgba(255,255,255,.12);
}
.app-navbar .nav-link.active { box-shadow: inset 0 -2px 0 var(--bcoach-orange); }
.navbar-toggler { border-color: rgba(255,255,255,.25); border-radius: 10px; padding: .4rem .55rem; }
main.container-fluid { max-width: 1680px; margin-inline: auto; padding-top: 1.5rem !important; }
h1, h2, h3, h4, h5, h6 { color: var(--bc-ink); letter-spacing: -.035em; }
h1, h2.fw-bold { font-weight: 780 !important; }
h1 { font-size: clamp(1.65rem, 3vw, 2.25rem); }
h2 { font-size: clamp(1.4rem, 2.3vw, 1.9rem); }
h3 { font-size: 1.2rem; }
.text-muted, .text-secondary { color: var(--bc-muted) !important; }
.card {
  background: var(--bc-surface);
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  box-shadow: var(--bc-shadow);
  overflow: hidden;
}
.card-header {
  background: transparent;
  border-bottom: 1px solid var(--bc-border);
  padding: 1rem 1.2rem;
  font-weight: 720;
}
.card-body { padding: 1.25rem; }
.card-footer { background: #fafcfb; border-top: 1px solid var(--bc-border); }
a.stat-card, .exercise-link-card {
  display: block;
  border: 1px solid var(--bc-border);
  border-radius: var(--bc-radius);
  box-shadow: 0 4px 16px rgba(20,48,34,.035);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
a.stat-card:hover, .exercise-link-card:hover {
  transform: translateY(-3px);
  border-color: rgba(22,121,75,.32);
  box-shadow: var(--bc-shadow-hover);
}
.btn {
  border-radius: 10px;
  font-weight: 650;
  padding: .58rem .9rem;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-brand {
  background: var(--bcoach-green);
  border-color: var(--bcoach-green);
  color: #fff;
  box-shadow: 0 4px 10px rgba(22,121,75,.15);
}
.btn-brand:hover, .btn-brand:focus { background: var(--bcoach-green-dark); border-color: var(--bcoach-green-dark); color: #fff; }
.btn-outline-secondary { border-color: #d5dfd9; color: #405148; }
.btn-outline-secondary:hover { background: #edf4ef; border-color: #cad9cf; color: var(--bcoach-green-dark); }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible, a:focus-visible {
  outline: 3px solid rgba(244,166,42,.65);
  outline-offset: 2px;
}
.form-control, .form-select {
  border: 1px solid #dce5df;
  border-radius: 10px;
  min-height: 42px;
  color: var(--bc-ink);
  background-color: #fff;
}
.form-control:focus, .form-select:focus {
  border-color: var(--bcoach-green);
  box-shadow: 0 0 0 .22rem rgba(22,121,75,.12);
}
.form-label { font-weight: 650; color: #34463b; margin-bottom: .42rem; }
.input-group-text { background: #f5f8f6; border-color: #dce5df; border-radius: 10px; }
.table-responsive { border-radius: 12px; }
.table { --bs-table-bg: transparent; vertical-align: middle; margin-bottom: 0; }
.table thead th {
  color: #69786f;
  background: #f7faf8;
  font-size: .74rem;
  font-weight: 760;
  letter-spacing: .055em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--bc-border);
  padding: .85rem .8rem;
  white-space: nowrap;
}
.table tbody td { padding: .85rem .8rem; border-color: #edf1ee; }
.table-hover tbody tr:hover { --bs-table-bg: #f6faf7; }
.dropdown-menu {
  border: 1px solid var(--bc-border);
  border-radius: 13px;
  box-shadow: 0 14px 35px rgba(20,48,34,.14);
  padding: .45rem;
}
.dropdown-item { border-radius: 8px; padding: .58rem .75rem; }
.dropdown-item:hover { background: #edf6f0; color: var(--bcoach-green-dark); }
.alert { border: 1px solid transparent; border-radius: 12px; }
.badge { border-radius: 7px; font-weight: 650; padding: .4em .62em; }
.pagination { gap: 4px; }
.page-link { border-radius: 9px !important; border-color: var(--bc-border); color: var(--bcoach-green); }
.page-item.active .page-link { background: var(--bcoach-green); border-color: var(--bcoach-green); }
.list-group-item { border-color: var(--bc-border); padding: .85rem 1rem; }
.progress { height: 8px; border-radius: 999px; background: #e9efeb; }
.progress-bar { background-color: var(--bcoach-green); border-radius: 999px; }
.auth-wrapper {
  min-height: calc(100vh - 2rem);
  background: radial-gradient(ellipse at top left, rgba(244,166,42,.22), transparent 35%),
              linear-gradient(135deg, #0a281c 0%, #145b39 52%, #16794b 100%);
  padding: 24px;
  border-radius: 18px;
}
.auth-card {
  max-width: 440px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 22px;
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
  overflow: hidden;
}
.auth-card .card-body { padding: clamp(1.4rem, 5vw, 2.25rem); }
.auth-card img { filter: drop-shadow(0 6px 12px rgba(0,0,0,.12)); }
.board-wrapper { border-radius: 16px; overflow: hidden; box-shadow: var(--bc-shadow); }
.board-wrapper-lg { max-width: 100%; }
#tacticalCanvas, #lineupCanvas { border-radius: 0; }
.bench-strip { border: 1px solid var(--bc-border); border-radius: 14px; box-shadow: var(--bc-shadow); }
.board-toolbar { background: #f8faf9; border: 1px solid var(--bc-border); border-radius: 13px; gap: 7px; padding: 10px; }
.board-toolbar .btn { border-radius: 10px; }
.calendar-grid { gap: 6px; }
.calendar-cell { border: 1px solid var(--bc-border); border-radius: 10px; padding: 7px; }
.calendar-cell.muted { background: #f0f3f1; color: #a0aaa4; }
.calendar-event { border-radius: 5px; padding: 3px 5px; line-height: 1.35; }
.event-session { background: var(--bcoach-green); }
.event-match { background: #d9870b; }
img { max-width: 100%; }
hr { color: var(--bc-border); opacity: 1; }
footer { color: var(--bc-muted); }
@media (min-width: 1200px) {
  main.container-fluid { padding-inline: 2rem !important; }
}
@media (max-width: 991.98px) {
  .app-navbar .navbar-nav { padding-top: .45rem; }
  .app-navbar .nav-link { margin: .1rem 0; }
  main.container-fluid { padding-top: 1rem !important; }
}
@media (max-width: 575.98px) {
  body { font-size: 14px; }
  main.container-fluid { padding-inline: .8rem !important; }
  .card-body { padding: 1rem; }
  .card-header { padding: .85rem 1rem; }
  .btn { padding: .52rem .72rem; }
  .calendar-grid { gap: 2px; }
  .calendar-cell { min-height: 62px; padding: 3px; font-size: .68rem; border-radius: 6px; }
  .calendar-event { font-size: .58rem; padding: 2px; }
  .board-toolbar { gap: 5px; padding: 7px; }
  .auth-wrapper { padding: 12px; border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* Fase 2 · Dashboard, equipos y plantillas */
.dashboard-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:205px;padding:clamp(24px,4vw,42px);border-radius:22px;color:#fff;background:linear-gradient(115deg,#0a281c 0%,#10472f 56%,#16794b 100%);box-shadow:0 16px 38px rgba(12,56,36,.17)}
.dashboard-hero:after{content:"";position:absolute;z-index:-1;width:360px;height:360px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:10%;top:-190px;box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.02)}
.dashboard-hero-copy{max-width:650px}.dashboard-hero h1{color:#fff;font-size:clamp(1.8rem,3.5vw,2.65rem);letter-spacing:-.05em}.dashboard-hero p{color:rgba(255,255,255,.72);max-width:570px}.dashboard-eyebrow,.panel-kicker{font-size:.68rem;letter-spacing:.13em;font-weight:800;color:#829087;margin-bottom:.55rem}.dashboard-eyebrow{color:#b8e2c7;display:flex;align-items:center;gap:8px}.dashboard-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#f4a62a;box-shadow:0 0 0 4px rgba(244,166,42,.15)}.dashboard-hero-actions{display:flex;gap:9px;flex-wrap:wrap;z-index:1}.dashboard-hero-actions .btn{white-space:nowrap}.btn-hero-outline{border:1px solid rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.06)}.btn-hero-outline:hover{color:#fff;background:rgba(255,255,255,.14)}.dashboard-hero-mark{position:absolute;right:28px;bottom:-30px;font-size:clamp(6rem,13vw,11rem);color:rgba(255,255,255,.055);transform:rotate(-15deg);pointer-events:none}
.metric-card{position:relative;display:block;height:100%;min-height:157px;padding:19px;border:1px solid var(--bc-border);border-radius:16px;background:#fff;box-shadow:var(--bc-shadow);color:var(--bc-ink);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.metric-card:hover{color:var(--bc-ink);transform:translateY(-3px);box-shadow:var(--bc-shadow-hover);border-color:#c9ddcf}.metric-green{background:linear-gradient(145deg,#fff 40%,#eff8f1 100%)}.metric-icon{width:40px;height:40px;border-radius:12px;background:#e6f4ea;color:#16794b;display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-bottom:12px}.metric-icon-lime{background:#eef4d8;color:#667b17}.metric-icon-amber{background:#fff2d9;color:#a66a00}.metric-icon-blue{background:#e5efff;color:#3767a7}.metric-label{font-size:.8rem;color:var(--bc-muted);font-weight:650}.metric-value{font-size:2rem;line-height:1.2;font-weight:800;letter-spacing:-.06em;margin:.12rem 0 .35rem}.metric-foot{font-size:.72rem;color:#7d8981}.metric-foot i{float:right;color:var(--bcoach-green)}.dashboard-panel{border-radius:17px}.dashboard-panel>.card-header{padding:19px 21px}.dashboard-panel>.card-body{padding:20px}.dashboard-panel .panel-kicker{margin-bottom:4px;font-size:.62rem}.dashboard-panel .card-header h2{font-weight:780;letter-spacing:-.03em}.dashboard-empty{padding:34px 20px;text-align:center}.empty-icon{width:48px;height:48px;border-radius:15px;background:#edf6f0;color:var(--bcoach-green);font-size:1.35rem;display:grid;place-items:center;margin:0 auto 12px}.agenda-row{display:flex;align-items:center;gap:14px;padding:14px 21px;color:var(--bc-ink);border-bottom:1px solid #edf1ee;transition:background .15s ease}.agenda-row:last-child,.fixture-row:last-child{border-bottom:0}.agenda-row:hover,.fixture-row:hover{background:#f8fbf9;color:var(--bc-ink)}.agenda-date{flex:0 0 48px;height:52px;border-radius:11px;background:#edf6f0;color:var(--bcoach-green-dark);display:flex;flex-direction:column;align-items:center;justify-content:center}.agenda-date span{font-size:1.15rem;line-height:1;font-weight:800}.agenda-date small{font-size:.62rem;font-weight:800;letter-spacing:.05em;margin-top:4px}.agenda-info{min-width:0;flex:1}.agenda-info .fw-bold{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-chevron{color:#9ba79f}.fixture-row{display:block;padding:14px 19px;color:var(--bc-ink);border-bottom:1px solid #edf1ee;transition:background .15s ease}.fixture-date{display:flex;align-items:center;gap:7px;font-size:.73rem;color:var(--bc-muted);margin-bottom:10px}.fixture-date>i{color:var(--bcoach-green)}.fixture-date small{margin-left:auto;font-weight:700;color:var(--bc-ink)}.fixture-versus{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:center;gap:8px}.fixture-team{display:flex;align-items:center;gap:8px;min-width:0;font-size:.8rem;font-weight:700}.fixture-team>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixture-team:last-child{flex-direction:row-reverse;text-align:right}.fixture-crest{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:grid;place-items:center;background:#edf4ef;color:var(--bcoach-green);overflow:hidden}.fixture-crest img{width:100%;height:100%;object-fit:cover}.fixture-crest.rival{background:#f5f1e9;color:#967039}.fixture-vs{text-align:center;font-size:.66rem;font-weight:850;color:#9ba79f;letter-spacing:.05em}.quick-actions{margin-top:3px}.quick-action{height:100%;min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:1px solid var(--bc-border);border-radius:13px;color:var(--bc-ink);font-weight:700;font-size:.8rem;text-align:center;text-decoration:none;transition:all .18s ease}.quick-action:hover{color:var(--bcoach-green);background:#f5faf6;border-color:#c9ddcf;transform:translateY(-2px)}.quick-action-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#edf6f0;color:var(--bcoach-green);font-size:1.1rem}.record-total{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}.record-total strong{font-size:2.2rem;letter-spacing:-.06em;line-height:1}.record-total span{font-size:.82rem;color:var(--bc-muted)}.record-line{display:flex;justify-content:space-between;align-items:center;font-size:.83rem;margin-bottom:7px}.record-line>span{display:flex;align-items:center;gap:8px}.record-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.record-dot.win{background:#198754}.record-dot.draw{background:#e5a321}.record-dot.loss{background:#c94b4b}.record-win{background:#198754}.record-draw{background:#e5a321}.record-loss{background:#c94b4b}
.page-heading h1{font-size:clamp(1.55rem,2.6vw,2.15rem)}.team-card,.player-card{position:relative;overflow:hidden;border-radius:17px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.team-card:hover,.player-card:hover{transform:translateY(-3px);box-shadow:var(--bc-shadow-hover);border-color:#c9ddcf}.team-card-top,.player-card-top{height:5px;background:linear-gradient(90deg,#103d2b,#16794b 70%,#f4a62a)}.team-meta-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;background:#f3f7f4;color:#64746a;font-size:.72rem;font-weight:650}.team-meta-pill i{color:var(--bcoach-green)}.team-roster-count{display:flex;align-items:center;gap:8px;padding:12px 13px;border-radius:11px;background:#f5f9f6;color:#64746a;font-size:.78rem}.team-roster-count i{font-size:1rem;color:var(--bcoach-green)}.team-roster-count strong{font-size:1.15rem;color:var(--bc-ink)}.team-card-actions .btn{flex:1 1 auto}.player-card-top{background:linear-gradient(90deg,#16794b,#8fb89b)}.player-card .p-3{position:relative}.player-jersey{position:absolute;top:13px;right:13px;min-width:34px;height:34px;padding:0 7px;display:grid;place-items:center;border-radius:10px;background:#edf6f0;color:var(--bcoach-green-dark);font-weight:850;font-size:.85rem}.player-name{padding:0 32px;min-height:24px}.player-card img.rounded-circle,.player-card .rounded-circle.bg-secondary{border:3px solid #edf4ef;box-shadow:0 5px 15px rgba(16,61,43,.08)}.player-physical{display:flex;justify-content:center;gap:14px}.player-physical span{display:inline-flex;align-items:center;gap:4px}.player-card-actions .btn{flex:0 0 auto}.player-card-actions form{margin:0}
@media(max-width:767.98px){.dashboard-hero{align-items:flex-start;flex-direction:column;min-height:0;gap:18px;padding:24px}.dashboard-hero-actions{width:100%}.dashboard-hero-actions .btn{flex:1}.dashboard-hero-mark{right:8px;bottom:-20px;font-size:7rem}.metric-card{padding:14px;min-height:145px}.metric-value{font-size:1.75rem}.dashboard-panel>.card-header{padding:15px}.agenda-row{padding:12px 15px}.fixture-row{padding:12px 15px}.page-heading{align-items:flex-start!important;flex-direction:column}.page-heading>.btn{align-self:flex-start}.team-card-actions .btn{font-size:.76rem}.player-card-actions .btn{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.metric-card,.team-card,.player-card,.agenda-row,.fixture-row,.quick-action{transition:none}}



/* BCOACH V3 · Biblioteca de ejercicios y editor táctico */
.exercise-library-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:218px;padding:clamp(24px,4vw,40px);border-radius:22px;color:#fff;background:linear-gradient(112deg,#0a281c 0%,#10472f 58%,#16794b 100%);box-shadow:0 16px 38px rgba(12,56,36,.15)}
.exercise-library-copy{position:relative;z-index:1;max-width:700px}.exercise-library-hero h1{color:#fff;font-size:clamp(1.8rem,3.4vw,2.55rem);font-weight:820;letter-spacing:-.055em;margin-bottom:9px}.exercise-library-hero p{max-width:620px;color:rgba(255,255,255,.72);margin-bottom:17px}.exercise-eyebrow{display:flex;align-items:center;gap:8px;color:#b9e3c7;font-size:.67rem;font-weight:850;letter-spacing:.13em;margin-bottom:12px}.exercise-eyebrow>span{width:7px;height:7px;border-radius:50%;background:#f4a62a;box-shadow:0 0 0 4px rgba(244,166,42,.15)}.exercise-eyebrow-dark{color:#718078;margin-bottom:5px}.exercise-library-stats{display:flex;align-items:center;gap:20px;flex-wrap:wrap;color:rgba(255,255,255,.77);font-size:.8rem}.exercise-library-stats span{display:flex;align-items:center;gap:7px}.exercise-library-stats i{color:#f4c36e}.exercise-library-stats strong{color:#fff}.exercise-new-btn{position:relative;z-index:2;flex-shrink:0;background:#f4a62a;border-color:#f4a62a;color:#173321;padding:12px 17px;box-shadow:0 6px 18px rgba(0,0,0,.12)}.exercise-new-btn:hover{background:#ffc35d;border-color:#ffc35d;color:#173321}.exercise-hero-watermark{position:absolute;z-index:-1;right:9%;bottom:-42px;font-size:clamp(8rem,18vw,14rem);color:rgba(255,255,255,.055);transform:rotate(-13deg);pointer-events:none}
.exercise-filter-panel{padding:19px 20px 20px;border:1px solid var(--bc-border);border-radius:16px;background:#fff;box-shadow:var(--bc-shadow)}.exercise-filter-title{display:flex;align-items:center;gap:9px;font-weight:760;margin-bottom:14px}.exercise-filter-title i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf6f0;color:var(--bcoach-green)}.exercise-filter-panel .input-group-text{border-radius:10px 0 0 10px}.exercise-filter-panel .input-group .form-control{border-radius:0 10px 10px 0}.exercise-section-title{font-size:1.16rem;font-weight:800;letter-spacing:-.035em}.exercise-result-count{padding:7px 10px;border-radius:9px;background:#eaf4ed;color:#236341;font-size:.75rem;font-weight:750;white-space:nowrap}
.exercise-card{border-radius:16px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.exercise-card:hover{transform:translateY(-3px);box-shadow:var(--bc-shadow-hover);border-color:#c8ddce}.exercise-preview{position:relative;display:block;overflow:hidden;height:172px;background:#174f32;text-decoration:none}.exercise-preview>img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.exercise-card:hover .exercise-preview>img{transform:scale(1.035)}.exercise-preview-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;height:100%;color:rgba(255,255,255,.9);background:repeating-linear-gradient(90deg,transparent 0,transparent 39px,rgba(255,255,255,.055) 40px),linear-gradient(135deg,#174f32,#247b4b)}.exercise-preview-empty:before{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.38);border-radius:5px;pointer-events:none}.exercise-preview-empty:after{content:"";position:absolute;left:50%;top:12px;bottom:12px;border-left:1px solid rgba(255,255,255,.38)}.exercise-preview-empty i{font-size:2.5rem;filter:drop-shadow(0 3px 8px rgba(0,0,0,.18))}.exercise-preview-empty span{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800}.exercise-preview-open{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.94);color:#174f32;opacity:0;transform:translateY(3px);transition:all .2s ease}.exercise-card:hover .exercise-preview-open{opacity:1;transform:translateY(0)}.exercise-card .card-body{padding:16px}.exercise-category{display:inline-flex;align-items:center;gap:6px;max-width:calc(100% - 30px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 8px;border-radius:7px;background:color-mix(in srgb,var(--category-color) 12%,white);color:var(--category-color);font-size:.67rem;font-weight:800}.exercise-category:before{content:"";width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--category-color)}.exercise-category-neutral{--category-color:#68766d!important}.exercise-public{color:#248154;font-size:.9rem}.exercise-card-title{font-size:1.02rem;font-weight:800;letter-spacing:-.025em;line-height:1.35;margin:3px 0 7px;overflow-wrap:anywhere}.exercise-card-objective{font-size:.78rem;line-height:1.5;color:#718078;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.35em;margin-bottom:15px}.exercise-card-meta{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding-top:11px;border-top:1px solid #edf1ee;color:#6d7b72;font-size:.73rem}.exercise-card-meta span{display:flex;align-items:center;gap:5px}.exercise-card-meta i{color:var(--bcoach-green)}.exercise-card-footer{display:flex;gap:8px;padding:12px 15px;background:#fbfcfb}.exercise-clone-btn{width:36px;flex:0 0 36px}.exercise-empty-state{text-align:center;padding:clamp(30px,5vw,58px) 20px;border:1px dashed #cbd9cf;border-radius:18px;background:rgba(255,255,255,.65)}.exercise-empty-icon{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 15px;border-radius:18px;background:#eaf4ed;color:var(--bcoach-green);font-size:1.5rem}.exercise-empty-state h3{font-weight:800;font-size:1.2rem}.exercise-empty-state p{color:var(--bc-muted);margin-bottom:18px}
.exercise-editor-heading{display:flex;align-items:center;gap:15px}.exercise-editor-icon{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:16px;background:#e8f4eb;color:var(--bcoach-green);font-size:1.45rem}.exercise-editor-heading h1{font-weight:820;letter-spacing:-.045em;font-size:clamp(1.55rem,2.8vw,2.15rem)}.exercise-editor-heading p{font-size:.88rem}.exercise-details-card,.exercise-board-card{height:100%;border-radius:17px}.exercise-card-heading{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--bc-border)}.exercise-card-heading-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:11px;background:#eaf4ed;color:var(--bcoach-green);font-size:1.08rem}.exercise-card-heading h2,.exercise-animation-heading h2{font-size:1rem;font-weight:820;letter-spacing:-.025em;margin:0 0 3px}.exercise-card-heading p,.exercise-animation-heading p{font-size:.75rem;color:var(--bc-muted);margin:0}.exercise-details-card .card-body,.exercise-board-card .card-body{padding:18px}.exercise-details-card fieldset{min-width:0}.exercise-details-card textarea{resize:vertical}.exercise-board-card .board-instructions{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;margin-bottom:14px;border-radius:11px;background:#f0f7f2;color:#51675a;font-size:.76rem;line-height:1.5}.board-instructions i{color:var(--bcoach-green);font-size:1rem}.board-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px;margin-bottom:12px;background:#f7faf8;border:1px solid #e4ece6;border-radius:12px}.board-toolbar .tool-btn{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.board-toolbar .tool-btn.active{outline:2px solid rgba(22,121,75,.25);outline-offset:1px;border-color:#16794b!important;box-shadow:0 0 0 2px rgba(22,121,75,.09)}.board-toolbar .tool-divider{height:25px;width:1px;background:#dce5df;margin:0 4px}.board-wrapper{border:1px solid rgba(16,61,43,.15);background:#1e683e}.board-wrapper canvas{display:block;width:100%;height:auto;touch-action:none}.exercise-board-card #pitchTypeSelect{max-width:100%;font-size:.78rem}.exercise-animation-heading{display:flex;align-items:center;gap:12px;margin:23px 0 14px;padding-top:19px;border-top:1px solid var(--bc-border)}.exercise-board-card .form-text{font-size:.74rem;line-height:1.5}.exercise-board-card #exportStatus{flex:1 1 100%}
@media(max-width:767.98px){.exercise-library-hero{align-items:flex-start;flex-direction:column;min-height:0;gap:18px;padding:24px}.exercise-new-btn{width:100%}.exercise-hero-watermark{right:0;bottom:-18px;font-size:8rem}.exercise-library-stats{gap:12px}.exercise-filter-panel{padding:15px}.exercise-preview{height:155px}.exercise-preview-open{opacity:1;transform:none}.exercise-editor-heading{align-items:flex-start}.exercise-editor-icon{width:44px;height:44px;flex-basis:44px;border-radius:13px}.exercise-card-heading{padding:15px}.exercise-details-card .card-body,.exercise-board-card .card-body{padding:14px}.board-toolbar{gap:5px;padding:8px}.board-toolbar .tool-btn{min-width:33px;min-height:33px;padding:.35rem .55rem}.board-toolbar .tool-divider{margin:0 2px}}


/* ---- V4: resumen de equipo y plantillas ---- */
.overview-metrics .overview-metric {
  display: flex; flex-direction: row; align-items: center; gap: .9rem;
  padding: 1.1rem 1.15rem; border: 1px solid rgba(23, 73, 44, .07);
  border-radius: 1rem; background: linear-gradient(145deg, #fff, #fbfdfb);
  box-shadow: 0 5px 18px rgba(20, 55, 35, .045); transition: transform .18s ease, box-shadow .18s ease;
}
.overview-metrics .overview-metric:hover { transform: translateY(-2px); box-shadow: 0 9px 24px rgba(20, 55, 35, .09); }
.overview-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 13px; color: var(--bcoach-green); background: #eaf5ed; font-size: 1.15rem; }
.overview-label { color: #68766d; font-size: .78rem; font-weight: 600; line-height: 1.3; }
.overview-value { color: #183c27; font-size: 1.55rem; font-weight: 800; letter-spacing: -.04em; line-height: 1.35; }
.overview-note { color: #78847c; font-size: .68rem; margin-top: .15rem; }
.team-grid > [class*="col-"] > .team-card, .player-grid > [class*="col-"] > .player-card { overflow: hidden; border: 1px solid rgba(24, 60, 39, .06); box-shadow: 0 5px 18px rgba(20, 55, 35, .045); transition: transform .18s ease, box-shadow .18s ease; }
.team-grid > [class*="col-"] > .team-card:hover, .player-grid > [class*="col-"] > .player-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(20, 55, 35, .10); }
.team-card-top, .player-card-top { min-height: 5px; }
.team-card-actions .btn, .player-card-actions .btn { border-radius: .55rem; }
.roster-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1rem; border: 1px solid #e8eee9; border-radius: .85rem; background: rgba(255,255,255,.78); }
.empty-state { border: 1px dashed #cbd9cf; border-radius: 1rem; background: linear-gradient(150deg, #fff, #f8fbf8); }
.empty-state-icon { width: 58px; height: 58px; margin: 0 auto; display: grid; place-items: center; border-radius: 18px; color: var(--bcoach-green); background: #eaf5ed; font-size: 1.65rem; }
@media (max-width: 575.98px) {
  .overview-metrics .overview-metric { gap: .65rem; padding: .85rem; align-items: flex-start; }
  .overview-icon { width: 36px; height: 36px; flex-basis: 36px; border-radius: 10px; font-size: 1rem; }
  .overview-value { font-size: 1.3rem; }
  .overview-label { font-size: .72rem; }
  .roster-toolbar { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .team-card-actions .btn { flex: 1 1 auto; }
}

/* Bcoach-inspired workspace redesign — visual layer only */
:root { --coach-ink:#172b35; --coach-muted:#73818b; --coach-line:#e6eceb; --coach-surface:#ffffff; --coach-primary:#16784a; --coach-sidebar:#102c29; }
body { background:#f3f6f6; color:var(--coach-ink); font-family:Inter,'Segoe UI',Arial,sans-serif; }
.coach-shell { min-height:100vh; }
.coach-sidebar { position:fixed; inset:0 auto 0 0; width:258px; z-index:1050; background:var(--coach-sidebar); color:#fff; display:flex; flex-direction:column; box-shadow:3px 0 18px rgba(13,38,35,.09); }
.coach-logo { min-height:91px; display:flex; gap:12px; align-items:center; padding:21px 21px; color:#fff; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.09); }
.coach-logo:hover { color:#fff; } .coach-logo-symbol { width:42px;height:42px;display:grid;place-items:center;background:#27a76b;border-radius:12px;font-size:25px; }
.coach-logo-copy { display:flex;flex-direction:column;min-width:0; } .coach-logo-copy strong { font-size:17px;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; } .coach-logo-copy small { color:#9eb9b0;letter-spacing:1.35px;font-size:9px;font-weight:700; }
.coach-nav-heading { color:#7da39a;font-size:10px;letter-spacing:1.45px;font-weight:800;margin:30px 23px 13px; } .coach-nav-heading-secondary { margin-top:29px; }
.coach-menu { overflow-y:auto; flex:1;padding:0 11px 20px; } .coach-menu-link { display:flex;align-items:center;gap:13px;color:#bbd0ca;text-decoration:none;padding:13px 13px;border-radius:9px;margin:3px 0;font-size:13px;font-weight:600;transition:background .15s,color .15s; }
.coach-menu-link > i:first-child { font-size:18px;width:23px;text-align:center; } .coach-menu-link:hover { color:#fff;background:rgba(255,255,255,.09); } .coach-menu-link.active { background:#25845a;color:#fff;box-shadow:0 4px 13px rgba(0,0,0,.12); } .coach-menu-arrow { margin-left:auto;font-size:11px; }
.coach-sidebar-bottom { padding:15px 14px 17px;border-top:1px solid rgba(255,255,255,.09); } .coach-profile { display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;padding:9px 4px; } .coach-profile:hover { color:#fff; } .coach-avatar { display:grid;place-items:center;background:#2e6956;border-radius:11px;width:38px;height:38px; } .coach-profile-name { flex:1;min-width:0;display:flex;flex-direction:column; } .coach-profile-name strong { font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; } .coach-profile-name small { font-size:11px;color:#a3c1b7; } .coach-logout { color:#9fbbb1;display:block;text-decoration:none;font-size:12px;padding:10px 8px; } .coach-logout:hover { color:#fff; }
.coach-workspace { margin-left:258px;min-height:100vh; } .coach-topbar { height:72px;background:#fff;border-bottom:1px solid var(--coach-line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:15px; } .coach-topbar-left,.coach-topbar-right { display:flex;align-items:center;gap:20px; } .coach-breadcrumb { display:flex;align-items:center;gap:10px;font-size:13px; } .coach-breadcrumb span { color:#84938e; } .coach-breadcrumb i { color:#b7c5c0;font-size:10px; } .coach-breadcrumb strong { font-weight:700; } .coach-season { color:#43866b;font-size:12px;font-weight:700; } .coach-season i { font-size:7px;margin-right:6px; } .coach-topbar-icon,.coach-topbar-avatar { display:grid;place-items:center;width:35px;height:35px;color:#4b615c;text-decoration:none;border:1px solid var(--coach-line);border-radius:10px; } .coach-topbar-avatar { background:#e6f4ed;color:#16784a; } .coach-menu-toggle { display:none;border:0;background:none;color:#1d3d33;font-size:23px; } .coach-content { max-width:1600px;margin:auto;padding-top:26px!important; }
.coach-content .card { border:1px solid #e6eeea;border-radius:14px;box-shadow:0 3px 18px rgba(22,48,40,.035);overflow:hidden; } .coach-content .card-header { background:#fff;border-bottom:1px solid #edf1ee;padding:18px 21px; } .coach-content .btn { border-radius:9px;font-weight:600; } .coach-content .table { --bs-table-bg:transparent; } .coach-content .table thead th { color:#60736b;font-size:12px;font-weight:700; } .coach-content .form-control,.coach-content .form-select { border-color:#dce7e1;border-radius:9px; } .coach-content .form-control:focus,.coach-content .form-select:focus { border-color:#32a470;box-shadow:0 0 0 .2rem rgba(50,164,112,.12); }
.coach-content .dashboard-hero { border-radius:17px; } .coach-content .metric-card { border-radius:14px; } .coach-content .dashboard-panel { border-radius:14px; }
.coach-sidebar-backdrop { display:none; }
@media(max-width:991.98px){ .coach-sidebar { transform:translateX(-100%);transition:transform .2s ease; } body.coach-nav-open .coach-sidebar { transform:translateX(0); } body.coach-nav-open .coach-sidebar-backdrop { display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1040; } .coach-workspace { margin-left:0; } .coach-menu-toggle { display:block; } .coach-topbar { padding:0 18px;height:64px; } .coach-season { display:none; } .coach-content { padding-left:15px!important;padding-right:15px!important; } }
@media(max-width:480px){ .coach-breadcrumb span,.coach-breadcrumb i { display:none; } .coach-topbar-left,.coach-topbar-right { gap:11px; } }

/* Training workspace, phase 2: sessions and planning */
.coach-page-hero{background:linear-gradient(112deg,#103b32,#166444 70%,#218456);color:white;border-radius:19px;padding:30px 33px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;overflow:hidden;box-shadow:0 12px 30px rgba(13,73,48,.12)}
.coach-page-hero:after{content:"";position:absolute;width:250px;height:250px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-75px;top:-125px;pointer-events:none}.coach-page-hero> *{position:relative;z-index:1}.coach-page-hero h1{font-size:clamp(1.45rem,2.7vw,2.1rem);font-weight:800;letter-spacing:-.7px;margin:8px 0}.coach-page-hero h1 i{margin-right:9px;color:#a2e9b7}.coach-page-hero p{margin:0;color:#cce5d9;font-size:.93rem}.coach-kicker{font-size:.69rem;font-weight:800;letter-spacing:1.9px;color:#a2e9b7}.coach-hero-counter{display:inline-flex;gap:8px;margin-top:19px;padding:7px 12px;border-radius:8px;background:rgba(255,255,255,.12);font-size:.8rem;font-weight:600}.coach-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.coach-hero-back{display:inline-block;color:#d7f0e2;font-size:.8rem;text-decoration:none;margin-bottom:12px}.coach-hero-back:hover{color:white}.coach-list-panel{background:white;border:1px solid #e3ece6;border-radius:15px;overflow:hidden;box-shadow:0 5px 20px rgba(20,55,35,.04)}.coach-list-heading{font-weight:800;padding:20px 22px;border-bottom:1px solid #e9efeb;color:#1d3b30}.coach-list-heading i{color:#238654;margin-right:8px}.coach-list-panel .table{margin-bottom:0}.coach-list-panel .table th{background:#f6faf7;padding:15px 20px}.coach-list-panel .table td{padding:16px 20px;vertical-align:middle;border-color:#edf1ee}.coach-list-panel .table tbody tr:hover{background:#f7fbf8}.coach-session-editor .coach-editor-panel{height:100%;border-radius:16px}.coach-editor-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #e9efeb}.coach-editor-heading strong,.coach-editor-heading small{display:block}.coach-editor-heading strong{font-size:1.05rem;color:#1a352a}.coach-editor-heading small{color:#81918a;font-size:.78rem}.coach-editor-step{display:grid;place-items:center;width:42px;height:42px;flex:none;background:#e7f5eb;color:#18804e;border-radius:12px;font-weight:800}.coach-session-editor .form-label{font-size:.8rem;font-weight:700;color:#40584b}.coach-exercise-choice{padding:14px 15px 14px 37px!important;border:1px solid #e8efea;border-radius:10px;margin-bottom:8px;transition:background .15s,border-color .15s}.coach-exercise-choice:hover{background:#f5faf6;border-color:#b5d9c1}.coach-exercise-choice:has(input:checked){background:#eaf7ed;border-color:#7dc99c}.coach-exercise-choice .form-check-input{margin-left:-24px}.coach-task-row{transition:transform .15s,border-color .15s}.coach-task-row:hover{transform:translateY(-2px);border-color:#99cbb0!important;background:#f9fcfa}
@media(max-width:767px){.coach-page-hero{padding:24px 20px;align-items:flex-start;flex-direction:column}.coach-hero-actions{width:100%}.coach-list-panel .table td,.coach-list-panel .table th{padding:12px}.coach-session-editor .card{padding:18px!important}}

/* Fase 3 · Espacio de trabajo táctico */
.coach-board-utilitybar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.coach-board-tip{font-size:.78rem;color:#667b70}
.coach-board-workspace-tools,.board-workspace-tools{margin-bottom:10px}
#coachBoardToolbar{display:flex;gap:10px;align-items:stretch;background:#f5f8f6;padding:12px;flex-wrap:wrap}
.coach-tool-group{padding:7px 9px;border:1px solid #e1e9e3;background:#fff;border-radius:11px;flex:0 1 auto}
.coach-tool-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:#617769;font-weight:800;margin-bottom:7px}
.coach-tool-buttons{display:flex;gap:5px;flex-wrap:wrap}
.coach-tool-buttons .btn{min-width:34px;min-height:34px}
.coach-board-help{background:#edf6f0;border:1px solid #d2e8d9;border-radius:12px;padding:13px 16px;color:#365744;font-size:.82rem;line-height:1.7}
.coach-board-help[hidden]{display:none}
.coach-board-help kbd{background:#214d37;color:#fff;padding:2px 5px;border-radius:4px}
.coach-board-expanded{position:fixed!important;inset:12px;z-index:1050;overflow:auto;background:#fff;box-shadow:0 0 0 100vmax rgba(9,28,18,.72),0 20px 60px rgba(0,0,0,.25);height:auto!important;max-width:none!important}
.coach-board-expanded .card-body{max-width:1250px;width:100%;margin:0 auto}
.coach-board-expanded .board-wrapper{max-width:1100px;margin:0 auto}
.coach-board-expanded .exercise-card-heading{position:sticky;top:0;background:#fff;z-index:2}
@media(max-width:700px){#coachBoardToolbar{padding:8px;gap:7px}.coach-tool-group{width:100%}.coach-board-expanded{inset:0;border-radius:0}.coach-board-utilitybar{align-items:flex-start}}

/* Fase 4: apariencia configurable del campo táctico */
.coach-field-settings{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#f5faf7;border:1px solid #dcebe2;border-radius:12px;padding:12px 15px}
.coach-field-settings-title{font-size:.82rem;font-weight:800;color:#19583b;margin-right:auto}
.coach-field-settings-title i{margin-right:6px}.coach-grid-toggle{font-size:.8rem;color:#486456;display:flex;align-items:center;gap:4px}
#coachBoardWrapper{border-radius:14px;overflow:hidden;border:5px solid #183f30;box-shadow:0 14px 30px rgba(12,45,28,.14)}
#tacticalCanvas{display:block;width:100%;touch-action:none}
@media(max-width:650px){.coach-field-settings-title{width:100%}.coach-field-settings{align-items:flex-start}}

/* Bcoach fase 5: alineaciones y representación de jugadores */
.coach-formation-panel{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;border:1px solid #dce7e1;border-radius:12px;background:#f5faf7}
.coach-formation-panel .form-select{width:auto;min-width:120px}
.coach-formation-panel small{flex-basis:100%}
@media(max-width:600px){.coach-formation-panel .form-select{flex:1;min-width:110px}.coach-formation-panel .btn{flex:1}}

/* Fase 6: fichas y filtros de plantilla */
.coach-roster-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px;background:#fff;border:1px solid #e2ece5;border-radius:14px}
.coach-roster-search{flex:1 1 260px;position:relative}.coach-roster-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#6d8a79}.coach-roster-search .form-control{padding-left:40px}
.coach-roster-filters .form-select{width:auto;min-width:160px;flex:0 1 200px}.coach-roster-count{font-size:.78rem;color:#557264;font-weight:700;white-space:nowrap}
.coach-roster-card{transition:transform .18s ease,box-shadow .18s ease}.coach-roster-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(21,65,44,.12)!important}
.coach-player-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:4px 0 16px;background:#f3f8f5;border-radius:11px;padding:10px 4px}.coach-player-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px}.coach-player-stats strong{color:#176944;font-size:1.05rem}.coach-player-stats span{color:#6b8073;font-size:.68rem}
.coach-roster-empty{display:flex;align-items:center;flex-direction:column;gap:7px;padding:30px;color:#71877a}.coach-roster-empty i{font-size:1.7rem;color:#25895a}.coach-roster-empty strong{color:#244b36}
@media(max-width:600px){.coach-roster-filters .form-select{flex:1 1 140px;min-width:0}.coach-roster-count{width:100%}}

/* Bcoach Fase 7: partidos, búsqueda y resumen */
.bc-match-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bc-match-stat{display:flex;align-items:center;gap:16px;padding:21px;border:1px solid #e4eae7;border-radius:16px;background:#fff;box-shadow:0 5px 20px rgba(13,44,30,.04)}
.bc-match-stat-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;background:#e9f6ee;color:#167a48;border-radius:13px;font-size:21px}
.bc-match-stat strong{display:block;font-size:29px;line-height:1.15;color:#143d2a}.bc-match-stat span:last-child{font-size:13px;color:#66756d}
.bc-match-filters{display:flex;gap:12px;align-items:center}.bc-match-search{position:relative;flex:1}.bc-match-search>i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#71837a}.bc-match-search input{padding-left:42px}.bc-match-filters select{max-width:210px}.bc-match-filters .form-control,.bc-match-filters .form-select{border-radius:11px;min-height:43px}
.bc-matches-table{overflow:hidden;border-radius:14px!important}.bc-matches-table thead th{background:#edf5f0;color:#29513b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:17px 12px}.bc-matches-table tbody td{padding:16px 12px;border-color:#edf1ee}.bc-matches-table tbody tr:hover{background:#f7fbf8}.bc-matches-table tbody tr[hidden]{display:none!important}
.bc-match-section-heading{display:flex;justify-content:space-between;align-items:center;padding:23px 26px;border-radius:17px;background:linear-gradient(120deg,#143e2b,#23784b);color:#fff}.bc-match-section-heading h3{font-size:22px;font-weight:750;margin:3px 0 5px}.bc-match-section-heading p{margin:0;opacity:.83;font-size:14px}.bc-match-section-heading>i{font-size:40px;opacity:.4}.bc-match-eyebrow{font-size:10px;letter-spacing:.14em;font-weight:800;opacity:.8}
@media(max-width:768px){.bc-match-overview{grid-template-columns:1fr}.bc-match-filters{flex-direction:column;align-items:stretch}.bc-match-filters select{max-width:none}.bc-match-section-heading{padding:18px}.bc-match-section-heading>i{display:none}}

/* Fase 8 · selector de equipo en el centro de control */
.dashboard-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;background:#fff;border:1px solid var(--bc-border,#e1e8e3);border-radius:15px;box-shadow:0 2px 12px rgba(15,50,30,.035)}
.dashboard-filter-label{font-size:.73rem;font-weight:850;letter-spacing:.09em;color:var(--bcoach-green-dark)}
.dashboard-filter-caption{font-size:.82rem;color:#75817a;margin-top:4px}
.dashboard-team-filter{min-width:230px;max-width:340px;width:100%}
.dashboard-team-filter .form-label{font-size:.73rem;font-weight:750;color:#56655b}
.dashboard-team-filter .form-select{border-radius:10px;border-color:#d7e3d9;font-weight:650}
.dashboard-team-filter .form-select:focus{border-color:#21844d;box-shadow:0 0 0 .2rem rgba(33,132,77,.13)}
@media(max-width:650px){.dashboard-filter-bar{align-items:stretch;flex-direction:column;padding:15px}.dashboard-team-filter{max-width:none}}

/* Fase 10: planificador semanal de entrenamientos */
.coach-week-panel{background:#fff;border:1px solid #e2e9e5;border-radius:18px;box-shadow:0 8px 24px rgba(12,47,32,.06);padding:22px}
.coach-week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.coach-week-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.coach-week-controls .form-select{max-width:220px}
.coach-week-stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
.coach-week-stats span{background:#f1f7f3;color:#245c3b;padding:8px 12px;border-radius:9px;font-size:.85rem;font-weight:600}
.coach-week-stats i{margin-right:5px}
.coach-week-scroll{overflow-x:auto;padding-bottom:5px}
.coach-week-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));gap:9px;min-width:980px}
.coach-week-day{border:1px solid #e5ece8;border-radius:12px;background:#fafcfb;min-height:235px;overflow:hidden}
.coach-week-day.is-today{border-color:#268a57;background:#f2faf5}
.coach-week-day-head{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid #e5ece8;color:#5b7065;font-size:.85rem}
.coach-week-day-head strong{font-size:1.1rem;color:#1e5035}
.coach-week-day-body{display:flex;flex-direction:column;gap:8px;padding:9px}
.coach-week-session{display:flex;flex-direction:column;gap:5px;background:#fff;border-left:4px solid #29965d;border-radius:8px;padding:10px;text-decoration:none;color:#213a2d;box-shadow:0 2px 8px rgba(0,0,0,.045);overflow-wrap:anywhere}
.coach-week-session:hover{color:#155e37;background:#f4fff7}
.coach-week-session strong{font-size:.85rem;line-height:1.3}
.coach-week-session small,.coach-week-time{font-size:.73rem;color:#6b8073}
.coach-week-duration{font-size:.75rem;font-weight:700;color:#237c4c}
.coach-week-empty{font-size:.77rem;color:#98a89d;text-align:center;padding:20px 0}
.coach-week-add{font-size:.76rem;text-decoration:none;color:#22754a;text-align:center;padding:6px;border:1px dashed #9ccbb0;border-radius:8px}
@media(max-width:767px){.coach-week-panel{padding:14px}.coach-week-controls{width:100%}.coach-week-controls form{flex:1}.coach-week-controls .form-select{max-width:180px}}

/* Fase 11 · Ficha de entrenamiento por bloques */
.coach-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.coach-plan-summary>div{padding:16px;border:1px solid #e2e8e4;border-radius:14px;background:#fff}
.coach-plan-label{display:block;color:#64748b;font-size:.78rem;margin-bottom:5px}
.coach-plan-summary strong{font-size:1.25rem;color:#173e2c}
.coach-training-block{background:#fff;border:1px solid #e0e8e2;border-radius:16px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.035)}
.coach-training-block-header{display:flex;align-items:center;gap:12px;padding:16px;background:#f5f9f6;border-bottom:1px solid #e0e8e2}
.coach-training-block-icon{display:grid;place-items:center;background:#dceee1;color:#1d6539;width:42px;height:42px;border-radius:12px;font-size:1.2rem}
.coach-training-task{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid #eef1ee;transition:background .15s}
.coach-training-task:last-child{border-bottom:0}
.coach-training-task:hover{background:#f4faf5}
.coach-training-task img,.coach-training-placeholder{width:80px;height:58px;object-fit:contain;background:#e8f0ea;border-radius:10px;flex-shrink:0}
.coach-training-placeholder{display:grid;place-items:center;color:#4d7d60;font-size:1.5rem}
.min-width-0{min-width:0}
@media(max-width:576px){.coach-plan-summary{gap:6px}.coach-plan-summary>div{padding:10px}.coach-plan-summary strong{font-size:1rem}.coach-training-task img,.coach-training-placeholder{width:58px;height:48px}}

.coach-plan-dropzone{background:#f5f8f6;border:2px dashed #b9d1c1;border-radius:12px;padding:14px}.coach-plan-dropzone.drag-over{border-color:#238455;background:#e5f5eb}.coach-plan-items{min-height:48px}.coach-plan-item{display:flex;align-items:center;gap:10px;padding:10px;margin:7px 0;background:#fff;border:1px solid #dce7df;border-radius:9px;cursor:grab}.coach-plan-item.dragging{opacity:.45}.coach-plan-item .plan-name{flex:1;font-weight:600}.coach-plan-item input{width:78px}.coach-plan-item .plan-handle{color:#758b7b}.coach-plan-item button{border:0;background:transparent;color:#a23b3b}.coach-plan-item select{max-width:130px}@media(max-width:600px){.coach-plan-item{flex-wrap:wrap}.coach-plan-item .plan-name{flex-basis:65%}}

/* Fase 16: biblioteca de plantillas tácticas */
.coach-template-panel{background:#f2f8f4;border:1px solid #cfe4d5;border-radius:12px;padding:14px}
.coach-template-panel .form-select{flex:1 1 205px}
