
/* ============================================================
   LOTE 0 · FUNDACIONES
   Fase 3 · mid-fidelity · escala de grises · sin identidad visual
   Línea base 1366×768 · escenario amplio 1920×1080
   ============================================================ */
:root{
  --n0:#ffffff;  --n50:#f6f7f8;  --n100:#edeef0; --n150:#e4e6e9;
  --n200:#d6d9dd; --n300:#bbc0c6; --n400:#9ba2aa; --n500:#7d858e;
  --n600:#606871; --n700:#464d55; --n800:#2d3339; --n900:#16191c;

  --ff:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ff-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs-2xs:11px; --fs-xs:12px; --fs-sm:13px; --fs-md:14px;
  --fs-lg:16px;  --fs-xl:20px; --fs-2xl:26px;

  --s1:2px; --s2:4px; --s3:6px; --s4:8px; --s5:12px;
  --s6:16px; --s7:20px; --s8:24px; --s9:32px; --s10:40px;

  --r-sm:3px; --r-md:5px; --r-lg:8px;
  --bd:1px solid var(--n200);
  --bd-strong:1px solid var(--n300);
  --focus:2px solid var(--n900);
  --sidebar-w:236px;
}
*{box-sizing:border-box}
/* el shell ocupa como mínimo el alto visible · sin alturas fijas en píxeles */
html,body{margin:0;padding:0;min-height:100%}
html{height:100%}
body{
  font-family:var(--ff); font-size:var(--fs-md); color:var(--n800);
  background:var(--n100); line-height:1.5; -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
:focus-visible{outline:var(--focus); outline-offset:2px}
button{font-family:inherit;font-size:inherit;cursor:pointer}
h1,h2,h3{margin:0}
.tab-num{font-variant-numeric:tabular-nums}

/* ---------- chrome del documento: no es producto ---------- */
/* El encabezado de demostración se retiró del artefacto: no existen estilos para él.
   La aplicación comienza en el borde superior del documento. */

/* ---------- shell ---------- */
/* `min-height:640px` era un piso en píxeles heredado del encabezado retirado: en una
   pantalla alta dejaba una franja de fondo bajo la aplicación. Ahora el shell llega al
   borde inferior del viewport y crece con el contenido cuando hace falta. */
.app{display:grid; grid-template-columns:var(--sidebar-w) 1fr; min-height:100vh; flex:1}
/* los ítems de un grid se estiran por defecto: sidebar y main llegan al fondo sin
   estirar nada de su contenido */
.sidebar{background:var(--n900); color:var(--n300); padding:var(--s6) 0}
.sede-head{padding:0 var(--s6) var(--s5); border-bottom:1px solid var(--n700)}
.sede-head .lbl{font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.08em; color:var(--n500)}
.sede-head .nm{font-size:var(--fs-lg); font-weight:600; color:var(--n0)}
.nav{list-style:none; margin:var(--s5) 0 0; padding:0}
.nav li{padding:var(--s3) var(--s6); font-size:var(--fs-sm)}
.nav li.on{background:var(--n800); color:var(--n0); font-weight:600; box-shadow:inset 3px 0 0 var(--n0)}
.nav .grp{font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.08em; color:var(--n600);
  padding:var(--s5) var(--s6) var(--s2)}
.main{background:var(--n50); min-width:0; display:flex; flex-direction:column}
/* el panel toma el espacio sobrante · las tarjetas conservan su tamaño natural */
.main>#panel{flex:1}
.sede-band{
  height:6px;
  background:repeating-linear-gradient(135deg,var(--n300) 0 6px,var(--n200) 6px 12px);
}
.mod-head{padding:var(--s6) var(--s7) var(--s5); border-bottom:var(--bd); background:var(--n0)}
.mod-head h2{font-size:var(--fs-xl); font-weight:600}
.mod-head .sub{font-size:var(--fs-xs); color:var(--n600); margin-top:var(--s2)}
.mod-tools{display:flex; gap:var(--s5); align-items:center; margin-top:var(--s5); flex-wrap:wrap}
label.f{font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em; color:var(--n600);
  display:block; margin-bottom:var(--s2)}
select,input[type=text],input[type=date],input[type=number],input[type=time]{
  font-family:inherit; font-size:var(--fs-sm); padding:var(--s3) var(--s4);
  border:var(--bd-strong); border-radius:var(--r-sm); background:var(--n0); color:var(--n800);
}
input:disabled,select:disabled{background:var(--n100); color:var(--n500)}

/* ---------- pestañas ---------- */
.tabs{display:flex; gap:var(--s2); padding:0 var(--s7); background:var(--n0); border-bottom:var(--bd)}
.tab{
  background:transparent; border:0; border-bottom:3px solid transparent;
  padding:var(--s4) var(--s5); font-size:var(--fs-sm); color:var(--n600);
}
.tab[aria-selected=true]{color:var(--n900); font-weight:600; border-bottom-color:var(--n900)}

/* ---------- superficie ---------- */
.wrap{padding:var(--s7); display:grid; gap:var(--s6)}
.cols{display:grid; grid-template-columns:minmax(420px,1fr) minmax(400px,1fr); gap:var(--s6)}
@media(max-width:1180px){.cols{grid-template-columns:1fr}}
.card{background:var(--n0); border:var(--bd); border-radius:var(--r-md)}
.card > h3{
  font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.08em; color:var(--n600);
  padding:var(--s5) var(--s6); border-bottom:var(--bd); font-weight:600;
  display:flex; justify-content:space-between; align-items:center; gap:var(--s4);
}
.card .body{padding:var(--s6)}
.card .body.tight{padding:0}

/* ---------- línea de vigencias ---------- */
.tl{position:relative; padding:var(--s5) var(--s6) var(--s6)}
.tl-axis{position:relative; height:18px; border-bottom:var(--bd); margin-bottom:var(--s4)}
.tl-tick{position:absolute; top:0; font-size:var(--fs-2xs); color:var(--n500); transform:translateX(-50%)}
.tl-tick::after{content:''; position:absolute; left:50%; top:16px; width:1px; height:6px; background:var(--n200)}
.tl-row{display:grid; grid-template-columns:150px 1fr; gap:var(--s5); align-items:center; margin-bottom:var(--s3)}
.tl-lbl{font-size:var(--fs-xs); color:var(--n700)}
.tl-lbl .id{font-family:var(--ff-mono); font-size:var(--fs-2xs); color:var(--n500)}
.tl-track{position:relative; height:22px; background:var(--n100); border-radius:var(--r-sm)}
.tl-bar{position:absolute; top:0; height:22px; border-radius:var(--r-sm);
  font-size:var(--fs-2xs); color:var(--n0); display:flex; align-items:center; padding:0 var(--s3);
  overflow:hidden; white-space:nowrap;}
.tl-bar.vigente{background:var(--n700)}
.tl-bar.futura{background:var(--n0); border:1px dashed var(--n500); color:var(--n700)}
.tl-bar.historica{background:var(--n300); color:var(--n800)}
.tl-bar.inactiva{background:repeating-linear-gradient(135deg,var(--n200) 0 4px,var(--n150) 4px 8px); color:var(--n600)}
.tl-hoy{position:absolute; top:-20px; bottom:0; width:2px; background:var(--n900)}
.tl-hoy span{position:absolute; top:-16px; left:-14px; font-size:var(--fs-2xs); color:var(--n900); font-weight:600}

/* ---------- lista de configuraciones ---------- */
.cfg{border-bottom:var(--bd); padding:var(--s5) var(--s6); display:grid; gap:var(--s3)}
.cfg:last-child{border-bottom:0}
.cfg.sel{background:var(--n50); box-shadow:inset 3px 0 0 var(--n900)}
.cfg-top{display:flex; align-items:baseline; gap:var(--s4); flex-wrap:wrap}
.cfg-id{font-family:var(--ff-mono); font-size:var(--fs-2xs); color:var(--n500)}
.cfg-h{font-size:var(--fs-md); font-weight:600; font-variant-numeric:tabular-nums}
.cfg-meta{font-size:var(--fs-xs); color:var(--n600); display:flex; gap:var(--s5); flex-wrap:wrap}
.cfg-acts{display:flex; gap:var(--s4)}
.chip{
  display:inline-flex; align-items:center; gap:var(--s2); font-size:var(--fs-2xs);
  padding:1px var(--s3); border-radius:var(--r-sm); border:1px solid var(--n300); color:var(--n700);
}
.chip.solid{background:var(--n800); color:var(--n0); border-color:var(--n800)}
.chip.soft{background:var(--n100)}
.chip.dash{border-style:dashed}
.btn{
  border:var(--bd-strong); background:var(--n0); color:var(--n800); border-radius:var(--r-sm);
  padding:var(--s3) var(--s5); font-size:var(--fs-sm);
}
.btn:hover{background:var(--n100)}
.btn.primary{background:var(--n900); color:var(--n0); border-color:var(--n900)}
.btn.primary:hover{background:var(--n800)}
.btn.sm{padding:var(--s2) var(--s4); font-size:var(--fs-xs)}
.btn:disabled{opacity:.45; cursor:not-allowed}

/* ---------- día compuesto ---------- */
.day-head{display:flex; gap:var(--s5); align-items:end; flex-wrap:wrap; margin-bottom:var(--s5)}
.pool{display:flex; gap:var(--s5); align-items:center; flex-wrap:wrap; font-size:var(--fs-xs);
  border:var(--bd); border-radius:var(--r-sm); padding:var(--s4) var(--s5); background:var(--n50)}
.pool b{font-size:var(--fs-lg); font-variant-numeric:tabular-nums}
.grid-list{border-top:var(--bd)}
.slot{
  display:grid; grid-template-columns:64px 1fr auto; gap:var(--s5); align-items:center;
  padding:var(--s3) var(--s6); border-bottom:1px solid var(--n150); font-size:var(--fs-sm);
}
.slot .h{font-variant-numeric:tabular-nums; color:var(--n700)}
.slot.free .st{color:var(--n600); font-size:var(--fs-xs)}
.slot.past{color:var(--n400)}
.slot.past .h{color:var(--n400)}
.slot.blocked{background:repeating-linear-gradient(135deg,var(--n100) 0 6px,var(--n50) 6px 12px)}
.slot.covered{background:var(--n100)}
.slot.lock{background:var(--n50)}
.slot.res{background:var(--n0); border-left:3px solid var(--n800); padding-left:calc(var(--s6) - 3px)}
.slot.res.conf{border-left:3px dashed var(--n900); background:var(--n50)}
.slot .who{font-weight:600}
.slot .meta{font-size:var(--fs-xs); color:var(--n600)}
.conf-msg{font-size:var(--fs-xs); color:var(--n700); display:flex; gap:var(--s3); align-items:baseline}
.conf-msg .mark{font-weight:700}

/* ---------- editor ---------- */
.drawer-bg{position:fixed; inset:0; background:rgba(22,25,28,.42); display:none; z-index:40}
.drawer-bg.on{display:block}
.drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(760px,96vw); background:var(--n0);
  border-left:var(--bd-strong); display:none; grid-template-rows:auto 1fr auto; z-index:41;
}
.drawer.on{display:grid}
.drawer header{padding:var(--s6) var(--s7); border-bottom:var(--bd); display:flex; justify-content:space-between; gap:var(--s5)}
.drawer header h3{font-size:var(--fs-lg); font-weight:600}
.drawer .scroll{overflow:auto; padding:var(--s7); display:grid; gap:var(--s6)}
.drawer footer{padding:var(--s5) var(--s7); border-top:var(--bd); display:flex; gap:var(--s5); justify-content:flex-end; align-items:center}
.fieldset{border:var(--bd); border-radius:var(--r-sm); padding:var(--s5) var(--s6)}
.fieldset > .lg{font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.08em; color:var(--n600);
  font-weight:600; margin-bottom:var(--s5)}
.row{display:flex; gap:var(--s6); flex-wrap:wrap; align-items:flex-end}
.row > div{min-width:120px}
.dias{display:flex; gap:var(--s2)}
.dia{
  border:var(--bd-strong); background:var(--n0); border-radius:var(--r-sm); width:38px; height:32px;
  font-size:var(--fs-xs); color:var(--n700);
}
.dia[aria-pressed=true]{background:var(--n900); color:var(--n0); border-color:var(--n900); font-weight:600}
.mods{display:flex; gap:var(--s4)}
.mods label{font-size:var(--fs-sm); display:flex; gap:var(--s3); align-items:center}
.tramos table{border-collapse:collapse; width:100%; font-size:var(--fs-sm)}
.tramos th{
  text-align:left; font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em;
  color:var(--n600); padding:var(--s3) var(--s4); border-bottom:var(--bd);
}
.tramos td{padding:var(--s3) var(--s4); border-bottom:1px solid var(--n150)}
.tramos input{width:100%}
.tramos input[type=time]{width:110px}
.tramos input[type=number]{width:80px}

/* ---------- validación e impacto ---------- */
.msgs{display:grid; gap:var(--s4)}
.msg{
  border:var(--bd-strong); border-left-width:4px; border-radius:var(--r-sm);
  padding:var(--s4) var(--s5); font-size:var(--fs-sm); background:var(--n50);
}
.msg .k{font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em; color:var(--n600); display:block}
.msg.err{border-left-color:var(--n900)}
.msg.warn{border-left-color:var(--n400); border-left-style:dashed}
.msg.pol{
  border-left-color:var(--n900); border-style:dashed; border-left-style:solid;
  background:repeating-linear-gradient(135deg,var(--n50) 0 8px,var(--n100) 8px 16px);
}
.msg.pol .k{color:var(--n900); font-weight:700}
.impacto{border:var(--bd-strong); border-radius:var(--r-sm); padding:var(--s5) var(--s6); background:var(--n50)}
.impacto h4{margin:0 0 var(--s4); font-size:var(--fs-sm)}
.impacto ul{margin:var(--s4) 0 0; padding-left:var(--s6); font-size:var(--fs-xs); color:var(--n700)}
.impacto .n{font-size:var(--fs-2xl); font-weight:600; font-variant-numeric:tabular-nums; line-height:1}
.ok-line{font-size:var(--fs-sm); color:var(--n600)}

/* ---------- tablas de bloqueos y feriados ---------- */
.tbl{width:100%; border-collapse:collapse; font-size:var(--fs-sm)}
.tbl th{text-align:left; font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em;
  color:var(--n600); padding:var(--s4) var(--s6); border-bottom:var(--bd)}
.tbl td{padding:var(--s4) var(--s6); border-bottom:1px solid var(--n150); vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.empty{padding:var(--s7); text-align:center; color:var(--n600); font-size:var(--fs-sm)}
.hint{font-size:var(--fs-xs); color:var(--n600)}
.aud{font-size:var(--fs-xs); color:var(--n600); font-family:var(--ff-mono)}

/* ---------- contexto de sesión: información, no control ---------- */
.sesion{
  font-size:var(--fs-sm); color:var(--n800); background:var(--n100);
  border:var(--bd); border-radius:var(--r-sm); padding:var(--s3) var(--s5);
}
.sesion .rol{color:var(--n600); font-size:var(--fs-xs)}

/* ---------- cupos derivados ---------- */
.cupos{margin-top:var(--s5); border-top:var(--bd); padding-top:var(--s5); display:grid; gap:var(--s3)}
.cupos .linea{font-size:var(--fs-sm); font-variant-numeric:tabular-nums}
.cupos .sobra{color:var(--n700)}
.cupos .totales{display:flex; gap:var(--s7); flex-wrap:wrap; margin-top:var(--s3)}
.cupos .totales div{font-size:var(--fs-xs); color:var(--n600)}
.cupos .totales b{display:block; font-size:var(--fs-xl); color:var(--n800); font-variant-numeric:tabular-nums}
.derivado{
  font-size:var(--fs-sm); color:var(--n700); background:var(--n100);
  border:var(--bd); border-radius:var(--r-sm); padding:var(--s2) var(--s4);
  display:inline-block; font-variant-numeric:tabular-nums;
}
.tbl .aud{white-space:nowrap}
.blq-acts{display:flex; gap:var(--s3)}


/* ---------- v0.3 ---------- */
.caps{display:flex;gap:var(--s2);flex-wrap:wrap;max-width:520px}
.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--n900);
  color:var(--n0);font-size:var(--fs-2xs);font-weight:600}
.badge:empty{display:none}
#aviso{padding:0 var(--s7)}
.barra-filtros{display:flex;justify-content:space-between;align-items:center;gap:var(--s5);
  padding:var(--s5) var(--s6);border-bottom:var(--bd);flex-wrap:wrap}
.tabs2{display:flex;gap:var(--s2)}
.tab2{border:var(--bd-strong);background:var(--n0);border-radius:var(--r-sm);padding:var(--s3) var(--s5);
  font-size:var(--fs-sm);color:var(--n700)}
.tab2[aria-selected=true]{background:var(--n800);color:var(--n0);border-color:var(--n800);font-weight:600}
.f-der{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap}
.chk{font-size:var(--fs-xs);display:flex;gap:var(--s2);align-items:center}
.sep{margin:var(--s6) var(--s6) var(--s3);font-size:var(--fs-2xs);text-transform:uppercase;
  letter-spacing:.08em;color:var(--n600)}
.empty{padding:var(--s7);color:var(--n500);font-size:var(--fs-sm)}
.tag-alerta{display:inline-block;font-size:var(--fs-2xs);font-weight:600;border:1px solid var(--n900);
  border-radius:var(--r-sm);padding:0 var(--s3);margin-right:var(--s2)}
.alerta{font-size:var(--fs-sm);font-weight:600;border-left:4px solid var(--n900);background:var(--n100);
  padding:var(--s4) var(--s5);border-radius:var(--r-sm);margin-bottom:var(--s5)}
.poli{border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5);background:var(--n50)}
.poli-h{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600);
  font-weight:600;margin-bottom:var(--s3)}
.poli .res{margin-top:var(--s3);font-size:var(--fs-sm)}
.poli .res.ojo{font-weight:600}
.ciclo{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;font-size:var(--fs-2xs)}
.paso{border:1px solid var(--n300);border-radius:var(--r-sm);padding:1px var(--s3);color:var(--n500)}
.paso.hecho{border-color:var(--n700);color:var(--n800)}
.paso.actual{background:var(--n800);color:var(--n0);border-color:var(--n800);font-weight:600}
.flecha{color:var(--n400)}
.visor-box{margin-top:var(--s5);border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5);
  background:var(--n900);color:var(--n0)}
.visor-box code{color:var(--n200);font-size:var(--fs-2xs)}
.visor-box .loc{font-size:var(--fs-lg);font-weight:600;margin:var(--s3) 0}
.visor-box .hint{color:var(--n300)}
.derivado{border:1px dashed var(--n400);border-radius:var(--r-sm);padding:var(--s3) var(--s4);
  background:var(--n100);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.der{color:var(--n500);font-size:var(--fs-2xs)}
.obs{list-style:none;margin:0;padding:0;display:grid;gap:var(--s4)}
.obs li{border-left:3px solid var(--n300);padding-left:var(--s4);font-size:var(--fs-sm)}
.cierre{margin-top:var(--s5);border-top:var(--bd);padding-top:var(--s5)}
.msg.ok2{border-left:4px solid var(--n700);background:var(--n50);padding:var(--s4) var(--s5);
  border-radius:var(--r-sm);font-size:var(--fs-sm);margin-bottom:var(--s5)}
.msg.ok2 .k{display:block;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--n600);font-weight:600;margin-bottom:var(--s2)}
.ok-line{font-size:var(--fs-sm);color:var(--n700)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .15s}
.modal-bg.on{opacity:1;pointer-events:auto}
.modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.98);width:min(560px,92vw);
  background:var(--n0);border:var(--bd-strong);border-radius:var(--r-md);padding:var(--s6);
  opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:60}
.modal.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.modal h3{margin:0 0 var(--s5);font-size:var(--fs-lg)}
.modal .acciones{margin-top:var(--s6);display:flex;gap:var(--s3);justify-content:flex-end}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:var(--s5)}
.form-grid .full{grid-column:1/-1}
.form-grid input,.form-grid select{width:100%}
.check-list{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:var(--s3)}
.check-list label{font-size:var(--fs-sm);display:flex;gap:var(--s3);align-items:center}
#drw-acciones{display:flex;gap:var(--s3);flex-wrap:wrap}
.petalo{margin-bottom:var(--s7);padding:0 var(--s6)}
.petalo h4{margin:0 0 var(--s5);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--n600);font-weight:600}
.sillones{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s5)}
.sillon{background:var(--n0);border:var(--bd-strong);border-radius:var(--r-md);padding:var(--s5);
  cursor:pointer;border-left-width:5px}
.sillon:hover{background:var(--n50)}
.sillon header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4)}
.sillon .nom{font-weight:600}
.sillon .est{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600)}
.sillon .pac{margin-top:var(--s4);font-size:var(--fs-sm)}
.sillon .pac.libre{color:var(--n500)}
.sillon .hrs{font-size:var(--fs-xs);color:var(--n600);font-variant-numeric:tabular-nums}
.sillon .dist{margin-top:var(--s3);display:flex;gap:var(--s2);flex-wrap:wrap}
.sillon .alerta{margin-top:var(--s3);font-size:var(--fs-xs);padding:var(--s2) var(--s3)}
.sillon .prox{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--n150);
  font-size:var(--fs-2xs);color:var(--n600)}
.sillon .prox.vacio{color:var(--n400)}
.sillon.disponible{border-left-color:var(--n300)}
.sillon.reservado{border-left-color:var(--n600);border-left-style:dashed;background:var(--n50)}
.sillon.ocupado{border-left-color:var(--n900);background:var(--n100)}
.sillon.bloqueado{border-left-color:var(--n700);
  background:repeating-linear-gradient(135deg,var(--n100) 0 6px,var(--n50) 6px 12px)}
.tl-head{display:grid;grid-template-columns:110px 1fr;gap:var(--s5);margin-bottom:var(--s4)}
.tl-eje{position:relative;height:20px;border-bottom:var(--bd)}
.tl-eje .tick{position:absolute;top:0;font-size:var(--fs-2xs);color:var(--n500);transform:translateX(-50%)}
.tl-grupo{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--n600);
  font-weight:600;margin:var(--s5) 0 var(--s3)}
.tl-fila{display:grid;grid-template-columns:110px 1fr;gap:var(--s5);align-items:center;margin-bottom:var(--s2)}
.tl-lbl{font-size:var(--fs-xs);color:var(--n700)}
.tl-pista{position:relative;height:30px;background:var(--n100);border-radius:var(--r-sm)}
.barra{position:absolute;border-radius:var(--r-sm);font-size:var(--fs-2xs);overflow:hidden;
  white-space:nowrap;padding:0 var(--s3)}
.barra.plan{top:1px;height:14px;line-height:14px;background:var(--n0);border:1px solid var(--n400);
  color:var(--n700);cursor:pointer}
.barra.real{top:17px;height:11px;background:var(--n800)}
.barra.real.excede{background:repeating-linear-gradient(90deg,var(--n900) 0 4px,var(--n600) 4px 8px);
  color:var(--n0);line-height:11px}
.barra.bloqueo{top:1px;height:27px;line-height:27px;color:var(--n700);
  background:repeating-linear-gradient(135deg,var(--n200) 0 5px,var(--n150) 5px 10px)}
.ahora{position:absolute;top:0;bottom:0;width:2px;background:var(--n900);z-index:2}
.ahora span{position:absolute;top:-16px;left:-16px;font-size:var(--fs-2xs);font-weight:600}
dl{display:grid;grid-template-columns:auto 1fr;gap:var(--s3) var(--s5);margin:0}
dt{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600)}
dd{margin:0;font-size:var(--fs-sm)}

/* ---------- v0.4 ---------- */
.head-linea{display:flex;justify-content:space-between;align-items:center;gap:var(--s5);flex-wrap:wrap}
.head-der{display:flex;gap:var(--s5);align-items:center}
.head-der select{padding:var(--s3) var(--s4);font-size:var(--fs-sm)}
.reloj{font-variant-numeric:tabular-nums;font-size:var(--fs-lg);font-weight:600}
.quien{display:flex;flex-direction:column;line-height:1.2}
.quien span{font-size:var(--fs-2xs);color:var(--n600)}
.filtros{border-bottom:var(--bd);padding:var(--s5) var(--s6);display:grid;gap:var(--s5)}
.linea1,.linea2{display:flex;gap:var(--s4);align-items:flex-end;flex-wrap:wrap}
.linea2{border-top:1px dashed var(--n200);padding-top:var(--s5)}
.grow{flex:1}
.campo{display:flex;flex-direction:column;gap:var(--s2)}
.campo input,.campo select{padding:var(--s2) var(--s3);font-size:var(--fs-xs);min-width:110px}
.campo.chk2{justify-content:flex-end}
.btn.xs{padding:0 var(--s3);font-size:var(--fs-2xs)}
.inv{margin-top:var(--s2)}
.inv1{font-weight:600;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.inv1 .site{font-size:var(--fs-2xs);border:1px solid var(--n400);border-radius:var(--r-sm);
  padding:0 var(--s2);margin-left:var(--s2);font-weight:400}
.inv2{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--n700)}
.inv3{font-size:var(--fs-2xs);color:var(--n600)}
.inv-detalle{border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5);background:var(--n50)}
.inv-prot{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums}
.inv-prot .site{font-size:var(--fs-xs);border:1px solid var(--n500);border-radius:var(--r-sm);
  padding:0 var(--s3);margin-left:var(--s3);font-weight:400}
.inv-sub{font-size:var(--fs-xs);color:var(--n600);margin-bottom:var(--s4)}
.inv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--s4)}
.inv-grid .k,.inv-meds .k{display:block;font-size:var(--fs-2xs);text-transform:uppercase;
  letter-spacing:.06em;color:var(--n600)}
.inv-grid div{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.inv-meds{margin-top:var(--s4);font-size:var(--fs-sm)}
.ficha{border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5);background:var(--n50)}
.ficha-nom{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s4)}
.ficha-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s4);
  margin-bottom:var(--s4)}
.ficha-grid .k{display:block;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--n600)}
.ficha-grid div{font-size:var(--fs-sm)}
.sillon.apagado{opacity:.25}

/* ---------- v0.5 ---------- */
.ico{width:15px;height:15px;vertical-align:-2px;margin-right:4px;fill:none;stroke:currentColor;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tag-tipo{display:inline-flex;align-items:center;font-size:var(--fs-2xs);text-transform:uppercase;
  letter-spacing:.06em;color:var(--n700);font-weight:600}
.tab2 .ico{margin-right:5px}
.sep .ico{width:13px;height:13px}
.tr{font-size:var(--fs-sm)}
.tr.mini{font-size:var(--fs-xs)}
.tr.alerta-tr{font-weight:600}
.sug{font-style:italic}
.orden{cursor:pointer;user-select:none}
.orden:hover{background:var(--n100)}
.nav-dia{display:flex;gap:var(--s2)}
.dia-rotulo{font-size:var(--fs-sm);font-weight:600;align-self:center}
.sin-ocup{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600);
  border:1px dashed var(--n400);border-radius:var(--r-sm);padding:0 var(--s2);display:inline-block;
  margin-top:var(--s2)}
.prev{border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5);background:var(--n50);
  margin-top:var(--s4)}
.prev-h{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600);
  font-weight:600;margin-bottom:var(--s3)}
.prev-lista{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;gap:var(--s2)}
.prev-lista li{font-size:var(--fs-xs);border-left:3px solid var(--n400);padding-left:var(--s3);
  font-variant-numeric:tabular-nums}
.prev-lista li.blq{border-left-color:var(--n700)}
.prev-lista li.ocu{border-left-color:var(--n900)}
.prev-lista li.lib{border-left-color:var(--n200);color:var(--n600)}
.prev-lista li.fue{border-left-style:dashed;color:var(--n600)}
.prev-chips{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s3)}
.prev-det{margin-top:var(--s4);font-size:var(--fs-xs)}
.prev-tabs{display:flex;gap:var(--s2);margin-top:var(--s5)}
.prev-tabs .btn[aria-selected=true]{background:var(--n800);color:var(--n0);border-color:var(--n800)}
.fuera{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,
  var(--n150) 0 3px,var(--n100) 3px 6px);z-index:0}
.barra.con-alerta{border-color:var(--n900);border-width:2px;font-weight:600}
.badge-alerta{margin-right:3px}

/* ---------- v0.6 ---------- */
.bandeja{border:var(--bd-strong);border-radius:var(--r-md);margin:var(--s6);padding:var(--s5);
  background:var(--n50)}
.bandeja h4{margin:0 0 var(--s5);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;
  font-weight:700}
.espera{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s5)}
.tarj-espera{background:var(--n0);border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s5)}
.te-h{display:flex;justify-content:space-between;gap:var(--s4);align-items:baseline}
.te-h .num{font-variant-numeric:tabular-nums;font-size:var(--fs-xs)}
.tarj-espera .acciones{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4)}
.llamando{margin-top:var(--s3);font-size:var(--fs-2xs);font-weight:600;border:1px solid var(--n900);
  border-radius:var(--r-sm);padding:0 var(--s3);display:inline-block}
.modo-destino{margin:var(--s6) var(--s6) 0;padding:var(--s4) var(--s5);border:2px solid var(--n900);
  border-radius:var(--r-sm);display:flex;gap:var(--s4);align-items:center;font-size:var(--fs-sm)}
.modo-destino .btn{margin-left:auto}
.sillon.destino-ok{outline:3px solid var(--n900);outline-offset:2px}
.sillon.destino-no{opacity:.45}
.sillon.origen{outline:3px dashed var(--n600);outline-offset:2px}
.marca-destino{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600;
  margin-bottom:var(--s3);color:var(--n700)}
.fisico{margin-top:var(--s5);border:1px dashed var(--n400);border-radius:var(--r-sm);
  padding:var(--s4) var(--s5);font-size:var(--fs-sm);background:var(--n50)}
.fisico .k{display:block;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--n600);margin-bottom:var(--s2)}
.motivos{margin:var(--s3) 0 0;padding-left:var(--s6);font-weight:400;font-size:var(--fs-sm)}

/* ---------- v0.6.1 ---------- */
.sede-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}
.btn-menu{background:transparent;border:1px solid var(--n600);color:var(--n200);border-radius:var(--r-sm);
  width:22px;height:22px;line-height:1;font-size:var(--fs-xs);flex:none}
.btn-menu:hover{background:var(--n700)}
.sidebar .nav li{display:flex;align-items:center;gap:var(--s4)}
.sidebar .mi{width:18px;text-align:center;flex:none}
/* v1.12 · el ancho lo gobierna el TRACK del grid, no el sidebar (ver más abajo) */
.app.menu-off .sidebar .mt,.app.menu-off .sede-head .lbl,.app.menu-off .sede-head .nm{display:none}
.app.menu-off .sidebar .grp{display:none}
.app.menu-off .sidebar .nav li{justify-content:center}
.app.menu-off .sede-head{justify-content:center}
.polis{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s3)}
.polis li{border:var(--bd-strong);border-radius:var(--r-sm);padding:var(--s4)}
.polis li.sel{background:var(--n100);border-color:var(--n700)}
.polis label{display:grid;gap:2px;cursor:pointer}
.polis input{margin-right:var(--s3)}
.np-h{font-size:var(--fs-sm)}
.tbl.mini th,.tbl.mini td{padding:var(--s2) var(--s3);font-size:var(--fs-xs)}
.hist{margin:var(--s6)}
.hist-cuerpo{margin-top:var(--s4);border:var(--bd);border-radius:var(--r-sm)}
.paginador{display:flex;gap:var(--s4);align-items:center;justify-content:center;padding:var(--s4)}
/* la cabecera de pétalo comparte la grilla de las filas: sin nichos ni saltos */
.tl-grupo{display:grid;grid-template-columns:110px 1fr;gap:var(--s5);align-items:center;
  margin:var(--s5) 0 var(--s3);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--n600);font-weight:600}
.tl-grupo .tl-lbl{color:inherit;font-size:inherit;text-transform:inherit;letter-spacing:inherit}
.tl-sep{height:1px;background:var(--n200)}

/* ---------- v0.6.2 ---------- */
/* la pista recorta cualquier barra: nada puede salirse hacia la etiqueta */
.tl-pista{overflow:hidden}
.tl-fila{min-height:30px}
.tl-lbl{position:relative;z-index:1;background:var(--n0);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.fuera{z-index:0}

/* ---------- v0.6.3 ---------- */
.archivos{margin-top:var(--s5);border-top:var(--bd);padding-top:var(--s5)}
.lg2{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600);
  font-weight:600;margin-bottom:var(--s4)}
.dropzone{border:2px dashed var(--n400);border-radius:var(--r-md);padding:var(--s6);text-align:center;
  font-size:var(--fs-sm);cursor:pointer;background:var(--n50)}
.dropzone:hover,.dropzone.over{border-color:var(--n900);background:var(--n100)}
.lista-arch{list-style:none;margin:var(--s5) 0 0;padding:0;display:grid;gap:var(--s3)}
.lista-arch li{display:flex;gap:var(--s4);align-items:center;flex-wrap:wrap;border:var(--bd);
  border-radius:var(--r-sm);padding:var(--s3) var(--s4);font-size:var(--fs-sm)}
.ar-n{font-weight:600}
.ar-t{font-size:var(--fs-2xs);border:1px solid var(--n400);border-radius:var(--r-sm);padding:0 var(--s2)}
.ar-acc{margin-left:auto;display:flex;gap:var(--s2)}
th.orden{cursor:pointer;user-select:none;white-space:nowrap}
th.orden:hover{background:var(--n100)}
.resumen{display:grid;gap:var(--s5)}
.rs-h{font-size:var(--fs-lg);font-weight:600;display:flex;align-items:center;gap:var(--s2)}
.rs-bloque{border:var(--bd);border-radius:var(--r-sm);padding:var(--s5)}
.rs-bloque h5{margin:0 0 var(--s3);font-size:var(--fs-2xs);text-transform:uppercase;
  letter-spacing:.06em;color:var(--n600);font-weight:600}
.rs-f{display:grid;grid-template-columns:150px 1fr;gap:var(--s4);font-size:var(--fs-sm);
  padding:2px 0}
.rs-f .k{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--n600)}
@media print{
  .sidebar,.tabs,.filtros,.drawer,.modal .acciones{display:none!important}
  .modal{position:static;transform:none;width:auto;border:0;opacity:1;pointer-events:auto}
  .modal-bg{display:none}
}

/* ---------- v0.6.4 ---------- */
tr.post-cierre td{background:var(--n100)}
tr.post-cierre td:first-child{border-left:3px solid var(--n700)}

/* ---------- Maqueta Maestra Global ---------- */
.caps-linea{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4);max-height:44px;overflow:hidden}
.caps-linea .chip{font-size:9px}
.sidebar .nav li.off{opacity:.45;cursor:not-allowed}
/* Regla vigente: «no autorizado = no renderizado». No existe estilo para elementos
   sin permiso en la interfaz operacional; la clase que los atenuaba fue retirada. */
.tag-off{font-size:9px;text-transform:uppercase;letter-spacing:.06em;margin-left:var(--s3);
  border:1px solid currentColor;border-radius:var(--r-sm);padding:0 3px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s7);align-items:start}
@media (max-width:1100px){.cols2{grid-template-columns:1fr}}
.cupos{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.cupo{border:var(--bd-strong);background:var(--n0);border-radius:var(--r-sm);padding:var(--s2) var(--s4);
  font-size:var(--fs-xs);font-variant-numeric:tabular-nums;cursor:pointer}
.cupo:hover{background:var(--n100)}
.cupo.sel{background:var(--n800);color:var(--n0);border-color:var(--n800);font-weight:600}
.cupo.tomado{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.atenciones{margin-top:var(--s6);border-top:var(--bd);padding-top:var(--s5)}
.fila-mini{padding:var(--s2) 0;font-size:var(--fs-sm);cursor:pointer;border-bottom:1px solid var(--n150)}
.fila-mini:hover{background:var(--n50)}
.cola{display:grid;gap:var(--s4);padding:0 var(--s6) var(--s6)}
.fila-clinica{display:grid;grid-template-columns:70px 1fr;gap:var(--s5);border:var(--bd-strong);
  border-radius:var(--r-md);padding:var(--s5);background:var(--n0)}
.fila-clinica.previa{opacity:.7;background:var(--n50)}
.rail{display:flex;flex-direction:column;align-items:center;gap:var(--s2);border-right:var(--bd);
  padding-right:var(--s4)}
.rail .num{font-variant-numeric:tabular-nums;font-weight:600}
.rail .sc{font-size:9px;border:1px solid var(--n700);border-radius:var(--r-sm);padding:0 3px}
.cl-id{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap}
.cl-id .mod{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--n500);
  border-radius:var(--r-sm);padding:0 var(--s2);font-weight:600}
.obs-fila{font-size:var(--fs-xs);font-style:italic;border-left:3px solid var(--n300);padding-left:var(--s3);
  margin-top:var(--s3)}
.fila-clinica .acciones{margin-top:var(--s4);display:flex;gap:var(--s2);flex-wrap:wrap}
.tr-destacado{font-size:var(--fs-lg);margin-bottom:var(--s4)}
.pantalla{background:var(--n900);color:var(--n0);border-radius:var(--r-md);padding:var(--s7)}
.pantalla-h{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--n300);
  margin-bottom:var(--s6)}
.llamado-fila{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s6);
  padding:var(--s5) 0;border-bottom:1px solid var(--n700)}
.lp-nom{font-size:28px;font-weight:600}
.lp-box{font-size:22px;font-variant-numeric:tabular-nums}
.lp-vacio{color:var(--n400);font-size:var(--fs-lg)}

/* ---------- mantenedores ---------- */
.mtr-shell{display:grid;grid-template-columns:250px 1fr;min-height:520px}
.mtr-rail{border-right:var(--bd);padding:var(--s5)}
.mtr-rail ul{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:2px}
.mtr-rail li{padding:var(--s3) var(--s4);border-radius:var(--r-sm);cursor:pointer;
  font-size:var(--fs-sm);display:flex;flex-direction:column;gap:1px}
.mtr-cap{font-size:9px;text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.mtr-panel{min-width:0}
.mtr-head{display:flex;gap:var(--s4);align-items:center;padding:var(--s5) var(--s6);flex-wrap:wrap}
.mtr-head h3{font-size:var(--fs-lg)}
.mtr-capcode{font-family:var(--ff-mono);font-size:var(--fs-2xs)}
.mtr-hint{padding:0 var(--s6) var(--s5)}
.mtr-acc{display:flex;gap:var(--s2)}
tr.inactivo td{opacity:.55}
tr.inactivo td:first-child{text-decoration:line-through}

/* ============================================================
   CAPA DE COLOR · Agenda Global Bradford Hill
   Solo presentación. No cambia estructura, comportamiento ni reglas.
   Las fuentes no traían paleta oficial —el Lote 0 es escala de grises por
   decisión explícita—, así que esta es una propuesta clínica sobria.
   NO es una regla de negocio.
   REGLA DE ACCESIBILIDAD: el color nunca comunica solo. Cada estado conserva
   su texto, su etiqueta o su ícono.
   ============================================================ */
:root{
  /* marca · azul clínico profundo */
  --br-900:#0d2a44; --br-800:#103c60; --br-700:#14507d; --br-600:#1a6aa8;
  --br-500:#2f83c4; --br-200:#bcd8ee; --br-100:#e4eff8; --br-50:#f2f8fc;

  /* identidad secundaria de dominio · misma familia, no dos productos */
  --poli-600:#1a6aa8; --poli-100:#e4eff8;
  --sil-600:#5b4ea3;  --sil-100:#ece9f7;

  /* estados físicos del sillón · semántica aprobada, no reinterpretable */
  --ok-700:#1f6b45;  --ok-600:#2e7d4f;  --ok-100:#e6f4ec;   /* DISPONIBLE  verde  */
  --wa-700:#8a6400;  --wa-600:#a67c00;  --wa-100:#fcf3dd;   /* RESERVADO   amarillo */
  --er-700:#96201a;  --er-600:#b3261e;  --er-100:#fbeae8;   /* OCUPADO     rojo   */
  --bl-700:#5a3f2d;  --bl-600:#6d4c37;  --bl-100:#f1eae4;   /* BLOQUEADO   café   */

  --bd:1px solid #dbe2e8;
  --bd-strong:1px solid #c3ced8;
  --focus:2px solid var(--br-600);
}
body{background:#eef2f6;color:#1e2a35}

/* ---------- chrome del documento ---------- */

/* ---------- shell y menú lateral ---------- */
.sidebar{background:var(--br-900);color:var(--br-200)}
.sede-head{border-bottom-color:rgba(255,255,255,.14)}
.sede-head .lbl{color:var(--br-500)}
.sede-head .nm{color:#fff}
.btn-menu{border-color:rgba(255,255,255,.3);color:var(--br-200)}
.btn-menu:hover{background:rgba(255,255,255,.12)}
.sidebar .nav li{color:var(--br-200);border-left:3px solid transparent}
.sidebar .nav li:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar .nav li.on{background:rgba(47,131,196,.22);color:#fff;border-left-color:var(--br-500);
  font-weight:600}
.sidebar .grp{color:var(--br-500)}
.tag-off{color:var(--br-500);border-color:var(--br-700)}
.sede-band{background:var(--br-600)}

/* ---------- cabecera de módulo ---------- */
.main{background:#eef2f6}
.mod-head{background:#fff;border-bottom:var(--bd)}
.mod-head h2{color:var(--br-900)}
.reloj{color:var(--br-700)}
.caps-linea .chip{background:var(--br-50);border-color:var(--br-200);color:var(--br-700)}

/* ---------- solapas ---------- */
.tabs{background:#fff;border-bottom:var(--bd)}
.tab{color:#5a6672;border-bottom:3px solid transparent}
.tab:hover{color:var(--br-700);background:var(--br-50)}
.tab[aria-selected=true]{color:var(--br-700);border-bottom-color:var(--br-600);font-weight:600;
  background:var(--br-50)}
.tabs2 .tab2{border-color:#c3ced8;color:#5a6672;background:#fff}
.tabs2 .tab2[aria-selected=true]{background:var(--br-600);border-color:var(--br-600);color:#fff}

/* ---------- tarjetas, tablas y drawers ---------- */
.card{background:#fff;border:var(--bd);box-shadow:0 1px 2px rgba(13,42,68,.05)}
.tbl thead th{background:var(--br-50);color:var(--br-800);border-bottom:2px solid var(--br-200)}
.tbl tbody tr:hover{background:var(--br-50)}
.tbl td{border-bottom:1px solid #e6ecf1}
th.orden:hover{background:var(--br-100)}
.drawer{border-left:3px solid var(--br-600)}
.drawer header{background:var(--br-50);border-bottom:var(--bd)}
.drawer footer{background:#fff;border-top:var(--bd)}
.modal{border-top:4px solid var(--br-600)}
.fieldset{border-color:#e6ecf1}
.lg,.lg2{color:var(--br-700)}
.sep{color:var(--br-700)}

/* ---------- botones ---------- */
.btn{background:#fff;border:1px solid #c3ced8;color:#2c3a47}
.btn:hover{background:var(--br-50);border-color:var(--br-500);color:var(--br-700)}
.btn.primary{background:var(--br-600);border-color:var(--br-600);color:#fff}
.btn.primary:hover{background:var(--br-700);border-color:var(--br-700);color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.prev-tabs .btn[aria-selected=true]{background:var(--br-600);border-color:var(--br-600);color:#fff}

/* ---------- chips y badges ---------- */
.chip{border-color:#c3ced8;color:#3a4854;background:#fff}
.chip.soft{background:var(--br-100);border-color:var(--br-200);color:var(--br-800)}
.chip.solid{background:var(--br-700);border-color:var(--br-700);color:#fff}
.chip.dash{border-style:dashed;color:#5a6672}
.badge{background:var(--er-600);color:#fff}

/* ---------- filtros y foco ---------- */
.filtros{background:#fbfdfe;border-bottom:var(--bd)}
.linea2{border-top-color:var(--br-200)}
.campo input,.campo select,.form-grid input,.form-grid select,input,select{
  border:1px solid #c3ced8;border-radius:var(--r-sm);background:#fff;color:#1e2a35}
.campo input:focus,.campo select:focus,input:focus,select:focus{
  border-color:var(--br-600);outline:2px solid var(--br-200);outline-offset:0}
.derivado{background:var(--br-50);border-color:var(--br-200);color:var(--br-800)}

/* ---------- identidad de dominio · secundaria, misma familia ---------- */
.tag-tipo{color:var(--br-700)}
.tab2 .ico{opacity:.9}
.ficha,.poli{background:var(--poli-100);border-color:#c5dbee}
.poli-h{color:var(--poli-600)}
.inv-detalle{background:var(--sil-100);border-color:#d4cdec}
.inv1,.inv-prot{color:var(--sil-600)}
.inv1 .site,.inv-prot .site{border-color:var(--sil-600);color:var(--sil-600)}
.bandeja{background:var(--sil-100);border-color:#d4cdec}
.bandeja h4{color:var(--sil-600)}
.tarj-espera{border-color:#d4cdec}

/* ---------- estados físicos del sillón ---------- */
.sillon{border-left-width:5px}
.sillon.disponible{border-left-color:var(--ok-600);background:var(--ok-100)}
.sillon.disponible .est{color:var(--ok-700);font-weight:600}
.sillon.reservado{border-left-color:var(--wa-600);border-left-style:solid;background:var(--wa-100)}
.sillon.reservado .est{color:var(--wa-700);font-weight:600}
.sillon.ocupado{border-left-color:var(--er-600);background:var(--er-100)}
.sillon.ocupado .est{color:var(--er-700);font-weight:600}
.sillon.bloqueado{border-left-color:var(--bl-600);
  background:repeating-linear-gradient(135deg,var(--bl-100) 0 6px,#e9ded6 6px 12px)}
.sillon.bloqueado .est{color:var(--bl-700);font-weight:600}
.sillon.destino-ok{outline-color:var(--ok-600)}
.sillon.origen{outline-color:var(--br-600)}
.sin-ocup{border-color:var(--wa-600);color:var(--wa-700)}
.marca-destino{color:var(--br-700)}
.modo-destino{border-color:var(--br-600);background:var(--br-50)}

/* ---------- alertas y revisión ---------- */
.alerta{border-left-color:var(--er-600);background:var(--er-100);color:var(--er-700)}
.tag-alerta{border-color:var(--er-600);color:var(--er-700);background:var(--er-100)}
.msg.err{border-left:4px solid var(--er-600);background:var(--er-100);color:var(--er-700);
  padding:var(--s4) var(--s5);border-radius:var(--r-sm)}
.msg.warn{border-left:4px solid var(--wa-600);background:var(--wa-100);color:var(--wa-700)}
.msg.warn .k{color:var(--wa-700)}
.msg.ok2{border-left-color:var(--ok-600);background:var(--ok-100)}
.msg.ok2 .k{color:var(--ok-700)}
.ok-line{color:var(--ok-700)}
.llamando{border-color:var(--er-600);color:var(--er-700);background:var(--er-100)}
tr.post-cierre td{background:var(--wa-100)}
tr.post-cierre td:first-child{border-left-color:var(--wa-600)}

/* ---------- ciclo de estados administrativos ---------- */
.paso{border-color:#c3ced8;color:#7a858f}
.paso.hecho{border-color:var(--br-500);color:var(--br-700);background:var(--br-50)}
.paso.actual{background:var(--br-600);border-color:var(--br-600);color:#fff}
.flecha{color:var(--br-200)}
.fisico{background:var(--wa-100);border-color:var(--wa-600);color:var(--wa-700)}

/* ---------- Timeline ---------- */
.tl-pista{background:#e7edf2}
.tl-grupo{color:var(--sil-600)}
.tl-sep{background:#d4cdec}
.tl-lbl{color:var(--br-800);background:#fff}
.tl-eje .tick{color:#6b7783}
.barra.plan{background:#fff;border-color:var(--br-500);color:var(--br-800)}
.barra.plan.con-alerta{border-color:var(--er-600);color:var(--er-700)}
.barra.real{background:var(--er-600)}
.barra.real.excede{background:repeating-linear-gradient(90deg,var(--er-700) 0 4px,var(--wa-600) 4px 8px)}
.barra.bloqueo{background:repeating-linear-gradient(135deg,var(--bl-100) 0 5px,#e9ded6 5px 10px);
  color:var(--bl-700)}
.fuera{background:repeating-linear-gradient(45deg,#dde4ea 0 3px,#e7edf2 3px 6px)}
.ahora{background:var(--er-600)}
.ahora span{color:var(--er-700)}
.badge-alerta{color:var(--er-600)}

/* ---------- Área médica ---------- */
.fila-clinica{border-left:4px solid var(--poli-600)}
.fila-clinica.previa{border-left-color:#c3ced8;background:#f7f9fb}
.rail{border-right-color:#e6ecf1}
.rail .num{color:var(--br-800)}
.rail .sc{border-color:var(--wa-600);color:var(--wa-700);background:var(--wa-100)}
.cl-id .mod{border-color:var(--poli-600);color:var(--poli-600)}
.obs-fila{border-left-color:var(--br-500)}

/* ---------- Agendamiento ---------- */
.cupo{border-color:#c3ced8;color:var(--br-800)}
.cupo:hover{background:var(--br-100);border-color:var(--br-500)}
.cupo.sel{background:var(--br-600);border-color:var(--br-600);color:#fff}
.cupo.tomado{background:#eef2f6;color:#93a0ab}
.fila-mini:hover{background:var(--br-50)}

/* ---------- Visor ---------- */
.pantalla{background:var(--br-900)}
.pantalla-h{color:var(--br-500)}
.llamado-fila{border-bottom-color:rgba(255,255,255,.16)}
.lp-nom{color:#fff}
.lp-box{color:var(--br-500)}
.lp-vacio{color:var(--br-700)}

/* ---------- previews y archivos ---------- */
.prev{background:var(--br-50);border-color:var(--br-200)}
.prev-h{color:var(--br-700)}
.prev-lista li{border-left-color:#c3ced8}
.prev-lista li.blq{border-left-color:var(--bl-600)}
.prev-lista li.ocu{border-left-color:var(--er-600)}
.prev-lista li.lib{border-left-color:var(--ok-600)}
.prev-lista li.rsv{border-left-color:var(--wa-600)}
.dropzone{border-color:var(--br-200);background:var(--br-50)}
.dropzone:hover,.dropzone.over{border-color:var(--br-600);background:var(--br-100)}
.ar-t{border-color:var(--br-500);color:var(--br-700)}
.polis li.sel{background:var(--br-100);border-color:var(--br-500)}
.rs-h{color:var(--br-900)}
.rs-bloque{border-color:#e6ecf1}
.rs-bloque h5{color:var(--br-700)}

/* ---------- leyenda de color · el color nunca comunica solo ---------- */
.leyenda{display:flex;gap:var(--s5);flex-wrap:wrap;align-items:center;padding:var(--s4) var(--s6);
  border-top:var(--bd);font-size:var(--fs-2xs);color:#5a6672}
.leyenda span{display:inline-flex;align-items:center;gap:var(--s2)}
.leyenda i{width:10px;height:10px;border-radius:2px;display:inline-block;border:1px solid rgba(0,0,0,.15)}
.lg-disp{background:var(--ok-600)} .lg-res{background:var(--wa-600)}
.lg-ocu{background:var(--er-600)}  .lg-blq{background:var(--bl-600)}

/* ---------- mantenedores · color ---------- */
.mtr-rail{background:var(--br-50);border-right-color:var(--br-200)}
.mtr-rail li{color:#3a4854}
.mtr-rail li:hover{background:var(--br-100)}
.mtr-rail li.on{background:var(--br-600);color:#fff;font-weight:600}
.mtr-rail li.on .mtr-cap{color:var(--br-100)}
.mtr-cap{color:#6b7783}
.mtr-head h3{color:var(--br-900)}
.mtr-capcode{color:var(--br-700);background:var(--br-100);border-radius:var(--r-sm);padding:1px var(--s3)}
tr.inactivo td{background:#f5f7f9}

/* ---------- v1.4 · login, iconografía, agenda médica ---------- */
.oculto{display:none!important}
.login{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:var(--s7)}
.login-caja{width:min(560px,94vw);background:#fff;border:var(--bd-strong);border-radius:var(--r-md);
  padding:var(--s7);box-shadow:0 6px 24px rgba(13,42,68,.10);border-top:4px solid var(--br-600)}
.lg-marca{font-size:22px;font-weight:600;color:var(--br-900);margin-bottom:var(--s6)}
.lg-marca span{display:block;font-size:var(--fs-sm);font-weight:400;color:var(--br-600);
  letter-spacing:.14em;text-transform:uppercase}
.lg-tabs{display:flex;gap:var(--s2);margin-bottom:var(--s6)}
.lg-tab{flex:1;border:var(--bd-strong);background:#fff;border-radius:var(--r-sm);
  padding:var(--s4);font-size:var(--fs-sm);color:#5a6672}
.lg-tab[aria-selected=true]{background:var(--br-600);border-color:var(--br-600);color:#fff;font-weight:600}
.lg-campo{margin-bottom:var(--s5)}
.lg-campo input{width:100%;padding:var(--s4)}
.lg-btn{width:100%;margin-top:var(--s6);padding:var(--s5)}
.lg-demo{margin-top:var(--s7);border-top:var(--bd);padding-top:var(--s5)}
.lg-demo-t{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--n600);
  font-weight:600;margin-bottom:var(--s4)}
.ico-nav{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.btn .ico-nav{width:14px;height:14px;margin-right:4px}
.buscador{flex:1;min-width:260px}
.buscador input{width:100%}
.multi{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:center}
.mi-chk{font-size:var(--fs-xs);display:inline-flex;gap:var(--s2);align-items:center;
  border:var(--bd);border-radius:var(--r-sm);padding:2px var(--s3);background:#fff}
.ciclo2{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:stretch}
.paso2{border:1px solid var(--n300);border-radius:var(--r-sm);padding:var(--s2) var(--s3);
  display:flex;flex-direction:column;gap:1px;cursor:help;min-width:96px}
.paso2 .p2-n{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em}
.paso2 .p2-d{font-size:9px;opacity:.8;font-variant-numeric:tabular-nums}
.paso2.hecho{border-color:var(--br-500);background:var(--br-50);color:var(--br-800)}
.paso2.actual{background:var(--br-600);border-color:var(--br-600);color:#fff}
.paso2.omitida{border-style:dashed;color:#7a858f}
.paso2.terminal{background:var(--wa-600);border-color:var(--wa-600);color:#fff}
.agenda-dia{display:grid;gap:var(--s3);padding:0 var(--s6) var(--s6)}
.bloque{display:grid;grid-template-columns:92px 1fr;gap:var(--s5);border:var(--bd);
  border-radius:var(--r-sm);padding:var(--s4) var(--s5);background:#fff}
.bloque.vacio{background:#f7f9fb;border-style:dashed}
.bloque.continuacion{background:var(--br-50);border-left:3px solid var(--br-500)}
.bloque.atencion{border-left:4px solid var(--poli-600)}
.bloque.atencion.sc{border-left-color:var(--wa-600)}
.bloque.llamando-act{border-color:var(--er-600);box-shadow:0 0 0 2px var(--er-100)}
.bq-hora{display:flex;flex-direction:column;gap:2px;border-right:var(--bd);padding-right:var(--s4)}
.bq-hora .num{font-variant-numeric:tabular-nums;font-weight:600;color:var(--br-800)}
.bq-hora .dur{font-size:9px;color:#6b7783}
.sc-tag{font-size:9px;border:1px solid var(--wa-600);color:var(--wa-700);border-radius:var(--r-sm);
  padding:0 3px}
.vacio-txt{font-size:var(--fs-sm);color:#7a858f}
.cont-txt{font-size:var(--fs-xs);color:var(--br-700);font-style:italic}
.at-l1,.at-l2,.at-l3,.at-l4{margin-bottom:2px}
.at-l1 .social{font-style:italic;color:var(--br-700)}
.ag-tag{font-size:var(--fs-2xs);border:1px solid var(--br-500);color:var(--br-700);
  border-radius:var(--r-sm);padding:0 var(--s2)}
.pulso{margin-top:var(--s3);font-size:var(--fs-xs);font-weight:600;color:var(--er-700);
  background:var(--er-100);border-radius:var(--r-sm);padding:var(--s2) var(--s3);display:inline-block}
/* los modales largos deben poder recorrerse completos */
.modal{max-height:88vh;display:flex;flex-direction:column}
#modal-b{overflow-y:auto;flex:1;min-height:0;padding-right:var(--s3)}
.modal .acciones{flex:none}
.drawer .scroll{overflow-y:auto}

/* ---------- v1.5 · selector de disponibilidad ---------- */
.sel-disp{display:grid;grid-template-columns:minmax(420px,1fr) 1fr;gap:var(--s7);align-items:start}
@media (max-width:1200px){.sel-disp{grid-template-columns:1fr}}
.cal{border:var(--bd-strong);border-radius:var(--r-md);padding:var(--s5);background:#fff}
.cal-head{display:flex;gap:var(--s3);align-items:center;margin-bottom:var(--s5)}
.cal-head h3{font-size:var(--fs-lg);letter-spacing:.04em;color:var(--br-900)}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s2);margin-bottom:var(--s2)}
.cal-dow span{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:#6b7783;
  text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--s2)}
.cal-celda{min-height:62px;border:var(--bd);border-radius:var(--r-sm);background:#fff;
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--s2) var(--s3);
  text-align:left;position:relative}
.cal-celda.vacia{border:none;background:transparent}
.cal-n{font-variant-numeric:tabular-nums;font-weight:600;font-size:var(--fs-sm)}
.cal-rot{font-size:8.5px;line-height:1.15;text-transform:uppercase;letter-spacing:.03em;opacity:.85}
.cal-ico{position:absolute;top:4px;right:4px}
.cal-ico .ico-nav{width:12px;height:12px}
.dia.agenda{background:var(--ok-100);border-color:var(--ok-600);color:var(--ok-700);cursor:pointer}
.dia.agenda:hover{background:#d7ecdf}
.dia.parcial{background:var(--wa-100);border-color:var(--wa-600);color:var(--wa-700);cursor:pointer}
.dia.parcial:hover{background:#f8ead0}
.dia.bloqueado{background:var(--er-100);border-color:var(--er-600);color:var(--er-700);cursor:not-allowed}
.dia.feriado{background:var(--bl-100);border-color:var(--bl-600);color:var(--bl-700);cursor:not-allowed}
.dia.sincfg,.dia.finde{background:#f2f5f8;border-style:dashed;color:#93a0ab;cursor:not-allowed}
.dia.hoy{box-shadow:inset 0 0 0 2px var(--br-600)}
.dia.sel{outline:3px solid var(--br-600);outline-offset:1px;font-weight:700}
.leyenda i.lgc-agenda{background:var(--ok-600)} .leyenda i.lgc-parcial{background:var(--wa-600)}
.leyenda i.lgc-bloq{background:var(--er-600)}   .leyenda i.lgc-fer{background:var(--bl-600)}
.leyenda i.lgc-sin{background:#c3ced8}
.disp{border:var(--bd-strong);border-radius:var(--r-md);padding:var(--s5);background:#fff}
.disp-head{display:flex;gap:var(--s4);align-items:baseline;margin-bottom:var(--s5)}
.disp-head h3{font-size:var(--fs-lg);color:var(--br-900)}
.disp-sub{margin:var(--s6) 0 var(--s4);font-size:var(--fs-2xs);text-transform:uppercase;
  letter-spacing:.06em;color:var(--br-700);font-weight:600;border-top:var(--bd);padding-top:var(--s4)}
.cupos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--s3)}
.cupo-b{border:var(--bd-strong);border-radius:var(--r-sm);background:#fff;padding:var(--s4);
  display:flex;flex-direction:column;gap:3px;text-align:left;min-height:76px}
.cupo-b .cb-h{font-weight:600;font-variant-numeric:tabular-nums;color:var(--br-900)}
.cupo-b .cb-mod{display:flex;gap:var(--s2);flex-wrap:wrap}
.mod-i{font-size:9px;display:inline-flex;align-items:center;gap:2px;border:1px solid var(--br-500);
  color:var(--br-700);border-radius:var(--r-sm);padding:0 3px}
.mod-i .ico-nav{width:11px;height:11px}
.cupo-b .cb-est{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em}
.cupo-b .cb-sub{font-size:9px;color:#6b7783}
.cupo-b.libre{border-color:var(--ok-600);background:var(--ok-100)}
.cupo-b.libre .cb-est{color:var(--ok-700);font-weight:600}
.cupo-b.libre:hover{background:#d7ecdf}
.cupo-b.ocupado{background:var(--er-100);border-color:var(--er-600);cursor:not-allowed}
.cupo-b.ocupado .cb-est{color:var(--er-700)}
.cupo-b.continuacion{background:repeating-linear-gradient(135deg,#fbeae8 0 6px,#f6ded9 6px 12px);
  border-color:var(--er-600);border-style:dashed;cursor:not-allowed}
.cupo-b.continuacion .cb-est{color:var(--er-700);font-style:italic}
.cupo-b.bloqueado{background:repeating-linear-gradient(135deg,var(--bl-100) 0 6px,#e9ded6 6px 12px);
  border-color:var(--bl-600);cursor:not-allowed}
.cupo-b.bloqueado .cb-est{color:var(--bl-700)}
.cupo-b.sobrecupo{border-style:dashed}
.cupo-b.sobrecupo.libre{border-color:var(--wa-600);background:var(--wa-100)}
.cupo-b.sobrecupo.libre .cb-est{color:var(--wa-700)}
.cupo-b.sobrecupo.usado{background:#f2f5f8;color:#93a0ab;cursor:not-allowed}
.grilla-vacia{border:2px dashed #c3ced8;border-radius:var(--r-md);padding:var(--s8);text-align:center;
  color:#7a858f;display:grid;gap:var(--s4);justify-items:center}
.grilla-vacia .ico-nav{width:28px;height:28px;opacity:.5}
.pac-mini{display:flex;gap:var(--s2);align-items:center;font-size:var(--fs-sm)}

/* ---------- v1.6 · calendario geométrico, bloques minimalistas, modal ancho ---------- */
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-celda{aspect-ratio:1/1;min-height:0;height:auto;display:flex;align-items:center;
  justify-content:center;padding:0;position:relative;overflow:hidden}
.cal-n{font-size:var(--fs-md);font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.cal-punto{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:5px;height:5px;
  border-radius:50%;background:currentColor;opacity:.8}
.dia.sel{outline:3px solid var(--br-900);outline-offset:-1px;font-weight:700;z-index:1}
.dia.hoy{box-shadow:inset 0 0 0 2px var(--br-600)}
.cal-leyenda{padding:var(--s5) 0 0;border-top:var(--bd);margin-top:var(--s5)}
/* bloques · hora → modalidad → estado */
.cupo-b{gap:var(--s2);min-height:82px;align-items:flex-start}
.cupo-b .cb-h{font-size:var(--fs-md)}
.cupo-b .cb-mod{gap:var(--s3);align-items:center;min-height:22px}
.mod-i{border:none;padding:0;color:var(--br-700)}
.mod-i .ico-nav{width:19px;height:19px;stroke-width:1.6}
.cupo-b.ocupado .mod-i,.cupo-b.continuacion .mod-i{color:var(--er-700);opacity:.75}
.cupo-b.bloqueado .mod-i{color:var(--bl-700);opacity:.7}
/* modal ancho · solo para formularios complejos */
.modal.lg{width:min(1180px,94vw);max-width:94vw}
.modal.lg #modal-b{padding-right:var(--s5)}
.nr{display:grid;gap:var(--s5)}
.nr-sec{border:var(--bd);border-radius:var(--r-sm);padding:var(--s5);background:#fbfdfe}
.nr-sec h4{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--br-700);
  margin-bottom:var(--s4);font-weight:600}
.form-grid.c3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
@media (max-width:900px){.form-grid.c3{grid-template-columns:1fr}}
.form-grid.c3 .full{grid-column:1/-1}
.nr-busca{margin-bottom:var(--s5)}
.pac-ficha{border:var(--bd);border-radius:var(--r-sm);padding:var(--s5);background:#fff}
.pac-nom{font-size:var(--fs-lg);font-weight:600;color:var(--br-900);margin-bottom:var(--s4)}
.pac-nom .social{font-style:italic;font-weight:400;color:var(--br-600);font-size:var(--fs-sm)}
.pac-ficha .ficha-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3) var(--s5)}
@media (max-width:1000px){.pac-ficha .ficha-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pac-ficha .ficha-grid>div{font-size:var(--fs-xs)}
.pac-ficha .k{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#6b7783}
/* reservas del día */
.res-dia{margin-top:var(--s7);border:var(--bd-strong);border-radius:var(--r-md);padding:var(--s5);
  background:#fff}
.res-dia .tbl{margin-top:var(--s4)}
.tag-sc{font-size:9px;border:1px solid var(--wa-600);color:var(--wa-700);background:var(--wa-100);
  border-radius:var(--r-sm);padding:0 3px;letter-spacing:.04em}
tr.fila-sc td{background:#fefaf0}
.sel-disp{align-items:stretch}

@media (min-width:1201px){
  .sel-disp{grid-template-columns:minmax(390px,0.85fr) 1.15fr}
}

/* ---------- v1.7 · calendario en una sola grilla ---------- */
.cal-grid{grid-auto-rows:auto}
.cal-dow-c{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:#6b7783;
  text-align:center;padding-bottom:var(--s2);align-self:end}
.cal{padding:var(--s5) var(--s5) var(--s4)}
.cal-grid,.cal-head{margin:0}
/* ---------- v1.7 · bloques compactos ---------- */
.cupos-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.cupo-b{min-height:0;padding:var(--s3) var(--s4);gap:2px;position:relative}
.cupo-b .cb-h{font-size:var(--fs-sm);line-height:1.1}
.cupo-b .cb-mod{min-height:0;gap:4px}
.mod-i .ico-nav{width:16px;height:16px}
.cb-cont{position:absolute;top:3px;right:5px;font-size:11px;opacity:.8}
.cb-lock{font-size:9px;letter-spacing:.03em;opacity:.9}
.cb-sc{font-size:9px;color:#6b7783}
.cupo-b.continuacion{background:repeating-linear-gradient(135deg,#fbeae8 0 5px,#f6ded9 5px 10px)}
.cupo-b.enproceso{background:repeating-linear-gradient(45deg,#eae6f6 0 5px,#e2ddf2 5px 10px);
  border-color:var(--sil-600);color:var(--sil-600);cursor:not-allowed}
.leyenda i.lgb-libre{background:var(--ok-600)} .leyenda i.lgb-ocu{background:var(--er-600)}
.leyenda i.lgb-cont{background:repeating-linear-gradient(135deg,var(--er-600) 0 2px,#f6ded9 2px 4px)}
.leyenda i.lgb-proc{background:var(--sil-600)} .leyenda i.lgb-blq{background:var(--bl-600)}
/* ---------- v1.7 · campos compactos ---------- */
.nr-busca.compacta{display:flex;gap:var(--s3);align-items:flex-end;flex-wrap:wrap}
.c-tipoid{width:118px;flex:none}
.c-ident{width:170px;flex:none;font-variant-numeric:tabular-nums}
.inv-fila{display:grid;grid-template-columns:170px 110px 190px 120px 120px 130px;gap:var(--s4);
  align-items:start}
@media (max-width:1000px){.inv-fila{grid-template-columns:repeat(2,minmax(0,1fr))}}
.inv-fila input,.inv-fila select{width:100%}
.derivado.fijo{display:inline-flex;align-items:center;gap:var(--s2)}
.radios{display:flex;gap:var(--s4);align-items:center;min-height:30px}
.rd{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);cursor:pointer}
.rd .ico-nav{width:15px;height:15px}
.dl-exito{display:grid;grid-template-columns:auto 1fr;gap:var(--s2) var(--s5);margin:var(--s5) 0}
.dl-exito dt{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em;color:#6b7783}
.dl-exito dd{font-size:var(--fs-sm)}
/* ---------- v1.7 · convención de estados administrativos ---------- */
.est-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:600;
  letter-spacing:.04em;border-radius:var(--r-sm);padding:1px var(--s3);border:1px solid;
  white-space:nowrap}
.est-extra{font-weight:400;opacity:.85;font-variant-numeric:tabular-nums}
.e-reservada{background:#fff;      border-color:#c3ced8; color:#3a4854}
.e-confirmada{background:#e6f4ec;   border-color:#2e7d4f; color:#1f6b45}
.e-presentada{background:#fcf3dd;   border-color:#a67c00; color:#8a6400}
.e-asistida{background:#e2f1fa;   border-color:#3f93c4; color:#1f6389}
.e-llamado{background:#d3e9f7;   border-color:#2f83c4; color:#175074}
.e-atencion{background:#dbe7f5;   border-color:#1a6aa8; color:#103c60}
.e-finalizada{background:#eef1f4;   border-color:#93a0ab; color:#5a6672}
.e-abandono{background:#f6ece4;   border-color:#a1704a; color:#7a5233}
.e-anulada{background:#f7e9e8;   border-color:#c07a75; color:#96201a}
.e-reagendada{background:#efeaf7;   border-color:#7d6bbb; color:#514093}
/* acento tenue en filas y tarjetas · nunca color a pantalla completa */
tr.st-confirmada td:first-child{box-shadow:inset 3px 0 0 #2e7d4f}
tr.st-presentada td:first-child{box-shadow:inset 3px 0 0 #a67c00}
tr.st-asistida   td:first-child{box-shadow:inset 3px 0 0 #3f93c4}
tr.st-atencion   td:first-child{box-shadow:inset 3px 0 0 #1a6aa8}
tr.st-finalizada td:first-child{box-shadow:inset 3px 0 0 #93a0ab}
tr.st-reagendada td:first-child{box-shadow:inset 3px 0 0 #7d6bbb}
tr.st-confirmada td{background:#f6fbf8} tr.st-presentada td{background:#fefaf1}
tr.st-asistida   td{background:#f5fafd} tr.st-atencion   td{background:#f4f8fc}
tr.st-finalizada td{background:#fafbfc}
.fila-clinica.st-confirmada{border-left-color:#2e7d4f;background:#f6fbf8}
.fila-clinica.st-presentada{border-left-color:#a67c00;background:#fefaf1}
.fila-clinica.st-asistida{border-left-color:#3f93c4;background:#f5fafd}
.fila-clinica.st-atencion{border-left-color:#1a6aa8;background:#f4f8fc}
.fila-clinica.st-finalizada{border-left-color:#93a0ab;background:#fafbfc}
.bloque.atencion.st-confirmada{border-left-color:#2e7d4f;background:#f6fbf8}
.bloque.atencion.st-presentada{border-left-color:#a67c00;background:#fefaf1}
.bloque.atencion.st-asistida{border-left-color:#3f93c4;background:#f5fafd}
.bloque.atencion.st-atencion{border-left-color:#1a6aa8;background:#f4f8fc}
.bloque.atencion.st-finalizada{border-left-color:#93a0ab;background:#fafbfc}
.paso2.hecho.e-confirmada{border-color:#2e7d4f;background:#e6f4ec;color:#1f6b45}
.paso2.actual.e-presentada{background:#a67c00;border-color:#a67c00;color:#fff}
.paso2.actual.e-asistida{background:#3f93c4;border-color:#3f93c4;color:#fff}
.paso2.actual.e-atencion{background:#1a6aa8;border-color:#1a6aa8;color:#fff}
.paso2.actual.e-finalizada{background:#93a0ab;border-color:#93a0ab;color:#fff}
.paso2.terminal.e-anulada{background:#c07a75;border-color:#c07a75;color:#fff}
.paso2.terminal.e-reagendada{background:#7d6bbb;border-color:#7d6bbb;color:#fff}

/* ---------- v1.8 · centrado real del día dentro de su track ----------
   CAUSA DEL CORRIMIENTO: `aspect-ratio:1/1` con ancho automático le da al
   botón un ancho DEFINIDO (derivado del alto). Al dejar de ser `auto`, el
   `justify-self:stretch` implícito del grid ya no aplica, y el elemento se
   ancla al INICIO del track. Por eso los días quedaban a la izquierda mientras
   los encabezados —que sí ocupan todo el track— se veían centrados.
   Solución: centrado explícito en ambos, y ancho acotado sin anclaje. */
.cal-grid{justify-items:center;align-items:center}
.cal-celda{justify-self:center;align-self:center;width:100%;max-width:46px;margin:0;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:0;
  box-sizing:border-box}
.cal-dow-c{justify-self:center;align-self:end;width:100%;max-width:46px;text-align:center;
  margin:0;padding:0 0 var(--s2);box-sizing:border-box}
.cal-celda.vacia{visibility:hidden}
.cal-n{line-height:1;text-align:center}

/* ---------- v1.8 · fila de tres campos con hint sin desalinear ---------- */
.fila3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);
  align-items:start}
@media (max-width:900px){.fila3{grid-template-columns:1fr}}
.campo-b{display:grid;grid-template-rows:auto 34px auto;align-content:start}
.campo-b>label.f{margin:0 0 var(--s2)}
.campo-b>.ctrl{display:flex;align-items:center;min-height:34px}
.campo-b>.ctrl>input,.campo-b>.ctrl>select{width:100%}
.campo-b>.hint{margin-top:var(--s2);min-height:15px}
.campo-b .radios{min-height:34px;margin:0}

/* ---------- v1.8 · selector buscable de protocolos ---------- */
.buscable{position:relative}
.buscable input{width:100%}
.bs-lista{position:absolute;top:100%;left:0;right:0;z-index:40;background:#fff;
  border:var(--bd-strong);border-radius:var(--r-sm);max-height:230px;overflow-y:auto;
  box-shadow:0 6px 18px rgba(13,42,68,.14)}
.bs-op{display:block;width:100%;text-align:left;padding:var(--s3) var(--s4);font-size:var(--fs-xs);
  border:none;background:none;border-bottom:1px solid var(--n150)}
.bs-op:hover{background:var(--br-50)}
.bs-op .cod{font-weight:600;font-variant-numeric:tabular-nums;color:var(--br-800)}
.bs-op .nom{color:#5a6672}
.bs-grupo{padding:var(--s2) var(--s4);font-size:9px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--br-700);background:var(--br-50);font-weight:600;position:sticky;top:0}
.bs-vacio{padding:var(--s4);font-size:var(--fs-xs);color:#7a858f}
.bs-sel{display:flex;align-items:center;gap:var(--s2);min-height:34px}
.bs-chip{display:inline-flex;gap:4px;align-items:center;border:var(--bd-strong);
  border-radius:var(--r-sm);padding:1px var(--s3);font-size:var(--fs-2xs);
  font-variant-numeric:tabular-nums}
.bs-x{border:none;background:none;cursor:pointer;font-size:12px;line-height:1;color:#7a858f}
.nota-clinica{margin-left:auto;font-size:var(--fs-2xs);text-align:right;max-width:230px}
.tl-buscar{width:190px;font-size:var(--fs-xs)}

/* ---------- v1.9 · celda de Estado con más presencia ---------- */
.celda-estado{min-width:150px}
.celda-estado .est-badge{font-size:var(--fs-xs);padding:3px var(--s4);border-width:1.5px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.celda-estado .e-reservada{background:#fff;    border-color:#8b98a5;color:#2c3a47}
.celda-estado .e-confirmada{background:#c9e9d6;border-color:#1f6b45;color:#14532f}
.celda-estado .e-presentada{background:#f9e6b4;border-color:#8a6400;color:#6b4e00}
.celda-estado .e-asistida{background:#c5e2f4;border-color:#1f6389;color:#144863}
.celda-estado .e-llamado{background:#aed6ee;border-color:#175074;color:#0e3550}
.celda-estado .e-atencion{background:#bcd4ee;border-color:#103c60;color:#0b2c47}
.celda-estado .e-finalizada{background:#dde3e9;border-color:#6f7c88;color:#44505b}
.celda-estado .e-abandono{background:#efdccc;border-color:#7a5233;color:#5c3d25}
.celda-estado .e-anulada{background:#f2d6d4;border-color:#a8443e;color:#7d1a15}
.celda-estado .e-reagendada{background:#ded4f0;border-color:#514093;color:#3c2f70}
.sub2.reag{margin-top:3px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
td.ident{white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---------- v1.10 · historial del paciente ---------- */
.hist{display:grid;gap:var(--s5)}
.hist-cab{border:var(--bd);border-radius:var(--r-sm);padding:var(--s5);background:var(--br-50)}
.hc-nom{font-size:var(--fs-lg);font-weight:600;color:var(--br-900)}
.hc-nom .social{font-style:italic;font-weight:400;font-size:var(--fs-sm);color:var(--br-600)}
.hc-datos{display:flex;gap:var(--s5);flex-wrap:wrap;margin-top:var(--s2);font-size:var(--fs-xs)}
.hist-tabs{margin:0}
.hist-tbl td{vertical-align:top}
.hist-tbl .celda-estado{min-width:130px}

/* ============================================================
   v1.11 · LENGUAJE VISUAL SYNTRIAL / BRADFORD HILL
   Un solo juego de tokens para todo el producto: el login y el interior
   usan exactamente los mismos. Sobrio, institucional, sin adornos.
   ============================================================ */
:root{
  /* superficies */
  --sy-fondo:#f4f6f8;
  --sy-superficie:#ffffff;
  --sy-borde:#dde3e9;
  --sy-borde-fuerte:#c7d0d9;
  /* azul institucional */
  --sy-azul:#1a6aa8;
  --sy-azul-oscuro:#14507d;
  --sy-azul-profundo:#0d2a44;
  --sy-azul-claro:#e4eff8;
  /* texto */
  --sy-texto:#1e2a35;
  --sy-texto-sec:#5a6672;
  --sy-texto-ter:#8b98a5;
  /* geometría discreta */
  --sy-r-sm:3px;
  --sy-r-md:6px;
  --sy-sombra:0 1px 2px rgba(13,42,68,.06);
  --sy-sombra-card:0 2px 10px rgba(13,42,68,.07);
  --sy-fuente:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
}
body{background:var(--sy-fondo);font-family:var(--sy-fuente);color:var(--sy-texto)}
/* gradientes retirados: superficies planas e institucionales */
.sidebar{background:var(--sy-azul-profundo)}
.sede-band{background:var(--sy-azul);height:3px}
.pantalla{background:var(--sy-azul-profundo)}
.card,.cal,.disp,.res-dia,.mtr-panel{box-shadow:var(--sy-sombra);border-radius:var(--sy-r-md)}
.btn{border-radius:var(--sy-r-sm)}
.btn.primary{background:var(--sy-azul);border-color:var(--sy-azul)}
.btn.primary:hover{background:var(--sy-azul-oscuro);border-color:var(--sy-azul-oscuro)}
input,select,textarea{border-radius:var(--sy-r-sm);font-family:var(--sy-fuente)}
.modal{border-radius:var(--sy-r-md);box-shadow:var(--sy-sombra-card);border-top-color:var(--sy-azul)}
.drawer{box-shadow:var(--sy-sombra-card)}
.mod-head h2,.cal-head h3,.disp-head h3,.mtr-head h3{font-weight:600;letter-spacing:-.01em}

/* ---------- pantalla de acceso ---------- */
.login{flex:1;min-height:100vh;background:var(--sy-fondo);padding:var(--s8) var(--s6);
  display:flex;align-items:center;justify-content:center}
.login-caja{width:min(430px,94vw);background:var(--sy-superficie);border:1px solid var(--sy-borde);
  border-radius:var(--sy-r-md);box-shadow:var(--sy-sombra-card);border-top:none;
  padding:var(--s8) var(--s7) var(--s7)}
.sy-logo{display:flex;flex-direction:column;align-items:center;gap:var(--s4);margin-bottom:var(--s8)}
.sy-logo svg{display:block}
.sy-producto{font-size:var(--fs-2xs);letter-spacing:.16em;text-transform:uppercase;
  color:var(--sy-texto-ter);font-weight:600}
.sy-bloque{border:1px solid var(--sy-borde);border-radius:var(--sy-r-md);padding:var(--s6);
  background:var(--sy-superficie)}
.sy-bloque.principal{border-color:#bcd8ee;background:#fafcfe}
.sy-bloque h3{font-size:var(--fs-md);font-weight:600;color:var(--sy-texto);margin-bottom:2px}
.sy-bloque p.sy-sub{font-size:var(--fs-xs);color:var(--sy-texto-sec);margin-bottom:var(--s5)}
.sy-btn-sso{width:100%;padding:var(--s5);font-size:var(--fs-sm);font-weight:600;
  background:var(--sy-azul);color:#fff;border:1px solid var(--sy-azul);border-radius:var(--sy-r-sm);
  display:flex;align-items:center;justify-content:center;gap:var(--s3)}
.sy-btn-sso:hover{background:var(--sy-azul-oscuro);border-color:var(--sy-azul-oscuro)}
.sy-sep{display:flex;align-items:center;gap:var(--s4);margin:var(--s6) 0;
  font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--sy-texto-ter)}
.sy-sep::before,.sy-sep::after{content:'';flex:1;height:1px;background:var(--sy-borde)}
.sy-campo{margin-bottom:var(--s5)}
.sy-campo label{display:block;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;
  color:var(--sy-texto-sec);font-weight:600;margin-bottom:var(--s2)}
.sy-campo input{width:100%;padding:var(--s4);border:1px solid var(--sy-borde-fuerte);
  border-radius:var(--sy-r-sm);font-size:var(--fs-sm);background:var(--sy-superficie)}
.sy-campo input:focus{border-color:var(--sy-azul);outline:2px solid var(--sy-azul-claro)}
.sy-pass{position:relative;display:flex;align-items:center}
.sy-pass input{padding-right:44px}
.sy-ver{position:absolute;right:var(--s2);background:none;border:none;padding:var(--s2);
  color:var(--sy-texto-sec);display:flex;align-items:center;border-radius:var(--sy-r-sm)}
.sy-ver:hover{background:var(--sy-azul-claro);color:var(--sy-azul-oscuro)}
.sy-btn-local{width:100%;padding:var(--s5);font-size:var(--fs-sm);font-weight:600;
  background:var(--sy-superficie);color:var(--sy-azul-oscuro);border:1px solid var(--sy-azul);
  border-radius:var(--sy-r-sm)}
.sy-btn-local:hover{background:var(--sy-azul-claro)}
.sy-pie{margin-top:var(--s7);padding-top:var(--s5);border-top:1px solid var(--sy-borde);
  font-size:var(--fs-2xs);color:var(--sy-texto-ter);text-align:center;line-height:1.6}
.sy-error{border-left:3px solid #b3261e;background:#fbeae8;color:#96201a;padding:var(--s4);
  border-radius:var(--sy-r-sm);font-size:var(--fs-xs);margin-bottom:var(--s5)}
.sy-demo{margin-top:var(--s6);border-top:1px solid var(--sy-borde);padding-top:var(--s5)}
.sy-demo summary{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--sy-texto-sec);font-weight:600;cursor:pointer}
.sy-demo table{margin-top:var(--s4)}

/* ============================================================
   v1.12 · GEOMETRÍA REAL DEL MENÚ COLAPSABLE
   Antes el sidebar se encogía pero el track del grid seguía midiendo
   --sidebar-w, así que quedaba una franja vacía. Ahora hay UN solo valor
   activo, `--sb-w`, del que dependen el track y el sidebar.
   ============================================================ */
.app{
  --sb-exp:236px;                 /* menú con icono + texto */
  --sb-col:56px;                  /* menú solo con iconos  */
  --sb-w:var(--sb-exp);           /* valor activo · única fuente de verdad */
  grid-template-columns:var(--sb-w) minmax(0,1fr);
  transition:grid-template-columns .18s ease;
}
.app.menu-off{--sb-w:var(--sb-col)}
/* el sidebar ocupa su track: no fija su propio ancho en ninguna parte */
.sidebar{width:auto;min-width:0;overflow-x:hidden;transition:padding .18s ease}
.app.menu-off .sidebar{padding-left:0;padding-right:0}
/* `minmax(0,1fr)` permite que el contenido se encoja y se expanda de verdad:
   tablas, calendarios y grillas recalculan su ancho disponible */
.main{min-width:0;width:100%}
.main .wrap,.main .card,.main .tbl,.main .cupos-grid,.main .cal-grid,.main .sel-disp,
.main .agenda-dia,.main .res-dia,.main .mtr-shell{max-width:100%}
.tbl{width:100%;table-layout:auto}
@media (prefers-reduced-motion:reduce){
  .app,.sidebar{transition:none}
}

/* ---------- v1.13 · Visor ---------- */
.vs-config{max-width:560px;border:1px solid var(--sy-borde);border-radius:var(--sy-r-md);
  padding:var(--s7);background:var(--sy-superficie);box-shadow:var(--sy-sombra)}
.vs-config h3{font-size:var(--fs-lg);color:var(--sy-azul-profundo);margin-bottom:var(--s2)}
.vs-canal{margin-top:var(--s5);font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.vs-publico{background:var(--sy-azul-profundo);color:#fff;border-radius:var(--sy-r-md);
  padding:var(--s7);display:grid;grid-template-rows:auto 1fr auto;gap:var(--s6);min-height:340px}
.vs-head{display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:1px solid rgba(255,255,255,.16);padding-bottom:var(--s4)}
.vs-sede{font-size:var(--fs-md);font-weight:600;letter-spacing:.02em}
.vs-piso{font-size:var(--fs-sm);color:#7fb2d9;letter-spacing:.12em;text-transform:uppercase}
.vs-principal{display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:180px}
.vs-anuncio{display:grid;gap:var(--s4)}
.vs-nombre{font-size:clamp(34px,6vw,80px);font-weight:700;letter-spacing:-.01em;line-height:1.05}
.vs-destino{font-size:clamp(26px,4.4vw,58px);font-weight:600;color:#8fc4ea;letter-spacing:.04em}
.vs-espera{font-size:var(--fs-lg);color:#5a86a8;letter-spacing:.1em;text-transform:uppercase}
.vs-lista{border-top:1px solid rgba(255,255,255,.16);padding-top:var(--s5)}
.vs-lista-t{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.12em;color:#7fb2d9;
  margin-bottom:var(--s4)}
.vs-lista ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.vs-lista li{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s5);
  border-bottom:1px solid rgba(255,255,255,.09);padding-bottom:var(--s3)}
.vl-nom{font-size:clamp(15px,1.7vw,24px);font-weight:600}
.vl-dest{font-size:clamp(14px,1.5vw,21px);color:#8fc4ea;font-variant-numeric:tabular-nums}
.vs-lista-vacia{color:#4a728f}
/* modo pantalla · ocupa el viewport y no deja chrome del sistema a la vista */
.visor-full{display:none}
.visor-full.on{display:block;position:fixed;inset:0;z-index:200;background:var(--sy-azul-profundo)}
.visor-full .vs-publico{height:100vh;border-radius:0;padding:clamp(24px,4vw,64px);
  min-height:100vh}
.oculto-visor{display:none!important}
.vs-salir{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:var(--sy-r-sm);
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.45);
  font-size:17px;line-height:1;cursor:pointer}
.vs-salir:hover{background:rgba(255,255,255,.14);color:#fff}
.inv-linea{margin-top:3px;font-size:var(--fs-2xs);color:var(--sy-azul-oscuro);
  font-variant-numeric:tabular-nums;letter-spacing:.01em}
.ar-lista{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:var(--s2)}
.ar-lista li{display:flex;justify-content:space-between;gap:var(--s5);align-items:baseline;
  border-bottom:1px solid var(--sy-borde);padding-bottom:var(--s2);font-size:var(--fs-xs)}
.ar-n{font-weight:600}

/* ---------- v1.17 · eventos de atención ---------- */
.ev-linea{list-style:none;margin:var(--s4) 0 var(--s4);padding:0;display:grid;gap:var(--s3);
  position:relative}
.ev-it{display:grid;grid-template-columns:26px 1fr;gap:var(--s4);align-items:start;
  border-left:2px solid var(--sy-borde);padding:0 0 var(--s3) var(--s4);margin-left:9px}
.ev-it:last-child{padding-bottom:0}
.ev-ico{display:flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:50%;border:1px solid var(--sy-borde-fuerte);background:var(--sy-superficie);
  margin-left:-27px}
.ev-llamado .ev-ico{border-color:#b3261e;color:#96201a;background:#fbeae8}
.ev-fin .ev-ico{border-color:var(--sy-borde-fuerte);color:var(--sy-texto-sec)}
.ev-ico .ico-nav{width:14px;height:14px}
.ev-t{font-size:var(--fs-sm);font-weight:600;color:var(--sy-texto)}
.ev-box{font-weight:600;color:var(--sy-azul-oscuro)}
.ev-meta{font-size:var(--fs-xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.rs-eventos{display:grid;gap:var(--s2);margin-top:var(--s3)}
.rs-eventos .re-it{font-size:var(--fs-xs);display:flex;gap:var(--s3);flex-wrap:wrap;
  border-bottom:1px solid var(--sy-borde);padding-bottom:var(--s2)}
.re-h{font-variant-numeric:tabular-nums;color:var(--sy-texto-sec)}

/* ---------- v1.19 · distintivos y tiempos ---------- */
.dist-linea{display:flex;gap:4px;flex-wrap:wrap;margin-top:var(--s2)}
.badge-dist{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;padding:1px var(--s3);border-radius:var(--sy-r-sm);
  background:var(--sil-100);border:1px solid var(--sil-600);color:var(--sil-600);white-space:nowrap}
.tiempos{display:flex;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s2);font-size:var(--fs-2xs);
  color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.t-it{display:inline-flex;gap:3px;align-items:baseline}
.t-k{font-weight:600;color:var(--sy-azul-oscuro)}
.hint.eq{font-variant-numeric:tabular-nums;color:var(--sy-azul-oscuro);font-weight:600}
/* los tiempos usan el token secundario · el 9px propio se retiró, no se tapó */
.tarj .tiempos,.sillon .tiempos,.tarj-espera .tiempos{
  font-size:var(--card-sec);line-height:var(--card-lh)}

/* ---------- v1.20 · Timeline ---------- */
.tl-body{overflow:hidden}
.tl-scroll{overflow-x:auto;overflow-y:visible;padding-bottom:var(--s4)}
.tl-inner{min-width:100%}
.tl-head,.tl-fila,.tl-grupo,.tl-piso{display:grid;grid-template-columns:150px minmax(0,1fr);
  align-items:center;gap:var(--s4)}
.tl-eje{position:relative;height:26px}
.tl-eje .tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--sy-borde)}
.tl-eje .tick.mayor{border-left-color:var(--sy-borde-fuerte)}
.tl-eje .tick span{position:absolute;top:0;left:3px;font-size:9px;color:var(--sy-texto-ter);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.tl-eje .tick.mayor span{font-size:10px;color:var(--sy-texto-sec);font-weight:600}
.tl-piso .tl-lbl.piso{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;
  font-weight:700;color:var(--sy-azul-profundo)}
.tl-sep.piso{height:2px;background:var(--sy-azul);opacity:.5}
.tl-fila{min-height:34px}
.tl-pista{position:relative;height:30px;border-radius:var(--sy-r-sm)}
.barra{position:absolute;top:3px;height:24px;border-radius:var(--sy-r-sm);font-size:10px;
  display:flex;align-items:center;gap:4px;padding:0 5px;overflow:hidden;white-space:nowrap;
  cursor:pointer}
/* texto principal de la barra · más perceptible, con ellipsis y sin cambiar la altura */
.barra .b-txt{font-size:var(--card-dato);line-height:1;overflow:hidden;text-overflow:ellipsis}
.barra.plan{background:#fff;border:1.5px solid var(--sy-azul);color:var(--sy-azul-profundo);z-index:2}
.barra.plan.est-confirmada{border-color:#2e7d4f}
.barra.plan.est-presentada{border-color:#a67c00}
.barra.plan.est-asistida{border-color:#3f93c4}
.barra.plan.est-finalizada{border-color:#93a0ab}
.barra.plan.con-alerta{border-color:#b3261e}
.barra.real{top:20px;height:9px;background:var(--er-600);border-radius:2px;z-index:3;padding:0}
.barra.real.excede{background:repeating-linear-gradient(90deg,var(--er-700) 0 4px,var(--wa-600) 4px 8px)}
.b-exc{font-size:8px;color:#fff;margin-left:2px}
.badge-alerta .ico-nav{width:11px;height:11px;color:#b3261e}
.b-dist{display:inline-flex;gap:2px;margin-left:auto}
.b-dist i{font-style:normal;font-size:8px;font-weight:700;letter-spacing:.04em;
  background:var(--sil-100);color:var(--sil-600);border:1px solid var(--sil-600);
  border-radius:2px;padding:0 2px}
.zoom{display:flex;align-items:center;gap:var(--s2)}
.z-val{font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;color:var(--sy-texto-sec);
  min-width:36px;text-align:center}
.tl-leyenda{margin-top:var(--s5)}
.leyenda i.lgt-plan{background:#fff;border:1.5px solid var(--sy-azul)}
.leyenda i.lgt-real{background:var(--er-600)}
.leyenda i.lgt-exc{background:repeating-linear-gradient(90deg,var(--er-700) 0 2px,var(--wa-600) 2px 4px)}
.leyenda i.lgt-blq{background:repeating-linear-gradient(135deg,var(--bl-100) 0 3px,#e9ded6 3px 6px);
  border:1px solid var(--bl-600)}
.leyenda i.lgt-fuera{background:repeating-linear-gradient(45deg,#dde4ea 0 2px,#e7edf2 2px 4px)}
.ocup-real{font-size:var(--fs-2xs);color:var(--er-700);margin-top:2px}
.tarj-espera .tiempos,.tarj .tiempos{margin-top:3px}

/* ---------- v1.22 · arrastrar y soltar en el mapa ---------- */
.sillon[data-arrastrable]{cursor:grab}
.sillon[data-arrastrable]:active{cursor:grabbing}
.asa{display:inline-block;margin-right:4px;color:var(--sy-texto-ter);font-size:11px;letter-spacing:-1px}
body.arrastrando .sillon{transition:none}
/* CHIP LOCAL dentro de la tarjeta · nunca una franja de ancho completo.
   El rótulo se escribe: el color nunca comunica solo. */
.sillon[data-dd]::after{content:attr(data-dd);position:absolute;left:auto;right:4px;bottom:4px;
  font-size:var(--card-badge);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:1px 5px;border-radius:8px;border:1px solid;z-index:5;white-space:nowrap;
  max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;
  box-shadow:0 1px 2px rgba(16,24,32,.12)}
/* origen · discreto */
.sillon.dd-origen{outline:2px dashed var(--sy-azul);outline-offset:-2px;opacity:.7}
.sillon.dd-origen::after{background:var(--sy-superficie);border-color:var(--sy-azul);
  color:var(--sy-azul-oscuro);font-weight:600}
/* mover aquí · claro */
.sillon.dd-ok{outline:2px solid var(--ok-600);outline-offset:-2px;
  box-shadow:0 0 0 3px rgba(31,107,69,.14)}
.sillon.dd-ok::after{background:#d8efe1;border-color:var(--ok-600);color:#14532f}
/* enroque · claro y DISTINTO */
.sillon.dd-enroque{outline:2px dashed var(--sil-600);outline-offset:-2px;
  box-shadow:0 0 0 3px rgba(91,72,168,.16)}
.sillon.dd-enroque::after{background:#ded4f0;border-color:var(--sil-600);color:#3c2f70}
/* no permitido · apagado */
.sillon.dd-no{outline:1px solid var(--n300);outline-offset:-2px;opacity:.45;cursor:not-allowed}
.sillon.dd-no::after{background:var(--n150);border-color:var(--n300);color:#5a6672;
  font-weight:600;box-shadow:none}
/* ghost compacto pegado al cursor · no duplica la tarjeta clínica */
.dd-ghost{position:fixed;top:-1000px;left:-1000px;z-index:9999;pointer-events:none;
  background:var(--sy-superficie);border:1px solid var(--sy-azul);border-radius:var(--sy-r-sm);
  padding:4px 8px;max-width:170px;opacity:.92;box-shadow:0 4px 10px rgba(16,24,32,.18)}
.dd-ghost .g-nom{font-size:var(--fs-2xs);font-weight:700;color:var(--sy-texto);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-ghost .g-sil{font-size:9px;color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.dd-ghost .g-acc{font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sy-azul-oscuro)}

/* ---------- v1.23 · Seguimiento de reservas ---------- */
.tbl.seg td{vertical-align:top;font-size:var(--fs-xs)}
.ev-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:700;
  letter-spacing:.05em;border-radius:var(--sy-r-sm);padding:2px var(--s3);border:1.5px solid}
.ev-badge .ico-nav{width:12px;height:12px}
.ev-op.op-llamado{background:#fdeee9;border-color:#b3572a;color:#8a3f1c}
.ev-op.op-colgar{background:#eef1f4;border-color:#6f7c88;color:#44505b}
.ev-dest{font-size:var(--fs-2xs);font-weight:600;color:var(--sy-azul-oscuro)}
tr.st-operacional td:first-child{box-shadow:inset 3px 0 0 #b3572a}
tr.st-operacional td{background:#fdfaf8}
.paginacion{display:flex;align-items:center;gap:var(--s5);justify-content:center;
  padding:var(--s5) 0;flex-wrap:wrap}
.no-reg{font-size:var(--fs-2xs);color:var(--sy-texto-ter);font-style:italic}

/* ---------- v1.25 · Auditoría ---------- */
.tbl.aud td{vertical-align:top;font-size:var(--fs-xs)}
.mv-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;
  padding:2px var(--s3);border-radius:var(--sy-r-sm);border:1.5px solid;white-space:nowrap}
.mv-crea{background:#e6f4ec;border-color:#1f6b45;color:#14532f}
.mv-mod {background:#e4eff8;border-color:#14507d;color:#0d2a44}
.mv-act {background:#f6fbf8;border-color:#2e7d4f;color:#1f6b45}
.mv-des {background:#f7e9e8;border-color:#a8443e;color:#7d1a15}
.dias-c{display:inline-flex;gap:2px}
.dias-c i{font-style:normal;font-size:9px;font-weight:700;width:13px;height:13px;line-height:13px;
  text-align:center;border-radius:2px;border:1px solid var(--sy-borde-fuerte)}
.dias-c i.on{background:var(--sy-azul);border-color:var(--sy-azul);color:#fff}
.dias-c i.off{background:var(--sy-superficie);color:var(--sy-texto-ter)}
.mini-si{display:block;font-size:9px;color:var(--sy-azul-oscuro);font-weight:600}
.tbl td.antes{color:#96201a;text-decoration:line-through;text-decoration-color:#c07a75}
.tbl td.despues{color:#14532f;font-weight:600}

/* ---------- v1.28 · línea de tiempo del ciclo Poli ---------- */
.lt-marco{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4)}
.lt-marco .ico-nav{width:15px;height:15px;color:var(--po-600,#1a6aa8)}
.lt-tipo{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;font-weight:700;
  color:var(--sy-azul-oscuro)}
.lt{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0}
.lt-it{position:relative;flex:1 1 128px;min-width:128px;padding:0 var(--s4) var(--s5) 0;
  display:grid;grid-template-columns:20px 1fr;gap:var(--s3);align-items:start}
.lt-it::after{content:'';position:absolute;left:20px;right:0;top:9px;height:2px;
  background:var(--sy-borde);z-index:0}
.lt-it:last-child::after{display:none}
.lt-it.lt-hecho::after,.lt-it.lt-actual::after{background:var(--ok-600)}
.lt-marca{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:11px;border:1.5px solid var(--sy-borde-fuerte);
  background:var(--sy-superficie);z-index:1;position:relative}
.lt-hecho .lt-marca{border-color:var(--ok-600);background:#e6f4ec;color:#14532f}
.lt-actual .lt-marca{border-color:var(--sy-azul);background:var(--sy-azul);color:#fff;
  box-shadow:0 0 0 3px var(--sy-azul-claro)}
.lt-terminal .lt-marca{border-color:#a8443e;background:#f2d6d4;color:#7d1a15;font-size:8px}
.lt-omitida .lt-marca{border-style:dotted;color:var(--sy-texto-ter)}
.lt-no-alcanzado .lt-marca{background:var(--n100);border-color:var(--n200)}
.lt-t{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--sy-texto);line-height:1.25}
.lt-no-alcanzado .lt-t,.lt-omitida .lt-t{color:var(--sy-texto-ter);font-weight:600}
.lt-actual .lt-t{color:var(--sy-azul-oscuro)}
.lt-terminal .lt-t{color:#7d1a15}
.lt-terminal.e-reagendada .lt-t{color:#3c2f70}
.lt-terminal.e-reagendada .lt-marca{border-color:#7d6bbb;background:#ded4f0;color:#3c2f70}
.lt-box{font-weight:700;color:var(--sy-azul-oscuro)}
.lt-actual2,.lt-actual .lt-actual{}
.lt-t .lt-actual{display:inline-block;margin-left:4px;font-size:8px;letter-spacing:.06em;
  background:var(--sy-azul);color:#fff;border-radius:2px;padding:0 3px;vertical-align:middle}
.lt-meta{font-size:var(--fs-2xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums;
  margin-top:2px}
.lt-meta.vacio{color:var(--sy-texto-ter);font-style:italic}
.lt-u{font-size:var(--fs-2xs);color:var(--sy-texto);font-weight:600}
.lt-nota{font-size:9px;color:var(--sy-texto-ter);margin-top:1px}
.lt-op .lt-marca{border-color:#b3572a;background:#fdeee9;color:#8a3f1c}
.lt-op::after{background:#e8c3b2}
.rs-ciclo{grid-column:1/-1}

/* ---------- v1.29 · identidad de dominio ---------- */
.dom{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);
  border-radius:var(--sy-r-md);border:1px solid;border-left-width:5px;margin-bottom:var(--s5)}
.dom-poli{background:#eef5fb;border-color:#bcd8ee;border-left-color:var(--sy-azul)}
.dom-sillon{background:#f1eefa;border-color:#d5cbef;border-left-color:#5b48a8}
.dom-ico{display:flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;background:var(--sy-superficie);border:1px solid}
.dom-poli .dom-ico{border-color:var(--sy-azul);color:var(--sy-azul-oscuro)}
.dom-sillon .dom-ico{border-color:#5b48a8;color:#4a3a8c}
.dom-ico .ico-nav{width:16px;height:16px}
.dom-t{font-size:var(--fs-2xs);font-weight:800;letter-spacing:.12em;display:flex;
  align-items:baseline;gap:var(--s3);flex-wrap:wrap}
.dom-poli .dom-t{color:var(--sy-azul-oscuro)}
.dom-sillon .dom-t{color:#4a3a8c}
.dom-id{font-weight:600;letter-spacing:.02em;font-size:var(--fs-sm);
  font-variant-numeric:tabular-nums;color:var(--sy-texto)}
.dom-sub{font-size:var(--fs-xs);color:var(--sy-texto-sec);margin-top:2px}
/* ---------- v1.29 · ficha demográfica ---------- */
.ficha-pac .pac-id{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--sy-azul-oscuro);margin-bottom:var(--s4)}
.demo{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:var(--s2) var(--s5);margin:0}
@media (max-width:820px){.demo{grid-template-columns:auto 1fr}}
.demo dt{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em;
  color:var(--sy-texto-ter);white-space:nowrap}
.demo dd{font-size:var(--fs-xs);color:var(--sy-texto);margin:0}
/* ---------- v1.29 · finalizada con resultado pendiente ---------- */
.lt-sufijo{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:#8a6400;background:#fcf3dd;border:1px solid #a67c00;border-radius:2px;
  padding:0 3px;display:inline-block;margin-top:2px}
.lt-res{font-size:var(--fs-2xs);color:#14532f;font-weight:600;margin-top:2px}
.lt-pend .lt-marca{border-color:#a67c00;background:#fcf3dd;color:#8a6400}
.ficha-grid .sin{color:var(--sy-texto-ter);font-style:italic;font-size:var(--fs-2xs)}

/* ============================================================
   v1.30 · TIMELINE CON GEOMETRÍA EXPLÍCITA
   Una fila, columnas IGUALES por hito. Ningún texto cambia el ancho de su
   columna: `minmax(0,1fr)` + `min-width:0` + corte de palabras.
   ============================================================ */
.tl2-marco{margin:var(--s4) 0}
.tl2{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(var(--tl2-cols),minmax(0,1fr));gap:0;align-items:start}
.tl2-col{min-width:0;display:grid;grid-template-rows:20px auto;gap:var(--s3);
  text-align:center;position:relative;padding:0 var(--s2)}
.tl2-linea{position:relative;height:20px;display:flex;align-items:center;justify-content:center}
/* la línea conectora se dibuja SOLO entre columnas, sin desalinear el punto */
.tl2-linea::before,.tl2-linea::after{content:'';position:absolute;top:9px;height:2px;
  background:var(--sy-borde)}
.tl2-linea::before{left:0;right:50%;margin-right:11px}
.tl2-linea::after{left:50%;right:0;margin-left:11px}
.tl2-col:first-child .tl2-linea::before,
.tl2-col:last-child .tl2-linea::after{display:none}
.tl2-hecho .tl2-linea::before,.tl2-hecho .tl2-linea::after,
.tl2-actual .tl2-linea::before{background:var(--ok-600)}
.tl2-punto{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:11px;border:1.5px solid var(--sy-borde-fuerte);
  background:var(--sy-superficie);position:relative;z-index:1;flex:none}
.tl2-hecho .tl2-punto{border-color:var(--ok-600);background:#e6f4ec;color:#14532f}
.tl2-actual .tl2-punto{border-color:var(--sy-azul);background:var(--sy-azul);color:#fff;
  box-shadow:0 0 0 3px var(--sy-azul-claro)}
.tl2-omitida .tl2-punto{border-style:dotted;color:var(--sy-texto-ter)}
.tl2-no-alcanzado .tl2-punto{background:var(--n100);border-color:var(--n200)}
.tl2-pend .tl2-punto{border-color:#a67c00;background:#fcf3dd;color:#8a6400}
.tl2-txt{min-width:0;overflow-wrap:anywhere}
.tl2-n{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  line-height:1.3;color:var(--sy-texto)}
.tl2-no-alcanzado .tl2-n,.tl2-omitida .tl2-n{color:var(--sy-texto-ter)}
.tl2-actual .tl2-n{color:var(--sy-azul-oscuro)}
.tl2-act{display:block;font-size:8px;background:var(--sy-azul);color:#fff;border-radius:2px;
  padding:0 3px;margin:2px auto 0;width:max-content;letter-spacing:.06em}
.tl2-cnt{display:block;font-size:8px;color:var(--sy-texto-sec);font-weight:600;margin-top:1px}
.tl2-f,.tl2-h{font-size:var(--fs-2xs);color:var(--sy-texto-sec);
  font-variant-numeric:tabular-nums;line-height:1.35}
.tl2-u{font-size:var(--fs-2xs);color:var(--sy-texto);font-weight:600;line-height:1.35}
.tl2-sec{font-size:9px;color:var(--sy-texto-ter);margin-top:2px}
.tl2-sec.pend{color:#8a6400;background:#fcf3dd;border:1px solid #a67c00;border-radius:2px;
  display:inline-block;padding:0 3px;font-weight:700}
.tl2-lista{list-style:none;margin:var(--s2) 0 0;padding:0;display:grid;gap:2px}
.tl2-lista li{font-size:9px;color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.tl2-lista .tl2-u{display:block;font-size:8px}
/* terminal como RAMA · no deforma la fila principal */
.tl2-rama{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4);
  padding:var(--s3) var(--s5);border-left:3px solid;border-radius:0 var(--sy-r-sm) var(--sy-r-sm) 0;
  margin-left:8%}
.tl2-rama.e-anulada{border-color:#a8443e;background:#f7e9e8}
.tl2-rama.e-reagendada{border-color:#7d6bbb;background:#efeaf7}
.tl2-flecha{font-size:13px;opacity:.7}
.tl2-tn{font-size:var(--fs-2xs);font-weight:800;letter-spacing:.06em}
.tl2-rama.e-anulada .tl2-tn{color:#7d1a15}
.tl2-rama.e-reagendada .tl2-tn{color:#3c2f70}
.tl2-tm{font-size:var(--fs-2xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.tl2-leyenda{font-size:9px;color:var(--sy-texto-ter);margin-top:var(--s4)}
/* breakpoint explícito · antes que comprimir, se pasa a vertical */
@media (max-width:900px){
  .tl2{grid-template-columns:1fr;gap:var(--s2)}
  .tl2-col{grid-template-columns:20px 1fr;grid-template-rows:auto;text-align:left;
    padding:0 0 var(--s4) 0;gap:var(--s4)}
  .tl2-linea::before,.tl2-linea::after{left:9px;right:auto;top:auto;width:2px;margin:0}
  .tl2-linea::before{height:0}
  .tl2-linea::after{height:100%;top:20px}
  .tl2-col:last-child .tl2-linea::after{display:none}
  .tl2-act,.tl2-cnt{margin-left:0}
  .tl2-rama{margin-left:0}
}
/* ---------- v1.30 · identidad en el header del drawer ---------- */
#drw-header{border-left:5px solid transparent}
#drw-header.hd-poli{background:#eef5fb;border-left-color:var(--sy-azul)}
#drw-header.hd-sillon{background:#f1eefa;border-left-color:#5b48a8}
#drw-title{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.hd-ico{display:flex;align-items:center}
.hd-ico .ico-nav{width:16px;height:16px}
.hd-poli .hd-ico{color:var(--sy-azul-oscuro)} .hd-sillon .hd-ico{color:#4a3a8c}
.hd-dom{font-size:var(--fs-2xs);font-weight:800;letter-spacing:.12em}
.hd-poli .hd-dom{color:var(--sy-azul-oscuro)} .hd-sillon .hd-dom{color:#4a3a8c}
.hd-id{font-size:var(--fs-md);font-weight:600;font-variant-numeric:tabular-nums;
  color:var(--sy-texto)}
/* el timeline de sillones pertenece al dominio violeta, sin tocar los colores de estado */
.tl2-sillon .tl2-actual .tl2-punto{border-color:#5b48a8;background:#5b48a8;
  box-shadow:0 0 0 3px #ded4f0}
.tl2-sillon .tl2-actual .tl2-n{color:#4a3a8c}
.tl2-sillon .tl2-act{background:#5b48a8}

/* ---------- v1.31 · reagendar Poli ---------- */
.reag-ctx{border:1px solid var(--sy-borde);border-radius:var(--sy-r-md);padding:var(--s5);
  background:var(--sy-fondo);margin-bottom:var(--s5)}
.reag-t{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;font-weight:700;
  color:var(--sy-texto-sec)}
.pasos{list-style:none;display:flex;gap:var(--s5);margin:0 0 var(--s5);padding:0;flex-wrap:wrap}
.pasos li{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;font-weight:700;
  color:var(--sy-texto-ter)}
.pasos li.act{color:var(--sy-azul-oscuro)}
.pasos li.ok{color:var(--ok-600)}
.reag-cal,.reag-blq{margin-top:var(--s5)}
.reag-comp{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--s5);align-items:center;
  margin-top:var(--s6);border-top:1px solid var(--sy-borde);padding-top:var(--s5)}
@media (max-width:760px){.reag-comp{grid-template-columns:1fr}}
.rc-lado{border:1px solid var(--sy-borde);border-radius:var(--sy-r-md);padding:var(--s5)}
.rc-antes{background:var(--sy-fondo);opacity:.85}
.rc-nueva{background:#eef5fb;border-color:#bcd8ee}
.rc-t{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;
  color:var(--sy-texto-ter);font-weight:700}
.rc-n{font-size:var(--fs-md);font-weight:600;margin-top:2px}
.rc-f{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--sy-azul-oscuro)}
.rc-s{font-size:var(--fs-xs);color:var(--sy-texto-sec);margin-top:2px}
.rc-flecha{font-size:22px;color:var(--sy-azul);text-align:center}

/* ---------- v1.32 · requiere sillón interactivo y situación derivada ---------- */
.rs-link{background:none;border:none;padding:0;font-size:var(--fs-sm);font-weight:700;
  color:var(--sy-azul);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.rs-link:hover{color:var(--sy-azul-oscuro)}
.rs-link:focus-visible{outline:2px solid var(--sy-azul);outline-offset:2px;border-radius:2px}
.rs-fijo{font-size:var(--fs-sm);font-weight:700;color:var(--sy-texto)}
.sit{display:inline-block;margin-top:3px;font-size:9px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;padding:1px var(--s3);border-radius:var(--sy-r-sm);border:1px solid;
  white-space:nowrap}
.sit-pend{background:#fcf3dd;border-color:#a67c00;color:#8a6400}
.sit-ok{background:#e6f4ec;border-color:#1f6b45;color:#14532f}
/* la situación de sillón cuelga DEBAJO del Sí/No · composición vertical explícita */
.col-rs{display:table-cell}
.col-rs .sit-linea{display:block;margin-top:3px}
.col-rs .rs-link,.col-rs .rs-fijo{display:block}
.te-asis{font-size:var(--fs-2xs);color:var(--sy-texto-sec);margin-top:3px;
  font-variant-numeric:tabular-nums}
.te-asis strong{color:var(--sy-azul-oscuro)}
.te-asis.sin{font-style:italic;color:var(--sy-texto-ter)}
.te-esp{display:inline-block;margin-left:var(--s3);font-weight:700;color:#8a6400;
  background:#fcf3dd;border:1px solid #a67c00;border-radius:2px;padding:0 3px;font-size:9px}
td.id-res{white-space:nowrap;font-weight:600;color:var(--sy-azul-oscuro)}

/* ---------- v1.34 · multiselect de protocolos ---------- */
.mp{position:relative;min-width:210px}
.mp-boton{display:flex;align-items:center;gap:var(--s3);width:100%;padding:var(--s3) var(--s4);
  border:1px solid var(--sy-borde-fuerte);border-radius:var(--sy-r-sm);background:var(--sy-superficie);
  font-size:var(--fs-xs);text-align:left;cursor:pointer}
.mp-boton:focus-visible{outline:2px solid var(--sy-azul);outline-offset:1px}
.mp-res{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-cnt{background:var(--sy-azul);color:#fff;border-radius:9px;padding:0 6px;font-size:9px;
  font-weight:700}
.mp-flecha{color:var(--sy-texto-ter);font-size:10px}
.mp-panel{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:60;
  background:var(--sy-superficie);border:1px solid var(--sy-borde-fuerte);
  border-radius:var(--sy-r-sm);box-shadow:var(--sy-sombra-card);min-width:260px}
.mp-buscar{width:100%;border:none;border-bottom:1px solid var(--sy-borde);padding:var(--s4);
  font-size:var(--fs-xs);border-radius:var(--sy-r-sm) var(--sy-r-sm) 0 0}
.mp-buscar:focus{outline:none;border-bottom-color:var(--sy-azul)}
.mp-lista{max-height:230px;overflow-y:auto}
.mp-grupo{padding:var(--s2) var(--s4);font-size:9px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--br-700);background:var(--br-50);font-weight:700;position:sticky;top:0}
.mp-op{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);
  font-size:var(--fs-xs);cursor:pointer}
.mp-op:hover{background:var(--br-50)}
.mp-cod{font-weight:600;font-variant-numeric:tabular-nums;color:var(--br-800)}
.mp-nom{color:#5a6672;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-vacio{padding:var(--s4);font-size:var(--fs-xs);color:var(--sy-texto-ter)}
.mp-pie{display:flex;gap:var(--s3);padding:var(--s3) var(--s4);border-top:1px solid var(--sy-borde);
  justify-content:flex-end}
/* el chip del destino no permitido solo aparece bajo el cursor */
.sillon.dd-hint{opacity:.72}
.sillon.dd-hint::after{box-shadow:0 1px 3px rgba(16,24,32,.18)}

/* ============================================================
   v1.35 · VISTA HORARIA DE SILLONES · el eje es el tiempo
   Las columnas resuelven simultaneidad; NO representan un sillón.
   ============================================================ */
.tabs3{display:inline-flex;border:1px solid var(--sy-borde-fuerte);border-radius:var(--sy-r-sm);
  overflow:hidden}
.tab3{background:var(--sy-superficie);border:none;padding:var(--s3) var(--s5);
  font-size:var(--fs-xs);font-weight:600;color:var(--sy-texto-sec);cursor:pointer}
.tab3+.tab3{border-left:1px solid var(--sy-borde)}
.tab3.act{background:var(--sy-azul);color:#fff}
.tab3:focus-visible{outline:2px solid var(--sy-azul);outline-offset:-2px}
.vh-scroll{overflow:auto;padding:var(--s5) var(--s6) var(--s6)}
.vh{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--s4);
  min-width:520px}
.vh-eje{position:relative}
.vh-guia{position:absolute;left:0;right:-100vw;border-top:1px solid var(--n150);pointer-events:none}
.vh-guia.mayor{border-top-color:var(--sy-borde-fuerte)}
.vh-hora{position:absolute;left:0;top:-7px;font-size:var(--card-sec);color:var(--sy-texto-ter);
  background:var(--sy-fondo);padding-right:3px;font-variant-numeric:tabular-nums}
.vh-guia.mayor .vh-hora{font-size:var(--fs-2xs);font-weight:700;color:var(--sy-texto-sec)}
.vh-lanes{position:relative;min-width:calc(var(--vh-lanes) * 150px)}
.vh-card{position:absolute;overflow:hidden;border:1px solid var(--sy-borde-fuerte);
  border-left-width:3px;border-radius:var(--sy-r-sm);background:var(--sy-superficie);
  padding:3px 6px;box-shadow:0 1px 2px rgba(16,24,32,.08);min-height:18px}
.vh-nom{font-size:var(--fs-2xs);font-weight:700;color:var(--sy-texto);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vh-hor{font-size:var(--card-dato);color:var(--sy-azul-oscuro);
  font-variant-numeric:tabular-nums;font-weight:600}
.vh-sil{font-size:var(--card-dato);color:var(--sy-texto-sec);display:flex;gap:4px;
  align-items:baseline;
  flex-wrap:wrap}
.vh-est{font-size:var(--card-badge);font-weight:700;letter-spacing:.04em;color:var(--sy-texto)}
.vh-inv,.vh-inv2,.vh-t,.vh-real{font-size:var(--card-sec);color:var(--sy-texto-sec);
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vh-real{color:#8a3f1c;font-weight:600}
.vh-dists{display:flex;gap:3px;flex-wrap:wrap;margin-top:2px}
.vh-dist{font-size:var(--card-badge);font-weight:700;border:1px solid var(--sy-borde-fuerte);
  border-radius:2px;
  padding:0 3px;color:var(--sy-texto-sec)}
/* la convención de estados administrativos es la misma del resto del producto */
.vh-card.e-reservada{border-left-color:var(--n400)}
.vh-card.e-confirmada{border-left-color:var(--ok-600);background:#f6fbf8}
.vh-card.e-presentada{border-left-color:#a67c00;background:#fdfaf0}
.vh-card.e-asistida{border-left-color:var(--sy-azul);background:#f2f8fd}
.vh-card.e-finalizada{border-left-color:var(--n400);background:var(--n100);opacity:.85}
.vh-card.e-anulada{border-left-color:#a8443e;background:#f9efee}
.vh-card.e-reagendada{border-left-color:#7d6bbb;background:#f4f1fa}
.vh-ahora{position:absolute;left:0;right:0;border-top:2px dashed #b3572a;z-index:4;
  pointer-events:none}
.vh-ahora span{position:absolute;right:0;top:-8px;font-size:var(--card-sec);font-weight:700;
  color:#8a3f1c;
  background:var(--sy-fondo);padding:0 4px;border-radius:2px}

/* ============================================================
   v1.35 · TIPOGRAFÍA DE TARJETAS OPERACIONALES DE SILLONES
   Tokens ÚNICOS compartidos por Mapa actual, Timeline «Por sillón»,
   «Vista horaria» y las tarjetas de asistidos esperando: así ninguna
   vista queda más chica que otra. Solo legibilidad: no cambia layout,
   escala horaria, filtros, ancho del sidebar ni el tamaño de la app.
   ============================================================ */
:root{
  --card-nom:14px;      /* paciente · el texto más fácil de identificar */
  --card-dato:12.5px;   /* horario · sillón · estado */
  --card-sec:11.5px;    /* investigación · medicamentos · tiempos */
  --card-badge:10px;    /* distintivos y badges */
  --card-lh:1.35;
}
/* ---- jerarquía común ---- */
.sillon .pac,.vh-nom,.tarj-espera .nom{
  font-size:var(--card-nom);font-weight:600;line-height:var(--card-lh)}
.sillon .hrs,.sillon .est,.vh-hor,.vh-sil,.vh-est,
.tarj-espera .num,.te-asis{
  font-size:var(--card-dato);line-height:var(--card-lh)}
.sillon .alerta,.sillon .prox,.vh-inv,.vh-inv2,.vh-t,.vh-real,
.tarj-espera .tiempos,.tarj .tiempos{
  font-size:var(--card-sec);line-height:var(--card-lh)}
.badge-dist,.vh-dist,.te-esp,.vh-est{font-size:var(--card-badge)}
/* ---- Mapa actual · más letra sin subir la altura del sillón ---- */
.sillon .est{text-transform:uppercase;letter-spacing:.04em}
.sillon .pac{margin-top:var(--s3)}
.sillon .dist{margin-top:var(--s2)}
.badge-dist{padding:0 5px;line-height:1.5}
/* ---- Vista horaria · misma densidad que el Mapa ---- */
.vh-nom{font-size:var(--card-nom);font-weight:600;line-height:var(--card-lh);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vh-est{font-weight:700;letter-spacing:.04em}
.vh-card{padding:4px 7px}
.vh-hora{font-size:var(--card-sec)}
.vh-guia.mayor .vh-hora{font-size:var(--card-dato);font-weight:700}
.vh-ahora span{font-size:var(--card-sec)}
/* ---- Timeline «Por sillón» · la barra acompaña, sin crecer de alto ---- */
.barra{font-size:var(--card-sec)}
.tl-eje .tick span{font-size:var(--card-sec)}
.tl-eje .tick.mayor span{font-size:var(--card-dato)}
/* ---- jerarquía de investigación DENTRO de la tarjeta del sillón ----
   Protocolo/Site destacado · SCR/RAN/Visita normal · rama y medicamentos
   secundarios: ninguno por debajo de --card-sec, salvo los badges. */
.sillon .inv1{font-size:var(--card-nom);font-weight:600;line-height:var(--card-lh)}
.sillon .inv1 .site{font-size:var(--card-badge)}
.sillon .inv2{font-size:var(--card-dato);line-height:var(--card-lh)}
.sillon .inv3{font-size:var(--card-sec);line-height:var(--card-lh)}
.sillon .med,.sillon .rama{font-size:var(--card-sec)}
/* la misma jerarquía en la tarjeta de espera, que comparte el bloque */
.tarj-espera .inv1{font-size:var(--card-nom);font-weight:600}
.tarj-espera .inv2{font-size:var(--card-dato)}
.tarj-espera .inv3{font-size:var(--card-sec)}
/* ---- nada se corta ni se desborda ---- */
.vh-card,.sillon,.tarj-espera{overflow:hidden}
.vh-dist,.badge-dist{white-space:nowrap}

/* ---------- Requieren revisión · columna de alertas ---------- */
.col-alertas{max-width:230px}
.chips-rev{display:flex;flex-direction:column;gap:2px}
.chip-rev{font-size:var(--card-badge);font-weight:700;letter-spacing:.03em;
  border:1px solid;border-radius:var(--sy-r-sm);padding:1px 5px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.chip-rev.k-resultado{background:#fcf3dd;border-color:#a67c00;color:#8a6400}
.chip-rev.k-sobreextension{background:#fdeee9;border-color:#b3572a;color:#8a3f1c}
.chip-rev.k-poli-anulada{background:#f7e9e8;border-color:#a8443e;color:#7d1a15}
.chip-rev.k-poli-reagendada{background:#efeaf7;border-color:#7d6bbb;color:#3c2f70}

/* ---------- matriz de permisos del rol ---------- */
.pm-mod{border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);margin-bottom:var(--s4);
  overflow:hidden}
.pm-cab{display:flex;align-items:center;gap:var(--s4);width:100%;padding:var(--s4) var(--s5);
  background:var(--sy-fondo);border:none;cursor:pointer;text-align:left}
.pm-flecha{color:var(--sy-texto-ter);font-size:10px}
.pm-nom{flex:1;font-size:var(--fs-sm);font-weight:700;color:var(--sy-texto)}
.pm-cnt{font-size:var(--fs-2xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.pm-cuerpo{padding:var(--s4) var(--s5) var(--s5)}
.pm-grupo{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700;
  color:var(--br-700);margin:var(--s4) 0 var(--s2)}
.pm-tabla th{font-size:var(--fs-2xs)}
.pm-tabla td{vertical-align:top;padding:var(--s2) var(--s3)}
.pm-chk{width:70px;text-align:center}
.pm-cod{font-size:var(--fs-2xs);font-weight:700;color:var(--sy-azul-oscuro)}
.pm-desc{font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.pm-hija .pm-cod{padding-left:var(--s5)}
.pm-hija td:first-child{padding-left:var(--s5)}
.pm-dep{opacity:.55}
.pm-aviso{font-size:9px;color:#8a6400;padding-left:var(--s5)}

/* ============================================================
   v1.37 · TIPOS DE CONSULTA · editor y columna «Resultados permitidos»
   Todo está ACOTADO a .tc-ed (editor) y .mtr-t-tipos (grilla): no toca
   otros formularios ni otros mantenedores.
   ============================================================ */
.modal.md{width:min(720px,94vw)}
.tc-ed{display:grid;gap:var(--s6)}
.tc-ed .tc-fila{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s5);align-items:start}
@media (max-width:640px){.tc-ed .tc-fila{grid-template-columns:1fr}}
.tc-ed .tc-fila input[type=text],.tc-ed .tc-fila select{width:100%}
.tc-ed .tc-fila .hint{margin-top:var(--s2)}
/* el checkbox conserva su tamaño natural y queda pegado a su texto */
.tc-ed input[type=checkbox]{width:auto;height:auto;margin:0;flex:none;cursor:pointer}
.tc-ed .fieldset{display:grid;gap:var(--s4);margin:0}
.tc-ed .fieldset > .lg{margin:0;display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4)}
.tc-ed .tc-cnt{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.02em;text-transform:none;
  color:var(--sy-texto-sec);font-variant-numeric:tabular-nums}
.tc-ed .tc-req{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s7)}
.tc-ed .tc-op{display:inline-flex;align-items:center;gap:var(--s3);font-size:var(--fs-sm);
  color:var(--sy-texto);cursor:pointer;line-height:1.3}
.tc-ed .tc-res{list-style:none;margin:0;padding:0;border:1px solid var(--sy-borde);
  border-radius:var(--sy-r-sm);overflow:hidden}
.tc-ed .tc-res li+li{border-top:1px solid var(--sy-borde)}
.tc-ed .tc-res label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:var(--s4);padding:var(--s4) var(--s5);font-size:var(--fs-sm);color:var(--sy-texto);cursor:pointer}
.tc-ed .tc-res label:hover{background:var(--br-50)}
.tc-ed .tc-res li.on label{background:var(--br-50)}
.tc-ed .tc-res .tc-n{min-width:0;overflow-wrap:anywhere;line-height:1.35}
.tc-ed .tc-res li.inactivo .tc-n{color:var(--sy-texto-ter);text-decoration:line-through}
.tc-ed .tc-tag{font-size:var(--fs-2xs);color:var(--sy-texto-sec);white-space:nowrap;
  display:inline-flex;align-items:center;gap:var(--s2)}
.tc-ed .tc-tag .ico-nav{width:12px;height:12px;color:var(--wa-600)}
.tc-ed .tc-vacio{padding:var(--s5);font-size:var(--fs-sm);color:var(--sy-texto-sec)}
.tc-ed .tc-aud{font-size:var(--fs-xs);color:var(--sy-texto-ter);border-top:1px solid var(--sy-borde);
  padding-top:var(--s4)}
/* grilla · la celda de acciones vuelve a ser celda de tabla y la columna nueva no se ensancha */
.mtr-t-tipos td.mtr-acc{display:table-cell;white-space:nowrap;text-align:right}
.mtr-t-tipos td.mtr-acc .btn+.btn{margin-left:var(--s2)}
.mtr-t-tipos .tc-col{display:flex;align-items:center;gap:var(--s3);max-width:140px}
@media (min-width:1600px){.mtr-t-tipos .tc-col{max-width:300px}}
.mtr-t-tipos .tc-num{flex:none;min-width:22px;height:20px;padding:0 6px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:700;
  font-variant-numeric:tabular-nums;background:var(--br-100);color:var(--br-800);border:1px solid var(--br-200)}
.mtr-t-tipos .tc-lista{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.mtr-t-tipos .tc-sin{font-size:var(--fs-xs);color:var(--sy-texto-ter);font-style:italic}


/* ============================================================
   v1.38 · GESTIÓN DE PROTOCOLOS (Funcional 08)
   Todo está ACOTADO a .pw (espacio de trabajo), .pw-m (sus diálogos),
   .chip.sim y .hip: no altera otros formularios ni otros mantenedores.
   ============================================================ */
.chip.sim{border-style:dashed;border-color:var(--wa-600);color:var(--wa-700);background:var(--wa-100);
  text-transform:lowercase;letter-spacing:.02em}
.hip{display:inline-flex;align-items:center;font-size:10px;font-weight:600;letter-spacing:.02em;
  color:var(--br-700);border:1px dashed var(--br-500);border-radius:var(--sy-r-sm);padding:0 5px;
  line-height:16px;white-space:nowrap;cursor:help;vertical-align:middle;text-transform:none;background:#fff}
label.f .hip{margin-left:var(--s2);vertical-align:baseline}
.mtr-panel.pw{display:flex;flex-direction:column;min-width:0}
.pw-head{padding:var(--s5) var(--s6) var(--s5);display:grid;gap:var(--s3)}
.pw-migas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);font-size:var(--fs-xs);color:var(--sy-texto-ter)}
.pw-migas button{background:none;border:0;padding:0;color:var(--br-700);font-size:var(--fs-xs);cursor:pointer}
.pw-migas button:hover{text-decoration:underline}
.pw-migas .act{color:var(--sy-texto-sec);font-weight:600}
.pw-migas .sep{color:var(--sy-texto-ter);font-size:var(--fs-sm);line-height:1}
.pw-titulo{display:flex;align-items:center;gap:var(--s5);min-width:0}
.pw-tt{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;min-width:0;flex:1}
.pw-tt h3{font-size:var(--fs-lg);color:var(--br-900);font-weight:600;letter-spacing:-.01em}
.pw-der{display:flex;gap:var(--s3);flex:none;flex-wrap:wrap;justify-content:flex-end}
.pw-code{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--br-700);background:var(--br-100);
  border-radius:var(--sy-r-sm);padding:1px var(--s3);white-space:nowrap}
.pw-sub{font-size:var(--fs-sm);color:var(--sy-texto-sec)}
.pw-meta{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s7);font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.pw-meta b{color:var(--sy-texto);font-weight:600}
.pw .tabs.pw-tabs{padding:0 var(--s6);border-top:1px solid var(--sy-borde)}
.pw-cnt{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;
  border-radius:9px;font-size:var(--fs-2xs);font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--br-100);color:var(--br-800);border:1px solid var(--br-200)}
.pw-body{padding:var(--s6);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s6);align-content:start;background:var(--sy-fondo);
  border-top:1px solid var(--sy-borde);border-radius:0 0 var(--sy-r-md) var(--sy-r-md);flex:1}
.pw-body>*,.pw-grid2>*,.pw .fieldset{min-width:0}
.pw-bar{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;min-height:30px}
.pw-bar h4{margin:0;font-size:var(--fs-md);font-weight:600;color:var(--sy-texto)}
.pw-pie{border-top:1px solid var(--sy-borde);padding-top:var(--s5)}
.pw-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6);align-items:start}
@media (max-width:1180px){.pw-grid2{grid-template-columns:1fr}}
.pw .fieldset{background:#fff;margin:0;padding:var(--s5) var(--s6) var(--s6)}
.pw .fieldset>.lg{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  margin:0 0 var(--s5);min-height:22px}
.pw-lg-acc{display:flex;gap:var(--s2);text-transform:none;letter-spacing:0}
.pw .fieldset>.lg .btn{text-transform:none;letter-spacing:0}
.pw dl{grid-template-columns:minmax(150px,max-content) minmax(0,1fr);gap:var(--s4) var(--s6);align-items:baseline}
.pw dd{min-width:0;overflow-wrap:anywhere}
.pw dd .hint{margin-top:1px}
.pw-dl4{grid-template-columns:repeat(4,max-content minmax(0,1fr))!important}
@media (max-width:1180px){.pw-dl4{grid-template-columns:max-content minmax(0,1fr)!important}}
.pw-nd{color:var(--sy-texto-ter);font-style:italic}
.pw-sublg{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);
  margin:var(--s6) 0 var(--s3);padding-top:var(--s5);border-top:1px solid var(--sy-borde)}
.pw-hist{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3)}
.pw-hist li{display:flex;justify-content:space-between;gap:var(--s5);font-size:var(--fs-sm);
  padding-left:var(--s4);border-left:2px solid var(--br-200)}
.pw-hist li:first-child{border-left-color:var(--br-600);font-weight:600}
.pw-hist li .hint{font-weight:400;white-space:nowrap}
.pw-esquema{white-space:pre-wrap;font-size:var(--fs-sm);line-height:1.5;background:var(--sy-fondo);
  border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);padding:var(--s4) var(--s5)}
.pw-valor{font-size:22px;font-weight:600;color:var(--br-900);font-variant-numeric:tabular-nums;line-height:1.25}
.pw-suma{font-size:var(--fs-md);font-weight:600;color:var(--sy-texto);font-variant-numeric:tabular-nums}
.pw-kl{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);margin-bottom:var(--s2)}
.pw-sep{height:1px;background:var(--sy-borde);margin:var(--s5) 0}
.pw-val-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--s6);align-items:start;
  padding-bottom:var(--s5);margin-bottom:var(--s4);border-bottom:1px solid var(--sy-borde)}
@media (max-width:1180px){.pw-val-top{grid-template-columns:1fr 1fr}.pw-val-acc{grid-column:1/-1}}
.pw-vacio{padding:var(--s7);text-align:center;color:var(--sy-texto-sec);font-size:var(--fs-sm);
  background:#fff;border:1px dashed var(--sy-borde-fuerte);border-radius:var(--sy-r-sm)}
.pw-nota{margin:0}
.pw-flash{margin:0}
.pw-p{margin:0 0 var(--s4);font-size:var(--fs-sm);line-height:1.55}
/* tablas del espacio de trabajo */
.pw-tbl{background:#fff;border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);border-collapse:separate;border-spacing:0}
.pw .fieldset .pw-tbl{border:0}
.pw-tbl th,.pw-tbl td{padding:var(--s4) var(--s5)}
.pw-tbl td{vertical-align:middle}
.pw-tbl th.num,.pw-tbl td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pw-tbl .nw{white-space:nowrap}
.pw-tbl th.acc,.pw-tbl td.acc{text-align:right;white-space:nowrap;width:1%}
.pw-tbl td.acc .btn+.btn{margin-left:var(--s2)}
.pw-tbl.compacta td,.pw-tbl.compacta th{padding:var(--s3) var(--s5)}
.pw-tbl tfoot td{font-weight:600;border-top:2px solid var(--br-200);border-bottom:0;background:var(--br-50);
  font-variant-numeric:tabular-nums}
.pw-tbl tr.pw-fila{cursor:pointer}
.pw-tbl .pw-nom{font-weight:600}
.pw-tbl .chip.sim{margin-top:2px}
.pw-aud td{font-size:var(--fs-xs)}
.pw-aud td:nth-child(4){min-width:240px}
.pw-trunc{display:flex;align-items:center;gap:var(--s3);min-width:0;max-width:180px}
.pw-trunc .pw-n{flex:none;min-width:20px;height:18px;padding:0 6px;border-radius:9px;display:inline-flex;
  align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--br-100);color:var(--br-800);border:1px solid var(--br-200)}
.pw-trunc .pw-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);
  color:var(--sy-texto-sec)}
@media (min-width:1600px){.pw-trunc{max-width:360px}}
/* formularios en el panel */
.pw-ficha{display:grid;gap:var(--s6)}
.pw-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5) var(--s6)}
@media (max-width:1180px){.pw-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pw-form .full,.pw-mform .full{grid-column:1/-1}
.pw-form input:not([type=checkbox]),.pw-form select,.pw-mform input:not([type=checkbox]),.pw-mform select,
.pw-mform textarea,.pw-cal-ctl input,.pw-cal-ctl select{width:100%}
.pw-form label.f,.pw-mform label.f{display:block;line-height:16px;min-height:16px}
.pw-form label.f .hip,.pw-mform label.f .hip{line-height:12px;vertical-align:0}
.pw-form .hint,.pw-mform .hint{margin-top:var(--s2)}
.pw-m{display:grid;gap:var(--s5)}
.pw-mform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s6)}
.pw-mform.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pw-mform .span2{grid-column:span 2}
.pw-mform .span3{grid-column:span 3}
.pw-mform textarea{font-size:var(--fs-sm);padding:var(--s3) var(--s4);border:var(--bd-strong);resize:vertical;
  line-height:1.5;min-height:84px}
.pw-check{display:inline-flex;align-items:center;gap:var(--s3);font-size:var(--fs-sm);cursor:pointer;color:var(--sy-texto)}
.pw-check input{width:auto;margin:0;flex:none}
/* simulación de calendario */
.pw-cal-ctl{display:grid;grid-template-columns:170px auto minmax(220px,260px) 1fr;gap:var(--s5) var(--s6);align-items:end;
  background:#fff;border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);padding:var(--s5) var(--s6)}
.pw-cal-acc{display:flex;gap:var(--s3);justify-content:flex-end;flex-wrap:wrap}
.pw .btn{white-space:nowrap}
.pw-cal th,.pw-cal td{padding:var(--s4) var(--s4)}
.pw-cal td:first-child,.pw-cal th:first-child{padding-left:var(--s5)}
.pw-esq-full{margin-top:var(--s5)}
.pw-nota-pie{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--sy-borde)}
@media (max-width:1180px){.pw-cal-ctl{grid-template-columns:1fr 1fr}.pw-cal-acc{justify-content:flex-start}}
.pw-seg{display:inline-flex;border:1px solid var(--sy-borde-fuerte);border-radius:var(--sy-r-sm);overflow:hidden;height:31px}
.pw-seg button{background:#fff;border:0;padding:0 var(--s6);font-size:var(--fs-sm);color:var(--sy-texto-sec)}
.pw-seg button+button{border-left:1px solid var(--sy-borde-fuerte)}
.pw-seg button[aria-pressed=true]{background:var(--br-600);color:#fff;font-weight:600}
.pw-cal input.pw-real{width:140px;padding:var(--s2) var(--s3)}
.pw-rango{font-size:var(--fs-2xs);margin-top:2px;font-weight:600}
.pw-rango.pw-r-ok{color:var(--ok-700)}
.pw-rango.pw-r-fuera{color:var(--er-700)}
.pw-mov{color:var(--wa-700);font-weight:600}
.pw-tbl tr.pw-movida td{background:var(--wa-100)}
/* listado de Protocolos · celdas de dos líneas y acciones alineadas */
.mtr-t-protocolos .pl-cod{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.mtr-t-protocolos .pl-acr{font-weight:600;margin-top:2px}
.mtr-t-protocolos .sub2{font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.mtr-t-protocolos .nw{white-space:nowrap}
.mtr-t-protocolos th,.mtr-t-protocolos td{padding-left:var(--s4);padding-right:var(--s4)}
.mtr-t-protocolos th:first-child,.mtr-t-protocolos td:first-child{padding-left:var(--s6)}
.mtr-t-protocolos th:last-child,.mtr-t-protocolos td:last-child{padding-right:var(--s6)}
.mtr-t-protocolos .chip{white-space:nowrap}
.mtr-t-protocolos .pl-acr .chip.sim{margin-left:var(--s2)}
.mtr-t-protocolos td.mtr-acc{display:table-cell;white-space:nowrap;text-align:right}
.mtr-t-protocolos td.mtr-acc .btn+.btn{margin-left:var(--s2)}

/* ============================================================
   v1.39 · MÓDULO PROTOCOLOS · ocupa el ancho completo del área de trabajo
   (sin el riel de Maestros). Acotado a .pm-*.
   ============================================================ */
/* el panel ya es la tarjeta del módulo (como en Maestros): sin un segundo marco */
.pm-wrap{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}
.pm-lista,.pm-ws{background:var(--sy-superficie);border:0;border-radius:0;box-shadow:none;min-width:0}
.pm-ws .pw-body{border-radius:0}
.pm-head{display:flex;align-items:flex-start;gap:var(--s5);padding:var(--s6) var(--s6) var(--s5)}
.pm-head h3{font-size:var(--fs-lg);color:var(--br-900);font-weight:600;letter-spacing:-.01em;margin-bottom:2px}
.pm-filtros{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s5);align-items:center;padding:var(--s5) var(--s6);
  border-top:1px solid var(--sy-borde);border-bottom:1px solid var(--sy-borde);background:var(--sy-fondo)}
.pm-buscar{position:relative;flex:1 1 300px;min-width:240px;max-width:440px}
.pm-buscar .ico-nav{position:absolute;left:9px;top:50%;transform:translateY(-50%);width:15px;height:15px;
  color:var(--sy-texto-ter);pointer-events:none}
.pm-buscar input{width:100%;font-size:var(--fs-sm);padding:var(--s3) var(--s4) var(--s3) 30px;
  border:var(--bd-strong);border-radius:var(--sy-r-sm);background:#fff;color:var(--sy-texto)}
.pm-buscar input:focus{border-color:var(--sy-azul);outline:2px solid var(--sy-azul-claro)}
.pm-filtros select{max-width:230px}
.pm-cuenta{margin-left:auto;font-size:var(--fs-xs);color:var(--sy-texto-sec);white-space:nowrap}
.pm-tbl{border:0;border-radius:0}
.pm-tbl th,.pm-tbl td{padding-left:var(--s4);padding-right:var(--s4)}
.pm-tbl th:first-child,.pm-tbl td:first-child{padding-left:var(--s6)}
.pm-tbl th:last-child,.pm-tbl td:last-child{padding-right:var(--s6)}
.pm-tbl td{vertical-align:top}
.pm-tbl td.acc,.pm-tbl td.num{vertical-align:top}
.pm-tbl tr.pm-fila{cursor:pointer}
.pm-tbl .pm-acr{font-weight:600;margin-top:2px;white-space:nowrap}
.pm-tbl .pm-acr+.chip.sim{margin-top:var(--s2)}
.pm-tbl .sub2{font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.pm-tbl .chip{white-space:nowrap}
.pm-tit{max-width:220px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:var(--fs-sm);color:var(--sy-texto-sec);line-height:1.45}
@media (min-width:1600px){.pm-tit{max-width:460px}}
.pm-aud{min-width:120px}
.pm-tbl tr.inactivo td{color:var(--sy-texto-ter)}
.pm-pie{padding:var(--s5) var(--s6);border-top:1px solid var(--sy-borde)}
.pm-vacio{padding:var(--s8);text-align:center;color:var(--sy-texto-sec);font-size:var(--fs-sm)}

/* ============================================================
   v1.40 · EQUIPO RESPONSABLE Y LABORATORIO · acotado a .eq-*, .lb-*, .exl-*
   ============================================================ */
.eq-card .lg .eq-nota,.pw .fieldset>.lg .eq-nota{text-transform:none;letter-spacing:0;font-weight:400}
.eq-tbl td{vertical-align:top}
.eq-form{display:grid;gap:var(--s4)}
.eq-fila{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr) 210px;gap:var(--s2) var(--s5);align-items:center}
.eq-fila label.f{margin:0}
.eq-fila select{width:100%}
.eq-fila .eq-h{grid-column:2/4;margin-top:-2px}
.eq-fecha{display:flex;align-items:center;gap:var(--s3)}
.eq-fecha input{width:150px}
@media (max-width:1180px){.eq-fila{grid-template-columns:1fr 200px}.eq-fila label.f{grid-column:1/-1}.eq-fila .eq-h{grid-column:1/-1}}
.eq-etq .pw-check{margin-top:2px}
.lb-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--s6);align-items:start}
@media (max-width:1180px){.lb-grid{grid-template-columns:1fr}}
.lb-lista{display:grid;gap:var(--s4);min-width:0}
.lb-items{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);overflow:hidden}
.lb-items li{padding:var(--s4) var(--s5);cursor:pointer;border-left:3px solid transparent}
.lb-items li+li{border-top:1px solid var(--sy-borde)}
.lb-items li:hover{background:var(--br-50)}
.lb-items li.on{background:var(--br-50);border-left-color:var(--br-600)}
.lb-items li.inactivo .lb-in{color:var(--sy-texto-ter)}
.lb-in{font-weight:600;font-size:var(--fs-sm);color:var(--sy-texto)}
.lb-items .sub2,.lb-orden .sub2,.lb-ref .sub2,.eq-tbl .sub2{font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.lb-editor{display:grid;gap:var(--s4);min-width:0}
.lb-editor>.lg{margin-bottom:0}
.lb-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:end}
.lb-top input{width:100%}
.lb-pi{padding:var(--s4) var(--s5);background:var(--sy-fondo);border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);
  font-size:var(--fs-sm)}
.lb-sublg{display:flex;align-items:center;gap:var(--s3);margin:var(--s3) 0 0}
.lb-chips{display:flex;flex-wrap:wrap;gap:var(--s3);min-height:26px;align-items:center}
.lb-chip{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-xs);background:var(--br-50);
  border:1px solid var(--br-200);color:var(--br-900);border-radius:12px;padding:2px 4px 2px 10px;line-height:18px}
.lb-chip button{border:0;background:none;color:var(--br-700);font-size:14px;line-height:1;padding:0 4px;border-radius:50%}
.lb-chip button:hover{background:var(--br-100)}
.lb-pbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4)}
.lb-pbar select{max-width:220px}
.lb-scroll,.exl-scroll{max-height:340px;overflow:auto;border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);background:#fff}
.exl-scroll{max-height:560px}
.lb-scroll table,.exl-scroll table{border:0}
.lb-scroll thead th,.exl-scroll thead th{position:sticky;top:0;z-index:1}
.lb-ck{width:34px;text-align:center}
.lb-ck input,.exl-ck,#exl-all{width:auto;margin:0;vertical-align:middle;cursor:pointer}
.pw-tbl td.lb-ck,.pw-tbl th.lb-ck{padding-left:var(--s4);padding-right:0}
.lb-cod{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--sy-texto-sec);white-space:nowrap}
.lb-ptbl tr.on td,.exl-tbl tr.on td,.pw-tbl tr.pw-fila.on td{background:var(--br-50)}
.lb-matriz{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s4)}
.lb-mrama{border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);padding:var(--s4) var(--s5);background:#fff}
.lb-mcab{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3);font-size:var(--fs-sm)}
.lb-mvis{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s6)}
.lb-vck span{font-weight:600}
.lb-barra{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s4);padding:var(--s4) var(--s5);background:#fff;
  border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm)}
.lb-barra .pw-kl{margin:0}
.lb-opts{list-style:none;margin:var(--s2) 0 0;padding:0;display:grid;gap:var(--s3)}
.lb-ref{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3) var(--s5);margin-bottom:var(--s4)}
.lb-ref .pw-kl{margin:0}
.lb-warn{margin:0;padding:var(--s3) var(--s5)}
.lb-orden{border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);margin-bottom:var(--s4);overflow:hidden}
.lb-ocab{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);padding:var(--s4) var(--s5);background:var(--sy-fondo);
  border-bottom:1px solid var(--sy-borde);font-size:var(--fs-sm)}
.lb-orden table{border:0;border-radius:0}
.exl{display:grid;gap:0}
.exl-filtros,.exl-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s5);padding:var(--s4) var(--s6)}
.exl-filtros{background:var(--sy-fondo);border-top:1px solid var(--sy-borde);border-bottom:1px solid var(--sy-borde)}
.exl-bulk{border-bottom:1px solid var(--sy-borde)}
.exl-bulk select{max-width:200px}
.exl-scroll{margin:var(--s4) var(--s6) 0}
.exl-tbl tr.inactivo td{color:var(--sy-texto-ter)}
.exl-tbl th,.exl-tbl td{padding-left:var(--s4);padding-right:var(--s4)}
.exl-tbl th{white-space:normal}
.exl-tbl td:nth-child(6),.lb-ptbl td:nth-child(6){white-space:nowrap}
.exl-pie{padding:var(--s4) var(--s6) var(--s5)}
.exl-lit{font-family:var(--ff-mono);font-size:var(--fs-sm);padding:var(--s3) var(--s4);background:var(--sy-fondo);
  border:1px solid var(--sy-borde);border-radius:var(--sy-r-sm);white-space:pre-wrap;overflow-wrap:anywhere}

/* ============================================================
   v1.41 · RAMAS Y VISITAS · espacio integrado · acotado a .vx-*
   ============================================================ */
.vx-tira{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap}
.vx-ramas{display:flex;flex-wrap:wrap;gap:var(--s3);flex:1;min-width:0}
.vx-rama{display:inline-flex;align-items:center;gap:var(--s3);background:#fff;border:1px solid var(--sy-borde-fuerte);
  border-radius:16px;padding:var(--s3) var(--s3) var(--s3) var(--s5);font-size:var(--fs-sm);color:var(--sy-texto);cursor:pointer;
  line-height:18px;max-width:320px}
.vx-rama:hover{border-color:var(--br-500);background:var(--br-50)}
.vx-rama[aria-selected=true]{background:var(--br-600);border-color:var(--br-600);color:#fff;font-weight:600}
.vx-rama.inactiva{border-style:dashed;color:var(--sy-texto-ter)}
.vx-rama.vx-todas{padding-right:var(--s5);color:var(--sy-texto-sec)}
.vx-rama.vx-todas[aria-selected=true]{color:#fff}
.vx-rn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vx-rc{flex:none;min-width:20px;height:18px;padding:0 6px;border-radius:9px;font-size:var(--fs-2xs);font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;background:var(--br-100);color:var(--br-800)}
.vx-rama[aria-selected=true] .vx-rc{background:rgba(255,255,255,.22);color:#fff}
.vx-rec{margin-top:calc(-1 * var(--s3))}
.vx-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--s6);align-items:start}
@media (min-width:1600px){.vx-grid{grid-template-columns:340px minmax(0,1fr)}}
.vx-lista{background:#fff;border:1px solid var(--sy-borde);border-radius:var(--sy-r-md);position:sticky;top:var(--s5);
  max-height:calc(100vh - 2 * var(--s5));overflow:auto;display:flex;flex-direction:column}
.vx-rcab{padding:var(--s5) var(--s5) var(--s4);border-bottom:1px solid var(--sy-borde)}
.vx-rtit{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;font-size:var(--fs-md);color:var(--br-900)}
.vx-rcab .sub2,.vx-def .sub2{font-size:var(--fs-xs);color:var(--sy-texto-sec)}
.vx-fijos{list-style:none;margin:0;padding:var(--s3) var(--s3);border-bottom:1px solid var(--sy-borde);display:grid;gap:1px}
.vx-fijo{width:100%;text-align:left;background:none;border:0;border-radius:var(--sy-r-sm);padding:var(--s3) var(--s4);
  font-size:var(--fs-sm);color:var(--sy-texto-sec);cursor:pointer}
.vx-fijo:hover{background:var(--br-50);color:var(--br-700)}
.vx-fijo.on{background:var(--br-100);color:var(--br-800);font-weight:600}
.vx-lcab{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5) var(--s3)}
.vx-lcab .pw-kl{margin:0}
.vx-selbar{display:flex;align-items:center;gap:var(--s3);margin:0 var(--s4) var(--s3);padding:var(--s3) var(--s4);
  background:var(--br-50);border:1px solid var(--br-200);border-radius:var(--sy-r-sm);font-size:var(--fs-xs)}
.vx-items{list-style:none;margin:0;padding:0 var(--s3) var(--s3);display:grid;gap:2px}
.vx-it{display:flex;align-items:stretch;border-radius:var(--sy-r-sm);border:1px solid transparent}
.vx-it:hover{background:var(--br-50)}
.vx-it.on{background:var(--br-50);border-color:var(--br-200);box-shadow:inset 3px 0 0 var(--br-600)}
.vx-it.sel .vx-cod{color:var(--br-800)}
.vx-it input.pw-selvis{width:auto;margin:0 var(--s2) 0 var(--s4);align-self:center;flex:none;cursor:pointer}
.vx-btn{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'cod bdg' 'meta bdg';
  column-gap:var(--s3);text-align:left;background:none;border:0;padding:var(--s3) var(--s4) var(--s3) var(--s3);cursor:pointer;color:var(--sy-texto)}
.vx-btn:focus-visible{outline:2px solid var(--br-500);outline-offset:-2px;border-radius:var(--sy-r-sm)}
.vx-cod{grid-area:cod;font-weight:600;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vx-meta{grid-area:meta;font-size:var(--fs-xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums;white-space:nowrap}
.vx-bdg{grid-area:bdg;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px}
.vx-b{font-size:10px;line-height:14px;padding:0 5px;border-radius:7px;background:var(--br-100);color:var(--br-800);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.vx-b.lab{background:var(--ok-100);color:var(--ok-700)}
.vx-b.cero{background:none;color:var(--sy-texto-ter)}
.vx-lhint{padding:var(--s3) var(--s5) var(--s5);margin-top:auto}
.vx-det{display:grid;gap:var(--s5);min-width:0;align-content:start}
.vx-dcab{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
.vx-dcab h4{margin:0;font-size:var(--fs-lg);color:var(--br-900);font-weight:600;display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.vx-dcab .pw-kl{margin-bottom:0}
.vx-nav{display:flex;align-items:center;gap:var(--s3)}
.vx-nav .btn{min-width:72px}
.vx-pos{font-size:var(--fs-xs);color:var(--sy-texto-sec);font-variant-numeric:tabular-nums;white-space:nowrap}
.vx-def{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s8);background:#fff;border:1px solid var(--sy-borde);
  border-radius:var(--sy-r-sm);padding:var(--s4) var(--s5)}
.vx-def>div{display:flex;align-items:baseline;gap:var(--s3)}
.vx-def .pw-kl{margin:0}
.vx-def .vx-dacc{margin-left:auto;gap:var(--s2)}
.vx-vtabs{border:1px solid var(--sy-borde);border-bottom:0;border-radius:var(--sy-r-sm) var(--sy-r-sm) 0 0;padding:0 var(--s4)}
.vx-vbody{background:#fff;border:1px solid var(--sy-borde);border-radius:0 0 var(--sy-r-sm) var(--sy-r-sm);
  padding:var(--s5);margin-top:calc(-1 * var(--s5));display:grid;gap:var(--s4)}
.vx-vbody>.fieldset{border:0;padding:0}
.vx-vbody>.fieldset>.lg{justify-content:flex-end;margin-bottom:var(--s3)}
.vx-vbody>.fieldset>.lg>span:first-child{display:none}
.vx-vbody .pw-tbl{border:1px solid var(--sy-borde)}
.vx-tabla{display:grid;gap:var(--s4);min-width:0}
.vx-tabla .sub2{font-size:var(--fs-2xs);color:var(--sy-texto-sec)}
.vx-tabla .pw-tbl th,.vx-tabla .pw-tbl td{padding-left:var(--s3);padding-right:var(--s3)}
.vx-tabla .pw-trunc{max-width:150px}
.vx-tabla .pw-tbl th{white-space:nowrap}
.vx-det .pw-cal th,.vx-det .pw-cal td{padding-left:var(--s3);padding-right:var(--s3)}

/* =====================================================================
   v1.43 · REFINAMIENTO VISUAL «TINTA CLÍNICA»
   Capa exclusivamente de presentación. No cambia JavaScript, marcado,
   campos, datos, estados ni flujos: solo color, tipografía de rótulos,
   superficies, controles y transiciones.
   ZONAS PROTEGIDAS (se ven igual que en v1.42): calendario mensual de
   Agendamiento (.cal), panel de bloques y sobrecupos (.disp), sus
   leyendas (.cal-leyenda, .leyenda) y las visualizaciones temporales de
   Sillones (.tl-scroll, .vh-scroll). Ver bloque «PIN» más abajo.
   ===================================================================== */
:root{
  /* tinta institucional · azul Prusia sobrio */
  --br-900:#0f2236; --br-800:#163a5f; --br-700:#1b4d80; --br-600:#1f5f9e;
  --br-500:#3c7cbf; --br-200:#c6d7ea; --br-100:#e7eef7; --br-50:#f3f7fb;
  --poli-600:#1f5f9e; --poli-100:#e7eef7;
  --bd:1px solid #e0e5eb; --bd-strong:1px solid #c8d1db;
  --focus:2px solid #1f5f9e;
  --sy-fondo:#f1f3f6; --sy-borde:#e0e5eb; --sy-borde-fuerte:#c8d1db;
  --sy-azul:#1f5f9e; --sy-azul-oscuro:#1b4d80; --sy-azul-profundo:#0f2236; --sy-azul-claro:#e7eef7;
  --sy-texto:#142233; --sy-texto-sec:#536273; --sy-texto-ter:#8592a2;
  --sy-r-sm:6px; --sy-r-md:10px;
  --sy-sombra:0 1px 2px rgba(15,34,54,.05),0 1px 3px rgba(15,34,54,.04);
  --sy-sombra-card:0 24px 48px -16px rgba(12,24,38,.28),0 2px 8px rgba(12,24,38,.07);
  /* propios de la capa */
  --v-lienzo:#f1f3f6;
  --v-tinta:#0f2236;
  --v-linea:#e0e5eb;
  --v-linea-suave:#edf0f4;
  --v-ease:cubic-bezier(.2,.7,.2,1);
  --v-t:150ms;
  --v-anillo:0 0 0 3px rgba(31,95,158,.20);
}

/* ---------- PIN · las zonas protegidas conservan los valores de v1.42 ---------- */
.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll{
  --br-900:#0d2a44; --br-800:#103c60; --br-700:#14507d; --br-600:#1a6aa8;
  --br-500:#2f83c4; --br-200:#bcd8ee; --br-100:#e4eff8; --br-50:#f2f8fc;
  --poli-600:#1a6aa8; --poli-100:#e4eff8;
  --bd:1px solid #dbe2e8; --bd-strong:1px solid #c3ced8; --focus:2px solid #1a6aa8;
  --sy-fondo:#f4f6f8; --sy-borde:#dde3e9; --sy-borde-fuerte:#c7d0d9;
  --sy-azul:#1a6aa8; --sy-azul-oscuro:#14507d; --sy-azul-profundo:#0d2a44; --sy-azul-claro:#e4eff8;
  --sy-texto:#1e2a35; --sy-texto-sec:#5a6672; --sy-texto-ter:#8b98a5;
  --sy-r-sm:3px; --sy-r-md:6px;
  --sy-sombra:0 1px 2px rgba(13,42,68,.06); --sy-sombra-card:0 2px 10px rgba(13,42,68,.07);
}
/* color de texto heredado de v1.42 (solo contenedores que lo heredaban) */
.cal,.disp,.tl-scroll,.vh-scroll{color:#1e2a35}

/* ---------- lienzo ---------- */
body,.main{background:var(--v-lienzo)}
::selection{background:rgba(31,95,158,.18)}

/* ---------- menú lateral · pestaña de expediente ---------- */
.sidebar{background:var(--v-tinta);color:#b4c2d3}
.sede-head{border-bottom-color:rgba(255,255,255,.08);padding-bottom:14px}
.sede-head .lbl{color:#7e92a9;text-transform:none;letter-spacing:.01em;font-weight:500}
.sede-head .nm{font-size:17px;letter-spacing:-.01em}
.btn-menu{width:24px;height:24px;border-radius:6px;border-color:rgba(255,255,255,.16);color:#b4c2d3;
  transition:background-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease)}
.btn-menu:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff}
.btn-menu:focus-visible{outline:2px solid #8fb3da;outline-offset:2px}
.sidebar .nav{margin-top:12px;padding-left:10px}
.sidebar .nav li{position:relative;margin:2px 0;padding:7px 12px 7px 11px;border-left:0;border-radius:8px 0 0 8px;
  color:#b4c2d3;font-weight:500;letter-spacing:.005em;
  transition:background-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease)}
.sidebar .nav li .mi{opacity:.78;transition:opacity var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease)}
.sidebar .nav li:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar .nav li:hover .mi{opacity:1}
.sidebar .nav li.on{background:var(--v-lienzo);color:var(--v-tinta);font-weight:600;box-shadow:none;border-left:0}
.sidebar .nav li.on .mi{opacity:1;color:var(--br-600)}
.sidebar .nav li.on::before,.sidebar .nav li.on::after{content:'';position:absolute;right:0;width:10px;height:10px;pointer-events:none}
.sidebar .nav li.on::before{top:-10px;background:radial-gradient(circle at 0 0,transparent 9.5px,var(--v-lienzo) 10px)}
.sidebar .nav li.on::after{bottom:-10px;background:radial-gradient(circle at 0 100%,transparent 9.5px,var(--v-lienzo) 10px)}
.sidebar .nav li.off,.sidebar .nav li.off:hover{background:transparent;color:#b4c2d3}
.sidebar .tag-off{color:#7e92a9;border-color:rgba(126,146,169,.6)}
/* contraído · píldora centrada */
.app.menu-off .sidebar .nav{padding:0 8px}
.app.menu-off .sidebar .nav li{border-radius:8px;padding-left:0;padding-right:0}
.app.menu-off .sidebar .nav li.on::before,.app.menu-off .sidebar .nav li.on::after{display:none}
.app{transition:grid-template-columns .2s var(--v-ease)}

/* ---------- cabecera de módulo ---------- */
.sede-band{background:var(--br-600)}
.mod-head{background:#fff;border-bottom:1px solid var(--v-linea);padding-top:14px;padding-bottom:14px}
.mod-head h2{font-size:22px;font-weight:600;letter-spacing:-.018em;color:var(--v-tinta)}
.caps-linea:empty{display:none}
.head-der{gap:12px}
.head-der #sel-sede{min-height:34px;padding:0 30px 0 31px;border-radius:8px;font-weight:600;color:var(--v-tinta);
  background-color:#f6f8fa;border-color:var(--v-linea);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231f5f9e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 14.5s4.5-4.2 4.5-8A4.5 4.5 0 0 0 3.5 6.5c0 3.8 4.5 8 4.5 8z'/%3E%3Ccircle cx='8' cy='6.5' r='1.6'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23536273' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat,no-repeat;background-position:10px center,right 10px center;background-size:14px,10px}
.head-der #sel-sede:hover{background-color:#eef2f6}
.reloj{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px 0 9px;border:1px solid var(--v-linea);
  border-radius:8px;background:#f6f8fa;color:var(--br-700);font-size:15px;letter-spacing:.01em}
.reloj::before{content:'';width:14px;height:14px;flex:none;background:currentColor;opacity:.8;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.2'/%3E%3Cpath d='M8 4.6V8l2.3 1.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6.2'/%3E%3Cpath d='M8 4.6V8l2.3 1.5'/%3E%3C/svg%3E") center/contain no-repeat}
.quien{display:grid;grid-template-columns:32px auto;column-gap:10px;align-items:center;padding-left:14px;border-left:1px solid var(--v-linea)}
.quien::before{content:'';grid-column:1;grid-row:1/3;width:32px;height:32px;border-radius:50%;
  background:#e7eef7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231b4d80' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='8' cy='5.8' r='2.6'/%3E%3Cpath d='M3.2 13.6c.7-2.4 2.6-3.7 4.8-3.7s4.1 1.3 4.8 3.7'/%3E%3C/svg%3E") center/16px no-repeat;
  box-shadow:inset 0 0 0 1px rgba(31,95,158,.12)}
.quien>strong,.quien>span{grid-column:2}
.quien>strong{color:var(--v-tinta);font-weight:600;letter-spacing:-.005em}
.quien span{color:var(--sy-texto-sec);margin-top:1px}
.head-der #btn-salir{background:transparent;border-color:transparent;color:var(--sy-texto-sec);box-shadow:none}
.head-der #btn-salir:hover{background:#f1f3f6;border-color:var(--v-linea);color:var(--v-tinta)}

/* ---------- pestañas ---------- */
.tabs{background:#fff;border-bottom:1px solid var(--v-linea);align-items:center;gap:4px}
.tab{border-bottom:0;box-shadow:inset 0 -2px 0 transparent;padding:10px 12px;color:var(--sy-texto-sec);font-weight:500;background:transparent;
  transition:color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease),background-color var(--v-t) var(--v-ease)}
.tab:hover{color:var(--v-tinta);background:#f6f8fa}
.tab[aria-selected=true]{color:var(--v-tinta);font-weight:600;background:transparent;box-shadow:inset 0 -2px 0 var(--br-600)}
.tab:focus-visible{outline:none;box-shadow:inset 0 0 0 2px rgba(31,95,158,.35)}
.tab .badge{vertical-align:1px}
/* selector segmentado (subvistas) */
.tabs3{background:#eef1f5;border:1px solid var(--v-linea);border-radius:8px;padding:2px;gap:2px;overflow:visible}
.tab3{background:transparent;border-radius:6px;color:var(--sy-texto-sec);
  transition:background-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.tab3+.tab3{border-left:0}
.tab3:hover{color:var(--v-tinta)}
.tab3.act{background:#fff;color:var(--v-tinta);box-shadow:0 1px 2px rgba(15,34,54,.14),0 0 0 1px rgba(15,34,54,.05)}

/* ---------- superficies ---------- */
.card{border-color:var(--v-linea);border-radius:12px;box-shadow:0 1px 2px rgba(15,34,54,.04),0 6px 16px -10px rgba(15,34,54,.10)}
.card > h3{text-transform:none;letter-spacing:-.005em;font-size:13px;color:var(--v-tinta);border-bottom-color:var(--v-linea-suave)}
.fieldset{border-color:#e3e8ee;border-radius:10px}
.fieldset > .lg{text-transform:none;letter-spacing:-.005em;font-size:13px;color:var(--v-tinta)}
.filtros{background:#fafbfc;border-bottom-color:var(--v-linea)}
.wrap>.card>#panel>.filtros:first-child{border-radius:12px 12px 0 0}
.linea2{border-top:1px solid var(--v-linea-suave)}
.res-dia .disp-head h3{color:var(--v-tinta)}

/* ---------- botones ---------- */
.btn:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){border-radius:7px;border-color:#c8d1db;color:#1f2d3d;font-weight:500;box-shadow:0 1px 1px rgba(15,34,54,.04);
  transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease),transform 90ms var(--v-ease)}
.btn:hover:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){background:#f4f7fa;border-color:#a9b5c3;color:var(--v-tinta)}
.btn:active:not(:disabled):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){transform:translateY(.5px);box-shadow:none}
.btn.primary:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){background:var(--br-600);border-color:#1b548d;color:#fff;box-shadow:0 1px 2px rgba(15,34,54,.14),inset 0 1px 0 rgba(255,255,255,.08)}
.btn.primary:hover:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){background:var(--br-700);border-color:var(--br-700);color:#fff}
.btn:focus-visible:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){outline:none;box-shadow:var(--v-anillo)}
.btn:disabled:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *),.btn[disabled]:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){opacity:.5;box-shadow:none}
.chip:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){border-radius:5px}

/* ---------- formularios ---------- */
:is(select,input[type=text],input[type=date],input[type=number],input[type=time],input[type=email],input[type=password],input[type=search],textarea):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){
  border-color:#c8d1db;border-radius:7px;
  transition:border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease),background-color var(--v-t) var(--v-ease)}
:is(select,input[type=text],input[type=date],input[type=number],input[type=time],input[type=email],input[type=password],input[type=search]):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){min-height:32px}
.campo :is(select,input[type=text],input[type=date],input[type=number],input[type=time]):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){min-height:30px}
:is(select,input[type=text],input[type=date],input[type=number],input[type=time],input[type=email],input[type=password],input[type=search],textarea):hover:not(:disabled):not(:focus):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){border-color:#a3b0bf}
:is(select,input[type=text],input[type=date],input[type=number],input[type=time],input[type=email],input[type=password],input[type=search],textarea):focus:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){
  border-color:var(--br-600);outline:none;box-shadow:var(--v-anillo)}
:is(select,input,textarea):disabled:not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){background-color:#f3f5f8;color:#8592a2;border-color:#dfe4ea;cursor:not-allowed}
select:not([multiple]):not([size]):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){-webkit-appearance:none;appearance:none;padding-right:28px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23536273' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;background-size:10px}
label.f{text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:#3f4e60}
/* casillas y radios */
:is(#app,#modal,#drawer) input[type=checkbox],:is(#app,#modal,#drawer) input[type=radio]{
  -webkit-appearance:none;appearance:none;width:16px;height:16px;min-width:16px;min-height:0;padding:0;
  border:1.5px solid #9aa8b8;background:#fff no-repeat center/11px;display:inline-block;vertical-align:-3px;flex:none;cursor:pointer;
  transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
:is(#app,#modal,#drawer) input[type=checkbox]{border-radius:4px}
:is(#app,#modal,#drawer) input[type=radio]{border-radius:50%}
:is(#app,#modal,#drawer) input[type=checkbox]:hover:not(:disabled),:is(#app,#modal,#drawer) input[type=radio]:hover:not(:disabled){border-color:var(--br-600)}
:is(#app,#modal,#drawer) input[type=checkbox]:checked{background-color:var(--br-600);border-color:var(--br-600);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2 5 8.6 9.6 3.6'/%3E%3C/svg%3E")}
:is(#app,#modal,#drawer) input[type=radio]:checked{border-color:var(--br-600);background-color:#fff;box-shadow:inset 0 0 0 3.5px #fff,inset 0 0 0 8px var(--br-600)}
:is(#app,#modal,#drawer) input[type=checkbox]:focus-visible{outline:none;box-shadow:var(--v-anillo)}
:is(#app,#modal,#drawer) input[type=radio]:focus-visible{outline:none;box-shadow:inset 0 0 0 3.5px #fff,inset 0 0 0 8px var(--br-600),var(--v-anillo)}
:is(#app,#modal,#drawer) input[type=radio]:not(:checked):focus-visible{box-shadow:var(--v-anillo)}
:is(#app,#modal,#drawer) input[type=checkbox]:disabled,:is(#app,#modal,#drawer) input[type=radio]:disabled{background-color:#eef1f4;border-color:#cfd7e0;cursor:not-allowed}
:is(#app,#modal,#drawer) input[type=checkbox]:checked:disabled{background-color:#9fb4ca;border-color:#9fb4ca}

/* ---------- tablas ---------- */
.tbl thead th{background:#f6f8fa;color:#3f4e60;border-bottom:1px solid #dfe4ea;text-transform:none;letter-spacing:0;font-size:12px;font-weight:600}
.tbl.mini thead th{font-size:11.5px}
.tbl td{border-bottom-color:var(--v-linea-suave)}
.tbl tbody tr{transition:background-color 120ms var(--v-ease)}
.tbl tbody tr:hover{background:#f5f8fb}
th.orden{transition:background-color 120ms var(--v-ease)}
th.orden:hover{background:#edf2f7}

/* ---------- ventana modal ---------- */
.modal-bg{background:rgba(12,24,38,.44);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity 180ms var(--v-ease)}
.modal{border:1px solid rgba(15,34,54,.10);border-top:1px solid rgba(15,34,54,.10);border-radius:14px;
  box-shadow:0 28px 60px -18px rgba(12,24,38,.38),0 4px 12px rgba(12,24,38,.08);
  transform:translate(-50%,-48.5%) scale(.985);transition:opacity 170ms var(--v-ease),transform 210ms var(--v-ease)}
.modal.on{transform:translate(-50%,-50%) scale(1)}
.modal h3{flex:none;margin:-2px calc(-1 * var(--s6)) var(--s6);padding:0 var(--s6) 14px;border-bottom:1px solid #e9edf2;
  font-size:17px;font-weight:600;letter-spacing:-.012em;color:var(--v-tinta)}
.modal .acciones{margin:var(--s6) calc(-1 * var(--s6)) calc(-1 * var(--s6));padding:12px var(--s6);border-top:1px solid #e9edf2;
  background:#f8fafc;border-radius:0 0 13px 13px}

/* ---------- panel lateral ---------- */
.drawer-bg{display:block;opacity:0;visibility:hidden;background:rgba(12,24,38,.38);
  transition:opacity 200ms var(--v-ease),visibility 0s linear 200ms}
.drawer-bg.on{opacity:1;visibility:visible;transition:opacity 200ms var(--v-ease),visibility 0s}
.drawer{display:grid;visibility:hidden;opacity:0;transform:translateX(28px);border-left:1px solid #d3dbe4;
  box-shadow:-28px 0 56px -24px rgba(12,24,38,.40),-1px 0 0 rgba(12,24,38,.04);
  transition:transform 220ms var(--v-ease),opacity 180ms var(--v-ease),visibility 0s linear 220ms}
.drawer.on{visibility:visible;opacity:1;transform:none;transition:transform 220ms var(--v-ease),opacity 180ms var(--v-ease),visibility 0s}
.drawer header{background:#f7f9fb;border-bottom-color:var(--v-linea)}
.drawer header h3{letter-spacing:-.01em;color:var(--v-tinta)}
.drawer .scroll{background:#f6f8fa}
.drawer footer{background:#fff;border-top-color:var(--v-linea)}

/* ---------- espacio de trabajo de Protocolos ---------- */
.pw-head{gap:6px}
.pw-titulo{letter-spacing:-.01em}
.pw-migas button{color:var(--br-600);border-radius:4px}
.vx-lista{border-color:var(--v-linea);box-shadow:0 1px 2px rgba(15,34,54,.04)}
.vx-rama{transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease)}
.vx-fijo,.vx-it{transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease)}
.vx-def{border-radius:10px}
.vx-vtabs{border-radius:10px 10px 0 0}

/* ---------- acceso ---------- */
.login{background:linear-gradient(180deg,var(--v-tinta) 0,var(--v-tinta) 40vh,var(--v-lienzo) 40vh)}
.login-caja{border:0;border-radius:16px;padding:32px 28px 26px;
  box-shadow:0 36px 72px -28px rgba(8,18,30,.45),0 2px 8px rgba(8,18,30,.08)}
.sy-bloque{border-radius:10px;border-color:var(--v-linea)}
.sy-bloque.principal{border-color:#cddbea;background:#f7fafd}
.sy-campo label{text-transform:none;letter-spacing:0;font-size:12px;color:#3f4e60}
.sy-campo input{min-height:38px;border-radius:8px;border-color:#c8d1db;
  transition:border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.sy-campo input:hover:not(:focus){border-color:#a3b0bf}
.sy-campo input:focus{border-color:var(--br-600);outline:none;box-shadow:var(--v-anillo)}
.sy-btn-sso,.sy-btn-local{min-height:42px;border-radius:8px;
  transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.sy-btn-sso{box-shadow:0 1px 2px rgba(15,34,54,.18),inset 0 1px 0 rgba(255,255,255,.1)}
.sy-btn-sso:focus-visible,.sy-btn-local:focus-visible,.sy-ver:focus-visible{outline:none;box-shadow:var(--v-anillo)}
.sy-ver{border-radius:6px}

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  .app,.sidebar,.sidebar .nav li,.sidebar .nav li .mi,.btn-menu,.btn,.tab,.tab3,.tbl tbody tr,th.orden,
  select,input,textarea,.modal,.modal-bg,.drawer,.drawer-bg,.vx-rama,.vx-fijo,.vx-it,
  .sy-campo input,.sy-btn-sso,.sy-btn-local{transition:none!important}
  .modal{transform:translate(-50%,-50%)}
  .drawer{transform:none}
}

/* =====================================================================
   v1.44 · PULIDO DE CALIDAD SOBRE «TINTA CLÍNICA»
   Correcciones localizadas, solo de presentación. No cambia JavaScript,
   marcado, campos, datos ni flujos. Las zonas protegidas de v1.43
   (calendario, bloques, leyendas, Timeline y vista horaria) no se tocan.
   ===================================================================== */

/* ---------- 1 · Sillones · Agenda y «Requieren revisión» sin desborde de página ----------
   Causa medida a 1366: la tabla (12 columnas con 16 px de relleno lateral por celda)
   exigía 1207 px dentro de una tarjeta de 1090 px. Se reduce solo el relleno lateral de
   esa tabla cuando la ventana es angosta; columnas, datos y acciones no cambian. Como
   resguardo, si un contenido más largo volviera a exceder el ancho, se desplaza dentro de
   la tarjeta y no la página completa. Mapa, Timeline y vista horaria no se tocan. */
@media (max-width:1599px){
  .main:has(#tabs [data-v="agenda"][aria-selected="true"]) #panel > .tbl :is(th,td),
  .main:has(#tabs [data-v="revision"][aria-selected="true"]) #panel > .tbl :is(th,td){padding-left:10px;padding-right:10px}
}
.main:has(#tabs :is([data-v="agenda"],[data-v="revision"])[aria-selected="true"]) .wrap > .card{min-width:0}
.main:has(#tabs :is([data-v="agenda"],[data-v="revision"])[aria-selected="true"]) .wrap > .card > #panel{overflow-x:auto}

/* ---------- 2 · Protocolos · legibilidad por componente (solo dentro del módulo) ---------- */
/* acciones por fila y de sección: 16 px de alto → 24 px, texto 11 → 12 px */
.pm-wrap .btn.xs{min-height:24px;padding:0 9px;font-size:12px;line-height:22px;border-radius:6px}
/* rótulos operativos en versalitas: algo mayores, con peso y más contraste */
.pm-wrap .pw-kl{font-size:11.5px;font-weight:600;letter-spacing:.05em;color:#46566a}
.pm-wrap dt{font-size:11.5px;font-weight:600;letter-spacing:.05em;color:#46566a}
.pm-wrap .pw-sublg{font-size:12px;font-weight:600;letter-spacing:.05em;color:#3f4e60}
/* encabezados de tabla más firmes */
.pm-wrap .tbl thead th{color:#33414f}
/* texto secundario: mismo tamaño, más contraste */
.pm-wrap .hint{color:#56647a}
.pm-wrap .sub2,.pm-wrap .pw-meta,.pm-wrap .pw-trunc .pw-t{color:#4c5b6d}
.pm-wrap .pw-meta{font-size:12.5px}
.pm-wrap .pw-trunc .pw-t{font-size:12.5px}
/* lista de visitas: metadatos y contadores legibles */
.pm-wrap .vx-meta{font-size:12.5px;color:#4c5b6d}
.pm-wrap .vx-b{font-size:11px;line-height:16px;padding:0 6px;border-radius:8px}
.pm-wrap .vx-b.cero{color:#7a8798}
.pm-wrap .vx-items{gap:3px}
/* etiquetas de hipótesis: 10 → 11 px */
.pm-wrap .hip{font-size:11px;line-height:17px}
/* fila de definición de la visita: acciones con aire */
.pm-wrap .vx-def .vx-dacc{gap:6px}
.pm-wrap .pw-tbl td.acc .btn+.btn{margin-left:6px}

/* ---------- 3 · Formularios ---------- */
/* el botón Salir conserva su anillo de foco por teclado (v1.43 lo anulaba) */
.head-der #btn-salir:focus-visible{box-shadow:var(--v-anillo);border-color:transparent}
/* valor de selector más largo que el control: puntos suspensivos antes de la flecha */
select:not([multiple]):not([size]):not(:is(.cal,.disp,.cal-leyenda,.leyenda,.tl-scroll,.vh-scroll) *){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}

/* ---------- 4 · Ventanas modales ----------
   El pie de acciones con fondo y bordes es solo el de la ventana (#modal > .acciones).
   Las barras de botones internas de un formulario (p. ej. «Editar ficha», «Volver»,
   «Guardar paciente» en Nueva reserva) vuelven a su presentación de v1.42. */
.modal #modal-b .acciones{margin:var(--s6) 0 0;padding:0;border-top:0;background:none;border-radius:0}

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  .pm-wrap .btn.xs,.head-der #btn-salir{transition:none!important}
}

/* =====================================================================
   v1.45 · MÓDULO COORDINACIÓN · estilos propios (prefijo .co-)
   No toca reglas existentes: el calendario, el Timeline y la vista
   horaria quedan intactos.
   ===================================================================== */
.co-wrap{display:grid;gap:0;min-width:0}
.co-head{display:flex;align-items:center;gap:var(--s5);flex-wrap:wrap;padding:14px var(--s6);border-bottom:1px solid var(--v-linea);background:#fff;border-radius:12px 12px 0 0}
.co-quien{display:flex;align-items:baseline;gap:6px 10px;flex-wrap:wrap;font-size:var(--fs-sm)}
.co-quien b{color:var(--v-tinta);font-weight:600;margin-right:8px}
.co-k{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#46566a}
.co-filtro{display:flex;align-items:center;gap:8px}
.co-filtro select{min-width:260px}
.co-estudios{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px var(--s6);background:#fafbfc;border-bottom:1px solid var(--v-linea)}
.co-estudios .co-k{margin-right:4px}
.co-est-btn{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:0 10px 0 12px;border:1px solid var(--v-linea);border-radius:16px;
  background:#fff;color:var(--v-tinta);font-size:var(--fs-sm);cursor:pointer;
  transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease)}
.co-est-btn:hover{border-color:#a9b5c3;background:#f4f7fa}
.co-est-btn[aria-pressed=true]{background:var(--br-600);border-color:var(--br-600);color:#fff}
.co-est-btn:focus-visible{outline:none;box-shadow:var(--v-anillo)}
.co-n{min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--br-100);color:var(--br-800);font-size:11px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.co-est-btn[aria-pressed=true] .co-n{background:rgba(255,255,255,.22);color:#fff}
.co-rol{font-size:11px;font-weight:700;letter-spacing:.04em;opacity:.8}
.co-ctx{display:grid;gap:6px;padding:12px var(--s6);border-bottom:1px solid var(--v-linea);background:#fff}
.co-ctx-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.co-ctx-t b{font-size:16px;color:var(--v-tinta);letter-spacing:-.01em}
.co-tit{color:#4c5b6d;font-size:var(--fs-sm)}
.co-ctx-m{display:flex;align-items:center;flex-wrap:wrap;gap:4px 22px;font-size:12.5px;color:#4c5b6d}
.co-ctx-m b{color:var(--v-tinta);font-weight:600}
.co-ctx-m .btn{margin-left:auto}
.co-vacio{padding:var(--s7) var(--s6);color:#4c5b6d;font-size:var(--fs-sm)}
.co-flash{margin:10px var(--s6) 0}
.co-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:10px var(--s5);padding:12px var(--s6);background:#fafbfc;border-bottom:1px solid var(--v-linea)}
.co-filtros .pm-buscar{max-width:460px}
.co-tbl th:first-child,.co-tbl td:first-child{padding-left:var(--s6)}
.co-tbl td.acc{white-space:nowrap;text-align:right;padding-right:var(--s6)}
.co-tbl td.acc .btn+.btn{margin-left:6px}
.co-tbl .btn.xs{min-height:24px;padding:0 9px;font-size:12px;line-height:22px;border-radius:6px}
.co-fila{cursor:pointer}
.co-pie{padding:10px var(--s6) 14px}
/* estado de la participación · siempre escrito, nunca solo color */
.co-est{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;line-height:18px;padding:0 8px;border-radius:9px;
  border:1px solid #c8d1db;color:#33414f;background:#fff;white-space:nowrap}
.co-est-screening{border-style:dashed;color:#33414f}
.co-est-enrolado{border-color:var(--br-500);color:var(--br-700);background:var(--br-50)}
.co-est-no_enrolado{border-style:dashed;color:#6b7785;background:#f6f8fa}
.co-est-tratamiento{border-color:var(--br-600);background:var(--br-600);color:#fff}
.co-est-seguimiento{border-color:#0f766e;color:#0b5e57;background:#e9f5f3}
.co-est-finalizado{border-color:#9aa8b8;color:#46566a;background:#eef1f4}
.co-est-alta{border-color:var(--ok-600);color:var(--ok-700);background:var(--ok-100)}
.co-est-fallecido{border-color:#0f2236;background:#0f2236;color:#fff}
/* espacio de trabajo del paciente */
.co-ws{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:520px;min-width:0}
.co-lista{border-right:1px solid var(--v-linea);background:#fafbfc;padding:10px 8px;min-width:0}
.co-volver{display:block;width:100%;text-align:left;background:none;border:0;padding:6px 8px;margin-bottom:6px;color:var(--br-600);
  font-size:12.5px;font-weight:600;cursor:pointer;border-radius:6px}
.co-volver:hover{background:var(--br-50)}
.co-lista ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.co-li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'n e' 'm e';column-gap:8px;width:100%;text-align:left;
  background:none;border:1px solid transparent;border-radius:8px;padding:7px 8px;cursor:pointer;color:var(--v-tinta);
  transition:background-color var(--v-t) var(--v-ease),border-color var(--v-t) var(--v-ease)}
.co-li b{grid-area:n;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-li .co-li-m{grid-area:m;font-size:12px;color:#4c5b6d;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-li .co-est{grid-area:e;align-self:center;font-size:10.5px;padding:0 6px}
.co-li:hover{background:#fff;border-color:var(--v-linea)}
.co-li.on{background:#fff;border-color:var(--br-200);box-shadow:inset 3px 0 0 var(--br-600)}
.co-li:focus-visible{outline:none;box-shadow:var(--v-anillo)}
.co-det{min-width:0;display:flex;flex-direction:column}
.co-pcab{position:sticky;top:0;z-index:auto;background:#fff;border-bottom:1px solid var(--v-linea);padding:12px var(--s6) 10px;display:grid;gap:6px}
.co-pc1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.co-pc1 h3{font-size:17px;font-weight:600;letter-spacing:-.012em;color:var(--v-tinta);margin:0}
.co-pc-id{font-size:12.5px;color:#4c5b6d;font-variant-numeric:tabular-nums}
.co-pc2{display:flex;align-items:center;flex-wrap:wrap;gap:4px 20px;font-size:12.5px;color:#4c5b6d}
.co-pc2 b{color:var(--v-tinta);font-weight:600;font-variant-numeric:tabular-nums}
.co-pc2 .btn{margin-left:auto}
.co-fallec{border-left:3px solid #0f2236;background:#eef1f5;padding:6px 10px;border-radius:6px;font-size:12.5px;color:#33414f}
.co-tabs{padding:0 var(--s5);border-top:0}
.co-body{padding:var(--s5) var(--s6) var(--s6);display:grid;gap:var(--s5);min-width:0}
.co-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.co-grid2>*{min-width:0}
@media (max-width:1300px){.co-grid2{grid-template-columns:minmax(0,1fr)}}
.co-body .fieldset{background:#fff;margin:0}
.co-body dl,.drawer .co-grid2 dl,.drawer .fieldset dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:0}
.co-body dt,.drawer .co-grid2 dt{font-size:11.5px;font-weight:600;letter-spacing:.05em;color:#46566a;align-self:baseline}
.co-body dd{margin:0}
.co-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.co-kpis div{border:1px solid var(--v-linea);border-radius:8px;padding:8px 10px;display:grid}
.co-kpis b{font-size:20px;font-weight:600;color:var(--v-tinta);font-variant-numeric:tabular-nums;line-height:1.1}
.co-kpis span{font-size:12px;color:#4c5b6d}
.co-prox,.co-otras,.co-meds{margin:0 0 10px;padding-left:18px;display:grid;gap:4px}
.co-otras{list-style:none;padding-left:0}
.co-pre{white-space:pre-line;font-size:13px;color:#33414f}
.co-obs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.co-obs li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;border:1px solid var(--v-linea-suave);border-radius:8px;padding:8px 10px}
.co-obs li>.hint{grid-column:1}
.co-obs li>.btn{grid-column:2;grid-row:1/3;align-self:center}
.co-ptbl{border:1px solid var(--v-linea);border-radius:8px;border-collapse:separate;border-spacing:0;background:#fff}
.co-ptbl th,.co-ptbl td{padding-left:10px;padding-right:10px}
.co-ptbl td.acc{text-align:right;white-space:nowrap}
.co-ptbl .btn.xs{min-height:24px;padding:0 9px;font-size:12px;line-height:22px;border-radius:6px}
/* hoja de ruta */
.co-ruta{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.co-tramo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 2px 2px;font-size:13px;color:var(--v-tinta)}
.co-tramo:first-child{padding-top:0}
.co-vis{border:1px solid var(--v-linea);border-radius:10px;background:#fff;transition:border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.co-vis:hover{border-color:#c8d1db}
.co-vis.abierta{border-color:var(--br-200);box-shadow:0 1px 2px rgba(15,34,54,.05),0 6px 16px -10px rgba(15,34,54,.12)}
.co-vis.co-hist{background:#fafbfc}
.co-vis.es-uns{border-style:dashed;border-color:#5aa59d;background:linear-gradient(90deg,#e9f5f3 0,#e9f5f3 4px,#fff 4px)}
.co-vis-f{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 8px;flex-wrap:wrap}
.co-ord{min-width:24px;text-align:center;font-size:12px;font-weight:700;color:#7a8798;font-variant-numeric:tabular-nums}
.co-vis-t{flex:1;min-width:280px;display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;background:none;border:0;padding:4px 2px;
  text-align:left;cursor:pointer;color:var(--v-tinta);border-radius:6px}
.co-vis-t:focus-visible{outline:none;box-shadow:var(--v-anillo)}
.co-vis-c{font-weight:600;font-size:14px;min-width:64px}
.co-vis-m{font-size:12.5px;color:#4c5b6d;font-variant-numeric:tabular-nums;white-space:nowrap}
.co-uns{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.06em;line-height:18px;padding:0 7px;
  border-radius:5px;border:1px dashed #0f766e;color:#0b5e57;background:#e9f5f3}
.co-vis.es-uns .co-vis-c{font-weight:500;font-size:12.5px;color:#0b5e57;min-width:0}
.co-seg{display:inline-flex;border:1px solid var(--v-linea);border-radius:8px;padding:2px;gap:2px;background:#eef1f5}
.co-seg-b{border:0;background:transparent;border-radius:6px;padding:0 9px;min-height:24px;font-size:12px;font-weight:500;color:#4c5b6d;cursor:pointer;
  transition:background-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.co-seg-b:hover:not(:disabled){color:var(--v-tinta)}
.co-seg-b.on{background:#fff;color:var(--v-tinta);font-weight:600;box-shadow:0 1px 2px rgba(15,34,54,.14),0 0 0 1px rgba(15,34,54,.05)}
.co-seg-b.on.co-ej-realizada{color:var(--ok-700);box-shadow:inset 0 -2px 0 var(--ok-600),0 1px 2px rgba(15,34,54,.12)}
.co-seg-b.on.co-ej-no_realizada{color:var(--er-700);box-shadow:inset 0 -2px 0 var(--er-600),0 1px 2px rgba(15,34,54,.12)}
.co-seg-b:focus-visible{outline:none;box-shadow:var(--v-anillo)}
.co-ej{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:20px;padding:0 8px;border-radius:10px;border:1px solid #c8d1db;color:#46566a;white-space:nowrap}
.co-ej-realizada.co-ej{border-color:var(--ok-600);color:var(--ok-700);background:var(--ok-100)}
.co-ej-no_realizada.co-ej{border-color:var(--er-600);color:var(--er-700);background:var(--er-100)}
.co-vis-d{border-top:1px solid var(--v-linea-suave);padding:10px 12px 12px 42px;display:grid;gap:8px}
.co-vis-dh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.co-vis-dh .btn+.btn{margin-left:6px}
.co-fecha{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#3f4e60}
.co-evs summary{font-size:12px;color:#4c5b6d;cursor:pointer}
.co-evs ul{margin:6px 0 0;padding-left:18px;font-size:12.5px;display:grid;gap:2px}
.co-fuera{border:1px dashed #c8d1db;border-radius:8px;padding:8px 12px;font-size:12.5px;color:#4c5b6d;background:#fafbfc}
.co-cant{width:72px}
.co-pf-tipo+.co-pf-tipo{margin-top:var(--s4)}
.co-pf-cab{display:flex;align-items:center;justify-content:space-between;gap:10px}
.co-pf-cab .btn{text-transform:none;letter-spacing:0}
.sy-demo-pre{margin:-6px 0 var(--s5);font-size:11.5px;color:#3f4e60;background:#f3f7fb;border:1px solid #d7e3f0;border-radius:6px;padding:5px 8px}
.eu-grupo{margin-top:8px;max-width:320px}
@media (prefers-reduced-motion:reduce){
  .co-est-btn,.co-li,.co-vis,.co-seg-b{transition:none!important}
}

.co-tbl .co-nw,.co-nw{white-space:nowrap}
.co-wrap .btn.xs{min-height:24px;padding:0 9px;font-size:12px;line-height:22px;border-radius:6px}
.co-ta{width:100%;resize:vertical;min-height:64px}
.drawer .co-grid2{grid-template-columns:minmax(0,1fr)}
.eq-etq .pw-check+.pw-check{margin-left:16px}
.eu-marca{display:block;margin-top:2px}
.co-tbl th,.co-tbl td{padding-left:10px;padding-right:10px}

/* v1.46 · rótulos de datos de referencia y pacientes ficticios */
.co-cap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px var(--s6) 0;font-size:12.5px;color:#4c5b6d}
.co-cap b{color:var(--v-tinta)}
.co-ref{font-size:11.5px;color:#46566a;border:1px solid #d7e3f0;background:#f3f7fb;border-radius:6px;padding:1px 7px}
.co-fict{display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;line-height:16px;padding:0 6px;border-radius:5px;
  border:1px dashed #a67c00;color:#8a6400;background:#fcf3dd;vertical-align:1px;white-space:nowrap}
.co-ramas{font-size:12px;color:#4c5b6d;border-left:1px solid var(--v-linea);padding-left:10px}
.co-prev{border:1px dashed #c8d1db;border-radius:8px;padding:8px 12px;background:#fafbfc}
.co-prev summary{cursor:pointer;font-size:13px;color:#33414f}
.co-prev dl{margin-top:8px}
.co-rama-ref{border:1px solid var(--v-linea);border-radius:8px;padding:10px 12px}
.co-rama-ref>b{display:block;margin-bottom:6px;color:var(--v-tinta)}
/* v1.46 · los filtros de Sillones listan TODO el maestro de medicamentos: los nombres largos de la referencia
   («Bevacizumab Vegzelma (Doble ciego)») ensanchaban el selector y reacomodaban la fila de filtros.
   Se fija el ancho que tenía en v1.45; la lista desplegada sigue mostrando el nombre completo. */
#m-med,#f-med{max-width:125px}

/* v1.47 · Equipo científico */
.eq-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 10px}
.eq-tbl .eq-hist td{color:#5b6878}
.eq-tbl .eq-hist td b{font-weight:500}
.eq-tbl td.acc{text-align:right}
.eq-tbl td.acc .btn+.btn{margin-left:6px}
.chip.eq-prog{border:1px dashed #6f86a3;color:#38506e;background:#f1f5fa}
.eq-resumen{margin-bottom:12px;font-size:13px;color:#33414f;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.eq-cerrar{margin-top:8px}

/* v1.48 · Notas de Coordinación */
@media (max-width:1599px){.co-tabs .nc-tab-c{display:none}.co-tabs .tab{padding-left:10px;padding-right:10px}}
/* el modal ancho lleva la clase .lg, que coincide con el estilo de leyenda (.lg) y tiñe el texto: se fija el color en las notas */
.nc-modal{color:var(--sy-texto,#1d2733)}
.nc-modal .fieldset>.lg{color:var(--br-700)}
.nc-tbl th.nc-ck,.nc-tbl td.nc-ck{width:30px;padding-right:0}
.nc-tbl td.acc{text-align:right}
.nc-acc{display:grid;grid-template-columns:repeat(2,max-content);gap:4px;justify-content:end}
.nc-acc .btn{justify-content:center}
.nc-tbl .nc-acc .btn+.btn{margin-left:0}
@media (min-width:1600px){.nc-acc{grid-template-columns:repeat(4,max-content)}}
.nc-tbl td.acc .btn+.btn,.nc-vtbl td.acc .btn+.btn{margin-left:6px}
.nc-ctx{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;padding:8px 12px;margin-bottom:12px;border:1px solid var(--v-linea);
  border-radius:8px;background:#f6f8fb;font-size:12.5px;color:#4c5b6d}
.nc-ctx b{color:var(--v-tinta);font-size:13px}
.nc-ta{width:100%;min-height:240px;font:inherit;line-height:1.5;resize:vertical}
.nc-cnt{margin-top:6px;font-size:12px;color:#4c5b6d;font-variant-numeric:tabular-nums;text-align:right}
.nc-cnt.alto{color:#8a6400}
.nc-cnt.max{color:var(--er-700,#a12a1f);font-weight:600}
.nc-pasos{display:flex;gap:6px;margin-bottom:14px}
.nc-pasos span{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--v-linea);color:#5b6878;background:#fff}
.nc-pasos span.on{background:var(--v-tinta);border-color:var(--v-tinta);color:#fff;font-weight:600}
.nc-req{font-size:11px;font-weight:600;color:#8a3a12;margin-left:4px}
.nc-just{margin-bottom:12px;padding:8px 12px;border-left:3px solid var(--v-tinta);background:#f6f8fb;font-size:13px}
.nc-vhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.nc-vhead .pw-code{font-size:14px}
.nc-hist-chip{color:#7a4b00;border-color:#c79a3c}
.nc-aviso-hist{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nc-meta{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr);gap:6px 16px;margin:0 0 12px}
.nc-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#5b6878;padding-top:2px}
.nc-meta dd{margin:0}
.nc-ctxnota{margin:-4px 0 10px}
.nc-texto{white-space:pre-wrap;word-break:break-word;border:1px solid var(--v-linea);border-radius:8px;background:#fff;padding:12px 14px;
  line-height:1.55;font-size:13.5px;color:#1d2733}
.nc-vacc{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.nc-cmp-sel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.nc-cmp-sel label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#4c5b6d}
.nc-leyenda{margin-left:auto;font-size:12px}
.nc-diff-h{font-size:12.5px;color:#4c5b6d;margin-bottom:6px}
.nc-ins{background:#dff3e4;color:#14532d;text-decoration:none;border-radius:3px;box-shadow:inset 0 -1px 0 #7cc495}
.nc-del{background:#fbe3e1;color:#7f1d1d;text-decoration:line-through;border-radius:3px}
.nc-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:12px}
.nc-col-h{font-size:12.5px;margin-bottom:6px}
.nc-vtbl{margin-bottom:12px}
.nc-prev-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.nc-prev{background:#e9edf2;border-radius:8px;padding:16px;overflow:auto;max-height:62vh}
/* documento A4 */
.nc-doc{background:#fff;color:#1d2733;width:210mm;max-width:100%;box-sizing:border-box;padding:14mm 16mm 16mm;margin:0 auto 16px;
  box-shadow:0 1px 3px rgba(15,34,54,.18);font-family:var(--sy-fuente,var(--ff));font-size:10.5pt;line-height:1.5}
.nc-doc-t{width:100%;border-collapse:collapse}
.nc-doc-t>thead>tr>td,.nc-doc-t>tbody>tr>td{padding:0}
.nc-doc-run{display:flex;justify-content:space-between;gap:12px;font-size:7.5pt;letter-spacing:.08em;text-transform:uppercase;color:#6b7785;
  border-bottom:1px solid #d5dce4;padding-bottom:4px;margin-bottom:10px}
.nc-doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:2px solid #13314f;padding-bottom:10px;margin-bottom:14px}
.nc-doc-bh{font-size:17pt;font-weight:700;letter-spacing:.24em;color:#13314f}
.nc-doc-tit{font-size:11pt;font-weight:600;color:#2b4a68;margin-top:2px}
.nc-doc-id{border-collapse:collapse;font-size:9pt}
.nc-doc-id th{text-align:left;font-weight:500;color:#6b7785;padding:1px 10px 1px 0;white-space:nowrap}
.nc-doc-id td{padding:1px 0;white-space:nowrap;font-variant-numeric:tabular-nums}
.nc-doc-aviso{border:1px solid #c79a3c;background:#fdf6e6;color:#5c4100;font-size:9pt;padding:6px 10px;border-radius:4px;margin-bottom:10px}
.nc-doc-fict{border-style:dashed}
.nc-doc-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nc-doc-sec{margin-bottom:12px;break-inside:avoid;page-break-inside:avoid}
.nc-doc-sec h3{font-size:8pt;letter-spacing:.12em;text-transform:uppercase;color:#13314f;margin:0 0 6px;padding-bottom:3px;border-bottom:1px solid #d5dce4;
  break-after:avoid;page-break-after:avoid}
.nc-doc-kv{border-collapse:collapse;width:100%;font-size:9.5pt}
.nc-doc-kv th{text-align:left;font-weight:500;color:#6b7785;padding:2px 10px 2px 0;width:42%;vertical-align:top}
.nc-doc-kv td{padding:2px 0;vertical-align:top}
.nc-doc-cont{break-inside:auto;page-break-inside:auto}
.nc-doc-texto{white-space:pre-wrap;word-break:break-word;border-left:3px solid #13314f;padding:4px 0 4px 12px;orphans:3;widows:3}
.nc-doc-traza .nc-doc-kv th{width:30%}
.nc-doc-cierre{break-inside:avoid;page-break-inside:avoid}
.nc-doc-cierre .nc-doc-sec{margin-bottom:0}
.nc-doc-pie{margin-top:12px;padding-top:6px;border-top:1px solid #d5dce4;font-size:7.5pt;color:#6b7785;break-inside:avoid;page-break-inside:avoid}
#nc-print{display:none}
@media print{
  @page{size:A4;margin:12mm 14mm 14mm}
  body.nc-imprimiendo{background:#fff!important}
  body.nc-imprimiendo>*:not(#nc-print){display:none!important}
  body.nc-imprimiendo #nc-print{display:block!important}
  #nc-print .nc-doc{width:auto;max-width:none;padding:0;margin:0;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  #nc-print .nc-doc+.nc-doc{break-before:page;page-break-before:always}
  #nc-print .nc-doc-t>thead{display:table-header-group}
}

/* v1.49 · cabecera del paciente en los modales de notas */
.nc-pc{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border:1px solid var(--v-linea);border-radius:10px;overflow:hidden;margin-bottom:14px;background:#fff}
.nc-pc-pac{padding:10px 14px;background:#f6f8fb;border-right:1px solid var(--v-linea)}
.nc-pc-est{padding:10px 14px}
.nc-pc-nom{font-size:15px;font-weight:650;color:var(--v-tinta);margin-bottom:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nc-pc-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px}
.nc-pc-pac .nc-pc-g{grid-template-columns:repeat(4,auto);column-gap:22px;justify-content:start}
.nc-pc-f{display:flex;flex-direction:column;min-width:0}
.nc-pc-f span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#5b6878}
.nc-pc-f b{font-size:13px;font-weight:600;color:#1d2733;overflow-wrap:anywhere}
.nc-pc-cod b{font-variant-numeric:tabular-nums;letter-spacing:.01em}
@media (max-width:1100px){.nc-pc{grid-template-columns:1fr}.nc-pc-pac{border-right:0;border-bottom:1px solid var(--v-linea)}}
/* v1.49 · documento: marca, sello de autoría */
.nc-doc-logo{height:34px;width:auto;display:block}
.nc-doc-marca .nc-doc-tit{font-size:15pt;font-weight:600;color:#13314f;margin-top:4px;letter-spacing:.01em}
.nc-doc-ni{color:#8a94a1;font-style:italic}
.nc-sellos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nc-sello{display:flex;gap:10px;border:1px solid #c9d4e0;border-left:3px solid #13314f;border-radius:6px;padding:8px 10px;background:#f8fafc;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid;page-break-inside:avoid}
.nc-sello-ico{color:#13314f;flex:0 0 auto;padding-top:2px}
.nc-sello-c{min-width:0;font-size:8.8pt;line-height:1.4;color:#33414f}
.nc-sello-t{font-size:7.5pt;letter-spacing:.1em;text-transform:uppercase;color:#6b7785}
.nc-sello-n{font-size:10.5pt;font-weight:650;color:#13314f}
.nc-sello-a{margin-top:2px;font-weight:600;color:#1f4e3d}
.nc-sello-mot{margin-top:4px;padding-top:4px;border-top:1px dashed #c9d4e0}
.nc-sello-r{margin-top:3px;font-size:7.5pt;color:#6b7785;font-variant-numeric:tabular-nums}
.nc-doc-pie{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* v1.51 · identidad Bradford Hill en el documento · azul institucional #0066B1 */
.nc-doc-logo{height:13mm;width:auto;display:block;margin-bottom:3mm}
.nc-doc-marca .nc-doc-tit{margin-top:0}
.nc-doc-run-m{display:inline-flex;align-items:center;gap:6px}
.nc-doc-run-logo{height:3.8mm;width:auto}
.nc-doc-head{border-bottom-color:#0066b1}
.nc-doc-sec h3{color:#0066b1}
.nc-doc-texto{border-left-color:#0066b1}
.nc-sello{border-left-color:#0066b1}
.nc-sello-ico{color:#0066b1}
.nc-doc-head,.nc-doc-run-logo,.nc-doc-logo{-webkit-print-color-adjust:exact;print-color-adjust:exact}

/* v1.52 · título centrado · el logo grande es la única marca del documento */
.nc-doc .nc-doc-head{display:block;padding-bottom:4mm}
.nc-doc-fila{display:flex;justify-content:space-between;align-items:center;gap:20px}
.nc-doc .nc-doc-logo{margin-bottom:0}
.nc-doc .nc-doc-tit{display:block;text-align:center;font-size:17pt;font-weight:600;letter-spacing:.02em;color:#13314f;margin:6mm 0 0;line-height:1.2}
.nc-doc-run{justify-content:flex-end}

/* v1.53 · rótulo de visitas de simulación */
.co-sim-nota{display:block;margin:-2px 0 10px;line-height:1.6}
.co-sim-nota .chip{margin-right:6px;vertical-align:1px}
.msg.co-sim{margin:0 0 10px}


/* ============================================================
   v1.54 · PROGRAMACIÓN SEMANAL · estilos propios (prefijo ps-)
   No toca .cal, .disp ni las vistas de Sillones: el calendario de este módulo es independiente.
   ============================================================ */
.wrap>.card:has(.ps-wrap){min-width:0}
.ps-wrap{padding:var(--s6) var(--s7) var(--s8);display:flex;flex-direction:column;gap:var(--s5);min-width:0}
.ps-head{display:flex;align-items:center;gap:var(--s6);flex-wrap:wrap;background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s5) var(--s6);
  box-shadow:var(--sy-sombra)}
.ps-tit{display:flex;flex-direction:column;min-width:0;flex:1 1 260px}
.ps-tit h3{font-size:18px;font-weight:650;letter-spacing:-.01em;color:var(--v-tinta);margin:0}
.ps-tit .hint{line-height:1.35}
.ps-nav{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.ps-nav>.btn{min-width:34px}
.ps-ir{display:inline-flex;align-items:center;gap:var(--s3);font-size:12px;color:var(--sy-texto-sec);margin-left:var(--s3)}
.ps-ir input{height:30px;padding:0 var(--s3)}
.ps-rango{font-weight:600;color:var(--v-tinta);font-size:14px;margin-left:var(--s4);white-space:nowrap}
.ps-yn{display:inline-flex;border:1px solid var(--v-linea);border-radius:8px;padding:2px;gap:2px;background:#eef1f5;flex:none}
.ps-yn-b{border:0;background:transparent;border-radius:6px;padding:0 10px;min-height:26px;font-size:12px;font-weight:500;color:#4c5b6d;cursor:pointer;white-space:nowrap;
  font-family:inherit;transition:background-color var(--v-t) var(--v-ease),color var(--v-t) var(--v-ease)}
.ps-yn-b:hover{color:var(--v-tinta)}
.ps-yn-b.on{background:#fff;color:var(--v-tinta);font-weight:650;box-shadow:0 1px 2px rgba(15,34,54,.14),0 0 0 1px rgba(15,34,54,.05)}
.ps-yn-b.nd.on{color:#6b5a1d}
.ps-vistas .ps-yn-b{min-width:64px}
/* barra de filtros */
.ps-filtros{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.ps-buscar{position:relative;flex:1 1 300px;min-width:220px;max-width:420px}
.ps-buscar svg{position:absolute;left:10px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--sy-texto-ter);pointer-events:none}
.ps-buscar input{width:100%;height:32px;padding:0 10px 0 32px}
.ps-filtros select{height:32px;max-width:190px}
.ps-filtros .btn.on{background:var(--sy-azul-claro);border-color:var(--br-200);color:var(--br-800)}
.ps-activos{display:flex;flex-wrap:wrap;gap:var(--s3)}
.ps-fchip{display:inline-flex;align-items:center;gap:var(--s2);font-size:12px;background:#fff;border:1px solid var(--br-200);color:var(--br-800);border-radius:999px;
  padding:2px 4px 2px 10px;max-width:420px}
.ps-fchip b{font-weight:600}
.ps-fchip button{border:0;background:var(--br-100);color:var(--br-800);width:18px;height:18px;border-radius:50%;line-height:16px;font-size:13px;padding:0;cursor:pointer}
.ps-panelf{background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s4) var(--s6) var(--s5);display:flex;flex-direction:column;
  gap:var(--s4);box-shadow:var(--sy-sombra)}
.ps-pf-tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--v-linea)}
.ps-pf-tab{border:0;background:transparent;font-family:inherit;font-size:12.5px;color:var(--sy-texto-sec);padding:6px 12px;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px}
.ps-pf-tab:hover{color:var(--v-tinta)}
.ps-pf-tab.on{color:var(--br-800);border-bottom-color:var(--sy-azul);font-weight:650}
.ps-pf-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s3) var(--s6);align-items:start}
.ps-pf-pie{display:flex;align-items:center;gap:var(--s5);justify-content:space-between;border-top:1px solid var(--v-linea-suave);padding-top:var(--s4)}
.ps-fg{display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s4)}
.ps-fg.act .ps-fg-l{color:var(--br-700);font-weight:650}
.ps-fg-l{font-size:12px;color:var(--sy-texto-sec)}
.ps-fg input[type=search],.ps-pop-b input[type=search]{height:28px;width:100%}
.ps-rng{display:flex;gap:var(--s3);flex-wrap:wrap}
.ps-rng select,.ps-rng input{height:28px;min-width:0;flex:1 1 110px}
.ps-cks{display:flex;flex-direction:column;gap:1px;max-height:180px;overflow:auto}
.ps-ck{display:flex;align-items:center;gap:var(--s3);font-size:12.5px;padding:2px 2px;border-radius:4px;cursor:pointer}
.ps-ck:hover{background:var(--br-50)}
.ps-ck span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-ck em{font-style:normal;color:var(--sy-texto-ter);font-size:11px}
.ps-info{font-size:12px;color:var(--sy-texto-sec);line-height:1.5}
.ps-info .chip{margin-right:var(--s3)}
.ps-info-u{display:block;color:var(--v-tinta)}
.ps-flash{margin:0}
.ps-code{font-family:var(--ff-mono);font-size:11.5px;color:var(--br-700);white-space:nowrap}
.ps-form,.ps-det,.ps-hmod,.ps-cup{color:var(--sy-texto)}
.ps-card footer .btn{white-space:nowrap;flex:none}
.ps-pp-t{display:flex;align-items:center;gap:var(--s3);margin:2px 0}
.ps-pp td{vertical-align:top}
.ps-pp-acc{white-space:nowrap}
.ps-h-todos{margin:var(--s2) 0 var(--s3)}
/* semana */
.ps-semana{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s4)}
.ps-dia{background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s4) var(--s4) var(--s4);min-height:232px;display:flex;flex-direction:column;
  gap:var(--s3);cursor:pointer;min-width:0;box-shadow:var(--sy-sombra);transition:border-color var(--v-t) var(--v-ease),box-shadow var(--v-t) var(--v-ease)}
.ps-dia:hover,.ps-dia:focus-visible{border-color:var(--br-500);box-shadow:var(--v-anillo)}
.ps-dia.hoy{border-color:var(--sy-azul);box-shadow:inset 0 3px 0 var(--sy-azul),var(--sy-sombra)}
.ps-dia.pasado{background:#f8fafc}
.ps-dia.pasado .ps-dia-n b{color:#5d6b7b}
.ps-dia.finde:not(.hoy){background:#fbfcfd}
.ps-dia-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--s3)}
.ps-dn{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--sy-texto-sec);font-weight:650}
.ps-df{font-size:12.5px;color:var(--v-tinta);font-weight:600}
.ps-hoy{font-size:10.5px;font-weight:700;background:var(--sy-azul);color:#fff;border-radius:999px;padding:0 7px;line-height:17px}
.ps-hist{font-size:10.5px;font-weight:600;background:#eef1f5;color:#5d6b7b;border-radius:999px;padding:0 7px;line-height:17px;white-space:nowrap}
.ps-dia-n{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}
.ps-dia-n b{font-size:28px;line-height:1;font-weight:700;color:var(--v-tinta);letter-spacing:-.02em}
.ps-dia-n span{font-size:11.5px;color:var(--sy-texto-sec)}
.ps-dia-t{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.ps-dia-t li{display:grid;grid-template-columns:8px minmax(0,1fr) auto;grid-template-rows:auto 3px;column-gap:6px;row-gap:2px;align-items:center;font-size:11.5px}
.ps-dia-t li i{width:8px;height:8px;border-radius:2px}
.ps-dia-t li .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2c3a47}
.ps-dia-t li .c{font-weight:650;color:var(--v-tinta)}
.ps-dia-t li .c sup{color:var(--wa-700);font-size:12px;top:0;margin-left:1px}
.ps-dia-t li .b{grid-column:2/4;height:3px;background:#edf0f4;border-radius:2px;overflow:hidden}
.ps-dia-t li .b s{display:block;height:100%;background:var(--br-500);text-decoration:none}
.ps-dia-t li.alto .b s{background:var(--wa-600)}
.ps-dia-t li.lleno .b s{background:var(--er-600)}
.ps-dia-t li.lleno .c{color:var(--er-700)}
.ps-dia-t li.mas{display:block;color:var(--sy-texto-ter)}
.ps-dia-v{font-size:12px;color:var(--sy-texto-ter);font-style:italic}
.ps-dia-m{margin-top:auto;display:flex;flex-wrap:wrap;gap:4px}
.ps-m-lleno,.ps-m-el,.ps-m-aj{font-size:10.5px;font-weight:600;border-radius:5px;padding:0 6px;line-height:17px;white-space:nowrap}
.ps-m-lleno{background:var(--er-100);color:var(--er-700)}
.ps-m-el{background:#eef1f5;color:#5d6b7b;text-decoration:line-through}
.ps-m-aj{background:var(--wa-100);color:var(--wa-700)}
/* cupos de la semana */
.ps-cupsem{background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s5) var(--s6);box-shadow:var(--sy-sombra)}
.ps-sec-h{display:flex;align-items:baseline;gap:var(--s5);flex-wrap:wrap;margin-bottom:var(--s4)}
.ps-sec-h h4{margin:0;font-size:14px;color:var(--v-tinta)}
.ps-cupsem-w{overflow-x:auto}
.ps-cupsem-t{width:100%;font-size:12px}
.ps-cupsem-t th,.ps-cupsem-t td{padding:4px 8px}
.ps-cupsem-t th.hoy{color:var(--sy-azul)}
.ps-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:0}
.ps-cc{cursor:pointer;border-radius:4px}
.ps-cc.cero{color:var(--sy-texto-ter)}
.ps-cc.medio{background:var(--br-50);color:var(--br-800)}
.ps-cc.alto{background:var(--wa-100);color:var(--wa-700);font-weight:600}
.ps-cc.lleno{background:var(--er-100);color:var(--er-700);font-weight:700}
.ps-cc sup,.ps-dt sup{color:var(--wa-700);font-size:12px;top:0}
.ps-cc:hover{box-shadow:inset 0 0 0 1px var(--br-500)}
.ps-demo-m{color:var(--wa-700);margin-left:1px}
/* mes */
.ps-mes{background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s5);box-shadow:var(--sy-sombra)}
.ps-mes-h,.ps-mes-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ps-mes-h span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;padding:0 6px 4px}
.ps-mes-d{min-height:70px;border:1px solid var(--v-linea-suave);border-radius:8px;padding:6px 8px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.ps-mes-d:hover,.ps-mes-d:focus-visible{border-color:var(--br-500)}
.ps-mes-d.fuera{opacity:.45}
.ps-mes-d.hoy{border-color:var(--sy-azul);box-shadow:inset 0 2px 0 var(--sy-azul)}
.ps-mes-d.pasado{background:#f8fafc}
.ps-mes-n{font-size:12px;color:var(--sy-texto-sec);font-weight:600}
.ps-mes-d b{font-size:18px;line-height:1;color:var(--v-tinta)}
.ps-mes-d .ps-m-lleno{align-self:flex-start}
.ps-mes>.hint{margin-top:var(--s4)}
/* día */
.ps-dcab{background:#fff;border:1px solid var(--v-linea);border-radius:12px;padding:var(--s5) var(--s6);display:grid;
  grid-template-columns:auto 1fr;grid-template-areas:"f k" "t t" "a a";gap:var(--s4) var(--s7);box-shadow:var(--sy-sombra)}
.ps-dcab-f{grid-area:f;display:flex;align-items:center;gap:var(--s5)}
.ps-dcab-t{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px}
.ps-dcab-t h3{margin:0;font-size:22px;font-weight:700;color:var(--v-tinta);letter-spacing:-.01em;line-height:1.1}
.ps-kpis{grid-area:k;display:flex;gap:var(--s7);align-items:center;justify-content:flex-end;flex-wrap:wrap}
.ps-kpis div{display:flex;flex-direction:column;align-items:flex-start}
.ps-kpis b{font-size:22px;line-height:1.1;color:var(--v-tinta)}
.ps-kpis .el b{color:#7a8794}
.ps-kpis .fl b{color:var(--br-700)}
.ps-kpis span{font-size:11.5px;color:var(--sy-texto-sec)}
.ps-dtipos{grid-area:t;display:flex;flex-wrap:wrap;gap:var(--s3)}
.ps-dt{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid var(--v-linea);border-radius:8px;padding:3px 9px;background:#fbfcfd}
.ps-dt i{width:8px;height:8px;border-radius:2px}
.ps-dt em{font-style:normal;color:var(--sy-texto-sec);font-size:11px}
.ps-dt.alto{border-color:#ecd9a6;background:var(--wa-100)}
.ps-dt.lleno{border-color:#efc4c0;background:var(--er-100)}
.ps-dt.lleno em{color:var(--er-700);font-weight:650}
.ps-dacc{grid-area:a;display:flex;align-items:center;gap:var(--s4);border-top:1px solid var(--v-linea-suave);padding-top:var(--s4)}
.ps-vacio{background:#fff;border:1px dashed var(--v-linea);border-radius:12px}
/* grilla */
.ps-grid-w{isolation:isolate;overflow-x:auto;background:#fff;border:1px solid var(--v-linea);border-radius:12px;box-shadow:var(--sy-sombra)}
.ps-grid{font-size:12.5px;border-collapse:separate;border-spacing:0;min-width:100%}
.ps-grid th,.ps-grid td{padding:6px 9px;vertical-align:top;border-bottom:1px solid var(--v-linea-suave);background:#fff}
.ps-grid thead th{position:sticky;top:0;z-index:2;background:#f7f9fb;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--sy-texto-sec);
  font-weight:650;white-space:nowrap;vertical-align:middle}
.ps-th{display:inline-flex;align-items:center;gap:3px}
.ps-fbtn{border:0;background:transparent;width:20px;height:20px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;color:#8592a2}
.ps-fbtn svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.ps-fbtn:hover{background:var(--br-100);color:var(--br-700)}
.ps-fbtn.on{background:var(--sy-azul);color:#fff}
.ps-fbtn.on svg{fill:currentColor}
.ps-grid .ps-fijo-d{position:sticky;right:0;z-index:1;box-shadow:inset 1px 0 0 var(--v-linea)}
.ps-grid thead .ps-fijo-d{z-index:3}
.ps-fila{cursor:pointer}
.ps-fila:hover td{background:var(--br-50)}
.ps-grid td{white-space:nowrap}
.ps-grid td.ps-c-obs,.ps-grid td.ps-c-actividades,.ps-grid td.ps-c-esquema{white-space:normal}
.ps-grid td.ps-c-actividades{min-width:170px;max-width:260px}
.ps-obs{max-width:220px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}
.ps-acc{display:flex;gap:4px}
.ps-ts2{display:block;line-height:1.25}
/* v1.55 · ELIMINADA: toda la fila en rojo intenso + texto «Eliminada» (no depende solo del color) */
.ps-grid tr.ps-elim td,.co-ptbl tr.ps-elim td{background:#c62828!important;color:#fff!important;border-bottom-color:#9e1c1c}
.ps-grid tr.ps-elim:hover td{background:#b71c1c!important}
.ps-grid tr.ps-elim td *,.co-ptbl tr.ps-elim td *{color:#fff}
.ps-grid tr.ps-elim .pw-code,.co-ptbl tr.ps-elim .pw-code{background:rgba(255,255,255,.18);color:#fff}
.ps-grid tr.ps-elim .ps-est-el,.co-ptbl tr.ps-elim .ps-est-el{background:#fff;color:#b71c1c!important;border:0;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.ps-grid tr.ps-elim .btn{background:#fff;color:#b71c1c;border-color:#fff}
.ps-grid tr.ps-elim .ps-tipo i{box-shadow:0 0 0 1px #fff}
.ps-card.ps-elim{background:#c62828;border-color:#9e1c1c;color:#fff}
.ps-card.ps-elim *{color:#fff!important}
.ps-card.ps-elim .ps-bdg,.ps-card.ps-elim .pw-code{background:rgba(255,255,255,.2)}
.ps-banda-elim{background:#b71c1c;color:#fff;font-weight:800;letter-spacing:.06em;font-size:12px;padding:4px 10px;border-radius:6px}
.ps-card .ps-banda-elim{background:#fff;color:#b71c1c!important;align-self:flex-start}
.ps-det-elim{border-left:6px solid #c62828;padding-left:var(--s4)}
/* v1.55 · MODIFICADO: celda en amarillo intenso + indicador textual; el historial guarda antes → después */
.ps-mod,.ps-grid td.ps-mod,.ps-dv.ps-mod,.ps-det-f.ps-mod,.ps-dobs.ps-mod{background:#ffe600!important;color:#1b1b1b!important;box-shadow:inset 0 0 0 2px #d4a800}
.ps-grid td.ps-mod *{color:#1b1b1b}
.ps-dv.ps-mod{padding-left:6px;padding-right:6px;border-radius:4px}
.ps-mod-t{display:block;width:max-content;margin-top:2px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#5a4500!important;
  background:rgba(255,255,255,.55);border-radius:3px;padding:0 4px;line-height:14px}
.ps-dv .ps-mod-t,.ps-dobs .ps-mod-t{display:inline-block;margin:0 0 0 4px}
.ps-est-mod{font-size:11px;font-weight:800;border-radius:5px;padding:0 7px;line-height:18px;white-space:nowrap;background:#ffe600;color:#1b1b1b;border:1px solid #d4a800}
.ps-card.ps-modif{box-shadow:0 0 0 3px #ffe600,var(--sy-sombra)}
.ps-card-mod{font-size:11.5px;font-weight:700;background:#ffe600;color:#1b1b1b;border-radius:5px;padding:2px 8px}
/* v1.55 · distintivos de la programación */
.ps-dist{display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:999px;padding:0 9px;line-height:19px;white-space:nowrap;border:1px solid}
.ps-dist-tac{background:#e0f2f1;color:#00695c;border-color:#80cbc4}
.ps-dist-fast{background:#fff3e0;color:#b34700;border-color:#ffb74d}
.ps-distf{margin:var(--s4) 0}
.ps-distf .f{display:block;margin-bottom:var(--s2)}
.ps-distf-l{display:flex;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.ps-distb{font-family:inherit;font-size:12.5px;border:1px solid var(--v-linea);background:#fff;border-radius:999px;padding:3px 14px;cursor:pointer;color:#2c3a47}
.ps-distb.on{background:var(--sy-azul);border-color:var(--sy-azul);color:#fff;font-weight:650}
/* v1.55 · encabezado: visita y esquema de tratamiento a todo el ancho */
.ps-visesq{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s3) var(--s5);background:#f7f9fb;border:1px solid var(--v-linea-suave);border-radius:8px}
.ps-vis1{display:flex;align-items:baseline;gap:var(--s4)}
.ps-esq{display:flex;flex-direction:column;gap:2px;width:100%}
.ps-esq-t{white-space:pre-wrap;word-break:break-word;font-size:13px;color:var(--v-tinta);max-height:9.5em;overflow:auto}
.ps-esq-c{max-width:280px;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* v1.55 · reordenar columnas */
.ps-grid thead th[draggable="true"]{cursor:grab}
.ps-grip{color:#a8b3c0;font-size:10px;letter-spacing:-2px;margin-right:2px}
.ps-grid thead th.ps-arr{opacity:.45}
.ps-grid thead th.ps-drop{box-shadow:inset 3px 0 0 var(--sy-azul);background:var(--br-100)}
.ps-cols-h{margin:0 0 var(--s3)}
.ps-cols-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}
.ps-cols-l li{display:flex;align-items:center;gap:var(--s2);padding:1px 4px;border-radius:5px}
.ps-cols-l li.on{background:var(--br-50)}
.ps-cols-l li .ps-ck{flex:1}
.ps-cols-l li .btn{min-width:26px;padding:0 6px}
.ps-pop-cols{width:min(460px,calc(100vw - 24px))}
.ps-exp-btn{margin-left:auto}
.ps-exp{display:flex;flex-direction:column;gap:var(--s4);color:var(--sy-texto)}
.ps-exp-op{border:1px solid var(--v-linea);border-radius:10px;padding:var(--s4) var(--s5);margin:0;display:flex;flex-direction:column;gap:var(--s3)}
.ps-exp-op legend{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;padding:0 4px}
.ps-exp-r{display:flex;align-items:center;gap:var(--s3);font-size:13px;cursor:pointer}
.ps-exp-f{display:flex;gap:var(--s5);padding-left:26px;flex-wrap:wrap}
.ps-exp-f>div,.ps-exp-f{align-items:flex-end}
.ps-exp-n{font-weight:650;color:var(--br-800)}
.ps-pie{padding:0 var(--s2)}
.ps-si{font-weight:650;color:var(--ok-700)}
.ps-no{color:var(--sy-texto-ter)}
.ps-dif{display:inline-block;margin-left:4px;font-size:10.5px;font-weight:600;color:var(--wa-700);background:var(--wa-100);border-radius:4px;padding:0 5px;line-height:16px}
.ps-tipo{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--v-tinta);white-space:nowrap}
.ps-tipo i{width:9px;height:9px;border-radius:3px;background:var(--ps-c)}
.ps-est-ac,.ps-est-el{font-size:11px;font-weight:650;border-radius:5px;padding:0 7px;line-height:18px;white-space:nowrap}
.ps-est-ac{background:var(--ok-100);color:var(--ok-700)}
.ps-est-el{background:#eef1f5;color:#6b7785;border:1px dashed #b9c2cc}
.ps-bdgs{display:flex;flex-wrap:wrap;gap:3px}
.ps-bdg{font-size:10.5px;font-weight:600;color:#34465a;background:#eef2f7;border-radius:4px;padding:0 5px;line-height:17px;white-space:nowrap}
/* tarjetas */
.ps-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:var(--s5)}
.ps-card{background:#fff;border:1px solid var(--v-linea);border-left:4px solid var(--ps-c);border-radius:10px;padding:var(--s4) var(--s5);display:flex;flex-direction:column;
  gap:6px;box-shadow:var(--sy-sombra);min-width:0}
.ps-card header{display:flex;align-items:center;gap:var(--s3)}
.ps-card-id{font-size:11px}
.ps-card-p{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap}
.ps-card-p b{font-size:14.5px;color:var(--v-tinta)}
.ps-card-e,.ps-card-v{font-size:12px;color:#3c4b5c}
.ps-card-o{font-size:12px;color:var(--sy-texto-sec);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ps-card footer{display:flex;align-items:center;gap:var(--s4);justify-content:space-between;border-top:1px solid var(--v-linea-suave);padding-top:6px;margin-top:auto}
/* popovers */
.ps-pop{position:fixed;z-index:60;background:#fff;border:1px solid rgba(15,34,54,.12);border-radius:10px;box-shadow:var(--sy-sombra-card);width:300px;max-width:calc(100vw - 24px);
  padding:var(--s4) var(--s5) var(--s5);left:16px;top:120px}
.ps-pop-h{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.ps-pop-h b{flex:1;font-size:13px;color:var(--v-tinta)}
.ps-pop-b{max-height:min(420px,calc(100vh - 220px));overflow:auto}
.ps-pop-cols{width:min(640px,calc(100vw - 24px))}
.ps-cols-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s4)}
.ps-cols-g fieldset{border:0;margin:0;padding:0}
.ps-cols-g legend{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;padding:0;margin-bottom:2px}
.ps-cols-g em{font-style:normal;color:var(--sy-texto-ter);font-size:10.5px}
.ps-pop-grp .ps-fg{margin-bottom:var(--s3)}
/* formulario */
.ps-modal.modal.lg{width:min(1120px,94vw)}
.ps-form{display:flex;flex-direction:column;gap:var(--s5)}
.ps-form .nc-pc{margin:0}
.ps-fvis{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s7);font-size:12.5px;padding:var(--s3) var(--s5);background:#f7f9fb;border:1px solid var(--v-linea-suave);border-radius:8px}
.ps-fvis>span{display:flex;flex-direction:column}
.ps-fcab{display:flex;flex-wrap:wrap;gap:var(--s4) var(--s8);align-items:flex-end;padding:var(--s4) var(--s5);background:#f7f9fb;border:1px solid var(--v-linea-suave);border-radius:8px}
.ps-fcab>div{display:flex;flex-direction:column}
.ps-fcab-n{flex:1 1 280px}
.ps-fcab-n input{width:100%}
.ps-pls{display:flex;flex-direction:column;gap:var(--s3)}
.ps-pls-h{display:flex;align-items:baseline;gap:var(--s4);flex-wrap:wrap}
.ps-pls-l{display:flex;flex-wrap:wrap;gap:var(--s3)}
.ps-pl{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid var(--v-linea);background:#fff;border-radius:9px;padding:6px 12px;cursor:pointer;
  font-family:inherit;max-width:280px;min-width:150px}
.ps-pl b{font-size:12.5px;color:var(--v-tinta)}
.ps-pl span{font-size:11px;color:var(--sy-texto-sec);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.ps-pl em{font-style:normal;font-size:10.5px;color:var(--wa-700)}
.ps-pl:hover{border-color:var(--br-500)}
.ps-pl.on{border-color:var(--sy-azul);box-shadow:inset 0 0 0 1px var(--sy-azul);background:var(--br-50)}
.ps-pls-n{margin-top:-2px}
.ps-fgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5)}
.ps-fcol{display:flex;flex-direction:column;gap:var(--s5);min-width:0}
.ps-fs{border:1px solid var(--v-linea);border-radius:10px;padding:var(--s4) var(--s5);margin:0;min-width:0}
.ps-fs>.lg{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;margin-bottom:var(--s3)}
.ps-fs-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--s4);margin-bottom:var(--s4)}
.ps-fs-g input,.ps-fs-g select{width:100%}
.ps-fs-obs textarea{width:100%;min-height:64px}
.ps-acts{display:flex;flex-direction:column}
.ps-act{display:flex;align-items:center;flex-wrap:wrap;gap:6px var(--s4);padding:5px 0;border-top:1px solid var(--v-linea-suave);min-height:36px}
.ps-act:first-child{border-top:0}
.ps-act-n{flex:1 1 160px;font-size:13px;color:#2c3a47}
.ps-act.on .ps-act-n{font-weight:600;color:var(--v-tinta)}
.ps-act-sub{flex:1 1 100%;display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);padding:2px 0 2px var(--s5);border-left:2px solid var(--br-200);margin-left:2px}
.ps-sub{font-size:12px;color:var(--sy-texto-sec)}
.ps-act-sub select{max-width:220px;height:28px}
.ps-act-sub input[type=date],.ps-act-sub input[type=time]{height:28px}
.ps-num{width:72px;height:28px}
.ps-cupo{border-radius:9px;padding:var(--s4) var(--s5);background:var(--br-50);border:1px solid var(--br-200);display:flex;flex-direction:column;gap:4px}
.ps-cupo.vacio,.ps-cupo.info{background:#f7f9fb;border-color:var(--v-linea);font-size:12.5px;color:var(--sy-texto-sec)}
.ps-cupo-t{display:flex;align-items:center;gap:var(--s4);font-size:13px}
.ps-cupo-n{display:flex;gap:var(--s7);font-size:13px;color:#2c3a47}
.ps-cupo-n b{font-size:18px;color:var(--v-tinta);margin-left:3px}
.ps-cupo .ps-disp b{color:var(--ok-700)}
.ps-cupo.lleno{background:var(--er-100);border-color:#efc4c0}
.ps-cupo.lleno .ps-disp b{color:var(--er-700)}
.ps-cupo-err{font-weight:650;color:var(--er-700);font-size:12.5px}
.ps-pend{font-size:12px;color:#6b5a1d;background:var(--wa-100);border:1px dashed #e2c87a;border-radius:8px;padding:var(--s3) var(--s5)}
.ps-ro{min-height:32px;display:flex;align-items:center}
/* detalle */
.ps-det{display:flex;flex-direction:column;gap:var(--s5)}
.ps-det-est{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.ps-det-f{font-size:15px;color:var(--v-tinta)}
.ps-motivos{margin:0}
.ps-dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5)}
.ps-dg{border:1px solid var(--v-linea);border-radius:10px;padding:var(--s4) var(--s5);min-width:0}
.ps-dg>.lg{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;margin-bottom:var(--s3)}
.ps-dv{display:flex;justify-content:space-between;gap:var(--s5);font-size:12.5px;padding:3px 0;border-top:1px solid var(--v-linea-suave)}
.ps-dv:first-of-type{border-top:0}
.ps-dv span{color:var(--sy-texto-sec)}
.ps-dv b{font-weight:600;color:var(--v-tinta);text-align:right}
.ps-det-acc{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.btn.danger{color:var(--er-700);border-color:#e3b3ae}
.btn.danger:hover{background:var(--er-100)}
/* historial */
.ps-hmod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--s6)}
.ps-hmod .lg{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sy-texto-sec);font-weight:650;margin-bottom:var(--s3)}
.ps-hist-l ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s4)}
.ps-hist-l li{border:1px solid var(--v-linea);border-left:3px solid var(--br-500);border-radius:8px;padding:var(--s3) var(--s4)}
.ps-hist-l li.k-crear{border-left-color:var(--ok-600)}
.ps-hist-l li.k-eliminar{border-left-color:#8592a2}
.ps-hl-h{display:flex;justify-content:space-between;gap:var(--s4)}
.ps-hl-t{margin-top:var(--s3)}
.ps-antes{background:var(--er-100);color:var(--er-700);text-decoration:line-through;text-decoration-color:rgba(150,32,26,.45)}
.ps-desp{background:var(--ok-100);color:var(--ok-700);font-weight:600}
.ps-hc-s{display:flex;gap:var(--s5);flex-wrap:wrap;margin-bottom:var(--s3)}
.ps-hc-s label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--sy-texto-sec)}
.ps-cmp{width:100%}
.ps-cmp tr.dif td:first-child{font-weight:650}
.ps-cmp tr.nd td{color:var(--sy-texto-ter)}
/* cupos del día */
.ps-cup{display:flex;flex-direction:column;gap:var(--s5)}
.ps-cup-t{width:100%;font-size:12.5px}
.ps-cup-t tr.aj td{background:#fffaf0}
.ps-cup-in{display:flex;gap:var(--s3);align-items:center}
.ps-cup-in input{width:76px;height:28px}
.ps-lleno{color:var(--er-700);font-weight:650}
/* Coordinación · Protocolos */
.co-ps{border-top:1px solid var(--v-linea-suave);margin-top:var(--s4);padding-top:var(--s4)}
.co-ps-h{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap}
.co-ps-btn{margin-left:var(--s3)}
.co-ps-cnt{color:var(--br-700);font-weight:600}
.ps-pp .ps-tipo{font-size:12px}
@media (max-width:1500px){
  .ps-dia{padding:var(--s4) var(--s3)}
  .ps-dia-n b{font-size:24px}
}
@media (prefers-reduced-motion:reduce){.ps-dia,.ps-yn-b{transition:none!important}}
@media print{.ps-pop{display:none}}

/* v1.55 · la primera columna elegida por el usuario queda fija al desplazar horizontalmente */
.ps-grid .ps-fijo1{position:sticky;left:0;z-index:1;box-shadow:inset -1px 0 0 var(--v-linea)}
.ps-grid thead .ps-fijo1{z-index:3}
/* ---------- v1.56 · visitas asociadas opcionales y múltiples ---------- */
.ps-vsec{border:1px solid var(--v-linea);border-radius:10px;background:#fff;padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:var(--s3);margin-bottom:var(--s5)}
.ps-vsec-h{display:flex;align-items:baseline;gap:var(--s4);flex-wrap:wrap}
.ps-vsec-h .btn{margin-left:auto}
.ps-vsec-sel{display:flex;flex-wrap:wrap;gap:var(--s2);min-height:26px;align-items:center}
.ps-vchips{display:inline-flex;flex-wrap:wrap;gap:var(--s2)}
.ps-vchip{display:inline-flex;align-items:center;gap:var(--s2);font-size:12.5px;font-weight:650;background:var(--sy-azul-claro);border:1px solid var(--br-200);
  color:var(--br-800);border-radius:999px;padding:2px 10px}
.ps-vchip button{border:0;background:var(--br-100);color:var(--br-800);width:18px;height:18px;border-radius:50%;line-height:16px;font-size:13px;padding:0;cursor:pointer}
.ps-vchip button:focus-visible,.ps-vsel:focus-visible,.ps-np-it:focus-visible{outline:2px solid var(--sy-azul);outline-offset:1px}
.ps-sinvis{font-size:12.5px;color:var(--sy-texto-sec);font-style:italic;font-weight:500}
.ps-vsec-l{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;max-height:150px;overflow:auto;padding:2px}
.ps-vsel-g{flex-basis:100%;font-size:11px;font-weight:650;color:var(--sy-texto-ter);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--s2)}
.ps-vsel{display:inline-flex;align-items:center;gap:var(--s2);font-family:inherit;font-size:12px;border:1px solid var(--v-linea);background:#f7f9fb;
  color:var(--v-tinta);border-radius:8px;padding:3px 9px;cursor:pointer}
.ps-vsel em{font-style:normal;font-size:11px;color:var(--sy-texto-ter)}
.ps-vsel:hover{border-color:var(--br-200)}
.ps-vsel.on{background:var(--sy-azul-claro);border-color:var(--sy-azul);color:var(--br-800);font-weight:650}
.ps-vlist{display:inline;white-space:normal}
.ps-vsep{color:var(--sy-texto-ter)}
.ps-pl-v{font-style:normal;font-size:11px;color:var(--sy-texto-ter)}
.ps-np{display:flex;flex-direction:column;gap:var(--s3)}
.ps-np input[type=search]{height:34px;padding:0 var(--s4)}
.ps-np-l{display:flex;flex-direction:column;gap:var(--s2);max-height:52vh;overflow:auto}
.ps-np-it{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;font-family:inherit;font-size:12.5px;border:1px solid var(--v-linea);
  background:#fff;border-radius:8px;padding:var(--s3) var(--s4);cursor:pointer;color:var(--sy-texto-sec)}
.ps-np-it b{color:var(--v-tinta);font-size:13.5px}
.ps-np-it:hover{border-color:var(--sy-azul);background:var(--sy-azul-claro)}
.co-ps-sv{margin-top:var(--s5)}
.co-ps-vis{max-width:260px}
/* ---------- v1.57 · reservas desde la programación ---------- */
#modal.rv-lg{width:min(1240px,calc(100vw - 32px))}
.rv-modal{display:flex;flex-direction:column;gap:var(--s4)}
.cc-prog{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:2px var(--s4);box-shadow:0 2px 6px rgba(15,34,54,.06);
  background:#f6f8fb;border:1px solid var(--v-linea);border-radius:10px;padding:var(--s3) var(--s4)}
.cc-i{display:flex;flex-direction:column;min-width:0}
.cc-i span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--sy-texto-ter)}
.cc-i b{font-size:12.5px;color:var(--v-tinta);font-weight:600;overflow-wrap:anywhere}
.cc-ancho{grid-column:span 2}
.cc-esq{grid-column:1/-1}
.cc-esq b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.rv-sug{font-size:12.5px}
.rv-sec{border:1px solid var(--v-linea);border-radius:10px;padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:var(--s3);background:#fff}
.rv-sec.rv-off{opacity:.75}
.rv-sec-h{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.rv-filtros{display:flex;gap:var(--s4);flex-wrap:wrap}
.rv-filtros label{display:flex;flex-direction:column;gap:2px}
.rv-disp{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.4fr);gap:var(--s4);align-items:start}
.rv-disp .cal,.rv-disp .disp{min-width:0}
@media (max-width:1100px){.rv-disp{grid-template-columns:1fr}}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3) var(--s4)}
.rv-grid .rv-full{grid-column:1/-1}
.rv-grid input,.rv-grid select{width:100%}
.rv-segv,.rv-rel{display:flex;flex-direction:column;gap:var(--s2);font-size:12.5px}
.rv-segl{display:flex;flex-wrap:wrap;gap:var(--s2)}
.rv-segc{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--v-linea);border-radius:8px;padding:3px 9px;font-size:12px;background:#f7f9fb;cursor:pointer}
.rv-segc.on{border-color:var(--sy-azul);background:var(--sy-azul-claro);color:var(--br-800);font-weight:600}
.rv-hered{font-size:12px;color:var(--sy-texto-sec);background:#f6f8fb;border-radius:8px;padding:var(--s3) var(--s4)}
.rv-wrap{overflow-x:auto;width:0;min-width:100%}   /* no impone su ancho intrínseco al contenedor */
.rv-tbl td,.rv-tbl th{font-size:12px;vertical-align:top}
.rv-tbl tr.rv-inact td{color:var(--sy-texto-ter)}
.rv-est{font-weight:600;font-size:11.5px}
.rv-cambio{display:inline-block;margin:1px 4px 1px 0;font-size:11px;font-weight:650;color:#7a4b00;background:#fff4dc;border:1px solid #f0cf86;border-radius:6px;padding:1px 6px}
.rv-cambio::before{content:'⚠ ';}
.rv-rev{display:inline-block;font-size:11px;color:#8a1c1c;background:#fde8e8;border-radius:6px;padding:1px 6px}
.chip.rv-poli,.ps-rv-c.rv-poli{background:#e6f0fb;color:#174a7e;border-color:#c5dbf3}
.chip.rv-sil,.ps-rv-c.rv-sil{background:#eaf6ee;color:#1d5a32;border-color:#c7e6d1}
.ps-rv{display:flex;flex-direction:column;gap:6px;min-width:0}
/* v1.62 · ficha de cada reserva: ID, estado, bloque, profesional/sillón y quién agendó */
.ps-rv-c{display:flex;flex-direction:column;gap:2px;font-size:11.5px;border:1px solid;border-left-width:3px;border-radius:7px;padding:4px 8px;min-width:0;
  white-space:normal;line-height:1.35}
.ps-rv-c.rv-inact{opacity:.6}
.ps-rv-c.rv-inact .ps-rv-id{text-decoration:line-through}
.ps-rv-h{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.ps-rv-t{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.ps-rv-id{font-family:var(--mono,ui-monospace,monospace);font-size:12px;color:var(--v-tinta);overflow-wrap:anywhere}
.ps-rv-e .est-badge{font-size:10.5px}
/* etiqueta y valor en la misma línea si caben; en celdas angostas (Coordinación) el valor baja a la línea siguiente sin cortar palabras */
.ps-rv-l{display:flex;flex-wrap:wrap;column-gap:6px;color:var(--v-tinta)}
.ps-rv-l>span:last-child{flex:1 1 110px;min-width:0;overflow-wrap:break-word}
.ps-rv-k{flex:0 0 76px;color:var(--sy-texto-sec);font-size:10px;text-transform:uppercase;letter-spacing:.02em;padding-top:1px}
.rv-tbl .est-badge{white-space:normal;text-align:center}
.ps-card-r{margin-top:2px}
.rv-prog{display:flex;flex-direction:column;gap:var(--s3)}
.rv-ev{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;max-height:240px;overflow:auto}
.rv-afect{margin:4px 0 0 18px;padding:0;font-size:12px}
.rv-marca .k{display:block}
.rv-confirma{margin-top:var(--s3);font-size:12.5px}
.rv-conv textarea{width:100%}
.co-asoc{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s4);border-top:1px dashed var(--v-linea);padding-top:var(--s4)}
.co-conv{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.inv-prog{font-size:11px;color:var(--br-800);margin-top:2px}
.co-ps .ps-rv-c{white-space:normal}
.co-ps .co-ptbl{table-layout:auto}
/* ---------- v1.58 · Procedimientos Internos BH ---------- */
.pbh{display:flex;flex-direction:column;gap:var(--s3)}
.pbh-head{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.pbh-est{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 10px;border:1px solid;white-space:nowrap}
.pbh-est.pbh-sin{color:var(--sy-texto-sec);background:#f3f5f8;border-color:var(--v-linea)}
.pbh-est.pbh-completo{color:#1d5a32;background:#e8f5ec;border-color:#bfe3cb}
.pbh-est.pbh-parcial,.pbh-est.pbh-sinOrdenar{color:#7a4b00;background:#fff4dc;border-color:#f0cf86}
.pbh-add select{min-width:240px}
.pbh .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pbh-tablero{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--s4);align-items:start}
.pbh-dia{--pbh-c:#2f6fd6;border:1px solid color-mix(in srgb,var(--pbh-c) 30%,#fff);border-top:4px solid var(--pbh-c);border-radius:12px;
  background:color-mix(in srgb,var(--pbh-c) 5%,#fff);padding:var(--s3);min-height:110px;transition:box-shadow .15s ease,background-color .15s ease}
.pbh-dia.pbh-pend{--pbh-c:#8a94a3;border-style:dashed;border-top-style:solid}
.pbh-dia.pbh-sobre{box-shadow:0 0 0 3px color-mix(in srgb,var(--pbh-c) 35%,transparent);background:color-mix(in srgb,var(--pbh-c) 12%,#fff)}
.pbh-dia header{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}
.pbh-dia-n{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--pbh-c)}
.pbh-dia-c{font-size:11px;font-weight:700;background:var(--pbh-c);color:#fff;border-radius:999px;padding:0 7px;min-width:20px;text-align:center}
.pbh-dia header .hint{margin-left:auto;font-size:10.5px}
.pbh-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pbh-card{display:flex;align-items:flex-start;gap:var(--s3);background:#fff;border:1px solid var(--v-linea);border-left:3px solid var(--pbh-c);border-radius:10px;
  padding:7px 9px;box-shadow:0 1px 2px rgba(15,34,54,.06)}
.pbh-card[draggable="true"]{cursor:grab}
.pbh-card.pbh-drag{opacity:.45}
.pbh-card.pbh-disc,.pbh-card.pbh-conf{border-color:#f0cf86;background:#fffaf0}
.pbh-num{flex:none;width:28px;height:28px;border-radius:50%;background:var(--pbh-c);color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--pbh-c) 18%,transparent)}
.pbh-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pbh-txt b{font-size:13px;color:var(--v-tinta)}
.pbh-meta{display:flex;flex-wrap:wrap;gap:4px}
.pbh-cant,.pbh-info,.pbh-org{font-size:10.5px;border-radius:6px;padding:0 6px;border:1px solid var(--v-linea);background:#f6f8fb;color:var(--sy-texto-sec)}
.pbh-info{background:#eef4ff;border-color:#cfdcf5;color:#174a7e;font-weight:600}
.pbh-cant{font-weight:700}
.pbh-org.auto{background:#eef8f2;border-color:#cbe7d6;color:#1d5a32}
.pbh-org.man{background:#f4effc;border-color:#ddd0f3;color:#5a3a96}
.pbh-dtxt{font-size:11px;color:#7a4b00}
.pbh-ctl{display:flex;align-items:center;gap:3px;flex-wrap:wrap;justify-content:flex-end;max-width:52%}
.pbh-b{border:1px solid var(--v-linea);background:#fff;border-radius:6px;width:24px;height:24px;line-height:20px;padding:0;cursor:pointer;font-size:13px;color:var(--v-tinta)}
.pbh-b:hover{border-color:var(--pbh-c)}
.pbh-b:focus-visible,.pbh-dsel:focus-visible{outline:2px solid var(--sy-azul);outline-offset:1px}
.pbh-x{color:#8a1c1c}
.pbh-dsel{height:24px;font-size:11.5px;padding:0 4px;max-width:120px}
.pbh-vacio{font-size:12px;color:var(--sy-texto-ter);border:1px dashed var(--v-linea);border-radius:8px;padding:10px;text-align:center}
.pbh-nada{font-size:12.5px;color:var(--sy-texto-sec);background:#f6f8fb;border-radius:8px;padding:var(--s3) var(--s4)}
.pbh-nota{font-size:11.5px}
.pbh-flag{display:inline-block;font-size:10.5px;font-weight:800;color:#7a4b00;background:#fff4dc;border:1px solid #f0cf86;border-radius:6px;padding:1px 5px;margin-right:4px;white-space:nowrap}
.pbh-card-aviso{font-size:11.5px;font-weight:700;color:#7a4b00;background:#fff4dc;border-radius:6px;padding:2px 6px}
.ps-fs-bh{grid-column:1/-1}
.pbh-sec{display:flex;flex-direction:column;gap:var(--s3)}
.pbh-flag.pbh-ir{cursor:pointer;font-family:inherit}
.pbh-flag.pbh-ir:hover{border-color:#d9a43a}
.pbh-flag.pbh-ok{color:#174a7e;background:#eef4ff;border-color:#cfdcf5;font-weight:700}
/* ---------- v1.60 · planificación BH en la grilla y tarjetas ---------- */
.ps-c-procBH{min-width:300px;max-width:440px;white-space:normal}
.pbh-mini{display:flex;flex-direction:column;gap:4px}
.pbh-md{--pbh-c:#2f6fd6;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:3px 6px 3px 0;border-left:3px solid var(--pbh-c);padding-left:6px;
  background:color-mix(in srgb,var(--pbh-c) 6%,#fff);border-radius:0 8px 8px 0}
.pbh-md.pbh-mconf{border-left-style:dashed;opacity:.8}
.pbh-mdl{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--pbh-c);margin-right:2px;white-space:nowrap}
.pbh-mi{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--v-tinta);background:#fff;border:1px solid color-mix(in srgb,var(--pbh-c) 28%,#fff);
  border-radius:999px;padding:1px 8px 1px 1px;white-space:nowrap}
.pbh-mn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--pbh-c);color:#fff;font-size:10.5px;font-weight:800}
.pbh-mi small{font-size:10px;color:var(--sy-texto-sec);font-weight:700}
.pbh-mi .pbh-mh{color:#174a7e}
.pbh-mpend{font-size:11px;font-weight:700;color:#7a4b00;background:#fff4dc;border:1px solid #f0cf86;border-radius:6px;padding:1px 6px;align-self:flex-start}
.pbh-mok{font-size:11px;font-weight:700;color:#1d5a32}
.pbh-mini-nada{font-size:11.5px;color:var(--sy-texto-ter)}
.ps-card-bh{display:flex;flex-direction:column;gap:3px;margin-top:4px}
.ps-card-acc{display:inline-flex;gap:4px;margin-left:auto}
.rv-solops .btn{margin-left:6px}
/* ---------- v1.61 · logo oficial en el login ---------- */
.sy-logo-img{display:block;width:min(300px,78%);height:auto}
/* v1.62 · en la tabla de programaciones de Coordinación (celda angosta) la ficha se apila: etiqueta arriba, valor abajo */
.co-ps .ps-rv-l{display:block}
.co-ps .ps-rv-k{display:block;padding-top:0}
.co-ps .ps-rv-id{overflow-wrap:anywhere}
.co-ps .ps-rv-c{min-width:0;max-width:200px;padding:2px 5px;font-size:11px;border-left-width:2px}
.co-ps .ps-rv-id{font-size:10.5px}
.co-ps .ps-rv-c .est-badge{white-space:normal;text-align:left;font-size:9.5px;padding:1px 4px;letter-spacing:0}
/* ============================================================
   v1.63 · MÁS FILAS VISIBLES en Programación Semanal
   cabecera en una franja · aviso de demostración y cupos por tipo en acordeón · grilla con alto de ventana
   y encabezado fijo · densidad compacta/cómoda · pantalla completa. Solo presentación: datos y reglas sin cambios.
   ============================================================ */
.ps-wrap{gap:var(--s4);padding:var(--s5) var(--s6) var(--s6)}
.ps-head{padding:var(--s3) var(--s5);gap:var(--s3) var(--s5);row-gap:var(--s3)}
.ps-tit{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* el título ya está en la barra superior */
.ps-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ps-head .grow{flex:1 1 0}
.ps-rango{font-size:13px;margin-left:var(--s2)}
.ps-vistas .ps-yn-b{min-width:54px}
.ps-filtros{flex-wrap:nowrap}
.ps-buscar{flex:1 1 220px;min-width:170px}
.ps-filtros select{max-width:170px;min-width:0;flex:0 1 auto}
.ps-filtros>.btn{white-space:nowrap;flex:none}
@media (max-width:1180px){.ps-filtros{flex-wrap:wrap}}
/* acordeones */
details.ps-info{font-size:12px;color:var(--sy-texto-sec);line-height:1.5}
details.ps-info>summary,details.ps-dcupos>summary{list-style:none;display:flex;align-items:center;gap:var(--s3);cursor:pointer;min-width:0;border-radius:6px}
details.ps-info>summary::-webkit-details-marker,details.ps-dcupos>summary::-webkit-details-marker{display:none}
details.ps-info>summary:focus-visible,details.ps-dcupos>summary:focus-visible{box-shadow:var(--v-anillo);outline:0}
details.ps-info>summary::before,details.ps-dcupos>summary::before{content:'▸';font-size:10px;color:var(--sy-texto-ter);transition:transform .15s}
details.ps-info[open]>summary::before,details.ps-dcupos[open]>summary::before{transform:rotate(90deg)}
.ps-info-s{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ps-info-m{flex:none;font-size:11.5px;color:var(--br-700);font-weight:600}
.ps-info-b{padding:var(--s3) 0 0 var(--s5)}
/* franja del día: navegación, indicadores y acciones en una línea */
.ps-dcab{grid-template-columns:auto 1fr;grid-template-areas:"f k" "a a" "t t";padding:var(--s3) var(--s5);gap:var(--s3) var(--s6)}
.ps-dcab .ps-dtipos[hidden]{display:none}
.ps-dcupos-b{display:inline-flex;align-items:center;gap:var(--s3);border:1px solid var(--v-linea);background:#fbfcfd;border-radius:8px;padding:0 10px;min-height:28px;
  font:inherit;font-size:12px;cursor:pointer;color:var(--v-tinta)}
.ps-dcupos-b::before{content:'▸';font-size:10px;color:var(--sy-texto-ter);transition:transform .15s}
.ps-dcupos-b[aria-expanded="true"]::before{transform:rotate(90deg)}
.ps-dcupos-b:hover{border-color:var(--br-500)}
.ps-dcupos-b:focus-visible{box-shadow:var(--v-anillo);outline:0}
.ps-dcab-f{gap:var(--s4)}
.ps-dcab-t{flex-direction:row;align-items:baseline;gap:var(--s3);min-width:0}
.ps-dcab-t h3{font-size:17px}
.ps-kpis{gap:var(--s6)}
.ps-kpis div{flex-direction:row;align-items:baseline;gap:5px}
.ps-kpis b{font-size:17px}
.ps-dcupos-t{font-weight:650;color:var(--v-tinta)}
.ps-dcupos-r{color:var(--sy-texto-sec)}
.ps-dcupos-ll{color:var(--er-700)}
.ps-dacc{padding-top:var(--s3);gap:var(--s3);flex-wrap:wrap}
/* grilla: alto de la ventana con desplazamiento interno; el encabezado queda fijo */
.ps-grid-w{overflow:auto;overscroll-behavior:contain}
/* densidad compacta (por omisión) */
.ps-dens-compacta .ps-grid{font-size:12px}
.ps-dens-compacta .ps-grid th,.ps-dens-compacta .ps-grid td{padding:3px 8px;line-height:1.3}
.ps-dens-compacta .ps-grid thead th{padding-top:5px;padding-bottom:5px}
.ps-dens-compacta .ps-grid .btn.xs{padding-top:0;padding-bottom:0;min-height:20px;line-height:18px}
.ps-dens-compacta .ps-grid .ps-rv{gap:3px}
.ps-dens-compacta .ps-grid td.ps-c-reservas{min-width:430px}
.ps-dens-compacta .ps-grid .ps-rv-c{display:block;padding:2px 6px;font-size:11px;line-height:1.35;max-width:440px}
.ps-dens-compacta .ps-grid .ps-rv-id{white-space:nowrap;overflow-wrap:normal}
.ps-dens-compacta .ps-grid .ps-rv-t{margin-right:4px}
.ps-dens-compacta .ps-grid .ps-rv-h,.ps-dens-compacta .ps-grid .ps-rv-e,.ps-dens-compacta .ps-grid .ps-rv-l{display:inline}
.ps-dens-compacta .ps-grid .ps-rv-e .est-badge{font-size:9.5px;padding:0 4px;margin:0 4px;vertical-align:1px}
.ps-dens-compacta .ps-grid .ps-rv-h+.ps-rv-e+.ps-rv-l::before{content:'';display:block}
.ps-dens-compacta .ps-grid .ps-rv-l+.ps-rv-l::before{content:' · ';color:var(--sy-texto-ter)}
.ps-dens-compacta .ps-grid .ps-rv-k{display:none}
.ps-dens-compacta .ps-grid .ps-rv-l:last-child .ps-rv-k,.ps-dens-compacta .ps-grid .ps-rv-k.ag{display:inline;font-size:10px;margin-right:3px}
.ps-dens-compacta .ps-grid .ps-rv-l>span:last-child{flex:none}
/* compacta · Procedimientos BH: cada día en una línea (desplazamiento con la grilla), círculos más chicos */
.ps-dens-compacta .ps-grid td.ps-c-procBH{min-width:420px;max-width:none}
.ps-dens-compacta .ps-grid .pbh-mini{gap:2px}
.ps-dens-compacta .ps-grid .pbh-md{flex-wrap:nowrap;padding-top:1px;padding-bottom:1px;gap:3px}
.ps-dens-compacta .ps-grid .pbh-mi{font-size:10.5px;gap:3px;padding-top:0;padding-bottom:0;white-space:nowrap}
.ps-dens-compacta .ps-grid .pbh-mn{width:15px;height:15px;font-size:9.5px}
.ps-dens-compacta .ps-grid .pbh-mpend,.ps-dens-compacta .ps-grid .pbh-mok{font-size:10.5px;padding-top:0;padding-bottom:0}
/* compacta · textos largos en una línea; el texto completo queda en el título y en «Ver» */
.ps-dens-compacta .ps-grid .ps-esq-c,.ps-dens-compacta .ps-grid .ps-obs{display:block;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset}
.ps-dens-compacta .ps-grid td.ps-c-distintivos .ps-bdgs{flex-wrap:nowrap}
/* pantalla completa: la vista del día ocupa toda la ventana; los modales y paneles quedan por encima */
.ps-wrap.ps-amplia{position:fixed;inset:0;z-index:35;background:var(--sy-fondo,#f3f5f8);overflow:auto;padding:var(--s4) var(--s5)}
body:has(.ps-wrap.ps-amplia) .modal-bg{z-index:36}
body:has(.ps-wrap.ps-amplia) #aviso:not(:empty){position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:37;width:min(760px,92vw)}
.ps-amp-btn[aria-pressed="true"]{background:var(--sy-azul-claro);border-color:var(--br-200);color:var(--br-800)}
details.ps-info:not([open])>.ps-info-b{display:none}
/* ============================================================
   v1.64 · botones de acción con ícono · el nombre queda en el tooltip y para lectores de pantalla
   ============================================================ */
.ico-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.btn.btn-ico{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:28px;padding-left:6px;padding-right:6px}
.btn.btn-ico.xs{min-width:26px;padding-left:5px;padding-right:5px}
.btn-ico .ico-acc{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.btn.xs.btn-ico .ico-acc{width:14px;height:14px}
.btn-ico .ico-n{font-size:10px;font-weight:800;line-height:1;min-width:14px;padding:1px 3px;border-radius:999px;background:var(--br-100);color:var(--br-800)}
.btn-ico.ico-warn{background:#fff4dc;border-color:#f0cf86;color:#7a4b00}
.btn-ico.ico-warn .ico-n{background:#e3a008;color:#fff}
.btn-ico.danger .ico-acc{stroke:currentColor}
.ps-acc,.ps-card-acc,.co-ps-acc{gap:3px}
.ps-dens-compacta .ps-grid .btn.btn-ico.xs{min-height:22px;line-height:20px}
/* ============================================================
   v1.66 · ejecución de Procedimientos Internos BH · lista «En espera de procedimiento» · Estado de carga al CRF
   ============================================================ */
/* Estado de carga al CRF · texto + ícono + color (no depende solo del color) */
.crf{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:999px;padding:0 8px;line-height:19px;border:1px solid;white-space:nowrap}
.crf i{font-style:normal;font-weight:800}
.crf-pendiente{background:#fff4dc;color:#7a4b00;border-color:#f0cf86}
.crf-subido{background:#e3f4e8;color:#1d5a32;border-color:#9fd3ae}
.crf-noaplica{background:#eef1f5;color:#4c5b6d;border-color:#c3ced8;border-style:dashed}
.crf-sec .crf-sel .ps-yn-b{min-width:78px}
.crf-hist ul{margin:var(--s2) 0 0;padding-left:18px}
/* resumen de ejecución */
.ejb{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:2px 5px;font-size:11.5px;color:var(--v-tinta);white-space:normal}
.ejb b{font-size:12px}
.ejb em{font-style:normal;font-size:10.5px;color:var(--sy-texto-sec)}
.ejb-todo b{color:#1d5a32}.ejb-parcial b{color:#174a7e}.ejb-pend b{color:#7a4b00}
.ps-dens-compacta .ps-grid td.ps-c-ejecBH .ejb{flex-wrap:nowrap;white-space:nowrap}
.pbh-mi-ok{background:#e3f4e8!important;border-color:#9fd3ae!important}
.pbh-mck{font-style:normal;font-weight:800;color:#1d5a32;margin-right:1px}
.pbh-hecho{background:#f2faf4}
.pbh-ej{display:block;font-size:11px;font-weight:650;color:#1d5a32}
.pbh-tres{margin:2px 0 6px}
.co-bh{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;margin-top:4px}
/* lista «En espera de procedimiento» · sencilla: quién y que está esperando */
.esp-wrap{padding:var(--s5) var(--s6) var(--s6);display:flex;flex-direction:column;gap:var(--s4);min-width:0}
.esp-h{display:flex;align-items:flex-end;gap:var(--s4);flex-wrap:wrap}
.esp-h h3{margin:0 0 2px;font-size:17px;color:var(--v-tinta)}
.esp-n{font-size:13px;color:var(--sy-texto-sec)}.esp-n b{font-size:20px;color:var(--v-tinta)}
.esp-tbl{width:100%;background:#fff;border:1px solid var(--v-linea);border-radius:12px;overflow:hidden}
.esp-tbl td{vertical-align:middle;padding-top:10px;padding-bottom:10px}
.esp-fila{cursor:pointer}.esp-fila:hover td,.esp-fila:focus-visible td{background:var(--br-50)}
.esp-fila:focus-visible{outline:2px solid var(--sy-azul);outline-offset:-2px}
.esp-pac{display:block;font-size:14px;color:var(--v-tinta)}
.esp-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#174a7e;background:#e6f0fb;border:1px solid #c5dbf3;border-radius:999px;padding:1px 10px;white-space:nowrap}
.esp-chip::before{content:'';width:7px;height:7px;border-radius:50%;background:#2f6fb0;animation:espPulso 1.6s ease-in-out infinite}
@keyframes espPulso{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.esp-chip::before{animation:none}}
.esp-vacio{background:#fff;border:1px dashed var(--v-linea);border-radius:12px;padding:var(--s6)}
/* detalle clínico */
#modal.dcb-modal{width:min(1240px,96vw)}
.dcb{display:flex;flex-direction:column;gap:var(--s4)}
.dcb-h{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3) var(--s5);padding:var(--s4) var(--s5);background:#f7f9fb;border:1px solid var(--v-linea);border-radius:12px}
.dcb-pac b{display:block;font-size:17px;color:var(--v-tinta)}.dcb-pac span{font-size:12px;color:var(--sy-texto-sec)}
.dcb-prog{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dcb-bar{display:inline-block;width:140px;height:8px;border-radius:999px;background:#e6ebf1;overflow:hidden}
.dcb-bar i{display:block;height:100%;background:#2e8a52;border-radius:999px}
.dcb-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s5);align-items:start}
@media (max-width:1100px){.dcb-grid{grid-template-columns:minmax(0,1fr)}}
.dcb-proc{display:flex;flex-direction:column;gap:var(--s3);min-width:0}
.dcb-ph{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dcb-ph h4{margin:0;font-size:14px}
.dcb-dia{--pbh-c:#2f6fd6;border:1px solid var(--v-linea);border-top:3px solid var(--pbh-c);border-radius:10px;background:#fff}
.dcb-dia header{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--v-linea-suave)}
.dcb-dia ol{list-style:none;margin:0;padding:4px 6px;display:flex;flex-direction:column;gap:4px}
.dcb-it{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;padding:6px 8px;border-radius:8px;border:1px solid transparent}
.dcb-it.sel{background:#eef5fd;border-color:#c5dbf3}
.dcb-it.hecho{background:#f2faf4;border-color:#cfe9d7}
.dcb-lab{display:flex;align-items:center;gap:8px;flex:1 1 260px;min-width:0;cursor:pointer}
.dcb-lab input{width:18px;height:18px;accent-color:#2e8a52;flex:none}
.dcb-lab .pbh-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--pbh-c);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800}
.dcb-n{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;min-width:0}
.dcb-n b{font-size:13px;color:var(--v-tinta)}.dcb-n small{font-size:11px;color:var(--sy-texto-sec)}
.dcb-n .dcb-c{font-weight:700;color:#174a7e}
.dcb-it.hecho .dcb-n b{text-decoration:none;color:#1d5a32}
.dcb-est{font-size:11.5px;color:#7a4b00;background:#fff4dc;border-radius:6px;padding:1px 7px}
.dcb-est.sel{color:#174a7e;background:#e6f0fb}
.dcb-est.ok{color:#1d5a32;background:transparent;padding:0}
.dcb-est small{display:block;color:var(--sy-texto-sec)}
.dcb-bar-acc{position:sticky;bottom:0;display:flex;align-items:center;gap:var(--s3);padding:8px 10px;background:#fff;border:1px solid var(--v-linea);border-radius:10px;box-shadow:0 -2px 8px rgba(15,34,54,.06)}
.dcb-info{display:flex;flex-direction:column;gap:var(--s4);min-width:0}
.dcb-sec{border:1px solid var(--v-linea);border-radius:10px;padding:var(--s4);background:#fff;min-width:0}
.dcb-sec h4{margin:0 0 var(--s3);font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dcb-dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:var(--s3) 0 0;font-size:12.5px}
.dcb-dl dt{color:var(--sy-texto-sec)}.dcb-dl dd{margin:0;color:var(--v-tinta);overflow-wrap:anywhere}
.dcb-ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dcb-ol li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}
.dcb-sinpdf{font-size:11.5px;color:var(--sy-texto-sec);font-style:italic}
.dcb-msg{margin:0}
/* accesos en los cajones de Agenda Poli y Agenda Sillones */
.acc-bh-r{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
/* ============================================================ v1.67 ============================================================ */
/* Resultado de Atención (Agenda Poli) en Programación Semanal */
.ps-ra{display:flex;flex-direction:column;gap:3px;min-width:0}
.ps-ra-i{display:flex;align-items:baseline;gap:6px;font-size:11.5px;line-height:1.35;white-space:nowrap}
.ps-ra-i .pw-code{font-size:10.5px;color:var(--sy-texto-sec)}
.ps-ra-i b{color:var(--v-tinta);white-space:normal}
.ps-ra-i.sin i{font-size:11px}
.ps-ra-c{flex-direction:row;flex-wrap:wrap;gap:2px 12px}
.ps-card-ra{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 8px;margin-top:4px}
.ps-ra-det{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:2px 0 8px;padding:6px 10px;background:#f7f9fc;border:1px solid var(--v-linea);border-radius:8px}
.ps-ra-det .ps-ra{flex-direction:row;flex-wrap:wrap;gap:2px 14px}
/* RUT en el Mapa de Sillones (solo sillones con paciente) */
.sillon .rut-mapa{font-size:var(--card-sec,11px);line-height:1.25;color:var(--n600,#4b5563);font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tarj-espera .te-rut{font-size:var(--card-sec,11px);color:var(--n600,#4b5563);font-weight:600;margin-top:1px}
/* buscador de «En espera de procedimiento» */
.esp-busq{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.esp-q{position:relative;flex:1 1 420px;max-width:760px;display:flex;align-items:center}
.esp-q svg{position:absolute;left:11px;width:16px;height:16px;fill:none;stroke:var(--sy-texto-sec);stroke-width:2;stroke-linecap:round;pointer-events:none}
.esp-q input{width:100%;height:36px;padding:0 12px 0 34px;border:1px solid var(--v-linea);border-radius:10px;background:#fff;font:inherit;font-size:13.5px}
.esp-q input:focus{outline:2px solid var(--sy-azul);outline-offset:0;border-color:var(--sy-azul)}
.esp-ref{display:block;font-size:11px}
/* comentario de la ejecución */
.dcb-com{flex:1 1 100%;display:flex;flex-direction:column;gap:2px;margin:2px 0 0 30px;font-size:11.5px;color:var(--sy-texto-sec)}
.dcb-com textarea{width:100%;min-height:38px;resize:vertical;font:inherit;font-size:12.5px;padding:5px 8px;border:1px solid #c5dbf3;border-radius:6px;background:#fff;color:var(--v-tinta)}
.dcb-com-v{flex:1 1 100%;margin-left:30px}
.ejb-com{display:block;font-size:11.5px;color:var(--v-tinta);white-space:normal;overflow-wrap:anywhere}
.ejb-com b{font-weight:700;color:#1d5a32}
.ejb-com.sin{color:var(--sy-texto-sec);font-style:italic}
.pbh-card .ejb-com{font-size:11px}
/* finalización de procedimientos */
.dcb-fin{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:10px;padding:8px 10px;border:1px dashed var(--v-linea);border-radius:8px;background:#fafbfd}
.dcb-fin.hecho{border-style:solid;background:#f4f6f9}
.dcb-fin-conf{margin-top:10px}
.dcb-fin-conf .dcb-fin-sel{margin-top:6px;font-weight:700;color:#7a1f1f}
.dcb-fin-acc{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.ejb-cierre{display:inline-block;font-size:11.5px;font-weight:600;color:#3d4756;background:#eef1f5;border:1px solid #d5dbe3;border-radius:6px;padding:1px 7px;white-space:normal}
.chip.ejb-fin{background:#eef1f5;color:#3d4756;border:1px solid #d5dbe3}
/* bloqueo del orden con la ejecución iniciada */
.pbh-bloq{margin:6px 0}
.pbh-flag.pbh-lock{color:#3d4756;background:#eef1f5;border-color:#d5dbe3}
/* investigación desde el maestro en reservas manuales */
.inv-fila .inv-m-full{grid-column:1/-1}
.inv-m .derivado{min-height:32px}
.inv-m-av.msg{margin:0}
/* orden de laboratorio · validación y PDF */
.ol-val{display:inline-block;font-size:11.5px;color:#1d5a32;background:#f2faf4;border:1px solid #cfe9d7;border-radius:6px;padding:1px 7px;white-space:normal}
.ol-prev{font-size:12px;color:var(--sy-texto-sec)}
.ol-acc{display:inline-flex;flex-wrap:wrap;gap:4px}
.dcb-ol li{flex-wrap:wrap}
/* ============================================================ v1.70 ============================================================ */
/* distintivos · maestro único (color del maestro) */
.dchip{--dc:#4b6b8a;display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:999px;padding:0 9px;line-height:19px;white-space:nowrap;
  border:1px solid color-mix(in srgb,var(--dc) 45%,#fff);background:color-mix(in srgb,var(--dc) 11%,#fff);color:var(--dc)}
.ps-dsug{font-size:10px;font-weight:600;opacity:.8;margin-left:4px}
.dist-prots{display:flex;flex-wrap:wrap;gap:4px 14px}
.dist-res .ps-bdgs,.dcb-dist{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dcb-dist{margin:6px 0 2px}
.co-dist{margin-top:3px;flex-wrap:wrap}
th.th-2l{white-space:nowrap;line-height:1.2}
.dchip.dchip-c{font-size:10.5px;padding:0 7px;line-height:17px}
/* mensaje para médico */
.msgm{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--sy-texto-sec);white-space:nowrap}
.msgm.on{color:#7a3e00;background:#fff3d6;border:1px solid #f0c36a;border-radius:999px;padding:0 8px;line-height:19px}
.msgm.on i{font-style:normal}
.msgm-txt{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13.5px;line-height:1.5;color:var(--v-tinta);background:#fffaf0;border:1px solid #f0d9a8;border-left:4px solid #d99a1e;border-radius:8px;padding:10px 12px;margin:6px 0}
.ps-fs-msg .co-ta{width:100%}
.ps-msg-pie{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-top:3px}
.ps-msg-n{font-size:11.5px;color:var(--sy-texto-sec);white-space:nowrap}
.dcb-msgm{background:#fffdf7;border:1px solid #f0d9a8;border-radius:10px;padding:8px 12px;margin:8px 0}
.dcb-msgm h4{margin:0 0 2px;font-size:13.5px;color:#7a3e00;display:flex;align-items:center;gap:6px}
.dcb-msgm h4 i{font-style:normal}
/* agendamiento desde Programación Semanal · heredado vs propio */
.rv-heredado{position:sticky;top:0;z-index:3;box-shadow:0 2px 6px rgba(15,34,54,.06);border:1px solid #cfd8e3;background:#f5f7fa;border-radius:10px;padding:5px 10px 6px;margin-bottom:8px}
.rv-her-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;margin-bottom:3px;font-size:12.5px}
.rv-her-h b{color:#2c3a47}
.rv-lock{font-size:13px}
.rv-heredado .cc-prog{position:static;box-shadow:none;background:transparent;border:0;padding:0}
.rv-propios>.rv-sec-h b{color:var(--sy-azul)}
/* ===== Área médica ===== */
.amed{display:flex;flex-direction:column;gap:10px;padding-bottom:16px}
.amed .am-head{padding:10px 16px 8px}
.amed .am-linea{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
.amed .am-ags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.amed .am-ags .f{margin:0;white-space:nowrap}
.amed .am-nav{display:flex;gap:4px}
.amed .am-fecha input{height:30px}
.amed .am-rot{font-size:14px;font-weight:700;color:var(--v-tinta)}
.am-leyenda{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:0 16px}
.am-lg{font-size:11.5px;font-weight:700;border-radius:6px;padding:1px 9px;border:1px solid}
.am-lg-p{background:#fff4c2;border-color:#e6b800;color:#6b5200}
.am-lg-a{background:#dcebfc;border-color:#5b9bdc;color:#0f4c8a}
.am-jornada{padding:0 16px}
.am-jh{display:flex;align-items:baseline;gap:10px;margin:4px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--v-linea)}
.am-jh span:first-child{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#4b5b6e}
.amed .am-lista{padding:0;gap:6px}
.amed .bloque{grid-template-columns:62px 1fr;gap:12px;padding:8px 12px;border-radius:10px}
.amed .bq-hora{padding-right:10px}
.amed .bq-hora .num{font-size:14px}
.amed .bloque.am-libre,.amed .bloque.am-cont{padding:5px 12px}
.amed .am-libre .bq-cuerpo{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;color:var(--sy-texto-sec);font-size:12.5px}
.amed .am-cont .cont-txt{font-size:12.5px;color:#3d5a80}
.amed .am-card{padding:10px 14px}
.am-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;align-items:start}
.am-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.am-nom{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.am-nom strong{font-size:15.5px;color:#13253f}
.am-dist{display:inline-flex;flex-wrap:wrap;gap:4px}
.am-pac{font-size:12.5px;color:#4b5b6e}
.am-clin{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:13px}
.am-inv{font-size:12px;color:#3d5a80;background:#eef3fa;border-radius:6px;padding:0 7px}
.am-sec{font-size:12px;color:#5b6675}
.am-lado{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:220px}
.am-tiempos{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.am-t{display:inline-flex;flex-direction:column;align-items:flex-end;font-size:10.5px;line-height:1.15;color:#5b6675;background:#f3f5f8;border-radius:6px;padding:2px 8px}
.am-t i{font-style:normal;text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.am-t b{font-size:13.5px;color:#13253f}
.am-tp{background:#fff4c2;color:#6b5200}.am-ta{background:#dcebfc;color:#0f4c8a}
.am-acc{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}
.am-inds{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.am-ind{font-family:inherit;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 10px;border:1px solid #cfd8e3;background:#fff;color:#2c3a47;cursor:pointer}
.am-ind:hover{border-color:var(--sy-azul)}
.am-ind.am-msg{background:#fff3d6;border-color:#e0a520;color:#7a3e00;font-weight:800;box-shadow:0 0 0 2px #fff3d6}
.am-ind.am-bh.am-todo{border-color:#9fd3ae;background:#f2faf4;color:#1d5a32}
.am-ind.am-bh.am-parcial{border-color:#a9c7ee;background:#eef5fd;color:#174a7e}
.am-ind.am-lab.am-nada{color:#7b8794;border-style:dashed}
.amed .bloque.atencion.est-presentada{background:#fff8d6;border-color:#f0d36b;border-left:6px solid #e6b800}
.amed .bloque.atencion.est-asistida{background:#e3effd;border-color:#a9c9f0;border-left:6px solid #2f7bd0}
.amed .bloque.atencion.est-atencion{border-left:6px solid #1a6aa8}
.amed .bloque.atencion.est-final{background:#fafbfc;border-left-color:#93a0ab}
.amed .bloque.llamando-act{border-color:var(--er-600);box-shadow:0 0 0 2px var(--er-100)}
@media (max-width:1400px){.am-lado{min-width:190px}.am-nom strong{font-size:15px}}
/* ===== Prefacturación ===== */
.pf{display:flex;flex-direction:column;gap:12px}
.pf-h{display:flex;align-items:flex-start;gap:10px}
.pf-h h4{margin:0 0 2px;font-size:16px;color:var(--v-tinta)}
.pf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.pf-kpi{background:#fff;border:1px solid var(--v-linea);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;gap:2px}
.pf-kpi span{font-size:11px;color:var(--sy-texto-sec)}.pf-kpi b{font-size:20px;color:var(--v-tinta)}
.pf-kpi-m{grid-column:span 2}.pf-kpi-m b{font-size:15px}
.pf-kpi.k-espera{border-top:3px solid #c99a00}.pf-kpi.k-notificada{border-top:3px solid #2f7bd0}.pf-kpi.k-rechazada{border-top:3px solid #c0392b}
.pf-kpi.k-facturada{border-top:3px solid #1d7a43}.pf-kpi.k-anulada{border-top:3px solid #7b8794}
.pf-pend .btn{margin:2px 4px 0 0}
.pf-filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
.pf-filtros label{display:flex;flex-direction:column;font-size:11px;color:var(--sy-texto-sec);gap:2px}
.pf-est{display:inline-block;font-size:11.5px;font-weight:700;border-radius:999px;padding:1px 10px;border:1px solid;white-space:nowrap}
.pf-espera{background:#fff6d8;border-color:#e6c25a;color:#6b5200}.pf-notificada{background:#e6f0fc;border-color:#9cc0ec;color:#174a7e}
.pf-rechazada{background:#fdecea;border-color:#efa9a1;color:#8c2318}.pf-facturada{background:#e9f7ee;border-color:#9fd3ae;color:#1d5a32}
.pf-anulada{background:#f1f3f5;border-color:#c5ccd3;color:#4b5563;text-decoration:line-through}
.pf-fila.pf-f-rechazada td,.pf-fila.pf-f-anulada td{background:#fbfbfc;color:#5b6675}
.pfv{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:1px 7px;border:1px solid;white-space:nowrap}
.pfv-sin{background:#fff;border-color:#cfd8e3;color:#4b5b6e}.pfv-vigente{background:#fff6d8;border-color:#e6c25a;color:#6b5200}
.pfv-facturada{background:#e9f7ee;border-color:#9fd3ae;color:#1d5a32}.pfv-antecedente{background:#fdf0ee;border-color:#efb8b0;color:#8c2318}
.pf-mapa{background:#fff;border:1px solid var(--v-linea);border-radius:10px;padding:10px 12px}
.pf-mapa-h{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.pf-mapa-p{display:grid;grid-template-columns:220px 1fr;gap:10px;padding:5px 0;border-top:1px solid #eef1f5}
.pf-mapa-n{font-weight:700;font-size:12.5px;color:var(--v-tinta);display:flex;flex-direction:column}
.pf-mapa-n small{font-weight:500;color:var(--sy-texto-sec)}
.pf-mapa-v{display:flex;flex-wrap:wrap;gap:4px}
.pfm{display:inline-flex;flex-direction:column;align-items:center;font-size:11.5px;font-weight:700;border-radius:6px;padding:1px 7px;border:1px solid;min-width:56px}
.pfm i{font-style:normal;font-weight:500;font-size:9.5px}
.pfm-sin{background:#fff;border-color:#cfd8e3;color:#4b5b6e}.pfm-vigente{background:#fff6d8;border-color:#e6c25a;color:#6b5200}
.pfm-facturada{background:#e9f7ee;border-color:#9fd3ae;color:#1d5a32}.pfm-antecedente{background:#fdf0ee;border-color:#efb8b0;color:#8c2318}
.pf-precio-v{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}
#modal.pf-modal{width:min(1320px,97vw)}
.pfn-top{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px}
.pfn-top label{display:flex;flex-direction:column;font-size:11px;color:var(--sy-texto-sec);gap:2px}
.pfn-q input{min-width:280px}
.pfn-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
.pfn-lista{display:flex;flex-direction:column;gap:10px;min-width:0}
.pfn-pac{background:#fff;border:1px solid var(--v-linea);border-radius:10px;padding:8px 10px}
.pfn-pac>header{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:4px}
.pfn-tbl td{vertical-align:middle}
.pfn-v.on td{background:#eef5fd}.pfn-v.bloq td{color:#7b8794}
.pfn-crf{font-size:11.5px}.pfn-crf.dist{color:#8c4a00;font-weight:700}
.pfn-sinp{font-size:11.5px;color:#8c4a00;font-style:italic}
.pfn-det{display:flex;flex-direction:column;gap:5px;font-size:12.5px;background:#f7f9fc;border-radius:8px;padding:8px 10px}
.pfn-dg{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.pfn-dg .pw-kl{min-width:150px}
.pfn-res{display:block}.pfn-res .rv-wrap{margin-top:4px}
.pfn-prog,.pfn-ol{display:inline-flex;align-items:center;gap:4px;margin-right:10px}
.pfn-sv{margin-top:8px;border-top:1px dashed var(--v-linea);padding-top:6px;font-size:12.5px}
.pfn-sv-l{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0}
.pfn-sel{position:sticky;top:0;background:#fff;border:1px solid var(--v-linea);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.pfn-sel h4{margin:0;display:flex;align-items:center;gap:6px}
.pfn-imp{display:inline-flex;align-items:center;gap:4px}
.pfn-imp input{width:92px;text-align:right}
.pfn-mon{font-size:11.5px;font-weight:700;color:#4b5b6e}
.pfn-aj{color:#8c4a00}
.pfn-tl{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--v-linea);padding-top:6px}
.pfn-tr{display:flex;justify-content:space-between;font-size:14px}.pfn-tr b{font-size:16px;color:var(--v-tinta)}
.pfd{display:flex;flex-direction:column;gap:10px}
.pfd-h{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.pfd-tot{display:flex;gap:14px}.pfd-tot div{display:flex;flex-direction:column;align-items:flex-end}.pfd-tot span{font-size:11px;color:var(--sy-texto-sec)}.pfd-tot b{font-size:17px;color:var(--v-tinta)}
.pfd-doc{display:flex;gap:6px}
.pfd-fac{display:flex;flex-wrap:wrap;gap:6px 18px;background:#f2faf4;border:1px solid #cfe9d7;border-radius:10px;padding:8px 12px}
.pfd-fac span{display:flex;flex-direction:column}.pfd-fac i{font-style:normal;font-size:11px;color:var(--sy-texto-sec)}
.pfd-pac{background:#fff;border:1px solid var(--v-linea);border-radius:10px;padding:8px 10px}
.pfd-pac>header{display:flex;gap:10px;align-items:baseline;margin-bottom:4px}
.pfd-sub{text-align:right;font-weight:700;font-size:12.5px;margin-top:4px}
.pfd-acc{display:flex;flex-wrap:wrap;gap:6px}
.pfd-form{background:#f7f9fc;border:1px solid var(--v-linea);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.pfd-fa{display:flex;justify-content:flex-end;gap:6px}
.amed .am-ags .f{display:inline;font-size:12px;font-weight:600;color:#4b5b6e}
.amed .am-ags .multi{display:inline-flex}
.amed .am-head .linea1{margin:0}
.amed .am-ags.campo{flex-direction:row;align-items:center}
.pfn-grid{grid-template-columns:minmax(0,1fr) 390px}.pfn-stbl td:first-child{min-width:130px}

/* ===================== v1.71 · refinamiento visual ===================== */
/* ---- Visor · paleta clara ---- */
.vs-publico{background:#f4f7fb;color:#13253f;border:1px solid #dbe3ec;border-radius:14px;padding:22px 28px;
  display:grid;grid-template-rows:auto 1fr auto;gap:18px;min-height:380px}
.vs-head{display:flex;align-items:center;gap:18px;border-bottom:2px solid #1a6aa8;padding-bottom:12px}
.vs-marca img{height:34px;width:auto;display:block}
.vs-marca{font-weight:800;color:#1a6aa8}
.vs-canal-p{font-size:15px;color:#4b5b6e;letter-spacing:.02em}
.vs-canal-p b{color:#13253f}
.vs-hora{margin-left:auto;font-size:22px;font-weight:700;color:#13253f}
.vs-principal{display:flex;align-items:center;justify-content:center;text-align:center;min-height:200px}
.vs-anuncio{display:grid;gap:14px;background:#fff;border:1px solid #cfdcea;border-top:8px solid #1a6aa8;border-radius:18px;
  padding:clamp(24px,4vw,56px) clamp(28px,6vw,96px);box-shadow:0 18px 40px rgba(19,37,63,.10);min-width:min(80%,980px)}
.vs-llama{font-size:clamp(14px,1.4vw,20px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#1a6aa8}
.vs-nombre{font-size:clamp(36px,6vw,84px);font-weight:800;letter-spacing:-.01em;line-height:1.05;color:#13253f}
.vs-destino{justify-self:center;font-size:clamp(26px,4.2vw,56px);font-weight:700;color:#fff;background:#1a6aa8;border-radius:14px;
  padding:6px 28px;letter-spacing:.04em}
.vs-lista{border-top:1px solid #dbe3ec;padding-top:12px}
.vs-lista ul,.vs-lista-c{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.vs-lista-min ul{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.vl-it{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:16px;background:#fff;border:1px solid #dbe3ec;
  border-left:6px solid #9fb3c8;border-radius:10px;padding:10px 16px}
.vl-it.vl-activo{border-left-color:#1a6aa8;background:#eef5fd}
.vl-nom{font-size:clamp(16px,1.8vw,26px);font-weight:700;color:#13253f;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vl-dest{font-size:clamp(15px,1.6vw,23px);font-weight:700;color:#1a6aa8;font-variant-numeric:tabular-nums}
.vl-est{font-size:clamp(12px,1.1vw,15px);color:#5b6675;font-variant-numeric:tabular-nums;white-space:nowrap}
.vl-activo .vl-est{color:#1a6aa8;font-weight:700}
.vs-compacto{display:flex;flex-direction:column;gap:12px;min-height:0}
.vs-lista-t{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#4b5b6e;margin:0}
.vs-lista-c .vl-it{padding:14px 20px}
.vs-lista-vacia{color:#7b8794;font-size:18px;padding:28px 0;text-align:center}
.visor-full.on{background:#f4f7fb}
.visor-full .vs-publico{height:100vh;min-height:100vh;border-radius:0;border:0;padding:clamp(20px,3.5vw,56px)}
.vs-salir{background:#fff;border:1px solid #cfdcea;color:#5b6675}
.vs-salir:hover{background:#eef5fd;color:#13253f}
.vs-cfg-grid{margin-top:16px}
.vs-cfg-acc{margin-top:18px}
.vs-log{margin-top:16px}
.vs-log summary{cursor:pointer}

/* ---- affordance: cursor de mano y sin selección de texto en navegación y elementos clicables ---- */
#nav li,#nav li *,.tab,.tabs .tab,[role="tab"],button,.btn,summary,[data-mod],[data-co],[data-ps],[data-psd],[data-pw],[data-pm],[data-mtr],
[data-amed],[data-pf],[data-pfa],[data-pfdet],[data-cacc],[data-histpac],[data-abrir],[data-abrir-poli],[data-dia],[data-bloque],
.pg-btn,.vx-btn,.vx-fijo,.co-fila,label.mi-chk,.ps-dia,.am-ind,select,input[type="checkbox"],input[type="radio"],input[type="date"]{cursor:pointer}
#nav li,.tab,[role="tab"],button,.btn,summary,.am-ind,.pg-btn,.vx-btn,.vx-fijo,[data-mod]{-webkit-user-select:none;user-select:none}
button:disabled,.btn:disabled,[disabled]{cursor:not-allowed}
#nav li:not(.deshabilitado):hover{filter:brightness(1.08)}

/* ---- paginación ---- */
.pg{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 2px 2px;font-size:12.5px;color:#4b5b6e}
.pg .grow{flex:1}
.pg-tam{display:inline-flex;align-items:center;gap:6px}
.pg-tam select{height:28px;padding:0 6px}
.pg-nav{display:inline-flex;align-items:center;gap:4px}
.pg-btn{min-width:30px;height:28px;border:1px solid #cfd8e3;background:#fff;border-radius:7px;font:inherit;color:#2c3a47;padding:0 8px}
.pg-btn.on{background:#1a6aa8;border-color:#1a6aa8;color:#fff;font-weight:700}
.pg-btn:disabled{opacity:.45}
.pg-gap{padding:0 2px;color:#93a0ab}

/* ---- Programación Semanal · buscador inmediatamente sobre la grilla ---- */
.ps-buscar-grilla{flex:1 1 280px;max-width:420px;min-width:220px}

/* ---- Mensaje para médico · vista focalizada ---- */
.msgm-solo{display:flex;flex-direction:column;gap:10px}
.msgm-solo .msgm-txt{font-size:15px;line-height:1.5;white-space:pre-wrap;background:#fffaf0;border:1px solid #f0d9a8;border-left:5px solid #e0a520;border-radius:10px;padding:14px 16px;color:#2c2410}
.msgm-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:12.5px;color:#4b5b6e}
.msgm-meta b{color:#13253f;font-weight:600}
.msgm.on.msgm-btn{cursor:pointer;border:0;font:inherit}
.msgm.on.msgm-btn:hover{filter:brightness(.96)}

/* ---- Área médica · más aire, jerarquía y acciones abajo ---- */
.amed{--am-gap:10px}
.amed .am-head{padding-bottom:10px}
.amed .am-lista{gap:var(--am-gap)}
.amed .bloque{grid-template-columns:66px minmax(0,1fr);gap:0;padding:0;border-radius:12px;overflow:hidden}
.amed .bq-hora{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:14px 6px;border-right:1px solid var(--v-linea,#e3e8ee);background:#fafbfd}
.amed .bq-hora .num{font-size:16px;font-weight:800;color:#13253f}
.amed .bq-hora .dur{font-size:11px;color:#7b8794}
.amed .bq-cuerpo{padding:14px 18px}
.amed .am-card .am-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main lado" "acc acc";gap:10px 24px}
.amed .am-main{grid-area:main;gap:6px}
.amed .am-lado{grid-area:lado;min-width:200px;gap:8px}
.amed .am-acc{grid-area:acc;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;border-top:1px solid #edf1f5;padding-top:10px;margin-top:2px}
.amed .am-nom strong{font-size:17px}
.amed .am-pac{font-size:13px}
.amed .am-clin{font-size:13.5px}
.amed .am-sec{font-size:12.5px;color:#6b7785}
.amed .am-inds{margin-top:6px}
.amed .am-t{padding:4px 10px;border-radius:8px}
.amed .am-t b{font-size:16px}
.amed .bloque.atencion.est-presentada{border-left:0;box-shadow:inset 6px 0 0 #e6b800}
.amed .bloque.atencion.est-presentada .bq-hora{background:#fff1b8}
.amed .bloque.atencion.est-asistida{border-left:0;box-shadow:inset 6px 0 0 #2f7bd0}
.amed .bloque.atencion.est-asistida .bq-hora{background:#cfe2f9}
.amed .am-est-txt{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.amed .am-libre-run{grid-template-columns:66px minmax(0,1fr)}
.amed .am-libre-run .bq-hora{padding:8px 6px;background:transparent}
.amed .am-libre-run .bq-hora .num{font-size:13px;font-weight:700;color:#7b8794}
.amed .am-libre-run .bq-cuerpo{padding:8px 18px;display:flex;align-items:center;gap:10px;color:#7b8794;font-size:12.5px}
.amed .am-jornada{padding:4px 16px 8px}
.am-leyenda{padding:2px 16px 6px}
@media (min-width:1600px){.amed .am-main{flex-direction:column}.amed .am-lado{min-width:240px}}
@media (max-width:1400px){.amed .am-lado{min-width:170px}}
/* detalle BH: quién, cuándo y comentario más legibles */
.dcb .dcb-it.hecho .dcb-est{display:inline-flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
/* ---- rótulos internos de demostración: no se muestran en la interfaz (el dato sigue en el registro) ---- */
.co-fict,.chip.sim,.co-sim-nota,.co-ref,.ps-demo-m,.ps-info{display:none!important}
/* ---- Prefacturación · criterio CRF de la visita ---- */
.pfn-crf{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.pfn-crf-k{font-size:11px;font-weight:800;letter-spacing:.02em;border-radius:6px;padding:1px 8px;border:1px solid}
.pfn-crf-k.ok{background:#eaf7ee;border-color:#9fd3ae;color:#1d5a32}
.pfn-crf-k.no{background:#f6f7f9;border-color:#cfd8e3;color:#5b6675}
.pfn-crf-l{display:flex;flex-direction:column;gap:2px}
.pfn-crf-i{font-size:11.5px;white-space:nowrap;color:#4b5b6e}
.pfn-crf-i.crf-subido{color:#1d5a32;font-weight:600}
.pfn-crf-i .pw-code{font-size:10.5px}

/* ===================== v1.72 · nueva dirección visual: luminosa, con profundidad ===================== */
:root{--s72-fondo:#f3f5f8;--s72-blanco:#fff;--s72-borde:#dfe5ec;--s72-borde-f:#cbd5e0;--s72-tinta:#13253f;--s72-sec:#4b5b6e;--s72-ter:#7b8794;
  --s72-azul:#1a6aa8;--s72-azul-osc:#14507d;--s72-azul-suave:#e8f1fa;--s72-azul-tenue:#f3f8fd;
  --s72-sombra:0 1px 2px rgba(19,37,63,.05),0 4px 14px -6px rgba(19,37,63,.10);
  --s72-sombra-md:0 2px 4px rgba(19,37,63,.06),0 12px 28px -12px rgba(19,37,63,.16);
  --s72-r:12px}
body,.main{background:var(--s72-fondo)}
/* ---- menú lateral claro ---- */
.sidebar{background:var(--s72-blanco);color:var(--s72-sec);border-right:1px solid var(--s72-borde);box-shadow:1px 0 0 rgba(19,37,63,.02)}
.sede-head{border-bottom-color:var(--s72-borde);padding-bottom:14px}
.sede-head .lbl{color:var(--s72-ter)}
.sede-head .nm{color:var(--s72-tinta)}
.btn-menu{border-color:var(--s72-borde-f);color:var(--s72-sec);background:#fff}
.btn-menu:hover{background:var(--s72-azul-suave);border-color:var(--s72-azul);color:var(--s72-azul-osc)}
.btn-menu:focus-visible{outline:2px solid var(--s72-azul);outline-offset:2px}
.sidebar .nav{padding:0 10px}
.sidebar .nav li{color:var(--s72-sec);border-radius:9px;margin:2px 0;padding:8px 12px;font-weight:500}
.sidebar .nav li .mi{color:var(--s72-ter);opacity:1}
.sidebar .nav li:hover{background:#f1f5f9;color:var(--s72-tinta)}
.sidebar .nav li:hover .mi{color:var(--s72-azul)}
.sidebar .nav li.on{background:var(--s72-azul-suave);color:var(--s72-azul-osc);font-weight:600;box-shadow:inset 3px 0 0 var(--s72-azul)}
.sidebar .nav li.on .mi{color:var(--s72-azul)}
.sidebar .nav li.on::before,.sidebar .nav li.on::after{display:none}
.sidebar .nav li.off,.sidebar .nav li.off:hover{background:transparent;color:var(--s72-ter)}
.sidebar .tag-off{color:var(--s72-ter);border-color:var(--s72-borde-f)}
.sidebar .grp{color:var(--s72-ter)}
.app.menu-off .sidebar .nav{padding:0 8px}
.app.menu-off .sidebar .nav li{border-radius:9px}
/* ---- cabecera de módulo y lienzo ---- */
.sede-band{background:var(--s72-azul);height:3px}
.mod-head{background:#fff;border-bottom:1px solid var(--s72-borde)}
.mod-head h2{color:var(--s72-tinta)}
.tabs{background:#fff;border-bottom:1px solid var(--s72-borde)}
/* .wrap conserva el padding base (geometría de Agendamiento / Sillones intacta) */
.card{background:#fff;border:1px solid var(--s72-borde);border-radius:var(--s72-r);box-shadow:var(--s72-sombra)}
.modal{border-radius:14px;box-shadow:var(--s72-sombra-md),0 30px 60px -20px rgba(8,18,30,.35)}
.fieldset{background:#fff;border:1px solid var(--s72-borde);border-radius:var(--s72-r);box-shadow:var(--s72-sombra)}
.fieldset .lg{color:var(--s72-tinta);font-weight:700}
.btn.primary{box-shadow:0 1px 2px rgba(19,37,63,.18)}

/* ===================== acceso ===================== */
.login{min-height:100vh;padding:0;background:var(--s72-fondo);display:block}
.login-caja{width:100%;max-width:none;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);min-height:100vh;
  background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.lg-foto{position:relative;background-size:cover;background-position:center;min-height:100vh}
.lg-foto::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,42,68,.08) 0,rgba(13,42,68,.10) 55%,rgba(13,42,68,.62) 100%)}
.lg-foto-cap{position:absolute;left:40px;bottom:36px;z-index:1;color:#fff;display:flex;flex-direction:column;gap:2px;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.lg-foto-t{font-size:22px;font-weight:700;letter-spacing:-.01em}
.lg-foto-s{font-size:14px;opacity:.92}
.lg-panel{display:flex;align-items:center;justify-content:center;padding:32px 48px;background:var(--s72-fondo);overflow:auto;max-height:100vh}
.lg-card{width:min(440px,100%);background:#fff;border:1px solid var(--s72-borde);border-radius:18px;padding:40px 40px 28px;
  box-shadow:0 30px 60px -28px rgba(13,42,68,.30),0 2px 8px rgba(13,42,68,.06);display:flex;flex-direction:column;align-items:stretch}
.lg-logo{height:46px;width:auto;align-self:flex-start;margin-bottom:26px}
.lg-prod{font-size:30px;font-weight:800;letter-spacing:.12em;color:var(--s72-tinta);margin:0 0 4px;line-height:1.1}
.lg-sub{font-size:14px;color:var(--s72-sec);margin:0 0 28px}
.lg-btn{width:100%;min-height:50px;border:0;border-radius:10px;background:var(--s72-azul);color:#fff;font:inherit;font-size:16px;font-weight:700;letter-spacing:.01em;
  box-shadow:0 10px 20px -10px rgba(26,106,168,.7),0 1px 2px rgba(19,37,63,.18);transition:background-color .15s ease,transform .15s ease}
.lg-btn:hover{background:var(--s72-azul-osc)}
.lg-btn:active{transform:translateY(1px)}
.lg-btn:focus-visible{outline:3px solid rgba(26,106,168,.35);outline-offset:2px}
.lg-mas{margin-top:22px;border-top:1px solid var(--s72-borde);padding-top:12px}
.lg-mas summary{list-style:none;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--s72-ter);display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}
.lg-mas summary::-webkit-details-marker{display:none}
.lg-mas summary::before{content:'';width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);transition:transform .15s ease;margin-left:2px}
.lg-mas[open] summary::before{transform:rotate(45deg)}
.lg-mas summary:hover{color:var(--s72-azul-osc)}
.lg-cred{margin-top:12px}
.lg-cred .sy-campo{margin-bottom:10px}
.lg-cred .sy-btn-local{min-height:40px}
.lg-cuentas-w{margin-top:12px;max-height:168px;overflow:auto;border:1px solid var(--s72-borde);border-radius:8px}
.lg-cuentas{margin:0;font-size:11.5px;width:100%;table-layout:fixed}
.lg-cuentas col.c1{width:40%}.lg-cuentas col.c2{width:37%}.lg-cuentas col.c3{width:23%}
.lg-cuentas th{font-size:10.5px;position:sticky;top:0;background:#f6f8fa;z-index:1}
.lg-cuentas td,.lg-cuentas th{padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-cta{cursor:pointer}
.lg-cta:hover td{background:var(--s72-azul-tenue)}
.lg-pie{margin-top:22px;font-size:11px;color:var(--s72-ter);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.lg-card .sy-error{margin:0 0 14px}
@media (max-width:1100px){.login-caja{grid-template-columns:1fr}.lg-foto{min-height:34vh}}

/* ===================== Coordinación · niveles, tarjetas y backlogs ===================== */
.co-wrap{gap:0;background:transparent}
.co-head{background:#fff;border-bottom:1px solid var(--s72-borde);padding:10px 20px;gap:8px 14px}
.co-quien{font-size:12.5px;color:var(--s72-sec)}
.co-quien b{color:var(--s72-tinta)}
.co-quien .co-k{font-size:10.5px}
.co-estudios{background:#fff;border-bottom:1px solid var(--s72-borde);padding:8px 20px;align-items:center}
.co-est-der{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
.co-est-der select{min-height:30px}
.co-est-btn{border-radius:10px;min-height:30px;background:#fff}
.co-est-btn[aria-pressed=true]{background:var(--s72-azul);border-color:var(--s72-azul);box-shadow:0 6px 14px -8px rgba(26,106,168,.8)}
/* nivel 1 · contexto del protocolo */
.co-ctx{background:#fff;border-bottom:1px solid var(--s72-borde);padding:10px 20px 9px;gap:6px}
.co-ctx-t b{font-size:18px}
.co-ctx-t .co-tit{color:var(--s72-sec)}
.co-ctx-m{font-size:12.5px}
/* nivel 2 · grupos de trabajo */
.co-grupos{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 20px;background:#fff;border-bottom:1px solid var(--s72-borde)}
.co-gseg{display:inline-flex;border:1px solid var(--s72-borde-f);border-radius:11px;padding:3px;gap:3px;background:#eef2f6}
.co-gseg-b{border:0;background:transparent;border-radius:8px;padding:0 16px;min-height:34px;font:inherit;font-size:13.5px;font-weight:600;color:var(--s72-sec);
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
.co-gseg-b .co-n{background:#dfe6ee;color:var(--s72-sec)}
.co-gseg-b:hover:not(.on):not(:disabled){color:var(--s72-tinta)}
.co-gseg-b.on{background:#fff;color:var(--s72-azul-osc);box-shadow:0 1px 2px rgba(19,37,63,.16),0 0 0 1px rgba(26,106,168,.25)}
.co-gseg-b.on .co-n{background:var(--s72-azul);color:#fff}
.co-gseg-b:disabled{opacity:.45;cursor:not-allowed}
.co-gseg-b:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(26,106,168,.25)}
.co-grupos .hint{color:var(--s72-ter)}
.co-grupos .co-g-acc{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.co-grp{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:8px;padding:2px 9px;border:1px solid}
.co-grp-screening{background:#f1f5f9;border-color:#b9c6d4;color:#3b4b5d}
.co-grp-tratamiento{background:var(--s72-azul-suave);border-color:#9cc1e3;color:var(--s72-azul-osc)}
/* nivel 3 · pacientes */
.co-ws{grid-template-columns:272px minmax(0,1fr);background:var(--s72-fondo)}
.co-lista{background:transparent;border-right:0;padding:14px 10px 14px 16px}
.co-lista .pm-buscar{margin-bottom:10px}
.co-lista .co-volver{color:var(--s72-azul-osc);font-weight:600}
.co-lista ul{gap:6px}
.co-li{background:#fff;border:1px solid var(--s72-borde);border-radius:10px;padding:9px 12px;box-shadow:var(--s72-sombra);grid-template-areas:'n e' 'm e' 'g g'}
.co-li b{font-size:13.5px;color:var(--s72-tinta)}
.co-li .co-li-m{font-size:12px}
.co-li .co-li-g{grid-area:g;margin-top:4px;display:flex;gap:6px;align-items:center}
.co-li:hover{border-color:#a9b8c8;box-shadow:var(--s72-sombra-md)}
.co-li.on{background:var(--s72-azul-tenue);border-color:var(--s72-azul);box-shadow:0 0 0 1px var(--s72-azul),var(--s72-sombra-md)}
.co-li.on b{color:var(--s72-azul-osc)}
.co-lista .pg{padding-top:10px}
.co-vacio-sel{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;min-height:260px;color:var(--s72-ter);font-size:14px;text-align:center;padding:24px}
.co-vacio-sel b{color:var(--s72-sec);font-size:15px}
/* nivel 4 · detalle del paciente */
.co-det{padding:14px 18px 20px 8px;min-width:0}
.co-pcab{position:static;background:#fff;border:1px solid var(--s72-borde);border-radius:var(--s72-r);box-shadow:var(--s72-sombra);padding:14px 18px 12px}
.co-pc1 h3{font-size:19px;color:var(--s72-tinta)}
.co-pc2{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px;color:var(--s72-sec)}
.co-pc2 b{color:var(--s72-tinta)}
.co-pc-acc{display:flex;gap:8px;flex-wrap:wrap}
.co-tabs{margin-top:12px;background:#fff;border:1px solid var(--s72-borde);border-bottom:0;border-radius:var(--s72-r) var(--s72-r) 0 0;padding:0 10px}
.co-body{background:#fff;border:1px solid var(--s72-borde);border-top:0;border-radius:0 0 var(--s72-r) var(--s72-r);box-shadow:var(--s72-sombra);padding:16px 18px 18px}
.co-body .fieldset{box-shadow:none;background:#fbfcfd}
.co-est{font-size:12px;line-height:20px;padding:0 10px;border-radius:10px}
/* visitas · tarjetas con estado, selección y aire */
.co-ruta{gap:8px}
.co-vis{position:relative;border:1px solid var(--s72-borde);border-radius:12px;background:#fff;box-shadow:var(--s72-sombra);overflow:hidden}
.co-vis::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:#b7c3d1}
.co-vis.co-vis-realizada::before{background:#2e9e5b}
.co-vis.co-vis-no_realizada::before{background:#d9534f}
.co-vis.co-vis-pendiente::before{background:#e0a100}
.co-vis:hover{border-color:#a9b8c8;box-shadow:var(--s72-sombra-md)}
.co-vis.abierta{background:var(--s72-azul-tenue);border-color:var(--s72-azul);box-shadow:0 0 0 1px var(--s72-azul),var(--s72-sombra-md)}
.co-vis.abierta::before{background:var(--s72-azul)}
.co-vis.es-uns{border-style:dashed;background:#fff}
.co-vis.es-uns::before{background:#2a8f86}
.co-vis-f{padding:9px 12px 9px 14px;gap:10px 14px}
.co-vis-c{font-size:15px;color:var(--s72-tinta)}
.co-vis.abierta .co-vis-c{color:var(--s72-azul-osc)}
.co-vis-d{background:#fff;border-top:1px solid var(--s72-borde);padding:12px 14px 14px 44px}
.co-ej{font-weight:700}
.co-ej-pendiente.co-ej{border-color:#e0a100;background:#fff6d6;color:#6b5200}
.co-ej-realizada.co-ej{border-color:#2e9e5b;background:#e6f6ec;color:#14532f}
.co-ej-no_realizada.co-ej{border-color:#d9534f;background:#fdeceb;color:#8f1d19}
.co-seg{background:#eef2f6}
.co-seg-b.on.co-ej-pendiente{color:#6b5200;box-shadow:inset 0 -2px 0 #e0a100,0 1px 2px rgba(15,34,54,.12)}
.co-tramo{font-size:13.5px}
/* agregar paciente / derivación */
.co-add-paso{display:flex;gap:8px;margin-bottom:12px}
.co-add-paso span{flex:1;padding:6px 10px;border-radius:8px;background:#f1f5f9;color:var(--s72-ter);font-size:12px;font-weight:600}
.co-add-paso span.on{background:var(--s72-azul-suave);color:var(--s72-azul-osc)}
.co-add-pac{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px;background:var(--s72-azul-tenue);border:1px solid #cfe0f1;border-radius:10px;padding:10px 14px;margin:10px 0}
.co-add-pac b{color:var(--s72-tinta)}
.co-add-dup{display:flex;flex-direction:column;gap:8px}
.co-add-busq{display:flex;gap:8px;align-items:flex-end}
.co-add-busq .sy-campo,.co-add-busq>div{flex:1;margin:0}

/* ===================== Programación Semanal · barra simplificada y tarjetas horizontales ===================== */
.ps-head{gap:8px 12px}
.ps-acc-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ps-estados{display:inline-flex;border:1px solid var(--s72-borde-f);border-radius:9px;padding:2px;gap:2px;background:#eef2f6}
.ps-estados button{border:0;background:transparent;border-radius:7px;padding:0 10px;min-height:28px;font:inherit;font-size:12.5px;font-weight:600;color:var(--s72-sec);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.ps-estados button .pw-cnt{background:#dfe6ee;color:var(--s72-sec)}
.ps-estados button.on{background:#fff;color:var(--s72-azul-osc);box-shadow:0 1px 2px rgba(19,37,63,.14),0 0 0 1px rgba(26,106,168,.22)}
.ps-estados button.on .pw-cnt{background:var(--s72-azul);color:#fff}
.ps-estados button.ps-e-editadas.on{color:#7a5a00;box-shadow:0 1px 2px rgba(19,37,63,.14),0 0 0 1px rgba(230,184,0,.6)}
.ps-estados button.ps-e-editadas.on .pw-cnt{background:#e6b800;color:#2b2200}
.ps-estados button.ps-e-eliminadas.on{color:#8f1d19;box-shadow:0 1px 2px rgba(19,37,63,.14),0 0 0 1px rgba(217,83,79,.5)}
.ps-estados button.ps-e-eliminadas.on .pw-cnt{background:#d9534f;color:#fff}
.ps-filtros-btn{position:relative}
.ps-filtros-btn .pw-cnt{margin-left:4px}
.ps-activos{padding:6px 16px 0}
.ps-panelf{margin:8px 16px 0}
.ps-dcab{padding-top:6px}
.ps-buscar-fila{display:flex;align-items:center;gap:10px;padding:8px 16px 0}
/* tarjetas horizontales */
.ps-cards{display:flex;flex-direction:column;gap:8px;padding:8px 16px 0}
.ps-card{display:grid;grid-template-columns:200px minmax(0,1fr) auto;grid-template-areas:'izq cen der';gap:6px 18px;align-items:start;
  background:#fff;border:1px solid var(--s72-borde);border-left:5px solid var(--ps-c,#9aa8b8);border-radius:12px;padding:12px 16px;box-shadow:var(--s72-sombra)}
.ps-card:hover{box-shadow:var(--s72-sombra-md);border-color:#a9b8c8;border-left-color:var(--ps-c,#9aa8b8)}
.ps-card.ps-modif{background:#fffbea;border-color:#f0d36b;border-left-color:#e6b800}
.ps-card.ps-elim{background:#fdf3f2;border-color:#f0b4b1;border-left-color:#d9534f}
.ps-card .ps-banda-elim{grid-area:der;justify-self:end;margin:0}
.ps-card-izq{grid-area:izq;display:flex;flex-direction:column;gap:4px;min-width:0}
.ps-card-izq .ps-card-f{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:12px;color:var(--s72-sec);font-variant-numeric:tabular-nums}
.ps-card-izq .ps-card-f b{font-size:13px;color:var(--s72-tinta)}
.ps-card-izq .ps-card-t{display:flex;flex-wrap:wrap;gap:4px}
.ps-card-izq .ps-card-p b{display:block;font-size:14.5px;color:var(--s72-tinta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-card-izq .ps-card-p .hint{display:block;font-size:12px}
.ps-card-cen{grid-area:cen;display:flex;flex-direction:column;gap:5px;min-width:0}
.ps-card-cen .ps-card-e{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12.5px;color:var(--s72-sec)}
.ps-card-cen .ps-card-e>span:not(.pw-code){white-space:nowrap}
.ps-card-cen .ps-card-v{font-size:13px;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}
.ps-card-cen .ps-card-v .pw-kl{margin-right:2px}
.ps-card-ind{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.ps-card-ind .ps-card-ra{display:inline-flex;gap:6px;align-items:center}
.ps-card-der{grid-area:der;display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px}
.ps-card-der .ps-card-acc{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.ps-card-der .ps-card-mod{font-size:11.5px;color:#7a5a00;background:#fff3c4;border:1px solid #f0d36b;border-radius:6px;padding:1px 8px;max-width:220px;text-align:right}
.ps-card-der .ps-card-meta{font-size:11px;color:var(--s72-ter);text-align:right}
.ps-card-o{font-size:12.5px;color:var(--s72-sec);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ps-card-bh{font-size:12px}
.ps-card-bh .pbh-mini{display:flex;flex-wrap:wrap;gap:4px 10px}
.ps-card-r .ps-rv{display:flex;flex-wrap:wrap;gap:4px 8px}
@media (max-width:1400px){.ps-card{grid-template-columns:170px minmax(0,1fr) auto}.ps-card-der{min-width:120px}}
/* Logística en el formulario */
.ps-fs-log{border-color:#cfdcea;background:#f7fafd}
.ps-fs-log .lg{color:var(--s72-azul-osc)}

/* ===================== órdenes de laboratorio · editor de exámenes ===================== */
.ol-ed{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.ol-ed-l,.ol-ed-r{min-width:0}
.ol-ed-cab{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 16px;margin-bottom:12px;font-size:12.5px;color:var(--s72-sec)}
.ol-ed-cab b{display:block;color:var(--s72-tinta);font-size:13px}
.ol-fam{margin-bottom:10px}
.ol-fam-t{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--s72-sec);margin:0 0 4px}
.ol-ex{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--s72-borde);border-radius:8px;background:#fff;margin-bottom:4px}
.ol-ex.ol-ex-nuevo{border-color:#9fd3ae;background:#f2faf4}
.ol-ex .ol-ex-c{font-size:11px;color:var(--s72-ter);font-variant-numeric:tabular-nums;min-width:86px}
.ol-ex .ol-ex-n{flex:1;font-size:13px;color:var(--s72-tinta);font-weight:600}
.ol-ex .btn{margin-left:auto}
.ol-ed-r{background:#f8fafc;border:1px solid var(--s72-borde);border-radius:10px;padding:12px;position:sticky;top:0}
.ol-ed-r h4{font-size:13px;margin:0 0 8px;color:var(--s72-tinta)}
.ol-cat{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:320px;overflow:auto}
.ol-cat li{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--s72-borde);border-radius:7px;background:#fff;font-size:12.5px}
.ol-cat li .ol-ex-c{font-size:11px;color:var(--s72-ter);min-width:70px}
.ol-cat li .ol-ex-n{flex:1}
.ol-ed-res{display:flex;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--s72-sec);margin:10px 0}
.ol-ed-res b{color:var(--s72-tinta)}
.ol-cambios{font-size:12px;color:#5b4a00;background:#fff8d6;border:1px solid #f0d36b;border-radius:8px;padding:6px 10px;margin-top:6px}
#modal.ol-modal{width:min(1080px,96vw)}
@media (max-width:1200px){.ol-ed{grid-template-columns:1fr}.ol-ed-r{position:static}}

/* v1.73 · Maestros → Usuarios · Estudios asignados (consulta) */
.eu-estudios{margin-top:4px}
.eu-est-tbl{width:100%;margin-top:4px}
.eu-est-tbl tr.eq-hist td{color:var(--s72-ter)}

/* ===================== v1.74 · estilo tabular único de SYNTRIAL =====================
   filas como tarjetas horizontales dentro de la tabla: fondo gris muy claro, fila blanca con borde suave, esquinas
   redondeadas y separación vertical. Los bordes se dibujan con sombras internas (no cambian el ancho de las columnas:
   encabezados y celdas siguen alineados). Las marcas de estado existentes (amarillo modificado, rojo eliminada) mandan. */
:root{--tb-borde:#dde4ec;--tb-borde-f:#c9d3de;--tb-sombra:rgba(19,37,63,.07);--tb-hover:#f5f9fd;--tb-sel:#eaf3fc;--tb-gap:4px;--tb-r:8px}
.tbl{border-collapse:separate!important;border-spacing:0 var(--tb-gap)}
.tbl.mini{--tb-gap:2px;--tb-r:6px}
.tbl thead th{background:transparent;border-bottom:0;box-shadow:inset 0 -1px 0 var(--tb-borde-f)}
.tbl > tbody > tr > td{background:#fff;border-bottom-color:transparent;
  box-shadow:inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),0 1px 0 var(--tb-sombra)}
.tbl > tbody > tr > td:first-child{border-top-left-radius:var(--tb-r);border-bottom-left-radius:var(--tb-r);
  box-shadow:inset 1px 0 0 var(--tb-borde),inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),0 1px 0 var(--tb-sombra)}
.tbl > tbody > tr > td:last-child{border-top-right-radius:var(--tb-r);border-bottom-right-radius:var(--tb-r);
  box-shadow:inset -1px 0 0 var(--tb-borde),inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),0 1px 0 var(--tb-sombra)}
.tbl > tbody > tr > td:only-child{box-shadow:inset 0 0 0 1px var(--tb-borde),0 1px 0 var(--tb-sombra)}
.tbl tbody tr:hover{background:transparent}
.tbl > tbody > tr:hover > td{background:var(--tb-hover)}
/* fila seleccionada (la última consultada en la tabla) */
.tbl > tbody > tr.tbl-sel > td{background:var(--tb-sel)}
.tbl > tbody > tr.tbl-sel{outline:2px solid var(--s72-azul,#1a6aa8);outline-offset:-1px}
/* contenedores de tabla: fondo gris muy claro para que las filas se lean como registros */
#panel > .tbl,.card > .tbl,.body > .tbl,.co-body .tbl,.sec74-b .tbl,.ps-grid-w,.res-dia .tbl{background:transparent}
.ps-grid-w{background:#f3f6f9!important}
.ps-grid{border-spacing:0 var(--tb-gap)!important}
.ps-grid thead th{background:#f3f6f9;box-shadow:inset 0 -1px 0 var(--tb-borde-f)}
.ps-dens-compacta{--tb-gap:3px}
.ps-dens-comoda{--tb-gap:6px}
.ps-grid > tbody > tr > td{border-bottom-color:transparent}
/* columnas fijas de la grilla: conservan su separador y la forma de la fila */
.ps-grid > tbody > tr > td.ps-fijo1{box-shadow:inset 1px 0 0 var(--tb-borde),inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),inset -1px 0 0 var(--v-linea,#e3e8ee)}
.ps-grid > tbody > tr > td.ps-fijo-d{box-shadow:inset -1px 0 0 var(--tb-borde),inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),inset 1px 0 0 var(--v-linea,#e3e8ee)}
.ps-grid thead .ps-fijo1,.ps-grid thead .ps-fijo-d{background:#f3f6f9}
/* programación editada: además de las celdas en amarillo, acento amarillo al inicio de la fila */
.ps-grid > tbody > tr.ps-modif > td:first-child{box-shadow:inset 4px 0 0 #e6b800,inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),inset -1px 0 0 var(--v-linea,#e3e8ee)}
/* programación eliminada: rojo intenso intacto (la regla existente usa !important) y forma de registro */
.tbl > tbody > tr.ps-elim > td{box-shadow:inset 0 1px 0 #9e1c1c,inset 0 -1px 0 #9e1c1c}
.tbl > tbody > tr.ps-elim > td:first-child{box-shadow:inset 4px 0 0 #7f1414,inset 0 1px 0 #9e1c1c,inset 0 -1px 0 #9e1c1c}
.tbl > tbody > tr.ps-elim.tbl-sel{outline-color:#0d2a44}
/* filas inactivas / históricas conservan su atenuación */
.tbl > tbody > tr.inactivo > td,.tbl > tbody > tr.eq-hist > td{background:#fafbfc;color:#7b8794}
/* paginación y estados vacíos comunes */
.pg{background:transparent;padding:6px 2px;gap:8px}
.pg .pg-info{color:var(--s72-sec,#4b5b6e)}
.pw-vacio,.empty,.sec74-vacio{background:#fff;border:1px dashed var(--tb-borde-f);border-radius:var(--tb-r);color:var(--s72-ter,#7b8794);padding:10px 12px;font-size:13px}
.sec74-vacio{padding:7px 10px;font-size:12.5px}

/* ===================== v1.74 · secciones diferenciadas (Coordinación · detalle de programación) ===================== */
.sec74{background:#fff;border:1px solid var(--s72-borde,#dfe5ec);border-radius:10px;box-shadow:0 1px 2px rgba(19,37,63,.05),0 4px 12px -8px rgba(19,37,63,.12);
  padding:0;margin:0;overflow:hidden;min-width:0}
.sec74-h{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#f7f9fb;border-bottom:1px solid var(--s72-borde,#dfe5ec);min-height:36px;flex-wrap:wrap}
.sec74-h h5,.sec74-h > b{margin:0;font-size:13px;font-weight:700;color:var(--s72-tinta,#13253f);letter-spacing:0}
.sec74-i{display:inline-flex;width:22px;height:22px;border-radius:6px;background:#e8f1fa;color:var(--s72-azul,#1a6aa8);align-items:center;justify-content:center;flex:none}
.sec74-i svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sec74-b{padding:10px 12px}
.sec74-b > .tbl{margin:0;background:#f7f9fb;border-radius:8px;padding:0 6px}
.sec74-sub{display:flex;align-items:center;gap:6px;margin:6px 0 2px;font-size:12px;font-weight:700;color:var(--s72-sec,#4b5b6e);text-transform:uppercase;letter-spacing:.04em}
.sec74-sub:first-child{margin-top:0}
.sec74-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;align-items:center}
.sec74-dl dt{font-size:12px;color:var(--s72-sec,#4b5b6e);margin:0}
.sec74-dl dd{margin:0;font-size:13px}
.sec74 .co-evs{margin-top:8px}
/* acentos por tipo de sección (barra lateral fina) */
.sec74-ejec{border-left:3px solid #1a6aa8}.sec74-prest{border-left:3px solid #5b7fa6}.sec74-prog{border-left:3px solid #6a55b5}
.sec74-lab{border-left:3px solid #1f8a7a}.sec74-res{border-left:3px solid #c27a12}
.sec74-pac{border-left:3px solid #1a6aa8}.sec74-resumen{border-left:3px solid #5b7fa6}.crf-sec.sec74{border-left:3px solid #2e7d4f}
.msgm-sec.sec74{border-left:3px solid #8a5a00}.pbh-sec.sec74{border-left:3px solid #6a55b5}.sec74-reg{border-left:3px solid #9aa8b8}
.sec74-prog .sec74-i{background:#efecfa;color:#5b46a8}.sec74-lab .sec74-i{background:#e5f4f1;color:#1a7366}.sec74-res .sec74-i{background:#fbf1e1;color:#9c5f08}
.crf-sec.sec74 .sec74-i{background:#e6f4ec;color:#256b42}.msgm-sec.sec74 .sec74-i{background:#fbf3e0;color:#7a5000}.pbh-sec.sec74 .sec74-i{background:#efecfa;color:#5b46a8}
/* Coordinación · visita abierta */
.co-vd74{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px 14px!important;background:#f3f7fb!important;border-top:1px solid var(--s72-borde,#dfe5ec)}
.co-vd74-f1{display:flex;flex-direction:column;gap:10px}
.sec74-ejec .sec74-dl{grid-template-columns:repeat(3,auto minmax(0,1fr));column-gap:14px}
@media (max-width:1100px){.sec74-ejec .sec74-dl{grid-template-columns:auto minmax(0,1fr)}}
.co-vd74 .co-ps,.co-vd74 .co-asoc{margin:0}
.co-vis.abierta{box-shadow:0 0 0 2px var(--s72-azul,#1a6aa8),0 10px 26px -14px rgba(19,37,63,.35)!important}
.co-vis.abierta > .co-vis-f{background:#e3eefa}
/* detalle de programación */
.ps-det74{display:flex;flex-direction:column;gap:10px}
.ps-det74 > .sec74 > .sec74-b,.ps-det74 > .ps-dg.sec74 > :not(.sec74-h){padding-left:12px;padding-right:12px}
.ps-det74 > .ps-dg.sec74{padding:0 0 10px}
.ps-det74 > .ps-dg.sec74 > .rv-sec-h{margin:0 0 8px}
.sec74-pacn{font-size:16px;font-weight:700;color:var(--s72-tinta,#13253f);margin-bottom:6px}
.sec74-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 14px}
.sec74-grid + .sec74-grid{margin-top:8px;padding-top:8px;border-top:1px dashed var(--s72-borde,#dfe5ec)}
.sec74-g2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.sec74-grid .ps-dv{display:flex;flex-direction:column;gap:1px;padding:2px 0;border:0}
.sec74-grid .ps-dv > span{font-size:11.5px;color:var(--s72-sec,#4b5b6e)}
.sec74-grid .ps-dv > b{font-weight:600;font-size:13px}
.sec74-est{display:inline-flex;gap:6px;align-items:center}
.ps-det74 .ps-dobs{margin-top:8px;padding-top:8px;border-top:1px dashed var(--s72-borde,#dfe5ec)}
.ps-det74 .ps-dobs.ps-mod{padding:6px 8px;border-radius:6px}
@media (max-width:1100px){.sec74-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===================== v1.74 · cabecera de Programación Semanal en dos filas ===================== */
.ps-barra2-dia{flex-wrap:wrap;row-gap:6px}
.ps-barra2 .ps-dacc74{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;margin:0;padding:0;border:0;background:transparent;flex-wrap:wrap}
.ps-dcab:not(:has(.ps-dtipos:not([hidden]))){display:none}

.ps-barra2-dia{display:flex;align-items:center;gap:8px}
.ps-barra2-dia .ps-buscar{flex:1 1 200px;max-width:340px;min-width:180px}
.ps-barra2-dia .ps-dacc74 .ps-dcupos-b{order:9}
.ps-barra2-dia .ps-estados .ps-yn-b{padding-left:9px;padding-right:9px}
.ps-barra2-dia .ps-dacc74{display:contents}
.ps-barra2-dia .ps-buscar{max-width:270px}
/* acciones de una fila eliminada: el ícono conserva el color sobre el botón blanco */
.ps-grid tr.ps-elim .btn,.ps-grid tr.ps-elim .btn *{color:#b71c1c!important}
.ps-barra2-dia .ps-buscar{flex:1 1 180px;min-width:170px}
.ps-barra2-dia .ps-dcupos-b{padding:4px 8px;gap:4px}
.ps-barra2-dia .ps-dcupos-ll{font-size:0;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:#c62828;color:#fff;padding:0 4px}
.ps-barra2-dia .ps-dcupos-ll::before{content:attr(data-n);font-size:10.5px}
.sec74-grid .ps-dv{align-items:flex-start;justify-content:flex-start;text-align:left}
.sec74-grid .ps-dv > b{text-align:left;justify-content:flex-start}
/* v1.74 · una tabla ancha (Estado de reservas a 1366 px) se desplaza dentro de su tarjeta en lugar de ensanchar la página. Solo tarjetas con una tabla .tbl directa: calendarios, mapas y líneas de tiempo no se tocan. */
.wrap > .card:has(> .body > table.tbl){min-width:0}
.wrap > .card > .body:has(> table.tbl){overflow-x:auto}
/* v1.74 · subgrupos del resumen de programación (mismos rótulos que v1.73) */
.sec74-gl{margin:10px 0 4px;padding-top:8px;border-top:1px dashed var(--s72-borde,#dfe5ec);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--s72-sec,#4b5b6e)}
.sec74-grid + .sec74-gl{margin-top:8px}
.sec74-gsub + .sec74-grid,.sec74-grid.sec74-gsub{border-top:0;margin-top:0;padding-top:0}
.sec74-g3{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:0 18px}
.sec74-grid.sec74-c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sec74-grid.sec74-c2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1100px){.sec74-g3{grid-template-columns:minmax(0,1fr)}}
/* v1.74 · en las áreas de la visita (ancho ~720 px a 1366) las tablas se ajustan al contenedor: encabezados y chips pueden partir línea; si aun así no caben, el área se desplaza en horizontal en vez de recortar la columna de acciones */
.sec74-b{overflow-x:auto}
.sec74 .tbl thead th{white-space:normal}
.sec74 .tbl .ps-tipo,.sec74 .tbl .ps-bdg{white-space:normal}
.sec74 .tbl > thead > tr > th,.sec74 .tbl > tbody > tr > td{padding-left:8px;padding-right:8px}
.sec74 .tbl td.co-nw .chip,.sec74 .tbl td.co-nw .ps-hist,.sec74 .tbl td.co-nw .hint,.sec74 .tbl td.co-nw small{display:block;margin:2px 0 0;width:max-content}
.sec74 .ps-bdgs{display:flex;flex-wrap:wrap;gap:3px}
/* ===================== v1.75 · menú contraído que se abre al detener el mouse =====================
   La columna del grid se mantiene en el ancho contraído (el contenido no se mueve ni se redimensiona)
   y el menú se dibuja expandido como capa flotante sobre el contenido. */
.app.menu-peek{grid-template-columns:var(--sb-col) minmax(0,1fr)!important}
.app.menu-peek > .sidebar{width:var(--sb-exp);position:relative;z-index:70;box-shadow:6px 0 24px rgba(15,35,60,.22);animation:menuPeek .16s ease-out}
@keyframes menuPeek{from{clip-path:inset(0 calc(100% - var(--sb-col)) 0 0)}to{clip-path:inset(0 0 0 0)}}
@media (prefers-reduced-motion:reduce){.app.menu-peek > .sidebar{animation:none}}
/* ===================== v1.76 · Maestros: tabla ancha contenida =====================
   La tabla del mantenedor (p. ej. Usuarios a 1366 px) se desplaza dentro de su propio contenedor en lugar de
   ensanchar toda la página. El relleno compensado evita recortar sombra y contorno de la fila seleccionada sin mover la tabla. */
.mtr-panel{min-width:0}
.mtr-tscroll{overflow-x:auto;max-width:calc(100% + 4px);margin:0 -2px -2px;padding:0 2px 2px;container-type:inline-size}
/* Solo en Usuarios y solo cuando el contenedor es angosto (≈1366 px): la columna de acciones queda fija a la derecha, de modo que
   Abrir / Inicios de sesión / Editar / Desactivar siguen visibles aunque las columnas intermedias requieran desplazamiento,
   y los botones se apilan (uno por línea, sin cortar su texto). En pantallas anchas la tabla se ve igual que en v1.75. */
@container (max-width:1100px){
  .mtr-tscroll .tbl.mtr-t-usuarios > thead > tr > th:last-child,.mtr-tscroll .tbl.mtr-t-usuarios > tbody > tr > td.mtr-acc{position:sticky;right:0;z-index:1}
  .mtr-tscroll .tbl.mtr-t-usuarios > thead > tr > th:last-child{background:#fff}
  .mtr-tscroll .tbl.mtr-t-usuarios > tbody > tr > td.mtr-acc{display:table-cell;white-space:nowrap;vertical-align:top;
    box-shadow:inset -1px 0 0 var(--tb-borde),inset 0 1px 0 var(--tb-borde),inset 0 -1px 0 var(--tb-borde-f),0 1px 0 var(--tb-sombra),-8px 0 8px -8px rgba(15,35,60,.28)}
  .mtr-tscroll .tbl.mtr-t-usuarios > tbody > tr > td.mtr-acc .btn{display:flex;width:100%;justify-content:center;white-space:nowrap;margin:0}
  .mtr-tscroll .tbl.mtr-t-usuarios > tbody > tr > td.mtr-acc .btn + .btn{margin-top:4px}
}
