/* torneos-club.css */
/* ==========================================================================
   El Camino DT — TUS TORNEOS DEL CLUB (5/10/2026)
   --------------------------------------------------------------------------
   La pantalla usa las clases del modo selección (`seleccion.css`). Acá va
   sólo lo que el club tiene y la selección no: escudos en vez de banderas,
   las zonas de la liga, el destino de cada puesto y la lista de rondas.
   ========================================================================== */

/* LOS ESCUDOS: cuadrados y enteros, donde el modo pone banderas. */
.torneos-club .tor__esc { object-fit: contain; box-shadow: none; border-radius: 0; flex: none; }
.torneos-club .copa__sel .tor__esc, .torneos-club .copa__res .tor__esc { display: inline-block; vertical-align: middle; }
.torneos-club .mundo__tabs button > b { font-size: var(--fs-md); white-space: nowrap; }
.torneos-club .mundo__tabs button span { white-space: nowrap; max-width: 12rem; overflow: hidden; text-overflow: ellipsis; }

/* LAS ZONAS, a la derecha de los pasos del año. */
.tor__zonas { flex: none; align-self: center; }

/* La fecha libre de la zona impar. */
.tor__libre { margin: var(--sp-2) 0 0; color: var(--text-muted); font-size: var(--fs-xs); text-align: center; }



/* El cuadro entero ocupa el ancho de la tarjeta y se corre por dentro si no entra. */
.tor__conf--cuadro .mundo__cuerpo { overflow-x: auto; }


/* LA TABLA DE LA LIGA tiene quince renglones y no diez: más apretada, para
   que entre entera en la tarjeta como la de la eliminatoria. */
.torneos-club .mun__copa .mundo__grupos--uno .copa__tabla td { padding-block: 6px; }

/* LA SOLAPA DE UN TORNEO: su logo chico al lado del nombre, como la del
   repechaje en la eliminatoria, y abajo en qué anda. */
.torneos-club .tor__tab-logo { display: block; height: 26px; width: auto; max-width: 3rem; object-fit: contain; flex: none; }
.torneos-club .mundo__tabs button:not([aria-selected="true"]) .tor__tab-logo { opacity: 0.7; }

/* A dónde va cada puesto de un grupo, abajo de su tabla. */
.tor__leyenda { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); margin: var(--sp-2) 0 0; font-size: var(--fs-xs); color: var(--text-muted); }
.tor__leyenda b { color: var(--text-secondary); font-weight: 700; }


/* LOS QUE VAN AL PLAYOFF en la fase liga de Europa: una raya del color de
   aviso, al lado de la amarilla de los que pasan derecho. */
.torneos-club .copa .copa__tabla tr.tor__cae td:first-child { box-shadow: inset 3px 0 0 var(--warn); color: var(--warn); }

/* Las solapas no se aprietan: con nombres de torneo en vez de siglas, en
   el teléfono se pisaban. La fila se corre de costado, como en el modo. */
.torneos-club .mun2__tabs button { flex: none; }


/* LA TABLA Y LA FECHA LADO A LADO piden ancho: con quince clubes y sus
   nombres enteros, debajo de 1300 px la tabla se comía los nombres. Ahí la
   fecha va abajo de la tabla. */
@media (max-width: 1300px) {
  .torneos-club .mun__copa .mundo__grupos--uno .copa__grupo-cuerpo { grid-template-columns: minmax(0, 1fr); }
}

/* UNA TABLA SOLA —la fase liga de Europa, una copa de un grupo— no tiene
   fecha al lado: ocupa todo el ancho. */
.tor__solo .copa__grupo-cuerpo { grid-template-columns: minmax(0, 1fr) !important; }


/* El lugar de un escudo que todavía no se sabe: un hueco, no un bloque. */
.torneos-club .mundo__pano--sin.tor__esc { background: none; box-shadow: inset 0 0 0 1px var(--line-strong); border-radius: var(--r-sm); }
/* La copa sin sortear: apagada, con la fecha del sorteo, y un sacudón si se
   la toca (9/10/2026). */
.torneos-club .mundo__tabs button[data-cerrada] { cursor: not-allowed; opacity: 0.5; }
.torneos-club .mundo__tabs button[data-cerrada] span { color: var(--warn); }
.tor__tab--no { animation: tor-no 360ms ease; }
@keyframes tor-no { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) { .tor__tab--no { animation: none; } }

/* LAS REFERENCIAS DE LA TABLA (9/10/2026, «Pongamos las referencias»): la
   franja en el borde del puesto, con los colores del `.zone-chip` de
   `app.css` — los mismos de la tabla del Portal y de «Las ligas». */
/* LA COLUMNA DEL PUESTO lleva su propio lugar para la franja (12/10/2026,
   «acomodame esa línea del nro de posición»): con 1,6 rem y 4 px de aire la
   raya quedaba pegada al número —el «30» del descenso la tocaba— y en el
   teléfono asomaba fuera del borde de la fila. Ahora la columna es más ancha
   en TODAS las filas, la franja va metida 2 px adentro y 8 px más corta que
   la fila, y el número centrado en lo que queda: la raya nunca lo pisa, con
   una cifra o con dos. */
.torneos-club .copa .copa__tabla :is(th, td):first-child { width: 2.5rem; padding-left: 10px; padding-right: 4px; text-align: center; }
.torneos-club .copa .copa__tabla tr[data-zona] td:first-child {
  background-image: linear-gradient(var(--zona-c), var(--zona-c));
  background-repeat: no-repeat; background-position: 2px center; background-size: 3px calc(var(--zona-h, 100%) - 8px);
  color: var(--zona-c); font-weight: 700;
}
.torneos-club .copa__tabla tr[data-zona="champions"] { --zona-c: var(--good); }
.torneos-club .copa__tabla tr[data-zona="previa"] { --zona-c: var(--good); --zona-h: 50%; }
.torneos-club .copa__tabla tr[data-zona="europa"] { --zona-c: var(--verde-600); }
.torneos-club .copa__tabla tr[data-zona="conference"] { --zona-c: var(--verde-600); --zona-h: 50%; }
.torneos-club .copa__tabla tr[data-zona="playoff"] { --zona-c: var(--verde-600); --zona-h: 25%; }
.torneos-club .copa__tabla tr[data-zona="descenso"] { --zona-c: var(--danger); }
.torneos-club .copa__tabla tr[data-zona="repechaje"] { --zona-c: var(--danger); --zona-h: 50%; }
.tor__leyenda--zonas { gap: var(--sp-2) var(--sp-5); font-size: var(--fs-sm); color: var(--text-secondary); padding: var(--sp-3) var(--sp-4) var(--sp-2); border-top: 1px solid var(--border-subtle, rgba(255,255,255,.08)); }
.tor__leyenda--zonas span { display: inline-flex; align-items: center; gap: 8px; }
.tor__leyenda--zonas .zone-chip { flex: none; }

