/* ═══════════════════════════════════════════════════════════════════
   cop-ui-partido.css · LA FILA DE PARTIDO
   Componente compartido. Se toca UNA vez y baja a todas las pantallas.

   DISEÑO APROBADO POR FRANCO (05/08/2026, taller-partido-e):
     · el contenido de la tarjeta de hoy, sin cambiarle nada
     · SIN caja: ni fondo propio, ni borde, ni esquinas redondeadas
     · los partidos se separan entre sí con una LÍNEA FINA, igual que
       los mercados de la tab de Cuotas
     · la línea cruza la pantalla de borde a borde; el contenido va
       metido hacia adentro (--cop-pt-aire)
     · el logo de Clash of Picks ocupa la MISMA columna que la
       camiseta, así que logo↔camiseta y fecha↔nombre caen sobre la
       misma línea vertical
     · en vivo: "En Vivo" + el minuto reemplazan a la fecha y la hora

   ⚠ ESTE ARCHIVO NO PUEDE CAMBIAR NADA POR ENLAZARLO.
     El espacio de nombres `.cop-partidos` / `.cop-partido` no existe
     en ninguna página: hasta que se agregue la clase a mano, este
     archivo no encuentra a quién estilar. Es la misma decisión que
     salvó a cop-ui-tabs.css y al registro de íconos: se AGREGA, no se
     reescribe (§9sexdecies, §9quater).

   ⚠ TODO VA ANCLADO A `.cop-partidos > .cop-partido`, no a `.mc-*` a
     secas. Dos motivos:
       1. `.mc-` NO nombra el mismo componente en toda la app —
          `tienda`, `misiones`, `hitos` y `arena` tienen sus propias
          reglas `.mc-*` para otras cosas. Ese fue exactamente el
          refactor que rompió 10 páginas el 03/08 (§8septvigies).
       2. Con dos clases (0-2-0) le gana a la regla vieja de la página
          (0-1-0) SIN depender del orden de la cascada. El orden fue
          lo que rompió 58 páginas el 03/08 (error #9).
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* el aire lateral de la fila. 16 px es el margen de contenido del
     resto de la app; 22 son esos 16 más los 6 que pidió Franco para
     que ni la camiseta ni el botón queden pegados al borde.
     Cambiarlo acá lo cambia en todas las pantallas. */
  --cop-pt-aire: 22px;
  /* la línea que separa un partido del siguiente */
  --cop-pt-linea: rgba(255,255,255,.07);
  /* la columna de la izquierda: la camiseta manda, el logo la sigue */
  /* ⚠ 44 Y NO 38 (Franco, 24/09/2026): *«quiero que las camisetas sean
     un poco más grandes»*. +16 %: más se come el nombre, que es el dato.
     El logo de CP de la cabecera y la luz del equipo cuelgan de esta
     misma variable, así que acompañan solos. */
  --cop-pt-col: 44px;
  /* el hueco entre esa columna y el texto */
  --cop-pt-gap: .65rem;
  /* ⚠⚠ EL ANCHO RESERVADO DEL HUECO DE LA DERECHA (`.mc-marc`), Y NO ES
     UN NÚMERO ELEGIDO. Sale de la columna de la camiseta más el hueco
     canónico de la app, así que el lado derecho de la fila mide lo mismo
     que el izquierdo y las dos puntas quedan sobre la misma rejilla — la
     misma cuenta que alinea el logo de CP con la camiseta más arriba.
     El VALOR importa menos que el hecho de que sea FIJO: el dato que va
     ahí cambia con el momento del partido (+180 → 2 → 2) y si el hueco
     midiera lo que mide su contenido, el nombre del equipo se correría
     solo en el instante en que el partido arranca.
     ⚠ Se escribe como `calc` y no como «54px» para que el día que la
     camiseta cambie de tamaño, el hueco de enfrente la acompañe. */
  /* ⚠⚠ 24/09/2026: DEJA DE SER «camiseta + hueco». Con la camiseta en 44
     esa cuenta daba 60 px, y el nombre —que ahora va en dos renglones y
     lleva su línea abajo— se quedaba con 59 px a 390 de pantalla. La
     chip de puntos más ancha que existe («+950» a .84rem con su aire)
     mide 48: 52 es ésa más el grosor del borde a cada lado. Sigue siendo
     FIJA, que es lo que importa (ver arriba). */
  --cop-pt-marc: 52px;
  /* el hueco entre las tres columnas de la fila (nombre · número ·
     botón). Era `--gap-lg` (16 px); en 10 la chip y el botón siguen
     leyéndose como dos piezas y el nombre gana 12 px. */
  --cop-pt-hueco: .62rem;
  /* ⚠ ALTO MÍNIMO COMPARTIDO (Franco, 07/08). Partidos e historial miden
     154 px porque tienen dos filas de equipo; recompensas tiene una sola y
     quedaba en 132. Franco pidió que las TRES midan lo mismo para que
     cambiar de tab no mueva nada bajo el dedo. Es un PISO, no un alto fijo:
     una fila con más contenido crece igual. */
  --cop-pt-alto: 154px;
}

/* ════════ LA ZONA ════════
   Llega al borde físico de la pantalla. `50% - 50vw` mide solo lo que
   sobra de cada lado, sin necesitar saber cuánto padding tiene el
   contenedor de cada página — que es distinto en cada una.
   ⚠ La zona NO lleva padding: el aire lateral lo pone la fila. Son
     dos cosas distintas (dónde termina la línea / dónde arranca el
     contenido) y las decide cada una por su lado. */
/* ⚠⚠ LA CLASE VA REPETIDA, Y NO ES UN ERROR DE TIPEO (Franco, 25/08/2026).
   `.cop-partidos` a secas es 0-1-0, y en TODAS las páginas el `<style>`
   propio va DESPUÉS del `<link>` de este archivo: cualquier clase que
   comparta el mismo div —`.matches-grid`, `.lista-partidos`, `.np-list`,
   `.history-grid`, `.events-grid`— empata en especificidad y **gana por
   orden**. Así se colaba un `gap` de 12,8 a 17,6 px entre filas.

   Ese gap es exactamente lo que Franco vio: *«en Division League sigue
   estando igual que antes, lo mismo en Champions Clash, Carrera… donde
   sí está bien es en Clash Draft»*. La FILA medía 154 px en todas —eso
   ya estaba arreglado—; lo que no medía igual era el PASO entre filas:
   154 en Clash Draft (que envuelve en un `<div class="cop-partidos">`
   pelado) y 166 a 172 en el resto. Y dentro de una misma pantalla
   tampoco coincidía: en Carrera, Partidos tenía 16 px de gap e Historial
   0, así que cambiar de tab movía todo bajo el dedo.

   Repetida, la clase mide 0-2-0 y le gana a la clase local **sin
   depender del orden de la cascada** — la misma decisión que ya se tomó
   para la fila (`.cop-partidos > .cop-partido`), por el mismo motivo.
   ⚠ Un `id` (1-0-0) le sigue ganando: `#upScroll` de `equipo.html` hubo
   que arreglarlo en la página. */
