/* ═══════════════════════════════════════════════════════════════════════════
   Reloj de Ajedrez · Torneos (lista, asistente, rondas, clasificación, cuadro, equipos)
   Solo variables de base.css. Prefijo: tor-. Pensado primero para 360 px.
   ═══════════════════════════════════════════════════════════════════════════ */

.tor-raiz { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tor-cargando { padding: 40px 0; text-align: center; }
.tor-nota { margin: 0; font-size: 13.5px; }

/* ── Lista de torneos ─────────────────────────────────────────────────── */
.tor-rejilla { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.tor-tarjeta {
  display: flex; flex-direction: column; gap: 14px; cursor: pointer; margin: 0 !important; min-width: 0;
  transition: transform var(--transicion), box-shadow var(--transicion), border-color var(--transicion);
  animation: tor-entrar .35s cubic-bezier(.2, .7, .2, 1) both;
}
@keyframes tor-entrar { from { opacity: 0; transform: translateY(10px); } }
.tor-tarjeta:hover { transform: translateY(-2px); border-color: var(--borde-fuerte); box-shadow: var(--sombra-alta); }
.tor-tarjeta:focus-visible { outline: 3px solid var(--acento); outline-offset: 3px; }
.tor-tarjeta-cabeza { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.tor-tarjeta-nombre { font-size: 17px; font-weight: 700; overflow-wrap: anywhere; }
.tor-tarjeta-sub { margin: 2px 0 0; font-size: 13px; }
.tor-emblema {
  flex: none; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
  font-size: 30px; background: var(--acento-suave); color: var(--acento);
}
.tor-progreso { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--texto-suave); }
.tor-progreso > span { flex: none; }
.tor-barra { flex: 1; height: 8px; border-radius: 8px; background: var(--superficie-3); overflow: hidden; }
.tor-barra > i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--acento-2), var(--acento)); transition: width .4s ease; }
.tor-datos { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; min-width: 0; }
.tor-datos > span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; }
.tor-datos .icono { width: 16px; height: 16px; }

