/* ============================================================================
   DASHBOARD DEL BOT — LOS MÓDULOS DE VERDAD (16 oct 2026)
   ============================================================================
   Lo que añaden el login, las pantallas de «no puedes entrar» y los módulos
   con datos reales (Economía, Niveles, Misiones, Sorteos) a dashboard.css.
   Las mismas reglas (skill diseno-trufas y /muestra): solo tokens, `.caja`
   para lo grande y opaco, el aro `--filo-*` del escalón de su alto en un
   ::after para lo pequeño, nunca `border` con `clip-path`, y nada se mueve
   con prefers-reduced-motion (lo apaga el final de dashboard.css).
   ========================================================================== */

/* ---------- CARGANDO Y LOS FALLOS DE CARGA ---------- */
.cargando-pagina,.cargando{padding:var(--esp-bloque) 0;color:var(--texto-3);font-size:var(--tipo-descripcion)}
.cargando-pagina{text-align:center}
.fallo-carga{max-width:32rem;margin:var(--esp-bloque) auto;padding:var(--esp-caja);display:flex;flex-direction:column;gap:var(--esp-3);align-items:flex-start;color:var(--texto-2)}
.fallo-carga-titulo{font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-dato);color:var(--texto-1)}

.esqueleto{display:flex;flex-direction:column;gap:var(--esp-rejilla)}
.esqueleto i{display:block;background:var(--velo-1);clip-path:var(--bevel-sm)}
.esq-pestanas{display:flex;gap:var(--esp-2)}
.esq-pestanas i{width:6.5rem;height:2.5rem}
.esq-heroe{height:6rem}
.esq-rejilla{display:grid;gap:var(--esp-rejilla);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.esq-rejilla i{height:10rem}
@media (prefers-reduced-motion:no-preference){
  .esqueleto i{animation:latido 1.2s ease-in-out infinite alternate}
}

.bloque-error{display:flex;gap:var(--esp-4);align-items:flex-start;padding:var(--esp-tarjeta);--filo-color:var(--gris-2);--caja-fondo:var(--gris-1)}
.bloque-error-ico{width:1.75rem;height:1.75rem;color:var(--gris-3);flex:none}
.bloque-error-txt{display:flex;flex-direction:column;gap:var(--esp-3);align-items:flex-start;color:var(--texto-2);font-size:var(--tipo-descripcion)}

/* ---------- LAS PANTALLAS DE «NO PUEDES ENTRAR» ---------- */
.bloqueo{display:flex;justify-content:center;padding:var(--esp-bloque) 0}
.bloqueo-caja{width:min(100%,36rem);padding:var(--esp-caja);display:flex;flex-direction:column;align-items:flex-start;gap:var(--esp-3);--caja-fondo:var(--surface)}
.bloqueo-ico{width:2.25rem;height:2.25rem;color:var(--yellow)}
.bloqueo-titulo{font-family:var(--fuente-display);font-weight:800;text-transform:uppercase;font-size:var(--tipo-titulo);line-height:.9;overflow-wrap:anywhere}
.bloqueo-texto{font-size:var(--tipo-entradilla);color:var(--texto-2)}
.bloqueo-pie{font-size:var(--tipo-descripcion);color:var(--texto-3)}
.bloqueo-codigo{font-family:ui-monospace,monospace;font-size:var(--tipo-leyenda);color:var(--texto-1);background:var(--velo-2);padding:var(--esp-2) var(--esp-3);overflow-wrap:anywhere;max-width:100%}
.bloqueo-botones{display:flex;flex-wrap:wrap;gap:var(--esp-3);margin-top:var(--esp-3)}
.bloqueo-en-modulo{margin-top:var(--esp-rejilla)}
.entrada-error{margin-top:var(--esp-rejilla)}
.servidores-nota{margin-top:var(--esp-bloque)}
.cab-avatar{position:relative;overflow:hidden}
.cab-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- LA CABECERA DEL MÓDULO: «Solo lectura» y el manual ---------- */
.mod-cab-mandos{display:flex;flex-wrap:wrap;align-items:center;gap:var(--esp-2)}
.solo-lectura{display:inline-flex;align-items:center;gap:var(--esp-1)}
.manual-boton{gap:var(--esp-2)}
.manual-boton svg{width:1.15em;height:1.15em;flex:none}
.manual-boton.es-inactivo{opacity:.4;cursor:default}

/* EL MANUAL: el <dialog> lateral de manual.js (copia del panel). */
.manual{position:fixed;inset:0 0 0 auto;margin:0;width:min(44rem,calc(100vw - 4rem));max-width:none;height:100%;max-height:none;padding:0;border:0;
  --caja-fondo:var(--surface);color:var(--texto-1);flex-direction:column}
.manual[open]{display:flex}
.manual::backdrop{background:rgba(23,17,13,.72)}
.manual-cabeza{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--esp-4);padding:var(--esp-rejilla) var(--esp-caja);border-bottom:1px solid var(--line)}
.manual-antetitulo{margin-bottom:var(--esp-2)}
.manual-titulo{font-family:var(--fuente-display);font-weight:800;text-transform:uppercase;font-size:var(--tipo-subtitulo);line-height:.95}
.manual-cerrar{gap:var(--esp-2);flex:none}
.manual-cerrar svg{width:1.1em;height:1.1em}
.manual-cuerpo{flex:1;overflow-y:auto;padding:0 var(--esp-caja) var(--esp-caja);font-size:var(--tipo-descripcion);color:var(--texto-2);line-height:1.6}
.manual-cuerpo:focus{outline:none}
.manual-cuerpo section{padding-top:var(--esp-bloque);scroll-margin-top:var(--esp-4)}
.manual-cuerpo section:first-of-type{padding-top:var(--esp-4)}
.manual-cuerpo h3{font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-dato);color:var(--texto-1);margin-bottom:var(--esp-3);line-height:1.1}
.manual-cuerpo h3 .manual-num{color:var(--yellow);margin-right:.35em}
.manual-cuerpo h4{font-weight:600;color:var(--texto-1);margin:var(--esp-4) 0 var(--esp-2)}
.manual-cuerpo p{margin-bottom:var(--esp-3);max-width:62ch}
.manual-cuerpo ul,.manual-cuerpo ol{margin:0 0 var(--esp-4) 1.2rem;max-width:62ch}
.manual-cuerpo ul{list-style:disc}
.manual-cuerpo ol{list-style:decimal}
.manual-cuerpo li{margin-bottom:var(--esp-2)}
.manual-cuerpo strong{font-weight:600;color:var(--texto-1)}
.manual-cuerpo em{font-style:normal;color:var(--yellow)}
.manual-cuerpo code{font-family:ui-monospace,monospace;font-size:.92em;background:var(--velo-2);padding:0 .3em;color:var(--texto-1)}
.manual-cuerpo a{color:var(--yellow);text-decoration:underline;text-underline-offset:3px}
.manual-cuerpo .manual-indice{list-style:none;margin:var(--esp-4) 0 0;padding:0;border-top:1px solid var(--linea-suave)}
.manual-cuerpo .manual-indice li{margin:0;border-bottom:1px solid var(--linea-suave)}
.manual-cuerpo .manual-indice a{display:flex;gap:var(--esp-3);padding:var(--esp-2) 0;color:var(--texto-2);text-decoration:none}
.manual-cuerpo .manual-indice a span{color:var(--texto-3);font-variant-numeric:tabular-nums}
.manual-cuerpo .manual-indice a:hover{color:var(--texto-1)}
.manual-tabla{overflow-x:auto;margin:var(--esp-2) 0 var(--esp-4)}
.manual-tabla table{width:100%;min-width:30rem;border-collapse:collapse}
.manual-tabla th{text-align:left;font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3);padding:var(--esp-2);border-bottom:1px solid var(--line)}
.manual-tabla td{padding:var(--esp-2);border-bottom:1px solid var(--linea-suave);vertical-align:top}
.manual-tabla td:first-child{color:var(--texto-1);font-weight:500}
.manual-nota{padding:var(--esp-4);margin:var(--esp-2) 0 var(--esp-4);--caja-fondo:var(--surface-2)}
.manual-nota>*:last-child{margin-bottom:0}
.manual-estado{display:flex;flex-direction:column;align-items:flex-start;gap:var(--esp-4);padding-top:var(--esp-bloque)}
@media (max-width:640px){
  .manual{width:calc(100vw - 2.5rem)}
  .manual-cabeza,.manual-cuerpo{padding-inline:var(--esp-4)}
  .manual-cerrar span,.manual-boton-texto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}

