/* 593 Torneos — PARCHE 024: legibilidad global y comodidad en laptop
   Objetivo: ningún control o dato operativo importante debe depender de zoom del navegador. */

:root{
  --ui-body-size:15px;
  --ui-control-size:14px;
  --ui-label-size:12px;
  --ui-small-size:12px;
  --ui-chip-size:11px;
}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--ui-body-size);line-height:1.5}
button,input,select,textarea{font-size:var(--ui-control-size);line-height:1.35}
small{font-size:var(--ui-small-size)}

/* Botones y zonas clicables */
.button{font-size:14px!important;min-height:42px;padding:10px 15px!important;line-height:1.25!important}
.button.small,.button.compact{font-size:13px!important;min-height:40px!important;padding:9px 12px!important}
.card-edit-button,.team-edit-button,.player-edit-button{font-size:13px!important;min-height:40px!important;padding:9px 12px!important}
.icon-button,.drawer-close{min-width:42px;min-height:42px}

/* Formularios: etiquetas y contenido */
.field{gap:8px}
.field>span,.share-step label,.statistics-toolbar>label>span,.schedule-filter-grid label,.schedule-filter-grid label span,.live-bottom form label{
  font-size:var(--ui-label-size)!important;
  line-height:1.3!important;
}
.field input,.field select,.field textarea,.workspace-header select,.match-row input,
.payment-config-fields input,.payment-config-fields select,.payment-config-fields textarea,
.payment-team-grid input,.payment-team-grid select,.signature-card input,
.live-bottom form select,.live-bottom form textarea{
  min-height:44px;
  padding:11px 13px;
  font-size:14px!important;
}

/* Encabezados y texto auxiliar */
.workspace-brand p,.section-header p,.schedule-filter-head p,.auth-card-head p,.tournament-hero p{font-size:14px!important;line-height:1.55}
.eyebrow{font-size:12px!important;padding:7px 12px}
.local-notice,.match-access-note p,.form-error,.lineup-help,.generation-note,.share-hint{font-size:12px!important;line-height:1.5}

/* Barra inferior de navegación */
.tournament-tabs{width:min(940px,calc(100% - 24px))!important;gap:7px!important;padding:8px!important}
.tournament-tabs button{min-height:60px!important;padding:9px 8px!important;font-size:17px!important}
.tournament-tabs button>span{font-size:18px!important}
.tournament-tabs button small{font-size:12px!important;line-height:1.15!important;font-weight:900!important}

/* Tarjetas y métricas */
.metric-grid span{font-size:13px!important}
.roadmap-grid strong{font-size:14px!important}.roadmap-grid small{font-size:12px!important}
.team-card h3{font-size:15px!important}.team-card p{font-size:12px!important}.team-card small{font-size:12px!important}
.category-card h3{font-size:15px!important}.category-card p,.category-card small{font-size:12px!important}
.tournament-card-footer{font-size:13px!important}

/* Chips, estados y etiquetas: nunca menos de 11px en operación */
.role-badge,.status-badge,.match-status,.payment-lock-state,.signature-card header>span,
.player-category-chip,.share-pill,.match-classification span,.schedule-match-group>header b{
  font-size:var(--ui-chip-size)!important;
  line-height:1.2!important;
}
.match-classification{gap:7px!important}
.match-classification span{padding:6px 10px!important}

/* Generación y propuesta de partidos */
.schedule-mode-grid button strong{font-size:15px!important}
.schedule-mode-grid button small{font-size:13px!important;line-height:1.45!important}
.match-teams strong{font-size:13px!important}.match-teams span{font-size:12px!important}
.match-row time,.match-row small{font-size:12px!important}
.draft-head small,.saved-matches-head small{font-size:12px!important}

/* Visor/filtros de consulta */
.schedule-filter-head h3{font-size:18px!important}
.schedule-filter-grid{gap:12px!important}
.schedule-filter-grid select{min-height:44px!important;padding:10px 12px!important;font-size:13px!important}
.schedule-current-scope strong{font-size:12px!important}.schedule-current-scope span{font-size:12px!important}
.schedule-group-toolbar strong{font-size:12px!important}
.schedule-group-toolbar button{font-size:12px!important;min-height:38px!important;padding:8px 14px!important}
.schedule-match-group>header span{font-size:11px!important}
.schedule-match-group>header h4{font-size:19px!important}

