/* Rutero · alto contraste: texto casi negro sobre fondo claro; botones azul oscuro con texto blanco. */
:root{
  --fondo:#ffffff; --fondo2:#eef2f7; --texto:#0b1220; --suave:#3b4657; --linea:#9aa7b8;
  --azul:#0b3d91; --azul-t:#ffffff; --verde:#0a6b2e; --verde-f:#dff5e6; --rojo:#a8001c; --rojo-f:#fde4e8; --ambar:#7a4a00; --ambar-f:#fff0cc;
}
@media (prefers-color-scheme: dark){
  :root:not([data-tema="claro"]){ --fondo:#0b1220; --fondo2:#17233a; --texto:#f4f7fb; --suave:#c3cddd; --linea:#5b6b85; --azul:#8fb8ff; --azul-t:#06142e; --verde:#7ee2a0; --verde-f:#0f3a22; --rojo:#ff9bab; --rojo-f:#4a0f1a; --ambar:#ffd27a; --ambar-f:#3d2a00; }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:18px}
body{margin:0;background:var(--fondo);color:var(--texto);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.35;padding-bottom:env(safe-area-inset-bottom)}
.barra{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--azul);color:var(--azul-t);font-weight:700}
.barra .tit{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem}
.barra button{background:transparent;color:inherit;border:2px solid currentColor;border-radius:10px;padding:6px 10px;font-size:.9rem;font-weight:700;width:auto;min-height:40px;margin:0}
.punto{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:4px;border:2px solid currentColor}
.punto.on{background:#35e07a;border-color:#fff}.punto.off{background:#ff5a6e;border-color:#fff}
.vista{padding:14px 14px 96px;max-width:640px;margin:0 auto}
h1{font-size:1.4rem;margin:.2rem 0 .6rem}h2{font-size:1.1rem;margin:1.1rem 0 .4rem}
a{color:var(--azul)}
p{margin:.3rem 0}.suave{color:var(--suave)}.chico{font-size:.85rem}.centro{text-align:center}.der{text-align:right}
.tarjeta{background:var(--fondo2);border:2px solid var(--linea);border-radius:14px;padding:12px 14px;margin:10px 0}
.tarjeta.enlace{display:block;color:inherit;text-decoration:none;width:100%;text-align:left;font:inherit;font-weight:400;min-height:0}
.fila{display:flex;align-items:center;gap:10px}.fila>.crece{flex:1;min-width:0}
.espacio{justify-content:space-between}
button,.boton{font:inherit;font-weight:800;border-radius:14px;border:3px solid var(--azul);background:var(--azul);color:var(--azul-t);padding:14px 16px;min-height:54px;width:100%;margin:6px 0;cursor:pointer;display:block;text-align:center;text-decoration:none}
button.sec,.boton.sec{background:var(--fondo);color:var(--azul)}
button.peligro{background:var(--rojo);border-color:var(--rojo);color:#fff}
button.verde{background:var(--verde);border-color:var(--verde);color:#fff}
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]) button.verde,:root:not([data-tema="claro"]) button.peligro{color:#06142e}}
button:disabled{opacity:.45;cursor:not-allowed}
button.mini{width:auto;min-height:44px;padding:8px 14px;margin:0;display:inline-block}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dos>*{margin:4px 0}
input,select,textarea{font:inherit;width:100%;padding:12px;border:3px solid var(--linea);border-radius:12px;background:var(--fondo);color:var(--texto);min-height:52px}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:4px solid #ffb703;outline-offset:2px}
label{display:block;font-weight:800;margin:12px 0 4px}
.insignia{display:inline-block;border-radius:999px;padding:3px 10px;font-weight:800;font-size:.8rem;border:2px solid currentColor}
.i-rojo{color:var(--rojo);background:var(--rojo-f)}.i-verde{color:var(--verde);background:var(--verde-f)}.i-ambar{color:var(--ambar);background:var(--ambar-f)}.i-azul{color:var(--azul);background:var(--fondo)}
.grande{font-size:2rem;font-weight:900;line-height:1.1}
.debe{color:var(--rojo)}.bien{color:var(--verde)}
.menu{position:fixed;left:0;right:0;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(5,1fr);background:var(--fondo);border-top:3px solid var(--azul);padding-bottom:env(safe-area-inset-bottom)}
.menu a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;color:var(--suave);text-decoration:none;font-weight:800;font-size:.72rem;min-height:56px}
.menu a .ic{font-size:1.4rem;line-height:1}.menu a.on{color:var(--azul);background:var(--fondo2)}
.aviso{position:fixed;left:12px;right:12px;bottom:80px;z-index:9;padding:14px;border-radius:12px;font-weight:800;background:var(--texto);color:var(--fondo);text-align:center}
.aviso.mal{background:var(--rojo);color:#fff}
.paso{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 0;border-bottom:2px solid var(--linea)}
.cant{display:flex;align-items:center;gap:6px}.cant button{width:48px;min-height:48px;padding:0;margin:0;font-size:1.4rem}
.cant input{width:64px;text-align:center;padding:6px;min-height:48px}
.pie-fijo{position:sticky;bottom:64px;background:var(--fondo);border-top:3px solid var(--azul);padding:8px 0;margin-top:12px}
.nip{display:flex;justify-content:center;gap:12px;margin:16px 0}.nip i{width:22px;height:22px;border-radius:50%;border:3px solid var(--azul);display:block}.nip i.l{background:var(--azul)}
.teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.teclado button{font-size:1.5rem;margin:0}
pre.ticket{background:#fff;color:#000;border:2px solid #000;padding:10px;font:14px/1.25 ui-monospace,Consolas,monospace;white-space:pre;overflow:auto;border-radius:6px}
video.cam{width:100%;border-radius:14px;background:#000;max-height:60vh;object-fit:cover}
.lista-vacia{padding:26px 10px;text-align:center;color:var(--suave)}
.pila{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
