/* Elévate OS · design system oficial (manual 2026) */
@font-face{font-family:"Luxia";src:url("/static/fonts/LuxiaDemo-MediumDisplay.woff2?v=1") format("woff2"),url("/static/fonts/LuxiaDemo-MediumDisplay.otf") format("opentype");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/Montserrat-Regular.woff2?v=1") format("woff2"),url("/static/fonts/Montserrat-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/Montserrat-SemiBold.woff2?v=1") format("woff2"),url("/static/fonts/Montserrat-SemiBold.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Montserrat";src:url("/static/fonts/Montserrat-Bold.woff2?v=1") format("woff2"),url("/static/fonts/Montserrat-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
:root{
  --blanco:#FFFFFF;--tinta:#26291F;--tinta-suave:#5A5D52;
  --verde:#6C8A69;--verde-profundo:#52694F;--verde-velo:#E2E7E1;
  --marron:#9C5C48;--marron-profundo:#7C4636;--marron-velo:#EBDEDA;
  --beige:#CEC4A8;--beige-velo:#F5F3EE;--linea:#E0DCCE;
  --ok:#3E6B39;--ok-bg:#E2ECDD;--warn:#94660F;--warn-bg:#F3E8CC;--crit:#9C2B1E;--crit-bg:#F3DCD6;
  --disp:"Luxia","Cormorant Garamond",Georgia,serif;--ui:Montserrat,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--beige-velo);color:var(--tinta);font-family:var(--ui);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--marron-profundo)}
.num{font-variant-numeric:tabular-nums}
button,input,select,textarea{font-family:var(--ui);font-size:14px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--marron);outline-offset:2px}

/* barra superior — fija, logo, píldoras, menú de cuenta */
.top{position:sticky;top:0;z-index:60;background:var(--verde-profundo);color:#fff;display:flex;align-items:center;gap:16px;padding:9px 20px;flex-wrap:wrap;box-shadow:0 2px 16px rgba(38,41,31,.22)}
.top .marca{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff;flex:none}
.top .iso{width:38px;height:38px;border-radius:50%;background:#FDFCF7;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.top .iso img{width:20px;height:auto;display:block}
.top .mtx{display:flex;flex-direction:column;line-height:1.12}
.top .mtx b{font-family:var(--disp);font-weight:500;font-size:19px;letter-spacing:.12em}
.top .mtx b .v{color:#E8C9B8}
.top .mtx span{font-size:8.5px;letter-spacing:.36em;opacity:.85}
.top nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.top nav a{color:#fff;text-decoration:none;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);opacity:.92;transition:all .13s ease;line-height:1}
.top nav a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4);opacity:1;transform:translateY(-1px)}
.top nav a.on{background:#FDFCF7;color:var(--verde-profundo);border-color:#FDFCF7;opacity:1}
.ham{display:none;margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;align-items:center;justify-content:center;cursor:pointer}
.ham svg{width:17px;height:17px}
.umenu{margin-left:auto;position:relative;flex:none}
.umenu summary{list-style:none;cursor:pointer;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;color:#fff;transition:all .13s ease}
.umenu summary::-webkit-details-marker{display:none}
.umenu summary:hover,.umenu[open] summary{background:#FDFCF7;color:var(--verde-profundo);border-color:#FDFCF7}
.umenu summary svg{width:17px;height:17px}
.umenu .ud{position:absolute;right:0;top:46px;background:#fff;border:1px solid var(--linea);border-radius:14px;box-shadow:0 14px 38px rgba(38,41,31,.22);padding:14px 16px;min-width:215px;color:var(--tinta);display:flex;flex-direction:column;gap:2px;z-index:70}
.umenu .ud b{font-size:13.5px}
.umenu .ud small{color:var(--tinta-suave);font-size:11.5px;margin-bottom:8px}
.umenu .ud a{color:var(--tinta);text-decoration:none;font-size:13px;padding:8px 10px;border-radius:9px;margin:0 -10px}
.umenu .ud a:hover{background:var(--beige-velo)}
.umenu .ud a.salir{color:var(--crit)}
@media(max-width:980px){
  .ham{display:inline-flex}
  .umenu{margin-left:8px}
  .top nav{display:none;order:9;width:100%;flex-direction:column;align-items:stretch;gap:5px;padding:10px 0 4px;border-top:1px solid rgba(255,255,255,.14);margin-top:4px}
  .top.abierta nav{display:flex}
  .top nav a{text-align:center;padding:10px 14px;font-size:13.5px}
}

.cont{max-width:1160px;margin:0 auto;padding:26px 22px 70px}
h1.pag{font-family:var(--disp);font-weight:500;font-size:30px;margin-bottom:4px}
.sub{color:var(--tinta-suave);font-size:13.5px;margin-bottom:20px}
h2.sec{font-family:var(--disp);font-weight:500;font-size:21px;margin:26px 0 10px}

.tar{background:var(--blanco);border:1px solid var(--linea);border-radius:12px;padding:16px 18px}
.rej{display:grid;gap:14px}
.r2{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr))}
.r4{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.tar h3{font-size:14px;font-weight:700;margin-bottom:10px}
.tar h3 small{color:var(--tinta-suave);font-weight:400}

.ficha .big{font-family:var(--disp);font-weight:500;font-size:34px;line-height:1.1}
.ficha .lbl{font-size:12.5px;color:var(--tinta-suave);margin-top:3px}

table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:11px;letter-spacing:.02em;color:var(--tinta-suave);font-weight:600;padding:0 10px 7px 0;border-bottom:1px solid var(--linea)}
td{padding:9px 10px 9px 0;border-bottom:1px solid var(--beige-velo);vertical-align:top}
tr:last-child td{border-bottom:none}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.p-ok{color:var(--ok);background:var(--ok-bg)}
.p-warn{color:var(--warn);background:var(--warn-bg)}
.p-crit{color:var(--crit);background:var(--crit-bg)}
.p-info{color:var(--verde-profundo);background:var(--verde-velo)}
.p-neutro{color:var(--tinta-suave);background:var(--beige-velo)}

.btn{display:inline-block;background:var(--marron);color:#fff;border:none;border-radius:6px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--marron-profundo)}
.btn.sec{background:var(--blanco);color:var(--marron-profundo);border:1px solid var(--marron)}
.btn.mini{padding:4px 10px;font-size:12px}
.btn.verde{background:var(--verde-profundo)}
.btn.peligro{background:var(--crit)}

form.linea{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
label.cmp{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--tinta-suave)}
input[type=text],input[type=number],input[type=date],input[type=password],input[type=email],input[type=tel],input[type=time],input[type=month],input[type=url],input[type=search],select,textarea{border:1px solid var(--linea);border-radius:6px;padding:8px 10px;background:#fff;color:var(--tinta);min-width:130px;appearance:none;-webkit-appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235A5D52' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px}
textarea{width:100%;min-height:64px}

.bar{display:grid;grid-template-columns:190px 1fr 52px;gap:10px;align-items:center;font-size:13px;margin-bottom:8px}
.bar .tk{height:11px;background:var(--beige-velo);border:1px solid var(--linea);border-radius:4px;overflow:hidden}
.bar .fl{height:100%;background:var(--verde);border-radius:3px;min-width:2px}
.bar .vl{color:var(--tinta-suave);text-align:right}

.stripe{border-left:3px solid var(--linea);padding-left:10px}
.s-crit{border-left-color:var(--crit)}.s-warn{border-left-color:var(--warn)}.s-ok{border-left-color:var(--ok)}

.cap{font-family:var(--disp);font-weight:500;font-size:17px;color:var(--verde-profundo);margin:18px 0 6px}
.ditem{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;padding:9px 0;border-bottom:1px solid var(--beige-velo)}
.ditem:last-child{border-bottom:none}
.ditem .t{font-size:13.5px;font-weight:600}
.ditem .r{font-size:12.5px;color:var(--tinta-suave);max-width:70ch}
.ditem .o{font-size:12.5px;color:var(--marron-profundo)}

.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--verde-profundo)}
.login .caja{background:#fff;border-radius:14px;padding:38px 34px;width:360px;max-width:92vw}
.login .marca{text-align:center;margin-bottom:22px}
.login .marca b{font-family:var(--disp);font-weight:500;font-size:30px;letter-spacing:.12em;color:var(--verde-profundo)}
.login .marca b .v{color:var(--marron)}
.login .marca div{font-size:10px;letter-spacing:.4em;color:var(--tinta-suave);margin-top:2px}
.login label.cmp{margin-bottom:12px}
.login input{width:100%}
.err{background:var(--crit-bg);color:var(--crit);border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:12px}
.aviso{background:var(--verde-velo);color:var(--verde-profundo);border-radius:6px;padding:8px 12px;font-size:13px;margin:10px 0}

.migas{font-size:12.5px;color:var(--tinta-suave);margin-bottom:14px}
.migas a{color:var(--tinta-suave)}
.carpetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:9px}
.carpeta{background:var(--beige-velo);border:1px solid var(--linea);border-radius:8px;padding:9px 12px;font-size:12.5px;text-decoration:none;color:var(--tinta)}
.carpeta b{display:block;font-size:12.5px}
.carpeta span{color:var(--tinta-suave);font-size:11.5px}
.carpeta.on{background:var(--verde-velo);border-color:var(--verde)}
footer.pie{border-top:1px solid var(--linea);margin-top:40px;padding:16px 22px;font-size:12px;color:var(--tinta-suave);text-align:center}

/* calendario unificado */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal .dia{background:var(--blanco);border:1px solid var(--linea);border-radius:8px;min-height:88px;padding:6px 7px;font-size:11.5px;overflow:hidden}
.cal .dia.hoy{border-color:var(--marron);box-shadow:0 0 0 1px var(--marron)}
.cal .dia.fuera{opacity:.45}
.cal .dia .dnum{font-weight:700;font-size:11px;color:var(--tinta-suave);margin-bottom:3px}
.cal .ev{display:flex;gap:4px;align-items:flex-start;margin-bottom:2px;line-height:1.25}
.cal .ev i{width:8px;height:8px;border-radius:50%;flex:none;margin-top:3px}
.cal .ev a{color:var(--tinta);text-decoration:none}
.cal-cab{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:10.5px;color:var(--tinta-suave);font-weight:700;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.leyenda{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin:8px 0}
.leyenda span{display:inline-flex;gap:5px;align-items:center}
.leyenda i{width:10px;height:10px;border-radius:50%;display:inline-block}

/* explorador de expediente */
.exp-nav{font-size:12.5px;margin-bottom:10px;color:var(--tinta-suave)}
.exp-nav a{color:var(--marron-profundo)}

/* botón flotante EVA */
.eva-fab{position:fixed;right:18px;bottom:18px;z-index:60;background:var(--verde-profundo);color:#fff;border-radius:999px;padding:12px 18px;font-weight:700;font-size:13.5px;text-decoration:none;box-shadow:0 4px 16px rgba(38,41,31,.3)}
.eva-fab:hover{background:var(--verde)}

/* ── v4.3: sensación de última Mac ── */
/* transiciones: las hace la navegación suave (nav.js) con document.startViewTransition */
::view-transition-old(root),::view-transition-new(root){animation-duration:.14s}
/* lista de archivos tipo Finder moderno */
.flist{display:flex;flex-direction:column;margin-top:12px}
.frow{display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:12px;transition:background .12s ease;cursor:pointer;text-decoration:none;color:var(--tinta)}
.frow:hover{background:var(--beige-velo)}
.frow+.frow{border-top:1px solid var(--beige-velo)}
.frow .fnom{flex:1;min-width:0}
.frow .fnom b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frow .fnom small{color:var(--tinta-suave);font-size:11.5px}
.frow .facc{display:flex;gap:6px;flex:none}
.ibtn{width:34px;height:34px;border-radius:10px;border:1px solid var(--linea);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--tinta-suave);transition:all .12s ease;text-decoration:none;padding:0}
.ibtn:hover{border-color:var(--marron);color:var(--marron-profundo);transform:translateY(-1px);box-shadow:0 3px 8px rgba(38,41,31,.15)}
.ibtn.on{background:var(--verde-velo);color:var(--verde-profundo);border-color:var(--verde)}
.ibtn svg{width:16px;height:16px}
/* selector de archivo bonito */
.fsub{position:relative;overflow:hidden;display:inline-flex}
.fsub input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
/* checkbox elegante */
.chk{appearance:none;-webkit-appearance:none;width:23px;height:23px;border:2px solid var(--linea);border-radius:7px;cursor:pointer;position:relative;background:#fff;transition:all .14s ease;flex:none;margin:0}
.chk:hover{border-color:var(--verde)}
.chk:checked{background:var(--verde-profundo);border-color:var(--verde-profundo)}
.chk:checked::after{content:"";position:absolute;left:6.5px;top:2.5px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(42deg)}
/* filas del diagnóstico: todo en una línea */
.drow{display:grid;grid-template-columns:34px minmax(220px,1fr) minmax(170px,260px) auto;gap:12px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--beige-velo);border-radius:10px;transition:background .12s}
.drow:hover{background:var(--beige-velo)}
.drow .dt b{font-size:13.5px}
.drow .dt small{display:block;color:var(--tinta-suave);font-size:11.5px;line-height:1.35}
.drow .obs input{width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:7px 9px;font-size:12px;color:var(--tinta)}
.drow .obs input::placeholder{color:var(--tinta-suave);opacity:.7}
.drow .obs input:hover{border-color:var(--linea);background:#fff}
.drow .obs input:focus{border-color:var(--verde);background:#fff;outline:none}
.drow .dacc{display:flex;gap:6px;align-items:center;flex:none}
.drow .dacc select{padding:6px 8px;font-size:11.5px;min-width:0;border-radius:8px}
@media(max-width:820px){.drow{grid-template-columns:34px 1fr}.drow .obs,.drow .dacc{grid-column:2}}
.item-c .ico svg{filter:drop-shadow(0 4px 6px rgba(38,41,31,.16));transition:transform .15s ease}
.item-c:hover .ico svg{transform:translateY(-3px) scale(1.05)}

/* ── v4: vida visual ── */
.tar{box-shadow:0 1px 3px rgba(38,41,31,.06);transition:box-shadow .15s ease}
.tar:hover{box-shadow:0 5px 18px rgba(38,41,31,.11)}
.tar h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tar h3::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--marron);display:inline-block;flex:none}
.btn{transition:transform .06s ease, background .15s ease, box-shadow .15s ease;box-shadow:0 1px 2px rgba(38,41,31,.12)}
.btn:hover{box-shadow:0 3px 8px rgba(38,41,31,.18)}
.btn:active{transform:scale(.97)}
h1.pag{position:relative;padding-bottom:6px}
h1.pag::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--marron),var(--beige))}

/* ruta de navegación con botones grandes */
.ruta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:12px 0 16px}
.ruta a{display:inline-flex;align-items:center;gap:8px;background:var(--blanco);border:1px solid var(--linea);border-radius:11px;padding:10px 16px;font-weight:700;font-size:14px;color:var(--tinta);text-decoration:none;box-shadow:0 2px 6px rgba(38,41,31,.08);transition:all .12s ease}
.ruta a:hover{border-color:var(--marron);color:var(--marron-profundo);transform:translateY(-1px)}
.ruta a.on{background:var(--verde-profundo);color:#fff;border-color:var(--verde-profundo)}
.ruta .sep{color:var(--beige);font-size:16px;font-weight:700}

/* explorador tipo Finder */
.finder{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(148px,100%),1fr));gap:10px;margin-top:10px}
.item-c{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;text-decoration:none;color:var(--tinta);padding:16px 8px 12px;border-radius:14px;border:1.5px solid transparent;transition:all .12s ease;position:relative}
.item-c:hover{background:var(--beige-velo);border-color:var(--linea);transform:translateY(-2px);box-shadow:0 6px 16px rgba(38,41,31,.10)}
.item-c .ico{font-size:46px;line-height:1.1;filter:drop-shadow(0 3px 3px rgba(38,41,31,.18))}
.item-c b{font-size:12.5px;line-height:1.3;word-break:break-word;max-width:100%}
.item-c small{color:var(--tinta-suave);font-size:11px}
.item-c .acc{display:flex;gap:6px;font-size:10.5px;margin-top:2px}
.item-c .acc a,.item-c .acc button{color:var(--marron-profundo);background:none;border:none;font-size:10.5px;cursor:pointer;text-decoration:underline;padding:0}
.orden{font-size:12px;color:var(--tinta-suave)}
.orden a{margin-left:6px}
.orden a.on{font-weight:700;color:var(--marron-profundo)}