/* EL SELECTOR «TABLA ANUAL · PROMEDIOS», en el lugar del título de la tabla:
   en la Primera argentina la anual y los promedios son las dos vías del
   descenso, y se miran una al lado de la otra. */
.torneos-club .copa__grupo-nom .tor__anual { text-transform: none; letter-spacing: normal; font-weight: 600; }

/* LA TABLA DE PROMEDIOS: los puntos de cada temporada, el total, los
   partidos y el promedio. Sus columnas no son las de la anual, así que se
   sueltan los anchos que `seleccion.css` fija por posición. */
.torneos-club .copa .tor__prom :is(th, td):nth-child(n+3) { width: 3rem; display: table-cell; }
.torneos-club .copa .tor__prom :is(th, td):last-child { width: 4rem; }
.torneos-club .copa .tor__prom .tor__prom-ano { color: var(--text-muted); }
.torneos-club .copa .tor__prom .tor__prom-no { opacity: 0.6; }
.tor__prom-tuyo { color: var(--text-primary); font-weight: 600; }
@media (max-width: 720px) {
  /* En el teléfono quedan el total, los partidos y el promedio: las
     temporadas sueltas no entran al lado de un nombre entero. */
  .torneos-club .copa .tor__prom :is(th, td).tor__prom-ano { display: none; }
  .torneos-club .copa .tor__prom :is(th, td):nth-child(n+3) { width: 2.6rem; }
  .torneos-club .copa .tor__prom :is(th, td):last-child { width: 4.2rem; padding-left: var(--sp-2); }
  .torneos-club .copa .tor__prom td:last-child strong { font-size: var(--fs-md); }
}

/* LAS FASES PREVIAS de la Libertadores (9/10/2026, ordenadas): el recorrido
   arriba, como cinco estaciones con flecha, y una fase por vez abajo. */
.tor__pv { display: grid; gap: var(--sp-4); }
.tor__pv-ruta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); margin: 0; padding: 0; list-style: none; }
.tor__pv-ruta > li { position: relative; display: grid; }
.tor__pv-ruta > li + li::before { content: '›'; position: absolute; left: calc(-1 * var(--sp-3)); top: 50%; translate: -15% -50%; font-size: var(--fs-xl); color: var(--text-muted); }
.tor__pv-est { display: grid; gap: 2px; align-content: start; text-align: left; padding: var(--sp-3) var(--sp-4); border-radius: 16px; border: 0; font: inherit; color: var(--text-secondary);
  background: color-mix(in srgb, var(--bg-raised) 55%, transparent); box-shadow: inset 0 0 0 1px var(--line-hairline); cursor: pointer; transition: background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.tor__pv-est:hover { background: color-mix(in srgb, var(--bg-raised) 85%, transparent); }
.tor__pv-est[aria-pressed="true"] { background: color-mix(in srgb, var(--accent) 14%, transparent); box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 70%, transparent); }
.tor__pv-est--fin { cursor: default; background: transparent; box-shadow: inset 0 0 0 1px dashed var(--line-hairline); border: 1px dashed var(--line-strong); }
.tor__pv-n { display: flex; align-items: baseline; gap: var(--sp-2); font-size: var(--fs-2xs); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--accent-texto); }
.tor__pv-n small { font-weight: 700; color: var(--text-muted); }
.tor__pv-est b { font-size: var(--fs-md); font-weight: 800; color: var(--text-primary); }
.tor__pv-est small { font-size: var(--fs-xs); color: var(--text-secondary); }
.tor__pv-est em { margin-top: 4px; font-style: normal; font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.tor__pv-est--lista em { color: var(--good); }
.tor__pv-est--juega em { color: var(--accent-texto); }
.tor__pv-est--mia { box-shadow: inset 0 0 0 1px var(--line-hairline), inset 4px 0 0 var(--accent); }
.tor__pv-sub { display: flex; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap; margin: 0 0 var(--sp-2); font-size: var(--fs-sm); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-primary); }
.tor__pv-sub small { font-size: var(--fs-xs); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text-muted); }
.tor__pv-cuerpo { display: grid; gap: var(--sp-3); }
.tor__pv-llaves { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2) var(--sp-3); margin: 0; padding: 0; list-style: none; }
.tor__pv-llaves--tuya { grid-template-columns: minmax(0, 1fr); }
.tor__pv-llave { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--sp-3); padding: 10px var(--sp-3); border-radius: 14px;
  background: color-mix(in srgb, var(--bg-raised) 45%, transparent); box-shadow: inset 0 0 0 1px var(--line-hairline); }
