/* Paleta del sistema (documentar en Diseño de Pantallas)
   Primario #0B3D6E  | Acento #C8102E | Fondo #F4F6F9 | Texto #1F2933 | Borde #D9DEE5 */
:root { --primario:#0B3D6E; --primario-osc:#082C50; --acento:#C8102E; --fondo:#F4F6F9; --texto:#1F2933; --borde:#D9DEE5; --blanco:#FFFFFF; }
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:var(--texto); background:var(--fondo); }
.fondo-login { min-height:100vh; display:grid; place-items:center; background:linear-gradient(135deg,var(--primario),var(--primario-osc)); padding:16px; }
.tarjeta-login { background:var(--blanco); width:100%; max-width:400px; padding:32px; border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.tarjeta-login h1 { margin:0 0 4px; color:var(--primario); font-size:1.5rem; }
.sub { margin:0 0 24px; font-size:.85rem; color:#52606D; }
label { display:block; font-weight:600; margin:14px 0 6px; font-size:.9rem; }
input { width:100%; padding:10px 12px; border:1px solid var(--borde); border-radius:8px; font-size:1rem; }
input:focus { outline:2px solid var(--primario); border-color:var(--primario); }
.btn { width:100%; margin-top:20px; padding:11px; background:var(--primario); color:var(--blanco); border:0; border-radius:8px; font-size:1rem; font-weight:600; cursor:pointer; }
.btn:hover { background:var(--primario-osc); }
.error { background:#FDECEE; color:var(--acento); border:1px solid #F5C2C9; padding:10px 12px; border-radius:8px; font-size:.9rem; }
.alerta { background:#FFF7E0; border:1px solid #F2D27A; padding:10px 12px; border-radius:8px; margin-bottom:16px; }
.pie { margin:20px 0 0; text-align:center; font-size:.75rem; color:#7B8794; }
.barra { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; background:var(--primario); color:var(--blanco); padding:12px 20px; }
.marca { font-weight:700; } .marca span { font-weight:400; opacity:.8; margin-left:6px; font-size:.85rem; }
.usuario { display:flex; align-items:center; gap:12px; } .usuario small { opacity:.8; }
.btn-sec { background:transparent; color:var(--blanco); border:1px solid rgba(255,255,255,.6); padding:6px 12px; border-radius:6px; cursor:pointer; }
.contenedor { display:flex; min-height:calc(100vh - 56px); }
.menu { width:260px; background:var(--blanco); border-right:1px solid var(--borde); padding:12px 0; }
.menu a { display:block; padding:10px 20px; color:var(--texto); text-decoration:none; font-size:.92rem; }
.menu a:hover, .menu a.activo { background:#E8EEF5; color:var(--primario); }
.cu { display:inline-block; min-width:36px; font-size:.72rem; font-weight:700; color:var(--acento); }
.contenido { flex:1; padding:24px; }
.datos { background:var(--blanco); border:1px solid var(--borde); border-radius:8px; padding:16px; display:grid; gap:8px; max-width:520px; }
@media (max-width:720px) { .contenedor { flex-direction:column; } .menu { width:100%; border-right:0; border-bottom:1px solid var(--borde); } }

/* ---- CU1 Gestión de usuarios ---- */
.encabezado { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.encabezado h2 { margin:0; color:var(--primario); }
.btn-auto { width:auto; margin-top:0; padding:9px 16px; display:inline-block; text-decoration:none; font-size:.92rem; }
.btn-link { background:none; border:0; color:var(--primario); cursor:pointer; text-decoration:underline; font-size:.9rem; padding:0; }
.btn-link.peligro { color:var(--acento); }
.filtros { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.filtros input { flex:1; min-width:220px; width:auto; }
select { padding:10px 12px; border:1px solid var(--borde); border-radius:8px; font-size:1rem; background:var(--blanco); }
.tabla-wrap { overflow-x:auto; background:var(--blanco); border:1px solid var(--borde); border-radius:8px; }
.tabla { width:100%; border-collapse:collapse; font-size:.9rem; }
.tabla th { text-align:left; background:#E8EEF5; color:var(--primario); padding:10px; white-space:nowrap; }
.tabla td { padding:10px; border-top:1px solid var(--borde); vertical-align:middle; }
.tabla .vacio { text-align:center; color:#7B8794; padding:24px; }
.acciones { display:flex; gap:12px; align-items:center; }
.badge { display:inline-block; background:#E8EEF5; color:var(--primario); border-radius:999px; padding:2px 8px; margin:2px; font-size:.75rem; }
.estado { font-size:.78rem; font-weight:600; padding:2px 8px; border-radius:999px; }
.estado-activo { background:#E3F4E8; color:#1E7B3A; }
.estado-inactivo { background:#EEF0F2; color:#52606D; }
.estado-bloqueado { background:#FDECEE; color:var(--acento); }
.avatar { width:34px; height:34px; border-radius:50%; object-fit:cover; display:inline-flex; align-items:center; justify-content:center; }
.avatar-txt { background:rgba(255,255,255,.2); color:var(--blanco); font-size:.8rem; font-weight:700; }
.avatar-gris { background:#D9DEE5; color:var(--primario); }
.avatar-grande { width:96px; height:96px; border-radius:50%; object-fit:cover; border:2px solid var(--borde); }
.formulario fieldset { background:var(--blanco); border:1px solid var(--borde); border-radius:8px; padding:16px; margin:0 0 16px; }
.formulario legend { font-weight:700; color:var(--primario); padding:0 6px; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
.col-2 { grid-column:span 2; }
.checks { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:8px; }
.check { display:flex; gap:8px; align-items:flex-start; font-weight:600; margin:0; }
.check input { width:auto; margin-top:3px; }
.check small { display:block; font-weight:400; color:#7B8794; }
.foto-fila { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.foto-fila input[type=file] { border:0; padding:0; }
small { color:#7B8794; display:block; margin-top:6px; }
.botones { display:flex; gap:16px; align-items:center; }
.exito { background:#E3F4E8; color:#1E7B3A; border:1px solid #B7E1C3; padding:10px 12px; border-radius:8px; margin-bottom:16px; }
.error { margin-bottom:16px; } .error ul { margin:6px 0 0 18px; padding:0; }
.menu a.pendiente { color:#9AA5B1; }
.paginacion { margin-top:16px; }
.pagination { display:flex; gap:4px; list-style:none; padding:0; flex-wrap:wrap; }
.pagination li > * { display:block; padding:6px 11px; border:1px solid var(--borde); border-radius:6px; background:var(--blanco); color:var(--primario); text-decoration:none; font-size:.85rem; }
.pagination li.active > * { background:var(--primario); color:var(--blanco); border-color:var(--primario); }
.pagination li.disabled > * { color:#9AA5B1; }
@media (max-width:720px) { .grid { grid-template-columns:1fr; } .col-2 { grid-column:auto; } }

/* ---- CU2 Habilitación ---- */
h3 { color:var(--primario); margin:24px 0 10px; }
textarea { width:100%; padding:10px 12px; border:1px solid var(--borde); border-radius:8px; font:inherit; }
code { font-size:.8rem; background:#EEF0F2; padding:2px 6px; border-radius:4px; }
.req { color:var(--acento); font-weight:700; }
.form-subir { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.form-subir input[type=file] { border:0; padding:0; width:auto; max-width:240px; font-size:.85rem; }
.campana { background:var(--acento); color:var(--blanco); font-size:.75rem; font-weight:700; padding:3px 8px; border-radius:999px; }
.pestanas { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.pestanas a { padding:7px 12px; border:1px solid var(--borde); border-radius:8px; background:var(--blanco); color:var(--texto); text-decoration:none; font-size:.88rem; }
.pestanas a.activa { background:var(--primario); color:var(--blanco); border-color:var(--primario); }
.pestanas a.activa .badge { background:rgba(255,255,255,.25); color:var(--blanco); }
.estado-sol-borrador, .estado-req-pendiente { background:#EEF0F2; color:#52606D; }
.estado-sol-enviada { background:#E6F0FB; color:#0B3D6E; }
.estado-sol-observada, .estado-req-observado { background:#FFF7E0; color:#8A6100; }
.estado-sol-habilitada, .estado-req-valido { background:#E3F4E8; color:#1E7B3A; }
.estado-sol-rechazada { background:#FDECEE; color:var(--acento); }
.datos + .formulario, .datos + .alerta { margin-top:16px; }

/* ---- Notificaciones ---- */
a.campana { text-decoration:none; }
.campana-0 { background:rgba(255,255,255,.15); }
.no-leida td { background:#F5F9FF; }
.punto { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--acento); }
