/* Vigilum by Tentia · capa v2 del área del cliente */
.app{grid-template-columns:var(--nav,220px) 1fr;transition:grid-template-columns .18s}
.app.min{--nav:62px}
nav{display:flex;flex-direction:column;overflow-x:hidden;z-index:30}
nav .marca{flex-wrap:wrap;gap:8px;line-height:1.1}
nav .marca small{display:block;font-size:.62rem;font-weight:500;opacity:.8;letter-spacing:.04em}
nav .tog{margin-left:auto;background:rgba(255,255,255,.14);border:0;color:#fff;border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:1rem;line-height:1}
nav .tog:hover{background:rgba(255,255,255,.28)}
nav a{gap:10px;justify-content:flex-start;position:relative}
nav a .ic{flex:0 0 22px;text-align:center;font-size:1.05rem;filter:saturate(.8)}
nav a .tx{flex:1;white-space:nowrap}
nav a .n{margin-left:auto}
.app.min nav .marca .nm,.app.min nav .sub,.app.min nav a .tx,.app.min nav .pie .det{display:none}
.app.min nav .marca{justify-content:center;padding:4px 0 12px}
.app.min nav .tog{margin:0}
.app.min nav a{justify-content:center;padding:10px 0}
.app.min nav a .n{position:absolute;top:2px;right:6px;margin:0;font-size:.62rem;padding:0 5px}
.app.min nav .pie{text-align:center;padding:12px 0}
nav a[data-tip]:hover::after{content:none}
.app.min nav a[data-tip]:hover::after{content:attr(data-tip);position:fixed;left:68px;background:#111c;color:#fff;backdrop-filter:blur(4px);padding:5px 10px;border-radius:6px;font-size:.8rem;white-space:nowrap;z-index:60;pointer-events:none;transform:translateY(-4px)}
nav .espacio{flex:1}
.cont{min-width:0;display:flex;flex-direction:column}
.sup{position:sticky;top:0;z-index:20;display:flex;gap:10px;align-items:center;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);padding:10px 28px;border-bottom:1px solid var(--li)}
.sup .bus{position:relative;flex:1;max-width:520px}
.sup .bus input{padding-left:32px}
.sup .bus .lupa{position:absolute;left:10px;top:7px;opacity:.55;pointer-events:none}
.sup .bus kbd{position:absolute;right:8px;top:7px;border:1px solid var(--li);border-radius:4px;padding:0 5px;font-size:.72rem;color:var(--mu)}
.res{position:absolute;top:42px;left:0;right:0;background:var(--pan);border:1px solid var(--li);border-radius:var(--r);box-shadow:0 12px 32px #0003;max-height:70vh;overflow:auto;z-index:40}
.res h4{margin:0;padding:8px 12px 2px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mu)}
.res a{display:block;padding:7px 12px;color:var(--tx);text-decoration:none;font-size:.88rem;cursor:pointer}
.res a:hover{background:color-mix(in srgb,var(--pr) 10%,transparent)}
.res .vacio{padding:14px;color:var(--mu);font-size:.88rem}
.sup .sp{flex:1}
.ib{position:relative;background:transparent;border:1px solid var(--li);border-radius:10px;width:40px;height:38px;cursor:pointer;font-size:1.1rem}
.ib:hover{background:color-mix(in srgb,var(--pr) 8%,transparent)}
.ib .n{position:absolute;top:-6px;right:-6px;background:var(--ac);color:#fff;border-radius:20px;padding:0 6px;font-size:.68rem;font-weight:700}
.bell{position:absolute;right:20px;top:54px;width:min(400px,94vw);background:var(--pan);border:1px solid var(--li);border-radius:var(--r);box-shadow:0 12px 32px #0004;z-index:50;max-height:76vh;overflow:auto}
.bell h4{margin:0;padding:10px 14px 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mu)}
.bell .it{display:flex;gap:8px;padding:8px 14px;font-size:.86rem;border-top:1px solid var(--li);cursor:pointer;align-items:flex-start}
.bell .it:hover{background:color-mix(in srgb,var(--pr) 8%,transparent)}
.bell .pie2{padding:10px 14px;border-top:1px solid var(--li);display:flex;gap:10px;justify-content:space-between}
.cont main{padding:22px 28px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--li);background:var(--pan);border-radius:20px;padding:4px 12px;font-size:.82rem;cursor:pointer;color:var(--tx)}
.chip:hover{border-color:var(--pr)}
.chip.on{background:var(--pr);color:#fff;border-color:var(--pr)}
.filtros{background:var(--pan);border:1px solid var(--li);border-radius:var(--r);padding:12px 14px;margin:0 0 14px;display:flex;flex-direction:column;gap:10px}
.filtros .fila{align-items:end}
.filtros .fila>*{min-width:120px}
.filtros .cuenta{font-size:.82rem;color:var(--mu)}
.sw{display:inline-flex;border:1px solid var(--li);border-radius:9px;overflow:hidden}
.sw button{border:0;background:var(--pan);padding:6px 14px;cursor:pointer;font-size:.85rem}
.sw button.on{background:var(--pr);color:#fff}
.tarj{border:1px solid var(--li);border-radius:var(--r);background:var(--pan);overflow:hidden}
.tarj>header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:color-mix(in srgb,var(--li) 40%,transparent);cursor:pointer}
.tarj>header h3{margin:0;flex:1}
.tarj>header .ct{color:var(--mu);font-size:.8rem}
.tarj .cu{padding:4px 14px 12px}
.tarj .pr{display:grid;grid-template-columns:minmax(150px,1.1fr) 2fr 84px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--li);font-size:.88rem}
.tarj .pr:first-child{border-top:0}
.tarj .pr .v{color:var(--mu)}
.paso{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:.9rem}
.paso .ck{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;color:#fff}
.paso .ck.si{background:var(--ok)}.paso .ck.no{background:var(--am)}.paso .ck.op{background:var(--li);color:var(--mu)}
.tl{border-left:2px solid var(--li);margin-left:6px;padding-left:14px}
.tl .ev2{position:relative;padding:6px 0 10px}
.tl .ev2::before{content:"";position:absolute;left:-21px;top:11px;width:10px;height:10px;border-radius:50%;background:var(--pr)}
.tl .ev2 .cuando{font-size:.76rem;color:var(--mu)}
.cat{display:flex;flex-direction:column;gap:2px;border:1px solid var(--li);border-radius:var(--r);background:var(--pan);padding:12px;cursor:pointer;text-align:left}
.cat:hover{border-color:var(--pr)}
.cat.on{border-color:var(--pr);box-shadow:0 0 0 2px color-mix(in srgb,var(--pr) 25%,transparent)}
.cat b{font-size:1.4rem}.cat span{font-size:.8rem;color:var(--mu)}
.barras{display:flex;align-items:flex-end;gap:5px;height:90px;margin-top:6px}
.barras div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:.62rem;color:var(--mu)}
.barras i{display:block;width:100%;background:var(--pr2);border-radius:4px 4px 0 0;min-height:2px}
/* calendario */
.cal2 .cab2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cal2 .cab2 h3{margin:0;text-transform:capitalize;flex:1;min-width:140px}
.sem{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.sem .d{border:1px solid var(--li);border-radius:8px;min-height:190px;padding:6px;background:var(--pan)}
.sem .d.hoy{border-color:var(--ac)}
.sem .d>b{display:block;font-size:.8rem;margin-bottom:4px;text-transform:capitalize}
.anio{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.mmini{border:1px solid var(--li);border-radius:var(--r);padding:8px;background:var(--pan);cursor:pointer}
.mmini:hover{border-color:var(--pr)}
.mmini h4{margin:0 0 4px;font-size:.85rem}
.mmini .g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.62rem;text-align:center}
.mmini .g span{padding:2px 0;border-radius:4px;position:relative}
.mmini .g span.rojo{background:var(--rf);color:var(--ro);font-weight:700}
.mmini .g span.naranja,.mmini .g span.amarillo{background:var(--af);color:var(--am);font-weight:700}
.mmini .g span.verde{background:var(--vf);color:var(--ok);font-weight:700}
.mmini .g span.azul,.mmini .g span.gris{background:color-mix(in srgb,var(--pr) 12%,transparent);font-weight:700}
.mmini .g span.hoy{outline:2px solid var(--ac)}
#tip{position:fixed;z-index:80;max-width:300px;background:#101820;color:#fff;border-radius:8px;padding:8px 11px;font-size:.8rem;box-shadow:0 8px 22px #0006;pointer-events:none;display:none;line-height:1.35}
#tip b{display:block;margin-bottom:2px}
/* documentos */
.drop{border:2px dashed var(--li);border-radius:var(--r);padding:22px;text-align:center;color:var(--mu);background:color-mix(in srgb,var(--li) 25%,transparent);transition:.15s}
.drop.sobre{border-color:var(--pr);background:color-mix(in srgb,var(--pr) 10%,transparent);color:var(--tx)}
.drop .btn{margin:4px}
.arch{display:flex;gap:10px;align-items:center;border:1px solid var(--li);border-radius:8px;padding:6px 8px;margin-top:8px;background:var(--pan);flex-wrap:wrap}
.arch img{width:46px;height:46px;object-fit:cover;border-radius:6px}
.arch .nm{flex:1;min-width:140px;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arch select,.arch input{width:auto;max-width:190px;padding:4px 6px;font-size:.82rem}
.dropglobal{position:fixed;inset:0;background:color-mix(in srgb,var(--pr) 20%,transparent);display:none;place-items:center;font-size:1.3rem;font-weight:700;color:var(--pr);z-index:70;pointer-events:none;border:4px dashed var(--pr)}
.dropglobal.v{display:grid}
.mu2{color:var(--mu);font-size:.82rem}
.alerta-det dl{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;margin:10px 0}
.alerta-det dt{color:var(--mu);font-size:.82rem}.alerta-det dd{margin:0}
.cab-imp{display:none}
.calw{display:grid;grid-template-columns:minmax(0,3fr) minmax(240px,1fr);gap:14px}
.ev.hecho{opacity:.5;text-decoration:line-through}
@media(max-width:1100px){.anio{grid-template-columns:repeat(3,1fr)}}
@media(max-width:860px){
  .app,.app.min{grid-template-columns:56px 1fr}
  nav{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;flex-wrap:nowrap;overflow-y:auto;overflow-x:hidden;padding:12px 6px}
  nav .marca{display:flex}nav .pie{display:block}
  nav a{padding:10px 0;justify-content:center}
  .app:not(.abierto) nav .marca .nm,.app:not(.abierto) nav .sub,.app:not(.abierto) nav a .tx,.app:not(.abierto) nav .pie .det{display:none}
  .app:not(.abierto) nav .marca{justify-content:center;padding:4px 0 12px}.app:not(.abierto) nav .tog{margin:0}
  .app.abierto nav{position:fixed;left:0;top:0;width:230px;box-shadow:6px 0 24px #0006;padding:14px 10px}
  .app.abierto nav a{justify-content:flex-start;padding:10px 12px}
  .app:not(.abierto) nav a .n{position:absolute;top:2px;right:6px;margin:0;font-size:.62rem;padding:0 5px}
  .app.abierto::after{content:"";position:fixed;inset:0;background:#0005;z-index:25}
  .app.abierto nav{z-index:30}
  .sup{padding:8px 12px;gap:6px}.sup .bus kbd{display:none}
  .cont main{padding:14px 12px}
  .calw{grid-template-columns:1fr}
  .sem{grid-template-columns:1fr}.sem .d{min-height:0}
  .anio{grid-template-columns:repeat(2,1fr)}
  .tarj .pr{grid-template-columns:1fr}
  .alerta-det dl{grid-template-columns:1fr}
  .app nav a[data-tip]:hover::after{content:none}
}
/* impresión / PDF */
@media print{
  nav,.sup,.noimp,.filtros,#toast,dialog,.bell,.dropglobal{display:none!important}
  .app,.app.min{display:block}
  body{background:#fff;color:#000}
  .cont main{padding:0;max-width:none}
  .cab-imp{display:block;border-bottom:2px solid #0f4c5c;margin-bottom:10px;padding-bottom:6px}
  .cab-imp b{font-size:1.1rem}
  table{display:table!important;font-size:.7rem;border:0}th{background:#eee!important;color:#000}td,th{padding:3px 5px}
  tr{break-inside:avoid}
  .tw{overflow:visible}
  a{color:#000;text-decoration:none}
}
@page{size:letter landscape;margin:12mm}

.barra{flex-wrap:wrap;gap:10px}
.barra>.fila{flex:0 1 auto!important;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.barra>.fila>*{min-width:0;flex:0 0 auto}
.noimp{}
td .fila{flex-wrap:wrap;gap:6px;align-items:center}
td .fila>*{min-width:0;flex:0 0 auto}
.fila>i.pt{min-width:0;flex:0 0 12px}
.cal2 .cab2 h3{text-transform:none}
.barras div{max-width:64px}
@media print{.barra{display:none!important}}
