
:root{
 --t-2xs:10px;--t-xs:12px;--t-sm:13px;--t-md:14px;--t-lg:16px;--t-xl:19px;--t-2xl:24px;
 --e1:4px;--e2:8px;--e3:12px;--e4:16px;--e5:24px;--e6:32px;--e7:48px;
 --r-sm:8px;--r-md:12px;--r-lg:16px;--r-full:999px;
 --s1:0 1px 2px rgba(18,26,38,.06);--s2:0 6px 20px rgba(18,26,38,.12);--s3:0 18px 48px rgba(18,26,38,.22);
 --bg:#eef2f7;--surface:#ffffff;--sunken:#f4f7fb;--line:#d5dee9;--line-soft:#e6ecf4;
 --ink:#0f2443;--ink-2:#4a5d78;--ink-3:#7d8da3;
 --brand:#116cd3;--brand-soft:#e4effc;--brand-ink:#0f2443;
 --warn:#8a6012;--warn-soft:#fbf1dd;--good:#2a6350;--good-soft:#e1efe9;
 --stop:#a8554b;--stop-soft:#f8e9e6;
 --farm-ln:#2f7f92;--farm-bg:#e2f0f3;--farm-ink:#1b5462;
 --util-ln:#b07a2b;--util-bg:#faeedb;--util-ink:#7a5214;
 --doc-ln:#5f7cc4;--doc-bg:#e6ebf8;--doc-ink:#3c528f;
 box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}
@media(prefers-color-scheme:dark){:root{
 --bg:#101620;--surface:#19202c;--sunken:#141b25;--line:#2a3442;--line-soft:#222b38;
 --ink:#e8edf4;--ink-2:#a2aec0;--ink-3:#76839a;--brand:#6d9ce4;--brand-soft:#1a2d4c;--brand-ink:#a9c8f2;
 --warn:#dcab5c;--warn-soft:#312819;--good:#74bb9d;--good-soft:#152e25;--stop:#dc9086;--stop-soft:#311e1c;
 --farm-ln:#4fa4b8;--farm-bg:#122831;--farm-ink:#8fcedd;--util-ln:#cf9a4d;--util-bg:#2f2410;--util-ink:#e6be79;
 --doc-ln:#7f9ada;--doc-bg:#1a2237;--doc-ink:#aebfec}}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-size:var(--t-md);line-height:1.5;
 font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
button{cursor:pointer;background:none;border:none;padding:0;font:inherit;color:inherit}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}
.wrap{max-width:920px;margin:0 auto;padding:0 var(--e4) var(--e7)}
header{display:flex;justify-content:space-between;align-items:center;gap:var(--e4);
 padding:var(--e5) 0 var(--e3);border-bottom:1px solid var(--line);flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:var(--e3)}
.logo{flex:none;height:38px;width:auto;display:block}
.palabra b{display:block;font-size:var(--t-lg);font-weight:600;line-height:1.2}
.palabra span{display:block;font-size:var(--t-2xs);font-weight:500;color:var(--ink-3);letter-spacing:.18em;text-transform:uppercase;margin-top:2px}
.ciclo{text-align:right;font-size:var(--t-sm);color:var(--ink-2)}
.ciclo b{display:block;font-size:var(--t-md);color:var(--ink);font-weight:600}
.saluda{display:flex;gap:var(--e3);align-items:center;padding:var(--e4) 0 0}
.saluda b{display:block;font-size:var(--t-lg);font-weight:600}
.saluda span{display:block;font-size:var(--t-sm);color:var(--ink-3)}
.avatar{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);
 font-size:var(--t-md);font-weight:600;display:flex;align-items:center;justify-content:center}
h1{font-size:var(--t-xl);font-weight:600;margin:0 0 var(--e1);letter-spacing:-.01em}
h2.sec{font-size:var(--t-lg);font-weight:600;margin:var(--e5) 0 var(--e3)}
h3{font-size:var(--t-md);font-weight:600;margin:0}
.hint{font-size:var(--t-sm);color:var(--ink-3);margin:calc(var(--e2)*-1) 0 var(--e3)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
 padding:var(--e4);margin-bottom:var(--e2);box-shadow:var(--s1)}
.card.pulsable{width:100%;text-align:left;display:block;transition:border-color .15s,box-shadow .15s,transform .08s}
.card.pulsable:hover{border-color:var(--brand);box-shadow:var(--s2)}
.card.pulsable:active{transform:scale(.995)}
.o-farm{--o-ln:var(--farm-ln);--o-bg:var(--farm-bg);--o-ink:var(--farm-ink)}
.o-util{--o-ln:var(--util-ln);--o-bg:var(--util-bg);--o-ink:var(--util-ink)}
.o-doc{--o-ln:var(--doc-ln);--o-bg:var(--doc-bg);--o-ink:var(--doc-ink)}
.card.oportunidad{border-left:4px solid var(--o-ln)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);min-height:44px;
 padding:var(--e2) var(--e5);border-radius:var(--r-full);font-size:var(--t-md);font-weight:600;
 border:1px solid transparent;transition:background .15s,border-color .15s,transform .08s,opacity .15s}
.btn:active{transform:scale(.97)}
.btn.uno{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.uno:hover{opacity:.9}
.btn.dos{background:transparent;border-color:var(--line);color:var(--ink-2);font-weight:500}
.btn.dos:hover{border-color:var(--ink-3);color:var(--ink);background:var(--sunken)}
.btn.tres{min-height:36px;padding:var(--e1) var(--e2);color:var(--brand);font-weight:500;font-size:var(--t-sm)}
.btn[disabled]{background:var(--line);border-color:var(--line);color:var(--ink-3);cursor:not-allowed;transform:none}
.btnrow{display:flex;gap:var(--e2);flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;gap:2px;padding:3px;background:var(--sunken);border:1px solid var(--line);border-radius:var(--r-full);flex-wrap:wrap}
.seg button{min-height:38px;padding:var(--e1) var(--e3);border-radius:var(--r-full);font-size:var(--t-sm);color:var(--ink-2)}
.seg button[aria-pressed="true"]{background:var(--brand);color:#fff;font-weight:600}
.tag{display:inline-block;font-size:var(--t-xs);font-weight:600;padding:3px var(--e2);border-radius:var(--r-full);white-space:nowrap}
.t-pendiente_pcp{background:var(--sunken);color:var(--ink-2);border:1px solid var(--line)}
.t-devuelto{background:var(--stop-soft);color:var(--stop)}
.t-sometido,.t-validado{background:var(--brand-soft);color:var(--brand-ink)}
.t-aprobado,.t-reportado{background:var(--good-soft);color:var(--good)}
.plan{background:var(--o-bg);border:1px solid var(--o-ln);border-radius:var(--r-md);padding:var(--e4);margin-bottom:var(--e4)}
.planlbl{font-size:var(--t-xs);color:var(--o-ink);opacity:.85}
.plantitle{margin:2px 0 var(--e1);font-size:var(--t-lg);font-weight:600;color:var(--o-ink)}
.planacc{font-size:var(--t-md);color:var(--o-ink)}
.nums{display:flex;gap:var(--e5);flex-wrap:wrap;margin-top:var(--e3);padding-top:var(--e3);border-top:1px solid var(--o-ln)}
.nums div{font-size:var(--t-xs);color:var(--o-ink);opacity:.85}
.nums b{display:block;font-size:var(--t-lg);font-weight:600;opacity:1}
.area{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
 padding:var(--e3) var(--e4);margin-bottom:var(--e2);box-shadow:var(--s1)}
.area.done{border-left:3px solid var(--good)}.area.empty{border-left:3px solid var(--line)}
.areatop{display:flex;justify-content:space-between;gap:var(--e3);align-items:flex-start;flex-wrap:wrap}
textarea,input.fld,select.fld{width:100%;background:var(--sunken);border:1px solid var(--line);
 border-radius:var(--r-sm);padding:var(--e2) var(--e3);font-size:var(--t-sm)}
textarea{margin-top:var(--e3);min-height:70px;resize:vertical}
textarea:focus,input.fld:focus,select.fld:focus{border-color:var(--brand)}
label.fld{display:block;font-size:var(--t-xs);color:var(--ink-2);margin:var(--e3) 0 var(--e1);font-weight:600}
.gate{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--e4);
 margin-top:var(--e5);display:flex;justify-content:space-between;gap:var(--e3);align-items:center;flex-wrap:wrap;box-shadow:var(--s2)}
.gate p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}
.dxopt,.dxchip{display:flex;align-items:center;gap:var(--e3);width:100%;text-align:left;min-height:44px;
 padding:var(--e2) var(--e3);border-bottom:1px solid var(--line-soft)}