/* Tarjetas de partidos clasificados */
.managed-match-card{padding:18px!important;gap:14px!important;min-height:340px}
.match-card-teams strong{font-size:14px!important;line-height:1.35!important;min-height:38px!important}
.mini-team-logo{width:64px;height:64px}
.match-card-meta{gap:6px!important;padding:12px!important}
.match-card-meta time{font-size:14px!important;line-height:1.35!important}
.match-card-meta small{font-size:12px!important;line-height:1.35!important}
.managed-match-card .match-actions{gap:8px!important}
.managed-match-card .match-actions .button{font-size:13px!important;min-height:42px!important;flex:1 1 105px!important}

/* Listas de jugadores / plantillas */
.lineup-summary span{font-size:12px!important}
.lineup-team h3{font-size:14px!important}.lineup-team header small{font-size:12px!important}
.lineup-player strong,.live-player-row strong{font-size:13px!important}
.lineup-player small,.live-player-row small{font-size:11px!important}
.lineup-toggle{font-size:12px!important;min-height:36px}
.player-live-stats span{font-size:10px!important;padding:4px 6px!important}
.live-empty{font-size:12px!important}

/* Vocalía: controles críticos */
.live-scoreboard>div>strong{font-size:15px!important}
.live-scoreboard button{font-size:13px!important;min-height:38px!important}
.live-center select{font-size:13px!important;min-height:38px!important}
.live-timer small{font-size:11px!important}.timer-actions button{font-size:12px!important;min-height:38px!important}
.live-controls>div small{font-size:11px!important}
.event-log time{font-size:11px!important}.event-log span{font-size:12px!important}
.live-bottom h3{font-size:15px!important}

/* Estadísticas y tablas */
.statistics-toolbar nav button{font-size:12px!important;min-height:40px!important}
.standings-table th{font-size:11px!important;padding:13px 10px!important}
.standings-table td{font-size:13px!important;padding:12px 10px!important}
.standing-team b{font-size:13px!important}.standing-team img,.standing-team>span{font-size:11px!important}
.rank-copy strong{font-size:14px!important}.rank-copy small{font-size:12px!important}

/* Auspiciantes, compartir y textos secundarios */
.sponsor-card small,.sponsor-manager small,.format-choice small,.destination-choice small,.share-capability small,
.context-preview-rows small,.context-brand-note small,.branding-confirmation small,.share-preview-list li small{
  font-size:11px!important;line-height:1.45!important;
}
.format-choice strong,.destination-choice strong,.share-capability strong,.context-preview-rows strong,.branding-confirmation strong{font-size:13px!important}

/* Modales */
.modal>header h2,.rc2-modal>header h2{line-height:1.2}
.modal-body{font-size:14px}

/* Laptops compactas: conservar lectura sin desbordar verticalmente */
@media (min-width:700px) and (max-width:1450px){
  :root{--ui-body-size:15px;--ui-control-size:14px;--ui-label-size:12px;--ui-small-size:12px;--ui-chip-size:11px}
  .tournament-content{padding:20px 22px 92px!important}
  .section-header h2{font-size:28px!important}
  .managed-match-card{min-height:320px}
}

/* Móvil: mantener legibilidad, permitir desplazamiento en la barra */
@media(max-width:699px){
  :root{--ui-body-size:14px;--ui-control-size:14px;--ui-label-size:11px;--ui-small-size:11px;--ui-chip-size:10px}
  .button{font-size:13px!important}
  .tournament-tabs button{min-height:54px!important;flex-basis:84px!important}
  .tournament-tabs button small{font-size:11px!important}
  .schedule-match-group>header h4{font-size:17px!important}
  .managed-match-card{min-height:300px;padding:14px!important}
  .match-card-teams strong{font-size:13px!important}
  .match-card-meta time{font-size:13px!important}.match-card-meta small{font-size:11px!important}
}

/* BASE-40 — ajuste puntual adicional de tipografía en tarjetas de partidos.
   ÚNICAMENTE se reduce la letra de clasificación, fecha/hora y sede/cancha.
   Botones, nombres de equipos, distribución, colores y demás elementos quedan intactos. */
