:root{--amarillo:#f0b100;--amarillo-suave:#fef8e6;--negro:#0a0a0a;--gris-oscuro:#555;--gris:#e5e5e5;--gris-claro:#f3f2ef;--fondo:#fcfbf9;--blanco:#fff;--verde:#1f9d55;--verde-suave:#e6f6ec;--rojo:#d93025;--rojo-suave:#fdecea;--naranja:#e07b00;--naranja-suave:#fff3e0;--letra:"Poppins", system-ui, sans-serif;--letra-titulo:"Roboto", system-ui, sans-serif;--radio:14px;--sombra:0 2px 10px #00000012}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--letra);background:var(--fondo);color:var(--negro);-webkit-tap-highlight-color:transparent;font-size:17px;line-height:1.45}h1,h2,h3{font-family:var(--letra-titulo);margin:0 0 .4em;line-height:1.15}h1{font-size:1.7rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0 0 .8em}a{color:inherit}.boton{font:600 1.05rem var(--letra);border-radius:var(--radio);background:var(--amarillo);min-height:56px;color:var(--negro);cursor:pointer;border:0;justify-content:center;align-items:center;gap:.5em;padding:.9em 1.3em;text-decoration:none;display:inline-flex}.boton:disabled{opacity:.45;cursor:default}.boton.ancho{width:100%}.boton.grande{min-height:72px;font-size:1.3rem}.boton.negro{background:var(--negro);color:var(--blanco)}.boton.claro{background:var(--blanco);color:var(--negro);border:2px solid var(--gris)}.boton.verde{background:var(--verde);color:var(--blanco)}.boton.chico{min-height:42px;padding:.5em 1em;font-size:.95rem}.enlace{font:500 .95rem var(--letra);color:var(--gris-oscuro);cursor:pointer;background:0 0;border:0;padding:.4em;text-decoration:underline}.campo{margin-bottom:1rem;display:block}.campo span{margin-bottom:.3em;font-weight:600;display:block}.campo input,.campo select{width:100%;font:1.1rem var(--letra);border:2px solid var(--gris);border-radius:var(--radio);background:var(--blanco);padding:.75em .9em}.campo input:focus,.campo select:focus{border-color:var(--amarillo);outline:none}.ayuda{color:var(--gris-oscuro);font-size:.92rem}.error{background:var(--rojo-suave);color:var(--rojo);border-radius:var(--radio);margin-bottom:1rem;padding:.8em 1em;font-weight:500}.tarjeta{background:var(--blanco);border-radius:var(--radio);box-shadow:var(--sombra);margin-bottom:1rem;padding:1.1rem 1.2rem}.app-alumno{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex}.cabecera{background:var(--negro);color:var(--blanco);padding:calc(.7rem + env(safe-area-inset-top)) 1rem .7rem;align-items:center;gap:.7rem;display:flex}.cabecera img{border-radius:10px;width:40px;height:40px}.cabecera .marca{font:900 1.15rem var(--letra-titulo);letter-spacing:.02em}.cabecera .marca b{color:var(--amarillo)}.contenido{flex:1;padding:1.1rem 1rem 6.5rem}.navegacion{background:var(--negro);max-width:520px;padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.navegacion a{color:#bbb;text-align:center;padding:.55rem 0 .6rem;font-size:.8rem;font-weight:500;text-decoration:none}.navegacion a .icono{font-size:1.45rem;line-height:1.2;display:block}.navegacion a.activo{color:var(--amarillo)}.pantalla-centro{flex-direction:column;justify-content:center;max-width:520px;min-height:100dvh;margin:0 auto;padding:1.5rem 1.2rem;display:flex}.logo-grande{border-radius:22px;width:96px;height:96px;margin:0 auto 1rem;display:block}.estado{border-radius:var(--radio);margin-bottom:1rem;padding:1.1rem 1.2rem}.estado .titulo{font:900 1.5rem var(--letra-titulo)}.estado.al_dia,.estado.vence_pronto{background:var(--verde-suave);border-left:8px solid var(--verde)}.estado.vence_pronto{background:var(--naranja-suave);border-left-color:var(--naranja)}.estado.gracia{background:var(--naranja-suave);border-left:8px solid var(--naranja)}.estado.vencido,.estado.de_baja,.estado.sin_plan,.estado.clase_unica{background:var(--rojo-suave);border-left:8px solid var(--rojo)}.fila-dato{border-bottom:1px solid var(--gris-claro);justify-content:space-between;gap:1rem;padding:.45rem 0;display:flex}.fila-dato:last-child{border-bottom:0}.fila-dato .valor{text-align:right;font-weight:600}.lista-clases .clase h3{margin-bottom:.15em}.dia-horario{gap:.6rem;padding:.2rem 0;display:flex}.dia-horario .dia{width:6.2em;font-weight:600}.precio{border-bottom:1px solid var(--gris-claro);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.precio:last-child{border-bottom:0}.precio .monto{font:700 1.15rem var(--letra-titulo);white-space:nowrap}.escaner{color:#fff;z-index:20;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.escaner video{object-fit:cover;flex:1;width:100%;min-height:0}.escaner .barra{padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));background:#000;gap:.6rem;display:grid}.escaner .indicacion{text-align:center;padding:calc(1rem + env(safe-area-inset-top)) 1rem 1rem;font-size:1.15rem;font-weight:500}.resultado{z-index:30;text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;padding:2rem 1.5rem;display:flex;position:fixed;inset:0}.resultado.paso{background:var(--verde)}.resultado.paso_con_aviso{background:var(--naranja)}.resultado.rechazado{background:var(--rojo)}.resultado .signo{margin-bottom:.6rem;font-size:6rem;line-height:1}.resultado h1{font-size:2.4rem}.resultado p{max-width:24em;font-size:1.2rem}.resultado .boton{min-width:12em;color:var(--negro);background:#fff;margin-top:1.5rem}.pasos-tutorial{counter-reset:paso;padding:0;list-style:none}.pasos-tutorial li{counter-increment:paso;align-items:flex-start;gap:.8rem;margin-bottom:1rem;display:flex}.pasos-tutorial li:before{content:counter(paso);background:var(--amarillo);border-radius:50%;flex:none;place-items:center;width:2.1em;height:2.1em;font-weight:700;display:grid}.terminos-texto{background:var(--gris-claro);border-radius:var(--radio);max-height:45vh;margin-bottom:1rem;padding:1rem;font-size:.95rem;overflow:auto}.casilla{cursor:pointer;align-items:flex-start;gap:.7rem;margin-bottom:1rem;font-weight:500;display:flex}.casilla input{width:26px;height:26px;accent-color:var(--amarillo);flex:none;margin:0}.cuentas-prueba{margin-top:1.5rem;font-size:.92rem}.cuentas-prueba summary{cursor:pointer;color:var(--gris-oscuro);font-weight:500}.cuentas-prueba button{text-align:left;border:1px solid var(--gris);background:var(--blanco);width:100%;font:inherit;cursor:pointer;border-radius:10px;margin-top:.4rem;padding:.6rem .8rem;display:block}.recepcion{flex-direction:column;min-height:100vh;display:flex}.recepcion .cabecera{padding:.6rem 1.2rem}.pestanas{flex:1;gap:.3rem;margin-left:1.5rem;display:flex}.pestanas a{color:#ccc;border-radius:10px;padding:.55rem 1rem;font-weight:500;text-decoration:none}.pestanas a.activo{background:var(--amarillo);color:var(--negro)}.recepcion .contenido{width:100%;max-width:1200px;margin:0 auto;padding:1.2rem}.columnas{grid-template-columns:minmax(340px,420px) 1fr;align-items:start;gap:1.2rem;display:grid}@media (width<=860px){.columnas{grid-template-columns:1fr}}.molinete{border-radius:var(--radio);background:var(--gris-claro);align-items:center;gap:1rem;margin-bottom:1rem;padding:1rem 1.2rem;font-weight:600;display:flex}.molinete .luz{background:#bbb;border-radius:50%;flex:none;width:54px;height:54px;transition:background .15s}.molinete.abierto{background:var(--verde-suave)}.molinete.abierto .luz{background:#2ee66b;box-shadow:0 0 22px 6px #2ee66ba6}.molinete .texto-luz{font-size:1.2rem}.ficha-entrada{border-radius:var(--radio);border-left:10px solid var(--gris);background:var(--blanco);box-shadow:var(--sombra);margin-bottom:1rem;padding:1.2rem}.ficha-entrada.paso,.ficha-entrada.abierto_por_recepcion{border-left-color:var(--verde)}.ficha-entrada.paso_con_aviso{border-left-color:var(--naranja)}.ficha-entrada.rechazado{border-left-color:var(--rojo);background:var(--rojo-suave)}.ficha-entrada .nombre{font:900 1.7rem var(--letra-titulo)}.ficha-entrada .resultado-texto{margin:.2rem 0 .6rem;font-size:1.15rem;font-weight:700}.tabla{border-collapse:collapse;background:var(--blanco);border-radius:var(--radio);width:100%;box-shadow:var(--sombra);font-size:.97rem;overflow:hidden}.tabla th{background:var(--negro);color:var(--blanco);text-align:left;padding:.6rem .8rem;font-weight:600}.tabla td{border-bottom:1px solid var(--gris-claro);padding:.55rem .8rem}.tabla tbody tr:nth-child(2n){background:#faf9f6}.tabla .centro{text-align:center}.etiqueta{white-space:nowrap;border-radius:999px;padding:.1em .6em;font-size:.85rem;font-weight:600;display:inline-block}.etiqueta.verde{background:var(--verde-suave);color:var(--verde)}.etiqueta.naranja{background:var(--naranja-suave);color:var(--naranja)}.etiqueta.rojo{background:var(--rojo-suave);color:var(--rojo)}.etiqueta.gris{background:var(--gris-claro);color:var(--gris-oscuro)}.barra-herramientas{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.barra-herramientas .campo{flex:1;min-width:240px;margin:0}.fondo-modal{z-index:40;background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--blanco);border-radius:var(--radio);width:100%;max-width:480px;max-height:92vh;padding:1.4rem;overflow:auto}.modal .acciones{flex-wrap:wrap;justify-content:flex-end;gap:.7rem;margin-top:1rem;display:flex}.motivos{gap:.5rem;display:grid}.contrasena-grande{font:900 2rem var(--letra-titulo);letter-spacing:.08em;text-align:center;background:var(--amarillo-suave);border-radius:var(--radio);margin:.4rem 0 .8rem;padding:.6rem}.qr-hoja{text-align:center;padding:2rem 1rem}.qr-hoja canvas{max-width:100%;height:auto!important}.qr-hoja h1{font-size:2.6rem}.aviso-demo{background:var(--amarillo-suave);border:1px dashed var(--amarillo);border-radius:var(--radio);margin-bottom:1rem;padding:.7rem 1rem;font-size:.92rem}@media print{.no-imprimir{display:none!important}body{background:#fff}}.tabla td.centro,.tabla th.centro,.boton.chico,.pestanas a,.recepcion .cabecera .marca{white-space:nowrap}.tabla-contenedor{border-radius:var(--radio);overflow-x:auto}.molinete-virtual{text-align:center;color:#fff;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.molinete-virtual.espera{color:#bbb;background:#1b1b1b}.molinete-virtual.abre{background:var(--verde)}.molinete-virtual.aviso{background:var(--naranja)}.molinete-virtual.no{background:var(--rojo)}.molinete-virtual .signo{font-size:9rem;line-height:1}.molinete-virtual h1{margin-top:.5rem;font-size:2.6rem}.molinete-virtual .nombre{font-size:1.6rem;font-weight:600}.molinete-virtual .ayuda-chica{opacity:.6;margin-top:2rem;font-size:.85rem}
