:root{--marca:#2e6fb0;--marca-osc:#1c4e80;--marca2:#5aa0e0;--marca-suave:#eef4fb;--aliado:#2e6fb0;--aliado2:#c62828;--azul:var(--marca-osc);--azul2:var(--marca-osc);--gris:#f3f5f8;--borde:#d9dee6;--texto:#1f2a37;--suave:#5b6878;--rojo:#c62828;--amar:#9a6b00;--verde:#2e7d32;--blanco:#fff;--radio:10px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--gris);color:var(--texto);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--azul2)}
button,input,select{font:inherit}
.oculto{display:none!important}
/* --- marca del cliente: colores y logos vienen de /marca (ADR-016); estos son solo los valores por omisión --- */
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}
.marca-texto{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.marca-texto b{color:var(--marca-osc);font-size:15px;white-space:nowrap}
.marca-texto small{color:var(--suave);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.marca.con-logo .marca-texto{display:none}
main{max-width:1200px;margin:0 auto;padding:16px 14px 60px}
h1{font-size:22px;margin:6px 0 12px}
h2{font-size:17px;margin:18px 0 8px;color:var(--marca-osc)}
h1{color:var(--texto)}
h2::before{content:"";display:inline-block;width:6px;height:16px;border-radius:3px;background:var(--marca2);margin-right:8px;vertical-align:-2px}
.tarjeta{background:var(--blanco);border:1px solid var(--borde);border-radius:var(--radio);padding:14px 16px;margin-bottom:14px}
.tarjeta.R{border-left:6px solid var(--rojo)}.tarjeta.A{border-left:6px solid var(--amar)}.tarjeta.V{border-left:6px solid var(--verde)}
.quien{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px}
.quien strong{overflow-wrap:anywhere}
.quien small{display:block;color:var(--suave);font-size:12px}.quien strong{font-size:17px}
.tel{font-size:22px;font-weight:700;color:var(--azul)}
.pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.3px}
.pill.rojo{background:var(--rojo)}.pill.amarillo{background:var(--amar)}.pill.verde{background:var(--verde)}.pill.gris{background:#5f6b7a}
table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--radio)}
th,td{padding:9px 10px;border-bottom:1px solid var(--borde);text-align:left;vertical-align:top;font-size:15px}
th{background:#eef2f7;color:var(--azul);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.3px;position:sticky;top:var(--alto-barra,56px);z-index:2}   /* los títulos de la tabla siguen visibles al bajar (la barra azul mide --alto-barra) */
tr:hover td{background:#f8fafc}
.calc{color:var(--suave);font-size:13px;margin-top:3px}
.acciones{display:flex;gap:6px;flex-wrap:wrap}
.btn{border:1px solid var(--borde);background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:14px;min-height:40px}
.btn.primario{background:var(--azul2);border-color:var(--azul2);color:#fff;font-weight:600}
.btn.ok{border-color:var(--verde);color:var(--verde)}.btn.ord{border-color:var(--azul2);color:var(--azul2)}.btn.no{border-color:var(--rojo);color:var(--rojo)}
.btn:disabled{opacity:.5;cursor:default}
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.filtros label{display:flex;flex-direction:column;font-size:13px;color:var(--suave);gap:4px}
.filtros select,.filtros input{padding:9px 10px;border:1px solid var(--borde);border-radius:8px;background:#fff;min-width:150px}
.resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:12px}
.kpi small{display:block;color:var(--suave);font-size:12px}.kpi strong{font-size:26px}
.kpi.rojo strong{color:var(--rojo)}.kpi.amarillo strong{color:var(--amar)}.kpi.verde strong{color:var(--verde)}
.kpi.clicable{cursor:pointer;transition:box-shadow .15s}.kpi.clicable:hover,.kpi.clicable:focus{box-shadow:0 0 0 3px rgba(31,78,121,.25);outline:none}.kpi.clicable .calc{display:block;margin-top:4px}
.barra-pct{height:10px;background:#e6eaf0;border-radius:6px;overflow:hidden;min-width:120px}
.barra-pct i{display:block;height:100%;background:var(--verde)}
.persona-item{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--borde);flex-wrap:wrap}
.persona-item:last-child{border-bottom:0}
.persona-item .nombre{font-weight:600;font-size:17px}
.persona-item .meta{color:var(--suave);font-size:13px}
.aviso{background:#fff8e1;border:1px solid #ffe08a;border-radius:8px;padding:10px 12px;margin-bottom:12px}
.error{background:#fdecea;border:1px solid #f5c2c0;color:#8a1c1c;border-radius:8px;padding:10px 12px;margin-bottom:12px}
.ingreso{max-width:420px;margin:60px auto;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);padding:24px}
/* pantalla de ingreso con la imagen del cliente: panel de marca + formulario */
.ingreso-marca{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
body.en-ingreso main{max-width:none;padding:0}
body.en-ingreso .pie{display:none}
.im-panel{position:relative;overflow:hidden;background:linear-gradient(140deg,var(--marca-osc) 0%,var(--marca) 55%,var(--marca2) 100%);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:48px 56px}
.im-panel::before,.im-panel::after{content:"";position:absolute;border-radius:50%;border:42px solid rgba(255,255,255,.08)}
.im-panel::before{width:420px;height:420px;right:-140px;top:-120px}
.im-panel::after{width:300px;height:300px;left:-110px;bottom:-90px;border-color:rgba(255,255,255,.10)}
.im-tarjeta{position:relative;z-index:1;background:#fff;border-radius:18px;padding:26px 30px;box-shadow:0 18px 40px rgba(0,0,0,.18);max-width:460px}
.im-tarjeta img.logo-ips{max-width:100%;max-height:110px;display:block}
.im-tarjeta .im-nombre{font-size:26px;font-weight:800;color:var(--marca-osc)}
.im-lema{position:relative;z-index:1;margin:22px 0 0;font-size:20px;font-weight:300;letter-spacing:.3px;max-width:460px}
.im-aliado{position:relative;z-index:1;display:inline-flex;align-items:center;gap:12px;margin-top:28px;background:rgba(255,255,255,.95);color:var(--suave);border-radius:12px;padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;align-self:flex-start}
.im-aliado img{height:34px;width:auto}
.im-form{display:flex;align-items:center;justify-content:center;padding:32px;background:var(--gris)}
.im-form .ingreso{margin:0;width:100%;box-shadow:0 10px 30px rgba(0,0,0,.06);border-top:4px solid var(--marca2)}
.im-form h1{color:var(--marca-osc)}
@media (max-width:820px){.ingreso-marca{grid-template-columns:1fr;min-height:auto}.im-panel{padding:28px 20px}.im-lema{font-size:16px;margin-top:14px}.im-aliado{margin-top:16px}.im-form{padding:18px 12px}}
.ingreso label{display:block;margin:10px 0 4px;font-size:14px;color:var(--suave)}
.ingreso input{width:100%;padding:12px;border:1px solid var(--borde);border-radius:8px;font-size:17px}
.ingreso .btn{width:100%;margin-top:16px;font-size:17px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:10;padding:14px}
.modal .caja{background:#fff;border-radius:var(--radio);max-width:640px;width:100%;max-height:90vh;overflow:auto;padding:18px}
.pie{color:var(--suave);font-size:12px;text-align:center;margin-top:30px;padding:18px 14px 26px;border-top:1px solid var(--borde);background:#fff}
.pie-logos{display:flex;justify-content:center;align-items:center;gap:22px;margin-bottom:8px}
.pie-logos img{height:26px;width:auto;opacity:.85}
.comp-marca{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:3px solid var(--marca2);padding-bottom:10px;margin-bottom:12px}
.comp-marca img{height:46px;width:auto}
.comp-marca .comp-aliado{text-align:right;font-size:11px;color:var(--suave);text-transform:uppercase;letter-spacing:.5px}
.comp-marca .comp-aliado img{height:30px;display:block;margin-left:auto}
.solo-impresion-marca{display:none}
@media print{.solo-impresion-marca{display:flex}}
.paginas{display:flex;gap:8px;align-items:center;margin-top:10px}
.subir{border:2px dashed var(--borde);border-radius:var(--radio);padding:16px;background:#fff;margin-bottom:12px}
code{background:#eef2f7;padding:1px 5px;border-radius:4px}
.inicio-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sede-sel{font-size:13px;color:var(--suave)}.sede-sel select{padding:8px 10px;border:1px solid var(--borde);border-radius:8px;background:#fff;margin-left:6px}
.inicio{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.inicio-kpi{display:flex;flex-direction:column;gap:4px;border-top:6px solid var(--borde);min-height:150px}
.inicio-kpi small{color:var(--suave);font-size:13px;text-transform:uppercase;letter-spacing:.3px}
.inicio-kpi strong{font-size:44px;line-height:1.1}
.inicio-kpi > span{color:var(--suave);font-size:14px;flex:1}
.inicio-kpi em{font-style:normal;color:var(--azul2);font-weight:600}
.inicio-kpi.rojo{border-top-color:var(--rojo)}.inicio-kpi.rojo strong{color:var(--rojo)}
.inicio-kpi.amarillo{border-top-color:var(--amar)}.inicio-kpi.amarillo strong{color:var(--amar)}
.inicio-kpi.verde{border-top-color:var(--verde)}.inicio-kpi.verde strong{color:var(--verde)}
.inicio-kpi.azul{border-top-color:var(--azul2)}.inicio-kpi.azul strong{color:var(--azul2)}
.inicio-kpi.clicable{cursor:pointer}.inicio-kpi.clicable:hover,.inicio-kpi.clicable:focus{box-shadow:0 0 0 3px rgba(31,78,121,.25);outline:none}
.inicio-pie{grid-column:1/-1;color:var(--suave);font-size:14px}
.persona-item.hecha{opacity:.55}
a.btn{text-decoration:none;color:var(--texto);display:inline-flex;align-items:center}
nav.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px;border-bottom:1px solid var(--borde)}
nav.tabs a{padding:8px 12px;text-decoration:none;color:var(--suave);border-bottom:3px solid transparent;font-weight:600}nav.tabs a.activo{color:var(--azul);border-color:var(--azul)}
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.pasos label{display:flex;flex-direction:column;gap:4px;font-size:14px}.pasos input,.pasos select{padding:10px;border:1px solid var(--borde);border-radius:8px;font-size:16px}
.dia-cupos{padding:10px 12px}.dia-titulo{font-weight:600;color:var(--azul);margin-bottom:6px}
.cupos{display:flex;flex-wrap:wrap;gap:6px}.btn.cupo{display:flex;flex-direction:column;align-items:center;min-width:76px;padding:6px 8px;line-height:1.1}.btn.cupo small{color:var(--suave);font-size:11px}.btn.cupo:hover{border-color:var(--azul2);color:var(--azul2)}
.pill.agendada{background:#5f6b7a}.pill.confirmada{background:var(--azul2)}.pill.en_sala{background:#6a1b9a}.pill.tomada{background:var(--verde)}.pill.leida{background:#00796b}.pill.entregada{background:#1b5e20}.pill.no_asistio{background:#9a5b00}.pill.cancelada{background:var(--rojo)}
tr.apagada td{opacity:.55}
.areas{display:flex;flex-wrap:wrap;gap:8px 14px;width:100%}.chk{flex-direction:row!important;align-items:center;gap:6px!important}.chk input{width:20px;height:20px;min-width:0}
/* impresión del comprobante: solo el comprobante (nunca la agenda ni datos de otros pacientes) */
.solo-impresion{display:none}
@media print{body.imprimiendo>*:not(.solo-impresion){display:none!important}body.imprimiendo .solo-impresion{display:block}.comprobante{border:1px solid #000;page-break-inside:avoid}.comprobante.anulada{opacity:.6}}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#e8f0fa;border:1px solid #c5d6ea;border-radius:999px;padding:6px 10px;font-size:14px}.chip small{color:var(--suave)}.chip button{border:0;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:var(--suave);padding:0 2px}
.cuando{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.cuando input[type=date]{padding:6px 8px;border:1px solid var(--borde);border-radius:8px}
.prop-fila{display:grid;grid-template-columns:1.4fr 1.4fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--borde)}.prop-fila:last-of-type{border-bottom:0}
@media (max-width:700px){.prop-fila{grid-template-columns:1fr}}
.citas-dia{display:flex;flex-direction:column}
.cita-dia{display:grid;grid-template-columns:70px 1.4fr 1.6fr 110px auto;gap:8px 12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--borde)}
.cita-dia:last-child{border-bottom:0}.cita-dia.apagada{opacity:.55}
.cd-hora b{font-size:18px}.cd-hora small{display:block;color:var(--suave);font-size:12px}
.filtros input.ancho{min-width:min(360px,100%)}
@media (max-width:700px){.cita-dia{grid-template-columns:70px 1fr;grid-template-areas:"hora quien" "que que" "estado estado" "acciones acciones"}.cd-hora{grid-area:hora}.cd-quien{grid-area:quien}.cd-que{grid-area:que}.cd-estado{grid-area:estado}.cd-acciones{grid-area:acciones}.filtros select,.filtros input{min-width:0;width:100%}.filtros label{width:calc(50% - 5px)}}
@media (max-width:700px){.inicio-kpi strong{font-size:36px}th,td{font-size:14px;padding:7px 6px}main{padding:10px 8px 60px}.quien strong{font-size:15px}.ocultar-movil{display:none}}
@media print{header.barra,aside.lateral,.acciones,.filtros,.btn{display:none!important}body{background:#fff}.marco{margin-left:0!important}}
/* 0.5.0 · tablero de gerencia, avisos, accesibilidad y móvil */
:focus-visible{outline:3px solid var(--marca-osc);outline-offset:2px}
.btn.mini{min-height:28px;padding:2px 10px;font-size:12px}
.flotante{position:fixed;right:16px;bottom:16px;z-index:50;max-width:min(420px,calc(100vw - 32px));box-shadow:0 4px 16px rgba(0,0,0,.2);cursor:pointer}
.ger-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.ger-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ger-kpi{margin:0;border-top:5px solid var(--azul2)}
.ger-kpi small{display:block;color:var(--suave);font-weight:600}
.ger-kpi strong{display:inline-block;font-size:34px;line-height:1.2;margin:4px 6px 4px 0;color:var(--azul)}
.ger-kpi .unidad{color:var(--suave);font-size:13px}
.ger-kpi .tend{display:block;font-size:13px;color:var(--suave);margin-top:4px}
.ger-kpi .tend.bien{color:var(--verde);font-weight:600}.ger-kpi .tend.mal{color:var(--rojo);font-weight:600}
.ger-kpi p.calc{margin:6px 0 0}
.ger-kpi.personas_rojo,.ger-kpi.inasistencia_img,.ger-kpi.declaradas,.ger-kpi.frescura{border-top-color:var(--rojo)}
.ger-kpi.personas_al_dia,.ger-kpi.ruta,.ger-kpi.cardio{border-top-color:var(--verde)}
.barra-pct.rojo i{background:var(--rojo)}
details.detalle{margin:14px 0}
details.detalle>summary{cursor:pointer;font-weight:600;color:var(--azul);padding:8px 0}

@media (max-width:700px){.tabla-mov{overflow-x:auto}th{top:0;position:static}.tabla-mov table{min-width:560px}.ger-kpi strong{font-size:28px}}
@media print{.ger-grid{grid-template-columns:repeat(3,1fr)}details.detalle{display:block}details.detalle>summary{list-style:none}.flotante{display:none}}
.pill{white-space:nowrap}
.ger-dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:900px){.ger-dos{grid-template-columns:1fr}}
.ger-kpi.oportunidad_mg,.ger-kpi.inasistencia_consulta{border-top-color:var(--rojo)}
.marca-adm fieldset{border:1px solid var(--borde);border-radius:var(--radio);padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:end;flex:1;min-width:280px}
.marca-adm legend{font-weight:700;color:var(--marca-osc);padding:0 6px}
.marca-adm .logo-prev{flex-basis:100%;min-height:56px;display:flex;align-items:center;background:repeating-conic-gradient(#f3f5f8 0 25%,#fff 0 50%) 0 0/16px 16px;border-radius:8px;padding:8px}
.marca-adm .logo-prev img{max-height:60px;max-width:100%}
.marca-adm input[type=color]{width:64px;height:40px;padding:2px;border:1px solid var(--borde);border-radius:8px;min-width:0}
/* --- tablero ejecutivo (ADR-017): veredicto, cinco indicadores contra su meta, decisiones, cierre, sedes ---------------- */
.ej{--ej-rojo:#b42318;--ej-amar:#b54708;--ej-verde:#067647;--ej-tinta:#101828;--ej-gris:#667085;--ej-linea:#eaecf0;font-variant-numeric:tabular-nums}
.ej-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.ej-cab h1{margin:0;font-size:24px;letter-spacing:-.2px}
.ej-cab .sub{color:var(--ej-gris);font-size:13px;margin-top:2px}
.ej-conf{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--ej-linea)}
.ej-conf i{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--ej-verde)}
.ej-conf.amarillo i{background:var(--ej-amar)}.ej-conf.rojo i{background:var(--ej-rojo)}.ej-conf.rojo{color:var(--ej-rojo)}
.ej-ver{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--ej-linea);border-left:6px solid var(--ej-gris);border-radius:12px;padding:16px 20px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.ej-ver.rojo{border-left-color:var(--ej-rojo)}.ej-ver.amarillo{border-left-color:var(--ej-amar)}.ej-ver.verde{border-left-color:var(--ej-verde)}
.ej-ver .tit{font-size:19px;font-weight:700;color:var(--ej-tinta);line-height:1.3}
.ej-ver ul{margin:6px 0 0;padding-left:18px;color:#344054;font-size:14px}
.ej-ver .marcador{display:flex;gap:14px;text-align:center}
.ej-ver .marcador div{min-width:64px}.ej-ver .marcador b{display:block;font-size:26px;line-height:1.1}
.ej-ver .marcador small{font-size:11px;color:var(--ej-gris);text-transform:uppercase;letter-spacing:.4px}
.ej-ver .marcador .r b{color:var(--ej-rojo)}.ej-ver .marcador .a b{color:var(--ej-amar)}.ej-ver .marcador .v b{color:var(--ej-verde)}
.ej-juego{margin-top:8px;font-size:14px;color:#344054}.ej-juego b{color:var(--ej-tinta)}
.ej-aviso{font-size:13px;color:var(--ej-amar);background:#fffaeb;border:1px solid #fedf89;border-radius:8px;padding:7px 10px;margin:-4px 0 14px}
.ej-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.ej-kpi{background:#fff;border:1px solid var(--ej-linea);border-radius:12px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:6px;box-shadow:0 1px 2px rgba(16,24,40,.05);min-width:0}
.ej-kpi .cab{display:flex;justify-content:space-between;align-items:flex-start;align-content:flex-start;gap:4px 6px;flex-wrap:wrap;min-height:40px}
.ej-kpi .nom{font-size:12px;font-weight:700;color:#344054;text-transform:uppercase;letter-spacing:.4px}
.ej-kpi .preg{font-size:12px;color:#344054;line-height:1.3;margin-bottom:3px}
.spark-cab{display:flex;justify-content:space-between;font-size:10px;color:var(--ej-gris);margin-top:2px}
.ej-chip{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;background:#f2f4f7;color:var(--ej-gris)}
.ej-chip.rojo{background:#fef3f2;color:var(--ej-rojo)}.ej-chip.amarillo{background:#fffaeb;color:var(--ej-amar)}.ej-chip.verde{background:#ecfdf3;color:var(--ej-verde)}
.ej-kpi .val{font-size:34px;font-weight:700;color:var(--ej-tinta);line-height:1.05;letter-spacing:-.5px}
.ej-kpi .val small{font-size:15px;font-weight:600;color:var(--ej-gris);margin-left:2px}
.ej-kpi .var{font-size:13px;font-weight:600}.ej-kpi .var.mal{color:var(--ej-rojo)}.ej-kpi .var.bien{color:var(--ej-verde)}
.ej-kpi .linea{font-size:12px;color:var(--ej-gris);display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap}
.ej-kpi .det{font-size:12px;color:var(--ej-gris);border-top:1px solid var(--ej-linea);padding-top:6px;margin-top:auto}
.ej-kpi .meta-org{font-size:11px;color:var(--ej-gris)}.ej-kpi .meta-org.prov{color:var(--ej-amar)}
.bullet{position:relative;height:16px;margin:2px 0}
.bullet .zona{position:absolute;top:0;bottom:0}
.bullet .real{position:absolute;top:5px;height:6px;border-radius:2px;background:var(--ej-tinta)}
.bullet .proy{position:absolute;top:5px;height:6px;border-radius:0 2px 2px 0;background:repeating-linear-gradient(45deg,#98a2b3 0 2px,transparent 2px 4px)}
.bullet .meta{position:absolute;top:0;bottom:0;width:2px;background:var(--ej-tinta)}
.spark{display:block;width:100%;height:34px}
.ej-dos{display:grid;grid-template-columns:3fr 2fr;gap:14px;margin-bottom:16px}
.ej-caja{background:#fff;border:1px solid var(--ej-linea);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(16,24,40,.05);min-width:0}
.ej-caja h3{margin:0 0 10px;font-size:15px;color:var(--ej-tinta)}.ej-caja h3 small{font-weight:400;color:var(--ej-gris);font-size:12px;margin-left:6px}
.ej-acc{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--ej-linea)}
.ej-acc:first-of-type{border-top:0;padding-top:0}
.ej-acc .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;background:var(--ej-amar)}
.ej-acc .n.rojo{background:var(--ej-rojo)}
.ej-acc b{display:block;color:var(--ej-tinta);font-size:15px}
.ej-acc .cif{font-size:13px;color:#344054;margin:2px 0}
.ej-acc .dec{font-size:13px;color:var(--marca-osc);font-weight:600}
.ej-acc .dec a{margin-left:6px;font-weight:600}
.ej-sv{display:grid;grid-template-columns:minmax(90px,1.1fr) 2fr auto;gap:8px;align-items:center;padding:6px 0;font-size:13px}
.ej-sv .bar{position:relative;height:14px;background:#f2f4f7;border-radius:3px}
.ej-sv .bar .h{position:absolute;left:0;top:0;bottom:0;background:var(--ej-tinta);border-radius:3px 0 0 3px}
.ej-sv .bar .p{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,#98a2b3 0 2px,#e4e7ec 2px 4px)}
.ej-sv .bar .m{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ej-rojo)}
.ej-sv .num{text-align:right;white-space:nowrap;color:#344054}.ej-sv .num b{color:var(--ej-tinta)}
.ej-ley{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ej-gris);margin-top:8px}
.ej-ley i{display:inline-block;width:14px;height:8px;margin-right:4px;vertical-align:0}
.ej-tabla{width:100%;border-collapse:collapse;font-size:14px}
.ej-tabla th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ej-gris);text-align:left;padding:6px 8px;border-bottom:1px solid var(--ej-linea);background:#fff;position:static}
.ej-tabla td{padding:8px;border-bottom:1px solid var(--ej-linea);vertical-align:middle}
.ej-tabla td.c{white-space:nowrap}
.ej-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#d0d5dd}
.ej-dot.rojo{background:var(--ej-rojo)}.ej-dot.amarillo{background:var(--ej-amar)}.ej-dot.verde{background:var(--ej-verde)}
.ej-op{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ej-op div{background:#fff;border:1px solid var(--ej-linea);border-radius:10px;padding:10px 12px}
.ej-op small{display:block;font-size:12px;color:var(--ej-gris)}.ej-op b{font-size:20px;color:var(--ej-tinta)}
.ej-op p{margin:2px 0 0;font-size:11px;color:var(--ej-gris);line-height:1.3}
.ej h2.ej-sec{font-size:15px;margin:18px 0 8px;color:var(--ej-tinta)}
.ej-detalle>summary{cursor:pointer;font-weight:700;color:var(--marca-osc);padding:10px 0}
@media (max-width:1100px){.ej-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.ej-op{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.ej-dos{grid-template-columns:1fr}.ej-ver{grid-template-columns:1fr}.ej-ver .marcador{justify-content:flex-start}}
@media (max-width:600px){.ej-kpis{grid-template-columns:1fr 1fr}.ej-op{grid-template-columns:1fr 1fr}.ej-kpi .val{font-size:28px}.ej-cab h1{font-size:20px}.ej-tabla{font-size:13px}}
@media (max-width:420px){.ej-kpis{grid-template-columns:1fr}}
@media print{@page{size:A4 landscape;margin:10mm}.ej-detalle,.ej-cab .acciones{display:none!important}.ej-kpis{grid-template-columns:repeat(5,1fr)}.ej-op{grid-template-columns:repeat(5,1fr)}.ej-dos{grid-template-columns:3fr 2fr}.ej-ver,.ej-kpi,.ej-caja{box-shadow:none;break-inside:avoid}aside.lateral,header.barra,footer{display:none!important}.marco{margin-left:0!important}main{padding:0;max-width:none}.ej{font-size:13px}}
/* evaluación de Nueva EPS (0.9.0): franjas de la leyenda de la EPS y escala bajo la barra */
.ej-kpis.eps{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.bullet.eps{height:14px;margin-top:8px}
.eps-esc{position:relative;height:14px;font-size:10px;color:var(--ej-gris);margin-bottom:4px}
.eps-esc span{position:absolute;transform:translateX(-50%)}
.eps-esc span:first-child{transform:none}
.eps-esc span:last-child{transform:translateX(-100%)}
.ej-chip.informativo{background:#f2f4f7;color:var(--ej-gris)}
/* agenda de consultas (0.9.5): pestañas de servicio, día con resumen y una tarjeta por profesional */
.ag-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}
.ag-chips button{font:inherit;border:1px solid #d0d5dd;background:#fff;border-radius:999px;padding:7px 14px;font-size:14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;color:#344054;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.ag-chips button b{font-weight:700;color:#101828}
.ag-chips button small{font-size:12px;color:#b42318;background:#fef3f2;border-radius:999px;padding:1px 8px}
.ag-chips button:hover{border-color:#98a2b3}
.ag-chips button.activo{background:#101828;border-color:#101828;color:#fff}
.ag-chips button.activo b{color:#fff}
.ag-dia{margin-bottom:26px}
.ag-dia-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:1px solid #eaecf0;padding-bottom:8px;margin-bottom:12px}
.ag-dia-cab h2{font-size:19px;margin:0;color:#101828}
.ag-kpis{display:flex;gap:16px;font-size:13px;color:#667085}
.ag-kpis b{color:#101828;font-size:15px}
.ag-kpis .rojo b{color:#b42318}
.ag-profs{display:grid;gap:10px}
.ag-prof{background:#fff;border:1px solid #eaecf0;border-left:4px solid var(--ag-c);border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.05);overflow:hidden}
.ag-prof summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px minmax(180px,1.6fr) auto 64px minmax(140px,1fr) 16px;gap:14px;align-items:center;padding:12px 16px}
.ag-prof summary::-webkit-details-marker{display:none}
.ag-prof summary:hover{background:#f9fafb}
.ag-av{width:40px;height:40px;border-radius:50%;background:var(--ag-c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;letter-spacing:.5px}
.ag-id{display:flex;flex-direction:column;min-width:0}
.ag-id b{font-size:15px;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-serv{font-size:12px;color:var(--ag-c);font-weight:600}
.ag-hor{font-size:13px;color:#475467;font-variant-numeric:tabular-nums;white-space:nowrap}
.ag-num{display:flex;flex-direction:column;align-items:center;line-height:1.1}
.ag-num b{font-size:20px;color:#101828}
.ag-num small{font-size:11px;color:#667085}
.ag-bar{position:relative;height:22px;display:flex;flex-direction:column;justify-content:flex-end}
.ag-bar::before{content:"";position:absolute;left:0;right:0;top:2px;height:6px;border-radius:3px;background:#f2f4f7}
.ag-bar i{position:absolute;left:0;top:2px;height:6px;border-radius:3px;background:#f04438}
.ag-bar small{font-size:11px;color:#667085}
.ag-ver{color:#98a2b3;font-size:20px;transition:transform .15s}
.ag-prof[open] .ag-ver{transform:rotate(90deg)}
.ag-prof[open] summary{border-bottom:1px solid #eaecf0}
.ag-citas{list-style:none;margin:0;padding:4px 0}
.ag-citas li{display:grid;grid-template-columns:64px minmax(180px,1.3fr) minmax(120px,.8fr) 2fr;gap:14px;align-items:start;padding:10px 16px;border-bottom:1px solid #f2f4f7}
.ag-citas li:last-child{border-bottom:0}
.ag-h{font-weight:700;color:#101828;font-variant-numeric:tabular-nums;background:#f2f4f7;border-radius:6px;padding:3px 8px;text-align:center}
.ag-pac{display:flex;flex-direction:column}
.ag-pac a{font-weight:600}
.ag-pac small,.ag-tipo small{font-size:12px;color:#667085}
.ag-tipo{display:flex;flex-direction:column;font-size:13px;color:#344054}
.ag-falta{display:flex;flex-wrap:wrap;gap:4px}
.ag-pend{display:inline-block;background:#fef3f2;color:#b42318;border-radius:6px;padding:2px 8px;font-size:12px}
.ag-mas{font-size:12px;color:#475467;background:#f2f4f7;border-radius:6px;padding:2px 8px}
.ag-ok{font-size:12px;color:#067647;background:#ecfdf3;border-radius:6px;padding:2px 8px}
.filtros label.check{flex-direction:row;align-items:center;align-self:flex-end;gap:6px;padding-bottom:10px;white-space:nowrap}
.filtros label.check input{width:auto;min-width:0;margin:0;padding:0}
@media (max-width:760px){
  .ag-prof summary{grid-template-columns:40px 1fr 52px 14px;gap:10px}
  .ag-hor,.ag-bar{display:none}
  .ag-citas li{grid-template-columns:58px 1fr;gap:8px}
  .ag-tipo{grid-column:2}.ag-falta{grid-column:2}
}
.ag-sec{font-size:16px;margin:18px 0 8px;color:#101828}
.ag-sec small{font-size:12px;font-weight:400;color:#667085;margin-left:6px}
.ag-citas li.apagada{opacity:.55}

/* ciclo de cierre (0.11.0) */
.cic-emb { display: grid; gap: 8px; margin: 6px 0 10px; }
.cic-paso { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; gap: 2px 12px; align-items: center; }
.cic-n { display: flex; gap: 8px; align-items: baseline; }
.cic-n b { font-size: 18px; min-width: 60px; text-align: right; font-variant-numeric: tabular-nums; }
.cic-n span { font-weight: 600; }
.cic-bar { height: 12px; background: #eef1f4; border-radius: 6px; overflow: hidden; }
.cic-bar i { display: block; height: 100%; background: var(--verde, #2f7d6d); border-radius: 6px; }
.cic-paso small { grid-column: 2; color: #667085; font-size: 12px; }
@media (max-width: 640px) { .cic-paso { grid-template-columns: 1fr; } .cic-paso small { grid-column: 1; } .cic-n b { text-align: left; min-width: 0; } }

/* hoja del día (0.12.0) */
.hoja { background: #fff; border: 1px solid #e4e7ec; border-radius: 10px; padding: 14px 16px; margin-bottom: 14px; }
.hoja h2 { margin: 6px 0 2px; }
.hoja-t { width: 100%; border-collapse: collapse; }
.hoja-t th, .hoja-t td { border-bottom: 1px solid #e4e7ec; padding: 6px 8px; text-align: left; vertical-align: top; }
.hoja-t td.c { white-space: nowrap; }
.hoja-p { display: flex; gap: 8px; align-items: flex-start; margin: 2px 0; }
/* Preparar mañana (0.18.0) */
.al-g { margin: 2px 0 6px; }
.al-g > b { display: block; font-size: 13px; color: #344054; margin-bottom: 2px; }
.al-nunca, .al-vencida, .al-pendiente { color: var(--rojo, #b42318); }
.al-por_vencer { color: var(--amar, #b54708); }
.al-202 { margin-top: 6px; padding: 6px 8px; background: #fef6e7; border-radius: 6px; font-size: 13px; }
.hoja-p .caja { width: 14px; height: 14px; border: 1.5px solid #475467; border-radius: 3px; flex: none; margin-top: 3px; }
@media print {
  .sin-impresion { display: none !important; }
  .hoja { border: 0; padding: 0; margin: 0; page-break-after: always; break-after: page; }
  .hoja:last-child { page-break-after: auto; break-after: auto; }
}

/* contacto del paciente en las agendas de ayudas diagnósticas (0.12.1) */
.ct-det { margin-top: 4px; }
.ct-det > summary { cursor: pointer; color: var(--verde, #2f7d6d); font-weight: 600; font-size: 13px; list-style: none; display: inline-block; padding: 2px 8px; border: 1px solid currentColor; border-radius: 999px; }
.ct-det > summary::-webkit-details-marker { display: none; }
.ct-det[open] > summary { background: #eef6f4; }
.ct { margin-top: 6px; padding: 8px 10px; background: #f8fafc; border: 1px solid #e4e7ec; border-radius: 8px; font-size: 13px; display: grid; gap: 4px; }
.ct small { color: #667085; }
.ct-tel b { font-variant-numeric: tabular-nums; }
.ct-wa { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #e7f6ec; color: #067647; font-weight: 600; font-size: 12px; text-decoration: none; }
#med .tabla-mov{overflow-x:auto}
.kpi strong.rojo{color:var(--rojo)}.kpi strong.amarillo{color:var(--amar)}
/* inicio por rol (ADR-029): bloques con frase, lista nominal y botón */
.inicio-bloques{display:grid;grid-template-columns:1fr;gap:14px}
.inicio-bloques .inicio-kpi{min-height:0;gap:6px}
.inicio-bloques .inicio-kpi strong{font-size:20px;line-height:1.3}
.inicio-bloques .inicio-kpi.gris{border-top-color:#5f6b7a}.inicio-bloques .inicio-kpi.gris strong{color:var(--tinta,#1c2b33)}
.inicio-bloques .inicio-kpi.azul{border-top-color:var(--azul2)}.inicio-bloques .inicio-kpi.azul strong{color:var(--azul2)}
.ib-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ib-cab a{font-weight:600;color:var(--azul2);white-space:nowrap}
.ib-lista{margin-top:6px}.ib-lista .persona-item{padding:8px 0}.ib-lista .persona-item.hecha{opacity:.55}
.ib-ind{padding:6px 0;border-top:1px solid #eef1f3}.ib-ind:first-child{border-top:0}
.bala{position:relative;height:10px;background:#e9edf0;border-radius:5px;margin:6px 0;max-width:420px}
.bala i{display:block;height:100%;border-radius:5px;background:var(--azul2)}.bala i.verde{background:var(--verde)}.bala i.rojo{background:var(--rojo)}.bala i.amarillo{background:var(--amar)}
.bala b{position:absolute;top:-3px;width:2px;height:16px;background:#1c2b33;transform:translateX(-1px)}
@media (min-width:1100px){.inicio-bloques{grid-template-columns:1fr 1fr}.inicio-bloques #ib-llamar,.inicio-bloques #ib-citas,.inicio-bloques #ib-meta{grid-column:1 / -1}}
.inicio-bloques .inicio-kpi{min-width:0;overflow-wrap:anywhere}
.ib-lista .pill{white-space:normal;display:inline;line-height:1.9}
.ib-lista .persona-item{flex-wrap:wrap}.ib-lista .persona-item>div{min-width:0;max-width:100%}
@media (max-width:700px){.ib-lista .persona-item>div:last-child{text-align:left;width:100%}.ib-lista .acciones{justify-content:flex-start!important}}
.ib-pend{margin-top:4px;display:flex;flex-direction:column;gap:3px;color:var(--tinta,#1c2b33)}.ib-pend .pill{white-space:nowrap;display:inline-block;line-height:1.4;margin-right:4px}
.inicio-bloques .pill{color:#fff;font-size:12px;flex:none}
.ib-celdas{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:6px}
.ib-celda{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--borde);border-radius:10px;text-decoration:none;color:inherit}
.ib-celda:hover{box-shadow:0 0 0 3px rgba(31,78,121,.18)}.ib-celda strong{font-size:26px;color:var(--azul2)}.ib-celda span{color:var(--suave);font-size:13px}.ib-celda em{font-style:normal;color:var(--azul2);font-weight:600;font-size:13px}

/* ===== Apariencia 0.22.3: más amable y profesional para el cliente ===================================================
   Capa final que suaviza la interfaz sin tocar la marca del cliente (colores y logos siguen viniendo de /marca, ADR-016):
   fondo claro, tarjetas con sombra leve, títulos sin adornos, encabezados de tabla en frase normal y estados en tonos suaves. */
html,body{background:#f5f7f9;-webkit-font-smoothing:antialiased}
main{padding-top:22px}
h1{font-size:24px;font-weight:700;letter-spacing:-.2px;margin:4px 0 14px}
h2{font-size:18px;font-weight:650;color:var(--texto);margin:26px 0 10px}
h2::before{display:none}
.tarjeta,.kpi{border-color:#e6eaef;border-radius:12px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06)}
.tarjeta{padding:16px 18px}
th{background:#f8fafb;color:var(--suave);font-weight:600;font-size:13px;text-transform:none;letter-spacing:0;border-bottom:1px solid #e6eaef}
th,td{border-bottom-color:#eef1f4}
td{font-size:14.5px}
tr:hover td{background:#fafbfc}
.calc{color:#667085}
.btn{border-color:#d0d5dd;border-radius:10px;font-weight:500;color:#344054;transition:background .15s,box-shadow .15s}
.btn:hover:not(:disabled){background:#f9fafb;box-shadow:0 1px 2px rgba(16,24,40,.06)}
.btn.primario{color:#fff}.btn.primario:hover:not(:disabled){background:var(--azul2);filter:brightness(1.08)}
.btn.mini{min-height:32px;padding:5px 10px;font-size:13px}
.filtros select,.filtros input{border-color:#d0d5dd;border-radius:10px}
/* estados: fondo suave con texto del mismo tono, sin mayúsculas sostenidas */
.pill{font-weight:600;letter-spacing:0;padding:3px 10px;font-size:12.5px}
.pill.rojo,.inicio-bloques .pill.rojo{background:#fdecec;color:#b42318}
.pill.amarillo,.inicio-bloques .pill.amarillo{background:#fff4dc;color:#8a5a0b}
.pill.verde,.inicio-bloques .pill.verde{background:#e8f5ec;color:#1f7a3a}
.pill.gris,.inicio-bloques .pill.gris{background:#f0f2f5;color:#475467}
.aviso{background:#fffbeb;border-color:#fde68a;border-radius:10px;color:#713f12}
.error{background:#fef3f2;border-color:#fecdca;color:#912018;border-radius:10px}
.pie{color:#667085}
/* estado de la información */
.sec-cab{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sec-cab h2{margin-bottom:4px}.sec-cab a{font-size:14px;font-weight:600;text-decoration:none}
.fuentes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:8px}
.fuente-card{margin:0;display:flex;flex-direction:column;gap:8px}
.fc-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fc-cab b{font-size:15px;line-height:1.3}
.fc-pie{margin-top:auto;font-size:13px;color:#667085;border-top:1px solid #eef1f4;padding-top:8px}
.fuente-det{font-weight:400;color:#667085}
.estado-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.avisos-fuente{margin:0;padding-left:18px;color:#344054;font-size:14px}
.avisos-fuente li{margin:3px 0}
.avisos-fuente li::marker{color:#98a2b3}
details.mas{margin-top:6px;font-size:13px}
details.mas summary{cursor:pointer;color:var(--azul2);font-weight:600}
details.mas[open] summary{margin-bottom:4px}
.tabla-fuentes td:first-child{min-width:200px}
/* curso de vida: la escalera (0.22.4) */
.escalera-caja{padding:18px 18px 8px}
.escalera{width:100%;height:auto;display:block}
.peldano{cursor:pointer;outline:none}
.peldano rect{fill:var(--marca);transition:fill .15s}
.peldano:hover rect,.peldano:focus rect{fill:var(--marca-osc)}
.peldano.activo rect{fill:var(--marca-osc);opacity:1!important;stroke:var(--marca2);stroke-width:4}
.peldano text{fill:#fff;text-anchor:middle;font-family:inherit;pointer-events:none}
.pe-nom{font-size:21px;font-weight:700}.pe-edad{font-size:16px;opacity:.95}.pe-n{font-size:14px;opacity:.85}
.etapa-cab{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.act-card{margin:0;display:flex;flex-direction:column;gap:6px}
.ac-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ac-cab b{font-size:15.5px;line-height:1.3}
.act-card dl{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin:4px 0 0;font-size:14px}
.act-card dt{color:#667085}.act-card dd{margin:0;color:#344054}
.enlace-curso{display:block;text-decoration:none;font-weight:600;color:var(--azul2)}
.cv-todas{display:none}
@media (max-width:700px){.pe-nom{font-size:25px}.pe-edad,.pe-n{display:none}}
@media print{.curso #cv-esc,.curso #cv-det{display:none}.cv-todas{display:block}.cv-todas .etapa-cab{break-before:page}.cv-todas .etapa-cab:first-child{break-before:auto}.act-card{break-inside:avoid;box-shadow:none}}


.avisos-fuente { margin: 0; padding-left: 16px; color: var(--rojo, #a33); }
.avisos-fuente li { margin: 2px 0; }

/* resumen clínico (programa paralelo, corrida 32) */
.rc h3 { font-size: 14px; margin: 14px 0 6px; color: var(--texto, #1b2533); }
.rc .rc-texto { font-size: 15px; line-height: 1.5; margin: 0 0 6px; }
.rc .rc-lista { margin: 0; padding-left: 18px; }
.rc .rc-lista li { margin: 4px 0; }
.rc table { margin-top: 4px; }

/* vista por problema y conciliación de fuentes (programa paralelo, corrida 33) */
.rc .rc-paneles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(400px, 100%), 1fr)); gap: 10px; }
.rc .rc-panel { border: 1px solid #e3e8ee; border-radius: 10px; padding: 8px 10px; background: #fbfcfd; min-width: 0; overflow-x: auto; }
.rc .rc-panel-cab { margin-bottom: 4px; }
.rc .rc-panel table td { vertical-align: top; padding: 4px 6px; }
.rc .rc-spark { color: var(--azul, #2a5d8f); vertical-align: middle; }
.rc .rc-antiguo, .rc .rc-antiguo b { color: #5f6b7a; }
.rc .rc-falta td { color: #5f6b7a; }
.rc table td:first-child { overflow-wrap: break-word; hyphens: auto; }
.rc .rc-panel th { position: static; }
.rc .rc-scroll { overflow-x: auto; max-width: 100%; }
.rc .rc-scroll th { position: static; }
.rc .rc-fuente { display: inline-block; font-size: 11px; padding: 0 6px; border-radius: 8px; background: #eef1f5; color: #4a5566; }
.rc .rc-disc { font-size: 12.5px; color: #8a4b00; margin-top: 2px; }
@media (max-width: 600px) { .rc .rc-paneles { grid-template-columns: minmax(0, 1fr); } }

/* riesgo cardiovascular (programa paralelo, corrida 34) */
.rc .rc-cv { border: 1px solid #e3e8ee; border-radius: 10px; padding: 8px 10px; background: #fbfcfd; }
.rc .rc-cv-num { font-size: 20px; }
/* 0.24.0: avance de construcción — sello visible en todo lo que aún no está aprobado */
.sello-obra{background:repeating-linear-gradient(45deg,#fff4ce,#fff4ce 12px,#ffe9a8 12px,#ffe9a8 24px);border:1px solid #e0b400;color:#5c4400;font-weight:600;padding:6px 10px;border-radius:6px;margin:0 0 10px;font-size:.9em}
.sello-obra.grande{font-size:1em;padding:10px 12px}
.tarjeta.obra{border-left:4px solid #e0b400}
/* 0.27.1: la gestante con sección propia */
.cv-gestante{display:flex;gap:16px;align-items:center;justify-content:space-between;border-left:5px solid #a3366e;flex-wrap:wrap}
.cv-gestante p{margin:4px 0 0}

/* 0.27.7 (ADR-040): aviso de posible error de digitación (ámbar, sobrio) y cola de errores */
.aviso-dato { border-left: 4px solid var(--amar); background: #fdf7ea; color: #6b4a00; padding: 6px 10px; margin: 4px 0 6px; font-size: 13px; border-radius: 4px; }
.tarjeta.aviso-dato { padding: 10px 14px; }
.aviso-dato a { margin-left: 4px; }

/* ======================================================================================================================
   0.28.0 · Menú lateral y barra superior (ADR-043; maqueta aprobada «2 · Salvia profundo»). Los colores de la barra lateral se
   calculan en app.js (armoniaLateral) a partir de la marca de la IPS (ADR-016); estos son solo los valores por omisión.
   ====================================================================================================================== */
:root{--ancho-lateral:248px;--alto-cab:62px;--lat-fondo:#1f4e47;--lat-txt:#e3efeb;--lat-tenue:#9fbfb7;--lat-hover:rgba(255,255,255,.07);
  --lat-act:rgba(156,204,61,.16);--lat-act-txt:#fff;--lat-borde:rgba(255,255,255,.10);--lat-marca:#9ccc3d;
  --rojo:#c8463d;--amar:#a26b1b;--verde:#377e50;--gris:#f4f8f6;--borde:#dde7e2;--texto:#1d2b29;--suave:#566663;--tenue:#7a8a87}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
svg.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
svg.ic-pq{width:15px;height:15px}
.saltar{position:absolute;left:-9999px;top:0;z-index:50;background:#fff;color:var(--texto);padding:8px 12px;border-radius:0 0 8px 0}
.saltar:focus{left:0}
:focus-visible{outline:2px solid var(--marca2);outline-offset:2px}

/* barra lateral */
aside.lateral{position:fixed;top:0;left:0;bottom:0;width:var(--ancho-lateral);z-index:30;background:var(--lat-fondo);color:var(--lat-txt);
  display:flex;flex-direction:column;transition:width .18s ease,transform .2s ease}
aside.lateral::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--marca),var(--marca2))}
.lat-logo{padding:20px 18px 14px;border-bottom:1px solid var(--lat-borde)}
.lat-placa{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;padding:8px 10px;min-height:52px;text-decoration:none}
.lat-placa img.logo-ips{width:100%;max-height:64px;height:auto;object-fit:contain;display:block}
.lat-placa .marca-texto b{color:var(--marca-osc);font-size:15px;white-space:normal;text-align:center}
.lat-iso{display:none;width:40px;height:40px;border-radius:10px;background:var(--marca);color:#fff;font-weight:800;font-size:15px;place-items:center;letter-spacing:.5px}
.lat-sede{position:relative;margin-top:10px;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--lat-tenue);background:var(--lat-hover);
  border:1px solid var(--lat-borde);border-radius:8px;padding:6px 10px;cursor:pointer}
.lat-sede b{color:var(--lat-txt);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.lat-sede select{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;font-size:14px}
.lat-sede.fija{cursor:default}.lat-sede.fija svg{display:none}
.lat-sede:focus-within{outline:2px solid var(--lat-marca);outline-offset:1px}
aside.lateral nav.menu{padding:8px 10px;overflow-y:auto;flex:1;display:block}
nav.menu .grupo{font-size:10.5px;font-weight:700;color:var(--lat-tenue);text-transform:uppercase;letter-spacing:.9px;margin:12px 10px 3px}
nav.menu .grupo-sep{display:none;height:1px;background:var(--lat-borde);margin:8px 6px}
nav.menu a{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:8px;color:var(--lat-txt);text-decoration:none;font-size:13.5px;position:relative;margin:1px 0}
nav.menu a .ic{color:var(--lat-tenue)}
nav.menu a:hover{background:var(--lat-hover)}
nav.menu a.activo{background:var(--lat-act);color:var(--lat-act-txt);font-weight:700}
nav.menu a.activo .ic{color:var(--lat-act-txt)}
nav.menu a.activo::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--lat-marca)}
nav.menu a:focus-visible{outline:2px solid var(--lat-marca);outline-offset:-2px}
.badge{margin-left:auto;font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;background:var(--lat-hover);color:var(--lat-txt);border:1px solid var(--lat-borde);line-height:1.5}
.badge.alarma{background:var(--rojo);color:#fff;border-color:transparent}
.lat-usuario{position:relative;border-top:1px solid var(--lat-borde)}
button.usuario{all:unset;box-sizing:border-box;width:100%;cursor:pointer;color:var(--lat-txt);padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:12.5px;line-height:1.3}
button.usuario:hover{background:var(--lat-hover)}
button.usuario:focus-visible{outline:2px solid var(--lat-marca);outline-offset:-2px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--marca-suave);color:var(--marca-osc);display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.u-txt{display:flex;flex-direction:column;min-width:0}
.u-txt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-txt small{color:var(--lat-tenue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
button.usuario .ic{margin-left:auto;color:var(--lat-tenue)}
.menu-usuario{position:absolute;left:10px;right:10px;bottom:calc(100% + 6px);background:#fff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:6px;z-index:40}
.menu-usuario a,.menu-usuario button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:7px;color:var(--texto);text-decoration:none;font-size:14px;background:none;border:0;cursor:pointer;text-align:left}
.menu-usuario a:hover,.menu-usuario button:hover,.menu-usuario a:focus-visible,.menu-usuario button:focus-visible{background:var(--marca-suave)}
.menu-usuario .ic{color:var(--suave)}
.menu-usuario a.activo{font-weight:700}
.lat-contraer{position:absolute;top:26px;right:-13px;width:26px;height:26px;border-radius:50%;border:1px solid var(--borde);background:#fff;color:var(--suave);
  display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:0 1px 4px rgba(0,0,0,.12);z-index:2}
.lat-contraer .ic{width:15px;height:15px;transition:transform .18s}

/* contraída: solo iconos */
body.lateral-mini{--ancho-lateral:68px}
body.lateral-mini .lat-logo{padding:18px 10px 12px}
body.lateral-mini .lat-placa{background:none;padding:0;min-height:0}
body.lateral-mini .lat-placa img.logo-ips,body.lateral-mini .lat-placa .marca-texto{display:none}
body.lateral-mini .lat-iso{display:grid}
body.lateral-mini .lat-sede,body.lateral-mini nav.menu .grupo,body.lateral-mini nav.menu a .txt,body.lateral-mini .badge:not(.alarma),body.lateral-mini .u-txt,body.lateral-mini button.usuario>.ic{display:none}
body.lateral-mini nav.menu .grupo-sep:not(.oculto){display:block}
body.lateral-mini nav.menu a{justify-content:center;padding:9px 0}
body.lateral-mini .badge.alarma{position:absolute;top:2px;right:4px;padding:0 5px;font-size:10px}
body.lateral-mini button.usuario{justify-content:center;padding:12px 0}
body.lateral-mini .menu-usuario{left:8px;right:auto;width:220px}
body.lateral-mini .lat-contraer .ic{transform:rotate(180deg)}
.punta{position:fixed;z-index:60;background:#1d2b29;color:#fff;font-size:12.5px;padding:4px 9px;border-radius:6px;pointer-events:none;white-space:nowrap}

/* zona derecha: barra superior, contenido y pie */
.marco{margin-left:0;min-height:100vh;display:flex;flex-direction:column;transition:margin-left .18s ease}
body.con-menu .marco{margin-left:var(--ancho-lateral)}
.marco main{width:100%;max-width:1320px;flex:1}
header.barra{position:sticky;top:0;z-index:20;height:var(--alto-cab);background:#fff;border-bottom:1px solid var(--borde);display:flex;align-items:center;gap:14px;padding:0 22px}
.btn-ham,.btn-lupa{display:none;background:none;border:0;padding:6px;color:var(--texto);cursor:pointer;border-radius:8px}
.btn-ham .ic,.btn-lupa .ic{width:22px;height:22px}
.marca-movil{display:none}
body.sin-ficha .btn-lupa{display:flex;align-items:center}
.marca-movil img.logo-ips{height:30px;width:auto;display:block}
.buscar{flex:1;max-width:480px;display:flex;align-items:center;gap:8px;border:1px solid var(--borde);border-radius:10px;padding:0 6px 0 12px;background:#fbfcfc;color:var(--tenue)}
.buscar:focus-within{border-color:var(--marca);box-shadow:0 0 0 3px var(--marca-suave)}
.buscar input{flex:1;min-width:0;border:0;background:transparent;padding:9px 0;font-size:15px;letter-spacing:.5px;color:var(--texto);outline:none}
.buscar kbd,.paleta kbd{font:600 11px/1.6 system-ui,sans-serif;border:1px solid var(--borde);border-radius:5px;padding:0 6px;color:var(--suave);background:#fff;cursor:pointer;white-space:nowrap}
.buscar button{border:0;background:var(--marca-osc);color:#fff;font-weight:700;font-size:13px;border-radius:7px;padding:6px 12px;cursor:pointer}
.aliado{margin-left:auto;display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid var(--borde)}
.aliado small{font-size:10px;color:var(--tenue);text-transform:uppercase;letter-spacing:.6px;text-align:right;line-height:1.2;max-width:70px}
.aliado img{height:30px;width:auto;display:block}
.marco .pie{margin-top:auto;padding:8px 26px;font-size:11px;color:var(--tenue);text-align:left;border-top:1px solid var(--borde);background:#fff}
.marco .pie .pie-logos{display:none}
.tarjeta,.kpi,table{border-color:var(--borde)}
th{background:#f3f7f5;color:var(--suave);top:var(--alto-barra,62px)}

/* paleta de órdenes (Ctrl K) */
.paleta-velo{position:fixed;inset:0;z-index:70;background:rgba(20,40,35,.35);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 0}
.paleta{width:100%;max-width:560px;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}
.paleta-busca{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--borde);color:var(--tenue)}
.paleta-busca input{flex:1;border:0;outline:none;font-size:16px;color:var(--texto);min-width:0}
.paleta-lista{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}
.paleta-lista li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--texto)}
.paleta-lista li .ic{color:var(--suave)}
.paleta-lista li small{margin-left:auto;color:var(--tenue);font-size:12px}
.paleta-lista li[aria-selected="true"]{background:var(--marca-suave);color:var(--marca-osc);font-weight:600}
.paleta-lista li.vacio{cursor:default;color:var(--tenue)}

/* celular: el menú es un cajón que se abre con el botón de tres líneas */
.velo{position:fixed;inset:0;z-index:25;background:rgba(20,40,35,.35)}
@media (max-width:899px){
  body{--ancho-lateral:260px}
  aside.lateral{transform:translateX(-100%);box-shadow:6px 0 24px rgba(0,0,0,.2);visibility:hidden}
  body.cajon-abierto aside.lateral{transform:none;visibility:visible}
  .lat-contraer{display:none}
  body.con-menu .marco{margin-left:0}
  header.barra{height:56px;padding:0 12px;gap:10px}
  .btn-ham,.btn-lupa,.marca-movil{display:flex;align-items:center}
  .marca-movil .marca-texto small{display:none}
  .buscar,.aliado{display:none}
  .btn-lupa{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){aside.lateral,.marco,.lat-contraer .ic{transition:none}}

/* 0.28.1 (ADR-044): ubicación («miga») sobre el contenido */
.miga{max-width:1320px;width:100%;padding:14px 14px 0;font-size:12px;color:var(--tenue)}
.miga:empty{display:none}
body.en-ingreso .miga{display:none}

/* 0.28.1 (ADR-044): Promoción y mantenimiento en tres pestañas (maqueta «tres modelos») */
.pym .pestanas{display:flex;gap:4px;border-bottom:1px solid var(--borde);margin:4px 0 14px;flex-wrap:wrap}
.pym .pestanas a{padding:9px 14px;border-radius:8px 8px 0 0;text-decoration:none;color:var(--suave);font-weight:600;font-size:14px;border:1px solid transparent;border-bottom:0;margin-bottom:-1px}
.pym .pestanas a:hover{color:var(--texto);background:#fff}
.pym .pestanas a.activa{background:#fff;color:var(--marca-osc);border-color:var(--borde);box-shadow:inset 0 3px 0 var(--marca2)}
.pym-momentos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:14px}
.pym-mom{all:unset;box-sizing:border-box;background:#fff;border:1px solid var(--borde);border-radius:10px;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.pym-mom:hover{border-color:var(--marca)}
.pym-mom:focus-visible{outline:2px solid var(--marca2);outline-offset:2px}
.pym-mom.activo{border-color:var(--marca-osc);box-shadow:inset 0 3px 0 var(--marca2)}
.pym-mom b{font-size:13.5px}.pym-mom small{color:var(--tenue);font-size:12px}
.pym-mom .p{font-size:20px;font-weight:700;margin-top:4px;color:var(--texto)}.pym-mom .p span{font-size:12px;color:var(--suave);font-weight:400}
.pym-caja{background:#fff;border:1px solid var(--borde);border-radius:12px;overflow:hidden;margin-bottom:12px}
.pym-caja h3{margin:0;padding:12px 14px;font-size:14.5px;border-bottom:1px solid var(--borde);display:flex;gap:8px;align-items:center}
.pym-caja h3::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--marca2)}
.pym-caja table{border-radius:0}
.pym-tabla td,.pym-tabla th{font-size:13.5px;vertical-align:middle}
.pym-tabla .num{text-align:right;white-space:nowrap}
.pym-barra{height:8px;background:#edf2f0;border-radius:99px;overflow:hidden;min-width:120px}.pym-barra i{display:block;height:100%}
.pym-mat td,.pym-mat th{font-size:12.5px;text-align:center;vertical-align:top}
.pym-mat td:first-child,.pym-mat th:first-child{text-align:left;min-width:220px}
.pym-mat td.si{background:var(--marca-suave);color:var(--marca-osc)}
.pym-mat td.vac{color:#c5d0cc}
.pym-sim{display:grid;grid-template-columns:300px 1fr;gap:14px}
.pym-panel h3{margin:0 0 8px;font-size:14.5px}
.pym-edad{display:block;font-size:30px;font-weight:700;color:var(--marca-osc)}
.pym-slider{width:100%;accent-color:var(--marca)}
.pym-seg{display:flex;border:1px solid var(--borde);border-radius:8px;overflow:hidden;margin:10px 0}
.pym-seg button{flex:1;border:0;background:#fff;padding:7px;font-size:13.5px;cursor:pointer;color:var(--texto)}
.pym-seg button.activo{background:var(--marca-osc);color:#fff;font-weight:600}
.pym-linea{position:relative;height:56px;margin:6px 6px 14px}
.pym-linea .eje{position:absolute;left:0;right:0;top:26px;height:4px;background:#e3ebe8;border-radius:4px}
.pym-linea .tr{position:absolute;top:22px;height:12px;border-radius:6px;background:var(--marca);opacity:.12}
.pym-linea .tr.on{opacity:.35}
.pym-linea .yo{position:absolute;top:10px;width:3px;height:36px;background:var(--rojo);border-radius:2px;margin-left:-1px}
.pym-linea small{position:absolute;top:40px;font-size:10.5px;color:var(--tenue);transform:translateX(-50%)}
.pym-it{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--borde);font-size:13.5px}.pym-it:last-child{border:0}
.pym-it .d{width:8px;height:8px;border-radius:50%;margin-top:7px;flex:none;background:var(--marca)}
.pym-it b{font-weight:600}.pym-it small{display:block;color:var(--tenue)}
.pym-it .tag{font-size:11px;background:var(--marca-suave);color:var(--marca-osc);border-radius:6px;padding:0 6px;margin-left:6px}
@media (max-width:1000px){.pym-momentos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.pym-momentos{grid-template-columns:1fr 1fr}.pym-sim{grid-template-columns:1fr}}
@media print{.pym .pestanas,.pym-momentos .pym-mom:not(.activo){display:none}}
.pym-caja th{position:static}            /* la caja recorta (overflow:hidden): un encabezado fijo se montaría sobre la primera fila */
.pym-tabla .btn{white-space:nowrap}
/* un encabezado fijo dentro de una caja con desplazamiento propio se monta sobre la primera fila: ahí no se fija (0.28.1) */
div[style*="overflow-x:auto"] th,div[style*="overflow:auto"] th{position:static}
/* 0.28.2 (ADR-045): ruta materno perinatal */
.rmp-rojo{color:var(--rojo);font-weight:700}
.rmp-eg{font-size:17px}
.rmp-pv{font-size:15px;color:var(--amar)}
.rmp-tabla td{vertical-align:top}
/* 0.42.9 (ADR-093): detalle de toma de muestra por examen en el programa BLAKHOLE — una fila por examen, en vez de pills
   corridas, para que «última», «hace cuánto» y «próxima» se vean sin pasar el mouse. */
.ex-detalle{display:flex;flex-direction:column;gap:4px;min-width:260px}
.ex-fila{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.ex-fila .pill{flex:none}
.ex-fila .calc{margin:0}
.rmp-gpcae{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:6px 0 4px}
.rmp-gpcae div{border:1px solid var(--borde);border-radius:8px;padding:8px;text-align:center;display:flex;flex-direction:column;gap:2px}
.rmp-gpcae b{font-size:13px;color:var(--suave)}.rmp-gpcae span{font-size:20px;font-weight:700}.rmp-gpcae span .calc{font-size:11px;font-weight:400}
.rmp-gpcae small{color:var(--suave);font-size:11.5px}
@media (max-width:560px){.rmp-gpcae{grid-template-columns:repeat(3,minmax(0,1fr))}}
.resumen .kpi .calc{display:block;margin-top:2px}
#ge-al{max-width:min(100%,340px)}
.acciones label{max-width:100%}

/* 0.28.3 (ADR-046): barra superior, cabecera de la pantalla y encabezados de tabla fijos al bajar.
   --alto-barra: alto de la barra superior; --alto-cabecera: barra + cabecera de la pantalla (miga, título, subtítulo, acciones y
   pestañas). Las dos las mide app.js con ResizeObserver; los encabezados de columna se pegan debajo de --alto-cabecera. */
:root{--fondo-pagina:#f5f7f9;--alto-cabecera:var(--alto-barra,62px)}
html{scroll-padding-top:calc(var(--alto-cabecera) + 8px)}
[id]{scroll-margin-top:calc(var(--alto-cabecera) + 8px)}
header.barra{position:sticky;top:0;background:#fff;transition:box-shadow .15s ease}
body.con-sombra header.barra{box-shadow:0 2px 10px rgba(16,40,35,.10);border-bottom-color:transparent}
.cab-pantalla{position:sticky;top:var(--alto-barra,62px);z-index:15;background:var(--fondo-pagina);margin:-6px -14px 8px;padding:6px 14px 8px;
  transition:padding .15s ease,box-shadow .15s ease}
.cab-pantalla .cab-miga{font-size:12px;color:var(--tenue);margin:0 0 4px;padding:0}
.cab-pantalla h1{transition:font-size .15s ease,margin .15s ease}
.cab-pantalla .cab-sub{max-height:7em;opacity:1;overflow:hidden;transition:max-height .15s ease,opacity .15s ease,margin .15s ease}
.cab-pantalla .pestanas{margin-bottom:0}
body.compacta .cab-pantalla{padding-top:4px;padding-bottom:4px;box-shadow:0 6px 8px -8px rgba(16,40,35,.25)}
body.compacta .cab-pantalla h1{font-size:19px;margin:0 0 2px}
body.compacta .cab-pantalla .cab-sub{max-height:0;opacity:0;margin-top:0!important;margin-bottom:0!important}
body.compacta .cab-pantalla .cab-miga{margin-bottom:1px}
body.con-cabecera .marco>.miga{display:none}         /* la miga va dentro de la cabecera fija */
/* encabezados de columna: debajo de la cabecera de la pantalla */
th{top:var(--alto-cabecera)}
/* tablas de página: sin desplazamiento interno, para que el encabezado se pegue a la página y no a la caja (ni se monte sobre la
   primera fila, el error corregido en la 0.28.1). En pantallas angostas la tabla vuelve a desplazarse en horizontal y el encabezado
   no se fija. overflow:clip recorta sin crear una caja de desplazamiento. */
@supports (overflow:clip){
  .pym-caja{overflow:clip}
  .pym-caja th{position:sticky}
}
@media (min-width:1200px){
  div.tarjeta[style*="overflow-x:auto"]{overflow:visible!important}
  div.tarjeta[style*="overflow-x:auto"] th{position:sticky}
}
/* barra lateral: fija en su columna; el menú se desplaza solo si no cabe y el usuario queda abajo */
aside.lateral{position:fixed;top:0;bottom:0;height:100vh;height:100dvh}
aside.lateral nav.menu{min-height:0;overscroll-behavior:contain}
.lat-usuario{flex:none;margin-top:auto}
/* celular: barra y título compacto fijos; las pestañas se desplazan en horizontal; nunca desplazamiento horizontal de la página */
@media (max-width:700px){.cab-pantalla{margin:-4px -8px 6px;padding:4px 8px 6px}}
@media (max-width:899px){
  .cab-pantalla h1{font-size:21px}
  body.compacta .cab-pantalla h1{font-size:17px}
  .cab-pantalla .pestanas{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .cab-pantalla .pestanas a{white-space:nowrap;flex:none}
  body.compacta .cab-pantalla h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cab-pantalla .sec-cab>div,.cab-pantalla .ej-cab>div{min-width:0;flex:1 1 auto}
  #vista select,#vista input{max-width:100%}
  #vista label{max-width:100%}
  body.compacta .cab-pantalla .sec-cab>.btn,body.compacta .cab-pantalla .sec-cab>.acciones,body.compacta .cab-pantalla .ej-cab .acciones{display:none}
  th,.pym-caja th,div.tarjeta[style*="overflow-x:auto"] th{position:static!important}   /* en celular el encabezado de columna no se fija */
  .marco{min-width:0;max-width:100vw}
  .marco main{min-width:0}
}
@media (prefers-reduced-motion:reduce){
  header.barra,.cab-pantalla,.cab-pantalla h1,.cab-pantalla .cab-sub{transition:none}
}
/* impresión: nada fijo; las tablas repiten su encabezado en cada hoja */
@media print{
  header.barra,.cab-pantalla,.miga,th{position:static!important;box-shadow:none!important}
  .cab-pantalla{margin:0;padding:0;background:none}
  body.compacta .cab-pantalla h1{font-size:inherit}
  body.compacta .cab-pantalla .cab-sub{max-height:none;opacity:1}
  thead{display:table-header-group}
  tr{break-inside:avoid}
}

/* 0.28.4 (ADR-047): predicción y detección temprana */
.nota-apoyo{margin:10px 0 2px;font-size:12px;color:var(--tenue);border-top:1px solid var(--borde);padding-top:6px}
.rg-tarjetas .kpi{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:2px}
.rg-tarjetas .kpi strong{line-height:1.1}
.rg-tend{font-weight:600}.rg-tend.sube{color:var(--rojo)}.rg-tend.baja{color:var(--verde)}
.rg-dos{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.rg-dos h3{font-size:14px;margin:6px 0}
.rg-barras{display:flex;flex-direction:column;gap:5px;margin:4px 0}
.rg-barra{display:grid;grid-template-columns:minmax(90px,170px) 1fr 54px;gap:8px;align-items:center;font-size:13px}
.rg-barra span{color:var(--suave);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rg-barra i{display:block;height:10px;border-radius:99px;background:linear-gradient(90deg,var(--marca),var(--marca2));width:var(--w);min-width:2px}
.rg-barra b{text-align:right;font-variant-numeric:tabular-nums}
.rg-evid{font-size:13px;margin:2px 0}
.tr-grid{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}
.tr-caja{border:1px solid var(--borde);border-radius:10px;padding:8px 10px;background:#fff;max-width:100%}
.tr-cab{font-size:13.5px;margin-bottom:2px}
svg.trayectoria{display:block;max-width:100%;height:auto}
svg.trayectoria .tr-linea{fill:none;stroke:var(--marca-osc);stroke-width:1.8}
svg.trayectoria .tr-proy{fill:none;stroke:var(--marca2);stroke-width:1.8;stroke-dasharray:4 3}
svg.trayectoria .tr-banda{fill:var(--marca-suave);opacity:.9}
svg.trayectoria .tr-punto{fill:var(--marca-osc)}
svg.trayectoria .tr-umbral{stroke:#9aa5b1;stroke-width:1;stroke-dasharray:2 3}
svg.trayectoria .tr-txt{font-size:8.5px;fill:var(--tenue)}
.tr-factores{margin-top:6px;font-size:13.5px}
.rg-ficha h3{font-size:15px;margin:12px 0 4px}.rg-ficha h3:first-child{margin-top:0}
@media (max-width:700px){.rg-dos{grid-template-columns:1fr}.rg-barra{grid-template-columns:minmax(70px,110px) 1fr 40px}}
/* 0.30.4 (ADR-053): lo que Plenus no envía, una línea discreta al final de la ficha de la gestante; lista de pendientes de pasar a Plenus */
.rmp-no-envia{font-size:12px;margin:10px 2px 0;color:var(--tenue,#667085)}
.tabla-plenus td{vertical-align:top}
.tabla-plenus td:last-child{white-space:nowrap}
/* 0.37.0 (ADR-072): Población día a día */
.pob-graf{margin:10px 0 4px;max-width:760px}.pob-graf svg{width:100%;height:auto;display:block}
.pob-graf .pob-total{fill:none;stroke:#101828;stroke-width:2.2}.pob-graf .pob-sede{fill:none;stroke-width:1.4;stroke-dasharray:4 3}
.pob-s0{stroke:#2e6fb0}.pob-s1{stroke:#9a5b00}.pob-s2{stroke:#1f7a3a}.pob-s3{stroke:#6a1b9a}
.pob-graf .pob-incompleto{fill:#fff;stroke:#b42318;stroke-width:1.6}
.pob-leyenda{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--suave)}.pob-ley i{display:inline-block;width:18px;height:0;border-top:2px solid #101828;margin-right:5px;vertical-align:middle}
.pob-ley i.pob-sede{border-top-style:dashed}.pob-ley i.pob-s0{border-color:#2e6fb0}.pob-ley i.pob-s1{border-color:#9a5b00}.pob-ley i.pob-s2{border-color:#1f7a3a}.pob-ley i.pob-s3{border-color:#6a1b9a}
.pob-ley i.pob-incompleto{width:8px;height:8px;border:1.6px solid #b42318;border-radius:50%}
.ej-tabla tr.pob-dia td{border-top:2px solid var(--borde)}.ej-tabla tr.pob-tot td{background:#f8fafc}.ej-tabla th.pob-sub{text-align:left;background:#f8fafc;font-weight:600}
.ej-tabla tr.pob-sin td{background:#fffaeb}
/* 0.42.0 (ADR-084): matriz de estadios de la ERC (KDIGO) en el programa de crónicos */
.matriz-kdigo{border-collapse:collapse;width:100%;max-width:760px}.matriz-kdigo th,.matriz-kdigo td{padding:4px 6px;font-size:13px;text-align:left}
.matriz-kdigo td.c{text-align:center}.btn.kd{min-width:64px;font-weight:600}
.btn.kd.verde{background:#e8f5ec;color:#1f7a3a;border-color:#b7dfc3}.btn.kd.amarillo{background:#fff4dc;color:#8a5a0b;border-color:#f0d9a3}
.btn.kd.naranja{background:#ffe8d6;color:#a0430a;border-color:#f3c09a}.btn.kd.rojo{background:#fdecec;color:#b42318;border-color:#f3b7b2}
.btn.kd.primario{outline:3px solid var(--marca);outline-offset:1px}.btn.kd:disabled{opacity:.45}
/* 0.42.11 (ADR-095, hallazgo de la auditoría del 20-oct-2026): el reloj de toma de muestra del programa BLAKHOLE pinta sus
   botones con clases .btn.rojo/.btn.amarillo (web/app.js, RELOJ_CLS), pero esas clases no existían para .btn (solo para
   .pill y .btn.kd), así que los seis botones del reloj se veían todos iguales — justo lo contrario de su propósito, que es
   que captación distinga de un vistazo a quién llamar ya. Mismos colores que .btn.kd.* para que sea consistente.*/
.btn.rojo{background:#fdecec;color:#b42318;border-color:#f3b7b2}
.btn.amarillo{background:#fff4dc;color:#8a5a0b;border-color:#f0d9a3}
.btn.verde{background:#e8f5ec;color:#1f7a3a;border-color:#b7dfc3}
.btn.naranja{background:#ffe8d6;color:#a0430a;border-color:#f3c09a}
/* 0.53.0 (ADR-112): proveedor del software en el pie */
.pie-proveedor{margin-top:2px;opacity:.9}
