:root{--fondo: #0f172a;--panel: #1e293b;--borde: #334155;--texto: #f1f5f9;--suave: #94a3b8;--ok: #10b981;--error: #ef4444;--acento: #3f8f6e}*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font-family:system-ui,-apple-system,sans-serif;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.pantalla{max-width:480px;margin:0 auto;padding:24px 16px}h1{font-size:24px;margin:0 0 4px}.suave{color:var(--suave);font-size:14px}label{display:block;font-size:13px;color:var(--suave);margin:16px 0 6px}input{width:100%;padding:14px;font-size:18px;border-radius:12px;border:1px solid var(--borde);background:var(--panel);color:var(--texto)}button{width:100%;padding:16px;font-size:17px;font-weight:600;margin-top:20px;border:0;border-radius:12px;background:var(--acento);color:#06283d}button:disabled{opacity:.5}button.secundario{background:transparent;color:var(--acento);border:1px solid var(--borde)}.aviso{padding:12px 14px;border-radius:12px;margin:16px 0;font-size:15px}.aviso.error{background:#450a0a;color:#fecaca}.aviso.ok{background:#052e22;color:#a7f3d0}.tarjeta{background:var(--panel);border:1px solid var(--borde);border-radius:16px;padding:16px;margin-top:16px}.resultado{text-align:center;padding:32px 16px}.resultado .tipo{font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}.resultado .hora{font-size:56px;font-weight:700;margin:8px 0}video{width:100%;border-radius:16px;background:#000}.fila{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--borde)}.fila:last-child{border:0}.panel{max-width:1100px;margin:0 auto;padding:16px}.barra{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--borde);flex-wrap:wrap}.barra nav{display:flex;gap:6px;flex-wrap:wrap}.tab{width:auto;margin:0;padding:8px 14px;font-size:14px;background:transparent;color:var(--suave);border:1px solid transparent;border-radius:10px}.tab.activa{background:var(--panel);color:var(--texto);border-color:var(--borde)}.filtros{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:16px 0}.filtros label{margin-top:0}select{padding:12px;font-size:15px;border-radius:10px;border:1px solid var(--borde);background:var(--panel);color:var(--texto)}button.chico{width:auto;margin:0;padding:10px 14px;font-size:14px}.tabla{width:100%;border-collapse:collapse;font-size:15px}.tabla th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--suave);padding:10px 8px;border-bottom:1px solid var(--borde);font-weight:600}.tabla td{padding:12px 8px;border-bottom:1px solid var(--borde);vertical-align:top}.marca{display:inline-flex;align-items:center;gap:4px;margin:0 6px 4px 0;padding:4px 8px;border-radius:999px;font-size:14px;font-variant-numeric:tabular-nums;background:#0b3b2e;color:#a7f3d0}.marca.salida{background:#3b2a0b;color:#fde68a}.marca.anulada{background:transparent;color:var(--suave);text-decoration:line-through;border:1px solid var(--borde)}.marca.abierta{background:transparent;color:#fbbf24;border:1px dashed #92400e}.tilde{display:inline-flex;align-items:center;gap:7px;margin:0;font-size:13.5px}.tilde input{width:auto;padding:0}button.enlace{width:auto;margin:0;padding:0;background:transparent;font-size:inherit;font-weight:600;color:inherit;text-decoration:underline}.marca .x{width:auto;margin:0 0 0 2px;padding:0 4px;background:transparent;color:inherit;font-size:16px;line-height:1;opacity:.6}.alerta{color:#fca5a5;font-size:13px}.ok{color:#6ee7b7;font-size:13px}.fondo{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--panel);border:1px solid var(--borde);border-radius:16px;padding:20px;width:100%;max-width:420px;max-height:90vh;overflow:auto}.modal h2{margin:0 0 4px;font-size:20px}.codigo{font-size:44px;font-weight:700;letter-spacing:.15em;text-align:center;padding:20px;margin:16px 0;background:var(--fondo);border-radius:12px;font-family:ui-monospace,monospace}.conPanel{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}.conPanel main{min-width:0}@media(max-width:900px){.conPanel{grid-template-columns:1fr}}.rail{background:var(--panel);border:1px solid var(--borde);border-radius:16px;padding:14px;max-height:calc(100vh - 120px);overflow:auto;position:sticky;top:16px}.rail-cab h2{margin:0;font-size:20px;display:flex;align-items:center;gap:8px}.rail-cab input{margin-top:10px;padding:10px;font-size:14px}.globo{background:var(--borde);color:var(--texto);border-radius:999px;padding:2px 9px;font-size:13px;font-weight:600}.rail-area{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:13px;font-weight:600;color:var(--suave);text-transform:capitalize}.punto{width:9px;height:9px;border-radius:50%;background:var(--ok);flex:none}.rail-fila{border:1px solid var(--borde);border-radius:12px;padding:10px 12px;margin-bottom:8px}.rail-fila.apagada{opacity:.55}.rail-fila .activo{font-size:12px;color:var(--ok);margin-top:4px}.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:16px 0}.tarjetas .tarjeta{margin:0}.numero{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;margin:4px 0}button.grande{padding:26px;font-size:22px;font-weight:700;margin-top:14px}button.grande.entrada{background:#15803d;color:#fff}button.grande.salida{background:#b45309;color:#fff}.marca-emp{display:flex;align-items:center;gap:10px;margin-bottom:18px}.marca-emp img{width:30px;height:38px;display:block}.marca-emp span{font-size:21px;font-weight:500;color:var(--suave);letter-spacing:-.01em}.marca-emp span b{color:var(--texto);font-weight:700}.marca-emp.chica img{width:20px;height:26px}.marca-emp.chica span{font-size:15px}.marca-emp.chica{margin-bottom:12px}.admin{--fondo: #f6f7fb;--panel: #ffffff;--borde: #e6e8ef;--texto: #15161c;--suave: #6b7183;--acento: #2a6049;--acento-suave: #e9f0ec;--marca-punto: #c8860d;--ok: #0f9d58;--error: #d93025;display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--fondo);color:var(--texto)}.admin .menu{background:var(--panel);border-right:1px solid var(--borde);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow:hidden}.admin .menu nav{flex:1;min-height:0;overflow-y:auto;margin:0 -4px;padding:0 4px;scrollbar-width:thin}.admin .marca-proveo{display:flex;align-items:center;gap:9px;font-size:17px;padding:4px 10px 20px;letter-spacing:-.01em}.admin .marca-proveo b{font-weight:700}.admin .logo{width:26px;height:33px;display:block}.admin .marca-proveo{font-weight:500;color:var(--acento)}.admin .marca-proveo b{color:var(--texto);font-weight:700}.admin .menu-grupo{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--suave);padding:16px 10px 6px;font-weight:600}.admin .menu-item{width:100%;display:flex;align-items:center;gap:10px;margin:0;padding:10px;border:0;border-radius:10px;background:transparent;color:var(--suave);font-size:14.5px;font-weight:500;text-align:left;cursor:pointer}.admin .menu-item:hover{background:var(--fondo);color:var(--texto)}.admin .menu-item.activo{background:var(--acento-suave);color:var(--acento);font-weight:600}.admin .menu-item.salir{margin-top:auto}.admin .hamburguesa{display:none}.admin .cuerpo{min-width:0;display:flex;flex-direction:column}.admin .encabezado{background:var(--panel);border-bottom:1px solid var(--borde);padding:12px 24px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20}.admin .selector{display:flex;align-items:center;gap:8px;border:1px solid var(--borde);border-radius:999px;padding:4px 12px 4px 4px;background:var(--panel)}.admin .inicial{width:26px;height:26px;border-radius:8px;background:var(--acento-suave);color:var(--acento);display:grid;place-items:center;font-weight:700;font-size:13px}.admin .selector select{border:0;background:transparent;padding:4px 2px;font-size:14px;font-weight:500;color:var(--texto)}.admin .titulo{font-size:26px;font-weight:700;margin:0 0 18px;letter-spacing:-.02em}.admin .conPanel{padding:24px;gap:24px}.admin input,.admin select{background:var(--panel);border:1px solid var(--borde);color:var(--texto);border-radius:10px;font-size:14.5px;padding:10px 12px}.admin input:focus,.admin select:focus{outline:2px solid var(--acento-suave);border-color:var(--acento)}.admin label{color:var(--suave);font-size:12.5px;font-weight:500}.admin button{background:var(--acento);color:#fff;border-radius:10px;font-size:14.5px;width:auto;margin-top:0;padding:10px 16px}.admin .menu-item{width:100%}.admin button.secundario,.admin button.chico{background:var(--panel);color:var(--texto);border:1px solid var(--borde);font-weight:500}.admin button.secundario:hover,.admin button.chico:hover{background:var(--fondo)}.admin .tarjeta,.admin .rail,.admin .modal{background:var(--panel);border:1px solid var(--borde);border-radius:14px;box-shadow:0 1px 2px #10121c0a}.admin .suave{color:var(--suave)}.admin .numero{font-size:30px;letter-spacing:-.02em}.admin .tabla{background:var(--panel);border:1px solid var(--borde);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #10121c0a}.admin .tabla th{background:#fbfbfd;color:var(--suave)}.admin .tabla td,.admin .tabla th{padding:13px 16px}.admin .globo{background:var(--acento-suave);color:var(--acento);white-space:nowrap}.admin .globo.borrador{background:var(--fondo);color:var(--suave)}.admin .globo.espera{background:#fff8e8;color:#8a4b08}.admin .globo.bien{background:#e8f5ee;color:#0b6b3a}.admin .globo.mal{background:#fdecea;color:#a5281b}.admin .punto{background:var(--marca-punto)}.admin .rail-fila{border-color:var(--borde)}.admin .rail-fila .activo{color:var(--ok)}.admin .marca{font-variant-numeric:tabular-nums}.admin .marca{background:#e8f5ee;color:#0b6b3a}.admin .marca.salida{background:#fdf0e3;color:#8a4b08}.admin .marca.anulada{background:transparent;color:var(--suave);border-color:var(--borde)}.admin .marca.abierta{background:#fff8e8;color:#8a4b08;border:1px dashed #e0b35c}.admin .tilde{color:var(--texto)}.admin .modal .tabla{margin-top:14px}.admin .modal.ancho{max-width:560px}.admin .aviso.ok{background:#e9f7ef;color:#0b6b3a;border:1px solid #c7e9d5}.admin .aviso.error{background:#fdecea;color:#a5281b;border:1px solid #f6cfca}.admin .fondo{background:#10121c73}.admin .codigo{background:var(--fondo);color:var(--texto)}.admin .alerta{color:var(--error)}.admin .ok{color:var(--ok)}@media(max-width:1000px){.admin{grid-template-columns:1fr}.admin .menu{position:fixed;z-index:40;width:248px;transform:translate(-100%);transition:transform .2s}.admin .menu.abierto{transform:none;box-shadow:0 0 0 100vmax #10121c66}.admin .hamburguesa{display:block;width:auto;margin:0;padding:8px 12px;background:var(--panel);color:var(--texto);border:1px solid var(--borde)}}.login{--fondo: #f6f7fb;--panel: #ffffff;--borde: #e6e8ef;--texto: #15161c;--suave: #6b7183;--acento: #2a6049;--error: #d93025;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--fondo);color:var(--texto)}.login .puntos{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none}.login .centro{position:relative;z-index:1;height:100%;display:grid;place-items:center;padding:24px 16px;overflow:auto}.login .caja{width:100%;max-width:384px;animation:login-entra .4s ease-out both}@keyframes login-entra{0%{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){.login .caja{animation:none}}.login .cabecera{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:24px}.login .sello{width:56px;height:56px;border-radius:16px;margin-bottom:16px;background:var(--acento);display:grid;place-items:center;box-shadow:0 10px 24px -8px #2a604980}.login .sello img{width:23px;height:29px;display:block}.login h1{font-size:27px;font-weight:500;margin:0;letter-spacing:-.02em;color:var(--acento)}.login h1 b{color:var(--texto);font-weight:700}.login .bajada{margin:5px 0 0;font-size:14px;color:var(--suave)}.login .ficha{background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--borde);border-radius:18px;padding:24px;box-shadow:0 24px 48px -20px #15161c38;margin:0}.login label{display:block;font-size:13.5px;font-weight:600;color:var(--texto);margin:0 0 7px}.login .campo+label{margin-top:16px}.login .campo{position:relative;display:flex;align-items:center}.login .campo .icono{position:absolute;left:12px;color:var(--suave);pointer-events:none}.login .campo input{width:100%;padding:12px 12px 12px 37px;font-size:15px;border:1px solid var(--borde);border-radius:11px;background:var(--panel);color:var(--texto)}.login .campo input::placeholder{color:#a3a8b8}.login .campo input:focus-visible{outline:0;border-color:var(--acento);box-shadow:0 0 0 3px #2a604926}.login button{width:100%;margin-top:22px;padding:13px;font-size:15.5px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:11px;background:var(--acento);color:#fff;cursor:pointer}.login button:hover:not(:disabled){background:#23503e}.login button:disabled{opacity:.55;cursor:default}.login .girando{width:15px;height:15px;border-radius:50%;flex:none;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:login-gira .7s linear infinite}@keyframes login-gira{to{transform:rotate(360deg)}}.login .aviso{padding:10px 12px;border-radius:10px;margin:0 0 16px;font-size:14px}.login .aviso.error{background:#fdecea;color:#a4231b;border:1px solid #f6c9c5}.login .pie{margin:22px 0 0;text-align:center;font-size:12px;color:var(--suave)}