.dxopt{background:var(--sunken);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:var(--e1)}
.dxopt:hover{border-color:var(--brand);background:var(--surface)}
.dxopt>div,.dxchip>div{flex:1;min-width:0}
.dxopt b,.dxchip b{font-size:var(--t-sm);font-weight:600;display:block}
.dxopt span,.dxchip span{font-size:var(--t-xs);color:var(--ink-2);display:block;overflow-wrap:break-word}
.dxopt i,.dxchip i{font-style:normal;font-size:var(--t-xs);color:var(--ink-3);display:block}
.dxopt em,.dxchip em{flex:none;font-style:normal;font-size:var(--t-xs);font-weight:600;padding:3px var(--e2);border-radius:var(--r-full);white-space:nowrap}
.hb-n{background:var(--stop-soft);color:var(--stop)}.hb-s{background:var(--good-soft);color:var(--good)}
.thread{background:var(--sunken);border-radius:var(--r-sm);padding:var(--e3);font-size:var(--t-sm)}
.msg{margin-bottom:var(--e2)}.msg:last-child{margin-bottom:0}
.msg b{display:block;font-size:var(--t-xs);color:var(--ink-3);font-weight:400}
.msg.mio{padding-left:var(--e3);border-left:2px solid var(--brand)}
.badge{display:inline-block;background:var(--stop-soft);color:var(--stop);font-size:var(--t-xs);
 font-weight:600;padding:2px var(--e2);border-radius:var(--r-full)}
.toast{position:fixed;left:50%;transform:translateX(-50%);z-index:50;bottom:calc(var(--e4) + env(safe-area-inset-bottom,0));
 background:var(--ink);color:var(--bg);border-radius:var(--r-full);padding:var(--e3) var(--e5);
 font-size:var(--t-sm);max-width:92vw;box-shadow:var(--s3)}
.error{color:var(--stop);font-size:var(--t-sm);margin-top:var(--e2)}
.entrada{max-width:380px;margin:12vh auto;padding:0 var(--e4)}
.mini{font-size:var(--t-xs);color:var(--ink-3)}
.prog{font-size:var(--t-xs);color:var(--ink-3);display:block;margin-top:var(--e1)}
.caseright{text-align:right;flex:none}
.caserow{display:flex;justify-content:space-between;gap:var(--e4);align-items:flex-start}
.caserow p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}


.entrada-marca{text-align:center;margin-bottom:var(--e5)}
.logo-grande{height:92px;width:auto;display:block;margin:0 auto var(--e3)}
.entrada-marca b{display:block;font-size:var(--t-xl);font-weight:600;letter-spacing:-.01em}
.entrada-marca span{display:block;font-size:var(--t-2xs);font-weight:500;color:var(--ink-3);
 letter-spacing:.18em;text-transform:uppercase;margin-top:3px}

.metrica{display:block;text-align:left;width:100%;min-height:auto;padding:0;border-radius:var(--r-sm)}
.metrica:hover b{text-decoration:underline;text-underline-offset:3px}
.progreso{height:6px;border-radius:var(--r-full);background:var(--line);overflow:hidden;margin-top:var(--e2)}
.progreso i{display:block;height:100%;background:var(--brand);border-radius:var(--r-full)}

.metrica{display:block;text-align:left;width:100%;min-height:auto;padding:0;border-radius:var(--r-sm)}
.metrica:hover b{text-decoration:underline;text-underline-offset:3px}
.progreso{height:6px;border-radius:var(--r-full);background:var(--line);overflow:hidden;margin-top:var(--e2)}
.progreso i{display:block;height:100%;background:var(--brand);border-radius:var(--r-full)}

.resaltado{position:relative;z-index:31;outline:3px solid var(--brand);outline-offset:4px;
 border-radius:var(--r-md);box-shadow:0 0 0 9999px rgba(18,26,38,.45)}
@media(prefers-color-scheme:dark){.resaltado{box-shadow:0 0 0 9999px rgba(0,0,0,.65)}}
.wizard{position:fixed;z-index:40;left:50%;transform:translateX(-50%);
 bottom:calc(var(--e5) + env(safe-area-inset-bottom,0));width:min(440px,92vw);
 background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
 padding:var(--e4);box-shadow:var(--s3)}

/* --- marco --- */
.alcance{font-size:var(--t-sm);color:var(--ink-2);margin:var(--e3) 0 0;padding:var(--e3);
 background:var(--sunken);border-radius:var(--r-sm);border-left:3px solid var(--brand)}
.badgebtn{cursor:pointer;border:none}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.avatar.grande{width:72px;height:72px;font-size:var(--t-xl)}
.vacio{color:var(--ink-3);font-size:var(--t-sm);margin:0;text-align:center;padding:var(--e4) 0}
/* --- asistente flotante --- */
.ayuda{position:fixed;right:var(--e4);z-index:35;width:52px;height:52px;border-radius:50%;
 bottom:calc(var(--e4) + env(safe-area-inset-bottom,0));background:var(--brand);color:#fff;
 font-size:var(--t-xl);font-weight:600;box-shadow:var(--s2);border:none}
.ayuda:hover{opacity:.92}
/* --- paneles --- */
.velo{position:fixed;inset:0;background:rgba(18,26,38,.45);z-index:36}
.mpanel,.botpanel{position:fixed;z-index:37;right:0;top:0;bottom:0;width:min(440px,94vw);
 background:var(--surface);border-left:1px solid var(--line);overflow-y:auto;
 padding:var(--e4);padding-top:calc(var(--e4) + env(safe-area-inset-top,0));box-shadow:var(--s3)}
.mptop{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--e4)}
.mthread{border:1px solid var(--line);border-left:4px solid var(--o-ln,var(--line));
 border-radius:var(--r-md);padding:var(--e3);margin-bottom:var(--e3)}
.mthead{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--e2);
 font-size:var(--t-sm);font-weight:600}
.card.plana{box-shadow:none;background:var(--sunken)}
.byline{font-size:var(--t-xs);color:var(--ink-3)}
/* --- barra del ciclo --- */
.cycle{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
 padding:var(--e4);margin-bottom:var(--e3);box-shadow:var(--s1)}