.tor__pv-llave--mia { box-shadow: inset 0 0 0 1.5px var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.tor__pv-llave--grande { padding: var(--sp-4) var(--sp-5); }
.tor__pv-eq { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; color: var(--text-primary); }
.tor__pv-eq:first-child { justify-content: flex-end; flex-direction: row-reverse; text-align: right; }
.tor__pv-eq b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.tor__pv-llave--grande .tor__pv-eq b { font-size: var(--fs-lg); }
.tor__pv-eq--fuera { opacity: 0.5; }
.tor__pv-eq--gana b { font-weight: 800; }
.tor__pv-eq--mia b { color: var(--accent-texto); }
.tor__pv-marc { display: grid; justify-items: center; gap: 2px; text-align: center; }
.tor__pv-marc strong { padding: 2px 12px; border-radius: 10px; background: color-mix(in srgb, var(--bg-base, #000) 50%, transparent); font-size: var(--fs-lg); font-weight: 800; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.tor__pv-llave--grande .tor__pv-marc strong { font-size: var(--fs-2xl); }
.tor__pv-marc small { font-size: var(--fs-2xs); color: var(--text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .tor__pv-ruta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tor__pv-ruta > li + li::before { content: none; }
  .tor__pv-llaves { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   LAS LLAVES DE TODOS LOS TORNEOS (12/10/2026)
   «Optimicemos la vista de las llaves: los breadcrumbs, las llaves, los
   equipos, que se entiendan y se vean lo mejor posible.»
   ========================================================================== */

/* 1 · EL RECORRIDO DE RONDAS: una sola fila que se corre de costado (en la
   computadora casi siempre entra), el elegido pintado entero del acento, el
   de ahora con su rótulo, y el estado con color y marca: tilde la jugada,
   punto que late la que se juega, número la que viene. */
.tor__pasos-fila { min-width: 0; }
.torneos-club .tor__pasos {
  flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity;
  scrollbar-width: thin; gap: 2px; padding: 2px 2px 6px; margin: -2px -2px -6px; min-width: 0; flex: 0 1 auto;
}
.torneos-club .tor__pasos li { flex: none; scroll-snap-align: start; gap: 2px; }
.torneos-club .tor__pasos li + li::before { content: ''; width: 10px; height: 1px; background: var(--line-strong); font-size: 0; }
.torneos-club .tor__pasos button { padding: 5px 14px 5px 5px; gap: var(--sp-2); box-shadow: inset 0 0 0 1px transparent; transition: background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.torneos-club .tor__pasos button:hover { background: color-mix(in srgb, var(--bg-raised) 80%, transparent); }
.torneos-club .tor__pasos .mundo__paso-n { width: 1.75rem; height: 1.75rem; font-size: var(--fs-xs); color: var(--text-secondary); }
.torneos-club .tor__pasos .mundo__paso-n .i { width: 14px; height: 14px; }
.torneos-club .tor__pasos .mundo__paso-t b { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-weight: 700; }
.torneos-club .tor__pasos .mundo__paso-t small { white-space: nowrap; text-transform: none; letter-spacing: 0; font-size: var(--fs-xs); font-weight: 600; }
/* Los estados. */
.torneos-club .tor__pasos [data-estado="lista"] .mundo__paso-n { border-color: color-mix(in srgb, var(--good) 55%, transparent); color: var(--good); background: color-mix(in srgb, var(--good) 12%, transparent); }
.torneos-club .tor__pasos [data-estado="lista"] small { color: color-mix(in srgb, var(--good) 80%, var(--text-muted)); }
.torneos-club .tor__pasos [data-estado="juega"] .mundo__paso-n { border-color: var(--accent); }
.torneos-club .tor__pasos [data-estado="juega"] small { color: var(--accent-texto); }
.torneos-club .tor__pasos [data-estado="viene"] small { color: var(--text-secondary); }
.torneos-club .tor__pasos [data-estado="definir"] .mundo__paso-n { border-style: dashed; color: var(--text-muted); }
.torneos-club .tor__pasos [data-estado="definir"] b { color: var(--text-secondary); }
.torneos-club .tor__pasos [data-estado="proy"] small { color: var(--warn); }
.tor__paso-pulso { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 60%, transparent); animation: tor-pulso 1.8s ease-out infinite; }
@keyframes tor-pulso { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent); } 70%, 100% { box-shadow: 0 0 0 7px transparent; } }
@media (prefers-reduced-motion: reduce) { .tor__paso-pulso { animation: none; } }
/* El de ahora. */
.tor__paso-hoy { font-style: normal; font-size: var(--fs-2xs); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; padding: 1px 6px; border-radius: var(--r-pill); color: var(--accent-texto); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 60%, transparent); }
/* El elegido: el acento entero, que se lee desde lejos. */
.torneos-club .tor__pasos button[aria-pressed="true"] { background: var(--accent); box-shadow: none; }
.torneos-club .tor__pasos button[aria-pressed="true"] .mundo__paso-n { background: var(--ink-950); border-color: var(--ink-950); color: var(--accent); }
.torneos-club .tor__pasos button[aria-pressed="true"] .mundo__paso-t b,
.torneos-club .tor__pasos button[aria-pressed="true"] .mundo__paso-t small { color: var(--text-on-accent); }
.torneos-club .tor__pasos button[aria-pressed="true"] .tor__paso-hoy { color: var(--text-on-accent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text-on-accent) 45%, transparent); }
.torneos-club .tor__pasos button[aria-pressed="true"] .tor__paso-pulso { background: var(--accent); }

/* 2 · LAS LLAVES DE UNA RONDA: tarjetas de dos renglones, tantas columnas
   como entren de unos 20 rem —tres en una computadora, una en el teléfono—.
   La tarjeta no se estira para llenar el alto: el alto lo dan sus renglones. */
.tor__llaves-ronda { display: grid; gap: var(--sp-3); align-content: start; }
.tor__llaves { display: grid; gap: var(--sp-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 19.5rem), 1fr)); align-items: start; }
.tor__llaves--una { grid-template-columns: minmax(0, 30rem); justify-content: center; }
.tor__ll { display: grid; gap: 2px; padding: 8px var(--sp-3) 10px; border-radius: var(--r-md); background: color-mix(in srgb, var(--bg-raised) 70%, transparent); box-shadow: inset 0 0 0 1px var(--line-hairline); min-width: 0; }
.tor__ll--mia { background: color-mix(in srgb, var(--accent) 7%, var(--bg-raised)); box-shadow: inset 0 0 0 1.5px var(--accent); }
.tor__ll-cab { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); min-height: 18px; margin-bottom: 2px; font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.tor__ll-cab em { font-style: normal; margin-left: 6px; color: var(--accent-texto); }
.tor__ll-eq { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-2); min-height: 36px; color: var(--text-primary); }
.tor__ll-nom { display: flex; align-items: center; gap: 6px; min-width: 0; }
.tor__ll-eq b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-md); font-weight: 600; }
.tor__ll-eq--pasa b { font-weight: 800; }
.tor__ll-eq--cae { color: var(--text-muted); }
.tor__ll-eq--cae .tor__esc { opacity: 0.55; filter: saturate(0.5); }
.tor__ll-eq--mia b { color: var(--accent-texto); }
.tor__ll-eq--hueco b { color: var(--text-muted); font-weight: 500; font-style: italic; }
.tor__ll-tilde { width: 15px; height: 15px; color: var(--good); flex: none; }
.tor__ll-hueco { width: 30px; height: 30px; border-radius: var(--r-sm); border: 1px dashed var(--line-strong); }
.tor__ll-hueco--chico { width: 20px; height: 20px; }
/* Los goles: la ida y la vuelta chicas, el global grande. Las columnas tienen
   ancho fijo para que los números de los dos renglones queden alineados. */
