[hidden]{display:none!important}
/* Estilos base de las páginas internas (acceso, panel). */
:root{--azul:#002E6E;--celeste:#0097D7;--turquesa:#00B2A9;--verde:#39B54A;--verde2:#5DBF3A;--amarillo:#FFC107;--rojo:#E53935;--gris:#5b6b7c;--linea:#e3e9f0;--fondo:#f5f8fb}
*{box-sizing:border-box}
body{margin:0;font-family:Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--azul);background:var(--fondo);line-height:1.5}
a{color:inherit}
.wrap{width:min(1180px,100% - 32px);margin:0 auto}
header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);border-bottom:1px solid var(--linea)}
.brand{font-weight:800;font-size:24px;letter-spacing:-.5px;text-decoration:none;white-space:nowrap}.brand b{color:var(--verde)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:10px;font:inherit;font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer}
.btn.verde{background:var(--verde);color:#fff}.btn.verde:hover{background:#2f9a3e}
.btn.linea{background:#fff;color:var(--azul);border:1.5px solid var(--azul)}
.btn.chico{padding:9px 16px;font-size:14px}
.btn:disabled{opacity:.55;cursor:not-allowed}
main{padding:34px 0 60px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-radius:22px;padding:28px;box-shadow:0 24px 50px -40px rgba(0,46,110,.5)}
.estado{margin-top:14px;padding:12px 14px;border-radius:12px;background:#eef6ff;font-size:14px}
.estado.error{background:#fff0ec;color:#9c2f16}.estado.ok{background:#e9f7ec;color:#1f6b2a}.estado[hidden]{display:none}
.campos{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.campos label{font-size:13px;font-weight:700}.campos .ancho{grid-column:1/-1}
.campos input,.campos select{width:100%;margin-top:4px;padding:11px 12px;border:1px solid #cdd8e3;border-radius:10px;font:inherit;font-weight:500;background:#fff}
.campos input:focus,.campos select:focus{outline:2px solid #9fd0f0;border-color:var(--celeste)}
.campos small{display:block;font-weight:500;color:var(--gris);margin-top:3px}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-weight:600;font-size:14px}.check input{width:20px;height:20px;margin-top:2px;flex:none}
.demo{max-width:900px;margin:0 auto 16px;padding:10px 14px;border-radius:12px;background:#fff7e0;color:#7a5600;font-size:13.5px;font-weight:600;text-align:center}
@media (max-width:700px){.campos{grid-template-columns:1fr}.tarjeta{padding:20px}}