/* ---------- CAMPOS: deshabilitado, inválido ---------- */
.control.es-deshabilitado{opacity:.55}
.control.es-deshabilitado *{cursor:not-allowed}
.campo.es-invalido .control{--filo-color:var(--gris-3);background:var(--velo-alerta)}
.campo-error{font-size:var(--tipo-leyenda);color:var(--texto-1);background:var(--velo-alerta);padding:var(--esp-2) var(--esp-3)}
.campo-error[hidden]{display:none}
.deslizador.con-cero input{background:linear-gradient(to right,var(--line) 0,var(--line) min(var(--cero),var(--lleno)),var(--yellow) min(var(--cero),var(--lleno)),var(--yellow) max(var(--cero),var(--lleno)),var(--line) max(var(--cero),var(--lleno)))}
.deslizador-cifra.es-negativo,.es-negativo{color:var(--gris-3)}
.segmento:disabled,.interruptor:disabled{opacity:.5;cursor:not-allowed}

/* ---------- AVISOS DE ERROR (se quedan hasta cerrarlos) ---------- */
.aviso{pointer-events:auto}
.aviso-texto{flex:1;min-width:0}
.aviso-error{--caja-fondo:var(--gris-1);--filo-color:var(--gris-2)}
.aviso-error .aviso-ico{color:var(--gris-4)}
.aviso-cerrar{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;border:0;background:none;color:var(--texto-3);cursor:pointer}
.aviso-cerrar:hover{color:var(--texto-1)}
.dialogo-pregunta{font-size:var(--tipo-subtitulo)}
.btn-peligro{color:var(--texto-1)}