.tor__ll-goles { display: inline-flex; align-items: center; gap: 2px; font-variant-numeric: tabular-nums; }
.tor__ll-p { width: 1.9rem; text-align: center; font-size: var(--fs-sm); color: var(--text-muted); }
.tor__ll-g { min-width: 2.4rem; text-align: right; font-size: var(--fs-xl); font-weight: 800; line-height: 1; color: inherit; }
.tor__ll-g:empty::before { content: '–'; color: var(--text-disabled, var(--text-muted)); font-weight: 500; font-size: var(--fs-md); }
.tor__ll-g sup { font-size: 0.55em; font-weight: 700; color: var(--text-secondary); margin-left: 2px; vertical-align: 0.5em; }
.tor__ll-g--parcial { color: var(--text-secondary); font-weight: 700; }
.tor__ll-eq--pasa .tor__ll-g { color: var(--text-primary); }
.tor__ll-rot { font-size: var(--fs-2xs); }
.tor__ll-rot .tor__ll-p, .tor__ll-rot .tor__ll-g { font-size: var(--fs-2xs); font-weight: 700; color: var(--text-muted); line-height: 1.2; }
.tor__ll-pie { margin: 4px 0 0; padding-top: 6px; border-top: 1px solid var(--line-hairline); font-size: var(--fs-xs); color: var(--text-secondary); overflow-wrap: anywhere; }
.tor__ll--viene .tor__ll-pie { color: var(--text-primary); }

/* 3 · EL CUADRO, de izquierda a derecha: una columna por ronda, cada llave a
   la altura media de las dos que la alimentan, y las rayas del camino. El
   camino del campeón va en ámbar y el tuyo en el acento. */
.tor__cu { --hueco: 2.25rem; display: grid; grid-template-columns: repeat(var(--cols), minmax(12.5rem, 1fr)); column-gap: var(--hueco); flex: 1 0 auto; min-width: max-content; max-width: 76rem; margin: 0 auto; width: 100%; }
.tor__cu-ronda { display: flex; flex-direction: column; min-width: 0; }
.tor__cu-nom { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-2); margin: 0 0 var(--sp-2); padding-bottom: 6px; border-bottom: 2px solid var(--line-strong); font-size: var(--fs-xs); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-primary); white-space: nowrap; }
.tor__cu-nom small { font-size: var(--fs-2xs); font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--text-muted); }
.tor__cu-cuerpo { flex: 1; display: flex; flex-direction: column; }
.tor__cu-par { position: relative; flex: 1; display: flex; flex-direction: column; }
.tor__cu-slot { flex: 1; display: flex; align-items: center; padding: 5px 0; }
/* Cada llave dibuja su mitad del corchete —la de arriba baja, la de abajo
   sube— y así el color del camino sale sólo de la que ganó. */
.tor__cu-par > .tor__cu-slot { position: relative; }
.tor__cu-par > .tor__cu-slot::after { content: ''; position: absolute; right: calc(var(--hueco) / -2); width: calc(var(--hueco) / 2); border: 1.5px solid var(--line-strong); border-left: 0; pointer-events: none; }
.tor__cu-par > .tor__cu-slot:first-child::after { top: 50%; bottom: 0; border-bottom: 0; border-radius: 0 7px 0 0; }
.tor__cu-par > .tor__cu-slot:last-child::after { top: 0; bottom: 50%; border-top: 0; border-radius: 0 0 7px 0; }
.tor__cu-par::before { content: ''; position: absolute; top: 50%; right: calc(var(--hueco) * -1); width: calc(var(--hueco) / 2); border-top: 1.5px solid var(--line-strong); pointer-events: none; }
.tor__cu-slot--campeon::after, .tor__cu-par--campeon::before { border-color: var(--amber-400) !important; }
.tor__cu-slot--mio::after, .tor__cu-par--mio::before { border-color: var(--accent) !important; }
.tor__cu-llave { width: 100%; display: grid; border: 1px solid var(--line-hairline); border-radius: 8px; background: var(--bg-page); overflow: hidden; }
.tor__cu-llave--campeon { border-color: color-mix(in srgb, var(--amber-400) 70%, transparent); }
.tor__cu-llave--mia { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.tor__cu-eq { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-2); min-height: 30px; padding: 3px 6px 3px 8px; font-size: var(--fs-sm); color: var(--text-primary); }
.tor__cu-eq + .tor__cu-eq { border-top: 1px solid var(--line-hairline); }
.tor__cu-eq b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.tor__cu-eq em { min-width: 1.9rem; padding: 1px 6px; border-radius: 5px; text-align: center; font-style: normal; font-weight: 800; font-variant-numeric: tabular-nums; background: var(--ink-800); }
.tor__cu-eq em:empty { display: none; }
.tor__cu-eq em sup { font-size: 0.7em; font-weight: 600; color: var(--text-muted); margin-left: 1px; vertical-align: 0.3em; }
.tor__cu-eq--pasa b { font-weight: 800; }
.tor__cu-eq--cae { color: var(--text-muted); }
.tor__cu-eq--cae .tor__esc { opacity: 0.5; filter: saturate(0.5); }
.tor__cu-eq--mia b { color: var(--accent-texto); }
.tor__cu-eq--mia em { background: var(--accent); color: var(--text-on-accent); }
.tor__cu-llave--viene .tor__cu-eq b { font-weight: 600; }
.tor__cu-llave--parcial .tor__cu-eq em { background: transparent; box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text-secondary); }
.tor__cu-final { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: var(--sp-4); }
.tor__cu-final .tor__cu-slot { flex: none; }
.tor__cu-campeon { display: grid; justify-items: center; gap: 4px; padding: var(--sp-4) var(--sp-3); border-radius: var(--r-md); text-align: center; background: color-mix(in srgb, var(--amber-400) 9%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--amber-400) 45%, transparent); }
.tor__cu-campeon b { font-size: var(--fs-lg); font-weight: 800; color: var(--text-primary); }
.tor__cu-campeon small { font-size: var(--fs-2xs); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--amber-400); }
.tor__cu-campeon .i { width: 28px; height: 28px; color: var(--text-muted); }
.tor__cu-campeon--mio { background: color-mix(in srgb, var(--accent) 12%, transparent); box-shadow: inset 0 0 0 1.5px var(--accent); }
.tor__conf--cuadro .mundo__cuerpo { overscroll-behavior-x: contain; }

