/* Estilos de las pantallas que no tenía la Consulta Judicial original (términos, calendario, expediente, panel, avisos),
   con la paleta azul de la base. Va después del estilo base de index.html. */
:root{--marca:var(--accent);--oro-texto:#1A3FB0;--f-titulo:var(--f-head);--sel-bg:var(--accent-soft);--sel-txt:#1A3FB0;--sel-borde:#C9D7FA;--nuevo-bg:#F4F7FE;--anillo:rgba(36,87,230,.2)}

/* menú: botón para dejar solo los íconos */
.app{grid-template-columns:auto minmax(0,1fr)}
.side{width:248px;box-sizing:border-box;transition:width .2s ease}
/* nombres largos con «…» en una sola línea; flex-shrink:0 para que la lista se desplace en vez de aplastar los botones */
.side .nav-i,.side .nav-sub{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.logo{gap:10px;padding-left:2px;padding-right:0}
.logo b{font-size:14.5px}
.logo .mark{width:36px;height:36px;border-radius:11px}
.logo .nav-colapsar{margin-left:6px}
.logo .mark-img{border-radius:10px}
/* el ícono nunca se encoge; el texto se corta con «…» si el nombre de la firma es largo */
.logo .mark{flex:none}
.logo-tx{min-width:0;flex:1}
.logo b,.logo small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-colapsar{margin-left:auto;flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);display:grid;place-items:center;cursor:pointer}
.nav-colapsar:hover{color:var(--accent);border-color:var(--accent)}
.nav-colapsar svg{transform:rotate(180deg);transition:transform .2s}
.menu-compacto .side{width:86px;padding-left:12px;padding-right:12px}
.menu-compacto .logo{flex-direction:column;gap:12px}
.menu-compacto .logo>div{display:none}
.menu-compacto .nav-colapsar{margin:0}
.menu-compacto .nav-colapsar svg{transform:none}
.menu-compacto .side .lbl{font-size:0;height:1px;padding:0;margin:10px 12px;background:var(--line)}
.menu-compacto .nav-i{font-size:0;justify-content:center;padding:10px;width:46px;height:46px;min-height:46px;align-self:center;position:relative}
.menu-compacto .nav-i[aria-current="true"]::before{left:-13px}
.menu-compacto .nav-i .chev,.menu-compacto #nav-fuentes,.menu-compacto .side .foot,.menu-compacto #btn-salir>span:last-child{display:none}
.menu-compacto .nav-i .badge{position:absolute;top:1px;right:0;margin:0;min-width:17px;height:17px;padding:0 4px;font-size:10px}

/* colores de apoyo */
.link.acc,.flink,.mail-row a{color:var(--accent)}
.uso.bien{background:#E7F6EE;color:#146C3C}
.uso.medio{background:#FEF3C7;color:#8A4B00}
.uso.bajo{background:#FDE8E5;color:#A21D13}
.uso.nada{background:var(--soft);color:var(--muted)}
.c-activo{background:#2457E6}
.c-ocioso{background:#F59E0B}
.demo-acceso{background:var(--bg)}
.demo-cinta{background:#FEF3C7;color:#8A4B00;border:1px solid #F5C451;border-top:0}

/* duplicados y errores: rojo muy suave para que el texto se siga leyendo */
.mv-fila.dup,.aviso-dup{background:#FDEEEB}
.banner[data-kind="bad"]{background:#FDEEEB;color:#A21D13}

/* radicados con números alineados, números alineados */
.rad-txt,.inv .rad,#sheet-title .mono{font-family:var(--f-body);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.rad-txt{font-size:12.5px}

/* el semáforo no se muestra en pantalla: solo avisa abajo a la derecha */
#sem-box,.mv .amt .sem{display:none}
.esquina{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;gap:8px;width:320px;max-width:calc(100vw - 32px)}
.esq-aviso{display:flex;gap:10px;align-items:flex-start;background:#FFFFFF;border:1px solid var(--line);border-radius:12px;padding:12px 10px 12px 14px;box-shadow:0 10px 28px rgba(23,24,28,.14);font-size:13px;animation:esq-entra .2s ease-out}
.esq-aviso.sale{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.esq-punto{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:#D9412D}
.esq-naranja .esq-punto{background:#E8892B}
.esq-tx{flex:1;min-width:0}
.esq-tx b{display:block;font-weight:600;font-size:13.5px;color:var(--ink)}
.esq-tx small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.esq-ver{border:0;background:none;padding:6px 0 0;font:inherit;font-size:12.5px;font-weight:600;color:var(--oro-texto);cursor:pointer;min-height:28px}
.esq-ver:hover{text-decoration:underline}
.esq-x{flex:none;width:28px;height:28px;border:0;background:none;border-radius:8px;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.esq-x:hover{background:var(--soft);color:var(--ink)}
@keyframes esq-entra{from{opacity:0;transform:translateY(8px)}}
@media (max-width:900px){.esquina{right:16px;bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
.sem-filtro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#FFFFFF;font-size:13.5px;color:var(--ink)}
.sem-filtro .link{font-weight:600;color:var(--oro-texto)}

/* botón de contraer el menú: la flecha exactamente al centro */
.nav-colapsar{padding:0}
.nav-colapsar>span{display:grid;place-items:center;width:15px;height:15px}
.nav-colapsar svg{display:block}

/* ---------- términos ---------- */
.ter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ter-tabs .n{opacity:.7;font-weight:500;margin-left:2px}
.ter-grupo{margin-bottom:22px}
.ter-h{font-size:15px;font-weight:600;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.ter-h .n{font-size:12.5px;color:var(--muted);font-weight:500}
.ter-fila{display:flex;align-items:flex-start;gap:16px;padding:14px 16px;border-top:1px solid var(--line)}
.group>.ter-fila:first-child{border-top:0}
.ter-fecha{flex:none;width:56px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:6px 0;line-height:1.1}
.ter-fecha b{display:block;font-size:20px;font-weight:600}
.ter-fecha small{display:block;font-size:11px;color:var(--muted);text-transform:capitalize}
.ter-tx{flex:1;min-width:0}
.ter-tx b{display:block;font-weight:600}
.ter-tx small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.ter-tx .ter-norma{font-size:12px}
.ter-der{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px;max-width:220px}
.ter-der small{font-size:12px;color:var(--muted)}
.ter-faltan{font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:6px}
.ter-faltan::before{content:"";width:7px;height:7px;border-radius:50%;background:#9AA3B2}
.ter-pronto .ter-faltan{color:#8A3F00}.ter-pronto .ter-faltan::before{background:#E8892B}
.ter-hoy .ter-faltan,.ter-vencido .ter-faltan{color:#A21D13}.ter-hoy .ter-faltan::before,.ter-vencido .ter-faltan::before{background:#D9412D}
.ter-acc{display:flex;gap:14px;margin-top:6px}
.ter-acc .link{font-size:12.5px;font-weight:600;color:var(--oro-texto);min-height:28px}
@media (max-width:640px){
  .ter-fila{flex-wrap:wrap;gap:10px 12px}
  .ter-der{flex-basis:100%;align-items:flex-start;text-align:left;max-width:none;padding-left:68px}
}
/* en el celular solo se ve el aviso más reciente, para no tapar la pantalla */
@media (max-width:900px){.esquina .esq-aviso:not(:last-child){display:none}}

/* término por vencer: en la fila y en el detalle del proceso */
.mv .amt .ter-tag{color:#8A3F00}
.mv .amt .ter-tag.ter-tag-rojo{color:#A21D13}
.ojo{border:1px solid #F0C9A8;background:#FFF6EE;border-radius:12px;padding:12px 16px;color:var(--ink)}
.ojo b{display:block;font-weight:600;color:#8A3F00;margin-bottom:4px}
.ojo ul{margin:0 0 6px;padding-left:18px;font-size:13.5px;line-height:1.5}
.ojo small{color:var(--muted)}
.ojo .link{font-weight:600;color:var(--oro-texto);font-size:13px}
.ter-tag{background:none;padding:0;border-radius:0;color:#8A3F00;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.ter-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ter-tag.ter-tag-rojo{color:#A21D13}

/* ---------- calendario ---------- */
.cal-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav .icon-btn svg{transform:rotate(180deg)}
.cal-nav .cal-sig svg{transform:none}
.cal-mes{margin:0 6px;font-size:18px;font-weight:600;min-width:170px;text-align:center}
.cal-ley{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:12px}
.cal-ley span{display:inline-flex;align-items:center;gap:6px}
.cal-ley span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,#9AA3B2)}
.cal-ley .cal-inh::before{border-radius:2px;background:#EEF0F3;box-shadow:inset 0 0 0 1px #D9DDE3}
.cal-urgente{--c:#D9412D}.cal-termino{--c:#E8892B}.cal-audiencia{--c:#2457E6}.cal-reunion{--c:#2E9E5B}.cal-otro,.cal-vencimiento{--c:#8A94A6}
.cal-vencimiento{--c:#D9412D}
.cal-cuerpo{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.cal-grid{flex:999 1 560px;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#FFFFFF;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cal-dsem{padding:8px 10px;font-size:12px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);background:#FAFBFC}
.cal-dia{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:104px;padding:6px 7px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#FFFFFF;text-align:left;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.cal-dia:nth-child(7n){border-right:0}
.cal-dia:hover{background:#F7F8FA}
.cal-dia.inh{background:#F6F7F9}
.cal-dia.fuera{color:#A0A6B1}
.cal-dia.fuera .cal-ev{opacity:.55}
.cal-dia.sel{box-shadow:inset 0 0 0 2px var(--oro-texto);z-index:1}
.cal-num{font-size:13px;font-weight:600;line-height:22px;width:24px;height:24px;text-align:center;border-radius:50%}
.cal-dia.hoy .cal-num{background:var(--oro-texto);color:#FFFFFF}
.cal-fest{font-size:10.5px;color:var(--muted);line-height:1.2}
.cal-ev{display:flex;align-items:center;gap:5px;font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.cal-ev::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--c)}
.cal-ev{display:block}
.cal-ev::before{display:inline-block;margin-right:5px;vertical-align:1px}
.cal-mas{font-size:11px;font-weight:600;color:var(--oro-texto)}
.cal-puntos{display:none}
.cal-lado{flex:1 1 280px;max-width:360px;padding:16px;position:sticky;top:16px}
.cal-lado-h{margin:0 0 8px;font-size:15px;font-weight:600}
.cal-vacio{color:var(--muted);margin:6px 0 12px}
.cal-lista{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.cal-lista li{border:1px solid var(--line);border-radius:10px;padding:10px 12px;position:relative;padding-left:24px}
.cal-lista li::before{content:"";position:absolute;left:10px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--c)}
.cal-li-h b{display:block;font-weight:600;font-size:13.5px}
.cal-li-h small,.cal-li-n{display:block;font-size:12px;color:var(--muted)}
.cal-li-p{font-size:12.5px;margin-top:2px}
.cal-li-acc{display:flex;gap:14px;margin-top:6px}
.cal-li-acc .link{font-size:12.5px;font-weight:600;color:var(--oro-texto);min-height:28px}
.cal-li-acc .cal-borrar{color:var(--neg)}
.cal-form{display:flex;flex-direction:column;gap:8px;margin:4px 0 12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#FAFBFC}
.cal-form .field{display:flex;flex-direction:column;gap:4px}
.cal-form-fila{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:8px}
.cal-form-bot{display:flex;gap:8px}
@media (max-width:760px){
  .cal-mes{min-width:0;font-size:16px}
  .cal-dia{min-height:58px;padding:4px;align-items:center}
  .cal-ev,.cal-mas,.cal-fest{display:none}
  .cal-puntos{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}
  .cal-puntos i{width:6px;height:6px;border-radius:50%;background:var(--c)}
  .cal-dsem{padding:6px 2px;text-align:center}
  .cal-lado{max-width:none;position:static}
}
.cal-li-acc{flex-wrap:wrap}
.cal-li-acc .link{white-space:nowrap;text-align:left;padding:0}

/* ---------- barra de abajo en el celular: azul como el menú, botones repartidos parejo ---------- */
@media (max-width:900px){
  .tabbar{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:7px;background:#1C40B0;border:0;border-radius:22px;box-shadow:0 14px 34px rgba(28,64,176,.35)}
  .tabbar button{color:#C9D3E4;font-size:11px;font-weight:500;gap:4px;padding:8px 2px;min-height:54px;justify-content:center;white-space:nowrap;border-radius:16px}
  .tabbar button svg{width:21px;height:21px}
  .tabbar button[aria-current="true"]{background:rgba(255,255,255,.14);color:#FFFFFF;font-weight:600}
  .content{padding-bottom:120px}
}
@media (max-width:900px){
  nav.tabbar button[aria-current="true"]{background:rgba(255,255,255,.14);color:#FFFFFF}
  /* el administrador tiene 6 botones: letra un poco más pequeña para que no se peguen */
  .tabbar button{font-size:11.5px}
}

/* ---------- expediente del proceso ---------- */
.exp{padding:14px 16px;transition:box-shadow .15s,border-color .15s}
.exp.sobre{border-color:var(--oro-texto);box-shadow:0 0 0 3px var(--anillo,rgba(31,58,104,.2))}
.exp-barra{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.exp-ayuda{margin-left:auto}
.exp-grupo{margin-top:10px}
.exp-cat{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px}
.exp-cat span{font-weight:500}
.exp-doc{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.exp-grupo .exp-doc:first-of-type{border-top:0}
.exp-ic{flex:none;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:10.5px;font-weight:700;letter-spacing:.02em;background:var(--accent-soft);color:var(--oro-texto)}
.exp-ic.exp-pdf{background:#FDE8E5;color:#A21D13}.exp-ic.exp-doc{background:#E6EEFB;color:#1F4E9E}.exp-ic.exp-xls{background:#E2F3E9;color:#17693C}
.exp-nom{flex:1;min-width:0;border:0;background:none;padding:0;text-align:left;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-nom:hover{color:var(--oro-texto);text-decoration:underline}
.exp-nom small{display:block;font-weight:400;font-size:12px;color:var(--muted);text-decoration:none}
.exp-acc{flex:none;display:flex;align-items:center;gap:4px}
.exp-sel{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:8px;padding:4px 6px;background:#fff;color:var(--ink)}
.exp-borrar:hover{color:var(--neg)}
.exp-vacio{color:var(--muted);margin:8px 0}
.exp-prog{display:flex;align-items:center;gap:10px;font-size:12.5px;margin:4px 0}
.exp-prog span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-prog i{flex:none;width:120px;height:6px;border-radius:3px;background:var(--soft);overflow:hidden}
.exp-prog b{display:block;height:100%;background:var(--marca)}
.exp-reserva{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
.exp-reserva b{display:block}.exp-reserva small{color:var(--muted)}
.exp-res-form{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin:6px 0 10px}
.exp-visor{position:fixed;inset:0;z-index:300;background:#0E1A30;display:flex;flex-direction:column}
.exp-v-barra{display:flex;align-items:center;gap:12px;padding:12px 18px;color:#fff;background:#1C40B0}
.exp-v-barra b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.exp-v-acc{display:flex;gap:8px;align-items:center}
.exp-v-acc .icon-btn{color:#fff;background:transparent;border-color:rgba(255,255,255,.3)}
.exp-v-cuerpo{position:relative;flex:1;overflow:auto;user-select:none}
.exp-v-hoja{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 12px 40px}
.exp-v-hoja .exp-vacio{color:#D3DBEA}
.exp-pag{display:block;max-width:min(100%,900px);height:auto;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.35)}
/* marca de agua: quién lo está viendo y cuándo, sobre todo el documento */
.exp-marca{position:fixed;inset:60px 0 0;pointer-events:none;overflow:hidden;display:flex;flex-wrap:wrap;gap:90px 120px;padding:40px;transform:rotate(-24deg) scale(1.4);opacity:.1}
.exp-marca span{font-size:15px;font-weight:600;color:#000;white-space:nowrap}
@media (max-width:640px){.exp-ayuda{display:none}.exp-sel{max-width:110px}}
@media print{.exp-visor{display:none!important}}

/* ---------- bloqueo por inactividad ---------- */
body.bloqueada .app,body.bloqueada .tabbar,body.bloqueada .esquina,body.bloqueada .sheet,body.bloqueada .scrim{filter:blur(14px);pointer-events:none;user-select:none}
.bloqueo{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:20px;background:rgba(14,26,48,.55)}
.bloqueo-caja{width:100%;max-width:400px;background:#fff;border-radius:20px;padding:28px 26px;box-shadow:0 30px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:12px}
.bloqueo-caja h2{margin:0;font-size:22px}
.bloqueo-caja p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.bloqueo-logo{width:56px;height:56px;border-radius:14px}
.bloqueo-quien{font-weight:600}.bloqueo-quien small{display:block;font-weight:400;color:var(--muted)}
.bloqueo-caja .field{display:flex;flex-direction:column;gap:4px}
.bloqueo-caja .link{align-self:center}
/* Visor: Word, Excel, texto y correos dentro de la plataforma */
.exp-texto{width:min(100%,860px);padding:48px 56px;color:#1b2333;font-size:14.5px;line-height:1.6;text-align:left;overflow-wrap:anywhere}
.exp-texto h1,.exp-texto h2,.exp-texto h3{color:#0E1A30;margin:1.1em 0 .4em;line-height:1.25}
.exp-texto p{margin:0 0 .8em}
.exp-texto table{border-collapse:collapse;margin:.6em 0;max-width:100%}
.exp-texto td,.exp-texto th{border:1px solid #c9d1de;padding:4px 8px;vertical-align:top}
.exp-texto img{max-width:100%;height:auto}
.exp-texto pre{white-space:pre-wrap;font:13px/1.55 ui-monospace,Consolas,monospace;margin:0}
.exp-correo dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid #dfe4ec}
.exp-correo dt{font-weight:600;color:#56627a}
.exp-correo dd{margin:0}
.exp-correo pre{font-family:inherit;font-size:14px}
.exp-adj{margin-top:18px;color:#56627a;font-size:13px}
.exp-tabla{width:min(100%,1100px);overflow:auto;max-height:calc(100vh - 160px);color:#1b2333}
.exp-tabla table{border-collapse:collapse;font-size:13px;min-width:100%}
.exp-tabla td{border:1px solid #d5dbe5;padding:4px 8px;white-space:nowrap}
.exp-tabla tr:first-child td{background:#eef2f8;font-weight:600;position:sticky;top:0}
.exp-pestanas{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.exp-pestanas .chip{background:rgba(255,255,255,.12);color:#fff;border:0}
.exp-pestanas .chip.on{background:#fff;color:#0E1A30}
@media (max-width:640px){.exp-texto{padding:24px 18px;font-size:14px}}
@media print{.exp-visor{display:none!important}}
/* Menú lateral: sin scroll horizontal. La barra vertical es delgada y solo aparece (con un fundido) al pasar el mouse por el menú.
   scrollbar-width/color quedan en auto para que el navegador use las reglas ::-webkit-scrollbar, que sí se pueden animar. */
@property --menu-barra { syntax: '<color>'; inherits: true; initial-value: rgba(95,102,118,0); }
#menu-lateral{overflow-x:hidden;overflow-y:auto;scrollbar-width:auto;scrollbar-color:auto;--menu-barra:rgba(95,102,118,0);transition:--menu-barra .35s ease}
#menu-lateral:hover,#menu-lateral:focus-within{--menu-barra:rgba(95,102,118,.32)}
#menu-lateral::-webkit-scrollbar{width:6px;height:0}
#menu-lateral::-webkit-scrollbar-track,#menu-lateral::-webkit-scrollbar-corner{background:transparent}
#menu-lateral::-webkit-scrollbar-track{margin:18px 0}
#menu-lateral::-webkit-scrollbar-thumb{background:var(--menu-barra);border-radius:6px}
#menu-lateral::-webkit-scrollbar-thumb:hover{background:rgba(95,102,118,.5)}
#menu-lateral>*{min-width:0;max-width:100%;box-sizing:border-box}
/* Notas de actuaciones: correos reenviados en ficha ordenada y textos largos con «Ver más» */
.n-correo{margin-top:6px;padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line);font-size:13px;display:flex;flex-direction:column;gap:8px}
.tl li:first-child .n-correo{background:rgba(255,255,255,.6)}
.nc-asunto{font-weight:600;color:var(--ink);line-height:1.4;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.nc-asunto i{font-style:normal;color:var(--muted)}
.nc-ref{font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 7px}
.nc-campos{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}
.nc-campos dt{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;padding-top:1px}
.nc-campos dd{margin:0;display:flex;flex-direction:column;gap:3px;min-width:0}
.nm-p{color:var(--ink);overflow-wrap:anywhere}
.nm-p small{display:block;font-size:11.5px;color:var(--muted)}
.nc-adj{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;border-top:1px dashed var(--line)}
.nc-file{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:500;color:var(--ink);background:var(--accent-soft);border-radius:7px;padding:3px 9px;overflow-wrap:anywhere}
.nc-adj small{font-size:11.5px;color:var(--muted)}
.n-larga{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.n-larga.abierta{display:block}
.n-mas{font-size:12.5px;padding:2px 0;margin-top:2px}
button.nc-file{border:0;cursor:pointer;font:inherit;font-size:12.5px;font-weight:500;text-align:left}
button.nc-file:hover{background:var(--accent);color:#fff}
.nc-falta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12.5px;color:var(--muted);background:var(--soft,#F4F6FA);border-radius:8px;padding:8px 10px}
.rama-ver{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:0;color:var(--accent);font-weight:600}
.rama-docs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
button.nc-file.no-disponible{background:var(--soft,#F4F6FA);color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(85,96,122,.5)}
button.nc-file.no-disponible:hover{background:var(--line);color:var(--muted)}
.nc-falta b{color:var(--ink);font-weight:600}
/* Visor en ventana modal: centrado, con la plataforma oscurecida detrás */
.exp-visor{background:rgba(10,18,34,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);align-items:center;justify-content:center;padding:28px;opacity:0;transition:opacity .18s ease}
.exp-visor.abierto{opacity:1}
.exp-v-caja{position:relative;display:flex;flex-direction:column;width:min(980px,100%);height:min(88vh,1100px);border-radius:18px;overflow:hidden;background:#0E1A30;box-shadow:0 40px 100px rgba(0,0,0,.45);transform:translateY(14px) scale(.98);transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.exp-visor.abierto .exp-v-caja{transform:none}
.exp-v-barra{border-bottom:1px solid rgba(255,255,255,.08)}
.exp-v-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(255,255,255,.1);flex:none}
.exp-v-caja .exp-v-cuerpo{flex:1;min-height:0}
.exp-v-caja .exp-v-cuerpo{position:static}
.exp-v-caja .exp-marca{position:absolute;inset:57px 0 0}
@media (max-width:640px){.exp-visor{padding:0}.exp-v-caja{width:100%;height:100%;border-radius:0}}
/* Importar Excel › Documentos de los expedientes: mismo aire que el cuadro del Excel */
#exp-import{margin-top:8px}
.exp-imp{padding:22px 24px;display:flex;flex-direction:column;gap:16px}
.exp-imp-cab{display:flex;align-items:center;gap:16px}
.exp-imp-ic{width:52px;height:52px;flex:none;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.exp-imp-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.exp-imp-tx h2{margin:0;font-size:17px;font-weight:600}
.exp-imp-tx .hint{margin:0;max-width:640px;line-height:1.5}
.exp-imp-cab .btn{flex:none;white-space:nowrap}
.exp-plan{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.exp-plan>p{margin:0}
@media (max-width:640px){.exp-imp{padding:18px}.exp-imp-cab{flex-wrap:wrap;align-items:flex-start}.exp-imp-ic{width:44px;height:44px}.exp-imp-cab .btn{width:100%;justify-content:center}}

/* ---------- suscripción ---------- */
.sin-excel .fn-excel,.sin-fuentes .fn-fuentes,.sin-fuentes #nav-fuentes{display:none!important}
.sus-vencida .side .nav-i:not([data-go="suscripcion"]):not([data-go="admin"]):not(#btn-salir),.sus-vencida .tabbar button:not([data-go="admin"]):not(#tab-mas),.sus-vencida .mas-menu [data-go]:not([data-go="suscripcion"]):not([data-go="admin"]),.sus-vencida .crumbs .btn{opacity:.4;pointer-events:none}
.side .foot .dot.warn{background:#F59E0B}
.sus-aviso{display:flex;align-items:center;gap:10px;margin:0 0 16px;padding:10px 14px;border-radius:12px;background:#FEF3C7;color:#7A4100;font-size:14px;font-weight:500}
.sus-aviso[hidden]{display:none}
.sus-aviso .btn{margin-left:auto}
.sus-estado{display:flex;flex-wrap:wrap;gap:20px 32px;justify-content:space-between;align-items:center;padding:18px 20px;margin:18px 0}
.sus-estado .k{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:600}
.sus-actual{font-size:24px;font-weight:800;margin:4px 0;display:flex;align-items:center;gap:10px}
.sus-estado small{color:var(--muted);font-size:13.5px}
.sus-uso{display:flex;gap:16px 28px;flex-wrap:wrap;flex:1 1 320px}
.sus-uso>div{flex:1 1 170px}
.sus-uso b{display:block;font-size:18px}
.sus-uso small{display:block;margin-bottom:6px}
.sus-planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:14px}
.sus-plan{position:relative;display:flex;flex-direction:column;gap:6px;padding:22px 20px}
.sus-plan.dest{border:2px solid var(--accent);box-shadow:0 14px 34px rgba(36,87,230,.14)}
.sus-plan.actual{background:radial-gradient(400px 160px at 100% 0%,var(--accent-soft),transparent 70%),var(--card)}
.sus-cinta{position:absolute;top:-11px;left:20px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.sus-nom{font-size:18px}
.sus-precio{font-size:30px;font-weight:800;letter-spacing:-.02em}
.sus-precio small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.sus-res{margin:6px 0 4px;color:var(--muted);font-size:14px}
.sus-lista{list-style:none;margin:4px 0 14px;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13.5px;flex:1}
.sus-lista li{display:flex;align-items:flex-start;gap:8px}
.sus-lista li svg{flex:none;margin-top:1px;color:var(--accent)}
.sus-lista li.no{color:#9AA1AE}
.sus-lista li.no svg{color:#C3C8D1}
.sus-nota{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;margin-top:16px;font-size:13.5px;color:var(--muted)}
.sus-nota svg{flex:none;color:var(--accent);margin-top:1px}
.sus-firma{padding:16px 18px;margin-top:16px}
.sus-firma form{align-items:flex-end}
.sus-bloqueo{display:flex;gap:14px;align-items:flex-start;padding:16px 18px}
.sus-bloqueo .ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.sus-bloqueo b{font-size:15px}
.sus-bloqueo p{margin:4px 0 10px;color:var(--muted);font-size:14px}
.sus-capa{position:fixed;inset:0;z-index:180;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:16px}
.sus-capa .card{max-width:440px;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.sus-capa .ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.sus-capa h2{margin:6px 0 0;font-size:20px}
.sus-capa p{margin:0 0 10px;color:var(--muted)}

/* error de un campo, justo debajo de él */
.campo-error{margin:6px 0 0;color:var(--neg);font-size:13px;font-weight:600}
.campo-error[hidden]{display:none}
.input[aria-invalid]{border-color:var(--neg);box-shadow:0 0 0 3px rgba(194,59,43,.12)}
.auto-res{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border-radius:10px;background:#E7F6EE;color:#146C3C;font-size:13.5px;font-weight:500}
.auto-res.malo{background:#FDEEEB;color:#A21D13}
.auto-res svg{flex:none}

/* el menú no se corre cuando aparece su barra de desplazamiento (p. ej. al abrir «Más fuentes») */
#menu-lateral{scrollbar-gutter:stable}

/* ---------- detalles de la revisión ---------- */
/* el encabezado no se corre cuando la página tiene barra de desplazamiento */
html{scrollbar-gutter:stable}
/* Inicio: los botones se reparten parejo (2 y 2) en vez de dejar uno solo abajo */
.hero .acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:1400px){.hero .acts{grid-template-columns:repeat(4,minmax(0,1fr))}}
.hero .acts .btn{justify-content:center;white-space:nowrap}
/* textos largos con «…»: correo del menú y quién subió el documento */
#nube-email,.exp-nom small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* actuaciones: el punto de la más reciente queda sobre la misma línea que los demás */
.tl li{padding-left:34px}
.tl li::before{left:17px}
.tl li::after{left:12px}
/* Más fuentes: la etiqueta (Gratis, N de M gratis) siempre debajo del nombre */
.fcard b{flex-direction:column;align-items:flex-start;gap:4px}
/* calendario: días sin despacho rayados, en la cuadrícula y en la leyenda */
.cal-dia.inh{background:repeating-linear-gradient(135deg,#F6F7F9 0 6px,#E9ECF1 6px 7px)}
.cal-ley .cal-inh::before{width:14px;height:10px;border-radius:2px;background:repeating-linear-gradient(135deg,#F6F7F9 0 3px,#C9CED8 3px 4px);box-shadow:inset 0 0 0 1px #D9DDE3}
/* Importar Excel: sin hueco cuando todavía no hay archivo */
#xl-out:empty{display:none}
#exp-import{margin-top:0}
/* consulta por nombre: el error de un campo no corre los demás */
#f-nombre .rowf:first-child{align-items:flex-start}

/* ---------- celular ---------- */
.mas-menu{display:none}
@media (max-width:900px){
  /* «Más»: hoja sobre la barra de abajo */
  .mas-menu{display:flex;flex-direction:column;gap:2px;position:fixed;left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:0 18px 44px rgba(18,23,34,.22)}
  .mas-menu[hidden]{display:none}
  .mas-menu button{display:flex;align-items:center;gap:12px;border:0;background:none;font:inherit;font-size:15px;font-weight:500;color:var(--ink);text-align:left;padding:12px 14px;min-height:48px;border-radius:12px;cursor:pointer}
  .mas-menu button:hover,.mas-menu button[aria-current="true"]{background:var(--soft)}
  .mas-menu button svg{color:var(--accent);flex:none}
  .mas-cuenta{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
  .mas-cuenta small{display:block;padding:4px 14px;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mas-cuenta button{width:100%;color:var(--neg)}
  .mas-cuenta button svg{color:var(--neg)}
  /* notificaciones: dentro de la pantalla, con margen */
  .notif-panel{position:fixed;left:12px;right:12px;top:64px;width:auto;max-height:calc(100vh - 170px);overflow:auto}
  /* Inicio: sin la balanza de fondo (tapaba los botones) */
  .hero .deco{display:none}
}
@media (max-width:640px){
  /* panel del proceso: el radicado con todo el ancho, «Dejar de seguir» debajo y la X arriba a la derecha */
  .sheet-h{flex-wrap:wrap}
  .sheet-h h2{flex:1 1 calc(100% - 48px);order:1}
  #sheet-x{order:2}
  #sheet-save{order:3}
  /* expediente: el nombre del archivo con su línea completa y los botones debajo */
  .exp-doc{flex-wrap:wrap}
  .exp-nom{flex:1 1 calc(100% - 52px)}
  .exp-acc{width:100%;justify-content:flex-end}
  .exp-sel{max-width:none}
}

/* Más fuentes: consulta que se hace en el portal oficial */
.fx-portal{display:flex;gap:14px;align-items:flex-start;padding:18px}
.fx-portal .ic{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.fx-portal b{font-size:15px}
.fx-portal p{margin:4px 0 12px;color:var(--muted);font-size:14px}