/* ---------- EL BUSCADOR Y LAS PERSONAS ---------- */
.buscador{display:flex;gap:var(--esp-3);align-items:center;max-width:36rem}
.buscador-caja{flex:1}
.buscador-ico{margin-left:var(--esp-3);color:var(--texto-3)}
.personas{display:grid;gap:var(--esp-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));margin-top:var(--esp-4)}
.persona{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--esp-3);align-items:center;padding:var(--esp-3) var(--esp-4);--caja-fondo:var(--surface);transition:transform .2s var(--curva)}
.persona:hover{--filo-color:var(--yellow)}
.persona:hover .persona-flecha{transform:translateX(3px);color:var(--yellow)}
.persona-quien{display:flex;flex-direction:column;min-width:0}
.persona-nombre{font-weight:500;color:var(--texto-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.persona-id{font-size:var(--tipo-leyenda);color:var(--texto-3);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}
.persona-dato{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--tipo-leyenda);color:var(--texto-3)}
.persona-dato b{font-family:var(--fuente-display-e);font-weight:700;font-size:var(--tipo-dato);color:var(--texto-1);line-height:1}
.persona-estado{display:inline-flex;gap:var(--esp-1);align-items:center}
.persona-flecha{color:var(--texto-3);transition:transform .2s var(--mov-rebote)}
.avatar{position:relative;display:inline-grid;place-items:center;flex:none;width:2.25rem;height:2.25rem;border-radius:50%;overflow:hidden;
  background:var(--brown);color:var(--texto-1);font-weight:600;font-size:var(--tipo-descripcion)}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.avatar-grande{width:4rem;height:4rem;font-size:var(--tipo-dato)}
.volver-a{display:inline-flex;align-items:center;gap:var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-3);align-self:flex-start}
.volver-a:hover{color:var(--texto-1)}
.ficha-cab{display:flex;align-items:center;gap:var(--esp-4);min-width:0}
.ficha-nombre{font-family:var(--fuente-display);font-weight:800;text-transform:uppercase;font-size:var(--tipo-titulo);line-height:.9;overflow-wrap:anywhere}
.ficha-id{display:flex;align-items:center;gap:var(--esp-2);margin-top:var(--esp-2);font-size:var(--tipo-leyenda);color:var(--texto-3)}
.ficha-id code{font-family:ui-monospace,monospace}
.medidor-cifra{display:flex;align-items:baseline;gap:var(--esp-2);color:var(--texto-3);font-size:var(--tipo-descripcion)}
.medidor-cifra b{font-family:var(--fuente-display);font-weight:800;font-size:var(--tipo-cifra);line-height:.9;color:var(--texto-1)}
.medidor{height:.5rem;background:var(--velo-2);overflow:hidden}
.medidor i{display:block;height:100%;width:var(--w);background:var(--yellow);transition:width .6s var(--curva)}
.nivel-fila{display:flex;align-items:center;gap:var(--esp-rejilla);flex-wrap:wrap}
.nivel-sello{display:flex;flex-direction:column;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;background:var(--yellow);color:var(--sobre-amarillo);clip-path:var(--bevel)}
.nivel-sello span{font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.nivel-sello b{font-family:var(--fuente-display-e);font-weight:800;font-size:var(--tipo-numeral);line-height:1}
.ajuste-cuerpo{display:flex;flex-direction:column;gap:var(--esp-4)}
.ajuste-cuerpo .btn-primary{align-self:flex-start}
.previa-ajuste{font-size:var(--tipo-descripcion);color:var(--texto-2);min-height:1.5em}
.previa-ajuste b{color:var(--texto-1);font-weight:600}

/* El libro. */
.movs{display:flex;flex-direction:column}
.mov{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--esp-3);align-items:center;padding:var(--esp-3) 0;border-top:1px solid var(--line)}
.mov:first-child{border-top:0}
.mov-ico{width:1.4rem;height:1.4rem;color:var(--yellow)}
.mov.es-negativo .mov-ico{color:var(--gris-3)}
.mov-que{display:flex;flex-direction:column;min-width:0}
.mov-titulo{font-size:var(--tipo-descripcion);color:var(--texto-1);overflow-wrap:anywhere}
.mov-meta{font-size:var(--tipo-leyenda);color:var(--texto-3)}
.mov-monto{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}
.mov-monto b{font-weight:600;color:var(--texto-1)}
.mov.es-negativo .mov-monto b{color:var(--gris-3)}
.mov-monto small{font-size:var(--tipo-etiqueta);color:var(--texto-3)}