@media (max-width: 720px) {
  .tor__ll { padding: 8px 10px 10px; }
  .tor__ll-eq b { font-size: var(--fs-sm); }
  .tor__ll-p { width: 1.6rem; }
  .tor__cu { --hueco: 1.5rem; grid-template-columns: repeat(var(--cols), 11.5rem); }
}
.tor__ll-rot .tor__ll-p, .tor__ll-rot .tor__ll-g { letter-spacing: 0.02em; }
.tor__cu-eq--mia em sup { color: inherit; opacity: 0.75; }

/* ==========================================================================
   EL COSTADO, REDISEÑADO (11/10/2026)
   «Esta columna no me convence. Rediseñémosla para que sea útil y legible.»
   Tres cosas, con aire entre ellas: tu club con el dato grande, tus partidos
   en dos renglones (el rival entero, nunca «Gim. de Ju…») y el formato al
   pie en letra chica. Más ancho en las pantallas que lo tienen.
   ========================================================================== */
@media (min-width: 1600px) {
  .torneos-club .mundosel__grilla { grid-template-columns: minmax(0, 1fr) 24rem !important; }
}
.torneos-club .mun2__riel { gap: var(--sp-8); padding: var(--sp-6); }
.tor__bl { display: grid; gap: var(--sp-4); }
.tor__bl .sel-tit { margin: 0; }
.tor__bl > .action { justify-self: start; margin-top: var(--sp-1); }

/* 1 · TU CLUB: el escudo, el nombre entero y el dato grande a la derecha. */
.tor__yo { display: grid; gap: var(--sp-5); padding: var(--sp-5) var(--sp-6); border-radius: var(--r-md);
  background: color-mix(in srgb, var(--bg-raised) 70%, transparent); box-shadow: inset 0 0 0 1px var(--line-hairline); }
.tor__yo--campeon { background: color-mix(in srgb, var(--amber-400) 10%, var(--bg-raised)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--amber-400) 50%, transparent); }
.tor__yo-fila { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-5); }
.tor__yo-txt { display: grid; gap: 2px; min-width: 0; }
.tor__yo-txt b { font-size: var(--fs-lg); font-weight: 800; line-height: 1.15; color: var(--text-primary); }
.tor__yo-txt small { font-size: var(--fs-xs); color: var(--text-secondary); }
.tor__yo-estado { font-style: normal; font-size: var(--fs-sm); font-weight: 700; color: var(--accent-texto); }
.tor__yo--campeon .tor__yo-estado { color: var(--amber-400); }
.tor__yo--fuera .tor__yo-estado { color: var(--text-secondary); }
.tor__yo-dato { display: grid; justify-items: end; line-height: 1; }
.tor__yo-dato b { font-size: var(--fs-3xl, 2rem); font-weight: 800; font-variant-numeric: tabular-nums; color: var(--accent-texto); }
.tor__yo-dato small { margin-top: 4px; font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.tor__yo-acc { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

/* 2 · LA CAMPAÑA: cuatro números, la forma y a cuánto estás. */
.tor__nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; border-radius: var(--r-sm); overflow: hidden; background: var(--line-hairline); }
.tor__nums div { display: grid; gap: 2px; padding: 8px 10px; background: var(--bg-panel); }
.tor__nums dt { font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); white-space: nowrap; }
.tor__nums dd { margin: 0; font-size: var(--fs-lg); font-weight: 800; font-variant-numeric: tabular-nums; color: var(--text-primary); white-space: nowrap; }
.tor__forma { display: flex; align-items: center; justify-content: space-between; margin: 0; font-size: var(--fs-xs); color: var(--text-secondary); }
.tor__forma .dp__forma { gap: 5px; }
.tor__forma .dp__f { width: 10px; height: 10px; }
.tor__dist { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); color: var(--text-primary); }
.tor__dist li { position: relative; padding-left: 14px; }
.tor__dist li::before { content: ''; position: absolute; left: 2px; top: 0.55em; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }

/* 3 · TUS PARTIDOS: el rival entero arriba, cuándo y qué abajo, y el
   marcador con su color — verde, gris o arcilla, como la forma. */
.tor__pts { display: grid; margin: 0; padding: 0; list-style: none; }
.tor__pt { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-5); padding: 10px 0; border-bottom: 1px solid var(--line-hairline); }
.tor__pt:last-child { border-bottom: 0; }
.tor__pt-txt { display: grid; gap: 1px; min-width: 0; }
.tor__pt-txt b { font-size: var(--fs-md); font-weight: 700; line-height: 1.2; color: var(--text-primary); overflow-wrap: anywhere; }
.tor__pt-txt small { font-size: var(--fs-xs); line-height: 1.35; color: var(--text-muted); }
.tor__pt-res { display: grid; justify-items: end; gap: 2px; }
.tor__pt-res small { font-size: var(--fs-2xs); color: var(--text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.tor__pt-m { min-width: 3.1rem; padding: 3px 8px; border-radius: 7px; text-align: center; font-size: var(--fs-md); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap;
  background: var(--ink-800); color: var(--text-primary); }
.tor__pt-m--g { background: color-mix(in srgb, var(--verde-400) 22%, transparent); color: var(--verde-300, var(--verde-400)); }
.tor__pt-m--p { background: color-mix(in srgb, var(--clay-400) 22%, transparent); color: var(--clay-300, var(--clay-400)); }
.tor__pt-m--pend { background: transparent; box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text-secondary); font-weight: 700; }

/* 4 · EL TORNEO: el campeón con su escudo y la final abajo. */
.tor__podio { display: grid; gap: var(--sp-2); margin: 0; padding: 0; list-style: none; }
.tor__podio li { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: var(--sp-5); padding: 10px 12px; border-radius: var(--r-sm);
  background: color-mix(in srgb, var(--amber-400) 8%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--amber-400) 35%, transparent); }
