:root{--rojo:#691807;--rojo2:#F7D9D2;--ok:#1b7a43;--mal:#b3261e;--aviso:#9a6700;--borde:#cfd8e3;--fondo:#f6f8fa}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,"Segoe UI",sans-serif;background:var(--fondo);color:#1b2430}
.top{background:var(--azul);color:#fff;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;justify-content:space-between;padding:.7rem 1.2rem}
.top nav{display:flex;flex-wrap:wrap;gap:1rem}.top a{color:#fff;text-decoration:none}.top a:hover{text-decoration:underline}
main{max-width:1050px;margin:1.5rem auto;padding:0 1rem}
h1{margin:.2rem 0 1rem;font-size:1.6rem;color:var(--azul)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borde)}
th,td{padding:.5rem .7rem;border-bottom:1px solid var(--borde);text-align:left;vertical-align:top}
th{background:var(--azul2)}
form.caja,.caja{background:#fff;border:1px solid var(--borde);padding:1rem;margin-bottom:1.2rem;border-radius:6px}
.fila{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end}
label{display:flex;flex-direction:column;font-size:.9rem;gap:.2rem;flex:1 1 180px}
input,select,button,.btn{font:inherit;padding:.5rem .7rem;border:1px solid var(--borde);border-radius:5px;background:#fff}
button,.btn{background:var(--azul);color:#fff;border-color:var(--azul);cursor:pointer;text-decoration:none;display:inline-block}
button.sec,.btn.sec{background:#fff;color:var(--azul)}button.del{background:var(--mal);border-color:var(--mal)}
:focus-visible{outline:3px solid #f2b705;outline-offset:2px}
.msg{padding:.7rem 1rem;border-radius:5px;margin-bottom:1rem;background:#e6f4ea;color:var(--ok)}.msg.err{background:#fce8e6;color:var(--mal)}
.centro{max-width:460px;margin:3rem auto}
/* escáner */
.kiosco{max-width:560px;margin:1.5rem auto;padding:0 1rem;text-align:center}
#lector{width:100%;border-radius:8px;overflow:hidden;background:#000;min-height:120px}
#resultado{min-height:170px;margin-top:1rem;padding:1.2rem;border-radius:8px;background:#fff;border:2px solid var(--borde);font-size:1.2rem}
#resultado.ok{border-color:var(--ok);background:#e6f4ea}#resultado.err{border-color:var(--mal);background:#fce8e6}#resultado.aviso{border-color:var(--aviso);background:#fff8e1}
#resultado .nombre{font-size:1.6rem;font-weight:700}
/* credenciales */
.cred{display:inline-block;width:240px;margin:.5rem;padding:.8rem;background:#fff;border:1px solid #000;text-align:center;page-break-inside:avoid}
.cred .qr{display:flex;justify-content:center;margin:.5rem 0}
@media print{.top,.noprint,form.caja{display:none!important}body{background:#fff}main{margin:0;max-width:none}}
#resultado .titulo{font-size:1.9rem;font-weight:800;letter-spacing:.02em;margin-bottom:.4rem}
#resultado:empty{background:transparent;border-color:transparent}