.cop-partidos,
.cop-partidos.cop-partidos{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  display:block;      /* mata cualquier grid de 2 columnas heredado */
  /* ⚠ `display:block` NO alcanza para matar el gap: si la página además
     declara `display:flex`/`grid` y este archivo pierde el empate, el
     gap viaja con él. Declarado acá, el paso entre filas es el alto de
     la fila y nada más. */
  gap:0;
}
/* ⚠⚠ Y `hidden` TIENE QUE SEGUIR GANANDO (23/08/2026). El `display:block`
   de arriba es una regla de autor y le gana al `[hidden]{display:none}`
   que trae el navegador: cualquier zona con esta clase que alguien
   esconda con `hidden` se seguiría viendo. Lo cazó `arnes-hitos` el día
   que la tarjeta de grupo de misiones pasó a llevar `cop-partidos` —
   en Logros va oculta, y quedó a la vista.
   Es la misma trampa que ya está anotada en `cop-escalera.css`: esconder
   con `hidden` deja de funcionar en cuanto alguien declara un `display`. */
.cop-partidos[hidden],
.cop-partidos.cop-partidos[hidden]{display:none}

/* ⚠ En escritorio NO va a 100vw: hay rail lateral y se metería
   debajo. Arriba de 761 px ocupa su columna, igual que el componente
   de tabs. El producto es una app; el ancho completo manda en móvil. */
@media (min-width:761px){
  .cop-partidos,
  .cop-partidos.cop-partidos{ width:auto; margin-left:0; margin-right:0 }
}

/* ════════ LA FILA ════════ */
.cop-partidos > .cop-partido{
  position:relative;
  /* ⚠⚠ `border-box` FIJADO ACÁ, Y NO ES PROLIJIDAD (Franco, 24/08/2026).
     Franco marcó que el aire de arriba es más largo que el de abajo y que
     las tarjetas son demasiado altas. Medido por TINTA —captura y conteo
     de píxeles, porque `getBoundingClientRect` mide la caja y el ojo mide
     la tinta— apareció esto:

         página SIN reset de box-sizing → content-box → tarjeta 187,59 px
         página CON reset (Champions)   → border-box  → tarjeta 154 px

     **El mismo componente medía 33,6 px distinto según qué página lo
     dibujara.** `min-height:154px` se escribió queriendo decir el alto
     TOTAL —el comentario de `modos-competitivos.html` lo dice con esas
     palabras— pero en `content-box` esos 154 son solo el contenido y el
     padding se suma encima.

     Y de ahí salía el aire de más: los 33,6 px sobrantes los repartía
     `justify-content:center` en dos mitades de 16,8 que se sumaban al
     padding, dejando 37,2 px de línea a contenido en vez de 20,4.

     Fijándolo acá, la fila mide lo mismo en las diez pantallas que la
     usan, sin depender de si esa página trae reset o no. */
  box-sizing:border-box;
  /* columna centrada: así el piso de alto reparte el aire arriba y abajo en
     vez de dejarlo todo abajo, que es lo que delata un relleno */
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:var(--cop-pt-alto);
  padding:1.05rem var(--cop-pt-aire);
  /* ⚠ LA LÍNEA YA NO ES UN `border-bottom` (Franco, 22/08/2026). El
     borde de una caja mide lo que mide la caja, y esta caja va de borde
     a borde de la pantalla: la línea cruzaba entera mientras el
     contenido arrancaba 22 px adentro, así que empezaba antes y
     terminaba después que todo lo que estaba separando. Ahora la dibuja
     el `::after` de acá abajo, metido esos mismos 22 px de cada lado. */
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  margin:0;
  transform:none;
}

/* ⚠⚠ LA LÍNEA ARRANCA Y TERMINA DONDE EL CONTENIDO (Franco, 22/08/2026)
   > "las líneas divisorias no tienen que ser del full del ancho de toda
   >  la pantalla sino del ancho del contenido, desde el margen izquierdo
   >  al derecho, empezando y terminando donde lo hace el contenido."

   Se aparta del diseño del 05/08 —"la línea cruza la pantalla de borde a
   borde"— y a propósito: aquella decisión venía de los mercados de la
   tab de Cuotas, donde la fila NO tiene aire lateral. Acá sí lo tiene, y
   una línea más ancha que lo que separa se lee como el borde de otra
   cosa.

   ⚠ VA CON `left`/`right` Y NO CON UN `width` CALCULADO: el aire sale de
   la MISMA variable que el padding de la fila (`--cop-pt-aire`), así que
   cuando ese margen cambia —y cambia solo, abajo de 360 px— la línea lo
   acompaña. Con un ancho escrito a mano se separarían en el primer
   teléfono angosto y nadie lo vería hasta una captura. */
/* ⚠⚠ LA LÍNEA VA ENTRE FILAS Y NO DEBAJO DE LA ÚLTIMA (Franco,
   12/09/2026): *«eliminá la línea separadora de abajo de "Próximo
   partido", ya que no hay nada que separar»*.

   Esto DEROGA la nota de más abajo del 22/08, que decía «la última fila
   sigue teniendo su línea» y dejaba la decisión sin tomar a propósito
   («eso NO es lo que se pidió acá»). Ahora sí se pidió, y el caso donde
   se ve peor es el que lo destapó: la sección «Próximo partido» tiene
   UNA tarjeta, así que su única línea no separaba de nada — cerraba una
   caja, que es justo lo que este componente vino a sacar.

   ⚠ Y ES COHERENTE CON LO QUE EL COMPONENTE YA DECÍA: «las filas se
   separan ENTRE SÍ; no se enmarca el conjunto» es la razón por la que
   la primera no lleva línea arriba. La de abajo de la última hacía
   exactamente lo contrario. Con `:not(:last-child)` las dos puntas de
   la lista quedan abiertas y la regla se puede decir en una frase.
   ⚠ AFECTA A TODAS LAS LISTAS DE PARTIDOS DE LA APP, y a propósito: una
   lista que cierra con línea en una pantalla y sin línea en otra es la
   clase de diferencia que se siente al cambiar de pestaña. */