.tor__podio li > span { display: grid; gap: 1px; min-width: 0; }
.tor__podio b { font-weight: 800; color: var(--text-primary); overflow-wrap: anywhere; }
.tor__podio small { font-size: var(--fs-2xs); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--amber-400); }
.tor__podio--mio { box-shadow: inset 0 0 0 1.5px var(--accent) !important; }
.tor__fin { margin: 0; font-size: var(--fs-sm); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.tor__fmt { margin: 0; font-size: var(--fs-sm); line-height: 1.5; color: var(--text-secondary); }
.tor__fmt b { color: var(--text-primary); }

/* LA RONDA Y LO QUE VINO DESPUÉS: la columna de la ronda lleva las tarjetas
   enteras y por eso es más ancha; el resto es el cuadro de siempre. */
.tor__llaves-ronda--cuadro { flex: 1 0 auto; grid-template-rows: auto minmax(0, 1fr); }
.tor__cu--desde { grid-template-columns: minmax(21rem, 1.5fr) repeat(calc(var(--cols) - 1), minmax(12.5rem, 1fr)); max-width: 84rem; }
.tor__cu--desde[style*="--cols:1"] { grid-template-columns: minmax(0, 30rem); justify-content: center; }
.tor__cu--desde .tor__cu-slot .tor__ll { width: 100%; }
@media (max-width: 720px) {
  .tor__cu--desde { grid-template-columns: 19rem repeat(calc(var(--cols) - 1), 11.5rem); }
}
/* El cuadro de la ronda se corre de costado él solo: la nota de arriba queda
   quieta y entera también en el teléfono. */
.tor__cu-scroll { min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; display: flex; flex-direction: column; }

/* LA FINAL CON LOS DOS CAMINOS: el partido y el campeón al medio, cómo llegó
   cada uno a los costados. En el teléfono, uno abajo del otro. */
.tor__fn { flex: 1 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 28rem) minmax(0, 1fr); gap: var(--sp-9); align-items: center; max-width: 84rem; width: 100%; margin: 0 auto; }
.tor__fn-medio { display: grid; gap: var(--sp-6); }
.tor__fn-medio .tor__ll-eq b { font-size: var(--fs-lg); }
.tor__fn-medio .tor__cu-campeon { padding: var(--sp-8) var(--sp-6); }
.tor__fn-medio .tor__cu-campeon b { font-size: var(--fs-xl); }
.tor__fn-camino { display: grid; gap: var(--sp-4); align-content: center; }
.tor__fn-camino .sel-tit { margin: 0; }
.tor__fn-camino--mio .sel-tit { color: var(--accent-texto); }
@media (max-width: 1100px) {
  .tor__fn { grid-template-columns: minmax(0, 1fr); gap: var(--sp-8); }
  .tor__fn-medio { order: -1; max-width: 30rem; width: 100%; justify-self: center; }
}
/* Con el costado angosto (21 rem) los cuatro números se tocaban. */
@media (max-width: 1599px) {
  .tor__nums div { padding: 7px 8px; }
  .tor__nums dd { font-size: var(--fs-md); }
}

/* ligas-club.css */
/* ==========================================================================
   El Camino DT — LAS LIGAS DEL MUNDO DEL CLUB (5/10/2026)
   --------------------------------------------------------------------------
   La pantalla usa las clases del modo selección (`seleccion.css`) y las de
   «Tus torneos» (`torneos-club.css`). Acá va sólo lo que las ligas tienen y
   la eliminatoria no: el país, las franjas de color de cada puesto, los
   campeones del año y la flecha de tendencia.
   ========================================================================== */

/* LA SOLAPA DE LA ARGENTINA: la bandera al lado del nombre, donde las otras
   llevan el logo de su confederación. */
.lig__tab-bandera { width: 30px; height: 20px; flex: none; border-radius: var(--r-hair); }


.ligas-club .copa__sel a { min-width: 0; display: flex; color: inherit; text-decoration: none; }
.ligas-club .copa__sel a:hover b { text-decoration: underline; }

/* LAS FRANJAS DE COLOR, en el borde del puesto: las mismas tres de la tabla
   de tu liga (`.zone-chip` de `app.css`). Media marca para la fase previa y
   la tercera copa, un cuarto para el playoff. Sólo la imagen de fondo, para
   no pisar el resaltado de tu fila. */
.ligas-club .copa .copa__tabla tr[data-zona] td:first-child {
  background-image: linear-gradient(var(--zona-c), var(--zona-c));
  background-repeat: no-repeat; background-position: left center; background-size: 3px var(--zona-h, 100%);
  color: var(--zona-c); font-weight: 700;
}
.ligas-club .copa__tabla tr[data-zona="champions"] { --zona-c: var(--good); }
.ligas-club .copa__tabla tr[data-zona="previa"] { --zona-c: var(--good); --zona-h: 50%; }
.ligas-club .copa__tabla tr[data-zona="europa"] { --zona-c: var(--verde-600); }
.ligas-club .copa__tabla tr[data-zona="conference"] { --zona-c: var(--verde-600); --zona-h: 50%; }
.ligas-club .copa__tabla tr[data-zona="playoff"] { --zona-c: var(--verde-600); --zona-h: 25%; }
.ligas-club .copa__tabla tr[data-zona="descenso"] { --zona-c: var(--danger); }
.ligas-club .copa__tabla tr[data-zona="repechaje"] { --zona-c: var(--danger); --zona-h: 50%; }

/* La referencia, abajo de la tabla, con el mismo chip. */
.lig__leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.lig__leyenda .zone-chip, .lig__tit-zona .zone-chip { flex: none; }
.lig__tit-zona { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }

/* LA FLECHA DE TENDENCIA, pegada al nombre. */
.lig__tendencia { flex: none; font-size: 0.72em; line-height: 1; color: var(--good); }
.lig__tendencia[data-tendencia="caida"] { color: var(--danger); }

/* EL LOGO DE LA LIGA en el costado, donde la selección pone su bandera. */
.lig__logo { height: 36px; width: auto; max-width: 3rem; object-fit: contain; flex: none; }
.lig__bandera { width: 36px; height: 24px; flex: none; }

/* ==========================================================================
   LA PANTALLA REDISEÑADA (9/10/2026: «más ordenado, dinámico, legible»).
   Una sola tarjeta a todo el ancho —sin costado— con la cabecera de la liga,
   los mandos, y dos columnas que se corren por dentro: la tabla y el panel
   de la temporada.
   ========================================================================== */
