.match-center-app{background:radial-gradient(circle at 100% 0,rgba(245,189,22,.07),transparent 28rem),var(--bg-1)}
.match-header{align-items:center}.sync-state{display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:9px;font-weight:600}.sync-state i{width:7px;height:7px;border-radius:50%;background:#25ce83;box-shadow:0 0 0 5px rgba(37,206,131,.1)}
.match-center-hero{margin:14px 16px;padding:26px;border:1px solid rgba(255,255,255,.08);border-radius:28px;background:radial-gradient(circle at 85% 10%,rgba(245,189,22,.18),transparent 17rem),linear-gradient(140deg,#073d2c,#031a13 72%);box-shadow:0 24px 60px rgba(0,18,11,.22);overflow:hidden}
.hero-kicker{color:#55d69b;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.match-center-hero h1{margin:8px 0 10px;color:#fff;font-size:clamp(28px,7vw,45px);line-height:1.02;letter-spacing:-.055em}.match-center-hero p{max-width:430px;color:rgba(255,255,255,.62);font-size:11px;line-height:1.55}
.hero-scoreboard{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:23px}.hero-scoreboard .metric-card{min-width:0;padding:13px 10px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025));box-shadow:inset 0 1px rgba(255,255,255,.035)}.metric-icon{width:32px;height:32px;display:grid!important;place-items:center;margin:0 0 9px!important;border-radius:10px;background:rgba(255,255,255,.07);color:#5ad89e}.metric-icon.live{color:#ff7379;background:rgba(242,76,83,.12)}.metric-icon.today{color:#ffd24c;background:rgba(245,189,22,.12)}.metric-icon.next{color:#62b8ff;background:rgba(72,151,230,.12)}.metric-icon svg{width:16px;height:16px}.hero-scoreboard .metric-copy{display:block!important}.hero-scoreboard strong{display:block;color:#fff;font-size:23px;letter-spacing:-.04em}.hero-scoreboard .metric-copy>span{display:block;margin-top:2px;color:rgba(255,255,255,.48);font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.match-status-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:18px 16px 10px;padding:5px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.035)}.match-status-tabs button{min-height:39px;border:0;border-radius:12px;background:transparent;color:var(--text-muted);font-size:10px;font-weight:650}.match-status-tabs button.active{background:var(--gold-500);color:#12251d;box-shadow:0 7px 18px rgba(245,189,22,.2)}
.match-filters{display:grid;grid-template-columns:1.3fr 1fr;gap:8px;padding:0 16px}.match-search{height:42px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.match-search svg{width:16px;fill:none;stroke:var(--text-muted);stroke-width:2}.match-search input,.match-filters select{width:100%;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit;font-size:10px}.match-filters select{height:42px;padding:0 10px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}
.category-chips{display:flex;gap:7px;padding:10px 16px 4px;overflow:auto;scrollbar-width:none}.category-chips button{flex:0 0 auto;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:9px;font-weight:650}.category-chips button.active{border-color:rgba(46,194,125,.38);background:rgba(46,194,125,.1);color:#48d397}
.match-groups{padding:2px 16px 28px}.match-day{margin-top:20px}.match-day-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:8px}.match-day-head strong{font-size:12px;text-transform:capitalize}.match-day-head span{color:var(--text-muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.match-competition{margin:8px 0 6px;color:#49c98e;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.fixture-card{display:grid;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px;padding:14px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.02));color:inherit;text-decoration:none;transition:.18s}.fixture-card:active{transform:scale(.99)}.fixture-team{display:flex;align-items:center;gap:8px;min-width:0;font-size:10.5px;font-weight:650}.fixture-team.away{justify-content:flex-end;text-align:right}.fixture-team img{width:34px;height:34px;object-fit:contain;flex:0 0 auto}.fixture-team span{overflow:hidden;text-overflow:ellipsis}.fixture-center{text-align:center}.fixture-status{display:inline-flex;padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--text-muted);font-size:7px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.fixture-status.live{background:rgba(242,76,83,.14);color:#ff858a}.fixture-status.scheduled{background:rgba(37,206,131,.1);color:#52d99d}.fixture-score{display:block;margin-top:5px;color:#fff;font-size:18px;font-weight:750;letter-spacing:-.04em}.fixture-time{display:block;margin-top:5px;color:#fff;font-size:12px;font-weight:700}.fixture-meta{display:block;margin-top:3px;color:var(--text-muted);font-size:7.5px}.fixture-card.stale{border-color:rgba(245,189,22,.24)}.fixture-card.stale .fixture-status{background:rgba(245,189,22,.1);color:#e8bd3c}
.match-empty{margin:18px 16px;padding:28px 18px;border:1px dashed var(--border);border-radius:18px;color:var(--text-muted);font-size:11px;text-align:center;line-height:1.5}
@media(min-width:720px){.match-center-hero{display:grid;grid-template-columns:1fr 360px;align-items:end}.hero-scoreboard{margin:0}.fixture-card{padding:17px 22px}.fixture-team{font-size:12px}.fixture-team img{width:42px;height:42px}}
@media(max-width:480px){.match-filters{grid-template-columns:1fr}.sync-state{display:none}.match-center-hero{padding:22px 19px}.hero-scoreboard .metric-card{padding:11px 9px}.metric-icon{width:29px;height:29px;margin-bottom:7px!important}.fixture-card{grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);padding:12px 9px}.fixture-team{flex-direction:column}.fixture-team.away{flex-direction:column-reverse}.fixture-team span{max-width:100%;text-align:center}.fixture-score{font-size:16px}}

/* ---------------------------------------------------------------------------
   Histórico de partidas: leitura de resultado em um relance
   --------------------------------------------------------------------------- */

/* O placar agora tem 4 indicadores (TV, Hoy, Próx. 7 días, Resultados). */
.hero-scoreboard{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:640px){.hero-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Num card de resultado, quem venceu precisa ser óbvio sem comparar dígitos:
   o vencedor ganha peso e opacidade plena, o perdedor recua. Empate não marca
   nenhum dos dois. */
.fixture-team.is-winner span{color:var(--text-primary);font-weight:800}
.fixture-team.is-winner img{filter:drop-shadow(0 8px 14px rgba(0,0,0,.34))}
.fixture-team.is-loser{opacity:.62}
.fixture-team.is-loser img{filter:grayscale(.35)}

/* Marca discreta de vitória: um ponto no lado do vencedor. Some no empate. */
.fixture-card.is-result .fixture-team.is-winner{position:relative}
.fixture-card.is-result .fixture-team.is-winner::after{
  content:'';position:absolute;top:50%;width:5px;height:5px;border-radius:50%;
  background:var(--green-300);transform:translateY(-50%);
}
.fixture-card.is-result .fixture-team.is-winner:not(.away)::after{right:-2px}
.fixture-card.is-result .fixture-team.is-winner.away::after{left:-2px}

/* Resultado encerrado: placar em tabulares e com presença tipográfica. */
.fixture-card.is-result .fixture-score{
  font-family:var(--font-num,var(--font-display));font-weight:900;
  letter-spacing:-.05em;font-variant-numeric:tabular-nums;
}
.fixture-card.is-result{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018))}

/* Ao vivo: o único card que pulsa na página. */
.fixture-card.is-live{
  border-color:rgba(255,59,48,.42);
  background:linear-gradient(145deg,rgba(255,59,48,.10),rgba(255,255,255,.02));
}
.fixture-card.is-live .fixture-status{color:var(--live);font-weight:800}
.fixture-card.is-live .fixture-score{animation:fixture-live-pulse 2.2s ease-in-out infinite}
@keyframes fixture-live-pulse{0%,100%{opacity:1}50%{opacity:.62}}
@media(prefers-reduced-motion:reduce){.fixture-card.is-live .fixture-score{animation:none}}

/* Botão de paginação: agora informa quantas partidas restam. */
.registry-load-more button,#matches-load-more{
  font-variant-numeric:tabular-nums;
}

/* ============================================================================
   Fixture · legibilidad y separacion por competencia
   ----------------------------------------------------------------------------
   Dos problemas se arreglan aca.

   1. TAMAÑO. La pantalla estaba construida con tipografias de 7, 7.5, 8 y 9
      pixeles. El piso del proyecto son 10, y por buenas razones: abajo de eso
      un marcador deja de leerse de un vistazo en un telefono al sol. Todo lo
      que estaba por debajo sube, y la jerarquia se rehace para que el aumento
      no se convierta en ruido.

   2. MEZCLA. Los partidos se agrupaban por dia, asi que un mismo dia ponia la
      Division Profesional y la Sub-17 una debajo de la otra con identico
      aspecto. Ahora cada competencia tiene su bloque, con su nombre, su
      categoria y su color. El color acompaña al texto y nunca lo reemplaza:
      la categoria siempre esta escrita.
   ============================================================================ */
.comp-block { --tono: #6f8478; margin: 26px 0 0; }
.comp-block[data-tono="profesional"] { --tono: #2ec27d; }
.comp-block[data-tono="femenino"]    { --tono: #e879b8; }
.comp-block[data-tono^="sub-"]       { --tono: #63a9f5; }
.comp-block[data-tono="futsal"],
.comp-block[data-tono="playa"]       { --tono: #f0a558; }

.comp-block-head {
  display: flex; flex-wrap: wrap; align-items: center; gap: 9px;
  margin: 0 0 4px; padding: 13px 15px;
  border: 1px solid var(--border); border-left: 4px solid var(--tono);
  border-radius: 16px 16px 8px 8px;
  background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
}
.comp-block-head h2 {
  flex: 1 1 auto; min-width: 0;
  font-size: 14px; font-weight: 800; line-height: 1.25; color: var(--text-primary);
}
.comp-block-cat {
  padding: 4px 10px; border-radius: 999px;
  background: color-mix(in srgb, var(--tono) 20%, transparent);
  color: var(--tono);
  font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
}
.comp-block-n {
  padding: 3px 10px; border-radius: 999px;
  background: rgba(255,255,255,.09); color: var(--text-primary);
  font-size: 11px; font-weight: 800; font-variant-numeric: tabular-nums;
}

/* El dia queda subordinado a la competencia, no al reves. */
.comp-block .match-day { margin-top: 12px; padding-left: 13px; border-left: 2px solid rgba(255,255,255,.07); }
.comp-block .match-day-head { margin-bottom: 9px; }
.comp-block .match-day-head strong { font-size: 12.5px; font-weight: 750; color: var(--text-primary); }
.comp-block .match-day-head span   { font-size: 10px; letter-spacing: .06em; }

/* ---- Tarjetas: mismo diseño, tamaños legibles ---- */
.fixture-card { margin-bottom: 10px; padding: 15px 14px; }
.fixture-team { font-size: 13px; font-weight: 700; gap: 10px; }
.fixture-team img { width: 38px; height: 38px; }
.fixture-status { padding: 4px 9px; font-size: 10px; letter-spacing: .04em; }
.fixture-score { margin-top: 6px; font-size: 22px; }
.fixture-time  { margin-top: 6px; font-size: 14px; }
.fixture-meta  { margin-top: 5px; font-size: 10.5px; }

/* ---- Filtros de categoria: eran chips de 9px, casi ilegibles ---- */
.category-chips { gap: 8px; padding: 12px 16px 6px; }
.category-chips button {
  min-height: 38px; padding: 0 14px;
  font-size: 12px; font-weight: 750;
}
.category-chips button.active { font-weight: 850; }

@media (min-width: 720px) {
  .comp-block-head h2 { font-size: 16px; }
  .fixture-team { font-size: 14px; }
  .fixture-team img { width: 46px; height: 46px; }
  .fixture-score { font-size: 26px; }
}
@media (max-width: 480px) {
  /* La tarjeta apila los nombres bajo el escudo en pantallas angostas; con la
     tipografia nueva hay que darle aire para que no se corte el nombre. */
  .fixture-card { grid-template-columns: minmax(0,1fr) 74px minmax(0,1fr); padding: 13px 10px; }
  .fixture-team { font-size: 12px; }
  .fixture-team img { width: 34px; height: 34px; }
  .fixture-score { font-size: 20px; }
  .comp-block-head { padding: 12px 13px; }
  .comp-block-head h2 { font-size: 13.5px; }
}
@media (pointer: coarse) {
  .category-chips button { min-height: 44px; }
}

/* `.is-live` reemplazaba el rojo claro del estado por var(--live), el rojo
   fuerte de marca, y sobre la tarjeta en vivo eso daba 4.47:1 — apenas debajo
   del minimo. El acento en vivo lo dan el borde y el marcador; el texto vuelve
   al tono claro, que si se lee. */
.fixture-card.is-live .fixture-status { color: #ff9095; }

/* Puente al detalle de la competencia. Va en su propia linea dentro del
   encabezado para no competir con el nombre. */
.comp-block-link {
  flex: 1 0 100%; margin-top: 2px;
  color: var(--tono); font-size: 11.5px; font-weight: 750; text-decoration: none;
}
.comp-block-link::after { content: ' →'; }
.comp-block-link:hover { text-decoration: underline; }
@media (pointer: coarse) { .comp-block-link { padding: 7px 0 3px; } }