.cyctop{display:flex;justify-content:space-between;gap:var(--e3);flex-wrap:wrap;
 font-size:var(--t-xs);color:var(--ink-2);margin-bottom:var(--e3)}
.v-tarde{color:var(--stop);font-weight:600}.v-pronto{color:var(--ink-2)}
.barra{display:flex;gap:var(--e2);align-items:flex-end}
.barcol{min-width:44px}
.barseg{display:flex;height:10px;border-radius:var(--r-full);overflow:hidden;background:var(--line)}
.barseg i{display:block;height:100%}
.o-farm .barseg i,.barseg i.o-farm{background:var(--farm-ln)}
.barseg i.o-util{background:var(--util-ln)}
.barseg i.o-doc{background:var(--doc-ln)}
.barlbl{font-size:var(--t-xs);color:var(--ink-2);margin-top:var(--e1)}
.barlbl b{display:block;font-size:var(--t-md);color:var(--ink);font-weight:600}
.oppleg{display:flex;gap:var(--e4);flex-wrap:wrap;margin-bottom:var(--e3);font-size:var(--t-xs);color:var(--ink-2)}
.oppleg span{display:flex;align-items:center;gap:6px}
.oppleg i{width:10px;height:10px;border-radius:3px;display:block}
.oppleg .o-farm i{background:var(--farm-ln)}.oppleg .o-util i{background:var(--util-ln)}
.oppleg .o-doc i{background:var(--doc-ln)}
.vpill{display:block;font-size:var(--t-2xs);margin-top:3px}
/* --- metricas --- */
.num{display:block;text-align:left;position:relative;padding-right:var(--e4)}
.num b{display:block;font-size:var(--t-lg);font-weight:600}
.num{font-size:var(--t-xs);color:var(--o-ink);opacity:.85}
.num i{position:absolute;top:0;right:0;font-style:normal;font-size:var(--t-2xs);
 width:15px;height:15px;border-radius:50%;background:var(--o-ln);color:#fff;
 display:flex;align-items:center;justify-content:center}
.num[aria-pressed="true"]{opacity:1}
.num[aria-pressed="true"] b{text-decoration:underline;text-underline-offset:3px}
.burbuja{margin-top:var(--e3);padding:var(--e3);background:var(--surface);
 border-radius:var(--r-sm);border:1px solid var(--o-ln)}
.burbuja b{font-size:var(--t-md)}
.burbuja p{margin:var(--e2) 0 0;font-size:var(--t-sm);color:var(--ink-2)}
.burbuja .enEste{color:var(--ink);font-weight:500}
/* --- usuarios --- */
.alerta{background:var(--warn-soft);color:var(--warn);border-radius:var(--r-md);
 padding:var(--e3) var(--e4);margin-bottom:var(--e2);font-size:var(--t-sm)}
.alerta b{display:block;margin-bottom:3px}
.alerta.grave{background:var(--stop-soft);color:var(--stop)}
.card.apagada{opacity:.68}
.uhead{display:flex;justify-content:space-between;gap:var(--e3);align-items:flex-start}
.uper{display:flex;gap:var(--e3);align-items:center}
.uper b{display:block;font-size:var(--t-md)}
.uper span{display:block;font-size:var(--t-xs);color:var(--ink-2)}
.chiprow{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);border-radius:var(--r-full);padding:5px var(--e3);
 font-size:var(--t-xs);color:var(--ink-2);min-height:34px}
.chip[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.perfil{margin-top:var(--e4);padding-top:var(--e4);border-top:1px solid var(--line-soft)}
.fotorow{display:flex;gap:var(--e4);align-items:center;margin-bottom:var(--e3)}
.casilla{display:flex;gap:10px;align-items:center;min-height:38px;font-size:var(--t-sm)}
.progreso{height:6px;border-radius:var(--r-full);background:var(--line);overflow:hidden;margin-top:var(--e2)}
.progreso i{display:block;height:100%;background:var(--brand);border-radius:var(--r-full)}
.mic{min-height:44px;padding:var(--e2) var(--e3);flex:none}
/* --- recorrido --- */
.tourVelo{position:fixed;inset:0;background:rgba(18,26,38,.55);z-index:38}
.tourFoco{position:fixed;z-index:39;border-radius:var(--r-md);pointer-events:none;
 box-shadow:0 0 0 3px var(--brand),0 0 0 9999px rgba(18,26,38,.55)}
.tourCaja{position:fixed;z-index:40;left:50%;transform:translateX(-50%);width:min(420px,92vw);
 background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
 padding:var(--e4);box-shadow:var(--s3)}
.tourCaja b{display:block;font-size:var(--t-lg);font-weight:600;margin-bottom:6px}
.tourCaja p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}
.pasos{display:flex;gap:5px;margin-bottom:var(--e3)}
.pasos i{width:16px;height:4px;border-radius:2px;background:var(--line);display:block}
.pasos i.ya{background:var(--brand-soft)}.pasos i.aqui{background:var(--brand);width:24px}
.tourPie{display:flex;justify-content:space-between;align-items:center;gap:var(--e3);margin-top:var(--e4);flex-wrap:wrap}
@media(max-width:560px){.mpanel,.botpanel{width:100vw}.nums{gap:var(--e4)}}

.vig{display:block;font-size:var(--t-2xs);margin-top:3px;flex-basis:100%}
.vig-ok{color:var(--ink-3)}
.vig-baja{color:var(--warn);font-weight:600}
.uvenc{margin-top:var(--e2);font-size:var(--t-xs);color:var(--warn);
 background:var(--warn-soft);border-radius:var(--r-sm);padding:6px var(--e3)}
@keyframes destaca{0%{background:var(--brand-soft)}100%{background:transparent}}
.cambiado{animation:destaca 1.1s ease-out}

.vercomo{background:var(--sunken);border:1px dashed var(--line);border-radius:var(--r-md);
 padding:var(--e3) var(--e4);margin-bottom:var(--e3)}
.vercomo .mini{display:block;margin-bottom:var(--e2)}
.vercomo .seg{flex-wrap:wrap}

.explica{margin:10px 0 0;font-size:var(--t-sm);color:var(--ink-2);background:var(--sunken);
 border-radius:var(--r-sm);padding:var(--e3);border-left:3px solid var(--brand)}
.area .chiprow{margin-bottom:var(--e3)}