.ligas-club .mundosel__grilla { grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: 'conf' !important; grid-template-rows: minmax(0, 1fr) !important; }
.lig2 { gap: var(--sp-3); padding: var(--sp-4) var(--sp-5); }

/* LA CABECERA: logo, nombre, país y año, las cifras en fichas. */
.lig2__cab { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap; padding-bottom: var(--sp-3); border-bottom: 1px solid var(--line-hairline); }
.lig2__logo { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: var(--r-md); background: color-mix(in srgb, #fff 92%, transparent); }
.lig2__logo .lig__logo { height: 40px; max-width: 44px; }
.lig2__logo .lig__bandera { width: 40px; height: 27px; }
.lig2__quien { min-width: 0; flex: 1 1 14rem; }
.lig2__quien h2 { margin: 0; font-size: var(--fs-2xl); line-height: 1.1; font-weight: 800; color: var(--text-primary); }
.lig2__quien p { margin: 2px 0 0; font-size: var(--fs-sm); font-weight: 600; color: var(--accent-texto); }
.lig2__cifras { display: flex; gap: var(--sp-2); margin: 0; }
.lig2__cifras div { display: grid; justify-items: center; min-width: 5.5rem; padding: var(--sp-2) var(--sp-3); border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: color-mix(in srgb, var(--bg-raised) 60%, transparent); }
.lig2__cifras dd { margin: 0; font-size: var(--fs-xl); font-weight: 800; line-height: 1; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.lig2__cifras dt { margin-top: 4px; font-size: var(--fs-2xs); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-muted); }
.lig2__ir { flex: none; }

/* LOS MANDOS: el país, las divisiones y la zona en una fila. */
.ligas-club .lig__mandos { align-items: center; flex-wrap: wrap; justify-content: flex-start; gap: var(--sp-3) var(--sp-5); }
.ligas-club .lig__mandos .mundo__pasos { flex: 1 1 auto; min-width: 0; gap: var(--sp-2) var(--sp-3); }
.ligas-club .lig__zonas { margin-left: auto; flex-wrap: wrap; }
.lig__pais { display: flex; align-items: center; gap: var(--sp-2); flex: none; }
.lig__pais > .label { color: var(--text-muted); }
.lig__pais .pizarra__select, .lig__pais .desp { min-width: 12rem; }

/* LAS DOS COLUMNAS, cada una con su propio corrimiento. */
.lig2__cuerpo { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: var(--sp-5); }
.lig2__col { height: 100%; min-height: 0; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.lig2__col--panel { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 4px; gap: var(--sp-3); }
.lig2__corre { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.lig2__corre thead th { position: sticky; top: 0; z-index: 1; background: var(--bg-surface, #111); }
.lig2__tit { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); margin: 0; padding-bottom: var(--sp-2); border-bottom: 2px solid var(--accent); font-size: var(--fs-md); font-weight: 800; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--text-primary); }
.lig2__tit em { font-style: normal; font-size: var(--fs-2xs); font-weight: 700; color: var(--text-muted); }
.lig2__tit--panel { border-bottom-width: 1px; border-bottom-color: var(--line-hairline); font-size: var(--fs-sm); color: var(--text-secondary); margin-top: var(--sp-2); }
.ligas-club .copa__tabla td { padding-block: 7px; }

/* EL CAMPEÓN, grande. */
.lig2__campeones { display: grid; gap: var(--sp-2); }
.lig2__campeon { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-4); padding: var(--sp-3) var(--sp-4); border-radius: var(--r-lg); border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line-hairline)); background: linear-gradient(110deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%); }
.lig2__campeon span { display: grid; min-width: 0; }
.lig2__campeon small { font-size: var(--fs-2xs); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--accent-texto); }
.lig2__campeon b { font-size: var(--fs-xl); font-weight: 800; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lig2__campeon .i { width: 28px; height: 28px; color: var(--accent-texto); }
.lig2__campeon--mio { border-color: var(--accent); }

/* LOS BLOQUES: copas, ascensos y descensos, en tarjetas de dos columnas. */
.lig2__grilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--sp-3); }
.lig2__bloque { display: grid; gap: var(--sp-2); align-content: start; padding: var(--sp-3); border: 1px solid var(--line-hairline); border-radius: var(--r-md); background: color-mix(in srgb, var(--bg-raised) 45%, transparent); }
.lig2__bloque h4 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--fs-sm); font-weight: 700; color: var(--text-primary); }
.lig2__bloque h4 > span:not(.zone-chip) { flex: 1 1 auto; min-width: 0; }
.lig2__bloque h4 small { flex: none; min-width: 1.6rem; padding: 1px 6px; border-radius: 99px; text-align: center; font-size: var(--fs-2xs); font-weight: 800; background: var(--line-hairline); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.lig2__bloque .zone-chip { flex: none; }
.lig2__bloque--champions { border-left: 3px solid var(--good); }
.lig2__bloque--previa { border-left: 3px solid color-mix(in srgb, var(--good) 55%, transparent); }
.lig2__bloque--europa, .lig2__bloque--conference, .lig2__bloque--playoff { border-left: 3px solid var(--verde-600); }
.lig2__bloque--descenso, .lig2__bloque--baja { border-left: 3px solid var(--danger); }
.lig2__bloque--sube, .lig2__bloque--llegan { border-left: 3px solid var(--good); }
.lig2__flecha { flex: none; font-style: normal; font-size: 0.8em; }
.lig2__flecha--sube { color: var(--good); }
.lig2__flecha--baja { color: var(--danger); }
.lig2__fichas { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px var(--sp-3); }
.lig2__fichas li { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; font-size: var(--fs-sm); color: var(--text-primary); }
.lig2__fichas li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lig2__fichas .lig2__ficha--mia span { color: var(--accent-texto); font-weight: 700; }
.lig2__fecha { padding: var(--sp-3); }
.lig2__nota { margin: 0; padding-top: var(--sp-2); border-top: 1px solid var(--line-hairline); font-size: var(--fs-xs); line-height: 1.45; color: var(--text-muted); }

/* La referencia, abajo de la tabla, con el mismo chip. */
.lig__leyenda { margin: 0; display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); font-size: var(--fs-xs); color: var(--text-secondary); }
.lig__leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.lig__leyenda .zone-chip { flex: none; }