/* ---------- CHIPS Y PIEZAS PEQUEÑAS ---------- */
.chips{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center}
.chip{position:relative;display:inline-flex;align-items:center;gap:var(--esp-2);padding:var(--esp-1) var(--esp-3);min-height:1.75rem;
  font-size:var(--tipo-leyenda);color:var(--texto-2);background:var(--velo-1);clip-path:var(--bevel-xs);--filo-color:var(--line)}
.chip .ico{width:1.05rem;height:1.05rem;color:var(--texto-3)}
.chip b{font-weight:600;color:var(--texto-1)}
.chip small{color:var(--texto-3)}
.chip.es-vivo{color:var(--texto-1)}
.chip.es-vivo .ico,.chip.es-racha .ico{color:var(--yellow)}
.chip.es-apagado{color:var(--texto-3);background:transparent}
.chip.es-falta{color:var(--texto-1);background:var(--velo-alerta);--filo-color:var(--gris-2)}
.chip-boton{border:0;cursor:pointer;font-family:inherit}
.chip-boton[aria-pressed="true"]{background:var(--velo-vivo);color:var(--texto-1);--filo-color:var(--yellow)}
@supports (clip-path:polygon(evenodd,0 0,1px 1px,0 1px)){
  .chip::after{content:'';position:absolute;inset:0;pointer-events:none;clip-path:var(--filo-xs);background:var(--filo-color)}
  .chip-boton:focus-visible{outline:none;--filo-color:var(--yellow)}
  .chip-boton:focus-visible::after{clip-path:var(--filo-foco-xs)}
}
.rol-punto{display:inline-block;width:.6rem;height:.6rem;flex:none;border-radius:50%;background:var(--rol,var(--texto-3))}
.rol-punto.sin-color{background:transparent;box-shadow:inset 0 0 0 1px var(--texto-3)}
.titulo-rol{display:inline-flex;align-items:center;gap:var(--esp-2)}
.tarjeta-titulo .rol-punto{margin-right:var(--esp-2);vertical-align:.15em}
.nota-bot{display:flex;align-items:flex-start;gap:var(--esp-2);font-size:var(--tipo-leyenda);color:var(--texto-2);background:var(--velo-1);padding:var(--esp-2) var(--esp-3)}
.nota-bot .ico{color:var(--texto-3);margin-top:.1em}
.chip-juego{display:inline-flex;align-items:center;gap:var(--esp-2);border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.chip-juego .ico{color:var(--yellow)}
.chip-quitable.es-apagado{color:var(--texto-3)}
.chip-quitable.es-apagado .chip-juego .ico{color:var(--texto-3)}
.chip-enlace code{font-family:ui-monospace,monospace;font-size:var(--tipo-leyenda)}
.chip-enlace:hover{color:var(--yellow)}
.tarjeta-acciones{display:flex;flex-wrap:wrap;gap:var(--esp-2);align-items:center}
.fila-entre{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);flex-wrap:wrap}
.emoji-op.no-disponible{opacity:.45}
.emoji-op:disabled{cursor:not-allowed}
.emoji-op .ico{width:1.4rem;height:1.4rem;color:var(--texto-3)}
.boton-icono .ico{margin:0}