.cop-partidos > .cop-partido:not(:last-child)::after{
  content:"";
  position:absolute;
  left:var(--cop-pt-aire);
  right:var(--cop-pt-aire);
  bottom:0;
  height:1px;
  background:var(--cop-pt-linea);
  pointer-events:none;
  z-index:1;
}
/* ⚠ SIN LÍNEA ARRIBA DE LA PRIMERA (Franco, 07/08). La línea de arriba
   quedaba pegada a las chips de filtro y leía como el borde de una caja,
   que es justo lo que este componente vino a sacar. Las filas se separan
   ENTRE SÍ; no se enmarca el conjunto. */
.cop-partidos > .cop-partido:first-child{
  border-top:0;
}
/* ⚠⚠ ACÁ DECÍA «LA ÚLTIMA FILA SIGUE TENIENDO SU LÍNEA» y desde el
   12/09/2026 NO la tiene: la decisión que el 22/08 quedó sin tomar
   —«eso NO es lo que se pidió acá»— la pidió Franco hoy. Ver el
   `:not(:last-child)` de arriba. Queda la nota vieja anotada para que
   el cambio se lea como una decisión con fecha y no como un descuido. */
/* la tarjeta de hoy tiene :hover que le cambia el borde — sin caja no
   hay borde que cambiar, y en un teléfono el hover no existe */
.cop-partidos > .cop-partido:hover{
  border-color:var(--cop-pt-linea);
  transform:none;
}

/* ════════ ENCABEZADO ════════ */
.cop-partidos > .cop-partido .mc-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--gap-md, .7rem);margin-bottom:var(--gap-md, .7rem);padding:0;
}
.cop-partidos > .cop-partido .mc-head-left,
.cop-partidos > .cop-partido .mc-head-right{
  display:inline-flex;align-items:center;min-width:0;
}
.cop-partidos > .cop-partido .mc-head-left{ gap:var(--cop-pt-gap) }
.cop-partidos > .cop-partido .mc-head-right{ gap:.5rem }

/* ⚠ EL LOGO OCUPA EXACTAMENTE LA COLUMNA DE LA CAMISETA y lo separa
   de la fecha el MISMO hueco que separa a la camiseta del nombre del
   equipo. Por eso las cuatro cosas caen sobre dos líneas verticales
   y no hay ningún número inventado: los dos valores son variables.
   Antes el logo medía 26 y la camiseta 38, así que la fecha arrancaba
   12 px antes que el nombre. */
.cop-partidos > .cop-partido .mc-cp{
  width:var(--cop-pt-col);flex:0 0 var(--cop-pt-col);
  display:grid;place-items:center;
}
.cop-partidos > .cop-partido .mc-cp img{
  /* ⚠ 75 % Y NO 100 % (Franco, 22/08/2026, noche): "el logo de CP de las
     tarjetas de partidos debe ser más chico, reducilo en un 25 %".
     Se achica el LOGO, no la columna: `--cop-pt-col` sigue midiendo lo
     mismo porque es la que alinea el escudo de abajo con el logo de
     arriba. Bajando la columna se desalinearía toda la tarjeta. */
  width:75%;height:auto;object-fit:contain;display:block;opacity:.9;
  margin:0 auto;
}