/* ── Encabezado del torneo ────────────────────────────────────────────── */
.tor-encabezado { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.tor-encabezado-texto { min-width: 0; }
.tor-nombre { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; overflow-wrap: anywhere; }
.tor-nombre .insignia { font-family: var(--fuente); font-size: 12px; }
.tor-meta { margin: 6px 0 0; font-size: 13.5px; overflow-wrap: anywhere; }
.tor-acciones { flex: none; flex-wrap: nowrap; }
.tor-pestanas { align-self: flex-start; }
.tor-panel { display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* ── Rondas ───────────────────────────────────────────────────────────── */
.tor-rondas-barra {
  display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 6px; margin: 0 -2px;
  scrollbar-width: thin; scroll-snap-type: x proximity; overscroll-behavior-x: contain;
}
.tor-chip-ronda { flex: none; min-height: 40px; padding: 6px 14px; font-size: 14px; scroll-snap-align: start; }
.tor-chip-ronda .icono { width: 16px; height: 16px; }
.tor-chip-ronda.completa:not(.activo) { color: var(--exito); border-color: color-mix(in srgb, var(--exito) 40%, var(--borde)); }
.tor-chip-ronda:disabled { opacity: .45; cursor: not-allowed; }
.tor-punto-vivo { width: 8px; height: 8px; border-radius: 50%; background: var(--aviso); box-shadow: 0 0 0 3px color-mix(in srgb, var(--aviso) 25%, transparent); animation: tor-latir 1.6s ease-in-out infinite; }
.tor-chip-ronda.activo .tor-punto-vivo { background: #fff; }
@keyframes tor-latir { 50% { transform: scale(.7); opacity: .6; } }

.tor-generar { display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; padding: 34px 20px; margin: 0 !important; }
.tor-generar p { max-width: 520px; margin: 0; }
.tor-generar-arte {
  width: 76px; height: 76px; border-radius: 22px; display: grid; place-items: center; flex: none;
  font-size: 46px; background: var(--acento-suave); color: var(--acento);
}
.tor-generar h3 { font-size: 22px; }
.tor-aviso { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 !important; padding: 14px 16px; border-color: color-mix(in srgb, var(--aviso) 50%, var(--borde)); }
.tor-aviso > .icono { color: var(--aviso); }

.tor-ronda { display: flex; flex-direction: column; gap: 12px; }
.tor-ronda-cabeza { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; }
.tor-ronda-titulo { font-size: 19px; }
.tor-ronda-sub { margin: 2px 0 0; font-size: 13px; }
.tor-barra-ronda { flex: none; height: 6px; }

.tor-mesas { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.tor-mesa {
  position: relative; display: flex; flex-direction: column; gap: 10px; min-width: 0;
  padding: 12px 14px 14px; border-radius: var(--radio); background: var(--superficie); border: 1px solid var(--borde); box-shadow: var(--sombra);
}
.tor-mesa.con-resultado { border-color: color-mix(in srgb, var(--exito) 35%, var(--borde)); }
.tor-mesa.con-resultado::before {
  content: ""; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: var(--exito);
}
.tor-mesa.armagedon { border-color: color-mix(in srgb, var(--peligro) 45%, var(--borde)); }
.tor-mesa-cabeza { display: flex; align-items: center; gap: 8px; min-height: 36px; }
.tor-num-mesa {
  flex: none; min-width: 34px; height: 34px; padding: 0 8px; border-radius: 10px; display: inline-grid; place-items: center;
  font-weight: 700; font-size: 14px; background: var(--superficie-3); color: var(--texto-suave);
}
.tor-marcador { font-family: var(--fuente-num); font-variant-numeric: tabular-nums; font-size: 20px; font-weight: 700; color: var(--texto-tenue); white-space: nowrap; }
.tor-marcador.final { color: var(--texto); }
.tor-mini { width: 36px; height: 36px; min-height: 36px; font-size: 12px; }
.tor-mini .icono { width: 18px; height: 18px; }
.tor-mesa-jugadores { display: flex; flex-direction: column; gap: 6px; }
.tor-lado { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 6px 8px; border-radius: 10px; background: var(--superficie-2); }
.tor-lado .pz { flex: none; }
.tor-lado-texto { display: flex; flex-direction: column; min-width: 0; }
.tor-lado-texto b { font-weight: 600; }
.tor-lado-texto small { font-size: 12px; }

.tor-resultados { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.tor-res {
  min-height: 44px; min-width: 0; padding: 4px 2px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--borde); background: var(--superficie-2); color: var(--texto-suave);
  font-family: var(--fuente-num); font-variant-numeric: tabular-nums; font-size: 13px; font-weight: 600; white-space: nowrap;
  transition: background var(--transicion), color var(--transicion), border-color var(--transicion), transform var(--transicion);
}
.tor-res.principal { font-size: 15px; color: var(--texto); }
.tor-res:hover:not(:disabled) { border-color: var(--acento); }
.tor-res:active:not(:disabled) { transform: scale(.95); }
.tor-res[aria-pressed="true"] {
  background: linear-gradient(180deg, var(--acento), var(--acento-2)); color: var(--acento-texto); border-color: transparent;
  box-shadow: 0 3px 10px var(--acento-suave);
}
.tor-res:disabled { cursor: not-allowed; opacity: .55; }
.tor-res[aria-pressed="true"]:disabled { opacity: .85; }
.tor-mesa-pie { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.tor-origen { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; }
.tor-origen .icono { width: 15px; height: 15px; }
.tor-jugar { margin-left: auto; }

.tor-mesa-libre { flex-direction: row; align-items: center; align-self: start; border-style: dashed; box-shadow: none; background: transparent; }
.tor-mesa-libre p { margin: 2px 0 0; font-size: 13px; }

/* encuentros (equipos) y cruces (eliminatoria) */
.tor-encuentro { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: var(--radio-l); background: var(--fondo-2); border: 1px solid var(--borde); }
.tor-encuentro.tarjeta { flex-direction: row; align-items: center; gap: 8px; margin: 0 !important; background: transparent; border-style: dashed; box-shadow: none; }
.tor-encuentro-cabeza {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; font-size: 16px;
}
.tor-encuentro-cabeza .tor-eq:last-child { text-align: right; }
.tor-eq.gana { color: var(--exito); }
.tor-eq-marcador {
  padding: 4px 12px; border-radius: 99px; background: var(--superficie); border: 1px solid var(--borde);
  font-family: var(--fuente-num); font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; color: var(--texto-suave);
}
.tor-eq-marcador.final { color: var(--texto); border-color: var(--acento); }
.tor-desempate { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px; border-radius: var(--radio); background: color-mix(in srgb, var(--aviso) 10%, var(--superficie)); }
.tor-desempate > span { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; }
.tor-pasa { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: 13.5px; }

/* ── Clasificación y tablas ───────────────────────────────────────────── */
.tor-clasif-cabeza { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; }
.tor-clasif-cabeza p { margin: 0; }
.tor-tabla-envoltura { background: var(--superficie); box-shadow: var(--sombra); }
.tor-tabla td, .tor-tabla th { white-space: nowrap; }
.tor-tabla .tor-col-nombre { position: sticky; left: 0; z-index: 1; background: var(--superficie); min-width: 150px; max-width: 260px; white-space: normal; }
.tor-tabla th.tor-col-nombre { z-index: 3; background: var(--superficie-2); }
.tor-tabla tbody tr:hover .tor-col-nombre { background: var(--superficie-2); }
.tor-tabla .tor-col-nombre b { display: block; overflow-wrap: anywhere; }
.tor-tabla .tor-col-nombre small { display: block; font-size: 12px; }
.tor-tabla .tor-col-puntos { font-family: var(--fuente-num); font-size: 15px; color: var(--acento); }
.tor-tabla th.num, .tor-tabla td.num { text-align: center; }
.tor-tabla .tor-col-vtd { color: var(--texto-suave); }
.tor-tabla tr.tor-lider td { background: color-mix(in srgb, var(--oro) 12%, var(--superficie)); }
.tor-tabla tr.tor-lider td:first-child { box-shadow: inset 4px 0 0 var(--oro); font-weight: 700; }
.tor-leyenda { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; font-size: 12.5px; }

.tor-cruzada td.tor-cx { min-width: 40px; font-family: var(--fuente-num); font-variant-numeric: tabular-nums; font-weight: 600; }
.tor-cruzada td.tor-cx.victoria, .tor-cruzada td.tor-cx .victoria { color: var(--exito); }
.tor-cruzada td.tor-cx.tablas, .tor-cruzada td.tor-cx .tablas { color: var(--aviso); }
.tor-cruzada .tor-cx-num { color: var(--texto-tenue); }
.tor-cx-diagonal { background: repeating-linear-gradient(45deg, var(--superficie-3) 0 4px, var(--superficie-2) 4px 8px); }

/* match */
.tor-match {
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px 16px;
  margin: 0 !important; text-align: center;
}
.tor-match-lado { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.tor-match-lado .pieza { font-size: 38px; color: var(--texto-suave); }
.tor-match-lado b { overflow-wrap: anywhere; }
.tor-match-lado.gana .pieza, .tor-match-lado.gana b { color: var(--oro); }
.tor-match-marcador { font-family: var(--fuente-num); font-size: clamp(34px, 9vw, 54px); font-weight: 800; display: flex; gap: 10px; }
.tor-match-marcador span { color: var(--texto-tenue); }
.tor-match-estado { grid-column: 1 / -1; margin: 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }

/* ── Cuadro de eliminatoria ───────────────────────────────────────────── */
.tor-arbol {
  display: flex; gap: 22px; overflow-x: auto; padding: 4px 4px 12px; overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
}
.tor-arbol-col { flex: 0 0 auto; width: min(230px, 78vw); display: flex; flex-direction: column; gap: 8px; scroll-snap-align: start; }
.tor-arbol-fase { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--texto-suave); text-align: center; }
.tor-arbol-cajas { flex: 1; display: flex; flex-direction: column; justify-content: space-around; gap: 12px; }
.tor-arbol-cruce {
  position: relative; display: flex; flex-direction: column; border-radius: var(--radio-s);
  background: var(--superficie); border: 1px solid var(--borde); box-shadow: var(--sombra);
}
.tor-arbol-col:not(:last-child) .tor-arbol-cruce::after {
  content: ""; position: absolute; right: -23px; top: 50%; width: 22px; height: 2px; background: var(--borde-fuerte);
}
.tor-arbol-cruce.vacio-cruce { border-style: dashed; box-shadow: none; background: transparent; }
.tor-arbol-cruce.gana { border-color: var(--oro); box-shadow: 0 0 0 3px color-mix(in srgb, var(--oro) 25%, transparent); }
.tor-arbol-jug { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 10px; min-width: 0; font-size: 14px; }
.tor-arbol-jug + .tor-arbol-jug { border-top: 1px solid var(--borde); }
.tor-arbol-jug.gana { font-weight: 700; }
.tor-arbol-jug.gana b { color: var(--exito); }
.tor-arbol-jug.pierde { color: var(--texto-tenue); }
.tor-arbol-jug .icono { color: var(--oro); }
.tor-semilla {
  flex: none; min-width: 26px; height: 22px; padding: 0 5px; border-radius: 6px; display: inline-grid; place-items: center;
  font-size: 11.5px; font-weight: 700; background: var(--superficie-3); color: var(--texto-suave);
}

/* ── Equipos ──────────────────────────────────────────────────────────── */
.tor-equipos { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.tor-equipo { margin: 0 !important; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tor-equipo-cabeza { display: flex; align-items: center; gap: 10px; min-width: 0; }
.tor-equipo-cabeza h3 { font-size: 17px; }
.tor-equipo-cabeza p { margin: 2px 0 0; font-size: 12.5px; }
.tor-equipo-pts { display: flex; flex-direction: column; align-items: center; min-width: 42px; }
.tor-equipo-pts b { font-family: var(--fuente-num); font-size: 20px; }
.tor-equipo-pts small { font-size: 11px; color: var(--texto-tenue); }
.tor-equipo-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.tor-equipo-lista li { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 8px; border-radius: 10px; background: var(--superficie-2); min-width: 0; }
.tor-equipo-lista li.reserva { opacity: .75; background: transparent; border: 1px dashed var(--borde); }

/* ── Asistente (modal) ────────────────────────────────────────────────── */
.tor-modal .modal-titulo .icono { color: var(--acento); }
.tor-asistente { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tor-pasos { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; counter-reset: paso; }
.tor-pasos li {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px;
  background: var(--superficie-2); color: var(--texto-tenue); font-size: 13.5px;
}
.tor-pasos li > span {
  flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  background: var(--superficie-3); font-weight: 700; font-size: 13px;
}
.tor-pasos li b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.tor-pasos li.activo { background: var(--acento-suave); color: var(--texto); }
.tor-pasos li.activo > span { background: var(--acento); color: var(--acento-texto); }
.tor-pasos li.hecho { color: var(--texto-suave); }
.tor-pasos li.hecho > span { background: var(--exito); color: #fff; }
.tor-paso { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.tor-form-rejilla { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.tor-campo-ancho { grid-column: 1 / -1; }
.tor-obligatorio { color: var(--peligro); }
.tor-num-campo { max-width: 160px; }
.tor-error { margin: 0; padding: 10px 14px; border-radius: 10px; background: rgba(229, 72, 77, .12); color: var(--peligro); font-weight: 600; }
.tor-advertencia { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: var(--aviso); }
.tor-sub { font-size: 15px; margin-top: 4px; }
.tor-asistente-pie { position: sticky; bottom: -22px; margin: 0 -4px; padding: 12px 4px 4px; background: var(--superficie); border-top: 1px solid var(--borde); }

.tor-formatos { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.tor-formato {
  position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; cursor: pointer; min-height: 72px;
  border: 2px solid var(--borde); border-radius: var(--radio); background: var(--superficie-2);
  transition: border-color var(--transicion), box-shadow var(--transicion), background var(--transicion);
}
.tor-formato input { position: absolute; opacity: 0; pointer-events: none; }
.tor-formato:hover { border-color: var(--borde-fuerte); }
.tor-formato.activo, .tor-formato:has(input:checked) { border-color: var(--acento); background: color-mix(in srgb, var(--acento) 8%, var(--superficie-2)); box-shadow: 0 0 0 4px var(--acento-suave); }
.tor-formato:has(input:focus-visible) { outline: 3px solid var(--acento); outline-offset: 2px; }
.tor-formato b { display: block; }
.tor-formato small { display: block; font-size: 12.5px; line-height: 1.4; margin-top: 2px; }
.tor-formato-emblema { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 26px; background: var(--superficie-3); color: var(--acento); }
.tor-opciones { margin: 0 !important; display: flex; flex-direction: column; gap: 12px; border-radius: var(--radio); }
.tor-opciones p { margin: 0; font-size: 13px; }

.tor-part-cabeza { display: flex; align-items: flex-end; gap: 10px 16px; flex-wrap: wrap; }
.tor-part-cabeza p { margin: 0; }
.tor-part-cabeza p b { font-size: 20px; font-family: var(--fuente-num); }
.tor-rapido { display: flex; gap: 8px; flex-wrap: wrap; }
.tor-rapido .entrada { flex: 1 1 120px; width: auto; min-width: 0; }
.tor-rapido .tor-rapido-elo { flex: 0 1 80px; }
.tor-rapido .btn { flex: none; }
.tor-buscar-fila { gap: 6px; }
.tor-buscar-fila .reg-buscar { min-width: 0; flex: 1 1 160px; }
.tor-lista-jug {
  display: flex; flex-direction: column; max-height: min(42vh, 420px); overflow: auto; overscroll-behavior: contain;
  border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie-2);
}
.tor-lista-vacia { margin: 0; padding: 18px; text-align: center; }
.tor-jug-fila {
  display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 12px; cursor: pointer; min-width: 0;
  border-bottom: 1px solid var(--borde); transition: background var(--transicion);
}
.tor-jug-fila:last-child { border-bottom: 0; }
.tor-jug-fila:hover { background: var(--superficie-3); }
.tor-jug-fila.seleccionado { background: var(--acento-suave); }
.tor-jug-fila input[type="checkbox"] { flex: none; width: 22px; height: 22px; accent-color: var(--acento); cursor: pointer; }
.tor-jug-avatar { flex: none; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-size: 22px; background: var(--superficie); color: var(--acento); }
.tor-jug-texto { display: flex; flex-direction: column; min-width: 0; }
.tor-jug-texto small { font-size: 12px; }
.tor-jug-elo { flex: none; font-weight: 600; color: var(--texto-suave); }

.tor-equipos-editor { display: flex; flex-direction: column; gap: 10px; }
.tor-equipos-editor h4 { display: flex; align-items: center; gap: 6px; font-size: 15px; }
.tor-equipos-rejilla { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.tor-equipo-caja { display: flex; flex-direction: column; gap: 8px; padding: 10px; border-radius: var(--radio); border: 1px solid var(--borde); background: var(--superficie-2); min-width: 0; }
.tor-equipo-caja.sueltos { border-style: dashed; }
.tor-equipo-caja .fila { flex-wrap: nowrap; }
.tor-equipo-caja .tor-equipo-lista li { background: var(--superficie); padding-right: 4px; }
.tor-mover { flex: 0 1 118px; width: auto; min-height: 36px; padding: 4px 8px; font-size: 13px; }

.tor-desemps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tor-desemp {
  display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 8px 10px; border-radius: var(--radio);
  border: 1px solid var(--borde); background: var(--superficie-2); opacity: .7;
}
.tor-desemp.activo { opacity: 1; border-color: color-mix(in srgb, var(--acento) 40%, var(--borde)); }
.tor-desemp small { display: block; font-size: 12.5px; }
.tor-desemp .insignia { vertical-align: 1px; }
.tor-desemp-marca { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; min-height: 44px; }
.tor-desemp-marca input { width: 22px; height: 22px; accent-color: var(--acento); cursor: pointer; }
.tor-desemp-orden { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 12.5px; background: var(--acento); color: var(--acento-texto); }
.tor-desemp-orden:empty { background: transparent; }
.tor-desemp-mover { display: flex; gap: 4px; }
.tor-resumen { display: flex; align-items: center; gap: 14px; margin: 0 !important; }
.tor-resumen p { margin: 4px 0 0; }
.tor-resumen .tor-generar-arte { width: 60px; height: 60px; font-size: 36px; border-radius: 18px; }
.tor-retirados { max-height: 30vh; }
.tor-campo-rondas { max-width: 260px; }

/* ── Pantallas angostas ───────────────────────────────────────────────── */
@media (max-width: 700px) {
  .tor-encabezado { flex-wrap: wrap; }
  .tor-encabezado-texto { order: 3; flex-basis: 100%; }
  .tor-encabezado .reg-acciones.tor-acciones { width: auto; margin-left: auto; flex: none; }
  .tor-pestanas { align-self: stretch; }
  .tor-pestanas .pestana { flex: 1 1 0; min-width: max-content; padding: 8px 10px; }
  .tor-ronda-cabeza .reg-acciones { width: 100%; }
  .tor-ronda-cabeza .reg-acciones .btn { flex: 1; }
  .tor-clasif-cabeza .reg-acciones { width: 100%; }
  .tor-clasif-cabeza .reg-acciones .btn { flex: 1; }
  .tor-pasos li { flex: 0 0 auto; padding: 6px; }
  .tor-pasos li b { display: none; }
  .tor-pasos li.activo { flex: 1; }
  .tor-pasos li.activo b { display: inline; }
  .tor-asistente-pie { bottom: calc(-16px - var(--seguro-abajo, 0px)); }
  .tor-lista-jug { max-height: none; overflow: visible; }
  .tor-buscar-fila .reg-buscar { flex-basis: 100%; }
  .tor-buscar-fila > .btn { flex: 1 1 0; }
  .tor-encuentro { padding: 10px 8px; }
  .tor-encuentro-cabeza { grid-template-columns: auto minmax(0, 1fr) auto; font-size: 15px; }
  .tor-encuentro-cabeza .tor-eq:last-child { grid-column: 2 / 4; text-align: left; }
  .tor-encuentro-cabeza .tor-eq-marcador { grid-row: 1; grid-column: 3; }
  .tor-desempate .btn { flex: 1 1 auto; }
  .tor-tabla .tor-col-nombre { min-width: 128px; max-width: 170px; }
  .tor-jugar { flex: 1 1 100%; }
}
@media (max-width: 420px) {
  .tor-pestanas .pestana .icono { display: none; }
  .tor-resultados { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tor-mesa { padding: 10px 10px 12px; }
  .tor-tarjeta-cabeza .insignia { display: none; }
  .tor-match { gap: 6px; }
  .tor-match-lado .pieza { font-size: 30px; }
}

@media (prefers-reduced-motion: reduce) {
  .tor-tarjeta, .tor-punto-vivo { animation: none; }
}

/* ── Impresión: solo el encabezado del torneo y la tabla ──────────────── */
.tor-impresion { display: none; }
@media print {
  @page { margin: 14mm 12mm; }
  html.tor-imprimiendo, html.tor-imprimiendo body {
    height: auto !important; overflow: visible !important; background: #fff !important; color: #000 !important;
  }
  html.tor-imprimiendo body > *:not(.tor-impresion) { display: none !important; }
  html.tor-imprimiendo .tor-impresion { display: block; color: #000; font: 10.5pt/1.35 var(--fuente); }
  .tor-impresion-cabeza { margin-bottom: 10pt; border-bottom: 2pt solid #000; padding-bottom: 6pt; }
  .tor-impresion-cabeza h1 { font: 700 18pt/1.2 var(--fuente-titulo); margin: 0 0 2pt; }
  .tor-impresion-cabeza p { margin: 0; font-size: 9.5pt; color: #333; }
  .tor-impresion-cabeza h2 { font-size: 13pt; margin: 8pt 0 0; }
  .tor-impresion .tabla-envoltura { overflow: visible; border: 0; box-shadow: none; background: none; border-radius: 0; }
  .tor-impresion table { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
  .tor-impresion th, .tor-impresion td {
    position: static !important; background: none !important; color: #000 !important; box-shadow: none !important;
    border: .6pt solid #999; padding: 3pt 5pt; white-space: nowrap;
  }
  .tor-impresion th { font-size: 8.5pt; text-transform: uppercase; letter-spacing: .3pt; background: #eee !important; }
  .tor-impresion td.tor-col-nombre { white-space: normal; }
  .tor-impresion td.tor-col-nombre small { display: block; color: #555 !important; font-size: 8pt; }
  .tor-impresion tr { break-inside: avoid; }
  .tor-impresion thead { display: table-header-group; }
  .tor-impresion .insignia { background: none !important; color: #000 !important; padding: 0; font-weight: 700; }
  .tor-impresion .icono { display: none; }
  .tor-impresion .tor-leyenda { margin-top: 8pt; font-size: 8.5pt; color: #333; }
  .tor-impresion-pie { margin-top: 12pt; font-size: 8pt; color: #666; text-align: right; }
}