.dominio{margin:26px 0 10px;font-size:var(--t-lg);font-weight:600;color:var(--brand-ink)}
.grupo{margin:18px 0 8px;font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.pregunta-caja{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
 padding:var(--e3) var(--e4);margin-bottom:var(--e2);box-shadow:var(--s1)}
.preg{margin:0 0 10px;font-size:var(--t-sm);font-weight:500}
.pregunta-caja .chiprow{gap:6px}
.pregunta-caja textarea{margin-top:0}

.cifras{display:flex;gap:var(--e5);flex-wrap:wrap;margin:var(--e4) 0 var(--e2)}
.cifras div{font-size:var(--t-xs);color:var(--ink-2);min-width:76px}
.cifras b{display:block;font-size:26px;font-weight:600;color:var(--ink);line-height:1.1}
.cifras i{display:block;font-style:normal;font-size:var(--t-2xs);color:var(--stop);margin-top:2px}
.cifra-pct{margin-left:auto;text-align:right}
.cifra-pct b{color:var(--brand)}
.tabla-med{margin-top:var(--e4);border-top:1px solid var(--line);padding-top:var(--e3)}
.tm-cab,.tm-fila{display:grid;grid-template-columns:1fr 62px 84px 76px;gap:var(--e3);align-items:center}
.tm-cab{font-size:var(--t-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);
 padding-bottom:var(--e2);border-bottom:1px solid var(--line-soft)}
.tm-cab span:not(:first-child),.tm-fila span:not(:first-child){text-align:right}
.tm-fila{padding:var(--e2) 0;border-bottom:1px solid var(--line-soft);font-size:var(--t-sm)}
.tm-fila:last-child{border-bottom:none}
.tm-listo{opacity:.55}
.tm-nombre{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-dev{display:block;font-style:normal;font-size:var(--t-2xs);color:var(--stop);font-weight:400}
.tm-num{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.tm-falta{color:var(--stop);font-weight:600}
.tm-barra{display:block;height:6px;border-radius:var(--r-full);background:var(--line);overflow:hidden}
.tm-barra i{display:block;height:100%;background:var(--brand);border-radius:var(--r-full)}
@media(max-width:560px){
  .tm-cab,.tm-fila{grid-template-columns:1fr 46px 68px 56px;gap:var(--e2);font-size:var(--t-xs)}
  .cifras{gap:var(--e4)}.cifras b{font-size:22px}
}

.desplegable{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--e3);
 background:none;border:none;padding:0;cursor:pointer;text-align:left;color:var(--ink);font:inherit}
.desplegable i{display:block;font-style:normal;color:var(--ink-3);font-weight:400;margin-top:2px}
.desplegable em{font-style:normal;color:var(--ink-3);font-size:18px;line-height:1}
.desplegable:hover em{color:var(--brand)}
.bit-lista{margin-top:var(--e3);border-top:1px solid var(--line-soft);padding-top:var(--e3);
 max-height:360px;overflow-y:auto}
.bit{display:grid;grid-template-columns:1fr 1.2fr auto;gap:var(--e3);padding:7px 0;
 border-bottom:1px solid var(--line-soft);font-size:var(--t-xs)}
.bit:last-child{border-bottom:none}
.bit-q{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bit-a{color:var(--ink-2)}
.bit-c{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:560px){.bit{grid-template-columns:1fr auto;gap:var(--e2)}
 .bit-a{grid-column:1/-1;font-size:var(--t-2xs)}}

.desplegable{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--e3);
 background:none;border:none;padding:0;cursor:pointer;text-align:left;color:var(--ink);font:inherit}
.desplegable i{display:block;font-style:normal;color:var(--ink-3);font-weight:400;margin-top:3px}
.desplegable em{font-style:normal;color:var(--ink-3);font-size:18px;line-height:1}
.desplegable:hover em{color:var(--brand)}
.bit-lista{margin-top:var(--e3);border-top:1px solid var(--line-soft);padding-top:var(--e3);
 max-height:380px;overflow-y:auto}
.bit{display:grid;grid-template-columns:1fr 1.2fr auto;gap:var(--e3);padding:7px 0;
 border-bottom:1px solid var(--line-soft);font-size:var(--t-xs)}
.bit:last-child{border-bottom:none}
.bit-q{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bit-a{color:var(--ink-2)}
.bit-c{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:560px){.bit{grid-template-columns:1fr auto;gap:var(--e2)}
 .bit-a{grid-column:1/-1;font-size:var(--t-2xs)}}

.guiame-nuevo{position:relative;border-color:var(--brand);color:var(--brand);font-weight:600}
.guiame-nuevo::after{content:"";position:absolute;inset:-3px;border-radius:inherit;
 border:2px solid var(--brand);opacity:0;animation:latir 2.6s ease-out infinite;pointer-events:none}
@keyframes latir{
  0%{opacity:.7;transform:scale(1)}
  60%{opacity:0;transform:scale(1.22)}
  100%{opacity:0;transform:scale(1.22)}}
.guiame-punto{display:inline-block;width:7px;height:7px;border-radius:50%;
 background:var(--brand);margin-left:6px;vertical-align:middle}
@media (prefers-reduced-motion:reduce){
  .guiame-nuevo::after{animation:none;opacity:.5}}

/* ---- Pie de la aplicacion y aviso de cumplimiento */
.pieapp{margin:var(--e6) 0 var(--e4);padding-top:var(--e4);border-top:1px solid var(--line);
 display:flex;gap:var(--e4);align-items:center;flex-wrap:wrap;
 font-size:var(--t-xs);color:var(--ink-3)}
.pieapp button{background:none;border:none;padding:0;font:inherit;color:var(--brand);
 cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pieapp button:hover{color:var(--brand-ink)}
.pieapp .der{margin-left:auto}
.cp-panel{max-width:760px}
.cp-cuerpo{padding:var(--e4) 0 var(--e6);-webkit-user-select:none;user-select:none}
.cp-lead{font-size:var(--t-sm);color:var(--ink-2);margin:0 0 var(--e3)}
.cp-nota{font-size:var(--t-xs);line-height:1.6}
.cp-p{font-size:var(--t-xs);color:var(--ink-2);line-height:1.65}
.cp-h{margin:var(--e5) 0 var(--e3);font-size:var(--t-lg);font-weight:600;color:var(--brand-ink);
 padding-top:var(--e3);border-top:1px solid var(--line-soft)}
.cp-h i{font-style:italic;font-weight:400;font-size:var(--t-xs);color:var(--ink-3);margin-left:6px}
.cp-lista{display:flex;flex-direction:column;gap:var(--e2)}
.cp-item{background:var(--sunken);border-radius:var(--r-sm);padding:var(--e3)}
.cp-item b{display:block;font-size:var(--t-sm);margin-bottom:3px}
.cp-item b i{font-style:italic;font-weight:400;font-size:var(--t-2xs);color:var(--ink-3);margin-left:5px}
.cp-item p{margin:0;font-size:var(--t-xs);color:var(--ink-2);line-height:1.6}
.cp-let{display:inline-block;width:19px;height:19px;line-height:19px;text-align:center;
 border-radius:50%;background:var(--brand);color:#fff;font-size:11px;margin-right:6px}
.cp-ul{margin:0;padding-left:20px;font-size:var(--t-xs);color:var(--ink-2);line-height:1.65}
.cp-ul li{margin-bottom:6px}
.cp-pie{margin-top:var(--e5);padding-top:var(--e3);border-top:1px solid var(--line-soft);
 font-size:var(--t-2xs);color:var(--ink-3);line-height:1.6}
.cp-pie i{font-style:italic}
.dg{width:100%;height:auto;display:block;margin:var(--e2) 0 var(--e4);
 background:var(--sunken);border-radius:var(--r-sm);padding:var(--e2)}
.dg-z{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:4 4;rx:10}
.dg-zt{font:600 10px system-ui,sans-serif;fill:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}
.dg-c{fill:var(--surface);stroke:var(--line);stroke-width:1}
.dg-t{font:600 12px system-ui,sans-serif;fill:var(--ink)}
.dg-s{font:10px system-ui,sans-serif;fill:var(--ink-2)}
.dg-e{font:600 10px system-ui,sans-serif;fill:var(--brand-ink)}
.dg-l{stroke:var(--ink-3);stroke-width:1.2}
.dg-p{fill:var(--brand)}
.dg-n{font:700 10px system-ui,sans-serif;fill:#fff}
@media print{.cp-panel,.velo{display:none !important}}
.tm-llamar{display:block;font-style:normal;font-size:var(--t-2xs);color:var(--warn);font-weight:500;margin-top:2px}

.titular{margin:0 0 var(--e3);font-size:var(--t-lg);font-weight:600;line-height:1.35}
.titular span{font-weight:400;color:var(--ink-2)}
.titular span.v-tarde{color:var(--stop)}
.camino{display:flex;align-items:center;gap:var(--e3);flex-wrap:wrap;margin:0 0 var(--e4)}
.camino span{font-size:var(--t-xs);color:var(--ink-2)}
.camino span b{display:block;font-size:22px;font-weight:600;color:var(--ink);line-height:1.1}
.camino i{font-style:normal;color:var(--ink-3);font-size:18px}
.camino-fin b{color:var(--brand)}
.tm-cab,.tm-fila{grid-template-columns:minmax(0,1.2fr) 82px minmax(0,1.6fr)}
.tm-cab span:nth-child(3),.tm-fila span:nth-child(3){text-align:left}
.tm-accion{font-size:var(--t-xs);color:var(--warn);font-weight:500;line-height:1.35}
.tm-listo .tm-accion{color:var(--good);font-weight:400}
@media(max-width:560px){
  .tm-cab{display:none}
  .tm-fila{grid-template-columns:minmax(0,1fr) 64px}
  .tm-accion{grid-column:1/-1}
  .camino span b{font-size:19px}
}

/* resultados del buscador de codigos */
.dxlista{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.dxopt{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);
 border-radius:var(--r-sm);padding:10px 12px;cursor:pointer;font:inherit;color:var(--ink)}
.dxopt:hover{border-color:var(--brand);background:var(--brand-soft)}
.dxo-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.dxo-cab b{font-size:var(--t-sm)}
.dxo-desc{font-size:var(--t-sm);line-height:1.4}
.dxo-glosa{font-size:var(--t-xs);color:var(--ink-3);margin-top:2px;line-height:1.4}
.dxopt .vig{margin-top:5px}
/* firma de autor */
.firma{display:block;font-style:normal;font-size:var(--t-2xs);color:var(--ink-3);margin-top:3px}
/* indicaciones */
.ind{display:flex;gap:var(--e3);align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.ind:last-child{border-bottom:none}
.ind-txt{flex:1;min-width:0;font-size:var(--t-sm)}
.ind-txt>span{display:block}
.ind-ok .ind-txt>span{color:var(--ink-3);text-decoration:line-through}
.ind-resp{color:var(--good)}
.ind-btn{display:flex;gap:6px;flex:none}

.adminzona{border-color:var(--stop);background:var(--stop-soft)}
.btn.peligro{background:var(--stop);color:#fff;border-color:var(--stop)}
.btn.peligro:hover{filter:brightness(.92)}

/* Que se note que se guardo */
.toast.ok{background:var(--good);color:#fff}
.sello{display:inline-block;font-size:var(--t-2xs);font-weight:600;color:var(--good);
 background:var(--good-soft);border-radius:var(--r-full);padding:2px 9px;margin-left:8px;vertical-align:middle}
@keyframes destaca{0%{background:var(--good-soft);box-shadow:inset 4px 0 0 var(--good)}
 70%{background:var(--good-soft);box-shadow:inset 4px 0 0 var(--good)}100%{background:transparent;box-shadow:none}}
.cambiado{animation:destaca 2.4s ease-out}

/* Marca: el simbolo es azul marino y se pierde sobre fondo oscuro */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .logo, :root:not([data-theme="light"]) .logo-grande{
    background:#fff;border-radius:10px;padding:4px}
}
:root[data-theme="dark"] .logo, :root[data-theme="dark"] .logo-grande{background:#fff;border-radius:10px;padding:4px}

/* ---- El logo se construye al llegar y se deshace al entrar ---- */
@property --p { syntax:"<percentage>"; inherits:false; initial-value:0%; }
.logo-anim{position:relative;width:128px;aspect-ratio:200/172;margin:0 auto var(--e3)}
.logo-anim .capa{position:absolute;inset:0;width:100%;height:100%;display:block}
.capa-navy{opacity:0;transform:translateY(8px);animation:navy-entra .55s cubic-bezier(.2,.7,.2,1) .05s forwards}
.capa-azul{--p:0%;
  -webkit-mask:conic-gradient(from -90deg,#000 var(--p),transparent 0);mask:conic-gradient(from -90deg,#000 var(--p),transparent 0);
  animation:azul-dibuja .95s cubic-bezier(.4,0,.2,1) .35s forwards, azul-late 5.5s ease-in-out 2.4s infinite}
@keyframes navy-entra{to{opacity:1;transform:none}}
@keyframes azul-dibuja{to{--p:100%}}
@keyframes azul-late{0%,100%{filter:drop-shadow(0 0 0 rgba(17,108,211,0))}50%{filter:drop-shadow(0 0 7px rgba(17,108,211,.45))}}
.entrada.saliendo .capa-azul{animation:azul-borra .42s cubic-bezier(.4,0,.6,1) forwards}
.entrada.saliendo .capa-navy{animation:navy-sale .42s cubic-bezier(.4,0,.6,1) .08s forwards}
.entrada.saliendo .card,.entrada.saliendo .entrada-marca b,.entrada.saliendo .entrada-marca span{transition:opacity .3s;opacity:0}
@keyframes azul-borra{from{--p:100%}to{--p:0%}}
@keyframes navy-sale{to{opacity:0;transform:translateY(-10px) scale(1.08)}}
@media(prefers-reduced-motion:reduce){
  .capa-navy,.capa-azul,.entrada.saliendo .capa-azul,.entrada.saliendo .capa-navy{animation:none!important;opacity:1;transform:none;--p:100%}
}
@keyframes marca-asienta{from{opacity:0;transform:scale(1.35) translateY(6px)}to{opacity:1;transform:none}}
.marca.recien{animation:marca-asienta .5s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.marca.recien{animation:none}}

/* El logo animado de la entrada, sobre pastilla clara en modo oscuro */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-anim{background:#fff;border-radius:16px;padding:10px;box-sizing:content-box}}
:root[data-theme="dark"] .logo-anim{background:#fff;border-radius:16px;padding:10px;box-sizing:content-box}
.avatar-btn{border:none;cursor:pointer;font:inherit;padding:0}
.avatar-btn:hover{box-shadow:0 0 0 3px var(--brand-soft)}
.yo-link{color:inherit;text-decoration:none;border-bottom:1px dotted transparent}
.yo-link:hover{border-bottom-color:var(--ink-3)}
.panel .perfil{margin-top:6px}

.revisar{background:#fff6e0;border:1px solid var(--warn);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:12px;font-size:var(--t-sm)}
.revisar p{margin:6px 0 8px;color:var(--ink-2);line-height:1.45}



/* Buscador de la bandeja: entre el tablero y la lista. Destaca por tamano y
   por el azul de la marca, con lupa; sin colores fuera de la paleta. */
.busca{position:relative;display:flex;gap:10px;align-items:center;margin:var(--e3) 0}
.busca .lupa{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--brand);pointer-events:none}
.busca .fld{flex:1;margin:0;height:50px;padding:0 16px 0 46px;font-size:var(--t-md,16px);font-weight:500;color:var(--ink);
  background:var(--surface);border:1.5px solid var(--brand);border-radius:999px;
  box-shadow:0 1px 2px rgba(15,36,67,.06),0 6px 20px rgba(17,108,211,.10);transition:box-shadow .15s,border-color .15s}
.busca .fld::placeholder{color:var(--ink-3);font-weight:400}
.busca .fld:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft),0 6px 20px rgba(17,108,211,.14)}
.busca .btn{height:38px;border-radius:999px}

/* sugerencias de codificacion asistida */
.card.ia{margin-top:12px;border-left:4px solid var(--brand)}
.ia-cab{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sug{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;margin-top:10px;background:var(--surface)}
.sug-alta{border-left:4px solid var(--good,#1f7a4d)}.sug-media{border-left:4px solid var(--brand)}.sug-baja{border-left:4px solid var(--ink-3)}
.sug-brecha{border-left:4px solid var(--warn);background:#fff9ec}
.sug-cab{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.sug-cab b{font-size:1.05em}.sug-cab span{color:var(--ink-2)}.sug-cab .conf{margin-left:auto;font-style:normal;font-size:var(--t-sm);color:var(--ink-3)}
.sug blockquote{margin:8px 0;padding:6px 10px;border-left:3px solid var(--line);color:var(--ink-2);font-style:italic;font-size:var(--t-sm)}
.sug .btnrow{margin-top:8px}

.recap{margin-top:14px;padding:10px 12px;border-radius:var(--r-sm);background:#fff9ec;border:1px dashed var(--warn)}
.sug-recap{border-left:4px solid var(--warn)}

/* tabla de codigos para validacion */
.ia-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--t-sm);margin-right:4px}
.p-ok{background:#e4f3ea;color:#1f5a3a}.p-ia{background:var(--brand-soft);color:var(--brand-ink)}.p-no{background:#f1f3f6;color:var(--ink-2)}.p-rc{background:#fff2d6;color:#6b4300}.p-neu{background:#f1f3f6;color:var(--ink)}
.tcod{width:100%;border-collapse:collapse;margin-top:10px;font-size:var(--t-sm);table-layout:fixed}
.tcod th{text-align:left;color:var(--ink-3);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--line)}
.tcod td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.4}
.tcod th:nth-child(1),.tcod td:nth-child(1){width:24%}.tcod th:nth-child(2),.tcod td:nth-child(2){width:16%}.tcod th:nth-child(3),.tcod td:nth-child(3){width:15%}.tcod th:nth-child(5),.tcod td:nth-child(5){width:19%}
.tcod tr.grp td{background:var(--bg);font-weight:600;color:var(--ink);padding:7px 8px}
.tcod .cod{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05em;margin-right:6px}
.tcod .cond{font-weight:500}
.tcod blockquote{margin:4px 0 0;padding:4px 8px;border-left:3px solid var(--line);color:var(--ink-2);font-style:italic}
.tcod .pag{font-style:normal;color:var(--brand);text-decoration:none;font-weight:600;white-space:nowrap}
.tcod .acc .btn{margin:0 4px 4px 0}
.tcod .motivo{display:flex;gap:6px;margin-top:6px}.tcod .motivo .fld{margin:0;min-width:0}
.firma{color:var(--ink-3)}
.vacio-ia{border:1px dashed var(--line);border-radius:var(--r-sm);padding:12px 14px;color:var(--ink-2);margin-top:10px;line-height:1.5}
.aviso-ia{border-color:var(--warn);background:#fff9ec}
.rech{margin-top:10px;color:var(--ink-3)}.rech summary{cursor:pointer}
@media(max-width:700px){
  .tcod thead{display:none}.tcod tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.tcod tr.grp{padding:0}
  .tcod td{display:block;width:auto!important;border:none;padding:3px 0}.tcod td:empty{display:none}
}


.tcod .motivo[hidden]{display:none}
.tcod th:nth-child(5),.tcod td:nth-child(5){width:21%}.tcod th:nth-child(3),.tcod td:nth-child(3){width:13%}
.prog{height:6px;background:var(--brand-soft);border-radius:3px;overflow:hidden;margin:10px 0 8px}
.prog i{display:block;height:100%;width:8%;background:var(--brand);border-radius:3px;transition:width .6s ease;position:relative}
.prog i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:brillo 1.3s linear infinite}
@keyframes brillo{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.pasos{margin:0 0 10px;padding:0;list-style:none;display:flex;gap:14px;flex-wrap:wrap;font-size:var(--t-sm);color:var(--ink-3)}
.pasos li::before{content:"○ ";color:var(--ink-3)}.pasos li.activo{color:var(--brand-ink);font-weight:600}.pasos li.activo::before{content:"● ";color:var(--brand)}
.pasos li.hecho{color:var(--ink-2)}.pasos li.hecho::before{content:"✓ ";color:var(--good,#1f7a4d)}
.seguro{margin:8px 0 4px;font-size:var(--t-sm);color:var(--ink-2)}.seguro summary{cursor:pointer;color:var(--brand-ink);font-weight:600}
.seguro ul{margin:8px 0 0;padding-left:18px}.seguro li{margin:4px 0;line-height:1.45}
@media(prefers-reduced-motion:reduce){.prog i::after{animation:none}}

/* ---- ficha: indice fijo y acordeon ---- */
.caso-grid{display:grid;grid-template-columns:230px 1fr;gap:16px;align-items:start;margin-top:12px}
.rail{position:sticky;top:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px}
.rail-t{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:4px 8px 6px}
.rail a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 8px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:var(--t-sm)}
.rail a i{grid-row:1/3}.rail a span{font-weight:500}.rail a small{color:var(--ink-3);font-size:11px;grid-column:2}
.rail a.on{background:var(--brand-soft);color:var(--brand-ink)}
.rail-falta{margin:8px 4px 2px;padding:8px 10px;border-radius:8px;background:#fff6e0;color:#6b4300;font-size:var(--t-sm);line-height:1.4}
.secs{display:flex;flex-direction:column;gap:8px;min-width:0}
.acc{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.acc-h{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;user-select:none}
.acc-h b{font-size:1em}.acc-h .res{margin-left:auto;color:var(--ink-2);font-size:var(--t-sm);text-align:right}.acc-h .chev{color:var(--ink-3);font-size:12px}
.acc-h .sello{margin-left:6px}
.acc-b{padding:0 14px 14px;border-top:1px solid var(--line)}
.acc-b>.card{border:none;box-shadow:none;padding-left:0;padding-right:0}
.acc-b>.hint,.acc-b>.catalogo{margin-top:10px}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.d-ok{background:#1f8a5b}.d-pd,.d-li{background:#e6a100}.d-no{background:#c9d3e0}
.st{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.leyenda-st{display:flex;gap:16px;flex-wrap:wrap;font-size:var(--t-sm);color:var(--ink-2);margin:10px 0 2px}
/* ---- tabla de codigos: cuatro columnas ---- */
.tcod th:nth-child(1),.tcod td:nth-child(1){width:30%}.tcod th:nth-child(2),.tcod td:nth-child(2){width:20%}.tcod th:nth-child(3),.tcod td:nth-child(3){width:32%}.tcod th:nth-child(4),.tcod td:nth-child(4){width:18%}
.tcod th:nth-child(5),.tcod td:nth-child(5){width:auto}
.tcod td{vertical-align:middle}
.tcod blockquote{margin:3px 0 0;padding:0;border:none;color:var(--ink-2);font-style:italic;font-size:var(--t-sm);white-space:normal}
.tcod .acc-td{white-space:nowrap}.tcod .acc-td .btn{margin:0 2px 2px 0}
.tcod .x{color:var(--ink-3);text-decoration:none;font-size:var(--t-sm);margin-left:8px}.tcod .x:hover{color:var(--ink)}
.nota-acc{margin-top:8px}
@media(max-width:760px){
  .caso-grid{display:block}
  .rail{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:6px;margin-bottom:8px}
  .rail-t,.rail-falta,.rail a small{display:none}
  .rail a{display:inline-flex;gap:6px;white-space:nowrap;padding:6px 10px;border-radius:999px;background:var(--bg)}
  .acc-h .res{display:none}
  .tcod .acc-td{white-space:normal}
}

/* ---- acciones por icono ---- */
.tcod th:nth-child(4),.tcod td:nth-child(4){width:14%}
.tcod th:nth-child(3),.tcod td:nth-child(3){width:36%}
.acts{display:flex;gap:6px;justify-content:flex-end;position:relative}
.ib{position:relative;width:34px;height:34px;padding:0;border-radius:8px;border:1px solid var(--line);background:var(--surface);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);cursor:pointer}
.ib .ib-i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;display:block}
.ib.pri{background:var(--brand-soft);border-color:#b5d4f4;color:var(--brand-ink)}
.ib.okb{background:#e4f3ea;border-color:#b9dcc7;color:#1f5a3a}
.ib.sec{color:var(--ink-3)}
.ib:hover,.ib:focus-visible{filter:brightness(.96);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
.ib .tip{display:none;position:absolute;bottom:calc(100% + 8px);right:0;background:var(--ink);color:#fff;font-size:12px;padding:6px 9px;border-radius:6px;white-space:nowrap;font-weight:400;z-index:9;pointer-events:none}
.ib .tip::after{content:"";position:absolute;top:100%;right:12px;border:5px solid transparent;border-top-color:var(--ink)}
.ib:hover .tip,.ib:focus-visible .tip{display:block}
.ib .ib-lbl{display:none}
.acts .motivo{position:absolute;right:0;top:calc(100% + 6px);z-index:8;width:280px;display:flex;gap:6px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(15,36,67,.12)}
.acts .motivo[hidden]{display:none}
@media(hover:none),(max-width:760px){
  .ib{width:auto;min-width:56px;height:auto;padding:6px 8px;gap:2px}
  .ib .ib-lbl{display:block;font-size:10.5px;line-height:1.1;white-space:nowrap}
  .ib .tip{display:none!important}
  .acts{justify-content:flex-start;flex-wrap:wrap}
  .acts .motivo{position:static;width:100%}
}

/* ---- PRAPARE por bloques ---- */
.pr-nav{position:sticky;top:0;z-index:6;display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px;margin:10px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.pr-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:var(--t-sm);cursor:pointer}
.pr-chip small{color:var(--ink-3)}.pr-chip.lleno small{color:#1f8a5b}
.pr-chip.on{background:var(--brand-soft);border-color:#b5d4f4;color:var(--brand-ink);font-weight:600}
.pr-total{margin-left:auto;font-size:var(--t-sm);color:var(--ink-2)}
.pr-acc{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:8px}
.pr-h{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;user-select:none}
.pr-h .res{margin-left:auto;color:var(--ink-2);font-size:var(--t-sm)}.pr-h .chev{color:var(--ink-3);font-size:12px}
.pr-b{padding:4px 14px 14px;border-top:1px solid var(--line)}
@media(max-width:760px){.pr-nav{overflow-x:auto;flex-wrap:nowrap}.pr-chip{white-space:nowrap}.pr-total{display:none}}

/* ---- bandeja con carril de estados ---- */
.bandeja-grid{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:start;margin-top:12px}
.bandeja-cuerpo{min-width:0}
.rail a.vacia{opacity:.55}
.rail-bandeja a{grid-template-rows:auto;grid-template-columns:auto 1fr auto}.rail-bandeja a small{grid-column:3;font-size:12px}
.tabla-med summary{cursor:pointer;font-weight:600;color:var(--ink);padding:6px 0}
.tabla-med summary .mini{font-weight:400;margin-left:6px}
/* ---- usuarios plegados ---- */
.avatar-s{width:30px;height:30px;font-size:12px;flex:none}
.acc-h .u-linea{display:flex;flex-direction:column;min-width:0}.acc-h .u-linea .mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-h .tag{margin-left:8px}
.acts-u{justify-content:flex-start}
.acc.apagada{opacity:.7}
@media(max-width:760px){
  .bandeja-grid{display:block}
  .rail-bandeja a{display:inline-flex}
  .acc-h .u-linea .mini{display:none}
}

a.ib{text-decoration:none}
.ind .acts,.adj .acts{justify-content:flex-start}

/* ---- legibilidad: encabezados y textos de apoyo (auditado con estilos calculados) ---- */
.acc-h,.pr-h{padding:13px 16px;gap:12px}
.acc-h b,.pr-h b{font-size:17px;font-weight:600;letter-spacing:-.005em;line-height:1.25}
.acc-h .res,.pr-h .res{font-size:var(--t-sm);color:var(--ink-2)}
.acc-h .chev,.pr-h .chev{color:var(--ink-2);font-size:14px}
.rail-t{font-size:12px;color:var(--ink-2);font-weight:600}
.rail a span{font-size:var(--t-md)}
.rail a small{font-size:12px;color:var(--ink-2)}
.tcod th{color:var(--ink-2);font-size:var(--t-sm)}
.tcod .mini,.acc-h .mini,.rail .mini{color:var(--ink-2)}
.leyenda-st,.nota-acc{color:var(--ink-2)}
.pr-chip small,.pr-total{color:var(--ink-2)}
.mini{color:var(--ink-2)}
.dot{width:10px;height:10px}


/* fondos claros fijos: texto oscuro fijo tambien, para que valgan en modo oscuro */
.aviso-ia,.recap,.sug-brecha,.rail-falta{color:#6b4300}
.aviso-ia .mini,.recap .mini{color:#6b4300}

.ia-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:0 0 12px;border-radius:var(--r-sm);background:var(--brand-soft);border:1px solid var(--brand)}
.ia-banner b{font-size:var(--t-lg);color:var(--brand-ink)}.ia-banner .mini{margin:4px 0 0;max-width:60ch}
.btn-ia{white-space:nowrap;flex:none;box-shadow:0 2px 10px rgba(17,108,211,.25)}
.acc-h .btn-ia{margin-left:8px;padding:6px 12px;font-size:var(--t-sm)}
@media(max-width:760px){.ia-banner{flex-direction:column;align-items:stretch}.acc-h .btn-ia{display:none}}

/* ---- distinguir lo que ya estaba de lo que la IA propone ---- */
.tcod tr.grp.grp-caso td{background:var(--bg);color:var(--ink)}
.tcod tr.grp.grp-ia td{background:var(--brand-soft);color:var(--brand-ink);border-left:4px solid var(--brand)}
.tcod tr.grp.grp-lista td{background:#fff2d6;color:#6b4300;border-left:4px solid #e6a100}
.tcod tr.fila-ia td{background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}
.tcod tr.fila-ia td:first-child{border-left:4px solid var(--brand)}
.tcod tr.fila-lista td,.tcod tr.fila-falta td{background:color-mix(in srgb,#fff2d6 45%,var(--surface))}
.tcod tr.fila-lista td:first-child,.tcod tr.fila-falta td:first-child{border-left:4px solid #e6a100}
.tcod .cond .pill{margin-bottom:3px}

.como-leer{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;margin:10px 0 6px;background:var(--surface);font-size:var(--t-sm);color:var(--ink-2);line-height:1.45}
.como-leer>b{display:block;color:var(--ink);font-size:var(--t-md);margin-bottom:8px}
.cl-fila{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin:5px 0}
.cl-fila b{color:var(--ink)}
.cl-muestra{display:block;width:18px;height:18px;border-radius:4px;border:1px solid var(--line);margin-top:2px}
.cl-caso{background:var(--bg)}.cl-ia{background:var(--brand-soft);border-left:4px solid var(--brand)}.cl-lista{background:#fff2d6;border-left:4px solid #e6a100}
.como-leer .st{white-space:normal}

/* ---- colores de los grupos de la tabla de codigos (decision de Gerardo) ---- */
:root{--c-ia:#ff2d95;--c-ia-soft:#ffe3f1;--c-ia-ink:#8a0a4d;--c-lista:#e6a100;--c-lista-soft:#fff2d6;--c-lista-ink:#6b4300;--c-falta:#d94a4a;--c-falta-soft:#fde5e5;--c-falta-ink:#7a1f1f;--c-caso:#1f8a5b;--c-caso-soft:#e4f3ea;--c-caso-ink:#1f5a3a}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--c-ia-soft:#4a1230;--c-ia-ink:#ffb3d6;--c-lista-soft:#3d2e0a;--c-lista-ink:#ffd27a;--c-falta-soft:#421515;--c-falta-ink:#ffb4b4;--c-caso-soft:#12351f;--c-caso-ink:#a9e5c4}}
.tcod tr.grp.grp-caso td{background:var(--c-caso-soft);color:var(--c-caso-ink);border-left:4px solid var(--c-caso)}
.tcod tr.grp.grp-ia td{background:var(--c-ia-soft);color:var(--c-ia-ink);border-left:4px solid var(--c-ia)}
.tcod tr.grp.grp-lista td{background:var(--c-lista-soft);color:var(--c-lista-ink);border-left:4px solid var(--c-lista)}
.tcod tr.grp.grp-falta td{background:var(--c-falta-soft);color:var(--c-falta-ink);border-left:4px solid var(--c-falta)}
.tcod tr.fila-caso td:first-child{border-left:4px solid var(--c-caso)}
.tcod tr.fila-ia td{background:color-mix(in srgb,var(--c-ia-soft) 55%,var(--surface))}
.tcod tr.fila-ia td:first-child{border-left:4px solid var(--c-ia)}
.tcod tr.fila-lista td{background:color-mix(in srgb,var(--c-lista-soft) 55%,var(--surface))}
.tcod tr.fila-lista td:first-child{border-left:4px solid var(--c-lista)}
.tcod tr.fila-falta td{background:color-mix(in srgb,var(--c-falta-soft) 55%,var(--surface))}
.tcod tr.fila-falta td:first-child{border-left:4px solid var(--c-falta)}
.pill.p-ia{background:var(--c-ia-soft);color:var(--c-ia-ink);border:1px solid var(--c-ia)}
.pill.p-rc{background:var(--c-lista-soft);color:var(--c-lista-ink)}
.pill.p-falta{background:var(--c-falta-soft);color:var(--c-falta-ink);border:1px solid var(--c-falta)}
.pill.p-caso{background:var(--c-caso-soft);color:var(--c-caso-ink)}
.cl-caso{background:var(--c-caso-soft);border-left:4px solid var(--c-caso)}
.cl-ia{background:var(--c-ia-soft);border-left:4px solid var(--c-ia)}
.cl-lista{background:var(--c-lista-soft);border-left:4px solid var(--c-lista)}
.cl-falta{background:var(--c-falta-soft);border-left:4px solid var(--c-falta)}



/* ---- orden segun las guias ---- */
.pos-num{display:inline-block;min-width:2em;margin-right:6px;padding:1px 6px;border-radius:6px;background:var(--bg);color:var(--ink-2);font-size:var(--t-sm);font-weight:600;text-align:center}
.pos-sug{margin-top:4px;color:var(--ink-2)}
.orden-guias{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--r-sm);padding:12px 14px;margin:10px 0;background:var(--surface)}
.orden-guias.difiere{border-left-color:#e6a100;background:color-mix(in srgb,#fff2d6 40%,var(--surface))}
.og-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.og-lista{margin:0;padding-left:22px}.og-lista li{margin:3px 0}
.og-regla{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:var(--t-sm);font-weight:600}

/* ---- guia de secuencia ---- */
.panel-ancho{max-width:720px;width:min(96vw,720px)}
.gs-pasos{display:grid;grid-template-columns:1fr;gap:10px;margin:8px 0 12px}
.gs-paso{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.gs-paso i{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:600;margin-bottom:6px}
.gs-paso b{display:block;margin-bottom:3px}.gs-paso span{color:var(--ink-2);font-size:var(--t-sm)}
.gs-cab3,.gs-regla{display:grid;grid-template-columns:26% 1fr 32%;gap:12px;align-items:start}
.gs-cab3{font-size:var(--t-sm);color:var(--ink-2);font-weight:600;padding:6px 0}
.gs-regla{padding:10px 0;border-top:1px solid var(--line);font-size:var(--t-sm)}
.gs-n{font-weight:600}.gs-n small{display:block;color:var(--brand-ink);font-weight:600;margin-top:2px}
.gs-dice{color:var(--ink-2)}
.gs-mal{color:#7a1f1f;text-decoration:line-through}.gs-bien{color:#1f5a3a;font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.gs-portal p{margin:0 0 10px;line-height:1.5}
.enlace-guia{font-size:var(--t-sm);font-weight:500;color:var(--brand-ink);text-decoration:none;margin-left:10px}
@media(max-width:700px){.gs-cab3{display:none}.gs-regla{grid-template-columns:1fr}}

.gate-nombre{border-left:4px solid #e6a100;background:#fff9ec;color:#0f2443}
.gate-nombre b{display:block;margin-bottom:6px}.gate-nombre p{margin:0 0 8px;color:#3d3d3d}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .gate-nombre{background:#3d2e0a;color:#ffd27a}:root:not([data-theme="light"]) .gate-nombre p{color:#ffe4b0}}

/* Fecha de aprobacion: en la tarjeta de la bandeja y en la cabecera de la ficha. */
.aprob-pill{display:block;font-size:var(--t-xs);font-weight:600;color:var(--c-caso,#1f8a5b);margin-top:4px}
.aprob-linea{margin:6px 0 0;font-size:var(--t-sm);font-weight:600;color:var(--c-caso,#1f8a5b)}
/* Filtro por fecha de aprobacion en la bandeja. */
.fechas-aprob{gap:6px}
.fechas-aprob .fa-t{font-size:var(--t-sm);color:var(--ink-3);margin-right:4px;white-space:nowrap}
.rango-fechas{display:inline-flex;gap:10px;align-items:center;margin-left:auto}
.rango-fechas label{font-size:var(--t-sm);color:var(--ink-3);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.rango-fechas input[type=date]{font:inherit;font-size:var(--t-sm);padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
@media(max-width:760px){.rango-fechas{margin-left:0}}