/* ---------- RESUMEN, CIFRAS Y GRÁFICAS ---------- */
.heroe-fila{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--esp-rejilla);flex-wrap:wrap}
.heroe{display:flex;align-items:center;gap:var(--esp-4);min-width:0}
.heroe-emoji{display:grid;place-items:center;width:4rem;height:4rem;background:var(--surface);clip-path:var(--bevel);font-size:var(--tipo-cifra)}
.heroe-emoji .ico{width:2rem;height:2rem;color:var(--yellow)}
.heroe-emoji .emoji-grande{width:2.5rem;height:2.5rem;font-size:2.25rem}
.heroe-cifra{display:block;font-family:var(--fuente-display);font-weight:800;font-size:var(--tipo-cifra);line-height:.9;font-variant-numeric:tabular-nums}
.heroe-nombre{display:block;margin-top:var(--esp-1);font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3)}
.cifras-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.top-enlace{transition:color .15s}
.top-enlace:hover .top-nombre{color:var(--yellow)}
.top-saldo .emoji{width:1.1em;height:1.1em}
.barras{display:grid;gap:2px;height:9rem;align-items:stretch}
.barras-col{display:grid;grid-template-rows:1fr auto;min-width:0}
.barras-zona{display:flex;align-items:flex-end}
.barras-zona i{display:block;width:100%;height:var(--h);background:var(--yellow);min-height:1px}
.barras-col.con-rol .barras-zona i{background:var(--yellow-alto);box-shadow:inset 0 3px 0 var(--cream)}
.barras-col:hover .barras-zona i{background:var(--yellow-alto)}
.barras-eje{text-align:center;font-size:var(--tipo-etiqueta);color:var(--texto-3);padding-top:var(--esp-1);overflow:hidden}
.leyenda-rol i{display:inline-block;width:.6rem;height:.6rem;background:var(--yellow-alto);box-shadow:inset 0 2px 0 var(--cream);vertical-align:-.05em}
.estado-bot.es-gris .estado-punto{background:var(--gris-3);animation:none}
.mini-datos-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mini-datos-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.mini-datos small{font-family:'Poppins',sans-serif;font-weight:400;font-size:var(--tipo-leyenda);color:var(--texto-3);text-transform:none;letter-spacing:0}
.mini-datos .es-fuera{opacity:.45}
.sim-total{display:flex;align-items:baseline;gap:var(--esp-3);flex-wrap:wrap}
.sim-total-cifra{font-family:var(--fuente-display);font-weight:800;font-size:var(--tipo-cifra);line-height:.9;color:var(--yellow);font-variant-numeric:tabular-nums}
.sim-total span{font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3)}

