:root{--azul:#003366;--azul-osc:#00264d;--naranja:#FF9900;--naranja-osc:#e68a00;--fondo:#F8F9FA;--texto:#1a1a1a;--suave:#5b6470;--borde:#cfd6de;--error:#b00020;--ok:#1b6e3c;--radio:12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--fondo);color:var(--texto);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--azul)}:focus-visible{outline:3px solid var(--azul);outline-offset:2px}.sr-only{width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.omitir,.sr-only{position:absolute}.omitir{left:8px;top:-60px;background:#fff;padding:8px 12px;border-radius:8px;z-index:10}.omitir:focus{top:8px}.cab{background:var(--azul);color:#fff;border-bottom:5px solid var(--naranja);padding:20px 16px}.cab h1{margin:0;font-size:1.35rem}.cab p{margin:2px 0 0;opacity:.9;font-size:.95rem}.contenedor{max-width:520px;margin:0 auto;padding:20px 16px 40px}.ancho{max-width:1100px}.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:20px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.tarjeta+.tarjeta{margin-top:16px}h2{font-size:1.15rem;color:var(--azul);margin:0 0 4px}.ayuda{color:var(--suave);font-size:.9rem;margin:2px 0 0}.campo{margin-top:18px}label,legend{display:block;font-weight:600;color:var(--azul);margin-bottom:6px}input[type=date],input[type=email],input[type=file],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid #8b97a5;border-radius:10px;background:#fff;color:var(--texto)}input[aria-invalid=true]{border-color:var(--error)}.error{color:var(--error);font-size:.9rem;margin-top:6px;font-weight:500}fieldset{border:0;padding:0;margin:18px 0 0}.opciones{display:grid;grid-gap:10px;gap:10px}.opcion{display:flex;align-items:center;gap:10px;border:1.5px solid #8b97a5;border-radius:10px;padding:12px 14px;font-weight:500;color:var(--texto);margin:0;cursor:pointer;background:#fff}.opcion input{width:20px;height:20px;accent-color:var(--azul)}.opcion:has(input:checked){border-color:var(--azul);background:#eef3f9}.boton{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:700;font-size:1.05rem;min-height:48px;padding:12px 20px;border:0;border-radius:10px;cursor:pointer;background:var(--naranja);color:var(--azul-osc);text-decoration:none}.boton:hover{background:var(--naranja-osc)}.boton[disabled]{opacity:.6;cursor:wait}.boton.bloque{width:100%;margin-top:24px}.boton.sec{background:#fff;color:var(--azul);border:1.5px solid var(--azul)}.boton.peq{min-height:36px;padding:6px 12px;font-size:.9rem}.boton.peligro{background:#fff;color:var(--error);border:1.5px solid var(--error)}.alerta{border-radius:10px;padding:12px 14px;margin-top:16px;border:1.5px solid}.alerta.err{color:var(--error);border-color:var(--error);background:#fdecef}.alerta.ok{color:var(--ok);border-color:var(--ok);background:#e9f6ee}.alerta.aviso{color:#7a4a00;border-color:#b87400;background:#fff6e5}.pie{text-align:center;color:var(--suave);padding:16px}.etiqueta,.pie{font-size:.8rem}.etiqueta{display:inline-block;font-weight:700;padding:2px 10px;border-radius:999px}.etiqueta.ok{background:#e9f6ee;color:var(--ok)}.etiqueta.err{background:#fdecef;color:var(--error)}.etiqueta.aviso{background:#fff6e5;color:#7a4a00}.consec{font:700 1.6rem ui-monospace,Menlo,monospace;color:var(--azul);letter-spacing:.02em}.barra{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--azul);padding:12px 16px;border-bottom:5px solid var(--naranja)}.barra,.barra a{color:#fff}.barra nav{display:flex;gap:16px;align-items:center}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px;margin-top:16px}.kpi{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:16px}.kpi b{display:block;font-size:1.6rem;color:var(--azul)}.kpi span{color:var(--suave);font-size:.85rem}.tabla-wrap{overflow-x:auto;margin-top:12px}table{border-collapse:collapse;width:100%;font-size:.9rem;background:#fff}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid #e3e8ee;vertical-align:top}th{background:#f2f4f7;color:var(--azul);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}tr.anulada td{background:#fdf3f4;color:#6b6b6b}tr.anulada .mono{text-decoration:line-through}.mono{font-family:ui-monospace,Menlo,monospace}.fila{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.fila .campo{margin-top:12px;flex:1 1 180px}.progreso{height:14px;background:#e3e8ee;border-radius:999px;overflow:hidden;margin-top:8px}.progreso>div{height:100%;background:var(--naranja)}.barra-dist{display:flex;height:18px;border-radius:999px;overflow:hidden;margin-top:8px;background:#e3e8ee}details summary{cursor:pointer;color:var(--azul);font-weight:600}@media (prefers-reduced-motion:no-preference){.boton{transition:background .15s}}.barra nav{flex-wrap:wrap}.barra .quien{opacity:.85;font-size:.9rem}details>summary{margin-top:4px}td details+form,td form+details{margin-top:6px}td input[type=number],td input[type=text]{padding:8px 10px;min-width:140px}.acceso{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin-top:12px;color:var(--texto)}.acceso dl{margin:0}.acceso dt{font-weight:600;color:var(--azul)}.acceso dd{margin:0 0 8px;font-size:1.05rem;word-break:break-all}.lector{width:100%;max-width:420px;margin:12px auto 0;border-radius:var(--radio);overflow:hidden;background:#000}.lector:empty{display:none}.resultado-puerta{margin-top:16px;border-radius:var(--radio);padding:20px;text-align:center;border:3px solid}.resultado-puerta strong{display:block;font-size:1.6rem}.resultado-puerta p{margin:6px 0 0;font-size:1.1rem}.resultado-puerta.ok{background:#e9f6ee;color:var(--ok)}.resultado-puerta.aviso{background:#fff6e5;color:#7a4a00}.resultado-puerta.err{background:#fdecef;color:var(--error)}.cita{margin:12px 0;padding:8px 16px;border-left:4px solid var(--naranja);color:var(--suave);font-style:italic;white-space:pre-line}.cab h1{line-height:0}.logo{height:44px;width:auto;display:block}.logo.peq{height:30px;display:inline-block;vertical-align:middle}.barra .marca{display:inline-flex;align-items:center;gap:8px}