/* calendario v2 */
.cal-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0 14px}
.cal-top .titulo-mes{font-family:var(--disp);font-weight:500;font-size:27px;color:var(--verde-profundo);text-transform:capitalize;min-width:230px}
.cal-top .flecha{width:40px;height:40px;border-radius:50%;border:1px solid var(--linea);background:#fff;font-size:17px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--tinta);box-shadow:0 2px 6px rgba(38,41,31,.10);transition:all .12s}
.cal-top .flecha:hover{border-color:var(--marron);color:var(--marron-profundo);transform:translateY(-1px)}
a.dia{cursor:pointer;text-decoration:none;color:var(--tinta)}
.cal.sem .dia{min-height:185px}
.cal.solo{grid-template-columns:1fr}
.cal.solo .dia{min-height:220px;font-size:13px}
.leyenda a span{display:inline-flex;gap:5px;align-items:center}
.cal .dia{transition:border-color .12s, box-shadow .12s, transform .12s}
.cal .dia:hover{border-color:var(--verde);box-shadow:0 5px 14px rgba(38,41,31,.12);transform:translateY(-1px)}
.cal .dia .mas{font-size:10px;color:var(--marron);opacity:0;transition:opacity .12s;font-weight:700}
.cal .dia:hover .mas{opacity:1}
.cal .ev{border-radius:6px;padding:2px 6px;margin-bottom:3px}
.ev.t-audiencia{background:var(--marron-velo)}
.ev.t-termino{background:var(--warn-bg)}
.ev.t-requerimiento{background:var(--crit-bg)}
.ev.t-reunion{background:#E2E9F0}
.ev.t-tarea{background:var(--verde-velo)}
.ev.t-otro{background:var(--beige-velo)}
.ev.t-proceso{background:var(--warn-bg)}
.ev.t-cronograma{background:var(--beige-velo)}

/* chat de EVA embebido */
.eva-fab{border:none;cursor:pointer;font-family:var(--ui)}
#eva-panel{position:fixed;right:18px;bottom:78px;z-index:70;width:370px;max-width:92vw;background:#fff;border:1px solid var(--linea);border-radius:16px;box-shadow:0 14px 44px rgba(38,41,31,.28);display:none;flex-direction:column;overflow:hidden}
#eva-panel.abierto{display:flex}
#eva-panel .cab{background:linear-gradient(135deg,var(--verde-profundo),var(--verde));color:#fff;padding:13px 16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;font-size:14px}
#eva-panel .cab button{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1}
#eva-msgs{padding:12px;overflow-y:auto;max-height:46vh;min-height:120px;display:flex;flex-direction:column;gap:8px;background:var(--beige-velo)}
.eva-m{max-width:86%;padding:8px 12px;border-radius:13px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.eva-m.yo{align-self:flex-end;background:var(--verde-profundo);color:#fff;border-bottom-right-radius:4px}
.eva-m.ella{align-self:flex-start;background:#fff;border:1px solid var(--linea);border-bottom-left-radius:4px}
#eva-form{display:flex;gap:6px;padding:10px;border-top:1px solid var(--linea);background:#fff}
#eva-form input{flex:1;border:1px solid var(--linea);border-radius:9px;padding:9px 12px;min-width:0}

/* secciones plegables */
details.plegable summary{cursor:pointer;font-family:var(--disp);font-weight:500;font-size:21px;color:var(--tinta);padding:6px 0;list-style:none}
details.plegable summary::-webkit-details-marker{display:none}
details.plegable summary::before{content:"▸ ";color:var(--marron)}
details.plegable[open] summary::before{content:"▾ "}
details.plegable summary small{font-family:var(--ui);font-size:12.5px;color:var(--tinta-suave)}
@media(max-width:640px){.bar{grid-template-columns:110px 1fr 46px}h1.pag{font-size:24px}}

/* responsive general — nada se rompe en el celular */
.tar{overflow-x:auto}
img,svg{max-width:100%}
@media(max-width:720px){
  .cont{padding:18px 14px 70px}
  form.linea{align-items:stretch}
  form.linea .cmp{flex:1 1 46%;min-width:140px}
  form.linea input,form.linea select{width:100%;min-width:0}
  .ruta a{padding:9px 13px;font-size:13px}
  .finder{grid-template-columns:repeat(auto-fill,minmax(min(124px,100%),1fr))}
  .frow{gap:10px;padding:9px 10px}
  .frow .facc{gap:4px}
  .ibtn{width:31px;height:31px}
  #eva-panel{right:8px;left:8px;width:auto}
  h1.pag{font-size:23px}
}
#eva-form .ibtn{flex:none}
#eva-form .ibtn.env{background:var(--verde-profundo);color:#fff;border-color:var(--verde-profundo)}
#eva-form .ibtn.env:hover{background:var(--verde);color:#fff}
.btn svg{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.chip-carp{display:inline-flex;align-items:center;gap:8px;margin-top:11px;padding:7px 13px;border-radius:999px;border:1px solid var(--linea);background:var(--beige-velo);color:var(--verde-profundo);font-size:12px;font-weight:600;text-decoration:none;transition:all .13s ease;align-self:flex-start}
.chip-carp:hover{border-color:var(--verde);background:var(--verde-velo);transform:translateY(-1px)}

/* ═══ Tareas v5 ═══ */
[hidden]{display:none!important}
.tbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 14px}
.seg{display:inline-flex;background:#fff;border:1px solid var(--linea);border-radius:999px;padding:4px;gap:2px;box-shadow:0 2px 8px rgba(38,41,31,.06);flex-wrap:wrap}
.seg a{padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;color:var(--tinta-suave);text-decoration:none;transition:all .13s ease;display:inline-flex;gap:7px;align-items:center}
.seg a b{background:var(--beige-velo);color:var(--tinta);border-radius:999px;padding:1px 8px;font-size:11.5px}
.seg a:hover{color:var(--tinta);background:var(--beige-velo)}
.seg a.on{background:var(--verde-profundo);color:#fff}
.seg a.on b{background:rgba(255,255,255,.22);color:#fff}
.bchips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.bchips a{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;border:1px solid var(--linea);background:#fff;color:var(--tinta);font-size:12.5px;font-weight:600;text-decoration:none;transition:all .12s ease}
.bchips a b{color:var(--marron-profundo);font-size:11.5px}
.bchips a:hover{border-color:var(--verde);transform:translateY(-1px)}
.bchips a.on{background:var(--verde-velo);border-color:var(--verde);color:var(--verde-profundo)}
.factivos{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--tinta-suave);margin:-2px 0 12px}
.fchip{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:999px;background:var(--verde-profundo);color:#fff;text-decoration:none;font-weight:600;font-size:12px}
.fchip span{opacity:.75;font-size:14px;line-height:1}
.flimpia,.tlink{color:var(--marron-profundo);font-size:12px;background:none;border:none;cursor:pointer;text-decoration:underline;padding:0;font-family:var(--ui)}
.tlink.peligro{color:var(--crit)}
.tacc{display:flex;justify-content:flex-end;margin:-6px 0 6px}
.tnota{font-size:11.5px;color:var(--tinta-suave)}
.tbloque{margin-bottom:18px}
.bl-t{font-family:var(--disp);font-weight:500;font-size:19px;margin:16px 0 8px;letter-spacing:.02em}
.bl-t small{font-family:var(--ui);font-size:12px;color:var(--tinta-suave);letter-spacing:0}

/* grupo plegable por cliente */
details.grp{background:#fff;border:1px solid var(--linea);border-radius:14px;margin-bottom:8px;box-shadow:0 1px 3px rgba(38,41,31,.05);transition:box-shadow .15s ease}
details.grp[open]{box-shadow:0 8px 24px rgba(38,41,31,.09)}
.gsum{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;flex-wrap:wrap;border-radius:14px}
.gsum::-webkit-details-marker{display:none}
.gsum:hover{background:var(--beige-velo)}
.gsum .chev{width:26px;height:26px;border-radius:50%;background:var(--verde-velo);color:var(--verde-profundo);display:inline-flex;align-items:center;justify-content:center;flex:none;transition:transform .18s ease;transform:rotate(-90deg)}
details.grp[open] > .gsum .chev{transform:rotate(0)}
.gnom{font-weight:700;font-size:14.5px}
.gcnt{font-size:12.5px;color:var(--tinta-suave)}
.gcnt b{color:var(--marron-profundo);font-size:15px}
.gmini{display:flex;gap:5px;flex-wrap:wrap}
.gav{margin-left:auto;display:flex}
.gav .av{margin-left:-6px;border:2px solid #fff}
.gbody{padding:0 10px 10px;border-top:1px solid var(--beige-velo)}
.gpie{padding:10px 8px 2px;font-size:12.5px}
.av{border-radius:50%;color:#fff;font-weight:700;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.per{display:inline-flex;align-items:center;gap:7px;color:inherit;text-decoration:none;font-size:13px}

/* filas de tareas (grid, no tabla: así se acomoda en el celular) */
.trow{display:grid;grid-template-columns:minmax(230px,2.6fr) 118px 132px 82px 104px 84px 100px minmax(150px,auto);gap:10px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--beige-velo)}
.trow:last-child{border-bottom:none}
.trow.thead{padding:10px 8px 8px;border-bottom:1px solid var(--linea)}
.trow.arch{grid-template-columns:minmax(230px,2.6fr) 118px 132px 110px 110px 60px}
.trow:not(.thead):hover{background:#FBFAF6}
.tc-t{display:flex;align-items:flex-start;gap:9px;min-width:0}
.tt{min-width:0;display:flex;flex-direction:column}
.tt a{color:var(--tinta);text-decoration:none;font-weight:700;font-size:13.5px;line-height:1.35}
.tt a:hover{color:var(--marron-profundo)}
.tt small{font-size:11px;color:var(--tinta-suave)}
.tc{font-size:13px;min-width:0}
.tc-a{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.tc-a form{display:inline}
.tc.venc,.venc{color:var(--crit);font-weight:700}
.thb{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;background:var(--beige-velo);color:var(--tinta-suave);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
details.thf{position:relative;display:inline-block}
details.thf summary{list-style:none;display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--linea);color:var(--tinta);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:all .12s ease;max-width:150px;overflow:hidden;text-overflow:ellipsis}
details.thf summary::-webkit-details-marker{display:none}
details.thf summary:hover{border-color:var(--verde);color:var(--verde-profundo)}
details.thf.on summary{background:var(--verde-profundo);border-color:var(--verde-profundo);color:#fff;text-transform:none;letter-spacing:0}
.thm{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:#fff;border:1px solid var(--linea);border-radius:12px;box-shadow:0 14px 34px rgba(38,41,31,.2);padding:6px;min-width:190px;display:flex;flex-direction:column}
.thm a{padding:8px 10px;border-radius:8px;color:var(--tinta);text-decoration:none;font-size:13px}
.thm a:hover{background:var(--beige-velo)}
.thm a.on{background:var(--verde-velo);color:var(--verde-profundo);font-weight:700}
.thm a.limpia{color:var(--crit);font-size:12px;border-bottom:1px solid var(--beige-velo);border-radius:8px 8px 0 0;margin-bottom:3px}
.tclase{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:7px;background:var(--beige-velo);color:var(--tinta-suave);white-space:nowrap}
.tclase.c-reunion{background:#E2E9F0;color:#44607A}
.tclase.c-gestion{background:var(--verde-velo);color:var(--verde-profundo)}
.tclase.c-requerimiento{background:var(--marron-velo);color:var(--marron-profundo)}
.tbtn{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;border:1px solid var(--linea);background:#fff;color:var(--tinta);font-size:12px;font-weight:700;cursor:pointer;font-family:var(--ui);text-decoration:none;transition:all .12s ease;white-space:nowrap}
.tbtn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(38,41,31,.14)}
.tbtn.verde{background:var(--verde-profundo);border-color:var(--verde-profundo);color:#fff}
.tbtn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.tbtn.sec{color:var(--verde-profundo);border-color:var(--verde)}
.tbtn.off{opacity:.42;cursor:not-allowed}
.tbtn.off:hover{transform:none;box-shadow:none}
/* subtareas */
.subt{flex:none;display:inline-flex;align-items:center;gap:3px;height:24px;min-width:42px;padding:0 7px;border-radius:999px;border:1px solid var(--linea);background:#fff;color:var(--tinta-suave);font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ui);margin-top:1px}
.subt svg{transition:transform .15s ease;transform:rotate(-90deg)}
.subt.on{background:var(--verde-velo);border-color:var(--verde);color:var(--verde-profundo)}
.subt.on svg{transform:rotate(0)}
.subt.vacio{visibility:hidden;cursor:default}
.trow.sub{background:#FCFBF8}
.trow.sub .tc-t{padding-left:22px}
.subcon{flex:none;width:16px;height:16px;border-left:2px solid var(--beige);border-bottom:2px solid var(--beige);border-bottom-left-radius:7px;margin:-2px 2px 0 6px}
.trow.sub .tt a{font-weight:600;font-size:13px}
.trow.hl{box-shadow:inset 3px 0 0 var(--verde)}
.trow.sub.add{display:block;padding:10px 8px 12px 46px}
.trow.sub.add .cmp{font-size:11px}
.tlist{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:4px 10px}
.vacio-t{text-align:center;padding:28px}

/* detalle */
.tacciones{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}
.dgrid{display:grid;grid-template-columns:110px 1fr;gap:10px 14px;font-size:13.5px}
.dk{color:var(--tinta-suave);font-size:12px;font-weight:600;padding-top:2px}
.tl{list-style:none;position:relative;padding-left:18px}
.tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--linea)}
.tl li{position:relative;padding:0 0 13px;display:flex;flex-direction:column;font-size:13px}
.tl li::before{content:"";position:absolute;left:-17px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--beige);border:2px solid #fff;box-shadow:0 0 0 1px var(--linea)}
.tl li.ev-recibida::before{background:#5B7A8C}.tl li.ev-en_tramite::before{background:var(--warn)}.tl li.ev-terminada::before{background:var(--ok)}.tl li.ev-reasignada::before{background:var(--marron)}
.tl b{text-transform:capitalize;font-size:12.5px}
.tl .tl-d{font-size:11px;color:var(--tinta-suave)}
.tl span:last-child{color:var(--tinta-suave);font-size:12.5px}

/* reportes */
.rkpi .tar .big{font-family:var(--disp);font-size:36px;line-height:1.05}
.rkpi .lbl{font-size:12.5px;color:var(--tinta-suave)}
.big.ok,b.ok{color:var(--ok)}.big.warn,b.warn{color:var(--warn)}.big.crit,b.crit{color:var(--crit)}
.rgrid{display:grid;align-items:center}
.rgrid.rper{grid-template-columns:minmax(180px,1.6fr) repeat(4,minmax(70px,.6fr)) minmax(160px,1.4fr)}
.rgrid.rcli{grid-template-columns:minmax(180px,1.6fr) minmax(120px,.9fr) repeat(3,minmax(70px,.6fr)) minmax(160px,1.4fr) 80px}
.rh{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--tinta-suave);padding:0 8px 9px;border-bottom:1px solid var(--linea)}
.rc{padding:10px 8px;border-bottom:1px solid var(--beige-velo);font-size:13.5px;min-width:0}
.rc a{color:var(--tinta);text-decoration:none}
.rc a:hover b{color:var(--marron-profundo)}
.efb{display:flex;align-items:center;gap:10px}
.efb-t{flex:1;height:9px;border-radius:999px;background:var(--beige-velo);overflow:hidden}
.efb-f{height:100%;border-radius:999px;transition:width .4s ease}
.efb-f.ok{background:var(--ok)}.efb-f.warn{background:#C99A2E}.efb-f.crit{background:var(--marron)}
.efb b{font-size:13px;min-width:38px;text-align:right}
a.rclase{text-decoration:none;color:inherit;display:block;transition:transform .12s ease}
a.rclase:hover{transform:translateY(-2px)}
a.rclase .big{font-family:var(--disp);font-size:30px;line-height:1.05}
a.rclase .lbl{font-size:12.5px;color:var(--tinta-suave)}
table.cruce th{text-align:center;font-size:11px;white-space:nowrap}
table.cruce td{text-align:center}
table.cruce td:first-child{text-align:left}
.cel{display:inline-flex;min-width:30px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:rgba(108,138,105,calc(.15 + var(--a)*.7));color:#fff;font-weight:700;text-decoration:none;text-shadow:0 1px 1px rgba(0,0,0,.15)}
.cero{color:var(--beige)}

@media(max-width:900px){
  .trow,.trow.arch{grid-template-columns:1fr 1fr;gap:6px 12px}
  .trow.thead{display:flex;flex-wrap:wrap;gap:6px}
  .trow.thead .tc-t,.trow.thead .tc:has(.thb){display:none}
  .trow .tc-t{grid-column:1/-1}
  .trow .tc-a{grid-column:1/-1;justify-content:flex-start}
  .trow .tc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
  .trow.sub .tc-t{padding-left:6px}
  .trow.sub.add{padding-left:10px}
  .rgrid.rper,.rgrid.rcli{grid-template-columns:1fr 1fr}
  .rgrid .rh{display:none}
  .rgrid .rc:not([data-l]){grid-column:1/-1;border-bottom:none;padding-bottom:2px}
  .rgrid .rc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--tinta-suave)}
  .gav{margin-left:0}
  .dgrid{grid-template-columns:1fr}
  .dk{padding-top:6px}
}

/* informe imprimible para el cliente */
body.informe{background:#E9E6DD}
.inf-acc{max-width:820px;margin:20px auto 0;display:flex;justify-content:space-between;align-items:center;padding:0 16px}
.inf{max-width:820px;margin:14px auto 40px;background:#fff;padding:46px 54px;border-radius:6px;box-shadow:0 10px 40px rgba(38,41,31,.15)}
.inf-cab{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--verde-profundo);padding-bottom:16px;margin-bottom:26px}
.inf-cab img{width:34px}
.inf-cab b{font-family:var(--disp);font-weight:500;font-size:22px;letter-spacing:.14em;display:block;line-height:1}
.inf-cab b span{color:var(--marron)}
.inf-cab small{font-size:9px;letter-spacing:.38em;color:var(--tinta-suave)}
.inf-meta{text-align:right;font-size:12px;color:var(--tinta-suave)}
.inf-meta b{color:var(--tinta);font-size:13px}
.inf h1{font-family:var(--disp);font-weight:500;font-size:30px;margin-bottom:4px}
.inf-sub{color:var(--tinta-suave);font-size:13.5px;margin-bottom:22px}
.inf-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:10px;margin-bottom:26px}
.inf-kpi div{background:var(--beige-velo);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column}
.inf-kpi b{font-family:var(--disp);font-size:28px;font-weight:500;line-height:1.05;color:var(--verde-profundo)}
.inf-kpi span{font-size:11.5px;color:var(--tinta-suave)}
.inf h2{font-family:var(--disp);font-weight:500;font-size:19px;margin:22px 0 10px}
.inf-t{font-size:12.5px}
.inf-t th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.idet{font-size:11.5px;color:var(--tinta-suave);margin-top:2px}
.isub{margin:5px 0 0 16px;font-size:11.5px;color:var(--tinta-suave)}
.inf-pie{margin-top:34px;padding-top:12px;border-top:1px solid var(--linea);font-size:10.5px;color:var(--tinta-suave);text-align:center}
@media print{
  body.informe{background:#fff}
  .inf-acc{display:none}
  .inf{box-shadow:none;margin:0;padding:0;max-width:none}
  @page{margin:18mm 16mm}
}
@media(max-width:720px){.inf{padding:26px 20px}}
.cel{color:var(--verde-profundo);text-shadow:none;background:rgba(108,138,105,calc(.16 + var(--a)*.75))}
.cel.fuerte{color:#fff}
@media(max-width:720px){
  .tbar{flex-direction:column;align-items:stretch}
  .seg{display:grid;grid-template-columns:repeat(4,1fr);border-radius:16px}
  .seg a{justify-content:center;padding:9px 4px;font-size:12px;gap:4px}
  .seg a b{padding:1px 6px;font-size:10.5px}
  .tbar #t-nueva{align-self:flex-end}
  .bchips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .bchips a{flex:none}
}
@media(max-width:440px){.seg a{white-space:nowrap;font-size:11.5px;padding:9px 2px}.seg a b{display:none}}

/* ═══ v5.1 · logo real (paleta original) en barra clara tipo Mac ═══ */
.top{background:rgba(253,252,248,.9);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);color:var(--tinta);border-bottom:1px solid var(--linea);box-shadow:0 1px 14px rgba(38,41,31,.07);padding:8px 20px}
.top .marca{display:flex;align-items:center;gap:8px}
.top .marca img.logo{height:40px;width:auto;display:block}
.top .marca .os{font-size:10px;font-weight:700;letter-spacing:.24em;color:var(--marron);border:1px solid var(--marron-velo);border-radius:6px;padding:2px 5px 2px 7px;align-self:flex-end;margin-bottom:5px}
.top nav a{color:var(--tinta);border-color:var(--linea);background:#fff;opacity:1}
.top nav a:hover{background:var(--verde-velo);border-color:var(--verde);color:var(--verde-profundo)}
.top nav a.on{background:var(--verde-profundo);border-color:var(--verde-profundo);color:#fff}
.ham,.umenu summary{border-color:var(--linea);color:var(--tinta);background:#fff}
.umenu summary:hover,.umenu[open] summary{background:var(--verde-profundo);color:#fff;border-color:var(--verde-profundo)}
@media(max-width:980px){.top nav{border-top-color:var(--linea)}}
.login .marca img.logo-login{width:230px;max-width:80%;height:auto;display:block;margin:0 auto 8px}
.login .marca div{letter-spacing:.3em}
.inf-cab img.inf-logo{height:58px;width:auto}

/* barra de progreso y avisos flotantes de la navegación suave */
#elev-prog{position:fixed;top:0;left:0;height:2.5px;width:0;background:linear-gradient(90deg,var(--verde),var(--marron));z-index:200;opacity:0;transition:width .25s ease,opacity .3s ease}
#elev-prog.on{opacity:1;width:70%;transition:width 1.6s cubic-bezier(.1,.6,.2,1),opacity .1s}
#elev-prog.fin{width:100%;opacity:0}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);background:var(--verde-profundo);color:#fff;padding:11px 18px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:0 12px 32px rgba(38,41,31,.28);z-index:220;opacity:0;transition:all .28s cubic-bezier(.2,.8,.2,1);max-width:min(560px,92vw);text-align:center}
.toast.err{background:var(--crit)}
.toast.in{opacity:1;transform:translate(-50%,0)}

/* filtros de columna en pantalla */
button.thf{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--linea);color:var(--tinta);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;white-space:nowrap;font-family:var(--ui);max-width:150px;transition:all .12s ease}
button.thf span{overflow:hidden;text-overflow:ellipsis}
button.thf:hover,button.thf.abierto{border-color:var(--verde);color:var(--verde-profundo)}
button.thf.on{background:var(--verde-profundo);border-color:var(--verde-profundo);color:#fff;text-transform:none;letter-spacing:0}
.trow.thead .tc{position:relative}
.thm.flot{position:absolute;top:calc(100% + 6px);left:0;z-index:45;min-width:200px;animation:aparece .14s ease}
.thm.flot button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:none;color:var(--tinta);font-size:13px;cursor:pointer;font-family:var(--ui);text-align:left}
.thm.flot button:hover{background:var(--beige-velo)}
.thm.flot button.on{background:var(--verde-velo);color:var(--verde-profundo);font-weight:700}
.thm.flot button b{font-size:11px;color:var(--tinta-suave);background:var(--beige-velo);border-radius:999px;padding:1px 7px}
.thm.flot button.limpia{color:var(--crit);font-size:12px;border-bottom:1px solid var(--beige-velo);border-radius:8px 8px 0 0;margin-bottom:3px}
@keyframes aparece{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.finfo{display:flex;gap:10px;align-items:center;padding:8px 8px 4px;font-size:12px;color:var(--verde-profundo);font-weight:600}

/* responsable con flechita para reasignar */
details.rsel{position:relative;display:inline-block}
details.rsel summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:3px 8px 3px 3px;border-radius:999px;border:1px solid transparent;transition:all .12s ease}
details.rsel summary::-webkit-details-marker{display:none}
details.rsel summary svg{color:var(--tinta-suave)}
details.rsel summary:hover,details.rsel[open] summary{border-color:var(--linea);background:#fff}
details.rsel summary.vacio{border-color:var(--marron);background:var(--marron-velo);padding:4px 10px}
.rsin{color:var(--marron-profundo);font-weight:700;font-size:12px}
.rmenu{position:absolute;top:calc(100% + 6px);left:0;z-index:46;background:#fff;border:1px solid var(--linea);border-radius:12px;box-shadow:0 14px 34px rgba(38,41,31,.2);padding:6px;min-width:210px;display:flex;flex-direction:column;animation:aparece .14s ease}
.rtit{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tinta-suave);padding:6px 10px 4px}
.rmenu button{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;border:none;background:none;font-size:13px;color:var(--tinta);cursor:pointer;font-family:var(--ui);text-align:left}
.rmenu button:hover{background:var(--verde-velo)}
.rmenu button.on{opacity:.55;cursor:default;background:var(--beige-velo)}
@media(max-width:900px){.thm.flot,.rmenu{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:60vh;overflow:auto}}
.top .marca img.logo{height:44px}
.trow{grid-template-columns:minmax(230px,2.6fr) 118px 140px 82px 104px 104px 106px minmax(150px,auto)}
.dsem{display:none;margin-right:5px;text-transform:capitalize}
@media(max-width:720px){
  .cal.sem{grid-template-columns:1fr}
  .cal.sem .dia{min-height:0;padding:9px 11px}
  .cal-cab{display:none}
  .cal.sem .dsem{display:inline}
  .cal.sem .dnum{font-size:12px;color:var(--tinta)}
  .cal:not(.sem):not(.solo){gap:3px}
  .cal:not(.sem):not(.solo) .dia{min-height:54px;padding:4px}
  .cal:not(.sem):not(.solo) .ev span{display:none}
  .cal:not(.sem):not(.solo) + .leyenda,.cal:not(.sem):not(.solo) ~ .cal-cab{display:none}
  .cal .dia .mas{display:none}
  .top .marca img.logo{height:38px}
}

/* ═══ v5.2 · franja verde, opciones centradas, placa del logo (isotipo VA + logotipo original) ═══ */
.top{background:var(--verde-profundo);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:none;box-shadow:0 2px 16px rgba(38,41,31,.24);display:flex;align-items:center;gap:18px;padding:9px 22px}
.top .marca{flex:none}
.top .marca .placa{display:flex;align-items:center;gap:9px;background:#FDFCF7;border-radius:13px;padding:5px 13px 5px 9px;box-shadow:0 1px 5px rgba(0,0,0,.18)}
.top .marca .placa img.iso{height:30px;width:auto;display:block}
.top .marca .placa .sep{width:1px;height:26px;background:var(--linea)}
.top .marca .placa img.logo{height:36px;width:auto;display:block}
.top nav{flex:1;justify-content:center}
.top nav a{color:#fff;background:transparent;border:1px solid rgba(255,255,255,.24);padding:7px 13px}
.top nav a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);color:#fff}
.top nav a.on{background:#FDFCF7;border-color:#FDFCF7;color:var(--verde-profundo)}
.ham,.umenu summary{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.umenu summary:hover,.umenu[open] summary{background:#FDFCF7;color:var(--verde-profundo);border-color:#FDFCF7}
.umenu{margin-left:0;flex:none}
@media(max-width:980px){.ham{margin-left:auto}.top nav{border-top-color:rgba(255,255,255,.18)}.top .marca .placa img.logo{height:30px}.top .marca .placa img.iso{height:25px}}

/* tareas: columnas que siempre caben (nada se sale de la tarjeta) */
.trow{grid-template-columns:minmax(170px,2.5fr) minmax(98px,1fr) minmax(118px,1.15fr) minmax(60px,.6fr) minmax(78px,.75fr) minmax(92px,.85fr) minmax(98px,.9fr) minmax(104px,auto)}
.trow .tc{min-width:0}
.trow.thead button.thf,.trow.thead .thb{max-width:100%}
.tc-f{white-space:nowrap}
.tclase.c-diagnostico{background:#EDE6F2;color:#6B4F80}
.trow.arch{grid-template-columns:minmax(170px,2.5fr) minmax(98px,1fr) minmax(118px,1.15fr) minmax(90px,.9fr) minmax(90px,.9fr) 50px}

/* ═══ vencimientos / citaciones ═══ */
.vform{margin:14px 0;border-color:var(--verde)}
.vrecs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;margin:4px 0 14px}
.vrec{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:12px;background:#fff;border:1px solid var(--linea);border-left:4px solid var(--verde);text-decoration:none;color:var(--tinta);transition:transform .12s ease}
.vrec:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(38,41,31,.1)}
.vrec b{font-size:12.5px}.vrec span{font-size:12.5px;color:var(--tinta-suave)}
.vrec.warn{border-left-color:#C99A2E}.vrec.crit{border-left-color:var(--crit)}
.vrec.crit b{color:var(--crit)}
.vempresas{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.vemp{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--linea);background:#fff;font-size:12.5px;font-weight:600;color:var(--tinta);cursor:pointer;font-family:var(--ui);transition:all .12s ease}
.vemp b{color:var(--marron-profundo);font-size:11.5px}
.vemp:hover{border-color:var(--verde)}
.vemp.on{background:var(--verde-profundo);border-color:var(--verde-profundo);color:#fff}
.vemp.on b{color:#fff}
.vtabla{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:4px 10px 6px;box-shadow:0 1px 3px rgba(38,41,31,.05)}
.vrow{display:grid;grid-template-columns:minmax(118px,.9fr) minmax(210px,2.2fr) minmax(120px,1.1fr) minmax(118px,1fr) minmax(112px,.95fr) minmax(190px,2fr);gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--beige-velo)}
.vrow:last-of-type{border-bottom:none}
.vrow .tc{min-width:0;font-size:13px}
.vrow.vhead{padding:10px 8px 9px;border-bottom:1px solid var(--linea)}
.vrow.vhead .tc{position:relative}
.vrow:not(.vhead):hover{background:#FBFAF6}
.vrow.urge{box-shadow:inset 3px 0 0 var(--crit)}
.vfecha{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.vfecha b{font-size:14px;text-transform:capitalize}
.vfecha small{font-size:11px;color:var(--tinta-suave)}
.vasunto a{display:block;font-weight:700;font-size:13.5px;color:var(--tinta);text-decoration:none;line-height:1.35}
.vasunto a:hover{color:var(--marron-profundo)}
.vmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px}
.vlugar{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;color:var(--tinta-suave)}
.vtipo{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:7px;background:var(--beige-velo);color:var(--tinta-suave)}
.vtipo.v-audiencia{background:var(--marron-velo);color:var(--marron-profundo)}
.vtipo.v-termino{background:var(--warn-bg);color:var(--warn)}
.vtipo.v-requerimiento{background:var(--crit-bg);color:var(--crit)}
.vtipo.v-citacion,.vtipo.v-diligencia{background:#E9E2D6;color:#6E5A3A}
.vtipo.v-asamblea,.vtipo.v-reunion{background:#E2E9F0;color:#44607A}
.vcli{color:var(--tinta);text-decoration:none;font-weight:600}
.vcli:hover{color:var(--marron-profundo)}
.vobs{display:flex;flex-direction:column;gap:5px}
.vult{font-size:12.5px;line-height:1.4;color:var(--tinta)}
.vcont{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--tinta-suave);text-decoration:none;font-weight:600}
.vcont span{color:var(--verde-profundo);margin-left:6px}
.vcont:hover span{text-decoration:underline}
.vvacio{padding:22px 8px;text-align:center;color:var(--tinta-suave);font-size:13px}
.vcal .cal-top{margin-bottom:10px}
.vrecl{list-style:none;display:flex;flex-direction:column;gap:6px}
.vrecl li{display:grid;grid-template-columns:1fr auto 86px;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--beige-velo);font-size:13px}
.vrecl li span{text-transform:capitalize;color:var(--tinta-suave)}
.vrecl li em{font-style:normal;font-size:11px;font-weight:700;text-align:right}
.vrecl li.r-pasado{opacity:.6}.vrecl li.r-pasado em{color:var(--ok)}
.vrecl li.r-hoy{background:var(--crit-bg)}.vrecl li.r-hoy em{color:var(--crit)}
.vrecl li.r-prox em{color:var(--verde-profundo)}
.vnota{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.vnota textarea{width:100%;min-height:58px;resize:vertical}
.vnota button{align-self:flex-end}
.vtx{color:var(--tinta)!important;font-size:13px!important;white-space:pre-wrap}
.vsub{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
details.vedit{margin-top:14px;border-top:1px solid var(--beige-velo);padding-top:10px}
details.vedit summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--verde-profundo)}
.inf-datos div{gap:3px}
.inf-datos b.t{font-family:var(--ui);font-size:14px;font-weight:700;color:var(--tinta)}
@media(max-width:900px){
  .vrow{grid-template-columns:1fr 1fr;gap:8px 12px}
  .vrow.vhead{display:flex;flex-wrap:wrap;gap:6px}
  .vrow.vhead .tc:has(.thb){display:none}
  .vrow .vasunto,.vrow .vobs{grid-column:1/-1}
  .vrow .tc[data-l]:not(.vfecha)::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
}
.vfecha b,.vrecl li span{text-transform:none}
button.thf{padding:5px 9px;letter-spacing:.02em;font-size:10.5px}
.trow{grid-template-columns:minmax(170px,2.4fr) minmax(100px,1fr) minmax(132px,1.15fr) minmax(60px,.55fr) minmax(76px,.7fr) minmax(108px,.9fr) minmax(104px,.9fr) minmax(104px,auto)}
.vrow{grid-template-columns:minmax(136px,.95fr) minmax(210px,2.2fr) minmax(120px,1.1fr) minmax(134px,1fr) minmax(112px,.95fr) minmax(180px,1.9fr)}
.vfecha .pill{white-space:nowrap}
.trow{grid-template-columns:minmax(170px,2.4fr) minmax(100px,1fr) minmax(132px,1.15fr) minmax(60px,.55fr) minmax(76px,.7fr) minmax(100px,.9fr) minmax(100px,.9fr) 196px}
.trow{grid-template-columns:minmax(170px,2.4fr) minmax(100px,1fr) minmax(132px,1.15fr) minmax(80px,.65fr) minmax(70px,.65fr) minmax(100px,.9fr) minmax(100px,.9fr) 196px}
.trow .tc[data-l="Asignó"] small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ═══ procesos ═══ */
.cont:has(.ptabla){max-width:1340px}
.pkpi{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px;font-size:13px}
.pkpi > span:first-child b{font-size:16px;color:var(--verde-profundo)}
.ptabla{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:6px 10px 6px;box-shadow:0 1px 3px rgba(38,41,31,.05)}
.pbusca{display:flex;align-items:center;gap:8px;margin:6px 8px 8px;padding:0 12px;border:1px solid var(--linea);border-radius:999px;background:var(--beige-velo);color:var(--tinta-suave)}
.pbusca input{border:none;background:transparent;padding:9px 0;flex:1;min-width:0;outline:none}
.pbusca:focus-within{border-color:var(--verde);background:#fff}
.prow{display:grid;grid-template-columns:minmax(150px,1.15fr) minmax(112px,.85fr) minmax(150px,1.3fr) minmax(130px,1.05fr) minmax(130px,.95fr) minmax(150px,1.3fr) minmax(158px,1.15fr) minmax(96px,.7fr);gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--beige-velo)}
.prow .tc{min-width:0;font-size:13px}
.prow.phead{padding:8px 8px 9px;border-bottom:1px solid var(--linea)}
.prow.phead .tc{position:relative}
.prow:not(.phead):hover{background:#FBFAF6}
.prad a{display:block;font-weight:700;font-size:12.5px;color:var(--tinta);text-decoration:none;word-break:break-all;letter-spacing:.01em}
.prad a:hover{color:var(--marron-profundo)}
.prad small,.pdesp small,.ptipo{display:block;font-size:11px;color:var(--tinta-suave);margin-top:2px}
.pjur{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:7px;background:var(--verde-velo);color:var(--verde-profundo);line-height:1.3}
.pdesp b{display:block;font-size:12.5px;line-height:1.35}
.pva span{display:block;font-size:12.5px;line-height:1.4}
.pfalta{font-size:12px;font-weight:700;color:var(--marron-profundo);text-decoration:none;border:1px dashed var(--marron);border-radius:8px;padding:3px 8px;display:inline-block}
.pfalta:hover{background:var(--marron-velo)}
.pfecha{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-decoration:none;color:var(--tinta)}
.pfecha b{font-size:13px}.pfecha small{font-size:11px;color:var(--tinta-suave);line-height:1.3}
.pfecha:hover b{color:var(--marron-profundo)}
summary.pprog{list-style:none;cursor:pointer;font-size:12px;font-weight:700;color:var(--verde-profundo);border:1px dashed var(--verde);border-radius:8px;padding:4px 9px;display:inline-block}
summary.pprog::-webkit-details-marker{display:none}
summary.pprog:hover{background:var(--verde-velo)}
.rmenu.pform{min-width:300px;padding:10px 12px;gap:8px;right:0;left:auto}
.rmenu.pform .cmp{width:100%}
.rmenu.pform input,.rmenu.pform select{width:100%}
.prev{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.prev small{font-size:11.5px;color:var(--tinta-suave)}
.psuj{font-size:13px;line-height:1.5}
.pcitas{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.pcita{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;background:var(--beige-velo);text-decoration:none;color:var(--tinta);font-size:13px}
.pcita:hover{background:var(--verde-velo)}
.pcita.hecha{opacity:.6}
@media(max-width:1000px){
  .prow{grid-template-columns:1fr 1fr;gap:8px 12px}
  .prow.phead{display:flex;flex-wrap:wrap;gap:6px}
  .prow.phead .tc:has(.thb){display:none}
  .prow .prad{grid-column:1/-1}
  .prow .tc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
  .rmenu.pform{left:12px;right:12px}
}
.prow{grid-template-columns:minmax(168px,1.15fr) minmax(128px,.85fr) minmax(150px,1.3fr) minmax(128px,1fr) minmax(128px,.95fr) minmax(140px,1.25fr) minmax(150px,1.1fr) minmax(124px,.8fr)}
.prad a{font-size:12px;font-variant-numeric:tabular-nums}

/* ═══ firmas v6 (modelo ZapSign) ═══ */
.fpasos{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px 20px;margin:4px 0 14px;box-shadow:0 1px 3px rgba(38,41,31,.05);overflow-x:auto}
.fpaso{display:flex;align-items:center;gap:9px;white-space:nowrap;color:var(--tinta-suave);text-decoration:none;font-size:13.5px;font-weight:600}
.fpaso b{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--beige-velo);color:var(--tinta-suave);font-size:12.5px;flex:none}
.fpaso.on{color:var(--tinta)}.fpaso.on b{background:var(--verde-profundo);color:#fff}
.fpaso.ok b{background:var(--verde-velo);color:var(--verde-profundo)}
a.fpaso:hover{color:var(--verde-profundo)}
.fpl{flex:1;min-width:24px;height:1px;background:var(--linea)}
.fwiz{padding:26px 28px}
.fwt{font-family:var(--disp);font-weight:500;font-size:26px;margin-bottom:16px}
.fdrop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:230px;border:2px dashed #C9D3E0;border-radius:16px;background:#F2F5FA;color:var(--verde-profundo);cursor:pointer;text-align:center;padding:20px;transition:all .15s ease}
.fdrop b{color:var(--tinta);font-size:14px}.fdrop b u{color:var(--verde-profundo)}
.fdrop small{color:var(--tinta-suave);font-size:12px}
.fdrop:hover,.fdrop.on{border-color:var(--verde);background:var(--verde-velo)}
.fdrop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fsel{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fchipdoc{padding:5px 11px;border-radius:999px;background:var(--verde-velo);color:var(--verde-profundo);font-size:12px;font-weight:600}
.fchipdoc.mal{background:var(--crit-bg);color:var(--crit)}
.fpie{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.fpie-fija{position:sticky;bottom:0;background:rgba(245,243,238,.94);backdrop-filter:blur(8px);padding:12px 4px;border-top:1px solid var(--linea);z-index:20}
.fexp{margin-top:16px;border-top:1px solid var(--beige-velo);padding-top:12px}
.fexp summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--verde-profundo)}
.fdocs{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.fdoc{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--linea);border-radius:12px}
.fdoc > span{flex:1;display:flex;flex-direction:column}.fdoc small{color:var(--tinta-suave);font-size:11.5px}
.fdoc form{display:inline}
/* firmantes */
.fcard{border:1px solid var(--linea);border-radius:14px;padding:14px 16px;margin-bottom:10px;background:#FDFCF9}
.fccab{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.fcnum{width:26px;height:26px;border-radius:50%;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.fcgrid{display:grid;grid-template-columns:2fr 1.1fr 1.5fr 1.2fr;gap:10px}
.fcgrid input,.fcgrid select{width:100%;min-width:0}
.fauth{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--linea)}
.fauth-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave)}
.fsw{display:inline-flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer}
.fsw input{margin-top:2px;accent-color:var(--verde-profundo);width:16px;height:16px}
.fsw span{display:flex;flex-direction:column}.fsw small{color:var(--tinta-suave);font-size:11.5px}
.fsw.off{opacity:.5;cursor:default;font-style:italic}
.fadd{display:flex;gap:8px;margin-top:4px}
.fresumen{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;padding:14px;border-radius:12px;background:var(--beige-velo)}
.fresumen > div{display:flex;flex-direction:column;gap:6px}
.fopts{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;padding:14px;border:1px solid var(--linea);border-radius:12px}
.aviso-w{background:var(--warn-bg);color:var(--warn);border-color:#E6D3A3}
/* editor */
.fed{display:grid;grid-template-columns:270px 1fr;gap:18px;align-items:start}
.fed-lado{position:sticky;top:78px;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:16px;max-height:calc(100vh - 100px);overflow:auto}
.fed-lado h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--tinta-suave);margin:4px 0 8px}
.fed-firm{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.fed-firm button{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1.5px solid var(--linea);border-radius:10px;background:#fff;font-size:13px;font-weight:600;text-align:left;cursor:pointer;font-family:var(--ui);color:var(--tinta)}
.fed-firm button i{width:12px;height:12px;border-radius:50%;flex:none}
.fed-firm button.on{border-color:var(--verde-profundo);background:var(--verde-velo)}
.fed-tipos{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fed-tipos button{padding:9px;border:1.5px solid var(--linea);border-radius:10px;background:#fff;font-size:12.5px;font-weight:700;cursor:pointer;font-family:var(--ui);color:var(--tinta)}
.fed-tipos button.on{border-color:var(--verde-profundo);background:var(--verde-profundo);color:#fff}
.fed-res{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:4px}.fed-res i{width:9px;height:9px;border-radius:50%}
.fed-guard{font-size:11.5px;font-weight:700;color:var(--verde-profundo);margin-bottom:8px}
.fed-docs{display:flex;flex-direction:column;gap:22px}
.fed-doc{display:flex;flex-direction:column;gap:14px;align-items:center}
.fed-doct{align-self:stretch;display:flex;align-items:center;gap:10px}.fed-doct small{color:var(--tinta-suave)}
.fed-pag{position:relative;width:100%;max-width:780px;background:#fff;box-shadow:0 4px 18px rgba(38,41,31,.14);border-radius:4px;cursor:crosshair;user-select:none;touch-action:none}
.fed-pag img{width:100%;height:100%;display:block;pointer-events:none;border-radius:4px}
.fed-pn{position:absolute;right:-30px;top:4px;font-size:11px;color:var(--tinta-suave)}
.fed-campo{position:absolute;border:2px solid;border-radius:6px;cursor:move;display:flex;align-items:center;justify-content:center;touch-action:none}
.fed-campo.mov{box-shadow:0 6px 18px rgba(0,0,0,.2)}
.fed-l{position:absolute;left:-2px;top:-17px;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px 5px 0 0;white-space:nowrap;pointer-events:none}
.fed-x{position:absolute;right:-9px;top:-9px;width:18px;height:18px;border-radius:50%;border:none;background:var(--crit);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:none}
.fed-todas{position:absolute;left:0;bottom:-18px;font-size:9.5px;border:none;background:var(--tinta);color:#fff;border-radius:4px;padding:1px 6px;cursor:pointer;display:none;white-space:nowrap}
.fed-campo:hover .fed-x,.fed-campo:hover .fed-todas{display:block}
.fed-h{position:absolute;right:-5px;bottom:-5px;width:12px;height:12px;border-radius:3px;background:#fff;border:2px solid currentColor;cursor:nwse-resize}
/* tablero de firmas */
.fdtabla{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:6px 10px}
.fdrow{display:grid;grid-template-columns:minmax(220px,2.2fr) minmax(130px,1.1fr) minmax(130px,1fr) minmax(130px,.9fr) 110px;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--beige-velo);text-decoration:none;color:var(--tinta)}
.fdrow:last-child{border-bottom:none}
a.fdrow:hover{background:#FBFAF6}
.fdhead{padding:8px;border-bottom:1px solid var(--linea)}
.fdnom{display:flex;align-items:center;gap:10px;min-width:0}.fdnom > span{display:flex;flex-direction:column;min-width:0}
.fdnom b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fdnom small{font-size:11.5px;color:var(--tinta-suave)}
.fdavs{display:flex}.fdavs .av{margin-left:-5px;border:2px solid #fff}.fdavs .av:first-child{margin-left:0}
.fav{position:relative;font-size:10.5px}
.fav::after{content:"";position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;border:2px solid #fff;background:#C9C4B4}
.fav.e-ok::after{background:var(--ok)}.fav.e-no::after{background:var(--crit)}.fav.e-visto::after{background:#C99A2E}
.fdprog,.fdfecha{display:flex;flex-direction:column;gap:3px}.fdprog small,.fdfecha small{font-size:11.5px;color:var(--tinta-suave)}
.fbar{display:block;height:7px;border-radius:999px;background:var(--beige-velo);overflow:hidden;width:100%}
.fbar i{display:block;height:100%;background:var(--verde);border-radius:999px}
.fbar.grande{height:10px;max-width:420px}
.fprog{display:flex;align-items:center;gap:14px;margin:6px 0}
/* seguimiento */
.ffirmantes{display:flex;flex-direction:column;gap:8px}
.ffir{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(260px,1.6fr);gap:14px;align-items:center;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:12px 14px}
.ffir-a{display:flex;gap:11px;align-items:center}.ffir-a > span{display:flex;flex-direction:column;gap:1px;min-width:0}.ffir-a small{font-size:11.5px;color:var(--tinta-suave)}
.ffir-e{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.ffir-e small{font-size:11px;color:var(--tinta-suave)}
.ffir-l{display:flex;gap:6px;align-items:center}
.flink{flex:1;min-width:0;font-size:11.5px;padding:7px 9px;background:var(--beige-velo);border:1px solid var(--linea);border-radius:8px;color:var(--tinta-suave)}
.ffir-b{display:flex;gap:5px}
.ibtn.wa{color:#1F8F4E}.ibtn.wa:hover{border-color:#1F8F4E;color:#1F8F4E}
.fanular .rmenu{right:0;left:auto;min-width:240px}
/* firmante (página pública) */
body.fext .fcont{max-width:820px}
.fsg-cab{text-align:center;margin:6px 0 14px}.fsg-cab h1{font-family:var(--disp);font-weight:500;font-size:26px;line-height:1.2;margin-top:4px}
.fsg-pasos{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.fsg-pasos span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--tinta-suave);padding:5px 11px 5px 6px;border-radius:999px;background:#fff;border:1px solid var(--linea)}
.fsg-pasos span b{width:20px;height:20px;border-radius:50%;background:var(--beige-velo);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.fsg-pasos span.on{color:#fff;background:var(--verde-profundo);border-color:var(--verde-profundo)}.fsg-pasos span.on b{background:rgba(255,255,255,.25)}
.fsg-pasos span.ok b{background:var(--verde-velo);color:var(--verde-profundo)}
.fsg-sec{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}
.fsg-sec h2{font-family:var(--disp);font-weight:500;font-size:22px}
.fsg-sec .cmp input{width:100%;font-size:16px;padding:11px 12px}
.fsg-sec input.mal{border-color:var(--crit)}
.fsg-msg{background:var(--verde-velo);border-radius:12px;padding:12px 14px;font-size:14px}
.fsg-ayuda{font-size:13px;color:var(--tinta-suave)}
.fsg-doc{display:flex;flex-direction:column;gap:12px;align-items:center}
.fsg-pag{cursor:default}
.fsg-campo{position:absolute;border:2px dashed #C99A2E;background:rgba(255,214,102,.28);border-radius:5px;font-size:10px;font-weight:700;color:#7a5a00;display:flex;align-items:center;justify-content:center;animation:latido 2.2s ease-in-out infinite}
@keyframes latido{50%{background:rgba(255,214,102,.5)}}
.fsg-bar{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0;background:#fff;padding-top:10px}
.fsg-bar .btn{padding:13px 22px;font-size:15px}
.fsg-fotos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px}
.fsg-foto{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;border:2px dashed var(--linea);border-radius:14px;cursor:pointer;background:var(--beige-velo);font-weight:700;font-size:13px;color:var(--verde-profundo);overflow:hidden}
.fsg-foto input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fsg-foto img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fsg-foto.ok img{display:block}.fsg-foto.ok{border-style:solid;border-color:var(--ok)}
.fsg-foto.mal{border-color:var(--crit)}
.fsg-tabs{display:flex;gap:4px;background:var(--beige-velo);padding:4px;border-radius:12px;align-self:flex-start}
.fsg-tabs button{border:none;background:none;padding:8px 14px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer;font-family:var(--ui);color:var(--tinta-suave)}
.fsg-tabs button.on{background:#fff;color:var(--tinta);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.fsg-lienzo{position:relative;border:1.5px solid var(--linea);border-radius:14px;background:#fff}
.fsg-lienzo canvas{width:100%;height:auto;aspect-ratio:3/1;display:block;touch-action:none;cursor:crosshair}
.fsg-lienzo canvas.sin{cursor:default}
.fsg-linea{position:absolute;left:8%;right:8%;bottom:24%;border-bottom:1.5px solid #C9C4B4;pointer-events:none}
.fsg-lienzo .tlink{position:absolute;right:12px;top:10px}
#g-escrita{font-size:16px;padding:11px 12px;width:100%}
.fsg-rubv{width:150px;height:60px;border:1px dashed var(--linea);border-radius:10px;background:#fff}
.fsg-acepto{display:flex;gap:10px;font-size:13px;line-height:1.45;align-items:flex-start;padding:12px;border-radius:12px;background:var(--beige-velo)}
.fsg-acepto input{width:20px;height:20px;margin-top:1px;accent-color:var(--verde-profundo);flex:none}
.fsg-rech summary{cursor:pointer;font-size:12.5px;color:var(--crit);font-weight:600;margin-top:4px}
.fsg-rech textarea{width:100%;margin:8px 0}
.fsg-cargando{position:fixed;inset:0;background:rgba(253,252,248,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-weight:700;z-index:200}
.fsg-cargando span{width:42px;height:42px;border-radius:50%;border:4px solid var(--verde-velo);border-top-color:var(--verde-profundo);animation:gira 1s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.fsg-fin{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:16px;padding:34px 20px;display:flex;flex-direction:column;gap:10px;align-items:center}
.fsg-fin h2{font-family:var(--disp);font-weight:500;font-size:24px}
.fsg-ok{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;font-size:34px;display:flex;align-items:center;justify-content:center}
.fver{text-align:center;margin:10px 0 18px}.fver h1{font-family:var(--disp);font-weight:500;font-size:26px;margin:10px 0 2px}
.fver-i{width:58px;height:58px;border-radius:50%;background:var(--beige);color:#fff;font-size:30px;display:inline-flex;align-items:center;justify-content:center}.fver-i.ok{background:var(--ok)}
.fverd,.fverf{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--beige-velo)}.fverd small{font-size:11px;color:var(--tinta-suave);word-break:break-all}
.fverf{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}
.fvres{margin-top:12px;padding:12px 14px;border-radius:12px;font-weight:700;font-size:13.5px}.fvres.ok{background:var(--ok-bg);color:var(--ok)}.fvres.no{background:var(--crit-bg);color:var(--crit)}
@media(max-width:900px){
  .fed{grid-template-columns:1fr}.fed-lado{position:static;max-height:none}
  .fed-pn{right:4px;top:-16px}
  .fcgrid,.fresumen,.fopts{grid-template-columns:1fr}
  .fdrow{grid-template-columns:1fr 1fr}.fdhead{display:none}.fdnom{grid-column:1/-1}
  .ffir{grid-template-columns:1fr}
  .fwiz{padding:18px 16px}
  .fsg-sec{padding:16px}
}
.fprog .fbar{flex:1;max-width:420px;min-width:120px}
.fed-docs{padding-bottom:90px}

/* ═══ v6.1 · firmas: guardado automático, selector de expediente en columnas, captura guiada ═══ */
.fauto{font-size:12px;color:var(--tinta-suave);margin-left:auto;margin-right:12px;white-space:nowrap}
.fauto.mal{color:var(--crit);font-weight:600}
#fdatos .fauto{align-self:center;margin:0 0 8px}
details.fexp{margin-top:16px;border:1px solid var(--linea);border-radius:14px;background:#fff;overflow:hidden;padding:0}
details.fexp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 16px;font-weight:600;color:var(--verde-profundo)}
details.fexp>summary::-webkit-details-marker{display:none}
details.fexp>summary small{font-weight:400;color:var(--tinta-suave);font-size:12px}
details.fexp>summary::after{content:"›";margin-left:auto;font-size:20px;line-height:1;transition:transform .2s;color:var(--tinta-suave)}
details.fexp[open]>summary::after{transform:rotate(90deg)}
details.fexp[open]>summary{border-bottom:1px solid var(--linea)}
.fexp-form{padding:14px 16px 4px}
.fexp-form .fpie{margin-top:12px}
.fsel3{border:1px solid var(--linea);border-radius:12px;overflow:hidden;background:#fff}
.fsel3-ruta{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--beige-velo);border-bottom:1px solid var(--linea);font-size:12.5px;color:var(--tinta-suave);min-height:40px}
.fsel3-migas{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fsel3-atras{border:1px solid var(--linea);background:#fff;border-radius:50%;width:26px;height:26px;font-size:17px;line-height:1;cursor:pointer;color:var(--verde-profundo);flex:none}
.fsel3-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));min-height:300px}
.fsel3-col{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--linea)}
.fsel3-col:last-child{border-right:0}
.fsel3-h{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--tinta-suave);padding:10px 12px 6px}
.fsel3-busca{margin:0 10px 6px;min-width:0!important;padding:6px 10px!important;font-size:13px!important;border-radius:8px!important}
.fsel3-l{flex:1;overflow-y:auto;max-height:340px;padding:0 6px 8px}
.fsel3-g{font-size:10.5px;font-weight:700;color:var(--marron-profundo);padding:8px 8px 3px;letter-spacing:.03em}
.fsel3-i{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:8px;cursor:pointer;color:var(--tinta);font-size:13px;line-height:1.3}
.fsel3-i:hover{background:var(--beige-velo)}
.fsel3-i.on{background:var(--verde-profundo);color:#fff}
.fsel3-i.on small,.fsel3-i.on .fsel3-fl{color:#E2E7E1}
.fsel3-i svg{flex:none}
.fsel3-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fsel3-i small{font-size:11px;color:var(--tinta-suave);flex:none}
.fsel3-fl{font-style:normal;color:var(--tinta-suave);font-size:16px;line-height:1;flex:none}
.fsel3-i.vacio{opacity:.55}
.fsel3-i.nueva .fsel3-n{font-style:italic}
.fsel3-i.doc .fsel3-n{white-space:normal;word-break:break-word}
.fsel3-v{font-size:12.5px;color:var(--tinta-suave);padding:14px 10px}
@media (max-width:720px){
  .fsel3-cols{grid-template-columns:1fr}
  .fsel3-col{display:none;border-right:0}
  .fsel3[data-col="1"] .fsel3-col[data-n="1"],.fsel3[data-col="2"] .fsel3-col[data-n="2"],.fsel3[data-col="3"] .fsel3-col[data-n="3"]{display:flex}
  .fsel3-l{max-height:55vh}
}
.fexpd{padding:16px}
.fenvs{display:flex;flex-direction:column;gap:8px}
.fenv{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;text-decoration:none;color:var(--tinta);background:var(--beige-velo)}
.fenv:hover{border-color:var(--verde)}
.fenv span{display:flex;flex-direction:column;flex:1;min-width:0}
.fenv small{color:var(--tinta-suave);font-size:11.5px}
.fenv i{font-style:normal;color:var(--verde-profundo);font-weight:600;font-size:12.5px}
.fexpd details.fexp{margin-top:12px}

/* tarjetas de foto del firmante (botones que abren la captura guiada) */
button.fsg-foto{font-family:var(--ui);gap:6px;padding:16px;text-align:center;color:var(--verde-profundo);width:100%}
button.fsg-foto small{font-weight:400;font-size:11.5px;color:var(--tinta-suave)}
button.fsg-foto .fsg-fico{color:var(--verde)}
button.fsg-foto.doc img{object-fit:contain;background:#26291F}
button.fsg-foto em{display:none;position:absolute;right:8px;bottom:8px;font-style:normal;font-size:11px;font-weight:700;background:rgba(255,255,255,.92);color:var(--verde-profundo);padding:3px 9px;border-radius:99px}
button.fsg-foto.ok em{display:block}

/* captura guiada (pantalla completa) */
html.ecap-abierta,html.ecap-abierta body{overflow:hidden}
.ecap{position:fixed;inset:0;z-index:200;background:#0f110d;color:#fff;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.ecap-top{display:flex;align-items:center;gap:10px;padding:12px 14px}
.ecap-top b{flex:1;text-align:center;font-size:15px;letter-spacing:.02em}
.ecap-top span{width:38px}
.ecap-x{width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:16px;cursor:pointer}
.ecap-vista{position:relative;flex:1;overflow:hidden;touch-action:none;user-select:none;background:#000}
.ecap-vista video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ecap-vista video.espejo{transform:scaleX(-1)}
.ecap-img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;cursor:grab}
.ecap-res{position:absolute;display:none;z-index:2}
.ecap-doc .ecap-res{border-radius:14px}
.ecap-selfie .ecap-res{border-radius:50%}
.ecap-marco{position:absolute;z-index:3;pointer-events:none;border-radius:14px;box-shadow:0 0 0 200vmax rgba(10,12,8,.62);outline:2px solid rgba(255,255,255,.9);outline-offset:0}
.ecap-selfie .ecap-marco{border-radius:50%}
.ecap-marco i{position:absolute;width:26px;height:26px;border:4px solid #9FC29A}
.ecap-marco i:nth-child(1){left:-3px;top:-3px;border-right:0;border-bottom:0;border-top-left-radius:14px}
.ecap-marco i:nth-child(2){right:-3px;top:-3px;border-left:0;border-bottom:0;border-top-right-radius:14px}
.ecap-marco i:nth-child(3){left:-3px;bottom:-3px;border-right:0;border-top:0;border-bottom-left-radius:14px}
.ecap-marco i:nth-child(4){right:-3px;bottom:-3px;border-left:0;border-top:0;border-bottom-right-radius:14px}
.ecap-selfie .ecap-marco i{display:none}
.ecap-marco.listo{outline-color:#9FC29A}
.ecap-ayuda{text-align:center;font-size:13.5px;line-height:1.45;padding:12px 22px 4px;color:#E9EDE6;min-height:52px}
.ecap-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 28px 22px;gap:14px}
.ecap-bar[hidden]{display:none}
.ecap-lado{width:84px;border:0;background:none;color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;padding:10px 0}
.ecap-lado[hidden]{display:none}
.ecap-disp{width:74px;height:74px;border-radius:50%;border:4px solid #fff;background:none;padding:4px;cursor:pointer;flex:none}
.ecap-disp span{display:block;width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .12s}
.ecap-disp:active span{transform:scale(.88)}
.ecap-disp:disabled{opacity:.35;cursor:default}
.ecap-bar2{justify-content:center}
.ecap-bar2 .btn{min-width:140px;justify-content:center}
.ecap-bar2 .btn.sec{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.ecap[data-modo="sincam"] .ecap-gal{background:#fff;color:var(--verde-profundo);border-radius:99px;width:auto;padding:10px 18px}
/* tarjetas de identidad: la foto ya viene recortada, la tarjeta toma su proporción exacta */
.fsg-fotos{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));align-items:start}
button.fsg-foto.ok{min-height:0;padding:0}
button.fsg-foto.ok>span,button.fsg-foto.ok>small{visibility:hidden}
button.fsg-foto.doc.ok{aspect-ratio:85.6/54}
button.fsg-foto.doc.ok img{object-fit:cover;background:none}
button.fsg-foto:not(.doc).ok{aspect-ratio:3/4}
.fsg-fotos{grid-template-columns:1fr 1fr}
button.fsg-foto:not(.doc){order:2;grid-column:1/-1;justify-self:center;width:min(240px,62%)}

/* v6.2 · firmas: archivar desde la lista · desplazamiento en el celular */
.fdfila{display:flex;align-items:center;border-bottom:1px solid var(--beige-velo)}
.fdfila:last-child{border-bottom:none}
.fdfila>.fdrow{flex:1;min-width:0;border-bottom:0}
.fdfila-h{border-bottom:1px solid var(--linea)}
.fdfila-h>.fdrow{border-bottom:0}
.fdacc{width:44px;flex:none;display:flex;justify-content:center}
.fdacc .ibtn{color:var(--tinta-suave)}
.fdacc .ibtn:hover{color:var(--verde-profundo);background:var(--beige-velo)}
.fdfila[hidden]{display:none}
/* las páginas del documento dejan desplazarse con el dedo; solo los campos se arrastran */
.fed-pag{touch-action:pan-x pan-y pinch-zoom}
.fsg-pag{cursor:default;user-select:auto;-webkit-user-select:auto}
.fdnom>svg{flex:none}
.fdfecha small{white-space:nowrap}

/* ═══════════════ v7 · navegación lateral por bloques ═══════════════ */
:root{--lw:252px;--lw-min:68px;--lado:#4A5F47;--lado-2:#435740;--lado-t:#EEF1EA;--lado-s:rgba(238,241,234,.62)}
body.con-lado{padding-left:var(--lw);transition:padding-left .22s cubic-bezier(.2,.7,.2,1)}
/* (modo compacto: ver capa responsive v7.1 al final) */
.lado{position:fixed;inset:0 auto 0 0;width:var(--lw);z-index:80;background:linear-gradient(180deg,var(--verde-profundo),var(--lado-2));color:var(--lado-t);display:flex;flex-direction:column;border-right:1px solid rgba(0,0,0,.06);box-shadow:2px 0 18px rgba(38,41,31,.08);transition:width .22s cubic-bezier(.2,.7,.2,1),transform .25s cubic-bezier(.2,.7,.2,1)}

.lado-cab{display:flex;align-items:center;gap:8px;padding:14px 12px 10px 14px}
.lado-marca{flex:1;min-width:0;text-decoration:none;display:flex}
.lado-marca .placa{display:flex;align-items:center;gap:8px;background:#FDFCF7;border-radius:12px;padding:5px 11px 5px 8px;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.lado-marca .placa .iso{height:26px;width:auto;display:block}.lado-marca .placa .sep{width:1px;height:22px;background:var(--linea)}.lado-marca .placa .logo{height:30px;width:auto;display:block}
.lado-iso{display:none;width:38px;height:38px;border-radius:11px;background:#FDFCF7;padding:6px;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.lado-pliega{flex:none;width:32px;height:32px;border-radius:9px;border:0;background:transparent;color:var(--lado-s);display:flex;align-items:center;justify-content:center;cursor:pointer}
.lado-pliega:hover{background:rgba(255,255,255,.1);color:#fff}
.lado-busca{margin:4px 12px 8px;display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:var(--lado-s);font:500 13px var(--ui);cursor:pointer;text-align:left}
.lado-busca:hover{background:rgba(255,255,255,.12);color:#fff}
.lado-busca span{flex:1}
.lado-busca kbd,.cmdk kbd{font:600 10.5px var(--ui);padding:2px 6px;border-radius:5px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16)}
.lado-nav{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:2px 10px 12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}
.lgrp{margin-top:10px}
.lgrp-t{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:none;color:var(--lado-s);font:700 10.5px var(--ui);letter-spacing:.09em;text-transform:uppercase;padding:6px 8px;cursor:pointer;border-radius:7px}
.lgrp-t:hover{color:#fff}
.lgrp-t i{font-style:normal;font-size:14px;transform:rotate(90deg);transition:transform .18s;opacity:.7}
.lgrp.plegado .lgrp-t i{transform:rotate(0)}
.lgrp-c{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease}
.lgrp-c>*{min-height:0}
.lgrp.plegado .lgrp-c{display:none}
.lit{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;color:var(--lado-t);text-decoration:none;font:600 13.5px var(--ui);position:relative;transition:background .12s}
.lit:hover{background:rgba(255,255,255,.09)}
.lit.on{background:#FDFCF7;color:var(--verde-profundo);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.lico{display:flex;flex:none;opacity:.9}
.ltx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lit .ltx{flex:1}
.lcnt{flex:none;min-width:20px;height:19px;padding:0 6px;border-radius:99px;background:#E8C9B8;color:var(--marron-profundo);font:700 10.5px/19px var(--ui);text-align:center}
.lit.on .lcnt{background:var(--marron);color:#fff}
.lsubs{display:none;margin:3px 0 6px 21px;padding-left:12px;border-left:1px solid rgba(255,255,255,.18)}
.litw.abierta .lsubs{display:block}
.lsub{display:block;padding:5px 10px;border-radius:8px;color:var(--lado-s);text-decoration:none;font:500 12.5px var(--ui)}
.lsub:hover{color:#fff;background:rgba(255,255,255,.07)}
.lsub.on{color:#fff;font-weight:700;background:rgba(255,255,255,.12)}
.lado-pie{padding:10px;border-top:1px solid rgba(255,255,255,.1)}
.lusr{position:relative}
.lusr summary{list-style:none;display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:11px;cursor:pointer}
.lusr summary::-webkit-details-marker{display:none}
.lusr summary:hover,.lusr[open] summary{background:rgba(255,255,255,.09)}
.lav{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:#FDFCF7;color:var(--verde-profundo);font:700 12.5px var(--ui);object-fit:cover}
.lusr .ltx{display:flex;flex-direction:column;line-height:1.25}.lusr .ltx b{font-size:13px}.lusr .ltx small{font-size:11px;color:var(--lado-s)}
.lusr-m{position:absolute;bottom:calc(100% + 6px);left:0;right:0;min-width:210px;background:#fff;color:var(--tinta);border:1px solid var(--linea);border-radius:13px;box-shadow:0 14px 38px rgba(38,41,31,.25);padding:6px;display:flex;flex-direction:column;z-index:5}
.lusr-m a,.lusr-m button{display:block;width:100%;text-align:left;padding:9px 11px;border-radius:8px;color:var(--tinta);text-decoration:none;font:500 13px var(--ui);background:none;border:0;cursor:pointer}
.lusr-m a:hover,.lusr-m button:hover{background:var(--beige-velo)}
.lusr-m form button{color:var(--crit)}
/* modo compacto: solo íconos */









/* barra superior: solo en pantallas pequeñas */
.barra{display:none}
.lado-velo{display:none}
@media (max-width:900px){
  body.con-lado,html.lado-compacto body.con-lado{padding-left:0}
  .lado,html.lado-compacto .lado{width:min(300px,86vw);transform:translateX(-102%);box-shadow:none}
  html.lado-abierto .lado{transform:none;box-shadow:12px 0 40px rgba(0,0,0,.3)}
  .lado-iso,.lado-pliega{display:none!important}
  .lado-velo{display:block;position:fixed;inset:0;z-index:79;background:rgba(20,24,18,.42);opacity:0;pointer-events:none;transition:opacity .2s}
  html.lado-abierto .lado-velo{opacity:1;pointer-events:auto}
  html.lado-abierto,html.lado-abierto body{overflow:hidden}
  .barra{display:flex;position:sticky;top:0;z-index:60;align-items:center;gap:12px;padding:9px 14px;padding-top:max(9px,env(safe-area-inset-top));background:var(--verde-profundo);box-shadow:0 2px 14px rgba(38,41,31,.2)}
  .barra .ham,.barra-busca{display:flex;width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;align-items:center;justify-content:center;cursor:pointer;flex:none;margin:0}
  .barra-marca{flex:1;display:flex;justify-content:center;text-decoration:none}
  .barra-marca .placa{display:flex;align-items:center;gap:7px;background:#FDFCF7;border-radius:11px;padding:4px 10px 4px 7px}
  .barra-marca .placa .iso{height:24px}.barra-marca .placa .sep{width:1px;height:20px;background:var(--linea)}.barra-marca .placa .logo{height:28px}
}
.cont{max-width:1240px}
body.con-lado .pie{padding-bottom:22px}

/* ═══ ⌘K ═══ */
.cmdk{position:fixed;inset:0;z-index:300;background:rgba(24,28,22,.38);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:cmdkIn .12s ease}
.cmdk[hidden]{display:none}
@keyframes cmdkIn{from{opacity:0}to{opacity:1}}
.cmdk-caja{width:min(640px,100%);background:rgba(255,255,255,.97);border:1px solid var(--linea);border-radius:16px;box-shadow:0 28px 80px rgba(20,24,18,.35);overflow:hidden;display:flex;flex-direction:column;max-height:72vh;animation:cmdkCaja .16s cubic-bezier(.2,.8,.2,1)}
@keyframes cmdkCaja{from{transform:translateY(-8px) scale(.985);opacity:.6}to{transform:none;opacity:1}}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--linea);color:var(--tinta-suave)}
.cmdk-in input{flex:1;border:0!important;outline:none;background:transparent;font:500 16px var(--ui);color:var(--tinta);padding:4px 0!important;min-width:0!important;box-shadow:none!important}
.cmdk kbd{background:var(--beige-velo);border-color:var(--linea);color:var(--tinta-suave)}
.cmdk-l{overflow-y:auto;padding:6px}
.cmdk-g{font:700 10.5px var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-suave);padding:10px 10px 4px}
.cmdk-i{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;cursor:pointer}
.cmdk-i.on{background:var(--verde-profundo);color:#fff}
.cmdk-ico{width:28px;height:28px;flex:none;border-radius:8px;background:var(--beige-velo);color:var(--verde-profundo);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.cmdk-i.on .cmdk-ico{background:rgba(255,255,255,.18);color:#fff}
.cmdk-tx{flex:1;min-width:0;display:flex;flex-direction:column}
.cmdk-tx b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-tx small{font-size:11.5px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-ir{opacity:0;font-size:13px}.cmdk-i.on .cmdk-ir{opacity:.8}
.cmdk-v{padding:22px;text-align:center;color:var(--tinta-suave);font-size:13px}
.cmdk-pie{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--linea);font-size:11.5px;color:var(--tinta-suave);background:var(--beige-velo)}
.cmdk-pie kbd{margin-right:3px}
html.cmdk-abierto{overflow:hidden}
@media (max-width:600px){.cmdk{padding:0}.cmdk-caja{max-height:100dvh;height:100dvh;border-radius:0}.cmdk-pie{display:none}}

/* ═══ ingreso, registro y verificación ═══ */
body.acc{background:var(--beige-velo);min-height:100vh}
.acc-app{min-height:100vh;display:grid;grid-template-columns:minmax(320px,44%) 1fr}
.acc-marca{background:radial-gradient(120% 90% at 0% 0%,#6C8A69 0,#52694F 45%,#3E5139 100%);color:#F2F4EE;padding:56px 56px 40px;display:flex;flex-direction:column;justify-content:center;gap:18px;position:relative;overflow:hidden}
.acc-marca::after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 60px rgba(255,255,255,.03),0 0 0 120px rgba(255,255,255,.02)}
.acc-placa{display:inline-flex;align-self:flex-start;align-items:center;gap:12px;background:#FDFCF7;border-radius:16px;padding:9px 18px 9px 13px;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.acc-iso{height:40px}.acc-placa span{width:1px;height:34px;background:var(--linea)}.acc-logo{height:48px}
.acc-marca h2{font:500 clamp(28px,3.2vw,40px)/1.12 var(--disp);letter-spacing:.02em;margin-top:22px}
.acc-marca p{font-size:15px;opacity:.82;max-width:40ch}
.acc-seg{list-style:none;display:flex;flex-direction:column;gap:9px;margin-top:14px;font-size:13px;opacity:.9}
.acc-seg li{display:flex;align-items:center;gap:9px}
.acc-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 22px}
.acc-caja{width:min(400px,100%);background:#fff;border:1px solid var(--linea);border-radius:20px;padding:34px 30px 26px;box-shadow:0 20px 60px rgba(38,41,31,.1)}
.acc-t{font:500 30px/1.1 var(--disp);letter-spacing:.02em;color:var(--tinta)}
.acc-s{color:var(--tinta-suave);font-size:14px;margin:6px 0 20px}
.acc-bots{display:flex;flex-direction:column;gap:10px}
.acc-g,.acc-k{display:flex;align-items:center;justify-content:center;gap:12px;height:46px;border-radius:999px;font:600 14.5px var(--ui);text-decoration:none;cursor:pointer;transition:background .12s,box-shadow .12s,transform .08s}
.acc-g{background:#fff;color:#1F1F1F;border:1px solid #747775}
.acc-g:hover{background:#F8F9FA;box-shadow:0 1px 3px rgba(60,64,67,.3)}
.acc-g:active,.acc-k:active{transform:scale(.99)}
.acc-g.off{opacity:.55}
.acc-g.mini{display:inline-flex;height:38px;padding:0 16px;font-size:13px}
.acc-k{background:var(--verde-profundo);color:#fff;border:0}
.acc-k:hover{background:#465A43}
.acc-k.cargando{opacity:.7;cursor:progress}
.acc-k[hidden]{display:none}
.acc-o{display:flex;align-items:center;gap:12px;margin:20px 0 14px;color:var(--tinta-suave);font-size:12px}
.acc-o::before,.acc-o::after{content:"";flex:1;height:1px;background:var(--linea)}
.acc-f{display:flex;flex-direction:column;gap:11px}
.acc-f input{width:100%;height:44px;font-size:15px!important;border-radius:11px!important}
.acc-entrar{height:46px;border-radius:999px!important;justify-content:center;font-size:14.5px;margin-top:4px}
.acc-otp{letter-spacing:.5em;text-align:center;font-size:22px!important;font-variant-numeric:tabular-nums}
.acc-reg{margin-top:18px;text-align:center;font-size:13px;color:var(--tinta-suave)}
.acc-reg a{color:var(--verde-profundo);font-weight:700;text-decoration:none}
.acc-pie{margin-top:18px;font-size:11.5px;color:var(--tinta-suave)}
.acc-pie a{color:inherit}
.acc-nota{font-size:12px;color:var(--tinta-suave);margin-top:12px;background:var(--beige-velo);padding:10px 12px;border-radius:10px}
.acc-pasos{list-style:none;counter-reset:p;display:flex;flex-direction:column;gap:12px;margin:0 0 22px}
.acc-pasos li{counter-increment:p;display:grid;grid-template-columns:30px 1fr;gap:2px 12px;font-size:13.5px}
.acc-pasos li::before{content:counter(p);grid-row:1/3;width:30px;height:30px;border-radius:50%;background:var(--verde-velo);color:var(--verde-profundo);font-weight:700;display:flex;align-items:center;justify-content:center}
.acc-pasos span{color:var(--tinta-suave);font-size:12.5px}
.acc-yo{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.acc-yo img,.acc-yo>span{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;background:var(--verde-velo);color:var(--verde-profundo);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.acc-yo div{display:flex;flex-direction:column}.acc-yo small{color:var(--tinta-suave);font-size:12.5px}
.acc-espera{display:flex;align-items:center;gap:10px;background:var(--warn-bg);color:var(--warn);border-radius:12px;padding:11px 14px;font-size:13px;font-weight:600}
.acc-pulso{width:9px;height:9px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 0 rgba(148,102,15,.5);animation:pulso 1.6s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 9px rgba(148,102,15,0)}100%{box-shadow:0 0 0 0 rgba(148,102,15,0)}}
@media (max-width:860px){.acc-app{grid-template-columns:1fr}.acc-marca{padding:28px 22px 26px;gap:8px}.acc-marca h2{font-size:24px;margin-top:10px}.acc-marca p,.acc-seg{display:none}.acc-marca::after{display:none}.acc-panel{padding:20px 14px 30px;justify-content:flex-start}.acc-caja{padding:26px 20px 20px}}

/* ═══ Mi perfil y seguridad · Equipo ═══ */
.psec{max-width:780px;margin-bottom:14px}
.psec-c{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}
.psec-c h3{margin:0 0 2px}.psec-c p{font-size:13px;color:var(--tinta-suave);margin:0}
.psec-i{width:40px;height:40px;flex:none;border-radius:12px;background:var(--verde-velo);color:var(--verde-profundo);display:flex;align-items:center;justify-content:center}
.plista{display:flex;flex-direction:column;border:1px solid var(--linea);border-radius:12px;overflow:hidden;margin-bottom:10px}
.pfila{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--beige-velo)}
.pfila:last-child{border-bottom:0}
.pfila>span{flex:1;min-width:0;display:flex;flex-direction:column}.pfila small{color:var(--tinta-suave);font-size:12px}
.pacc{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pacc input{flex:1 1 220px}
.solf{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:12px 0;border-bottom:1px solid var(--beige-velo)}
.solf:last-child{border-bottom:0}
.solf .acc-yo{flex:1 1 260px;margin:0}
.solb{display:flex;gap:8px}
.gcopiar{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gcopiar input{background:var(--beige-velo);font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
@media (max-width:700px){.gcopiar{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* sin barra superior en escritorio: lo pegajoso sube y las anclas no quedan tapadas */
@media (min-width:901px){.fed-lado{top:18px!important;max-height:calc(100vh - 36px)!important}html{scroll-padding-top:16px}}
@media (max-width:900px){html{scroll-padding-top:70px}}
@media print{.lado,.lado-velo,.barra,.eva-fab,#eva-panel{display:none!important}body.con-lado{padding-left:0!important}}
@media (max-width:900px),(pointer:coarse){.lado-busca kbd{display:none}}

/* ═══════════════════════════════════════════════════════════════════════════════
   v7.1 · CAPA RESPONSIVE — va de última: manda sobre todo lo anterior.
   Principio 1: cada componente responde al ESPACIO QUE REALMENTE TIENE (container queries
                sobre el cuerpo, que ya descuenta la barra lateral), no al ancho de la pantalla.
   Principio 2: el corte de cada tabla = suma de los mínimos de sus columnas + espacios +
                márgenes de la tarjeta. Por debajo, la fila se vuelve ficha (4 columnas) y en
                celular, ficha de 2 columnas. Nada se sale; la página nunca se desplaza de lado.
   Principio 3: la barra lateral se compacta sola (solo íconos) entre 901 y 1279 px y se
                despliega encima del contenido al pasar el mouse, sin mover nada.
   Lo verifica scratchpad/v71/auditoria.js: 25 pantallas × 14 anchos.
   ═══════════════════════════════════════════════════════════════════════════════ */
body{container:app / inline-size}
.cont{min-width:0;overflow-wrap:break-word}
.cont img,.cont svg,.cont video,.cont canvas{max-width:100%}
.cont input,.cont select,.cont textarea{max-width:100%}
.tc,.vc,.fdrow>span,.ffir>div{min-width:0;overflow-wrap:break-word}
.tc-t,.prad,.pdesp,.vasunto,.fdnom{overflow-wrap:anywhere}
.rsel>summary{white-space:nowrap;max-width:100%}
html{background:var(--beige-velo)} /* el cuerpo es contenedor: su fondo ya no se propaga al lienzo */

/* ── barra lateral compacta (por preferencia o por falta de espacio) ── */
html.lado-compacto body.con-lado{padding-left:var(--lw-min)}
html.lado-compacto .lado{width:var(--lw-min);overflow:hidden}
html.lado-compacto .lado:is(:hover,:focus-within){width:var(--lw);box-shadow:18px 0 50px rgba(20,24,18,.28);transition-delay:.12s}
html.lado-compacto .lado:not(:hover):not(:focus-within) :is(.ltx,.lgrp-t,.lsubs,.lado-marca .placa){display:none!important}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lado-iso{display:block}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lado-cab{flex-direction:column;padding:12px 0 6px}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lado-busca{margin:4px auto 8px;width:44px;justify-content:center;padding:9px 0}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lit{justify-content:center;padding:10px 0}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lgrp{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lgrp.plegado .lgrp-c{display:grid}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lusr summary{justify-content:center}
html.lado-compacto .lado:not(:hover):not(:focus-within) .lcnt{position:absolute;top:5px;right:9px;min-width:9px;width:9px;height:9px;padding:0;font-size:0;border:2px solid var(--verde-profundo)}
html.lado-estrecho .lado-pliega{display:none}
.lado .lit,.lado .lsub,.lado .lgrp-t{white-space:nowrap}

/* ── encabezados de sección y barras de pestañas ── */
.tbar{flex-wrap:wrap;row-gap:10px}
.seg{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.seg::-webkit-scrollbar{display:none}
.seg a{flex:none}
@container app (max-width:720px){
  .tbar{flex-direction:column;align-items:stretch}
  .tbar>.btn,.tbar>a.btn{align-self:flex-start}
  .seg{display:flex;border-radius:14px}
}

/* ── formularios en línea: los campos se reparten y bajan de renglón ── */
@container app (max-width:720px){
  form.linea{align-items:stretch}
  form.linea .cmp{flex:1 1 46%;min-width:140px}
  form.linea input,form.linea select{width:100%;min-width:0}
  .cont{padding:18px 14px 70px}
  h1.pag{font-size:23px}
}
@container app (max-width:420px){ form.linea .cmp{flex-basis:100%} .cont{padding:16px 12px 70px} }

/* ── TAREAS · fila de 8 columnas: mínimos 170+100+132+80+70+100+100+196 + 7×10 de espacio
      + 16 de la fila + ~30 de la tarjeta del cliente + 44 del contenido ≈ 1120 px ── */
@container app (max-width:1120px){
  .trow,.trow.arch{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;padding:12px 10px}
  .trow.thead{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px}
  .trow.thead .tc-t,.trow.thead .tc:has(.thb),.trow.thead .tc:empty{display:none}
  .trow .tc-t{grid-column:1/-1}
  .trow .tc-a{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
  .trow .tc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
  .trow.sub .tc-t{padding-left:6px}
  .trow.sub.add{padding-left:10px}
}
@container app (max-width:640px){ .trow,.trow.arch{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ── REPORTES y fichas de tarea ── */
@container app (max-width:900px){
  .rgrid.rper,.rgrid.rcli{grid-template-columns:1fr 1fr}
  .rgrid .rh{display:none}
  .rgrid .rc:not([data-l]){grid-column:1/-1;border-bottom:none;padding-bottom:2px}
  .rgrid .rc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;color:var(--tinta-suave)}
  .gav{margin-left:0}
  .dgrid{grid-template-columns:1fr}
}

/* ── VENCIMIENTOS · 6 columnas: 136+210+120+134+112+180 + 5×12 + márgenes ≈ 1060 px ── */
@container app (max-width:1060px){
  .vrow{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px}
  .vrow.vhead{display:flex;flex-wrap:wrap;gap:6px}
  .vrow.vhead .tc:has(.thb){display:none}
  .vrow .vasunto,.vrow .vobs{grid-column:1/-1}
  .vrow .tc[data-l]:not(.vfecha)::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
}
@container app (max-width:640px){ .vrow{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ── PROCESOS · 8 columnas (mínimos ajustados): 150+100+140+120+120+130+140+96 + 7×12 + márgenes ≈ 1180 px ── */
.prow{gap:10px;grid-template-columns:minmax(150px,1.15fr) minmax(100px,.8fr) minmax(140px,1.3fr) minmax(120px,1fr) minmax(120px,.95fr) minmax(130px,1.25fr) minmax(140px,1.1fr) minmax(96px,.75fr)}
@container app (max-width:1180px){
  .prow{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px}
  .prow.phead{display:flex;flex-wrap:wrap;gap:6px}
  .prow.phead .tc:has(.thb){display:none}
  .prow .prad{grid-column:1/-1}
  .prow .tc[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--tinta-suave);margin-bottom:2px}
}
@container app (max-width:640px){ .prow{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ── FIRMAS · lista: 220+130+130+130+110 + 4×12 + acción 44 + márgenes ≈ 920 px ── */
@container app (max-width:920px){
  .fdrow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fdfila-h{display:none}
  .fdnom{grid-column:1/-1}
}
@container app (max-width:900px){
  .fed{grid-template-columns:1fr}.fed-lado{position:static;max-height:none}
  .fcgrid,.fresumen,.fopts{grid-template-columns:1fr}
  .ffir{grid-template-columns:1fr}
  .fwiz{padding:18px 16px}
}
@container app (max-width:720px){
  .fsel3-cols{grid-template-columns:1fr}
  .fsel3-col{display:none;border-right:0}
  .fsel3[data-col="1"] .fsel3-col[data-n="1"],.fsel3[data-col="2"] .fsel3-col[data-n="2"],.fsel3[data-col="3"] .fsel3-col[data-n="3"]{display:flex}
  .gcopiar{grid-template-columns:1fr}
}

/* ── diagnóstico, expediente, calendario ── */
@container app (max-width:820px){ .drow{grid-template-columns:34px 1fr}.drow .obs,.drow .dacc{grid-column:2} }
@container app (max-width:720px){
  .ruta a{padding:9px 13px;font-size:13px}
  .finder{grid-template-columns:repeat(auto-fill,minmax(min(124px,100%),1fr))}
  .frow{gap:10px;padding:9px 10px}
  .cal.sem{grid-template-columns:1fr}
  .cal-cab{display:none}
}
@container app (max-width:640px){ .bar{grid-template-columns:110px 1fr 46px} }

/* ── tablas clásicas: si no caben, se desplazan DENTRO de su tarjeta (nunca la página) ── */
.tar:has(> table):not(:has(details)){overflow-x:auto}
.tar > table{min-width:0}

/* ── menús emergentes: app.js los acomoda para que nunca se salgan de la pantalla ── */
.rmenu.ajustado-der{left:auto!important;right:0!important}
/* encabezados de tabla: si el título es más largo que la columna, baja a dos renglones (no empuja la fila) */
:is(.trow.thead,.vrow.vhead,.prow.phead,.fdhead) :is(.thb,button.thf,details.thf>summary){white-space:normal;line-height:1.2;max-width:100%;text-align:left}
:is(.trow.thead,.vrow.vhead,.prow.phead,.fdhead) .tc{min-width:0}

/* ── v7.1b · nivel intermedio: fila compacta de 2 renglones (en vez de ficha alta) ──
   Tareas 900–1120 px: renglón 1 = tarea + acciones a la derecha; renglón 2 = los 6 datos en línea. */
@container app (min-width:900px) and (max-width:1120px){
  .trow:not(.arch):not(.thead){grid-template-columns:repeat(6,minmax(0,1fr)) auto;gap:6px 14px;align-items:start}
  .trow:not(.arch):not(.thead) .tc-t{grid-column:1/7;grid-row:1}
  .trow:not(.arch):not(.thead) .tc-a{grid-column:7;grid-row:1/3;align-self:center;justify-content:flex-end;flex-wrap:nowrap}
  .trow .tc-full{grid-column:1/-1}
}
/* Tareas 520–899 px: ficha de 3 columnas; menos de 520: 2 columnas */
@container app (min-width:520px) and (max-width:899px){ .trow:not(.thead),.trow.arch:not(.thead){grid-template-columns:repeat(3,minmax(0,1fr))} }
@container app (max-width:519px){ .trow:not(.thead),.trow.arch:not(.thead){grid-template-columns:repeat(2,minmax(0,1fr))} }
.trow .tc-full{grid-column:1/-1}

/* Vencimientos 700–1060 px: la fecha a la izquierda en su columna; asunto arriba; datos debajo; observación al final */
@container app (min-width:700px) and (max-width:1060px){
  .vrow:not(.vhead){grid-template-columns:140px repeat(3,minmax(0,1fr));gap:6px 16px;align-items:start}
  .vrow:not(.vhead) .vfecha{grid-column:1;grid-row:1/4}
  .vrow:not(.vhead) .vasunto{grid-column:2/5;grid-row:1}
  .vrow:not(.vhead) .vobs{grid-column:2/5;grid-row:3}
}

/* Procesos 760–1180 px: renglón 1 = radicado · despacho · cliente; renglón 2 = jurisdicción · responsable · en qué va · próxima · revisión */
@container app (min-width:760px) and (max-width:1180px){
  .prow:not(.phead){grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 16px;align-items:start}
  .prow:not(.phead) .prad{grid-column:1/3;grid-row:1}
  .prow:not(.phead) .pdesp{grid-column:3/5;grid-row:1}
  .prow:not(.phead) .tc[data-l="Cliente"]{grid-column:5;grid-row:1}
}
