:root{--azul:#1e3a5f;--azul2:#2d5a8e;--acento:#e8734a;--gris:#f4f5f7;--borde:#dde1e6;--ok:#2e7d4f;--rojo:#c0392b;--oro:#b8860b}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--gris);color:#222;font-size:15px}
a{color:var(--azul2)}
header.top{background:var(--azul);color:#fff;padding:0 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
header.top .logo{font-size:1.25rem;font-weight:700;letter-spacing:2px;padding:14px 0}
header.top .logo span{color:var(--acento)}
header.top nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
header.top nav a{color:#dce6f2;text-decoration:none;padding:16px 12px;font-size:.92rem}
header.top nav a:hover{background:var(--azul2);color:#fff}
header.top nav a.activo{border-bottom:3px solid var(--acento);color:#fff}
.badge-noti{background:var(--acento);color:#fff;border-radius:10px;padding:1px 7px;font-size:.75rem;margin-left:4px}
main{max-width:1250px;margin:24px auto;padding:0 20px}
h1{font-size:1.5rem;color:var(--azul)}
h2{font-size:1.15rem;color:var(--azul)}
.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:20px 24px;margin-bottom:18px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.aviso{padding:12px 16px;border-radius:8px;margin-bottom:16px;border:1px solid}
.aviso.ok{background:#e8f5ee;border-color:#bfe3cf;color:#1d5c3a}
.aviso.error{background:#fdecea;border-color:#f5c6c1;color:#8e2a20}
.aviso.info{background:#eaf2fb;border-color:#c5d9f0;color:#1f4874}
label{display:block;font-weight:600;margin:12px 0 4px;font-size:.9rem}
label .oblig{color:var(--rojo)}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=datetime-local],select,textarea{width:100%;padding:9px 11px;border:1px solid var(--borde);border-radius:7px;font-size:.95rem;font-family:inherit;background:#fff}
textarea{min-height:90px}
.fila{display:flex;gap:16px;flex-wrap:wrap}
.fila>div{flex:1;min-width:220px}
.boton{display:inline-block;background:var(--azul2);color:#fff;border:none;border-radius:7px;padding:10px 18px;font-size:.95rem;cursor:pointer;text-decoration:none;font-family:inherit}
.boton:hover{background:var(--azul)}
.boton.acento{background:var(--acento)}
.boton.acento:hover{background:#cf5f38}
.boton.suave{background:#e9edf2;color:var(--azul)}
.boton.peligro{background:var(--rojo)}
.boton.mini{padding:5px 10px;font-size:.82rem}
table.datos{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}
table.datos th{background:var(--azul);color:#fff;text-align:left;padding:9px 10px;position:sticky;top:0}
table.datos td{padding:8px 10px;border-bottom:1px solid var(--borde);vertical-align:top}
table.datos tr:hover td{background:#f0f4f9}
.etiqueta{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.76rem;font-weight:600;margin:1px}
.etiqueta.premier{background:#fdf3d7;color:var(--oro);border:1px solid #eddfa8}
.etiqueta.vetado{background:#fdecea;color:var(--rojo);border:1px solid #f5c6c1}
.etiqueta.tipo{background:#eaf2fb;color:var(--azul2);border:1px solid #c5d9f0}
.etiqueta.estado{background:#eee;color:#444;border:1px solid #ddd}
.etiqueta.ok{background:#e8f5ee;color:var(--ok);border:1px solid #bfe3cf}
.cuadricula{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.stat{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:18px;text-align:center}
.stat .num{font-size:2rem;font-weight:700;color:var(--azul)}
.casillas{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:6px}
.casillas label{font-weight:normal;display:flex;align-items:center;gap:6px;margin:2px 0}
.nota{font-size:.83rem;color:#666;margin-top:4px}
.centrado{max-width:460px;margin:60px auto}
fieldset{border:1px solid var(--borde);border-radius:8px;margin:18px 0;padding:6px 16px 16px}
legend{font-weight:700;color:var(--azul);padding:0 8px}
.canvas-firma{border:2px dashed var(--borde);border-radius:8px;background:#fff;touch-action:none;cursor:crosshair}
footer{padding:24px;text-align:center;color:#888;font-size:.82rem}
@media(max-width:700px){header.top nav a{padding:10px 8px}}
