:root{--primario:#0B1D3A;--secundario:#C9A227;--fondo:#F4F6F9;--tarjeta:#fff;--texto:#1E293B;--texto2:#64748B;--ok:#15803D;--warn:#B45309;--mal:#B91C1C;--azul:#1d4ed8}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--fondo);color:var(--texto)}
a{color:var(--azul)}h1{font-size:1.5rem;margin:.2rem 0 .8rem}h2{font-size:1.15rem;margin-top:1.6rem}.sub{color:var(--texto2);margin-top:0}
.top{background:var(--primario);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.2rem;flex-wrap:wrap;gap:.5rem}
.top a,.top .enlace{color:#fff}.marca a{font-weight:700;text-decoration:none;color:var(--secundario);font-size:1.1rem}.usuario{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:.9rem}.rol{opacity:.75}
.menu{background:#14294f;display:flex;flex-wrap:wrap}.menu a{color:#dbe4f5;padding:.55rem .9rem;text-decoration:none;font-size:.92rem}.menu a:hover{background:var(--primario);color:var(--secundario)}
.contenido{max-width:1200px;margin:1.2rem auto;padding:0 1.2rem}.pie{text-align:center;color:var(--texto2);font-size:.8rem;padding:1.5rem}
.barra{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem}
.btn{display:inline-block;background:var(--primario);color:#fff;border:0;border-radius:6px;padding:.5rem 1rem;cursor:pointer;text-decoration:none;font-size:.95rem}.btn:hover{background:#14294f}.btn.sec{background:#fff;color:var(--primario);border:1px solid #cbd5e1}
.enlace{background:none;border:0;cursor:pointer;color:var(--azul);padding:0;font:inherit;text-decoration:underline}.inline{display:inline}
.tabla{width:100%;border-collapse:collapse;background:var(--tarjeta);border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0001}.tabla th,.tabla td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid #e2e8f0;vertical-align:top}.tabla th{background:#eef2f7;font-size:.82rem;color:var(--texto2)}.acc form{display:block}
.chip{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.8rem;color:#fff;background:#64748b}.chip.verde{background:var(--ok)}.chip.ambar{background:var(--warn)}.chip.rojo{background:var(--mal)}.chip.azul{background:var(--azul)}.chip.gris{background:#64748b}
.aviso{padding:.6rem .9rem;border-radius:6px;margin:.5rem 0;border-left:4px solid}.aviso.ok{background:#dcfce7;border-color:var(--ok)}.aviso.error{background:#fee2e2;border-color:var(--mal)}.aviso.info{background:#e0ecff;border-color:var(--azul)}
.formulario{background:var(--tarjeta);padding:1rem 1.2rem;border-radius:8px;box-shadow:0 1px 2px #0001;max-width:820px}.fila{margin-bottom:.9rem}.fila label{display:block;font-weight:600;margin-bottom:.2rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],select,textarea{width:100%;padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font:inherit}
.chk{display:flex;gap:.5rem;align-items:flex-start;font-weight:400!important}.multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.25rem}.req{color:var(--mal)}.ayuda{display:block;color:var(--texto2)}.error{color:var(--mal)}.conerror input,.conerror select,.conerror textarea{border-color:var(--mal)}
.salud{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin:1rem 0}.indicador{background:var(--tarjeta);border-radius:8px;padding:.8rem;border-top:5px solid #94a3b8;display:flex;flex-direction:column;gap:.2rem}.indicador .num{font-size:1.8rem;font-weight:700}.indicador.verde{border-color:var(--ok)}.indicador.ambar{border-color:var(--warn)}.indicador.rojo{border-color:var(--mal)}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}.tarjeta{background:var(--tarjeta);border-radius:8px;padding:.9rem;text-decoration:none;color:var(--texto);box-shadow:0 1px 2px #0001;display:flex;flex-direction:column;gap:.3rem}.tarjeta strong{font-size:1.6rem;color:var(--primario)}.tarjeta span{color:var(--texto2);font-size:.85rem}
.datos{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:.3rem 1rem;background:var(--tarjeta);padding:1rem;border-radius:8px}.datos dt{font-weight:600;color:var(--texto2)}.datos dd{margin:0}
.secreto{background:#eef2f7;padding:.2rem .4rem;border-radius:4px;word-break:break-all}.pag a{padding:.2rem .5rem}.pag .act{font-weight:700}
.solo{display:flex;min-height:100vh;align-items:center;justify-content:center;background:var(--primario)}.caja{background:#fff;padding:1.6rem;border-radius:10px;width:min(420px,92vw)}.caja h1{margin-top:0}.caja .btn{width:100%}
[hidden]{display:none!important}
@media print{.top,.menu,.noprint,.pie{display:none!important}body{background:#fff}.ficha{page-break-inside:avoid;margin-bottom:1rem}.datos{box-shadow:none}}

/* Pantallas de acceso con imagen de fondo (reemplace assets/login-bg.jpg por su propia imagen, ~1920x1080) */
.solo.con-fondo{background:#0B1D3A url('login-bg.jpg') center/cover no-repeat;padding:1rem}
.solo.con-fondo .caja{background:rgba(255,255,255,.95);box-shadow:0 24px 70px rgba(0,0,0,.55);border-top:4px solid var(--secundario)}
.caja .marca-login{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--texto2);margin:0 0 .2rem}
.caja .legal{font-size:.75rem;color:var(--texto2);text-align:center;margin:1rem 0 0}
@supports (backdrop-filter:blur(6px)){.solo.con-fondo .caja{background:rgba(255,255,255,.9);backdrop-filter:blur(6px)}}
