.selector-idioma{display:inline-flex;align-items:center;gap:4px;position:relative}.selector-idioma select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff14;color:inherit;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:6px 12px;font:inherit;font-size:.9rem;cursor:pointer}.selector-idioma.compacto select{padding:4px 8px;font-size:.8rem}.selector-idioma select option{background:var(--noche-800);color:var(--texto)}.selector-idioma-icono{font-size:.95rem}.selector-idioma.compacto .selector-idioma-icono{display:none}.historial-bolillas{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:60vh;overflow-y:auto}.historial-bolillas li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--noche-700)}.historial-bolillas time{font-variant-numeric:tabular-nums;color:var(--texto-suave);font-size:.85rem;min-width:4.6rem}.historial-orden{color:var(--texto-suave);flex:1}.historial-numero{font-family:var(--fuente-titulo);font-weight:800;font-size:1.3rem;min-width:2.2rem;text-align:center;border-radius:999px;background:var(--rojo);color:#fff}.historial-bolillas .tachada .historial-numero{background:var(--noche-600);text-decoration:line-through}.historial-sello{font-size:.75rem;font-weight:800;text-transform:uppercase;color:#ffb3bd}.historial-bolillas .evento-anulada{background:#c8102e2e;border:1px solid var(--rojo);font-weight:700}.historial-vacio{color:var(--texto-suave);text-align:center;margin:16px 0}.tablero90{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.t90{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--noche-700);color:#4f5b8f;font-weight:900;font-size:clamp(11px,1.6vw,18px);transition:background .3s,color .3s,transform .3s}.tablero90.compacto{gap:3px}.tablero90.compacto .t90{aspect-ratio:auto;height:clamp(20px,2.9dvh,30px);border-radius:7px;font-size:clamp(10px,2.9vw,13px)}.tablero90.compacto .t90.ultima{transform:scale(1.18)}.t90.salio{background:radial-gradient(circle at 35% 30%,var(--dorado-claro),var(--dorado));color:var(--noche-900)}.t90.ultima{background:radial-gradient(circle at 35% 30%,var(--rojo-claro),var(--rojo));color:#fff;transform:scale(1.12);box-shadow:0 0 0 2px #fff,0 0 16px var(--rojo)}.bolilla{flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 32% 28%,#ff6b7d,var(--rojo) 55%,#7a0717);box-shadow:inset -6px -8px 16px #00000059,0 8px 20px #00000073}.bolilla span{width:62%;height:62%;border-radius:50%;background:#fff;color:var(--noche-900);display:flex;align-items:center;justify-content:center;font-family:var(--fuente-titulo);font-weight:800}.cartilla{--fuerte: var(--c-azul);--suave: var(--c-azul-suave);background:var(--papel);border:3px solid var(--fuerte);border-radius:12px;padding:6px;box-shadow:0 8px 22px #00000059;color:#1b1b1b}.cartilla-azul{--fuerte: var(--c-azul);--suave: var(--c-azul-suave)}.cartilla-rosado{--fuerte: var(--c-rosado);--suave: var(--c-rosado-suave)}.cartilla-naranja{--fuerte: var(--c-naranja);--suave: var(--c-naranja-suave)}.cartilla-verde{--fuerte: var(--c-verde);--suave: var(--c-verde-suave)}.cartilla-morado{--fuerte: var(--c-morado);--suave: var(--c-morado-suave)}.cartilla-cabecera{display:flex;justify-content:space-between;padding:2px 6px 6px;font-family:var(--fuente-titulo);font-weight:800;color:var(--fuerte)}.cartilla-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:3px}.casilla{position:relative;aspect-ratio:1 / 1.1;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--fuerte);border-radius:6px;background:#fff;color:#1b1b1b;font-weight:900;font-size:clamp(13px,4.2vw,20px);padding:0}.casilla-vacia{background:var(--suave);border-color:transparent}.casilla-ayuda{border:3px solid var(--dorado);box-shadow:0 0 0 2px #d4a72c59,inset 0 0 8px #d4a72c73}.tiembla{animation:temblor .4s}@keyframes temblor{20%{transform:translate(-4px) rotate(-3deg)}40%{transform:translate(4px) rotate(3deg)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.ficha{animation:poner-ficha .18s ease-out}@keyframes poner-ficha{0%{transform:scale(1.6);opacity:0}}.cartilla-mini{padding:3px;border-width:2px;border-radius:8px;box-shadow:none}.cartilla-mini .cartilla-cabecera{font-size:10px;padding:0 3px 2px}.cartilla-mini .cartilla-grid{gap:1px}.cartilla-mini .casilla{font-size:8px;border-width:1px;border-radius:3px}.cartilla-mini .casilla-ayuda{border-width:1.5px;box-shadow:none}.ficha{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--rojo-claro),var(--rojo) 65%);opacity:.85;box-shadow:0 2px 4px #00000059}.modal-fondo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#030614b3;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;background:var(--noche-800);border:1px solid var(--noche-600);border-radius:18px;box-shadow:0 20px 60px #0009}.modal-titulo{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.modal-titulo h3{color:var(--dorado);font-size:22px}.modal-x{background:none;border:none;color:var(--texto-suave);font-size:28px;line-height:1;padding:0 4px}.modal-cuerpo{padding:4px 18px 16px;display:grid;gap:12px}.modal-acciones{display:flex;gap:10px;justify-content:flex-end;padding:0 18px 18px}.chico{font-size:12px}.boton-gris{background:var(--noche-600);color:var(--texto)}.boton-grande{padding:16px;font-size:18px}.centro-jugador{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 16px;max-width:440px;margin:0 auto;text-align:center}.entrada-cabecera .logo{font-size:56px}.tarjeta-jugador{width:100%;display:grid;gap:14px;text-align:left;background:var(--noche-800);border:1px solid var(--noche-600);border-radius:22px;padding:22px 18px}.campo-jugador{display:grid;gap:6px;font-weight:700;color:var(--texto-suave);font-size:14px}.input-codigo{font-size:30px;letter-spacing:10px;text-align:center;font-weight:900;font-family:var(--fuente-titulo)}.aviso-jugador{margin:0;padding:10px 12px;border-radius:12px;font-size:14px;background:#c8102e26;border:1px solid var(--rojo);color:#ffd3da}.esquina-idioma{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px}.espera{text-align:center;justify-items:center}.espera h2{color:var(--dorado)}.espera p{margin:0}.reloj-espera{font-size:48px;animation:balanceo 2s ease-in-out infinite}@keyframes balanceo{50%{transform:rotate(180deg)}}.sala{max-width:520px;margin:0 auto;min-height:100dvh;padding:0 10px calc(96px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.sala-cabecera{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 2px 0}.sala-titulo{display:flex;align-items:baseline;gap:8px;min-width:0}.logo-mini{font-size:24px;text-shadow:0 2px 0 var(--rojo)}.sala-evento{color:var(--texto-suave);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sala-datos{display:flex;align-items:center;gap:8px;flex:none}.sala-nombre{font-weight:900;font-size:14px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conexion{width:10px;height:10px;border-radius:50%;background:var(--verde)}.conexion.mal{background:var(--rojo);animation:latido 1s infinite}@keyframes latido{50%{opacity:.4}}.boton-voz{background:var(--noche-700);border:1px solid var(--noche-600);border-radius:10px;padding:4px 8px;font-size:16px}.sala-titulo{overflow:hidden}.sala-datos .selector-idioma select{padding:4px 6px}@media (max-width: 420px){.sala-evento{display:none}.sala-datos{gap:6px}.sala-nombre{max-width:88px;font-size:13px}}.sala-estado{font-size:13px;color:var(--texto-suave);padding:0 2px}.sala-acciones{display:flex;gap:8px}.sala-acciones>*{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 10px;border-radius:12px;font-weight:900;font-size:14px;text-decoration:none;background:var(--noche-700);border:1px solid var(--noche-600);color:var(--texto)}.sala-acciones .ver-en-vivo{background:var(--rojo);border-color:var(--rojo-claro);color:#fff}.ver-en-vivo .punto-vivo{width:8px;height:8px;border-radius:50%;background:#fff;animation:latido 1.2s infinite}.aviso-flotante.aviso-anulada{background:var(--rojo);color:#fff}.sala-estado strong{color:var(--dorado-claro)}.sin-conexion{color:#ff8a9a}.zona-sorteo{position:relative;display:grid;gap:8px;background:linear-gradient(180deg,#1b286099,#0a123099);border:1px solid var(--noche-600);border-radius:20px;padding:8px 10px 10px}.fila-bolillero{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.caja-bolillero{position:relative}.bolillero{width:100%;height:clamp(110px,19dvh,190px);display:block}.bolillero .jaula{transition:transform .3s}.bolillero.girando .jaula,.bolillero.girando .manivela{animation:girar-jaula .5s linear infinite}@keyframes girar-jaula{to{transform:rotate(360deg)}}.ultimas{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px}.ultimas .texto-suave{font-size:11px;text-transform:uppercase;letter-spacing:1px}.ultima-grande{margin-bottom:2px}.contador-jugador{font-size:12px;color:var(--texto-suave);font-weight:700}.bolilla-viajera{position:absolute;top:0;left:0;z-index:20;pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}.hablando{position:absolute;left:0;bottom:0;display:flex;align-items:center;gap:6px;background:#c8102ee6;color:#fff;font-size:12px;font-weight:900;padding:4px 10px;border-radius:99px}.ondas{display:inline-flex;align-items:center;gap:2px;height:14px}.ondas i{width:3px;height:100%;background:#fff;border-radius:2px;animation:onda .8s ease-in-out infinite}.ondas i:nth-child(2){animation-delay:.15s}.ondas i:nth-child(3){animation-delay:.3s}.ondas i:nth-child(4){animation-delay:.45s}@keyframes onda{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.zona-cartillas{display:grid;gap:6px}.pestanas-cartillas{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.pestana-cartilla{flex:none;border:2px solid transparent;border-radius:10px;padding:6px 10px;background:var(--noche-700);color:var(--texto);font-weight:900;font-size:14px}.pestana-cartilla small{color:var(--texto-suave);font-weight:700;margin-left:2px}.pestana-cartilla.activa{background:var(--papel);color:#1b1b1b}.pestana-cartilla.activa small{color:#555}.color-azul.activa{border-color:var(--c-azul)}.color-rosado.activa{border-color:var(--c-rosado)}.color-naranja.activa{border-color:var(--c-naranja)}.color-verde.activa{border-color:var(--c-verde)}.color-morado.activa{border-color:var(--c-morado)}.ver-todas{background:none;border-color:var(--noche-600);color:var(--texto-suave)}.ver-todas.activa{background:var(--noche-600);color:var(--texto)}.carrusel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -10px;padding:2px 0 6px}.carrusel::-webkit-scrollbar,.pestanas-cartillas::-webkit-scrollbar{display:none}.diapositiva{flex:0 0 100%;scroll-snap-align:center;padding:0 10px}.miniaturas{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.miniatura{background:none;border:none;padding:0;text-align:left}.pista{margin:0;text-align:center;font-size:12px;color:var(--texto-suave)}.sin-cartillas{text-align:center;color:var(--texto-suave);padding:24px 12px;background:var(--noche-800);border-radius:16px}.barra-inferior{position:fixed;left:50%;bottom:0;transform:translate(-50%);z-index:30;width:100%;max-width:520px;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#070d24f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--noche-600)}.boton-barra{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--noche-700);border:1px solid var(--noche-600);color:var(--texto);border-radius:14px;padding:8px 4px;font-size:12px;font-weight:700}.boton-barra:disabled{opacity:.5}.boton-barra .icono{font-size:20px;line-height:1}.boton-barra .globo{position:absolute;top:-6px;right:8px;background:var(--rojo);color:#fff;border-radius:99px;padding:1px 7px;font-size:12px;font-weight:900}.boton-bingo{height:64px;border:none;border-radius:99px;background:radial-gradient(circle at 50% 30%,var(--rojo-claro),var(--rojo) 60%,#7a0717);color:#fff;font-family:var(--fuente-titulo);font-size:28px;font-weight:800;letter-spacing:1px;box-shadow:0 6px #5c0512,0 10px 24px #c8102e80;text-shadow:0 2px 0 rgba(0,0,0,.3)}.boton-bingo:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #5c0512}.boton-bingo:disabled{background:var(--noche-600);box-shadow:none;font-size:18px}.boton-ptt{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.boton-ptt.hablando{background:var(--rojo);border-color:var(--rojo-claro);animation:latido 1s infinite}.activar-sonido{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:50;border:none;border-radius:99px;padding:12px 18px;font-weight:900;background:var(--dorado);color:var(--noche-900);box-shadow:0 8px 24px #00000080;width:max-content;max-width:calc(100% - 32px)}.aviso-flotante{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;background:var(--verde);color:#04210f;font-weight:900;padding:12px 18px;border-radius:14px;width:max-content;max-width:calc(100% - 32px);text-align:center;box-shadow:0 10px 30px #00000080}.hoja-fondo{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#03061499;display:flex;align-items:flex-end;justify-content:center}.hoja{width:100%;max-width:520px;height:min(75dvh,600px);display:flex;flex-direction:column;gap:8px;background:var(--noche-800);border-radius:22px 22px 0 0;border:1px solid var(--noche-600);padding:12px 14px calc(14px + env(safe-area-inset-bottom));animation:subir .22s ease-out}@keyframes subir{0%{transform:translateY(40px);opacity:0}}.hoja-cabecera{display:flex;justify-content:space-between;align-items:center}.hoja-cabecera h3{color:var(--dorado)}.chat-lista{flex:1;list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.chat-lista li{background:var(--noche-700);border-radius:12px;padding:6px 10px;display:grid;max-width:85%}.chat-lista li.mio{align-self:flex-end;background:#2b3a7a}.chat-lista li.del-admin{background:#3a1820;border:1px solid var(--rojo)}.chat-lista .autor{font-size:12px;font-weight:900;color:var(--dorado-claro)}.chat-lista .cuerpo{word-break:break-word}.chat-lista time{font-size:10px;color:var(--texto-suave);justify-self:end}.chat-lista .vacia{background:none;color:var(--texto-suave);align-self:center}.chat-enviar{display:flex;gap:8px}.chat-enviar .boton{padding:0 18px}.celebracion{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#2a1e06eb,#030614f2);padding:16px}.confeti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.celebracion-caja{position:relative;text-align:center;display:grid;gap:12px;justify-items:center;animation:aparecer .5s cubic-bezier(.2,1.6,.4,1)}@keyframes aparecer{0%{transform:scale(.4);opacity:0}}.celebracion-tipo{font-family:var(--fuente-titulo);font-size:64px;font-weight:800;line-height:1;color:var(--dorado);text-shadow:0 4px 0 var(--rojo),0 8px 30px rgba(212,167,44,.6)}.celebracion-titulo{font-size:24px;font-weight:900}.celebracion ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.celebracion li{display:grid;background:#ffffff14;border:1px solid var(--dorado);border-radius:14px;padding:10px 18px}.celebracion li strong{font-size:22px;color:var(--dorado-claro)}.celebracion li span{font-size:14px;color:var(--texto-suave)}@media (min-width: 700px){.sala{padding-top:12px}}.telefono-fila{display:grid;grid-template-columns:minmax(0,11rem) auto minmax(0,1fr);align-items:center;gap:6px}.telefono-fila select{font:inherit;min-width:0;padding:14px 10px;border-radius:var(--radio);border:2px solid var(--noche-600);background:var(--noche-800);color:var(--texto)}.telefono-fila select:focus{border-color:var(--dorado);outline:none}.telefono-codigo{font-weight:800;color:var(--texto)}@media (max-width: 420px){.telefono-fila{grid-template-columns:minmax(0,1fr) auto}.telefono-fila select{grid-column:1 / -1}}.sorteo{display:grid;gap:16px}.sala-nueva{display:grid;gap:16px;justify-items:center}.sala-nueva p{max-width:420px;margin:0}.barra-sala{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.codigo-sala{display:grid;line-height:1}.codigo-sala span{font-size:12px;color:var(--texto-suave);text-transform:uppercase;letter-spacing:1px}.codigo-sala strong{font-family:var(--fuente-titulo);font-size:40px;letter-spacing:6px;color:var(--dorado)}.datos-ronda{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1}.datos-ronda>span{font-size:14px}.fase,.estado{padding:3px 10px;border-radius:99px;font-weight:900;font-size:12px}.fase-linea{background:var(--c-azul)}.fase-bingo{background:var(--c-morado)}.estado-jugando{background:var(--verde);color:#04210f}.estado-pausada{background:var(--dorado);color:var(--noche-900);animation:latido 1.2s infinite}.estado-terminada{background:var(--noche-600)}@keyframes latido{50%{opacity:.55}}.acciones-sala{display:flex;gap:8px;flex-wrap:wrap}.sorteo-cuerpo{display:grid;grid-template-columns:1fr 400px;gap:16px;align-items:start}.sorteo-principal,.sorteo-lateral{display:grid;gap:16px}.decision{border:2px solid var(--dorado);background:linear-gradient(180deg,#2a2412,var(--noche-800));display:grid;gap:12px}.decision.terminada{display:flex;align-items:center;justify-content:space-between;gap:12px;border-color:var(--noche-600);background:var(--noche-800)}.decision h3{font-size:22px}.lista-ganadores{list-style:none;margin:0;padding:0;display:grid;gap:6px}.lista-ganadores li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:#00000040}.lista-ganadores input{width:20px;height:20px;accent-color:var(--dorado)}.lista-ganadores .punto{margin-top:0}.sello-anunciado{margin-left:auto;color:var(--verde);font-weight:900;font-size:13px}.bolillero-admin{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center}.ultima-bolilla{display:flex;gap:18px;align-items:center}.contador-bolillas{font-family:var(--fuente-titulo);font-size:34px;font-weight:800;line-height:1}.contador-bolillas small{font-size:16px;color:var(--texto-suave)}.ultimas5{display:flex;gap:4px;margin-top:10px}.controles-sorteo{display:grid;gap:10px}.boton-girar{font-size:22px;padding:18px}.interruptor.voz{font-size:14px;color:var(--texto-suave);align-items:center}.voz-admin{display:grid;gap:6px}.boton-mic.abierto{animation:latido 1.2s infinite}.turno-jugador{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:10px;background:#c8102e33;border:1px solid var(--rojo);font-size:14px}.simulador{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-style:dashed;border-color:var(--dorado)}.simulador strong{color:var(--dorado-claro);font-size:14px}.simulador button{background:var(--noche-700);border:1px solid var(--noche-600);color:var(--texto);padding:6px 10px;border-radius:8px;font-size:13px}.alertas{display:grid;gap:8px}.solo-tu{font-size:12px;color:var(--dorado-claro)}.globo{background:var(--rojo);color:#fff;border-radius:99px;padding:0 8px;font-size:14px;vertical-align:middle}.lista-alertas{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:520px;overflow-y:auto}.alerta{position:relative;display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--noche-700);border-left:5px solid var(--noche-600);font-size:14px}.alerta:not(.vista){box-shadow:0 0 0 1px var(--dorado) inset}.alerta time{position:absolute;top:8px;right:10px;font-size:11px;color:var(--texto-suave)}.alerta ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.alerta li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.alerta .punto{margin-top:0}.alerta-linea,.alerta-bingo{border-left-color:var(--dorado);background:#262413}.alerta-reclamo{border-left-color:var(--rojo)}.alerta-a_punto{border-left-color:var(--c-azul)}.alerta-solicitud{border-left-color:var(--verde)}.alerta-doble_dispositivo{border-left-color:var(--c-naranja)}.alerta-titulo{font-weight:900;padding-right:60px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.alerta-titulo.suave{font-weight:700;color:var(--texto-suave)}.sello{font-size:11px;font-weight:900;padding:2px 8px;border-radius:6px}.sello.valido{background:var(--verde);color:#04210f}.sello.invalido{background:var(--rojo);color:#fff}.sello.empate{background:var(--dorado);color:var(--noche-900)}.chips-cartillas{display:flex;gap:6px;flex-wrap:wrap;font-size:13px}.chips-cartillas>span{background:var(--noche-800);padding:2px 8px;border-radius:6px}.chips-cartillas>span.ok{background:#14432a}.enlace{background:none;border:none;padding:0;color:var(--dorado-claro);text-decoration:underline;font-weight:700}.boton-wa{margin-left:auto;background:#25d366;color:#052e16;font-weight:900;font-size:12px;padding:3px 10px;border-radius:99px;text-decoration:none}.solicitud{display:flex;gap:6px;flex-wrap:wrap}.solicitud select{flex:1;min-width:140px;padding:8px;border-radius:10px;font:inherit;background:var(--noche-800);color:var(--texto);border:1px solid var(--noche-600)}.chat-admin{display:grid;gap:8px}.mensajes{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:260px;overflow-y:auto;align-content:start}.mensajes li{display:flex;gap:6px;align-items:baseline;font-size:14px;padding:4px 6px;border-radius:8px}.mensajes li:hover{background:var(--noche-700)}.mensajes .autor{font-weight:900;color:var(--dorado-claro);white-space:nowrap}.mensajes .del-admin .autor{color:var(--rojo-claro)}.mensajes .cuerpo{flex:1;word-break:break-word}.mensajes .oculto{opacity:.45}.acciones-msg{display:flex;gap:2px;opacity:.5}.mensajes li:hover .acciones-msg{opacity:1}.acciones-msg button{background:none;border:none;padding:0 4px;font-size:13px}.enviar{display:flex;gap:6px}.enviar input{padding:10px 12px}.conectados h3 small{color:var(--texto-suave);font-size:13px}.conectados ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;max-height:260px;overflow-y:auto}.conectados li{display:flex;align-items:center;gap:8px;font-size:14px}.conectados .punto{margin-top:0}.conectados .nombre{flex:1}.boton-mini{padding:4px 10px;font-size:12px;border-radius:8px}.vacia{color:var(--texto-suave);font-size:14px}@media (max-width: 1100px){.sorteo-cuerpo{grid-template-columns:1fr}}@media (max-width: 640px){.bolillero-admin{grid-template-columns:1fr}.codigo-sala strong{font-size:32px}.decision.terminada{flex-direction:column;align-items:stretch}}.admin-centro{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.esquina-idioma-admin{position:fixed;top:12px;right:12px}.admin-error{color:#ff8a9a;margin:0}.texto-suave{color:var(--texto-suave);margin:0}.login{width:100%;max-width:360px;display:grid;gap:12px;background:var(--noche-800);border:1px solid var(--noche-600);border-radius:20px;padding:28px 22px}.login-sub{text-align:center;color:var(--texto-suave);margin:-6px 0 6px}.aviso-demo{margin:0;padding:10px 12px;border-radius:10px;font-size:14px;background:#d4a72c1f;border:1px dashed var(--dorado);color:var(--dorado-claro)}.panel{min-height:100%;display:flex;flex-direction:column}.panel-cabecera{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 20px;background:#070d24eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--noche-600)}.panel-marca{display:flex;align-items:center;gap:8px}.logo-chico{font-size:28px;text-shadow:0 2px 0 var(--rojo)}.etiqueta-demo{font-size:11px;font-weight:900;letter-spacing:1px;padding:2px 8px;border-radius:99px;background:var(--dorado);color:var(--noche-900)}.panel-pestanas{display:flex;gap:4px;flex:1;overflow-x:auto}.panel-pestanas button{background:none;border:none;color:var(--texto-suave);padding:10px 14px;border-radius:10px;font-weight:700;white-space:nowrap}.panel-pestanas button:hover{color:var(--texto);background:var(--noche-700)}.panel-pestanas button.activa{color:var(--noche-900);background:var(--dorado)}.boton-chico{padding:8px 14px;font-size:14px}.boton:disabled{opacity:.55;cursor:default}.panel-contenido{flex:1;padding:20px;width:100%;max-width:1400px;margin:0 auto}.tarjeta{background:var(--noche-800);border:1px solid var(--noche-600);border-radius:18px;padding:16px}.tarjeta.vacia{text-align:center;color:var(--texto-suave);padding:48px 16px}.tarjeta h3{color:var(--dorado);font-size:20px}.aviso{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:60;padding:12px 18px;border-radius:12px;font-weight:700;max-width:calc(100% - 32px);box-shadow:0 10px 30px #00000080}.aviso-ok{background:var(--verde);color:#04210f}.aviso-error{background:var(--rojo);color:#fff}.campo{display:grid;gap:6px;font-size:14px;color:var(--texto-suave)}.jugadores{display:grid;gap:16px;grid-template-columns:minmax(300px,380px) 1fr;align-items:start}.columna-jugadores{display:grid;gap:12px;position:sticky;top:76px;max-height:calc(100vh - 96px);grid-template-rows:auto auto auto 1fr}.contadores{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.contadores div{display:grid;text-align:center;padding:8px 4px;border-radius:12px;background:var(--noche-700)}.contadores strong{font-family:var(--fuente-titulo);font-size:26px;color:var(--dorado);line-height:1.1}.contadores span{font-size:12px;color:var(--texto-suave)}.fila-titulo{display:flex;align-items:center;justify-content:space-between}.fila-titulo small{color:var(--texto-suave);font-size:14px}.lista-jugadores{list-style:none;margin:0;padding:0;overflow-y:auto;display:grid;gap:6px;align-content:start}.lista-jugadores li{display:flex;align-items:stretch;border-radius:12px;background:var(--noche-700);border:2px solid transparent}.lista-jugadores li.sel{border-color:var(--dorado);background:#2a2a3a}.lista-jugadores li.vacia{padding:16px;color:var(--texto-suave);justify-content:center}.jugador-principal{flex:1;display:flex;gap:10px;align-items:flex-start;text-align:left;background:none;border:none;color:inherit;padding:10px 6px 10px 12px;min-width:0}.punto{width:10px;height:10px;border-radius:50%;background:#5b6385;margin-top:6px;flex:none}.punto.en-linea{background:var(--verde);box-shadow:0 0 8px var(--verde)}.jugador-datos{display:grid;gap:2px;min-width:0}.jugador-nombre{font-weight:900}.jugador-wa{font-size:12px;color:var(--texto-suave)}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.chip{font-size:11px;font-weight:900;padding:2px 6px;border-radius:6px;color:#fff}.chip-vacio{background:var(--noche-600);color:var(--texto-suave);font-weight:700}.chip-azul{background:var(--c-azul)}.chip-rosado{background:var(--c-rosado)}.chip-naranja{background:var(--c-naranja)}.chip-verde{background:var(--c-verde)}.chip-morado{background:var(--c-morado)}.jugador-acciones{display:flex;flex-direction:column;justify-content:center;padding-right:4px}.jugador-acciones button{background:none;border:none;color:var(--texto-suave);padding:4px 8px;border-radius:8px}.jugador-acciones button:hover{background:var(--noche-600);color:var(--texto)}.columna-cartillas{display:grid;gap:12px}.instruccion{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;background:var(--noche-700);color:var(--texto-suave);font-size:14px}.instruccion.asignando{background:#d4a72c26;color:var(--texto);border:1px solid var(--dorado)}.instruccion strong{color:var(--dorado-claro)}.filtros{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.filtros button{border:1px solid var(--noche-600);background:none;color:var(--texto-suave);padding:6px 12px;border-radius:99px;font-size:14px;font-weight:700}.filtros button.activo{background:var(--texto);color:var(--noche-900);border-color:var(--texto)}.leyenda{margin-left:auto;font-size:13px;color:var(--texto-suave);display:flex;align-items:center;gap:6px}.muestra{width:14px;height:14px;border-radius:4px;display:inline-block}.muestra.libre{background:var(--noche-700);border:2px solid #3d4a85}.muestra.vendida{background:var(--rojo)}.rejilla-cartillas{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.celda-cartilla{display:grid;gap:1px;padding:6px 4px;border-radius:10px;text-align:center;border:2px solid #3d4a85;background:var(--noche-700);color:var(--texto);border-top-width:5px}.celda-cartilla:hover{filter:brightness(1.2)}.celda-num{font-family:var(--fuente-titulo);font-weight:800;font-size:18px;line-height:1.1}.celda-dueno{font-size:11px;color:var(--texto-suave);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.celda-cartilla.vendida{background:linear-gradient(180deg,#8f1426,#6a0f1d);border-color:#b3283f}.celda-cartilla.vendida .celda-dueno{color:#ffd6dc}.celda-cartilla.del-sel{background:linear-gradient(180deg,var(--dorado-claro),var(--dorado));color:var(--noche-900);border-color:var(--dorado-claro)}.celda-cartilla.del-sel .celda-dueno{color:var(--noche-800);font-weight:700}.borde-azul{border-top-color:var(--c-azul)!important}.borde-rosado{border-top-color:var(--c-rosado)!important}.borde-naranja{border-top-color:var(--c-naranja)!important}.borde-verde{border-top-color:var(--c-verde)!important}.borde-morado{border-top-color:var(--c-morado)!important}.ajustes{display:grid;gap:16px;max-width:640px}.ajustes .tarjeta{display:grid;gap:14px}.interruptor{display:flex;gap:12px;align-items:flex-start;cursor:pointer}.interruptor input{width:22px;height:22px;flex:none;accent-color:var(--dorado);padding:0;margin:0}.botones-fila{display:flex;gap:10px;flex-wrap:wrap}.historial{display:grid;gap:16px;max-width:900px}.historial .tarjeta{display:grid;gap:12px}.ronda-h{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--noche-700)}.ronda-h-cab{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.ganadores-h{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}.ganadores-h li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ganadores-h li.descartado{opacity:.5;text-decoration:line-through}.ganadores-h .si{color:var(--verde);font-weight:900;margin-left:auto}.ganadores-h .no{color:var(--dorado);font-weight:900;margin-left:auto}.historial summary{cursor:pointer;color:var(--texto-suave);font-size:14px}.bolillas-h{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 0;padding:0;list-style:none;counter-reset:b}.bolillas-h li{min-width:30px;height:30px;padding:0 4px;border-radius:99px;display:flex;align-items:center;justify-content:center;background:var(--noche-800);font-weight:900;font-size:13px}@media (max-width: 860px){.panel-cabecera{padding:8px 12px;gap:8px}.panel-pestanas{order:3;flex-basis:100%}.panel-marca{flex:1}.panel-contenido{padding:12px}.jugadores{grid-template-columns:1fr}.columna-jugadores{position:static;max-height:none}.lista-jugadores{max-height:50vh}.rejilla-cartillas{grid-template-columns:repeat(auto-fill,minmax(62px,1fr))}}.pantalla{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;display:flex;flex-direction:column;padding:2vh 2.5vw;background:radial-gradient(ellipse at 30% 0%,var(--noche-600),var(--noche-900) 70%);-webkit-user-select:none;user-select:none}.pantalla.sin-cursor{cursor:none}.pantalla-cabecera{display:flex;align-items:center;gap:2vw;flex:none;padding-bottom:1.5vh;border-bottom:2px solid rgba(212,167,44,.35)}.pantalla-logo{font-size:clamp(28px,4.2vh,60px);text-shadow:0 3px 0 var(--rojo)}.pantalla-evento{flex:1;min-width:0;font-family:var(--fuente-titulo);font-weight:800;font-size:clamp(20px,3.4vh,48px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pantalla-fase{font-size:clamp(16px,2.8vh,40px);font-weight:800;color:var(--texto-suave);padding:.4vh 1.4vw;border-radius:999px;background:#ffffff0f;border:2px solid var(--dorado);white-space:nowrap}.pantalla-fase strong{color:var(--dorado-claro)}.pantalla-fase.fase-bingo{border-color:var(--rojo-claro)}.pantalla-cuerpo{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:2.5vw;padding:2vh 0 1vh}.pantalla-izquierda{min-height:0;display:grid;grid-template-rows:minmax(0,30fr) minmax(0,36fr) auto auto;justify-items:center;align-items:center;gap:1vh}.pantalla-bolillero{height:100%;width:100%;display:flex;justify-content:center;min-height:0}.pantalla-bolillero .bolillero{height:100%;width:auto;max-width:100%;display:block}.pantalla .bolillero.girando .jaula,.pantalla .bolillero.girando .manivela{animation:pantalla-girar .45s linear infinite}@keyframes pantalla-girar{to{transform:rotate(360deg)}}.pantalla-ultima{display:flex;align-items:center;justify-content:center;height:100%;min-height:0}.pantalla-ultima .bolilla{width:min(28vh,20vw)!important;height:min(28vh,20vw)!important;font-size:min(11.8vh,8.4vw)!important;box-shadow:inset -12px -16px 30px #00000059,0 0 60px #ef3b528c,0 20px 40px #00000080}.pantalla-sin-bolilla{font-size:clamp(18px,3vh,36px);color:var(--texto-suave);text-align:center}.pantalla-contador{font-family:var(--fuente-titulo);font-weight:800;font-size:clamp(22px,4.6vh,64px);color:var(--dorado-claro);line-height:1}.pantalla-ultimas5{display:grid;justify-items:center;gap:.6vh}.pantalla-ultimas5>span{font-size:clamp(12px,1.9vh,24px);text-transform:uppercase;letter-spacing:2px;color:var(--texto-suave)}.pantalla-ultimas5>div{display:flex;gap:1vw;min-height:min(8vh,5vw)}.pantalla-ultimas5 .bolilla{width:min(8vh,5vw)!important;height:min(8vh,5vw)!important;font-size:min(3.4vh,2.1vw)!important;opacity:.9}.pantalla-tablero{min-height:0;display:flex;align-items:center;justify-content:center}.pantalla-tablero .tablero90{width:min(100%,calc((100vh - 20vh) * 10 / 9));gap:min(1vh,.6vw)}.pantalla-tablero .t90{font-size:min(3.6vh,2.2vw)}.pantalla-tablero .t90.ultima{transform:scale(1.15);box-shadow:0 0 0 3px #fff,0 0 30px var(--rojo)}.pantalla-espera{flex:1;display:flex;align-items:center;justify-content:center;font-size:clamp(22px,4vh,56px);color:var(--texto-suave);text-align:center}.pantalla-franja,.pantalla-anulada{position:absolute;left:50%;bottom:4vh;transform:translate(-50%);padding:1.6vh 3vw;border-radius:999px;font-weight:900;font-size:clamp(18px,3.4vh,48px);white-space:nowrap;box-shadow:0 16px 40px #00000080}.pantalla-franja{background:var(--noche-700);border:2px solid var(--dorado);color:var(--dorado-claro)}.pantalla-anulada{background:var(--rojo);color:#fff;border:3px solid #fff;z-index:5}.pantalla-anulada{left:0;right:0;margin:0 auto;width:max-content;transform:none}.pantalla-celebracion{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#2a1e06e6,#030614f0)}.pantalla-celebracion .confeti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pantalla-celebracion-caja{position:relative;text-align:center}.pantalla-celebracion-tipo{font-family:var(--fuente-titulo);font-weight:800;line-height:1;font-size:min(26vh,18vw);color:var(--dorado);text-shadow:0 1vh 0 var(--rojo),0 2vh 60px rgba(212,167,44,.7)}.pantalla-celebracion-texto{font-size:min(7vh,5vw);font-weight:900;margin-top:2vh}.pantalla-pista{position:absolute;top:2vh;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:999px;background:#0009;color:var(--texto-suave);font-size:14px;pointer-events:none}@media (orientation: portrait){.pantalla-cuerpo{grid-template-columns:1fr;grid-template-rows:auto 1fr}.pantalla-izquierda{grid-template-rows:18vh 24vh auto auto}.pantalla-tablero .tablero90{width:100%}.pantalla-tablero .t90{font-size:3.4vw}}:root{--noche-900: #070d24;--noche-800: #0a1230;--noche-700: #121c45;--noche-600: #1b2860;--dorado: #d4a72c;--dorado-claro: #f3d06b;--rojo: #c8102e;--rojo-claro: #ef3b52;--papel: #ffffff;--texto: #f4f1e8;--texto-suave: #a9b2d6;--verde: #2fbf71;--c-azul: #1f6fd1;--c-azul-suave: #dbe9fb;--c-rosado: #e0457b;--c-rosado-suave: #fbe0ea;--c-naranja: #ec7d1c;--c-naranja-suave: #fde8d4;--c-verde: #23a35a;--c-verde-suave: #d8f2e3;--c-morado: #7b4bc9;--c-morado-suave: #e8dff8;--radio: 14px;--fuente-titulo: "Baloo 2", system-ui, sans-serif;--fuente: "Nunito", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(ellipse at top,var(--noche-700),var(--noche-900) 70%);background-color:var(--noche-900);color:var(--texto);font-family:var(--fuente);-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--fuente-titulo);margin:0}button{font:inherit;cursor:pointer}input{font:inherit;width:100%;padding:14px 16px;border-radius:var(--radio);border:2px solid var(--noche-600);background:var(--noche-800);color:var(--texto);outline:none}input:focus{border-color:var(--dorado)}.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border:none;border-radius:var(--radio);font-weight:900;letter-spacing:.3px}.boton-dorado{background:linear-gradient(180deg,var(--dorado-claro),var(--dorado));color:var(--noche-900)}.boton-rojo{background:linear-gradient(180deg,var(--rojo-claro),var(--rojo));color:#fff}.logo{font-family:var(--fuente-titulo);font-weight:800;font-size:44px;letter-spacing:2px;color:var(--dorado);text-shadow:0 3px 0 var(--rojo),0 6px 18px rgba(0,0,0,.5)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