.cop-partidos > .cop-partido .mc-fecha{
  font-size:var(--fs-sm, .8rem);font-weight:600;color:#fff;white-space:nowrap;
}
.cop-partidos > .cop-partido .mc-time{
  font-size:var(--fs-sm, .8rem);font-weight:500;color:var(--text-dim,#9aa3b2);white-space:nowrap;
}
/* ⚠⚠ EL CONTEO DE JUGADORES NECESITA SU CAJA, Y FALTABA (23/08/2026).
   El componente estilaba el NÚMERO pero no el ícono ni el grupo: en
   Champions y en Draft se veía bien porque esas páginas tienen su propia
   copia de `.mc-players`/`.mc-players-ico` escrita adentro. La primera
   pantalla que usó el componente sin esa copia —la pestaña Partidos de
   un grupo— mostró el muñequito encimado con el número.
   Un componente al que hay que completarle reglas desde la página no es
   un componente: es media pieza. */
.cop-partidos > .cop-partido .mc-players{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:.3rem;
  color:var(--text-dim,#9aa3b2);
}
.cop-partidos > .cop-partido .mc-players-ico{
  display:inline-flex;align-items:center;
}
.cop-partidos > .cop-partido .mc-players-ico svg{
  width:16px;height:16px;display:block;
}
.cop-partidos > .cop-partido .mc-players-n{
  font-size:var(--fs-sm, .8rem);font-weight:500;color:var(--text-dim,#9aa3b2);white-space:nowrap;
}
.cop-partidos > .cop-partido .mc-league-name{
  font-size:var(--fs-sm, .8rem);font-weight:600;color:var(--text-dim,#9aa3b2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;
}

/* ════════ EN VIVO ════════
   El minuto reemplaza a la hora: a esa altura la hora de arranque ya
   no le sirve a nadie (es la misma regla de la tarjeta del historial,
   §8quinvigies). El rojo marca el estado, el minuto es el dato. */
.cop-partidos > .cop-partido .mc-vivo{
  display:inline-flex;align-items:center;gap:.28rem;
  font-size:var(--fs-xs, .72rem);font-weight:700;color:var(--red, #ff3b5c);letter-spacing:.3px;
  white-space:nowrap;
}
.cop-partidos > .cop-partido .mc-vivo i{
  width:6px;height:6px;border-radius:50%;background:var(--red, #ff3b5c);
  display:inline-block;animation:copPtLat 1.4s infinite;
}
@keyframes copPtLat{ 0%,100%{opacity:1} 50%{opacity:.25} }
.cop-partidos > .cop-partido .mc-min{
  font-size:var(--fs-sm, .8rem);font-weight:600;color:#fff;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}

/* ════════ CUERPO ════════ */
/* ⚠ `padding:0` NO es de adorno: las páginas traen `.mc-body{padding:0 2px}`
   —el respiro que necesitaba la caja— y esos 2 px corrían la camiseta
   respecto del logo, que vive en el encabezado. Con la caja muerta, el
   aire lateral lo pone la fila y una sola vez. Medido: sin esto, logo 22
   contra camiseta 24. */
.cop-partidos > .cop-partido .mc-body{
  display:flex;flex-direction:column;gap:.5rem;padding:0;
}
/* ⚠⚠⚠ LA FILA PASA DE `flex` A `grid`, Y ES LO QUE PONE EL NÚMERO EN UNA
   COLUMNA FIJA (Franco, 18/09/2026): *«los puntos y el resultado deben
   estar alineados a la misma altura, en la misma columna fija, no
   importa si un nombre de equipos es más largo o corto»*.
   Con `flex` el hueco del número quedaba a merced del ANCHO DEL BOTÓN
   que tiene al lado, y los botones no miden lo mismo: medido en la
   pantalla real, «Estadisticas» 122px, «Jugar Ahora» 120 y «Jugar 59m
   56s» **139**. Resultado: los bordes izquierdos de los huecos daban
   176, 178, 176, 159, 176 y 166 — o sea el número bailaba hasta 19px de
   una fila a la otra. No se veía con nombres cortos y saltaba a la vista
   con una cuenta regresiva larga al lado.
   ⚠ Tres columnas: el equipo se lleva lo que sobra (`minmax(0,1fr)`, y
   el `0` es lo que le permite ACHICARSE — con `1fr` a secas el mínimo es
   el contenido y un nombre largo empuja las otras dos), el número mide
   siempre `--cop-pt-marc` y el botón siempre `--cop-pt-btn`. Con las
   tres columnas fijas del lado derecho, la única que se mueve es la del
   nombre, que es la que tiene que moverse. */
.cop-partidos > .cop-partido .mc-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--cop-pt-marc, 54px) var(--cop-pt-btn, 140px);
  align-items:center;gap:var(--cop-pt-hueco, 1rem);
}
/* ⚠ El botón llena su columna en vez de medir lo que mide su texto: es
   la otra mitad del arreglo. Sin esto la columna es fija pero el botón
   queda flotando adentro y se ve desalineado con el de la fila de
   arriba. */
/* ⚠⚠⚠ `grid-column:3` — 18/09/2026. Franco: *«asegurate siempre que los
   botones de estadísticas y de jugar ahora en las tarjetas de partidos
   estén alineados a la derecha, ya que ahora muchísimas tarjetas de casi
   todas las competencias los tienen más cerrados, como si no hubiera
   info de los puntos de equipo hiciera que se cierren esos 2 botones»*.
   Y describió la causa exacta.

   LA GRILLA SE ESCRIBIÓ HOY MISMO con tres columnas —equipo · número ·
   botón— dando por hecho que la fila SIEMPRE trae los tres hijos. Cuando
   el hueco del número no está, la colocación automática de la grilla
   mete al botón en la SEGUNDA columna, la de 54 px. Medido en el banco:
   con el hueco el botón mide **140 px y queda a 22 del borde**; sin el
   hueco mide **54 px y queda a 178**. Eso es «cerrado».

   ⚠⚠ Y EL HUECO FALTA EN DOCE PANTALLAS, que es por qué se veía en
   «casi todas las competencias»: `COPMarcador.fila()` se llama con la
   guarda `window.COPMarcador ? … : ''`, y esas doce no cargan
   `cop-marcador-partido.js`, así que reciben la cadena vacía. La guarda
   está BIEN —es el contrato del componente—: lo que estaba mal era una
   grilla que dependía de que un hermano existiera.
   ⚠ Por eso el arreglo va acá y no agregando el guion a doce páginas:
   **el botón se clava en su columna y la fila se dibuja bien tenga dos
   hijos o tres.** Un componente no puede depender de que otro esté
   cargado. */
.cop-partidos > .cop-partido .mc-row > .mc-btn,
.cop-partidos > .cop-partido .mc-row > .mc-duel-res{
  grid-column:3;
  width:100%;
}
/* ⚠⚠ EL VALOR SALE DEL BOTÓN MÁS LARGO QUE EXISTE HOY, MEDIDO, NO A OJO:
   «Jugar 59m 56s» da 139px. 140 es ése más uno. Si mañana aparece un
   botón más largo —«Jugar 2d 14h 30m»— hay que subir este número, y el
   síntoma va a ser el texto apretado contra los bordes, no un error.
   ⚠ En pantallas de 360 o menos se achica: con 140px fijos, a 320px al
   nombre del equipo le quedaban 56px y «Manchester City» se leía «Man…».
   El botón es el que cede, no el nombre — el nombre es el dato. */
.cop-partidos{ --cop-pt-btn:140px }
@media(max-width:360px){ .cop-partidos{ --cop-pt-btn:112px } }
.cop-partidos > .cop-partido .mc-team{
  display:flex;align-items:center;gap:var(--cop-pt-gap);
  min-width:0;flex:1 1 auto;
}
.cop-partidos > .cop-partido .mc-crest{
  width:var(--cop-pt-col);height:var(--cop-pt-col);
  flex:0 0 var(--cop-pt-col);
  display:grid;place-items:center;overflow:hidden;
  /* sin caja alrededor de la camiseta: la camiseta ya es la figura */
  background:none;border:0;box-shadow:none;border-radius:0;
}
.cop-partidos > .cop-partido .mc-crest img{
  width:100%;height:100%;object-fit:contain;display:block;
}
.cop-partidos > .cop-partido .mc-team-name{
  font-size:var(--fs-base, 1rem);font-weight:700;color:#fff;
  letter-spacing:-.2px;line-height:1.15;
  /* ⚠⚠ DOS RENGLONES, NO PUNTOS SUSPENSIVOS (Franco, 24/09/2026): *«que
     los nombres largos se dividan en 2 filas»*, con la captura de
     «Trinidad / and Tobago». Antes era un renglón y «Washin…».
     ⚠ Y SI UNA PALABRA SOLA NO ENTRA («Washington», «Leverkusen»), el
     renglón no la puede partir: la achica `cop-luces-equipo.js`
     (`ajustarNombre`) hasta un piso legible. Los puntos suspensivos
     quedan sólo como red, para una pantalla que no cargue ese archivo. */
  overflow:hidden;text-overflow:ellipsis;white-space:normal;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow-wrap:normal;word-break:normal;
  min-width:0;
}

/* ── LA LÍNEA DE PROBABILIDAD (Franco, 24/09/2026) ─────────────────
   *«cada nombre debe tener una línea debajo que sea proporcional al
   porcentaje de acierto de ese resultado (…) si uno paga 150 y el otro
   300 la de 150 será más larga (…) el máximo que pueda alcanzar una
   línea sea del 99 % vs 1 % de la otra»*.
   El largo lo escribe `COPPuntosPartido.pintar()` en `--p` (0-100 % del
   ancho del nombre) y el color es el del equipo.
   ⚠ LA FILA SE VUELVE UNA GRILLA DE DOS RENGLONES — camiseta a la
   izquierda ocupando los dos, nombre arriba, línea abajo — y NO una
   línea colgada con `::after` del nombre: el nombre tiene `overflow:
   hidden` para cortar en dos renglones, y eso recortaría la línea.
   ⚠ El renglón de la línea está SIEMPRE (nace con `--p:0`): así el
   nombre no se corre para arriba cuando llegan las cuotas. */
.cop-partidos > .cop-partido .mc-team.mc-team--prob{
  display:grid;
  grid-template-columns:var(--cop-pt-col) minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:var(--cop-pt-gap);
  row-gap:var(--gap-sm, .5rem);
  align-content:center;
  align-items:center;
}
.cop-partidos > .cop-partido .mc-team--prob > .mc-crest{ grid-row:1 / span 2 }
.cop-partidos > .cop-partido .mc-team--prob > .mc-team-name{ grid-column:2; align-self:end }
.cop-partidos > .cop-partido .mc-prob{
  grid-column:2; align-self:start;
  display:block; height:3px; border-radius:3px;
  width:var(--p, 0%);
  background:rgb(var(--mc-rgb, 150,158,176));
  /* ⚠ sin dato, CERO de ancho: la línea no existe, no «está en 50» */
  transition:width .6s cubic-bezier(.22,1,.36,1);
}
@media (prefers-reduced-motion: reduce){
  .cop-partidos > .cop-partido .mc-prob{ transition:none }
}
/* el color de cada fila: el del equipo que nombra. Lo pone la luz
   (`--eq1-rgb` / `--eq2-rgb`), en su versión aclarada para que un club
   negro no dé una raya invisible (`--eqN-vivo`, 24/09/2026); sin color
   conocido queda el gris. */
.cop-partidos > .cop-partido [data-lado="1"]{ --mc-rgb: var(--eq1-vivo, var(--eq1-rgb, 150,158,176)) }
.cop-partidos > .cop-partido [data-lado="2"]{ --mc-rgb: var(--eq2-vivo, var(--eq2-rgb, 150,158,176)) }
/* el marcador se va al FINAL del bloque de equipos, no pegado al
   nombre: así los dos números quedan en columna y se leen como un
   marcador y no como parte del nombre del equipo */
.cop-partidos > .cop-partido .mc-gol{
  margin-left:auto;padding-left:var(--gap-md, .7rem);
  font-size:var(--fs-base, 1rem);font-weight:800;color:#fff;
  font-variant-numeric:tabular-nums;flex:0 0 auto;
}

/* ════════ EL BOTÓN ════════
   Es el botón del sistema (var(--s2, #161b25) · borde 1.5 · Inter 600 · radio 14,
   la regla del 01/08) y CONSERVA su fondo aunque la fila no tenga
   ninguno: el fondo del botón es lo que lo hace un botón.
   El color del borde sale de la variable de acento, así que una
   competencia nueva es una línea y no una regla por pantalla. */
/* el de Estadísticas es secundario: no compite con el de jugar */
/* "Ver mi duelo": lo tuyo va en verde, el mismo de la tarjeta ganada */

/* ════════ EL ACENTO POR COMPETENCIA ════════
   Mismo enganche que el componente de tabs: la pantalla declara
   `data-comp` y el compartido pisa la variable. Cero reglas nuevas
   por pantalla.
   ⚠⚠ ERA LA CUARTA COPIA DE LA MISMA TABLA (31/08/2026), con las mismas
   tres competencias de agosto: en Grupos el botón de la tarjeta salía
   celeste al lado de una tab violeta y una carta violeta. Ahora deriva
   de `--cop-acento`, que resuelve `cop-ui-tabs.css` para TODAS. Agregar
   una competencia es tocar un archivo, no cuatro.
   ⚠ SE MANTIENE EL NOMBRE `--cop-pt-acento`: lo usan las reglas de acá
   abajo y renombrarlas no cambiaría nada de lo que se ve. */
[data-comp]{ --cop-pt-acento: var(--cop-acento, var(--primary,#0c95eb)) }

/* ════════ PANTALLAS ANGOSTAS ════════
   Debajo de 360 px el nombre del equipo y el botón no entran en una
   línea sin romper palabras: el botón se achica antes que el nombre,
   porque el nombre es el dato y el botón es la acción. */
@media (max-width:359px){
  :root{ --cop-pt-aire:16px }
  .cop-partidos > .cop-partido .mc-league-name{ max-width:110px }
}

/* ══════════════════════════════════════════════════════════════════
   EL HISTORIAL · LA MISMA FILA, CON EL RESULTADO EN LUGAR DE ESTADÍSTICAS
   ------------------------------------------------------------------
   Franco, 23/08/2026: *«TODAS LAS TARJETAS DE HISTORIAL DEBEN TENER EL
   MISMO DISEÑO QUE LAS TARJETAS DE PARTIDOS ADAPTADAS AL HISTORIAL Y SU
   FUNCIONALIDAD»*.

   Estas reglas vivían escritas a mano dentro de `modos-competitivos.html`,
   así que las otras tres pantallas de historial —carrera, clash draft,
   torneos— no las tenían y cada una se dibujó su propia tarjeta. Ahora
   viven en el componente: la pantalla pone `hist-card` y ya está.

   ⚠ SOLO CAMBIAN LAS DOS CELDAS DE LA DERECHA. Todo lo demás (el aire,
   la línea separadora, la cabecera, las camisetas) lo sigue poniendo el
   componente de arriba. Si acá se escribiera un margen o un fondo, la
   pestaña Historial dejaría de ser el espejo de la pestaña Partidos y
   el cambio de tab volvería a moverle la pantalla al jugador.
   ══════════════════════════════════════════════════════════════════ */
.cop-partidos > .cop-partido.hist-card{ cursor:pointer }

/* la celda que reemplaza al botón de Estadísticas: número arriba,
   detalle abajo. `min-width` igual al del botón de la fila de abajo,
   para que las dos celdas de la derecha compartan el mismo eje. */
.cop-partidos > .cop-partido .mc-duel-res{
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:.12rem;flex:0 0 auto;min-width:112px;
}
.cop-partidos > .cop-partido .mc-duel-score{
  font-family:'Inter',sans-serif;font-weight:800;font-size:var(--fs-lg, 1.15rem);
  line-height:1;letter-spacing:.5px;color:#fff;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
/* ⚠ VERDE SI GANÓ, ROJO SI PERDIÓ — pedido explícito para carrera y ya
   vigente en Champions. Es el ÚNICO color del historial: el resto de la
   tarjeta se mantiene idéntico al de un partido por jugar. */
/* ⚠ EL VERDE DEL SISTEMA (`--ok`) Y NO EL DEROGADO (10/09/2026).
   `--accent-green` vale `#7CFC00` —un lima que la skill del proyecto
   tiene marcado como derogado— y acá se leía como un verde de neón
   arriba de una tarjeta oscura. `--ok` es el verde decidido de la app,
   el mismo del «ganado» de los rangos y del sí de los interruptores.
   ⚠ ESTO CAMBIA TAMBIÉN EL HISTORIAL DE CHAMPIONS Y DIVISIÓN, que usan
   esta misma celda: es el punto de tener un componente. Las otras 23
   apariciones del lima siguen anotadas como deuda. */
.cop-partidos > .cop-partido .mc-duel-score.win { color:var(--ok,#22c55e) }
.cop-partidos > .cop-partido .mc-duel-score.loss{ color:#ff5c7a }
.cop-partidos > .cop-partido .mc-duel-vs{
  font-family:'Inter',sans-serif;font-size:var(--fs-xs, .72rem);font-weight:600;
  color:var(--text-dim,#9aa3b2);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:112px;text-align:center;
}
@media (max-width:359px){
  .cop-partidos > .cop-partido .mc-duel-res,
  .cop-partidos > .cop-partido .mc-duel-vs{ min-width:92px;max-width:92px }
  .cop-partidos > .cop-partido .mc-duel-score{ font-size:var(--fs-base, 1rem) }
}

/* ⚠⚠ ACÁ VIVIÓ EL «MARCADOR DE DUELO LIQUIDADO» (`.mcd-marcador`, dos
   renglones con camiseta + alias + puntos, tanda BG del 01/09/2026) y
   SE DEROGÓ AL DÍA SIGUIENTE (Franco, 02/09/2026): *«igual que en
   Division League: los puntos de los 2 en rojo o verde según si ganó o
   perdió, con los puntos propios adelante, y abajo solo el nombre del
   rival»* — o sea la celda estándar `.mc-duel-score` + `.mc-duel-vs`
   de acá arriba, que ya hacía exactamente eso. El bloque se BORRÓ
   entero junto con el branch del componente: unas clases muertas son
   una invitación a volver a usarlas sin saber por qué se sacaron. */

/* ══════════════════════════════════════════════════════════════════
   ACÁ VIVÍA EL PUESTO ARRIBA DE LA TARJETA, Y SE BORRÓ (12/09/2026)
   ------------------------------------------------------------------
   Franco: *«saca el indicador de posición "1 de 1", que hace la tarjeta
   más larga, y poné la posición donde van los puntos del duelo»*. Se
   fueron `.hp-pos`, `.hp-pos--gano` y `.hp-pos--no` con el rótulo que
   dibujaba `COPHistorial.conPuesto()`: el puesto vive ahora en la celda
   de la derecha de la tarjeta, que es donde estaba hasta el 10/09.
   ⚠ `.hp-lista` SE QUEDA, con su `gap:0`: la usan las tres pantallas en
   el marcado y ahora las filas se separan con la línea del componente,
   como cualquier otra lista de partidos. Un `gap` acá le sumaría aire a
   una lista que ya se separa sola.
   ══════════════════════════════════════════════════════════════════ */
.cop-partidos.hp-lista{ gap:0 }

/* ══════════════════════════════════════════════════════════════════
   EL MARCADOR DEL MOMENTO · el mismo hueco para los tres estados
   ------------------------------------------------------------------
   Lo dibuja `cop-marcador-partido.js` (`COPMarcador.fila()`), que es
   donde está escrito el POR QUÉ de cada dato. Acá va sólo la forma.

   Franco: *«en las tarjetas de partidos por comenzar ahí va la cantidad
   de puntos que vale la victoria de cada uno de los 2 equipos, poniendo
   por ejemplo "+180" y en el otro "+250" … ambos valores van en la
   misma ubicación, los puntos para los partidos que todavía no
   empezaron y los resultados para los partidos que ya terminaron, en
   historial también … para después cuando empieza el partido mostrar el
   marcador y el tiempo en vivo»*.

   Es LA VECINA de `.mc-duel-res` y comparte su lugar en la fila: la
   celda de la derecha, la que en Partidos hoy tiene los botones.

   ⚠ ANCLADO A `.cop-partidos > .cop-partido` como todo este archivo, y
     por los dos motivos de arriba: `.mc-` no nombra el mismo componente
     en toda la app, y con dos clases (0-3-0 acá) le gana a la regla
     vieja de cada página sin depender del orden de la cascada.
   ══════════════════════════════════════════════════════════════════ */

/* ⚠⚠ EL HUECO MIDE SIEMPRE LO MISMO, TENGA DATO O NO. Es la regla que
   este bloque existe para cumplir: cuando arranca el partido el «+180»
   se va y entra un «2», y el nombre del equipo **no se puede mover**.

   Se resuelve con TRES cosas, y las tres hacen falta:
     1. `flex:0 0 var(--cop-pt-marc)` — ni crece ni se achica, así que
        no depende de lo que mida su contenido. (`width` va además
        porque `flex-basis` solo no manda en todos los contextos: si
        alguien pone esta celda adentro de un `.mc-rgroup` que no es
        flex, `flex-basis` no se mira y el ancho lo pondría el texto.)
     2. `min-height` igual a la camiseta — así el ALTO de la fila lo
        sigue decidiendo la camiseta y nunca este hueco, ni cuando lleva
        dos renglones (gol + minuto) ni cuando va vacío. Sin esto, la
        fila del local crecería unos píxeles al empezar el partido y la
        tarjeta entera daría un saltito.
     3. `box-sizing:border-box` ESCRITO ACÁ, no heredado del reset de la
        página: hay páginas que no lo traen, y ahí el padding se sumaría
        al ancho reservado. Es exactamente el defecto que ya midió este
        archivo más arriba (la fila valía 33,6 px distinto según la
        página que la dibujara).
   ⚠ Lo que NO se usa para esto: espacios de relleno (`&nbsp;`, guiones,
     ceros). Un espacio mide distinto en cada tipografía, y acá Google
     Fonts puede no cargar. El ancho es una decisión del CSS. */
.cop-partidos > .cop-partido .mc-marc{
  box-sizing:border-box;
  /* ⚠ `relative` ES PARA EL MINUTO, que cuelga fuera del flujo (ver más
     abajo). Sin esto se posicionaría contra la tarjeta entera. */
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex:0 0 var(--cop-pt-marc, 54px);
  width:var(--cop-pt-marc, 54px);
  min-height:var(--cop-pt-col, 38px);
  text-align:center;
  /* SIN CAJA: ni fondo, ni marco, ni esquinas. Es la regla 1 del
     sistema y además la de esta fila, que no tiene caja que respetar. */
  background:none;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
  margin:0;
}
/* ⚠⚠ Y `hidden` TIENE QUE SEGUIR GANANDO. Arriba se declaró un
   `display`, y una regla de autor le gana al `[hidden]{display:none}`
   del navegador: sin esta línea, una celda que alguien esconda con
   `hidden` se seguiría viendo. Van SIETE apariciones de este bug en la
   app —está anotado en `cop-escalera.css` y otra vez en la zona de acá
   arriba— y la regla del sistema es que todo componente que declare un
   `display` declare también su propio `[hidden]`.
   ⚠ Va SOLO en la versión anclada: fuera de `.cop-partidos` este
   archivo no declara ningún `display` para `.mc-marc`, así que ahí el
   `hidden` nativo alcanza y una regla suelta `.mc-marc[hidden]` sería
   una regla que no arregla nada. */
.cop-partidos > .cop-partido .mc-marc[hidden]{ display:none }

/* ── LOS PUNTOS QUE VALE LA VICTORIA ──────────────────────────────
   ⚠ SON UN DATO DE APOYO, NO EL PROTAGONISTA: van en Inter y en el
   escalón chico de la escala. La jerarquía contra el marcador la dan el
   TAMAÑO y la FUENTE (.80rem Inter contra 1.20rem Anton), no el gris:
   apagarlos los mandaría al mismo plano que la hora, y son el dato con
   el que el jugador decide de qué lado juega. */
.cop-partidos > .cop-partido .mc-marc-pts{
  font-size:var(--fs-sm, .8rem);
  font-weight:700;
  line-height:var(--lh-none, 1);
  color:var(--text, #f4f6fb);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
/* ── LA CHIP DE PUNTOS, DEL COLOR DEL EQUIPO (Franco, 24/09/2026) ──
   *«los puntos deben estar mostrados con el mismo diseño que usamos de
   chips para elegir los puntos de un mercado, solamente que acá el
   recuadro va del color del equipo»*.
   ⚠ ES LA MISMA PIEZA: `cop-borde cop-borde--chip` (el borde en degradé,
   intenso abajo y apagado arriba) con Inter 700 y cifras tabulares. Lo
   único que cambia es `--borde-rgb`, que acá es el color del equipo.
   ⚠ EL RADIO BAJA DE 14 A 10 PORQUE LA CHIP BAJA DE 42 A 30 DE ALTO: con
   14 en 30 de alto sería una píldora, y la forma que Franco eligió es
   «media cuadrada con bordes redondeados». Se conserva la PROPORCIÓN.
   ⚠ LA CLASE REPETIDA le gana al `.cop-borde--chip` que carga después
   (el mismo motivo que `.cop-mo-pts.cop-mo-pts`). */
.cop-partidos > .cop-partido .mc-pts-chip.mc-pts-chip{
  --borde-rgb: var(--mc-rgb, 150,158,176);
  --borde-radio: 10px;
  --borde-grosor: 1.4px;
  --borde-arriba: .22;
  box-sizing:border-box;
  display:grid; place-items:center;
  width:100%; height:30px; padding:0 .2rem;
  font-family:'Inter',sans-serif;
  font-size:var(--fs-md, .88rem); letter-spacing:0;
}

/* ── EL GOL ────────────────────────────────────────────────────────
   ⚠ ES UN NÚMERO DE DISPLAY, ASÍ QUE VA EN ANTON. Los marcadores son la
   excepción que el sistema permite al techo tipográfico del texto.

   ⚠ PERO SE QUEDA EN `--fs-xl` Y NO SUBE A `--fs-2xl`, por dos motivos
   medidos y no por gusto:
     1. En ESTE MISMO LUGAR de la tarjeta, el historial dibuja
        `.mc-duel-score` a 1,15rem y Champions `.mc-gol` a 1rem. Un gol
        de 1,5rem haría que Partidos y Historial muestren el mismo dato
        en el mismo lugar con dos tamaños distintos — que es justo lo
        que este componente vino a terminar.
     2. El aire entre el minuto y el gol de la fila de abajo pasa de
        **5,9 px a 3,5 px** (medido a 390 px). Todavía no choca, pero el
        minuto se lee pegado al número de abajo en vez de flotando entre
        los dos.
   ⚠ Y LO QUE SÍ CHOCA ESTÁ MEDIDO: si `.mc-body` perdiera su `gap` de
   .5rem, el aire da **−2,1 px** y el minuto se mete adentro del gol de
   abajo. Ese `gap` es parte de esta geometría, no decoración. */
.cop-partidos > .cop-partido .mc-marc-gol{
  font-family:Anton, 'Arial Narrow', Impact, sans-serif;
  font-weight:400;
  font-size:var(--fs-xl, 1.3rem);
  line-height:var(--lh-none, 1);
  letter-spacing:.5px;
  color:var(--text, #f4f6fb);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

/* ── EL MINUTO ─────────────────────────────────────────────────────
   Va UNA sola vez por tarjeta: lo decide `lado` en el JS y se dibuja en
   la fila del local.

   ⚠⚠ VA FUERA DEL FLUJO, Y LO ENCONTRÓ LA CAPTURA CON TODOS LOS NÚMEROS
   EN VERDE. En el primer intento el minuto era un segundo renglón del
   mismo `flex` y, al entrar, **empujaba el gol del local 8 px para
   arriba**: el `2` quedaba más alto que el `1` de abajo y los dos
   números dejaban de leerse como UN marcador — que es lo único que un
   marcador tiene que hacer. Medido: 54 px entre los dos goles cuando la
   fila mide 46. Ningún control lo veía porque nada se movía de ANCHO,
   ni la fila cambiaba de alto, ni el nombre se corría.

   Sacándolo del flujo (`absolute`), el gol queda centrado en su hueco
   en los TRES estados y el minuto no puede moverlo nunca. Es además lo
   que hace la pantalla de resultados, que es de donde viene el pedido:
   ahí el minuto vive en `.lg-when`, una columna aparte de `.lg-scores`.
   Acá la columna aparte es el canal de 8 px que separa las dos filas, y
   el minuto queda **justo entre los dos goles**, que es como se lee un
   marcador en vivo: 2 · 67' · 1.

   ⚠ LA CUENTA DE POR QUÉ NO CHOCA, para el día que alguien toque algún
   número: el hueco mide 38 (`--cop-pt-col`) y el minuto arranca en su
   borde de abajo, así que ocupa de 38 a 49,5. El hueco de la fila de
   abajo arranca en 46 y su gol —centrado en 38— empieza recién en 55,4.
   Quedan 5,9 px de aire. Si el gol creciera o el `gap` de `.mc-body`
   se achicara, eso se come. El `gap` está declarado en este mismo
   archivo a 0-3-0, así que una página no se lo puede pisar.
   ⚠ Apagado a propósito: el minuto ubica, el gol es el dato. */
.cop-partidos > .cop-partido .mc-marc-min{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  font-size:var(--fs-xs, .72rem);
  font-weight:600;
  line-height:var(--lh-none, 1);
  color:var(--text-dim, #9aa3b5);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  text-align:center;
  pointer-events:none;
}

/* ⚠ NO HAY REGLA DE `:hover` EN ESTE BLOQUE Y ES A PROPÓSITO: la celda
   es un dato, no se toca. El día que algo de acá se vuelva tocable, su
   hover va adentro de `@media (hover:hover) and (pointer:fine)` — en el
   teléfono el navegador simula el hover al apoyar el dedo y deja
   pintado lo que tocaste. */

/* ══════════════════════════════════════════════════════════════════
   UNA TARJETA SIN MARCADOR CIERRA SU COLUMNA  (21/09/2026)
   ──────────────────────────────────────────────────────────────────
   `.mc-row` es una grilla de TRES columnas —nombre · marcador (54px) ·
   botón (140px)— y las dos últimas son fijas a propósito: es lo que
   mantiene los botones alineados aunque el hueco del marcador falte
   (ver el comentario largo de `grid-column:3` más arriba).

   ⚠⚠ PERO HAY TARJETAS DONDE EL MARCADOR NO FALTA POR UN OLVIDO: NO
   EXISTE. El partido no empezó —el del sorteo de Mega Spin, el del menú
   de un torneo antes de cargar los picks—, así que esos 54 px más uno de
   los huecos de 1 rem son 70 px que se le restan al NOMBRE para no
   mostrar nada. Medido en 390: «Racing Club» y «Boca Juniors» salían
   cortados con puntos suspensivos. Un nombre de equipo cortado es un
   dato perdido, no un detalle de estilo.

   ⚠ POR ESO ES UN MODIFICADOR Y NO UN CAMBIO EN LA REGLA GENERAL:
   bajarle los 54 px a TODAS las tarjetas volvería a cerrar los botones
   en las doce pantallas que no cargan `cop-marcador-partido.js` y por
   eso reciben la cadena vacía. Lo pide quien SABE que no hay marcador.
   ⚠ EL BOTÓN SIGUE CLAVADO EN LA COLUMNA 3: sólo cambia el ancho de la
   2, así que los dos botones de la tarjeta siguen alineados entre sí.
   ⚠⚠ `.cop-duelo--solo` **NO** ENTRA ACÁ, Y SE INTENTÓ. La primera
   versión de esta regla la incluía —misma necesidad, misma regla— y
   rompió los dos menús de torneo: `cop-tarjeta-duelo.css` carga DESPUÉS
   y declara `.cop-partidos > .cop-duelo .mc-row` con sus tres columnas.
   Las dos tienen 0-3-0 de especificidad, así que **gana la que se
   declara después**, y la de allá reabría la columna del marcador. Lo
   cazó el arnés de los menús con los mismos nombres cortados.
   La regla del duelo se queda en su hoja, que es la única que puede
   ganarle a la del duelo. Lo compartido es el modificador. */
.cop-partidos > .cop-partido--sin-marcador .mc-row{
  grid-template-columns:minmax(0,1fr) 0 var(--cop-pt-btn, 140px);
  column-gap:var(--gap-sm, .5rem);
}

/* ══ LA ENTRADA DE UN TORNEO EN LA FILA DE PARTIDO  (mudada el 28/09/2026) ══
   «Entrada · 300» en el renglón de abajo de la tarjeta de torneo. Vivía en
   el `<style>` de `modos-competitivos.html`, pero la fila del Clasificatorio
   de `equipo.html` usa las MISMAS clases y no las tenía: «Entrada» quedaba
   encimada con «Gratis» (-56 px, lo medía `arnes/_club-menu.mjs`). Se mudó
   acá, que es la hoja de la fila de partido y la cargan las dos pantallas.
   ⚠ SIN ENVOLVER: con `flex-wrap:wrap` la entrada saltaba de línea y la
   tarjeta se iba a 160px contra los 154 de las otras dos tabs, que es justo
   la igualdad que veníamos sosteniendo. */
.mc-entrada{display:flex;align-items:center;gap:var(--gap-sm, .5rem);flex-wrap:nowrap;min-width:0;overflow:hidden}
.mc-entrada-lbl{font:600 var(--fs-sm, .8rem)/1 'Inter',sans-serif;color:var(--text-dim);flex:0 0 auto}
.mc-entrada-val{display:inline-flex;align-items:center;gap:.22rem;flex:0 0 auto;
  font:700 var(--fs-md, .88rem)/1 'Inter',sans-serif;color:#fff;white-space:nowrap}
.mc-entrada-val .cop-ico{width:16px;height:16px;flex:0 0 auto}
/* el ícono de carta todavía no está en el registro: va su emoji, en la misma caja */
.mc-entrada-val .cop-ico--carta{background:none;font-size:var(--fs-md, .88rem);line-height:1;display:inline-grid;place-items:center}