/* LA FLECHA DE TENDENCIA, pegada al nombre. */
.lig__tendencia { flex: none; font-size: 0.72em; line-height: 1; color: var(--good); }
.lig__tendencia[data-tendencia="caida"] { color: var(--danger); }

/* SIN ENTRADAS REPETIDAS: después de la primera vez, cambiar de liga no
   vuelve a hacer entrar cada escudo y cada paso. */
.ligas-club .mundo--pintado img.mundo__pano,
.ligas-club .mundo--pintado .mundo__pasos li,
.ligas-club .mundo--pintado .tarjeta { animation: none; }

/* LAS SOLAPAS de las confederaciones, con aire entre sí. */
.ligas-club .mun2__tabs { gap: var(--sp-3); }
.ligas-club .mun2__tabs button { min-width: 6.5rem; padding-inline: var(--sp-4); }

@media (max-width: 1100px) {
  .lig2__cuerpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .lig2__corre, .lig2__col--panel { overflow: visible; }
  .lig2__col { height: auto; }
}
@media (max-width: 720px) {
  .lig2 { padding: var(--sp-3); }
  .lig2__cifras { width: 100%; }
  .lig2__cifras div { flex: 1 1 0; min-width: 0; }
  .lig__pais { flex: 1 1 100%; }
  .lig__pais .pizarra__select, .lig__pais .desp { flex: 1 1 auto; }
  .ligas-club .lig__zonas { margin-left: 0; }
  .lig2__fichas { grid-template-columns: minmax(0, 1fr); }
}

/* MÁS ARMÓNICO Y MÁS REDONDO (9/10/2026: «que sea todo un poco más
   armónico, más redondo quizás también»). Una sola familia de radios —la
   tarjeta grande, las fichas y los bloques, y píldoras para lo que se
   elige—, bordes más suaves y el mismo aire entre todo. */
.ligas-club .lig2 { border-radius: 22px; }
.lig2__logo { border-radius: 16px; }
.lig2__cifras div { border-radius: 16px; border-color: color-mix(in srgb, var(--line-hairline) 70%, transparent); }
.lig2__campeon { border-radius: 18px; }
.lig2__bloque { border-radius: 16px; border: 0; border-left: 0; background: color-mix(in srgb, var(--bg-raised) 55%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--line-hairline) 60%, transparent); }
.lig2__bloque h4::before { content: ''; flex: none; width: 4px; align-self: stretch; border-radius: 4px; background: var(--bloque-c, var(--line-strong)); }
.lig2__bloque--champions, .lig2__bloque--sube, .lig2__bloque--llegan { --bloque-c: var(--good); }
.lig2__bloque--previa { --bloque-c: color-mix(in srgb, var(--good) 55%, transparent); }
.lig2__bloque--europa, .lig2__bloque--conference, .lig2__bloque--playoff { --bloque-c: var(--verde-600); }
.lig2__bloque--descenso, .lig2__bloque--baja, .lig2__bloque--repechaje { --bloque-c: var(--danger); }
.lig2__bloque h4 .zone-chip { display: none; }
.lig2__fichas li { padding: 4px 8px 4px 4px; border-radius: 99px; background: color-mix(in srgb, var(--bg-base, #000) 35%, transparent); }
.lig2__fecha { border-radius: 16px; }
.lig2__fecha .copa__res { border-radius: 12px; }

/* La tabla: filas con esquinas suaves y la franja de color redondeada. */
.ligas-club .lig2 .copa__tabla { border-collapse: separate; border-spacing: 0 3px; }
.ligas-club .lig2 .copa__tabla tbody td { border-bottom: 0; background: color-mix(in srgb, var(--bg-raised) 35%, transparent); }
.ligas-club .lig2 .copa__tabla tbody td:first-child { border-radius: 12px 0 0 12px; }
.ligas-club .lig2 .copa__tabla tbody td:last-child { border-radius: 0 12px 12px 0; }
.ligas-club .lig2 .copa__tabla tbody tr:hover td { background: color-mix(in srgb, var(--bg-raised) 80%, transparent); }
.ligas-club .lig2 .copa__tabla tbody tr.copa__mia td { background: color-mix(in srgb, var(--accent) 14%, transparent); }
/* EL PUESTO NO SE APOYA EN LA FRANJA. La franja va de 4 a 8 px y el número,
   alineado a la derecha en una columna de 1,6rem, arrancaba a los 5 px en
   cuanto tenía dos cifras: el «13» se leía «|3» (Alberto, 11/10/2026). La
   columna deja lugar a la franja y el número empieza después. */
.ligas-club .lig2 .copa .copa__tabla th:first-child,
.ligas-club .lig2 .copa .copa__tabla td:first-child { width: 2.4rem; padding-left: 14px; }
.ligas-club .lig2 .copa .copa__tabla tr[data-zona] td:first-child { background-image: linear-gradient(var(--zona-c), var(--zona-c)), linear-gradient(color-mix(in srgb, var(--bg-raised) 35%, transparent), color-mix(in srgb, var(--bg-raised) 35%, transparent)); background-size: 4px calc(var(--zona-h, 100%) - 10px), 100% 100%; background-position: 4px center, 0 0; }
.lig2__tit { border-bottom: 0; padding: 0 0 var(--sp-1); }
.lig2__tit::after { content: none; }
.lig2__col--tabla .lig2__tit span { display: inline-flex; align-items: center; gap: 8px; }
.lig2__col--tabla .lig2__tit span::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }

/* Lo que se elige, en píldoras: el país, las divisiones y la confederación. */
.ligas-club .lig__pais .pizarra__select, .ligas-club .lig__pais .desp { border-radius: 99px; }
.ligas-club .lig__mandos .mundo__pasos button { padding: 4px 14px 4px 4px; background: color-mix(in srgb, var(--bg-raised) 40%, transparent); }
.ligas-club .lig__mandos .mundo__pasos li + li::before { content: none; }
.ligas-club .lig__mandos .mundo__pasos button[aria-pressed="true"] { background: color-mix(in srgb, var(--accent) 16%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent); }
.ligas-club .mun2__tabs button { border-radius: 18px; padding-block: 6px 8px !important; }
.ligas-club .mun2__tabs button::after { content: none; }
.ligas-club .mun2__tabs button[aria-selected="true"] { background: color-mix(in srgb, var(--accent) 12%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent); }
.lig2__ir { border-radius: 99px; }