.match-classification{
  gap:12px!important;
  margin:6px 0 10px!important;
  flex-wrap:wrap!important;
}
.match-classification span{
  font-size:16px!important;
  line-height:1.25!important;
  padding:10px 16px!important;
  border-radius:16px!important;
  font-weight:800!important;
}
.match-card-meta{
  gap:9px!important;
  padding:20px 18px!important;
  min-height:104px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
.match-card-meta time{
  font-size:20px!important;
  line-height:1.2!important;
  font-weight:900!important;
}
.match-card-meta small{
  font-size:18px!important;
  line-height:1.3!important;
  font-weight:600!important;
}

/* Dar aire suficiente a la tarjeta cuando crecen los datos centrales. */
.managed-match-card{
  min-height:430px!important;
  gap:18px!important;
}

@media (min-width:700px) and (max-width:1450px){
  .match-classification span{font-size:16px!important;padding:10px 15px!important}
  .match-card-meta time{font-size:20px!important}
  .match-card-meta small{font-size:18px!important}
  .managed-match-card{min-height:430px!important}
}

/* En móvil no se duplica hasta 28 px para evitar romper la ficha; la petición
   de tamaño reforzado está orientada al uso en laptop. */
@media(max-width:699px){
  .match-classification span{font-size:14px!important;padding:8px 11px!important}
  .match-card-meta{min-height:82px!important;padding:14px 12px!important}
  .match-card-meta time{font-size:16px!important}
  .match-card-meta small{font-size:14px!important}
  .managed-match-card{min-height:350px!important}
}

/* BASE-10 — plantilla rápida numerada dentro de la ficha del equipo.
   Orden visual: 1. NOMBRE | # CAMISETA | CATEGORÍA | EDITAR.
   La numeración es correlativa según el orden visible de la plantilla. */
.team-drawer .player-list.player-quick-list{
  display:flex!important;
  flex-direction:column!important;
  grid-template-columns:none!important;
  gap:7px!important;
  padding:0 20px 30px!important;
}
.team-drawer .player-quick-row{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) 62px minmax(70px,auto) 40px!important;
  align-items:center!important;
  gap:8px!important;
  min-height:48px!important;
  padding:7px 9px!important;
  text-align:left!important;
  border:1px solid var(--line)!important;
  border-radius:12px!important;
  background:#fff!important;
}
.player-quick-index{
  display:block!important;
  color:var(--navy)!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:900!important;
  text-align:right!important;
  font-variant-numeric:tabular-nums!important;
}
.player-quick-name{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:900!important;
  color:var(--navy)!important;
}
.player-quick-shirt{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:var(--navy)!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  text-align:center!important;
  font-variant-numeric:tabular-nums!important;
}
.player-quick-category{
  display:block!important;
  max-width:110px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  padding:6px 8px!important;
  border-radius:999px!important;
  background:#e7f6ec!important;
  color:#176b38!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:800!important;
  text-align:center!important;
}
.player-quick-edit{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid var(--line)!important;
  border-radius:10px!important;
  background:#f1f4f9!important;
  color:var(--navy)!important;
  font-size:16px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.player-quick-edit:hover{background:#e5ebf4!important}
.player-quick-row.inactive{opacity:.55!important}

@media(max-width:520px){
  .team-drawer .player-list.player-quick-list{padding-inline:10px!important}
  .team-drawer .player-quick-row{grid-template-columns:27px minmax(0,1fr) 52px 62px 32px!important;gap:5px!important;padding:7px 6px!important}
  .player-quick-index{font-size:13px!important}
  .player-quick-name{font-size:13px!important}
  .player-quick-shirt{font-size:11px!important}
  .player-quick-category{max-width:70px!important;font-size:10px!important;padding:6px 5px!important}
  .player-quick-edit{width:32px!important;height:32px!important;min-width:32px!important;font-size:14px!important}
}


/* BASE-12 — ficha de equipo sin desplazamiento horizontal.
   La ficha debe caber completamente en su panel tanto en laptop como en móvil. */
.team-drawer{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  max-width:100vw!important;
  box-sizing:border-box!important;
  overscroll-behavior-x:none;
}
.team-drawer *, .team-drawer *::before, .team-drawer *::after{box-sizing:border-box}
.team-drawer-head,.coach-row,.drawer-section-head,.team-drawer .player-list,
.team-drawer .drawer-edit-team,.team-drawer>.whatsapp-button{
  max-width:100%!important;
}
.team-drawer-head>div:last-child,.coach-row>div:last-child,.drawer-section-head>*{min-width:0}
.team-drawer .drawer-edit-team,.team-drawer>.whatsapp-button{
  width:calc(100% - 40px)!important;
  margin-left:20px!important;
  margin-right:20px!important;
}
.team-drawer .player-quick-row{width:100%!important;max-width:100%!important;min-width:0!important}
@media(max-width:520px){
  .team-drawer .drawer-edit-team,.team-drawer>.whatsapp-button{
    width:calc(100% - 20px)!important;
    margin-left:10px!important;
    margin-right:10px!important;
  }
  .team-drawer-head{padding-left:14px!important;padding-right:14px!important}
  .coach-row{margin-left:10px!important;margin-right:10px!important}
  .drawer-section-head{padding-left:14px!important;padding-right:14px!important}
}


/* BASE-40 — módulo Finanzas / Contabilidad */
.finance-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.finance-kpis article{display:flex;align-items:center;gap:12px;min-height:102px;padding:17px 18px;border:1px solid var(--line);border-radius:19px;background:#fff;box-shadow:var(--shadow-soft)}.finance-kpis article>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eef2f8;color:var(--navy);font-size:20px;font-weight:1000}.finance-kpis small,.finance-kpis strong{display:block}.finance-kpis small{font-size:9px;color:var(--muted);font-weight:900;letter-spacing:.04em}.finance-kpis strong{margin-top:4px;font-size:25px;color:var(--navy)}.finance-kpis .income>span{background:#e9fbef;color:#087e35}.finance-kpis .expense>span{background:#fff0f0;color:#a52828}.finance-kpis .balance>span{background:#edf3ff;color:#1b4da5}.finance-kpis .balance.negative strong{color:#a52828}.finance-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:13px;margin-bottom:14px;border:1px solid var(--line);border-radius:17px;background:#fff}.finance-toolbar label{display:grid;gap:5px;font-size:9px;font-weight:900;color:var(--muted)}.finance-toolbar select{min-height:42px}.finance-ledger{padding:17px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)}.finance-ledger>header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}.finance-ledger h3{margin:3px 0 0;color:var(--navy);font-size:18px}.finance-ledger>header>small{color:var(--muted);font-size:9px}.finance-list{display:grid;gap:8px}.finance-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:11px;align-items:center;padding:12px 13px;border:1px solid #edf0f7;border-radius:14px;background:#fafbfe}.finance-type-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:21px;font-weight:1000;background:#eef2f8}.finance-row.income .finance-type-icon,.finance-row.income>b{color:#087e35}.finance-row.income .finance-type-icon{background:#e9fbef}.finance-row.expense .finance-type-icon,.finance-row.expense>b{color:#a52828}.finance-row.expense .finance-type-icon{background:#fff0f0}.finance-row-main{min-width:0}.finance-row-main strong,.finance-row-main small{display:block}.finance-row-main strong{font-size:12px;color:var(--navy)}.finance-row-main small{margin-top:3px;font-size:9px;color:var(--muted);overflow-wrap:anywhere}.finance-row>b{font-size:15px;white-space:nowrap}.finance-row-actions{display:flex;gap:5px}.finance-row-actions button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 8px;color:var(--navy);font-size:8px;font-weight:900;cursor:pointer}.finance-row-actions button:last-child{color:#a52828}.finance-income{background:#e8faee!important;color:#087e35!important;border:1px solid #aee8c0!important}.finance-expense{background:#fff0f0!important;color:#a52828!important;border:1px solid #efc0c0!important}.finance-form-note,.finance-locked-scope{padding:12px 13px;border-radius:13px;background:#f7f9fd;border:1px solid #edf0f7;color:#59627f;font-size:9px;line-height:1.45}.finance-locked-scope small,.finance-locked-scope strong{display:block}.finance-locked-scope strong{margin-top:4px;color:var(--navy);font-size:12px}.finance-scope-target{display:grid;gap:6px}.finance-scope-target[hidden]{display:none!important}
@media(max-width:900px){.finance-kpis{grid-template-columns:1fr 1fr}.finance-row{grid-template-columns:40px minmax(0,1fr) auto}.finance-row-actions{grid-column:2/4;justify-content:flex-end}}
@media(max-width:600px){.finance-toolbar{grid-template-columns:1fr}.finance-kpis{grid-template-columns:1fr 1fr}.finance-kpis article{min-height:88px;padding:12px}.finance-kpis strong{font-size:19px}.finance-row{grid-template-columns:36px minmax(0,1fr)}.finance-row>b{grid-column:2;justify-self:start}.finance-row-actions{grid-column:2;justify-content:flex-start}.finance-ledger{padding:12px}.finance-ledger>header{align-items:flex-start;flex-direction:column}}