/* La línea de la inactividad. */
.linea{display:flex;flex-direction:column;gap:var(--esp-2)}
.linea svg{width:100%;height:5rem;display:block}
.linea-area{fill:var(--velo-vivo)}
.linea-trazo{fill:none;stroke:var(--yellow);stroke-width:2}
.linea-corte{stroke:var(--texto-3);stroke-width:1;stroke-dasharray:3 3}
.linea-etq{display:flex;justify-content:space-between;gap:var(--esp-3);font-size:var(--tipo-leyenda);color:var(--texto-3)}
.linea-etq b{font-family:var(--fuente-display-e);font-weight:800;font-size:var(--tipo-dato);color:var(--texto-1);margin-right:var(--esp-1)}
.linea-etq b.es-negativo{color:var(--gris-3)}
.modo-dice{display:flex;align-items:center;gap:var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-2)}
.modo-dice .ico{color:var(--yellow)}

/* Canales con su ±%. */
.canal-fila-eco{grid-template-columns:minmax(0,1fr) 8rem minmax(9rem,14rem) auto}
.canal-txt{display:flex;flex-direction:column;min-width:0}
.canal-txt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.canal-txt small{font-size:var(--tipo-etiqueta);color:var(--texto-3)}
.canal-estado[aria-pressed]{font-family:inherit}

/* La curva y su tabla. */
.formula{font-size:var(--tipo-descripcion);color:var(--texto-2)}
.formula b{font-weight:600;color:var(--texto-1)}
.tabla-envol{overflow-x:auto;padding:var(--esp-2) var(--esp-4)}
.tabla{width:100%;min-width:24rem;border-collapse:collapse;font-size:var(--tipo-descripcion)}
.tabla th{text-align:left;font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3);padding:var(--esp-2);border-bottom:1px solid var(--line)}
.tabla td{padding:var(--esp-2);border-bottom:1px solid var(--linea-suave);font-variant-numeric:tabular-nums;color:var(--texto-2)}
.tabla .tabla-nivel{font-family:var(--fuente-display-e);font-weight:700;color:var(--texto-1)}
.tabla .tabla-paso{color:var(--texto-3)}
.tabla tr.con-rol td{background:var(--velo-vivo)}
.premio-cuerpo{display:flex;flex-direction:column;gap:var(--esp-3);min-width:0}

/* ---------- MISIONES ---------- */
.grupo{display:flex;flex-direction:column;gap:var(--esp-4)}
.grupo+.grupo{margin-top:var(--esp-bloque)}
.grupo-cab{display:flex;align-items:center;gap:var(--esp-3);padding-bottom:var(--esp-3);border-bottom:1px solid var(--line)}
.grupo-titulo{display:flex;align-items:center;gap:var(--esp-2);flex:1;font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-dato);line-height:1}
.grupo-titulo .ico{color:var(--yellow)}
.estado-terminadas,.estado-archivadas{--caja-fondo:var(--ink)}
.es-completada{--filo-color:var(--yellow)}
.editor-bloque{min-width:0}
/* Un <fieldset> por accesibilidad (agrupa y nombra), pero sin su dibujo: el
   borde lo pone .caja, y la <legend> flotada deja de ir montada en el borde
   (se comía el contorno de arriba). */
