/* Sistema visual 1.2.1. Capa común: jerarquía, ritmo y controles consistentes. */
:root { --radio:16px; --borde:#e0e6ee; --fondo:#f5f7fb; --texto:#203047; --texto-suave:#5d6b7e; --sombra:0 4px 24px rgba(31,48,71,.035); }
.saltar-contenido { position:fixed; top:-100px; left:16px; z-index:100; padding:12px; background:#fff; border:2px solid var(--color-primario); }
.saltar-contenido:focus { top:12px; }
.interfaz-unificada .contenido { padding:32px clamp(20px,3vw,44px); }
.interfaz-unificada .barra { min-height:88px; background:#fff; backdrop-filter:none; }
.interfaz-unificada .barra h1 { font-size:1.45rem; letter-spacing:-.025em; }
.interfaz-unificada .sidebar { overflow-y:auto; background:#152337; padding:24px 16px; }
.interfaz-unificada .menu { margin-top:28px; gap:5px; }
.interfaz-unificada .menu a { padding:11px 14px; border-radius:10px; }
.interfaz-unificada .menu a.activo { background:#2a3e5a; }
.interfaz-unificada .sidebar__pie { margin-top:auto; padding-top:20px; }
.interfaz-unificada h2 { letter-spacing:-.018em; font-size:1.15rem; }
.interfaz-unificada h3 { font-size:1rem; line-height:1.45; }
.interfaz-unificada .tarjeta { padding:24px; margin-bottom:22px; box-shadow:var(--sombra); }
.interfaz-unificada .tarjeta__cabecera { gap:20px; align-items:flex-start; margin-bottom:20px; flex-wrap:wrap; }
.interfaz-unificada .tarjeta__cabecera p { margin:6px 0 0; }
.interfaz-unificada .grid-2 { gap:24px; align-items:start; }
.interfaz-unificada .grid-2--form { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.interfaz-unificada .campo { min-width:0; margin-bottom:18px; }
.interfaz-unificada .campo label { display:block; font-size:.84rem; line-height:1.45; color:#33455d; font-weight:600; margin-bottom:7px; }
.interfaz-unificada input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.interfaz-unificada select,.interfaz-unificada textarea { border-radius:10px; border:1px solid #cdd6e2; background:#fff; min-width:0; font-size:.93rem; padding:11px 12px; color:#203047; }
.interfaz-unificada input:focus,.interfaz-unificada select:focus,.interfaz-unificada textarea:focus { border-color:var(--color-primario); }
.interfaz-unificada input[type=checkbox],.interfaz-unificada input[type=radio] { accent-color:var(--color-primario); }
.interfaz-unificada .boton { min-height:44px; border-radius:10px; padding:11px 17px; line-height:1.4; font-size:.87rem; font-weight:650; white-space:normal; }
.interfaz-unificada .boton--secundario { background:#fff; border-color:#ccd7e4; color:#33455d; }
.interfaz-unificada .boton--secundario:hover { background:#f3f6fb; }
.interfaz-unificada .nota { padding:13px 16px; border-radius:10px; background:#f1f5fa; border:0; color:#53637a; line-height:1.65; font-size:.81rem; }
.interfaz-unificada .eyebrow { letter-spacing:.09em; font-size:.65rem; }
.interfaz-unificada .tabla th { font-size:.69rem; letter-spacing:.04em; padding:14px 12px; background:#f8fafc; }
.interfaz-unificada .tabla td { padding:16px 12px; vertical-align:middle; }
.interfaz-unificada .tabla tbody tr:hover { background:#f9fbff; }
.interfaz-unificada .atajos a,.interfaz-unificada .atajos button { min-height:82px; padding:17px; border-radius:12px; }
.interfaz-unificada .atajos a:hover { border-color:#9db7dd; background:#f9fbff; }
.interfaz-unificada .metrica { border-radius:14px; box-shadow:none; }
.seccion-cabecera { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 24px; }
.seccion-cabecera p { margin:7px 0 0; font-size:.9rem; }
.seccion-cabecera h2 { margin:0; }
.seccion-cabecera>.boton { flex-shrink:0; }
.calendario-pestanas { display:flex; gap:24px; border-bottom:1px solid var(--borde); margin-bottom:28px; }
.calendario-pestanas a { color:#607086; text-decoration:none; font-size:.9rem; font-weight:600; padding:0 2px 14px; border-bottom:3px solid transparent; }
.calendario-pestanas a[aria-current=page] { color:var(--color-primario); border-color:var(--color-primario); }
.calendario-pestanas a:hover { color:var(--color-primario); }
.interfaz-unificada .calendario-gestion { background:#fff; border:1px solid #e0e6ee; padding:20px 24px; }
.calendario-gestion .seccion-cabecera { margin-bottom:10px; align-items:flex-start; }
.calendario-gestion .seccion-cabecera h2 { font-size:1rem; }
.seleccion-resumen { color:#4b5e77; margin:12px 0; font-size:.85rem; line-height:1.6; }
.fechas-manuales { flex-shrink:0; max-width:100%; }
.fechas-manuales summary,.acciones-secundarias summary { cursor:pointer; font-size:.83rem; color:var(--color-primario); padding:10px 0; font-weight:600; }
.fechas-manuales .calendario-rango { display:flex; gap:12px; flex-wrap:wrap; margin-top:12px; }
.fechas-manuales .campo { margin:0; flex:1; min-width:145px; }
.interfaz-unificada .calendario-acciones { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:14px 0; }
.acciones-secundarias>div { display:flex; flex-wrap:wrap; gap:16px; padding:12px; background:#f4f7fc; border-radius:10px; }
.acciones-secundarias a { font-size:.84rem; }
.interfaz-unificada .selector-mes { margin:26px 0 20px; }
.interfaz-unificada .tarjeta--calendario { padding:18px; }
.interfaz-unificada .dia { border-radius:9px; }
.consulta-saldo { display:flex; align-items:flex-end; gap:12px; margin-top:18px; }
.consulta-saldo .campo { width:130px; margin:0; }
.consulta-saldo input { width:100%; }
.consulta-saldo .boton { flex-shrink:0; }
.interfaz-unificada .selector-dia-correccion { display:flex; align-items:flex-end; gap:12px; margin:16px 0 10px; }
.selector-dia-correccion .campo { flex:1; margin:0; }
.selector-dia-correccion .boton { flex-shrink:0; }
.correccion-paso { min-width:0; border:0; border-top:1px solid var(--borde); padding:22px 0 0; margin:24px 0; }
.correccion-paso h3,.correccion-paso legend { font-size:.94rem; font-weight:700; padding:0; color:#263b56; }
.correccion-paso legend { padding-right:12px; }
.paso-numero { display:inline-grid; width:26px; height:26px; place-items:center; margin-right:7px; border-radius:50%; background:#edf3ff; color:var(--color-primario); font-size:.8rem; vertical-align:middle; }
.ayuda-discreta { font-size:.8rem; line-height:1.65; color:#627188; margin:10px 0 18px; }
.registro-original { font-size:.8rem; line-height:1.6; background:#f3f6fb; padding:10px 12px; border-radius:8px; color:#4d607a; }
.agenda-filtros { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
.agenda-filtros h2 { margin-bottom:0; }
.agenda-filtros .eventos-filtro { margin:0; align-items:flex-end; }
.agenda-filtros .campo { margin:0; }
.eventos-cuadricula { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0 0 24px; }
.evento-tarjeta { border:1px solid #dee5ef; background:#fff; padding:24px; border-radius:16px; display:flex; flex-direction:column; box-shadow:var(--sombra); min-width:0; transition:border-color .15s ease,box-shadow .15s ease; }
.evento-tarjeta:hover { border-color:#a8bcda; box-shadow:0 5px 24px #1f30470a; }
.evento-tarjeta__cabecera { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:18px; }
.fecha-insignia { width:64px; border-radius:12px; padding:9px 6px; background:#edf3fc; text-align:center; color:#245a9b; }
.fecha-insignia span { display:block; text-transform:uppercase; font-size:.66rem; font-weight:800; letter-spacing:.06em; }
.fecha-insignia strong { display:block; font-size:1.7rem; line-height:1.15; }
.fecha-insignia small { display:block; font-size:.67rem; }
.etiqueta { padding:5px 9px; border-radius:20px; background:#f0f3f7; color:#52647c; font-size:.7rem; font-weight:650; }
.etiqueta--azul { background:#eaf3ff; color:#235c9f; }
.evento-tarjeta h3 { margin:0 0 8px; font-size:1.13rem; overflow-wrap:anywhere; }
.evento-tarjeta h3 a { text-decoration:none; color:#243951; }
.evento-tarjeta__fecha { font-size:.79rem; color:#4f6380; margin:0 0 12px; line-height:1.6; }
.evento-tarjeta__descripcion { font-size:.86rem; color:#66758b; line-height:1.65; margin:0 0 24px; overflow-wrap:anywhere; }
.evento-tarjeta__pie { margin-top:auto; display:flex; justify-content:space-between; align-items:flex-end; gap:16px; border-top:1px solid #edf0f6; padding-top:16px; }
.evento-tarjeta__pie strong,.evento-tarjeta__pie small { display:block; font-size:.74rem; }
.evento-tarjeta__pie small { color:#66758b; margin-top:4px; overflow-wrap:anywhere; }
.evento-tarjeta__pie>a { flex-shrink:0; font-size:.8rem; font-weight:650; text-decoration:none; }
.estado-vacio { grid-column:1/-1; text-align:center; padding:48px 24px!important; }
.estado-vacio__simbolo { display:inline-grid; width:56px; height:56px; place-items:center; border-radius:16px; font-size:2rem; color:#4477b8; background:#edf3ff; margin-bottom:18px; }
.evento-detalle { max-width:860px; }
.volver { margin:0 0 20px; font-size:.85rem; }
.paginacion { margin:20px 0; }
[hidden] { display:none!important; }
.horario-dia-siguiente { grid-column:1/-1; font-size:.75rem; margin:3px 0 10px; }
@media(min-width:1600px) { .eventos-cuadricula { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1000px) { .seccion-cabecera { flex-wrap:wrap; } .eventos-cuadricula,.interfaz-unificada .grid-2--form { grid-template-columns:minmax(0,1fr); } }
@media(max-width:760px) {
 .interfaz-unificada .contenido { padding:20px 14px; }
 .interfaz-unificada .barra h1 { font-size:1.25rem; }
 .interfaz-unificada .tarjeta { padding:20px; }
 .interfaz-unificada .tarjeta--calendario { padding:8px; }
 .calendario-pestanas { gap:14px; margin-bottom:22px; }
 .calendario-pestanas a { font-size:.75rem; padding-bottom:11px; }
 .seccion-cabecera { align-items:flex-start; gap:14px; }
 .calendario-gestion .seccion-cabecera { flex-direction:column; gap:6px; }
 .seccion-cabecera>.boton { width:100%; }
 .calendario-acciones .boton { flex:1; }
 .interfaz-unificada .consulta-saldo { gap:12px; }
 .consulta-saldo .campo { width:110px; }
 .consulta-saldo .boton { width:auto; }
 .evento-tarjeta { padding:20px; }
 .agenda-filtros .eventos-filtro { width:100%; }
 .agenda-filtros .eventos-filtro .campo { flex:1; }
 .evento-tarjeta__pie { flex-wrap:wrap; }
 .selector-dia-correccion { flex-wrap:wrap; }
 .interfaz-unificada .dia { border-radius:5px; }
}
@media(prefers-reduced-motion:reduce) { .evento-tarjeta { transition:none; } }
