/* Partidos — capa sobre estadio.css (Fase 3 premium: separadores de mes + legibilidad de tickets) */

/* SEPARADOR DE MES: antes era texto chico y apagado (.month8 .95rem var(--tx-3)) más débil que
   los propios tickets → la grilla se leía como un muro plano sin ritmo. Le sumamos una barra de
   acento dorada + más cuerpo/brillo para que ordene el fixture por mes (mismo lenguaje que los
   headers de posición del Plantel). */
.page-partidos .month8 {
    font-size: 1.06rem;
    color: var(--tx-2);
    letter-spacing: .1em;
    margin: 26px 2px 12px;
    padding-bottom: 2px;
}
.page-partidos .month8::before {
    content: "";
    flex: none;
    width: 4px;
    height: 18px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--gold-2), var(--gold));
    box-shadow: 0 0 10px rgba(255, 194, 51, .5);
}
.page-partidos .month8::after { background: linear-gradient(90deg, var(--line), transparent); }

/* legibilidad: el día del mes y el tag de resultado estaban por debajo del mínimo cómodo
   (.56rem / .54rem). Subida leve, sin romper el layout del ticket. */
.page-partidos .ticket__mon { font-size: .6rem; }
.page-partidos .ticket__tag { font-size: .58rem; }

/* ============================================================
   CLS — RESERVA DE CAJA DE LO QUE LLEGA DESPUÉS

   Medido (Chrome, cache off, 10/10 corridas idénticas):
     · 1280×900 sin throttle .................. CLS 0,1115
     · 390×844 DPR2 slow4G+CPU4 en frío ....... CLS 0,2940
   Tres cajas nacen vacías en el HTML y las llena el JS cuando contesta la API.
   Cada una empuja TODO lo que tiene debajo:

     1) #segSeason (.seg8 de temporadas) — nace vacío: 10px (padding 4+4 + borde 2).
        Cuando entran los 25 botones pasa a 54px (44 de `min-height` del botón,
        estadio.css:1679, + 8 de padding + 2 de borde). Empuje: +44px a t≈286ms
        (t≈4324ms con slow4G). Es la capa dominante del CLS de la página.
     2) #hWdlLeg (leyenda G/E/P/Win del poster) — nace vacía: 0px. Cuando entra el
        resumen mide 16,8px. Empuje: +17px, y arrastra el bloque de filtros entero.
     3) #list — nace vacía y el pie de página queda a y≈562 (dentro del viewport de
        844). Al entrar los 30 tickets el pie se va abajo del fold: en el reporte de
        layout-shift aparece como `P.muted [17->0h, y562->0]` (el rect actual se
        recorta contra el viewport), y es lo que dispara la distancia grande de la capa.

   La corrección es de CAJA, no de datos: se reserva el alto final antes de que
   llegue el contenido. No se toca el JS ni el orden de las requests. Los tres
   valores son los medidos arriba y están atados a reglas de estadio.css que este
   archivo NO puede cambiar; por eso van con el número al lado, no "a ojo".
   ============================================================ */
/* 1) el rail de temporadas ocupa su alto final desde el primer pintado */
.page-partidos #segSeason { min-height: 54px; }

/* 2) la leyenda reserva UNA línea de su propia tipografía mientras está vacía.
      Se usa un carácter invisible en vez de un `min-height` en px para que la
      reserva siga a la fuente (.7rem) si alguien la cambia, y no quede corta o larga. */
.page-partidos #hWdlLeg:empty::before { content: "\200b"; }

/* 3) la lista reserva el alto de una pantalla MIENTRAS ESPERA la primera respuesta,
      así el pie de página nace abajo del fold en vez de saltar hasta allá cuando
      llegan los tickets. La reserva se apaga con la clase, no con `:empty` a secas:
      una lista vacía DESPUÉS de filtrar es un estado legítimo (lo cubre #empty) y
      reservarle 78vh dejaría un hueco enorme. `renderList()` saca la clase en su
      primer pintado y ya no vuelve. */
.page-partidos #list.tlist--esperando { min-height: 78vh; }