fieldset.editor-bloque{border:0;margin:0;min-inline-size:0}
fieldset.editor-bloque>legend{float:left;width:100%;margin:0}
fieldset.editor-bloque>legend+*{clear:both}
.editor-titulo{display:inline-flex;align-items:center;gap:var(--esp-2);padding:0;font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-dato);line-height:1;color:var(--texto-1)}
.editor-titulo .ico{color:var(--yellow)}
.editor-bloque.es-bloqueado .campo{opacity:.7}
.dura{align-items:end}
.dc-etq{margin-left:var(--esp-2);font-size:var(--tipo-etiqueta);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--texto-3)}
.dc-embed-titulo .ico{width:1.1em;height:1.1em;color:var(--yellow);vertical-align:-.2em}
.barra-prog{height:.4rem;background:var(--velo-2);overflow:hidden}
.barra-prog i{display:block;height:100%;width:var(--p);background:var(--yellow)}
.racha-prog{display:flex;flex-direction:column;gap:var(--esp-2);padding-top:var(--esp-3);border-top:1px solid var(--line)}
.racha-linea{display:flex;align-items:center;gap:var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-2);flex-wrap:wrap}
.racha-linea b{font-family:var(--fuente-display-e);font-weight:800;font-size:var(--tipo-dato);color:var(--texto-1)}
.racha-prog.es-viva .racha-linea .ico{color:var(--yellow)}
.racha-segs{display:flex;gap:3px}
.racha-segs li{flex:1;height:.4rem;background:var(--velo-2)}
.racha-segs li.on{background:var(--yellow)}
.hechas{display:flex;flex-direction:column;padding:var(--esp-2) var(--esp-4)}
.hecha{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) 7rem minmax(0,1fr) 6rem;gap:var(--esp-3);align-items:center;padding:var(--esp-3) 0;border-top:1px solid var(--line)}
.hecha:first-child{border-top:0}
.hecha-cab{font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3)}
.hecha-quien{display:flex;align-items:center;gap:var(--esp-3);min-width:0}
.hecha-quien:hover .persona-nombre{color:var(--yellow)}
.hecha-mision{display:flex;flex-direction:column;min-width:0}
.hecha-mision b{font-weight:500;color:var(--texto-1)}
.chip-racha{display:inline-flex;align-items:center;gap:var(--esp-1);font-size:var(--tipo-leyenda);color:var(--yellow)}
.as-casilla{display:flex;align-items:center;gap:var(--esp-3);margin-top:var(--esp-4);font-size:var(--tipo-entradilla);color:var(--texto-2)}
.as-casilla input{width:1.25rem;height:1.25rem;accent-color:var(--yellow)}

/* ---------- SORTEOS ---------- */
.sor-resumen{display:flex;align-items:center;gap:var(--esp-2);font-size:var(--tipo-descripcion);color:var(--texto-2)}
.sor-resumen .ico{color:var(--yellow)}
.sor-resumen b{font-weight:500;color:var(--texto-1)}
.cuenta-atras.es-pronto{color:var(--yellow)}
.sor-detalle{display:flex;flex-direction:column;gap:var(--esp-3);padding-top:var(--esp-3);border-top:1px solid var(--line)}
.sor-extracto{padding:var(--esp-2) var(--esp-3);background:var(--velo-1);box-shadow:inset 3px 0 0 var(--dc-color,var(--yellow));font-size:var(--tipo-descripcion);color:var(--texto-2)}
.sor-detalles[aria-expanded="true"] .ico{transform:rotate(180deg)}
.sor-detalles .ico{transition:transform .2s var(--curva)}
.sor-ganadores{display:flex;flex-direction:column;gap:var(--esp-2)}
.ganadores{display:flex;flex-direction:column;gap:var(--esp-2)}
.ganador{display:grid;grid-template-columns:2.5rem auto minmax(0,1fr) auto;gap:var(--esp-3);align-items:center}
.ganador-puesto{font-family:var(--fuente-display-e);font-weight:800;font-size:var(--tipo-dato);color:var(--yellow)}
.editor-cab{display:flex;align-items:center;justify-content:space-between;gap:var(--esp-3);flex-wrap:wrap}
.sor-gratis b{color:var(--texto-1)}
.zona-titulo{display:flex;align-items:center;gap:var(--esp-3);font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-subtitulo);line-height:1}
.zona-num{font-family:var(--fuente-display-e);font-weight:800;color:var(--yellow);margin-right:var(--esp-1)}
.sor-mensaje .blq{margin-top:var(--esp-2)}
.sor-editor>.pegado{top:calc(var(--arriba) + var(--esp-rejilla))}
.sor-previa .dc-texto{color:var(--texto-1)}
.sor-dc-auto{position:relative;display:flex;flex-direction:column;gap:var(--esp-2);padding-top:calc(var(--esp-2) + 1.4em)}
.sor-dc-fin{margin:0}
.sor-dc-fecha{padding:0 .2em;background:var(--velo-2);color:var(--texto-2)}
.sor-dc-botones{display:flex;flex-wrap:wrap;gap:var(--esp-2)}
.sor-dc-boton{display:inline-flex;align-items:center;gap:var(--esp-1);padding:var(--esp-1) var(--esp-3);clip-path:var(--bevel-xs);background:var(--brown);color:var(--texto-1);font-size:var(--tipo-leyenda);font-weight:500}
.sor-dc-boton.es-si{background:var(--yellow);color:var(--sobre-amarillo)}
.sor-dc-boton .ico{width:1rem;height:1rem}
.sor-dc-auto-etq{position:absolute;top:var(--esp-2);right:0;font-size:var(--tipo-etiqueta);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--texto-3)}
.sor-dc-efimera{display:flex;flex-direction:column;gap:var(--esp-1);margin-top:var(--esp-3);padding:var(--esp-3);background:var(--velo-1);font-size:var(--tipo-leyenda);color:var(--texto-2)}
.fila-part{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.gente{display:flex;flex-direction:column;padding:var(--esp-2) var(--esp-4);margin-top:var(--esp-4)}
.gente-fila{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) 7rem minmax(0,1fr);gap:var(--esp-3);align-items:center;padding:var(--esp-3) 0;border-top:1px solid var(--line)}
.gente-fila:first-child{border-top:0}
.gente-cab{font-size:var(--tipo-rotulo);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-3)}
.gente-quien{display:flex;align-items:center;gap:var(--esp-3);min-width:0;flex-wrap:wrap}
.gente-entradas{display:flex;flex-direction:column;font-size:var(--tipo-leyenda);color:var(--texto-3)}
.gente-entradas b{font-family:var(--fuente-display-e);font-weight:800;font-size:var(--tipo-dato);color:var(--texto-1);line-height:1}
.gente-prob{display:flex;flex-direction:column;gap:var(--esp-1);font-size:var(--tipo-leyenda);color:var(--texto-2);font-variant-numeric:tabular-nums}
.gente-fila.es-ganador{background:var(--velo-vivo)}
.gente-fila.es-invalido{opacity:.6}

/* ---------- PRÓXIMAMENTE ---------- */
.pronto-caja{padding:var(--esp-caja);display:flex;flex-direction:column;align-items:flex-start;gap:var(--esp-3);max-width:44rem;color:var(--texto-2)}
.pronto-titulo{font-family:var(--fuente-display-e);font-weight:700;text-transform:uppercase;font-size:var(--tipo-subtitulo);line-height:1;color:var(--texto-1)}
.ficha-mod{cursor:default}

/* ---------- ESTRECHO ---------- */
@media (max-width:1023px){
  .cifras-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cifras-5 .cifra-celda:nth-child(odd){border-left:0;padding-left:0}
  .cifras-5 .cifra-celda:nth-child(n+3){border-top:1px solid var(--line)}
  .hecha,.gente-fila{grid-template-columns:minmax(0,1fr) auto}
  .hecha-cab,.gente-cab{display:none}
  .hecha>*:nth-child(n+3),.gente-fila>*:nth-child(n+2){grid-column:1 / -1}
  .gente-fila>.gente-entradas{grid-column:auto}
  .canal-fila-eco{grid-template-columns:minmax(0,1fr) auto auto}
  .canal-fila-eco>.campo{grid-column:1 / -1;grid-row:2}
}
@media (max-width:640px){
  .buscador{flex-wrap:wrap}
  .buscador-caja{flex:1 1 100%}
  .bloqueo-caja,.pronto-caja{padding:var(--esp-rejilla)}
  .bloqueo-botones .btn{flex:1 1 100%;justify-content:center}
  .mini-datos-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fila-part{grid-template-columns:minmax(0,1fr)}
  .ficha-nombre{font-size:var(--tipo-subtitulo)}
  .heroe-emoji{width:3.25rem;height:3.25rem}
  .guardar-botones{flex-wrap:wrap;justify-content:flex-end}
}
