:root{
  --sidebar-bg:#343a40;
  --sidebar-bg2:#2c3136;
  --sidebar-link:#c2c7d0;
  --sidebar-active:#3f474e;
  --accent:#2fa4e7;        /* cerulean primary: acentos, íconos, foco, bordes */
  --accent-deep:#1a74b0;   /* cerulean profundo: texto blanco sobre color (≥4.5:1) */
  --ok:#00796b;            /* teal de acción principal (#009688 oscurecido: 5.3:1 con blanco) */
  --ok-vivo:#009688;       /* teal de marca: barras, bordes, íconos (sin texto encima) */
  --bs-success:#00796b; --bs-success-rgb:0,121,107;
  --bs-success-text-emphasis:#004d40; --bs-success-bg-subtle:#e0f2f1; --bs-success-border-subtle:#b2dfdb;
  --bs-form-valid-color:#00796b; --bs-form-valid-border-color:#009688;
  --content-bg:#f4f6f9;
}
/* Rellenos con texto blanco: tono profundo de la misma familia para cumplir contraste sin salir de Cerulean */
.btn-primary{--bs-btn-bg:var(--accent-deep);--bs-btn-border-color:var(--accent-deep);--bs-btn-hover-bg:#155f91;--bs-btn-hover-border-color:#155f91;--bs-btn-active-bg:#124f79;--bs-btn-active-border-color:#124f79}
.btn-success{--bs-btn-bg:var(--ok);--bs-btn-border-color:var(--ok);--bs-btn-hover-bg:#00695c;--bs-btn-hover-border-color:#00695c;--bs-btn-active-bg:#005b4f;--bs-btn-active-border-color:#005b4f;--bs-btn-disabled-bg:#4db6ac;--bs-btn-disabled-border-color:#4db6ac;--bs-btn-focus-shadow-rgb:0,150,136}
.text-success{color:#00796b!important}.bg-success{background-color:#00796b!important}.border-success{border-color:#009688!important}
.alert-success{--bs-alert-color:#00594f;--bs-alert-bg:#e0f2f1;--bs-alert-border-color:#b2dfdb;--bs-alert-link-color:#004d40}
.badge.bg-success,.badge.text-bg-success{background-color:#00796b!important;color:#fff!important}
.table-success{--bs-table-bg:#e0f2f1;--bs-table-border-color:#b2dfdb}
.form-check-input:checked.is-valid,.was-validated .form-check-input:valid:checked{background-color:#00796b;border-color:#00796b}
.btn-outline-success{--bs-btn-active-bg:#00695c;--bs-btn-active-border-color:#00695c;--bs-btn-disabled-color:#4db6ac;--bs-btn-disabled-border-color:#4db6ac;--bs-btn-color:var(--ok);--bs-btn-border-color:var(--ok);--bs-btn-hover-bg:var(--ok);--bs-btn-hover-border-color:var(--ok)}
.btn-outline-primary{--bs-btn-color:var(--accent-deep);--bs-btn-border-color:var(--accent-deep);--bs-btn-hover-bg:var(--accent-deep);--bs-btn-hover-border-color:var(--accent-deep)}
::placeholder{color:#6b7682!important;opacity:1}
.small,small{font-size:12px}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;background:var(--content-bg);font-size:13px;color:#2c3237;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ===== Polish: superficies del navegador (selección, scroll, foco, cifras) ===== */
::selection{background:rgba(47,164,231,.22);color:inherit}
html{scrollbar-color:#c3ccd6 transparent;scrollbar-width:thin}
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-thumb{background:#c6d0da;border-radius:7px;border:3px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#aab6c2;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
.sidebar-nav a:focus-visible{outline-offset:-2px}
input,select,textarea{accent-color:var(--accent)}
/* cifras tabulares: códigos, fechas, COD, montos */
.grid-table .fw-bold,.grid-table .nowrap,.cod-badge,.lh-right .cod,.datos .v,.fw-bold{font-variant-numeric:tabular-nums}
/* transiciones coherentes */
.btn,.sidebar-nav a,.etapa-tabs .nav-link,.sub-tabs .nav-link,.card,.grid-panel,.panel-box{transition:background .14s ease,color .14s ease,border-color .14s ease,box-shadow .14s ease}

/* ---------- layout ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:250px;min-width:250px;background:var(--sidebar-bg)!important;color:#fff;display:flex;flex-direction:column}
.sidebar.offcanvas-lg{--bs-offcanvas-width:250px;color:#fff}
.sidebar-brand{padding:16px 18px;font-size:19px;font-weight:700;letter-spacing:.5px;background:var(--sidebar-bg2);display:flex;align-items:center;justify-content:space-between;gap:10px}
.sidebar-brand>span{display:flex;align-items:center;gap:10px}
.sidebar-brand i{color:#FFC107}

/* folder icon ambar en todo el sistema */
.icon-folder,.fa-folder,.fa-folder-open{color:#FFC107!important}

/* ---------- search-select (Tom Select) ---------- */
.ts-wrapper{font-size:13px}
.ts-control{min-height:38px;border-color:#ced4da}
.ts-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(47,164,231,.2)}
.ts-dropdown{border-color:#cfd8e0;box-shadow:0 4px 10px rgba(16,42,67,.10);font-size:13px}
/* ZEBRA en las opciones */
.ts-dropdown .ts-dropdown-content .option:nth-child(even){background:#f3f8fc}
.ts-dropdown .option{padding:7px 12px;border-bottom:1px solid #f0f3f6}
.ts-dropdown .option:hover,.ts-dropdown .option.active{background:var(--accent)!important;color:#fff}
.ts-dropdown .no-results{padding:8px 12px;color:#8a9199}
.ts-dropdown .ts-dropdown-content{max-height:260px}
.sidebar-back{display:block;margin:12px 14px;padding:8px 12px;background:#4a5258;color:#fff;border-radius:4px;text-decoration:none;font-size:13px}
.sidebar-back:hover{background:#565f66;color:#fff}
.sidebar-nav{display:flex;flex-direction:column}
.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:12px 18px;color:var(--sidebar-link);text-decoration:none;border-left:3px solid transparent;font-size:13px}
.sidebar-nav a i{width:18px;text-align:center}
.sidebar-nav a:hover{background:var(--sidebar-active);color:#fff}
.sidebar-nav a.active{background:var(--sidebar-active);color:#fff;border-left-color:var(--accent)}
.sidebar-nav a.has-sub .caret{margin-left:auto}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
/* barra lateral colapsable en escritorio (transform + opacity: sin reflow) */
@media (min-width:992px){
  .layout{position:relative;overflow-x:clip}   /* clip (no hidden): hidden crea contenedor de scroll y anula el sticky */
  /* barra lateral fija al hacer scroll: alto de pantalla, scroll propio si el menú es largo */
  .sidebar{position:sticky;top:0;height:100vh;align-self:flex-start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4a5258 transparent;transition:transform .22s cubic-bezier(.2,.7,.2,1),opacity .18s ease}
  .topbar{position:sticky;top:0;z-index:1020}   /* header fijo al hacer scroll (en móvil ya lo es, ver mobile.css) */
  .sb-collapsed .sidebar{position:absolute;left:0;top:0;bottom:0;transform:translateX(-100%);opacity:0;pointer-events:none}
}
.topbar{height:50px;background:#fff;border-bottom:1px solid #dde3ea;display:flex;align-items:center;justify-content:space-between;padding:0 16px}
.crumbs{display:flex;align-items:center;gap:8px;color:#6c757d;font-size:13px}
.crumbs a{color:var(--accent);text-decoration:none}
.crumbs .sep{color:#adb5bd}
.content{padding:16px;flex:1;min-width:0}

/* ---------- tabs etapa ---------- */
.etapa-tabs{border-bottom:1px solid #dde3ea;margin-bottom:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.etapa-tabs .nav-link{white-space:nowrap}
.etapa-tabs::-webkit-scrollbar{height:5px}
.etapa-tabs::-webkit-scrollbar-thumb{background:#cfd6de;border-radius:3px}
/* pestañas que no caben: un degradado avisa que hay más hacia el lado */
.etapa-tabs.mas-d{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),transparent)}
.etapa-tabs.mas-i{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px);mask-image:linear-gradient(90deg,transparent,#000 44px)}
.etapa-tabs.mas-i.mas-d{-webkit-mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent);mask-image:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
.archivo-item{display:flex;align-items:center;gap:6px;padding:2px 0}
.archivo-item a{word-break:break-word}
/* nombre del pdf con la tipografia que tenia doc-tipo */
.archivo-name{font-weight:600;color:#1f6fa5;letter-spacing:.015em}
.archivo-name:hover{color:#15537e}

/* sub-tabs PRECONTRATO (Documentos / Proyecto / Ofertas): pestañas de segundo nivel con subrayado */
.sub-tabs{padding:0 14px;gap:4px;border-bottom:1px solid #e9eef3;background:#fafbfc;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.sub-tabs::-webkit-scrollbar{display:none}
.sub-tabs .nav-item{flex:0 0 auto}
.sub-tabs .nav-link{font-size:12.5px;font-weight:600;padding:10px 12px 9px;color:#6b7682;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;display:flex;align-items:center;gap:7px;white-space:nowrap;transition:color .12s,border-color .12s}
.sub-tabs .nav-link i{font-size:12px;color:#aeb7c0;transition:color .12s}
.sub-tabs .nav-link:hover{color:var(--accent-deep);background:transparent}
.sub-tabs .nav-link:hover i{color:var(--accent)}
.sub-tabs .nav-link.active{color:var(--accent-deep);background:transparent;border-bottom-color:var(--accent-deep)}
.sub-tabs .nav-link.active i{color:var(--accent-deep)}

/* recorrido como pestaña + tabla (legacy): Fecha · Envía · Recibe · Asunto */
.stage-recorrido{flex:0 0 auto;min-width:150px;border-left:1px solid #e3ebf2;margin-left:4px}
.stage-recorrido .stage-num{border-style:dashed;color:#6b7682;font-size:11px}
.stage-recorrido.sel .stage-num{border-style:solid;border-color:var(--accent-deep);color:var(--accent-deep);background:#fff}
.stage-recorrido .stage-name{color:#6b7682;font-weight:600}
.stage-recorrido.sel .stage-name{color:var(--accent-deep)}
.docs-table .th-envia{width:200px}.docs-table .th-recibe{width:26%}
.rec-recibe{font-weight:600;color:#17384f;font-size:12.5px}
.rec-area{font-size:11px;color:#8a9199}
.rec-asunto{font-size:12.5px;line-height:1.4;white-space:pre-line}
tr.rec-vigente>*{background:#f3f9fd!important}
tr.rec-vigente .rec-recibe{color:var(--accent-deep)}
.docs-table .th-tiempo{width:120px}
.rec-dur{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-variant-numeric:tabular-nums;color:#2c3237;background:#f1f4f7;border-radius:999px;padding:2px 9px}
.rec-dur i{color:#8a9199;font-size:11px}
.rec-dur.en-curso{background:#eaf6fd;color:var(--accent-deep)}
.rec-dur.en-curso i{color:var(--accent)}
.rec-dur small{font-size:10px;text-transform:uppercase;letter-spacing:.04em;opacity:.8}

/* densidad compacta (más cerca del legacy) */
.content{padding:12px 14px}
.tramite-top{padding:9px 14px 9px 16px}
.tramite-cod b{font-size:17px}
.tramite-obj{font-size:14px}
.tramite-more>summary{padding:7px 16px}
.stage>a{padding:8px 12px 7px 14px}
.stage+.stage>a{padding-left:20px}
.stage-num{width:22px;height:22px;font-size:11px}
.panel-title{padding:8px 13px}
.docs-toolbar{padding:7px 10px}
.grid-table td{padding:8px 12px}
.grid-table thead th{padding:9px 12px}
.docs-table td[data-label="Archivo"],.docs-table td[data-label="Archivos"]{padding-top:8px;padding-bottom:8px}
.pdf-list{gap:4px}
.acciones-cell .btn-xs{width:30px;height:30px}
.proc-actions{margin-bottom:8px!important}
.tramite-card{margin-bottom:10px}

/* proveedor del proceso (Contractual) */
.prov-card{border:1px solid #e3e8ee;border-radius:10px;margin-bottom:12px;background:#fff;overflow:hidden}
.prov-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;background:linear-gradient(90deg,#f3f9fd,#fff);border-bottom:1px solid #eef1f5}
.prov-nombre{font-size:14px;font-weight:700;color:#17384f}
.prov-nombre i{color:var(--accent);margin-right:4px}
.prov-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:#51606e;margin-top:3px}
.prov-meta b{color:#2a3b49;margin-right:3px}
.prov-meta i{color:#9aa4af;margin-right:3px}
.prov-docs .th-tipo{width:34%}
.prov-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-top:1px solid #eef1f5;background:#fbfcfd}
.prov-upload .form-select{max-width:320px;flex:1 1 220px}
.prov-upload .form-control{max-width:300px;flex:1 1 200px}
.prov-modo{display:inline-flex;border:1px solid #d7dfe7;border-radius:8px;overflow:hidden;margin-bottom:14px}
.prov-modo button{border:0;background:#fff;padding:7px 14px;font-size:12.5px;font-weight:600;color:#51606e;cursor:pointer}
.prov-modo button.active{background:var(--accent-deep);color:#fff}
.prov-modo button+button{border-left:1px solid #d7dfe7}

/* tarjetas de proyecto */
.proyecto-card{border:1px solid #e3e8ee;border-radius:8px;padding:12px 14px;margin-bottom:10px;background:#fff}
.proyecto-h{font-size:13.5px;margin-bottom:4px}

/* ===== cinta de etapas del proceso (reemplaza a las pestañas en el detalle) ===== */
.stages{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;background:#fff;border:1px solid #dde3ea;border-bottom:none;border-radius:8px 8px 0 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.stages::-webkit-scrollbar{display:none}
.stage{flex:1 1 0;min-width:176px;position:relative;display:flex}
.stage>a{flex:1;display:flex;align-items:center;gap:10px;padding:11px 14px 10px 16px;text-decoration:none;color:#51606e;border-bottom:3px solid transparent;transition:background .14s,color .14s,border-color .14s;min-width:0}
.stage+.stage>a{padding-left:24px}
/* conector en chevron entre etapas */
.stage+.stage::before{content:"";position:absolute;left:0;top:50%;width:11px;height:11px;border-top:1.5px solid #d3dbe3;border-right:1.5px solid #d3dbe3;transform:translate(-5px,-50%) rotate(45deg);pointer-events:none}
.stage-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;border:2px solid #cfd8e0;background:#fff;color:#8a9199;transition:all .14s}
.stage-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.stage-name{font-size:12px;font-weight:700;letter-spacing:.02em;white-space:normal;line-height:1.15;overflow-wrap:anywhere}
.stage-sub{font-size:11px;color:#8a9199;white-space:nowrap;margin-top:2px}
.stage-sub b{color:var(--accent-deep);font-weight:700}
/* estados del proceso */
.stage.done .stage-num{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;font-size:10px}
.stage.done .stage-name{color:#2a3b49}
.stage.current .stage-num{background:#fff;border-color:var(--accent-deep);color:var(--accent-deep);box-shadow:0 0 0 4px rgba(26,116,176,.14)}
.stage.current .stage-name{color:var(--accent-deep)}
.stage.next .stage-name{color:#8a9199;font-weight:600}
/* etapa que se está viendo */
.stage>a:hover{background:#f6f9fc;color:#2a3b49}
.stage.sel>a{background:#f3f9fd;border-bottom-color:var(--accent-deep)}
.stage.sel .stage-name{color:var(--accent-deep)}
.stage.sel.next .stage-num{border-color:var(--accent-deep);color:var(--accent-deep)}
.stage>a:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
@media (max-width:767.98px){
  .stage{min-width:150px}
  .stage>a{padding:10px 12px 9px 14px;gap:8px}
  .stage+.stage>a{padding-left:20px}
  .stage-name{font-size:12px}
}

/* ===== documentos: cabecera con resumen, filtro con atajo, identidad por tipo ===== */
.docs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.docs-stats{font-weight:500;color:#6b7682;font-size:12px}
.docs-stats b{color:#1f2937;font-variant-numeric:tabular-nums}
.filtro-kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:#8a9199;background:#f1f4f7;border:1px solid #dfe5eb;border-radius:4px;padding:1px 5px;line-height:1.3;pointer-events:none}
.filtro-wrap .form-control{padding-right:30px}
.doc-tipo{font-weight:700;color:#1f2937;font-size:13px;line-height:1.3;margin-bottom:6px}
/* archivos como en el legacy: ícono PDF grande + nombre, uno por línea */
/* proporción legacy: ícono ≈ 3× la altura del texto, nombre regular, aire entre archivos */
.pdf-list{display:flex;flex-direction:column;gap:6px;padding:1px 0}
.pdf-item{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--accent-deep);border-radius:6px;padding:2px 6px 2px 2px;min-width:0;transition:background .12s}
.pdf-item:hover,.pdf-item:focus-visible{background:#f3f9fd;color:#155f91}
.pdf-ico{flex:0 0 auto;width:26px;height:32px;display:block;filter:drop-shadow(0 1px 1px rgba(16,42,67,.18));transition:transform .14s cubic-bezier(.2,.7,.2,1)}
.pdf-item:hover .pdf-ico{transform:translateY(-1px)}
.pdf-name{font-size:14px;font-weight:400;line-height:1.35;word-break:break-word;letter-spacing:.005em}
.docs-table td[data-label="Archivo"],.docs-table td[data-label="Archivos"]{padding-top:12px;padding-bottom:12px}
@media (max-width:575.98px){.pdf-ico{width:28px;height:34px}.pdf-name{font-size:14px}}
.archivo-name{font-weight:500;color:var(--accent-deep);font-size:12.5px}
.td-id{color:#9aa4af;font-variant-numeric:tabular-nums}
.docs-table .th-acc{width:152px}.docs-table .th-fecha{width:112px}.docs-table .th-resp{width:150px}.docs-table .th-id{width:48px;text-align:center}
.docs-table td[data-label="Fecha de registro"],.docs-table td[data-label="Registrada"]{font-variant-numeric:tabular-nums;font-weight:600;color:#2a3b49}
.docs-table th{position:sticky;top:0;z-index:1}
.chk.chk-warn{color:#b45309}
tr.row-nueva>*{animation:fila-nueva 2.6s ease-out}
@keyframes fila-nueva{0%{background:#fff3c4}60%{background:#fff3c4}100%{background:transparent}}

/* pendientes por cargar (modal checklist de la categoría) */
.pend-body{padding-top:16px}
.pend-search{margin:0 0 14px;max-width:none}
.pend-search>i{left:12px}
.pend-search .form-control{padding-left:34px}
/* lista ordenada de pendientes: una fila por tipo, alfabética, acción a la derecha */
.pend-list{list-style:none;margin:0;padding:0;border:1px solid #e3e8ee;border-radius:10px;overflow:hidden}
.pend-row{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 10px;border-bottom:1px solid #eef1f5;background:#fff;transition:background .12s}
.pend-row:nth-child(even){background:#fbfcfd}
.pend-row:last-child{border-bottom:none}
.pend-row:hover{background:#f3f9fd}
.pend-n{flex:0 0 28px;text-align:right;font-size:11px;color:#9aa4af;font-variant-numeric:tabular-nums}
.pend-name{flex:1;min-width:0;font-size:13px;color:#1f2937;line-height:1.3}
.pend-lock{flex:0 0 auto;color:#9aa4af;font-size:11px}
.pend-row .pend-chip{flex:0 0 auto;width:auto;height:28px;padding:0 10px;border-radius:7px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:5px;border-style:solid;background:#fff}
.pend-row .pend-chip:hover{background:var(--ok);color:#fff}
.pend-done{color:var(--ok);font-weight:600}
@media (max-width:575.98px){.pend-n{display:none}.pend-row{padding:9px 10px}}
.pend-chip{display:inline-flex;align-items:center;gap:6px;border:1px dashed #c3ccd6;background:#fff;color:#2a3b49;border-radius:999px;padding:5px 11px;font-size:12px;cursor:pointer;transition:all .12s;text-align:left}
.pend-chip:hover,.pend-chip:focus-visible{border-style:solid;border-color:var(--accent);color:var(--accent-deep);background:#f3f9fd}
.pend-chip i.fa-plus{color:var(--ok);font-size:11px}
.pend-chip.static{cursor:default;color:#6b7682;border-color:#e1e7ee}
.pend-lock{color:#9aa4af;font-size:11px;margin-left:2px}
.pend-done{padding:10px 14px;color:var(--ok);font-weight:600;font-size:12.5px;border-top:1px solid #eef1f5}
.pend-done i{margin-right:4px}

/* modales de documento */
.doc-head-sub{font-size:12px;color:#51606e;margin-top:2px}
.doc-head-sub b{color:#1f2937}
.rem-actual{background:#f7f9fb;border:1px solid #e3e8ee;border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:12.5px}
.rem-actual .k{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#6b7682;margin-bottom:3px}
.fb-estado{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}
.fb-estado i{margin-top:2px}
.fb-estado.ok{background:#e9f6f4;color:#00695c}
.fb-estado.no{background:#fdecec;color:#8a1c1c}
.fb-estado.warn{background:#fff6e5;color:#7a4a05}
.hist-acc.warn{background:#b45309}

/* aviso flotante tras guardar */
.toast-ok{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#1f2937;color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;box-shadow:0 6px 16px rgba(0,0,0,.18);z-index:1080}
.toast-ok i{color:#64d8cb;margin-right:6px}

/* ===== móvil: la tabla de documentos se vuelve tarjetas ===== */
@media (max-width:575.98px){
  .docs-table thead{display:none}
  .docs-table,.docs-table tbody{display:block}
  .docs-table tbody tr{display:flex;flex-direction:column;border:1px solid #e3e8ee;border-radius:10px;margin:10px;padding:10px 12px;background:#fff!important}
  .docs-table tbody tr.fila-vacia{display:block}
  .docs-table tbody td{display:block;border:none!important;padding:3px 0!important;background:transparent!important}
  .docs-table td[data-label]:not(.acciones-cell)::before{content:attr(data-label);display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#8a9199}
  /* orden legacy también en tarjeta: acciones, fecha, archivo */
  .docs-table td.acciones-cell{order:-3;display:flex;gap:6px;padding-bottom:6px!important;border-bottom:1px solid #eef1f5!important;margin-bottom:4px}
  .docs-table td[data-label="Fecha de registro"],.docs-table td[data-label="Registrada"]{order:-2}
  .docs-table td[data-label="Archivo"],.docs-table td[data-label="Archivos"]{order:-1}
  .docs-table td.td-id{display:none}
  .docs-table .d-none.d-md-table-cell,.docs-table .d-none.d-xl-table-cell{display:block!important}
  .acciones-cell .btn-xs{width:44px;height:40px;margin-right:0}
  .archivo-name{word-break:break-word}
  .tramite-cod b{font-size:18px}
  .tramite-obj{font-size:15px}
  .docs-stats{width:100%}
  .filtro-kbd{display:none}
}
@media (min-width:576px){
  .docs-table td.acciones-cell{white-space:nowrap}
}
.hist-list{margin:0;padding-left:18px}
.hist-list li{margin-bottom:10px}
.hist-acc{display:inline-block;padding:1px 8px;border-radius:999px;color:#fff;font-size:10px;font-weight:700}
.hist-acc.crea{background:#009688}.hist-acc.act{background:#f0ad4e}.hist-acc.cp{background:#00695c}
.hist-files{margin-top:3px;font-size:12px;color:#51606e}

/* ===== Modales custom (aplica a todos los modales del sistema) ===== */
.fw-600{font-weight:600}
.modal-backdrop{background:#0d1a26}
.modal-backdrop.show{opacity:.58}
.modal-dialog{margin-top:0;margin-bottom:0}
.modal-content{border:none;border-radius:16px;background:#fff;overflow:hidden;
  box-shadow:0 1px 2px rgba(16,42,67,.06),0 12px 28px -6px rgba(16,42,67,.22),0 32px 64px -16px rgba(16,42,67,.35)}
/* entrada: una sola moción, desde un estado ya visible, ease-out exponencial */
.modal.fade:not(.show) .modal-dialog{opacity:0;transform:translateY(14px) scale(.985)}
.modal.fade .modal-dialog{transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .22s ease-out}
.modal.fade.show .modal-dialog{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}
.modal-header{padding:18px 22px 14px;border-bottom:1px solid #e9eef3;background:#fff;align-items:flex-start;gap:12px}
.modal-title{font-size:16.5px;font-weight:700;color:#17384f;display:flex;align-items:center;gap:11px;line-height:1.25;letter-spacing:-.005em}
.doc-head{background:linear-gradient(180deg,#fff 0%,#f7fafc 100%)}
.doc-head-ico{width:38px;height:38px;border-radius:11px;flex:0 0 auto;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-deep) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 4px 10px -3px rgba(26,116,176,.55)}
.doc-head-sub{font-size:12px;color:#51606e;margin-top:3px;padding-left:49px}
.modal-header .btn-close{width:34px;height:34px;padding:0;margin:-4px -6px 0 auto;border-radius:50%;background-color:#f1f4f7;background-size:11px;opacity:1;transition:background-color .14s,transform .14s;flex:0 0 auto}
.modal-header .btn-close:hover{background-color:#e3e8ee;transform:rotate(90deg)}
.modal-header .btn-close:focus{box-shadow:0 0 0 3px rgba(47,164,231,.25)}
.modal-body{padding:22px}
.doc-body{padding:22px 24px}
.modal-body .form-label{font-size:12.5px;color:#2a3b49;margin-bottom:6px}
.modal-body .form-control,.modal-body .form-select,.modal-body .ts-control{border-radius:10px;border-color:#d7dfe7;padding:9px 12px;min-height:40px}
.modal-body .form-control:focus,.modal-body .form-select:focus,.modal-body .ts-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.modal-body .form-text{color:#6b7682;font-size:12px}
.modal-footer{padding:14px 22px;background:#f8fafc;border-top:1px solid #e9eef3;gap:8px}
.doc-foot{background:#f8fafc}
.modal-footer .btn{border-radius:10px;padding:8px 16px;font-weight:600;font-size:13px}
.modal-footer .btn-light{background:transparent;border-color:transparent;color:#51606e}
.modal-footer .btn-light:hover{background:#eceff3;color:#1f2937;border-color:transparent}
.modal-footer .btn-success,.modal-footer .btn-primary{box-shadow:0 4px 10px -3px rgba(0,121,107,.5)}
.modal-footer .btn-primary{box-shadow:0 4px 10px -3px rgba(26,116,176,.5)}
.modal-footer .btn-outline-success,.modal-footer .btn-outline-secondary{background:#fff}
/* Cerrar: botón visible a la derecha (antes transparente y a la izquierda) */
.modal-footer .btn-cerrar{background:#475569;border:1px solid #475569;color:#fff;box-shadow:0 4px 10px -4px rgba(30,41,59,.55);display:inline-flex;align-items:center;gap:7px}
.modal-footer .btn-cerrar:hover{background:#334155;border-color:#334155;color:#fff}
.modal-footer .btn-cerrar:focus-visible{outline:2px solid var(--accent);outline-offset:2px;color:#fff}
.modal-footer .btn-cerrar:active{background:#1e293b!important;border-color:#1e293b!important;color:#fff!important}
.modal-lg .modal-body{padding:24px 26px}
@media (max-width:575.98px){
  .modal-dialog{margin:10px}
  .modal-content{border-radius:14px}
  .modal-header,.modal-body,.doc-body,.modal-footer{padding-left:16px;padding-right:16px}
  .doc-head-sub{padding-left:0;margin-top:6px}
  .modal-footer{flex-wrap:wrap}
  .modal-footer .btn{flex:1 1 auto}
}

.dropzone.pro{border:2px dashed #c3ccd6;border-radius:12px;min-height:170px;padding:18px;background:#fbfdff;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;justify-content:center}
.dropzone.pro:hover{border-color:#9fc9e8;background:#f5fbff}
.dropzone.pro.drag{border-color:var(--accent);background:#e9f6ff}
.dropzone.pro.has-files{cursor:default;justify-content:flex-start}
.dz-inner{text-align:center;color:#8a9199}
.dz-icon{font-size:40px;color:#b7c6d3;margin-bottom:8px;display:block}
.dz-title{font-size:14px;font-weight:600;color:#51606e}
.dz-or{font-size:11px;color:#aeb7c0;margin:8px 0}
.dz-note{font-size:11px;color:#9aa4af;margin-top:10px}
.dz-list{display:flex;flex-direction:column;gap:6px}
.dz-file{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e3e8ee;border-radius:8px;padding:8px 12px;font-size:12.5px;color:#2c3237;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.dz-file i{color:var(--accent);font-size:15px}
.dz-file span{flex:1;word-break:break-word}
.dz-file small{color:#9aa4af;white-space:nowrap}

/* celda de acciones del documento: por defecto solo "validar firma"; en modo edición aparecen candado y reemplazar */
.acciones-cell{white-space:nowrap}
.acc-edit{display:none}
.modo-edicion .acc-edit{display:inline}
.docs-table:not(.modo-edicion) .th-acc{width:72px}
.btn-modo.active{background:#eef4f9;border-color:#9fc9e8;color:var(--accent-deep)}
.acciones-cell form{margin:0}
.acciones-cell .btn-xs{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;margin-right:5px;border-radius:8px;font-size:13.5px;vertical-align:middle;border-width:1.5px}
.acciones-cell .btn-xs:disabled{opacity:.4}
/* todos grises; hover azul como affordance; bloqueado = gris oscuro relleno */
.acciones-cell .btn-outline-secondary{color:#6b7682;border-color:#d3dbe3;background:#fff}
.acciones-cell .btn-outline-secondary:hover:not(:disabled){color:var(--accent);border-color:#9fc9e8;background:#f3f9fd}
.acciones-cell .btn-secondary{background:#5a6672;border-color:#5a6672;color:#fff}
.acciones-cell .btn-secondary:hover{background:#48535e;border-color:#48535e}
/* sello de firma: el color y el glifo son el estado */
.btn-firma{position:relative}
.btn-firma .sello{width:19px;height:19px;display:block;color:#7b8794;transition:color .14s,transform .14s}
.btn-firma:hover .sello{transform:scale(1.06)}
.btn-firma[data-estado="valida"] .sello{color:#009688}
.btn-firma[data-estado="invalida"] .sello{color:#dc3545}
.btn-firma[data-estado="sinfirma"] .sello{color:#d97706}
.btn-firma[data-estado="none"]:hover .sello{color:var(--accent-deep)}

/* resultado validacion firma */
.fb-pill{display:inline-block;padding:2px 9px;border-radius:999px;color:#fff;font-size:11px;font-weight:700}
.fb-pill.ok{background:#009688}.fb-pill.no{background:#ef4444}.fb-pill.gray{background:#9aa4af}
.fb-doc{border:1px solid #e3e8ee;border-radius:8px;padding:10px;margin-bottom:10px}
.fb-doc-h{font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fb-table{font-size:12.5px}
.fb-table th{background:#f6f8fa;font-size:11px;text-transform:uppercase;color:#5a6672}
.sec-h{font-weight:700;color:#14314a;margin:14px 0 6px;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em}
.etapa-tabs .nav-link{font-size:12.5px;padding:8px 16px;color:#5a6672;border-radius:6px 6px 0 0;border:1px solid transparent;transition:all .12s}
.etapa-tabs .nav-link:hover{color:var(--accent);background:#f4f9fd;border-color:transparent}
.etapa-tabs .nav-link .badge{font-size:10px;vertical-align:middle;background:#aeb7c0!important}
.etapa-tabs .nav-link.active{color:#fff;font-weight:600;background:var(--accent-deep);border-color:var(--accent-deep)}
.etapa-tabs .nav-link.active .badge{background:#fff!important;color:var(--accent-deep)}
.etapa-tabs .tab-dot{font-size:6px;vertical-align:middle;margin-left:5px;color:#FFC107}

/* ---------- panel / grid ---------- */
.panel-box,.grid-panel{background:#fff;border:1px solid #e3e8ee;border-radius:0 8px 8px 8px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 3px 8px rgba(16,42,67,.04)}
.grid-panel{border-top:none;padding-bottom:0}
.panel-box{margin-bottom:16px;border-radius:8px}
.panel-title{background:linear-gradient(180deg,#f8fafc,#f2f6f9);border-bottom:1px solid #e7edf2;padding:10px 15px;font-weight:700;font-size:12.5px;color:#2a3b49;letter-spacing:.01em}
.panel-body{padding:14px}
.grid-toolbar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #eef1f5;flex-wrap:wrap}
.grid-search{margin-left:auto;max-width:240px;width:100%}
.grid-foot{padding:7px 12px;color:#6c757d;font-size:12px;border-top:1px solid #eef1f5}

.grid-table{font-size:13px;border-collapse:separate;border-spacing:0}
.grid-table thead th{background:#f7f9fb;color:#5a6672;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #dfe5eb;white-space:nowrap;padding:11px 12px}
/* separadores sutiles: horizontal hairline + vertical muy tenue */
.grid-table td,.grid-table thead th{border-right:1px solid #f0f3f6}
.grid-table td:last-child,.grid-table thead th:last-child{border-right:none}
.grid-table td{vertical-align:middle;padding:11px 12px;border-bottom:1px solid #e9eef3;border-top:none}
.grid-table tbody tr:last-child td{border-bottom:none}
/* zebra apenas perceptible, las lineas llevan la estructura */
.grid-table.table-striped>tbody>tr:nth-of-type(odd)>*{background:#fbfcfd;--bs-table-accent-bg:transparent}
.grid-table tbody tr{transition:background .12s}
.grid-table tbody tr:hover>*{background:#eef7fd!important}
tr.row-click{cursor:pointer}
.grid-table .fw-bold{color:#1f6fa5;letter-spacing:.02em}
.nowrap{white-space:nowrap}
.icon-folder{font-size:17px}
.qr{display:inline-block;color:#444;margin-right:4px}
.qr i{font-size:18px;vertical-align:middle}

/* botones chicos estilo phprunner */
.btn-xs{padding:2px 8px;font-size:11px;border-radius:3px}
.btn-default{background:#f3f5f7;border:1px solid #d7dde3;color:#3a4149}
.btn-default:hover{background:#e9edf1}

/* badges estado */
.badge.estado{font-size:10.5px;padding:5px 10px;color:#fff;font-weight:600;border-radius:999px;letter-spacing:.02em}
.estado-preparatoria{background:#6c757d}
.estado-precontrato,.estado-precontractual{background:#17a2b8}
.estado-contractual{background:#f0ad4e}
.estado-ejecucion{background:#2fa4e7}
.estado-recorrido{background:#9b59b6}
.estado-finalizado,.estado-finalizacion{background:#009688}

/* toolbar superior de documentos (Añadir nuevo verde arriba, como legacy) */
.docs-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #eef1f5;flex-wrap:wrap}
/* search-filter de etapa */
.filtro-wrap{position:relative;margin-left:auto;max-width:280px;width:100%}
.filtro-wrap>i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9aa4af;font-size:12px;pointer-events:none}
.filtro-wrap .form-control{padding-left:30px}
.filtro-etapa.sin-resultados{border-color:#f0ad4e;background:#fffaf0}

/* config */
.cfg-preview{display:flex;align-items:center;gap:16px;border:1px solid #e3e8ee;border-radius:10px;padding:16px 18px;margin-bottom:18px;background:linear-gradient(135deg,#f6fbfe,#fff);box-shadow:0 1px 3px rgba(16,42,67,.05)}
.cfg-escudo{width:54px;height:54px;border-radius:10px;background:linear-gradient(135deg,#2fa4e7,#1d6fa5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;flex:0 0 auto}
.cfg-inst{font-size:15px;font-weight:800;color:#14314a;text-transform:uppercase;line-height:1.15}
.cfg-sub2{font-size:12px;color:#4a5258}
.cfg-sis{font-size:11px;color:#8a9199;margin-top:2px}

/* login entidad */
.login-entidad{text-align:center;color:#51606e;font-size:12px;padding:10px 24px 0;font-weight:600}
.login-entidad small{color:#8a9199;font-weight:500}

/* datos del proceso */
.datos>div{padding:6px 10px}
.datos span{display:block;color:#6b7682;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.datos{font-size:13px}
.datos .v,.datos>div{line-height:1.35}

/* ===== tarjeta del trámite: banda compacta con tinte + datos plegables ===== */
.tramite-card{background:#fff;border:1px solid #dbe3ea;border-radius:10px;margin-bottom:14px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 3px 8px rgba(16,42,67,.04);overflow:hidden}
.tramite-top{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding:12px 16px 12px 18px;background:linear-gradient(90deg,#eef6fc 0%,#f7fbfe 55%,#fff 100%);border-bottom:1px solid #e3ebf2}
.tramite-main{flex:1 1 360px;min-width:0}
.tramite-cod{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
.tramite-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#6b7682;font-weight:600}
.tramite-cod b{font-size:19px;font-variant-numeric:tabular-nums;color:var(--accent-deep);letter-spacing:.02em;line-height:1;margin-right:4px}
.tramite-obj{font-size:15px;font-weight:700;color:#17384f;margin:0;line-height:1.3;text-wrap:balance}
/* chips de contexto */
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:#fff;border:1px solid #d7e3ee;color:#2a4a62;white-space:nowrap}
.chip i{font-size:10px;color:var(--accent)}
.chip-cat{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.chip-cat i{color:#fff}
.chip-muted{color:#6b7682;border-color:#e3e8ee}
.chip-muted i{color:#9aa4af}
/* etapa actual: pill + stepper compacto */
.tramite-etapa{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.etapa-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #cfe1ef;border-radius:999px;padding:4px 12px 4px 10px}
.etapa-pill b{font-size:12.5px;font-weight:700;color:var(--accent-deep);letter-spacing:.05em}
.stepper{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:flex-end;gap:0}
.stepper .step{display:flex;align-items:center}
.stepper .step+.step::before{content:"";width:14px;height:2px;background:#dbe3ea;margin:0 2px}
.stepper .step.done+.step::before,.stepper .step.done+.step.current::before{background:var(--accent-deep)}
.stepper .dot{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;background:#f1f4f7;color:#8a9199;border:2px solid #dbe3ea;transition:all .14s}
.stepper .done .dot{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;font-size:8.5px}
.stepper .current .dot{background:#fff;border-color:var(--accent-deep);color:var(--accent-deep);box-shadow:0 0 0 3px rgba(26,116,176,.16)}
.stepper-cap{font-size:11px;color:#8a9199;margin-left:10px;font-variant-numeric:tabular-nums}
.stepper-modal{justify-content:flex-start;gap:0;padding:6px 0 2px}
.stepper-modal .step+.step::before{width:26px}
/* línea plegable de datos */
.tramite-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px 22px;flex-wrap:wrap;padding:9px 18px;font-size:12.5px;color:#51606e;background:#fff;transition:background .12s}
.tramite-more>summary::-webkit-details-marker{display:none}
.tramite-more>summary:hover{background:#f8fafc}
.tramite-more>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.crumb{display:inline-flex;align-items:center;gap:6px;min-width:0}
.crumb>i:first-child{color:var(--accent);font-size:11px}
.crumb .sep{color:#b7c2cc;font-size:10px}
.crumb .strong{color:#17384f;font-weight:600}
.more-toggle{margin-left:auto;color:var(--accent-deep);font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.more-toggle i{transition:transform .18s}
.tramite-more[open] .more-toggle i{transform:rotate(180deg)}
.tramite-more .t-close,.tramite-more[open] .t-open{display:none}
.tramite-more[open] .t-close{display:inline}
.tramite-facts{margin:0;padding:12px 18px 14px;border-top:1px dashed #e3ebf2;background:#fbfcfd;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 22px}
@media (max-width:767.98px){
  .tramite-top{padding:12px 14px}
  .tramite-etapa{align-items:flex-start;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-top:8px;border-top:1px solid #e3ebf2}
  .stepper{justify-content:flex-start}
  .tramite-more>summary{padding:9px 14px;gap:6px 14px}
  .more-toggle{margin-left:0;width:100%;justify-content:flex-start}
  .tramite-facts{padding:12px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}
}
.tramite-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b7682}
.tramite-cod b{font-size:20px;font-variant-numeric:tabular-nums;color:var(--accent-deep);letter-spacing:.02em;line-height:1}
.tramite-obj{font-size:16px;font-weight:600;color:#1f2937;margin:0 0 6px;line-height:1.3;text-wrap:balance}
.tramite-meta{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;color:#51606e}
.tramite-meta i{color:#9aa4af;margin-right:4px}
/* contenido de la sección plegable */
.tramite-facts .fact{min-width:0}
.tramite-facts .fact-wide{grid-column:1/-1}
.tramite-facts dt{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#8a9199;margin-bottom:3px}
.tramite-facts dd{margin:0;font-size:12.5px;font-weight:500;color:#1f2937;line-height:1.3}
.tramite-facts .vacio,.crumb .vacio{color:#b4bcc5;font-weight:400}
.tramite-facts .fact-detalle{font-weight:400;color:#2c3237;line-height:1.5;max-width:90ch}
@media (max-width:1199.98px){.tramite-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.proc-actions .btn-outline-secondary{color:#51606e;border-color:#cfd8e0;background:#fff}
.proc-actions .btn-outline-secondary:hover{color:var(--accent-deep);border-color:#9fc9e8;background:#f3f9fd}
/* datos del proceso: colapsable, cerrado por defecto para dejar el expediente arriba */
.datos-box{padding:0}
.datos-box>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-bottom:none;border-radius:8px}
.datos-box[open]>summary{border-bottom:1px solid #e7edf2;border-radius:8px 8px 0 0}
.datos-box>summary::-webkit-details-marker{display:none}
.datos-box .caret{transition:transform .18s;color:#8a9199}
.datos-box[open] .caret{transform:rotate(180deg)}
/* datos del proceso: tres grupos con sentido + detalle a lo ancho */
.datos-wrap{padding:6px 0 0}
.datos-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.datos-grp{padding:16px 22px 18px;border-right:1px solid #eef1f5}
.datos-grp:nth-child(3){border-right:none}
.datos-grp h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6b7682;margin:0 0 12px;display:flex;align-items:center;gap:7px}
.datos-grp h3 i{color:var(--accent);font-size:12px}
.datos-grp dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 14px;align-items:baseline}
.datos-grp dt{font-size:11.5px;color:#8a9199;font-weight:500;white-space:nowrap}
.datos-grp dd{margin:0;font-size:13.5px;font-weight:500;color:#1f2937;line-height:1.35}
.datos-grp dd.vacio,.datos-grp p.vacio{color:#b4bcc5;font-weight:400}
.datos-grp.detalle{grid-column:1/-1;border-right:none;border-top:1px solid #eef1f5;background:#fafbfc;padding-top:14px;padding-bottom:16px}
.datos-grp.detalle p{margin:0;font-size:13.5px;line-height:1.55;color:#2c3237;max-width:72ch}
@media (max-width:991.98px){
  .datos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .datos-grp:nth-child(2){border-right:none}
  .datos-grp:nth-child(3){grid-column:1/-1;border-top:1px solid #eef1f5}
}
@media (max-width:575.98px){
  .datos-grid{grid-template-columns:1fr}
  .datos-grp{border-right:none;border-top:1px solid #eef1f5;padding:14px 16px}
  .datos-grp:first-child{border-top:none}
  .datos-grp dl{grid-template-columns:1fr;gap:2px 0}
  .datos-grp dt{margin-top:8px}
}

.upload-bar{display:flex;gap:8px;align-items:center;padding:10px;border-top:1px solid #eef1f5;flex-wrap:wrap}
.upload-bar input[type=text]{max-width:240px}
.upload-bar input[type=file]{max-width:320px}
.lock-btn{line-height:1}

/* ---------- login ---------- */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#2c3136,#3f4851)}
.login-card{background:#fff;width:min(400px,92vw);border-radius:10px;box-shadow:0 18px 50px rgba(0,0,0,.35);overflow:hidden}
.login-head{background:var(--sidebar-bg);color:#fff;padding:22px 24px;display:flex;align-items:center;gap:14px}
.login-head i{font-size:34px;color:var(--accent)}
.login-title{font-size:22px;font-weight:700;letter-spacing:1px}
.login-sub{font-size:12px;color:#aeb6bd}
.login-form{padding:24px}
.login-tag{text-align:center;color:#9aa1a8;font-style:italic;font-size:12px;margin-top:16px}

/* movil: sidebar es offcanvas (lo maneja Bootstrap). Ajustes de contenido */
@media (max-width:991.98px){
  .content{padding:12px 14px}
  .tramite-head{font-size:14px}
  .grid-toolbar{gap:6px}
  .grid-search{max-width:none;order:3;flex:1 1 100%}
}
@media (max-width:575.98px){
  .datos>div{padding:3px 6px}
  .btn-xs{padding:2px 6px}
}

/* =====================================================================
   Capa de color y separadores del detalle de proceso.
   Regla: una familia (Cerulean) para "sistema/acción", ámbar para "atención",
   verde para "correcto"; superficies en tres niveles (fondo · panel · cabecera)
   para que cada bloque se lea sin recurrir a más bordes.
   ===================================================================== */
:root{
  --surf-0:#eef2f6;   /* fondo de página */
  --surf-1:#f7f9fb;   /* cabeceras y barras dentro de un panel */
  --surf-2:#fff;      /* panel */
  --line-soft:#e6ebf0;
  --line:#d8e0e8;
  --line-strong:#c4cfda;
  --tint:#eaf4fb;     /* cerulean al 10%: selección y fila activa */
  --tint-2:#d6eaf8;
  --warn:#b45309; --warn-bg:#fff4dc; --warn-line:#f1c56b;
  --ok-bg:#e9f6f4; --ok-line:#b2dfdb;
  --bad:#c92a2a; --bad-bg:#fdeeee; --bad-line:#f1b3b3;
  --ink:#1f2937; --ink-2:#51606e; --ink-3:#7b8794;
}
.content{background:var(--surf-0)}

/* --- barra de acciones: lo navegable a la izquierda, lo de salida a la derecha --- */
.proc-actions .btn-outline-secondary{color:var(--ink-2);border-color:var(--line);background:var(--surf-2);box-shadow:0 1px 1px rgba(16,42,67,.04)}
.proc-actions .btn-outline-secondary:hover{color:var(--accent-deep);border-color:#9fc9e8;background:var(--tint)}
.proc-actions .btn-outline-secondary i{color:var(--accent)}
.proc-actions .btn-primary{box-shadow:0 1px 2px rgba(26,116,176,.25)}

/* --- tarjeta del trámite: banda de identidad arriba, datos en superficie 1 --- */
.tramite-card{border-color:var(--line);box-shadow:0 1px 2px rgba(16,42,67,.06),0 6px 16px -8px rgba(16,42,67,.12)}
.tramite-top{background:linear-gradient(90deg,#e4f1fa 0%,#f1f8fd 48%,#fff 100%);border-bottom:1px solid var(--tint-2)}
.tramite-cod>span:first-child{color:var(--ink-3);font-weight:700;letter-spacing:.1em;font-size:10.5px}
.tramite-cod b{color:var(--accent-deep)}
.tramite-obj{color:var(--ink);font-weight:700}
.chip{background:#fff;border-color:#cfe1ef;color:#1f4d6f}
.chip-cat{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.chip-muted{color:var(--ink-2);border-color:var(--line-soft);background:var(--surf-1)}
.tramite-more>summary{background:#fff;border-top:1px solid var(--line-soft)}
.tramite-more>summary:hover{background:var(--surf-1)}
.crumb i{color:var(--accent)}
.tramite-facts{border-top:1px solid var(--line-soft);background:var(--surf-1)}
.tramite-facts dt{color:var(--accent-deep);opacity:.85;font-size:10px;letter-spacing:.08em}
.tramite-facts dd{color:var(--ink)}

/* --- cinta de etapas: superficie 1, la seleccionada se funde con el panel --- */
.stages{background:var(--surf-1);border-color:var(--line);box-shadow:inset 0 -1px 0 var(--line)}
.stage>a{border-bottom:3px solid transparent;color:var(--ink-2)}
.stage+.stage::before{border-color:var(--line-strong)}
.stage>a:hover{background:#fff}
.stage.sel>a{background:#fff;border-bottom-color:var(--accent-deep);box-shadow:inset 0 2px 0 var(--accent)}
.stage.sel+.stage::before,.stage.sel::before{opacity:0}
.stage-num{border-color:var(--line-strong);color:var(--ink-3);background:#fff}
.stage.done .stage-num{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.stage.current .stage-num{border-color:var(--accent-deep);color:var(--accent-deep);box-shadow:0 0 0 3px rgba(47,164,231,.22)}
.stage.current .stage-sub b{color:var(--accent-deep)}
.stage.next .stage-name,.stage.next .stage-sub{color:var(--ink-3)}
.stage.sel .stage-name{color:var(--accent-deep)}
.stage-recorrido{border-left:1px solid var(--line);background:linear-gradient(180deg,#fff 0,var(--surf-1) 100%)}
.stage-recorrido.sel{background:#fff}
.stage-recorrido .stage-num{border-style:dashed;border-color:var(--line-strong)}
.stage-recorrido.sel .stage-num{border-style:solid;border-color:var(--accent-deep);color:var(--accent-deep)}

/* --- panel: cabecera con regla de acento, barra de herramientas en superficie 1 --- */
.grid-panel{border-color:var(--line);box-shadow:0 1px 2px rgba(16,42,67,.05),0 6px 16px -8px rgba(16,42,67,.12)}
.panel-title{background:#fff;border-bottom:1px solid var(--line-soft);color:var(--ink);padding:9px 14px;position:relative}
.panel-title>span:first-child{display:inline-flex;align-items:center;gap:8px}
.panel-title>span:first-child::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--accent);flex:0 0 auto}
.docs-stats{display:inline-flex;gap:6px;flex-wrap:wrap}
.docs-stats .stat{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 9px 2px 7px;border-radius:999px;border:1px solid var(--line-soft);background:var(--surf-1);color:var(--ink-2);line-height:1.5}
.docs-stats .stat b{font-size:12px;font-variant-numeric:tabular-nums}
.docs-stats .stat-doc{background:var(--tint);border-color:#bcdcf1;color:#174c70}.docs-stats .stat-doc b{color:var(--accent-deep)}
.docs-stats .stat-pend{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.docs-stats .stat-pend b{color:var(--warn)}
.docs-stats .stat-ok{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}.docs-stats .stat-ok b{color:var(--ok)}
.docs-toolbar{background:var(--surf-1);border-bottom:1px solid var(--line)}
.docs-toolbar .btn-outline-secondary{color:var(--ink-2);border-color:var(--line);background:#fff}
.docs-toolbar .btn-outline-secondary:hover{color:var(--accent-deep);border-color:#9fc9e8;background:var(--tint)}
.docs-toolbar .btn-outline-secondary i{color:var(--accent)}
.docs-toolbar .btn-outline-secondary .badge{background:var(--warn-bg)!important;color:var(--warn)!important;border:1px solid var(--warn-line);font-weight:700}
.docs-toolbar .btn-modo.active{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}
.docs-toolbar .btn-modo.active i{color:#fff}
.docs-toolbar .form-control{border-color:var(--line);background:#fff}
.docs-toolbar .form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.sub-tabs{background:#fff;border-bottom:1px solid var(--line-soft)}

/* --- tabla: cabecera en superficie 1, columnas con separador, acciones con fondo propio --- */
.grid-table thead th{background:var(--surf-1);color:var(--ink-2);border-bottom:2px solid var(--line);border-right:1px solid var(--line-soft)}
.grid-table td{border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft)}
.grid-table.table-striped>tbody>tr:nth-of-type(odd)>*{background:#fbfcfd}
.grid-table.table-striped>tbody>tr:nth-of-type(even)>*{background:#fff}
.grid-table tbody tr:hover>*{background:var(--tint)!important}
.docs-table td.acciones-cell,.docs-table th.th-acc{background:var(--surf-1)!important;border-right:1px solid var(--line)}
.docs-table tbody tr:hover>td.acciones-cell{background:#dfeef9!important}
.docs-table td[data-label="Fecha de registro"],.docs-table td[data-label="Registrada"]{color:var(--ink-2);font-weight:600}
.docs-table td[data-label="Responsable"]{color:var(--ink-2)}
.docs-table td.td-id{color:var(--ink-3);font-variant-numeric:tabular-nums}
.docs-table td.td-id::before{content:"#";opacity:.6}
.pdf-item{color:var(--accent-deep);font-weight:500}
.pdf-item:hover,.pdf-item:focus-visible{background:var(--tint);color:#124f79;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#9fc9e8}
.pdf-list{gap:3px}
.pdf-item+.pdf-item{border-top:1px dashed var(--line-soft);border-radius:0 0 6px 6px}

/* --- acciones por fila: cada estado con su color, el resto neutro --- */
.acciones-cell .btn-xs{border-radius:7px;margin-right:4px}
.acciones-cell .btn-outline-secondary{color:var(--ink-3);border-color:var(--line);background:#fff}
.acciones-cell .btn-outline-secondary:hover:not(:disabled){color:var(--accent-deep);border-color:#9fc9e8;background:var(--tint)}
.btn-firma[data-estado="valida"]{background:var(--ok-bg);border-color:var(--ok-line)}
.btn-firma[data-estado="valida"]:hover{background:#d5efec!important;border-color:#80cbc4!important}
.btn-firma[data-estado="invalida"]{background:var(--bad-bg);border-color:var(--bad-line)}
.btn-firma[data-estado="invalida"]:hover{background:#fbe0e0!important;border-color:#e59a9a!important}
.btn-firma[data-estado="sinfirma"]{background:var(--warn-bg);border-color:var(--warn-line)}
.btn-firma[data-estado="sinfirma"]:hover{background:#ffeac0!important;border-color:#e2ad3c!important}
.btn-firma[data-estado="valida"] .sello{color:var(--ok)}
.btn-firma[data-estado="invalida"] .sello{color:var(--bad)}
.btn-firma[data-estado="sinfirma"] .sello{color:var(--warn)}
.btn-lock.is-locked,.acciones-cell .btn-secondary{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.btn-lock.is-locked:hover,.acciones-cell .btn-secondary:hover{background:#ffeac0;border-color:#e2ad3c;color:#8a4a00}
.btn-reemplazar{color:var(--accent-deep)!important;border-color:#bcdcf1!important}
.btn-reemplazar:hover{background:var(--tint)!important;border-color:var(--accent)!important}

/* --- recorrido: misma gramática --- */
tr.rec-vigente>*{background:var(--tint)!important}
.docs-table tbody tr.rec-vigente:hover>*{background:var(--tint-2)!important}
.rec-dur{background:var(--surf-1);border:1px solid var(--line-soft)}
.rec-dur.en-curso{background:var(--tint);border-color:#bcdcf1}

/* --- sidebar: grupo Administración desplegable (como el legacy) --- */
.sidebar-group{margin:0}
.sidebar-group>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 18px;color:var(--sidebar-link);border-left:3px solid transparent;font-size:13px;cursor:pointer;user-select:none}
.sidebar-group>summary::-webkit-details-marker{display:none}
.sidebar-group>summary:hover{background:var(--sidebar-active);color:#fff}
.sidebar-group>summary.active{color:#fff}
.sidebar-group>summary .caret{margin-left:auto;transition:transform .18s;font-size:12px}
.sidebar-group[open]>summary .caret{transform:rotate(-90deg)}
.sidebar-group>a.sub{padding:9px 18px 9px 30px;font-size:12.5px;background:var(--sidebar-bg2)}
.sidebar-group>a.sub i{font-size:12px;width:14px;text-align:center;color:#8f98a3}
.sidebar-group>a.sub.active i{color:var(--accent)}
.sidebar.collapsed .sidebar-group>a.sub{padding-left:18px}

/* --- control de archivos (administración) --- */
.admin-filtros{gap:8px}
.admin-filtros .admin-etapa{max-width:220px}
.admin-filtros .grid-search{margin-left:0;max-width:340px}
.admin-table .th-acc{width:196px}
.admin-table .th-proc{width:230px}
.admin-table td[data-label="Archivo"]{min-width:280px}
.admin-table .th-resp{width:130px}
.admin-table .th-flag{width:86px;text-align:center}
.adm-proc{display:block;text-decoration:none;color:var(--ink);line-height:1.3}
.adm-proc b{color:var(--accent-deep);font-variant-numeric:tabular-nums;letter-spacing:.02em;margin-right:6px}
.adm-proc .adm-obj{font-size:12px;color:var(--ink-2)}
.adm-proc:hover .adm-obj{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.adm-etapa{display:block;font-size:11px;color:var(--ink-3);margin-top:2px}
.adm-meta{display:flex;gap:10px;flex-wrap:wrap;margin:3px 0 0 34px;font-size:11px;color:var(--ink-3)}
.adm-tipo i{color:var(--accent);margin-right:2px}
.adm-motivo{margin:6px 0 0 34px;font-size:12px;color:#7a2e2e;background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:6px;padding:5px 9px;line-height:1.4}
.adm-motivo b{color:var(--bad)}
.adm-motivo q{quotes:"“" "”";font-style:italic}
.adm-motivo i{color:var(--bad);margin-right:3px}
.flag{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--surf-1);color:#b7c2cc;border:1px solid var(--line-soft);font-size:11px}
.flag.flag-on.bad{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.flag.flag-on.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
tr.row-eliminado>td:not(.acciones-cell){background:#fcf7f7!important}
tr.row-eliminado .pdf-item{color:var(--ink-3);text-decoration:line-through;text-decoration-color:#d9a3a3}
tr.row-eliminado .pdf-ico{filter:grayscale(1) opacity(.6)}
tr.row-nueva>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.acciones-cell .btn-eliminar{color:var(--bad);border:1.5px solid var(--bad-line);background:#fff}
.acciones-cell .btn-eliminar:hover{background:var(--bad-bg);border-color:#e59a9a;color:#a51f1f}
.acciones-cell .btn-restaurar{color:var(--ok);border:1.5px solid var(--ok-line);background:#fff}
.acciones-cell .btn-restaurar:hover{background:var(--ok-bg);border-color:#80cbc4}
.acciones-cell .btn-firma:disabled{opacity:1;cursor:default}
.doc-head-ico.danger{background:var(--bad)}
.doc-head-ico.warn{background:var(--warn)}
.hist-acc.warn{background:var(--warn)}
.doc-head-ico.ok{background:var(--ok)}
.mm-file{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surf-1);border:1px solid var(--line-soft);border-radius:8px;margin-bottom:10px}
.mm-name{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.mm-tipo{font-size:11.5px;color:var(--ink-3)}
.mm-nota{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin:0 0 12px}
.mm-help{font-size:11.5px;color:var(--ink-3);margin-top:5px}
.mm-help span{font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums}
.hist-acc.bad{background:var(--bad)}
.hist-motivo{font-size:12.5px;color:#5b3a3a;background:var(--bad-bg);border-left:2px solid var(--bad-line);padding:4px 8px;margin:4px 0;border-radius:0 6px 6px 0;line-height:1.45}
.hist-motivo i{color:var(--bad);margin-right:3px}

/* --- catálogo tipo de documento --- */
.grid-panel-solo{border-top:1px solid var(--line);border-radius:8px}
.tipos-table .th-acc{width:72px}.tipos-table .th-cat{width:230px}.tipos-table .th-usos{width:70px;text-align:center}.tipos-table .th-perm{width:150px;text-align:center}
.tipo-nombre{font-size:12.5px;color:var(--ink);font-weight:500}
.td-usos{color:var(--ink-3)}
.cat-pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:2px 9px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line-soft);color:var(--ink-2);white-space:nowrap}
.cat-pill.cat-1{background:#eef1f4;border-color:#d5dce3;color:#4b5563}
.cat-pill.cat-2{background:#e6f6fa;border-color:#b9e4ee;color:#0f6a7d}
.cat-pill.cat-3{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}
.cat-pill.cat-4{background:var(--tint);border-color:#bcdcf1;color:#174c70}
.cat-pill.cat-5{background:#f1ecfa;border-color:#d9c9f2;color:#5b3a9b}
.cat-pill.cat-12{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}
.perm-toggle{position:relative;width:38px;height:22px;border-radius:999px;border:1px solid var(--line);background:#e5eaf0;cursor:pointer;padding:0;transition:background .15s,border-color .15s;vertical-align:middle}
.perm-toggle .perm-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s cubic-bezier(.2,.7,.2,1)}
.perm-toggle.on{background:var(--ok);border-color:var(--ok)}
.perm-toggle.on .perm-knob{transform:translateX(16px)}
.perm-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.pager-nav{display:flex;gap:3px}
.pager-nav .pg{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink-2);text-decoration:none;font-size:12px;font-variant-numeric:tabular-nums}
.pager-nav .pg:hover{border-color:#9fc9e8;color:var(--accent-deep);background:var(--tint)}
.pager-nav .pg.cur{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;font-weight:700}
.pager-nav .pg.off{pointer-events:none;opacity:.4}

/* --- administración de procesos --- */
.adm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.adm-head .etapa-tabs{flex:1 1 auto}
.leyenda{list-style:none;margin:0 0 6px;padding:0;display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ink-2)}
.leyenda li{display:inline-flex;align-items:center;gap:5px}
.leyenda .dot{width:12px;height:12px;border-radius:50%;display:inline-block;background:#aeb7c0}
.leyenda .dot.estado-finalizado{background:#009688}
.admproc-table .th-acc{width:84px}.admproc-table .th-cod{width:92px}.admproc-table .th-estado{width:120px}
.admproc-table td.asunto{color:#b42318;font-weight:700;font-size:12.5px;line-height:1.3}
.admproc-table tr.row-fin td.asunto{color:#5b6b7b;font-weight:600}
.admproc-table tr.row-fin>td:not(.acciones-cell){background:#f2faf9!important}

/* --- ejecución: carpeta de pagos --- */
.pagos-table .th-cod{width:110px}.pagos-table .th-estado{width:190px}.pagos-table .th-valor{width:120px;text-align:right}
.pago-cod{font-family:inherit;font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent-deep);letter-spacing:.02em}
.pago-nombre{font-weight:600;color:var(--ink);font-size:12.5px}
.pago-nombre .icon-folder{color:#FFC107;margin-right:2px}
.pago-tipo{font-size:11px;color:var(--ink-3);margin-top:1px}
.pago-valor{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.pago-total td{background:var(--surf-1)!important;border-top:2px solid var(--line);color:var(--ink-2)}
.pago-estado{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line-soft);color:var(--ink-2);white-space:nowrap}
.pago-estado i{font-size:12px}
.pago-estado.est-0{color:var(--ink-3)}
.pago-estado.est-1{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.pago-estado.est-2,.pago-estado.est-4{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.pago-estado.est-3{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.pago-estado-form{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.pago-estado-sel{font-size:11.5px;padding:2px 24px 2px 8px;height:auto;max-width:170px}

/* --- campana, bandeja y barra de actualización --- */
.notif-btn{position:relative;width:34px;height:31px;display:inline-flex;align-items:center;justify-content:center}
.notif-btn i{font-size:15px;color:var(--ink-2)}
.notif-badge{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d9342b;color:#fff;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;font-variant-numeric:tabular-nums}
.notif-btn.ring i{animation:ring .9s cubic-bezier(.36,.07,.19,.97) both}
@keyframes ring{10%,30%{transform:rotate(-12deg)}20%,40%{transform:rotate(12deg)}50%{transform:rotate(0)}}
.notif-menu{width:360px;max-width:92vw;padding:0;overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 30px -10px rgba(16,42,67,.35)}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line-soft);font-weight:700;font-size:12.5px;color:var(--ink)}
.notif-items{max-height:380px;overflow:auto}
.notif-item{display:flex;gap:10px;padding:9px 12px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-soft);transition:background .12s}
.notif-item:hover{background:var(--tint)}
.notif-item.no-leida{background:#f6fbff}
.notif-item.no-leida b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle}
.notif-ico{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surf-1);color:var(--ink-2);font-size:12px;border:1px solid var(--line-soft)}
.notif-ico.tipo-ASIGNACION{background:var(--tint);color:var(--accent-deep);border-color:#bcdcf1}
.notif-ico.tipo-ETAPA{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.notif-ico.tipo-ELIMINACION,.notif-ico.tipo-DESBLOQUEO{background:var(--bad-bg);color:var(--bad);border-color:var(--bad-line)}
.notif-ico.tipo-REAPERTURA{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-line)}
.notif-ico.tipo-CONTROL_PREVIO{background:#e0f2f1;color:#00695c;border-color:#b2dfdb}
.notif-ico.tipo-INCIDENCIA{background:#fdecea;color:#b42318;border-color:#f5c2bd}
.notif-ico.tipo-PERMISO{background:#efecfb;color:#5b4bb7;border-color:#d6cff5}
.notif-txt{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.notif-txt b{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notif-txt small{font-size:11.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notif-txt em{font-style:normal;font-size:10.5px;color:var(--ink-3);margin-top:2px}
.notif-foot{display:block;text-align:center;padding:8px;font-size:12px;font-weight:600;color:var(--accent-deep);text-decoration:none;background:var(--surf-1)}
.notif-foot:hover{background:var(--tint)}
.sb-badge{margin-left:auto;background:#d9342b;color:#fff;border-radius:999px;font-size:10.5px;font-weight:700;padding:1px 7px}
.notif-list{list-style:none;margin:0;padding:0}
.notif-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.notif-row.no-leida{background:#f6fbff}
.notif-row .notif-ico{width:34px;height:34px;font-size:13px}
.notif-body{flex:1;min-width:0}
.notif-titulo{font-weight:700;color:var(--ink);text-decoration:none;font-size:13px}
.notif-titulo:hover{color:var(--accent-deep);text-decoration:underline;text-underline-offset:3px}
.notif-msg{font-size:12.5px;color:var(--ink-2);white-space:pre-line;margin:2px 0}
.notif-meta{font-size:11px;color:var(--ink-3)}
.update-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--accent-deep);color:#fff;font-size:13px;font-weight:600;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15)}
.update-bar .btn{font-weight:700;color:var(--accent-deep)}
.update-bar i{animation:spin 2.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* --- perfil --- */
.perfil-facts{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 14px;border-top:0;background:#fff}
.perfil-cargos{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}
.perfil-cargos li{display:flex;flex-direction:column;padding:6px 10px;border:1px solid var(--line-soft);border-radius:6px;background:var(--surf-1)}
.perfil-cargos li b{font-size:12px;color:var(--ink)}
.perfil-cargos li span{font-size:11px;color:var(--ink-3)}
.canal{padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surf-1)}
.canal-sub{font-size:12px;color:var(--ink-2);margin-top:2px;padding-left:40px}
.canal .form-control{margin-left:40px}

/* --- mapa del recorrido (modal) --- */
.ruta{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:14px 6px 18px;scroll-snap-type:x proximity}
.ruta-nodo{flex:0 0 232px;scroll-snap-align:start;position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.ruta-nodo.vigente{border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.ruta-nodo.inicio{border-color:var(--ok-line)}
.ruta-top{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-soft);background:var(--surf-1);border-radius:10px 10px 0 0}
.ruta-num{width:22px;height:22px;border-radius:50%;background:var(--accent-deep);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.ruta-nodo.inicio .ruta-num{background:var(--ok)}
.ruta-cargo{font-size:12px;font-weight:700;color:#17384f;line-height:1.2}
.ruta-area{font-size:10.5px;color:var(--ink-3);padding:6px 10px 0}
.ruta-asunto{font-size:12px;color:var(--ink);padding:4px 10px 8px;line-height:1.4;flex:1}
.ruta-foot{display:flex;justify-content:space-between;gap:6px;padding:6px 10px;border-top:1px dashed var(--line-soft);font-size:10.5px;color:var(--ink-3)}
.ruta-foot b{color:var(--ink-2);font-variant-numeric:tabular-nums}
.ruta-arco{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:var(--ink-3);font-size:10.5px;text-align:center;padding:0 4px}
.ruta-arco::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--line-strong)}
.ruta-arco i{position:relative;background:#fff;color:var(--accent);font-size:13px;z-index:1}
.ruta-arco .dur{position:relative;background:#fff;padding:1px 5px;border-radius:999px;border:1px solid var(--line-soft);font-weight:600;color:var(--ink-2);margin-top:4px;z-index:1;white-space:nowrap}
.ruta-resumen{display:flex;gap:16px;flex-wrap:wrap;padding:6px 10px 0;font-size:12px;color:var(--ink-2)}
.ruta-resumen b{color:var(--ink)}

/* --- control previo (modal de cierre) --- */
.cp-box{border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:8px;padding:10px 12px;margin-top:10px}
.cp-box h6{font-size:12.5px;font-weight:700;color:#7a4a05;margin:0 0 6px}
.cp-list{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:12px}
.cp-list li{display:flex;justify-content:space-between;gap:10px}
.cp-list .ok{color:var(--ok)}.cp-list .warn{color:var(--warn);font-weight:600}
.cp-list li.cp-cierre-bloq{justify-content:flex-start;gap:7px;margin-top:4px;padding:7px 9px;border-radius:6px;background:#fdecea;color:#8a1f17;line-height:1.4}.cp-cierre-bloq i{margin-top:2px}
.cp-quien{display:block;font-size:11px;color:var(--ink-3);margin-top:3px;line-height:1.3;white-space:normal;max-width:190px}.cp-quien b{color:var(--ink-2);font-weight:600}
.proceso-cerrado{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--ok-bg);border:1px solid var(--ok-line);border-radius:8px;color:#00695c;font-size:12.5px;margin-bottom:10px}
.proceso-cerrado i{color:var(--ok)}
.solo-lectura{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--surf-1);border:1px solid var(--line);border-radius:8px;color:var(--ink-2);font-size:12.5px;margin-bottom:10px}
.solo-lectura i{color:var(--accent)}

/* --- eventos de control (soportes) --- */
.eventos{list-style:none;margin:0;padding:8px 14px 12px;display:grid;gap:6px}
.eventos li{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surf-1)}
.eventos .ev-tipo{flex:0 0 auto;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--warn-bg);border:1px solid var(--warn-line);color:#7a4a05;white-space:nowrap}
.eventos .ev-tipo.CONTROL_PREVIO{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}
.eventos .ev-meta{font-size:11px;color:var(--ink-3)}
.eventos .pdf-item{padding:0 4px 0 0;font-size:12px}
.eventos .pdf-ico{width:18px;height:22px}

/* --- documentos dentro de un pago --- */
.pago-docs{margin:4px 0 0 20px;padding:6px 0 0;border-top:1px dashed var(--line-soft)}
.pago-docs .pdf-item{font-size:12px}
.pago-docs .pdf-ico{width:20px;height:25px}
.pago-doc-tipo{font-size:10.5px;color:var(--ink-3);margin-left:30px}
.btn-doc-pago{font-size:11px;padding:2px 8px;border-radius:999px}

/* --- pestañas de lista al estilo legacy: cada una con borde y separación --- */
.etapa-tabs{gap:6px;padding:4px 0 0;border-bottom:1px solid var(--line)}
.etapa-tabs .nav-item{margin-bottom:-1px}
.etapa-tabs .nav-link{border:1px solid var(--line);border-bottom-color:var(--line);background:#fff;color:var(--accent);border-radius:7px 7px 0 0;padding:9px 18px;font-size:13px;font-weight:500;box-shadow:0 1px 1px rgba(16,42,67,.04)}
.etapa-tabs .nav-link:hover{background:var(--surf-1);border-color:var(--line-strong);color:var(--accent-deep)}
.etapa-tabs .nav-link.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.etapa-tabs .nav-link.active:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.etapa-tabs .nav-link .badge{background:rgba(47,164,231,.12)!important;color:var(--accent-deep);font-weight:700}
.etapa-tabs .nav-link.active .badge{background:rgba(255,255,255,.22)!important;color:#fff}
.adm-head .etapa-tabs{border-bottom:0}

/* --- filtro: la × limpia el texto (sustituye al atajo "/" mientras hay texto) --- */
.filtro-wrap .filtro-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:0;border-radius:50%;background:#dfe5eb;color:#51606e;font-size:11px;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0}
.filtro-wrap .filtro-x:hover{background:var(--accent);color:#fff}
.filtro-wrap.con-texto .filtro-x{display:inline-flex}
.filtro-wrap.con-texto .filtro-kbd{display:none}

/* --- filter header: cuadros de filtro bajo las cabeceras (estilo legacy) --- */
.grid-table thead .filtro-header th{padding:4px 6px;background:#fff;border-bottom:1px solid var(--line);border-right:1px solid var(--line-soft);position:sticky;top:34px;z-index:1}
.grid-table .col-filtro{height:24px;min-height:0;padding:2px 7px;font-size:11px;border-radius:4px;border-color:var(--line);background:var(--surf-1);box-shadow:none}
.grid-table .col-filtro::placeholder{color:#aeb7c0;font-size:10.5px;text-transform:none}
.grid-table .col-filtro:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 2px rgba(47,164,231,.18)}
.grid-table .col-filtro.activo{background:#fff;border-color:var(--accent);font-weight:600;color:var(--accent-deep)}
@media (max-width:767.98px){.grid-table thead .filtro-header{display:none}}

/* --- tipografía: un punto menos en todo (pedido 2026-10-08) --- */
html{font-size:15px}
body{font-size:12px}
.small,small{font-size:11px}
.btn-sm{font-size:12px;padding:5px 10px}
.btn-xs{font-size:10.5px}
.grid-table{font-size:12px}
.grid-table thead th{font-size:10.5px}
.pdf-name{font-size:13px}
.stage-name{font-size:11px}
.stage-sub{font-size:10.5px}
.panel-title{font-size:11.5px}
.docs-stats .stat{font-size:11px}
.tramite-obj{font-size:13px}
.tramite-cod b{font-size:16px}
.tramite-facts dd{font-size:12px}
.tramite-more>summary{font-size:12px}
.sub-tabs .nav-link{font-size:12px}
.etapa-tabs{gap:3px}
.etapa-tabs .nav-link{font-size:12px;padding:8px 15px}
.sidebar-nav a,.sidebar-group>summary{font-size:12.5px}
.sidebar-group>a.sub{font-size:12px}
.form-control,.form-select{font-size:.9rem}
.form-label{font-size:12px;margin-bottom:3px}
.modal-title{font-size:15px}
.doc-head-sub{font-size:11.5px}
.rec-asunto,.rec-recibe,.tipo-nombre,.pago-nombre,.notif-txt b{font-size:12px}
.adm-proc .adm-obj,.notif-msg{font-size:11.5px}
.ts-wrapper .ts-control,.ts-dropdown{font-size:12px}

/* --- seguridad: usuarios, grupos, permisos --- */
.usuarios-table .th-acc{width:60px}
.flag.flag-on.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.grupos-check{display:grid;gap:4px;max-height:220px;overflow:auto;padding:8px 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surf-1)}
.grupos-table .th-grupo,.permisos-table .th-grupo{width:92px;text-align:center;font-size:10px;white-space:normal;line-height:1.2;vertical-align:bottom}
.grupos-table td .form-check-input,.permisos-table td .form-check-input{width:17px;height:17px;margin:0;cursor:pointer}
.permisos-table td code{font-size:10.5px;color:var(--ink-3);background:transparent;padding:0}

/* móvil: las tarjetas heredan los mismos separadores; etapas sin cortar palabras; orgánico en líneas */
@media (max-width:767.98px){
  .docs-table td.acciones-cell{background:var(--surf-1)!important;border-bottom:1px solid var(--line-soft)}
  .stage{min-width:168px}
  .stage-name{overflow-wrap:normal;white-space:nowrap}
  .tramite-more>summary{gap:6px 16px}
  .crumb{display:flex;flex-wrap:wrap;row-gap:2px;flex:1 1 100%}
  .crumb .strong{flex-basis:100%;padding-left:17px}
  .crumb .sep:last-of-type{display:none}
}

/* --- configuración: interruptores de filter header --- */
.cfg-switches{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:0 0 8px 8px;background:var(--surf-1)}
.cfg-switches .form-text{margin-left:40px;margin-top:0}

/* --- modal Nuevo proceso: secciones numeradas, tipo segmentado, contador --- */
.np-body{padding:16px 22px 18px}
.form-sec{padding:12px 0 14px;border-top:1px dashed var(--line-soft)}
.form-sec:first-child{border-top:0;padding-top:4px}
.form-sec-t{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--accent-deep);letter-spacing:.02em;margin:0 0 10px;text-transform:uppercase}
.form-sec-n{width:20px;height:20px;border-radius:50%;background:var(--accent-deep);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.np-cont{text-align:right;font-size:10.5px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}
.np-auto{resize:none;overflow:hidden;line-height:1.4}
.np-resp{margin-top:12px;font-size:11.5px;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.np-resp i{color:var(--accent)}
.np-resp b{color:var(--ink)}
.seg{display:flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.seg-in{position:absolute;opacity:0;pointer-events:none}
.seg-lb{flex:1;text-align:center;padding:8px 6px;font-size:11.5px;font-weight:600;color:var(--ink-2);cursor:pointer;border-left:1px solid var(--line-soft);user-select:none;transition:background .12s,color .12s;white-space:nowrap}
.seg-lb:first-of-type{border-left:0}
.seg-lb:hover{background:var(--surf-1);color:var(--accent-deep)}
.seg-in:checked+.seg-lb{background:var(--accent-deep);color:#fff}
.seg-in:focus-visible+.seg-lb{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:575.98px){.seg{flex-wrap:wrap}.seg-lb{flex:1 1 50%;border-top:1px solid var(--line-soft)}}

/* --- cinta de etapas más corta (como las pestañas del legacy): solo nombre + conteo pequeño --- */
.stage{min-width:118px}
.stage>a{padding:6px 10px 5px 10px;gap:7px;border-bottom-width:3px}
.stage+.stage>a{padding-left:16px}
.stage+.stage::before{width:9px;height:9px;transform:translate(-4px,-50%) rotate(45deg)}
.stage-num{width:18px;height:18px;font-size:10px;border-width:1.5px}
.stage.done .stage-num{font-size:9px}
.stage-txt{flex-direction:row;align-items:baseline;gap:5px}
.stage-name{font-size:10.5px;letter-spacing:.03em}
.stage-sub{font-size:9.5px;margin-top:0;color:var(--ink-3)}
.stage-sub b{font-weight:600}
.stage.current .stage-sub{display:none}
.stage-recorrido{min-width:118px}
.stage-recorrido .stage-sub{display:none}
@media (max-width:767.98px){.stage{min-width:128px}}
/* pestañas de etapa al ancho de su contenido (no estiradas), como el legacy */
.stage{flex:0 1 auto;min-width:0}
.stage>a{padding-right:14px}
.stages{flex-wrap:nowrap}
.tg-codigo{display:inline-flex;align-items:center;gap:8px;margin-left:40px}
.tg-cmd{font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:700;background:#fff;border:1px dashed var(--accent);color:var(--accent-deep);padding:4px 10px;border-radius:6px;letter-spacing:.04em}

/* --- cinta de etapas como pestañas del legacy: cada una con borde y separación, sin chevrones --- */
.stages{background:transparent;border:0;box-shadow:none;gap:3px;padding:4px 0 0;border-bottom:1px solid var(--line);border-radius:0;overflow-x:auto}
.stage{margin-bottom:-1px}
.stage+.stage::before{display:none}
.stage>a,.stage+.stage>a{padding:7px 14px 6px 12px;border:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:7px 7px 0 0;background:#fff;color:var(--accent);box-shadow:0 1px 1px rgba(16,42,67,.04)}
.stage>a:hover{background:var(--surf-1);border-color:var(--line-strong);color:var(--accent-deep)}
.stage.sel>a{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:none}
.stage.sel>a:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.stage.sel .stage-name,.stage.sel .stage-sub,.stage.sel .stage-sub b{color:#fff}
.stage.sel .stage-num{background:#fff;border-color:#fff;color:var(--accent-deep);box-shadow:none}
.stage.done .stage-name,.stage.next .stage-name,.stage.current .stage-name{color:inherit;font-weight:600}
.stage.next .stage-name{font-weight:500}
.stage.sel+.stage::before,.stage.sel::before{display:none}
.stage-recorrido{border-left:0;margin-left:6px;background:transparent}
.stage-recorrido .stage-name{color:inherit}
.grid-panel{border-top:1px solid var(--line);border-radius:0 0 8px 8px}
.stage{flex:0 0 auto}
.stage-name,.stage-sub{white-space:nowrap;overflow-wrap:normal}

/* --- diálogos propios (confirmar / avisar) --- */
.cm-dialog{max-width:440px}
.cm-body{display:flex;gap:14px;align-items:flex-start;padding:20px 22px 14px}
.cm-ico{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:17px;background:var(--tint);color:var(--accent-deep)}
.cm-ico.cm-danger{background:var(--bad-bg);color:var(--bad)}
.cm-ico.cm-warning{background:var(--warn-bg);color:var(--warn)}
.cm-ico.cm-info{background:var(--surf-1);color:var(--ink-2)}
.cm-ico.cm-success{background:#e0f2f1;color:#00695c}
.cm-txt{min-width:0;flex:1}
.cm-titulo{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:4px}
.cm-msg{font-size:12.5px;color:var(--ink-2);line-height:1.5;overflow-wrap:anywhere}
.cm-msg b{color:var(--ink)}
.cm-dialog.cm-con-campo{max-width:500px}
.cm-campo{margin-top:10px}.cm-etq{font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:4px}
.cm-campo textarea{font-size:13px;resize:vertical;min-height:72px}
.cm-err{font-size:11.5px;color:var(--bad);margin-top:4px}
.cm-foot{padding:10px 16px}
.cm-foot .btn{min-width:96px}

/* --- sub-pestañas (Documentos · Proyecto · Ofertas …) con el mismo estilo legacy: borde + separación --- */
.sub-tabs{gap:3px;padding:6px 10px 0;background:var(--surf-1);border-bottom:1px solid var(--line)}
.sub-tabs .nav-item{margin-bottom:-1px}
.sub-tabs .nav-link{border:1px solid var(--line);border-radius:7px 7px 0 0;background:#fff;color:var(--accent);padding:6px 14px 5px;font-size:11.5px;font-weight:600;margin-bottom:0;box-shadow:0 1px 1px rgba(16,42,67,.04)}
.sub-tabs .nav-link i{color:var(--accent);font-size:11px}
.sub-tabs .nav-link:hover{background:var(--surf-1);border-color:var(--line-strong);color:var(--accent-deep)}
.sub-tabs .nav-link.active{background:var(--accent);border-color:var(--accent);color:#fff}
.sub-tabs .nav-link.active i{color:#fff}
.sub-tabs .nav-link.active:hover{background:var(--accent-deep);border-color:var(--accent-deep)}

/* --- columna "F. registro" más angosta: fecha arriba, hora debajo --- */
.docs-table .th-fecha{width:78px}
.docs-table td[data-label="F. registro"],.docs-table td[data-label="Fecha de registro"],.docs-table td[data-label="Fecha registro"]{font-size:11px;line-height:1.25;white-space:normal;width:78px}
.docs-table td[data-label="F. registro"] .fr-h,.docs-table td[data-label="Fecha de registro"] .fr-h,.docs-table td[data-label="Fecha registro"] .fr-h{display:block;color:var(--ink-3);font-weight:500}

/* --- barra superior en cerulean (como la navbar del legacy): degradado celeste→azul, controles en blanco --- */
.topbar{background:linear-gradient(180deg,#54b4eb 0%,#2fa4e7 60%,#1d9ce5 100%);border-bottom:1px solid #1a74b0;box-shadow:0 1px 3px rgba(16,42,67,.18)}
.topbar .crumbs{color:rgba(255,255,255,.9)}
.topbar .crumbs a{color:#fff}
.topbar .crumbs .sep{color:rgba(255,255,255,.55)}
.topbar .btn-light{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35);color:#fff;box-shadow:none}
.topbar .btn-light:hover,.topbar .btn-light:focus-visible,.topbar .btn-light.show{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.6);color:#fff}
.topbar .btn-light:focus-visible{outline:2px solid #fff;outline-offset:1px}
.topbar .notif-btn i{color:#fff}
.topbar .notif-badge{border-color:#2fa4e7;background:#e8402f}
.topbar .dropdown-toggle::after{color:#fff}
/* botón Editar/Guardar: en modo edición pasa a verde relleno */
.docs-toolbar .btn-modo.active{background:var(--ok);border-color:var(--ok);color:#fff;box-shadow:inset 0 1px 2px rgba(0,0,0,.12)}
.docs-toolbar .btn-modo.active i{color:#fff}

/* --- dropzone compacta (formularios en línea) + botón quitar --- */
.dropzone.pro.compact{min-height:0;padding:10px 12px;border-radius:9px}
.dropzone.pro.compact .dz-inner{display:flex;align-items:center;gap:10px;text-align:left;flex-wrap:wrap}
.dropzone.pro.compact .dz-icon{font-size:20px;margin:0}
.dropzone.pro.compact .dz-title{font-size:12px}
.dropzone.pro.compact .dz-note{margin:0;flex-basis:100%}
.dz-clear{font-size:11.5px;color:var(--ink-3);text-decoration:none}
.dz-clear:hover{color:var(--bad)}
.prov-upload .dropzone.pro.compact{flex:1 1 260px;min-width:220px}
.prov-upload>select,.prov-upload>.cs{flex:0 1 260px}
/* fila en mi bandeja: asunto en rojo y negrita, como el legacy */
tr.row-mio td.small:nth-child(4),tr.row-mio td:nth-child(4){color:#c92f2b;font-weight:700}
/* proceso sobre contrato */
.stages-contrato .stage-num i{font-size:10px}
.contrato-facts{grid-template-columns:repeat(4,minmax(0,1fr));border-top:0}
.contrato-panel .sub-tabs .nav-link .badge{font-size:10px;margin-left:4px}
@media (max-width:767.98px){.contrato-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* --- carpeta del pago (clic → modal) --- */
.pago-carpeta{display:inline-flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;padding:4px 8px 4px 4px;border-radius:8px;text-align:left;cursor:pointer;max-width:100%;transition:background .12s,border-color .12s}
.pago-carpeta:hover,.pago-carpeta:focus-visible{background:var(--tint);border-color:#bcdcf1;outline:0}
.pago-carpeta .icon-folder{font-size:26px;color:#FFC107;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}
.pago-carpeta-txt{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.pago-carpeta-txt b{font-size:12.5px;color:var(--accent-deep)}
.pago-carpeta-txt small{font-size:10.5px;color:var(--ink-3)}
.pd-facts{grid-template-columns:repeat(4,minmax(0,1fr));border-top:0;background:#fff;padding:0 0 12px}
@media (max-width:575.98px){.pd-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* --- tarjeta del trámite: más aire arriba y entre el código y el objeto --- */
.tramite-top{padding:14px 18px 12px 20px;gap:10px 24px}
.tramite-cod{margin-bottom:6px}
.tramite-obj{margin-top:2px;line-height:1.35}
.tramite-more>summary{padding:9px 20px}

/* --- barra lateral: marca con entidad, secciones, ítems más compactos y claros --- */
.sidebar-brand{padding:14px 16px;background:linear-gradient(180deg,#262b30,#2c3136)}
.sb-brand{display:flex;align-items:center;gap:11px;min-width:0}
.sb-brand>i{font-size:22px;color:#FFC107}
.sb-brand-txt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.sb-brand-txt b{font-size:17px;letter-spacing:.4px;color:#fff}
.sb-brand-txt small{font-size:10px;color:#9aa4ae;font-weight:400;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.sidebar-back{display:flex;align-items:center;gap:8px;margin:10px 12px 4px;padding:7px 12px;background:transparent;border:1px solid #4a5258;color:#c2c7d0;border-radius:6px;font-size:12px}
.sidebar-back:hover{background:#3f474e;border-color:#5a6269;color:#fff}
.sb-section{padding:12px 18px 4px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#6f7985}
.sidebar-nav a,.sidebar-group>summary{padding:9px 16px 9px 15px;gap:11px;border-left:3px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;color:#c9cfd6}
.sidebar-nav a i,.sidebar-group>summary>i:first-child{width:18px;font-size:13px;color:#8f98a3;text-align:center;transition:color .12s}
.sidebar-nav a:hover,.sidebar-group>summary:hover{background:#3b434a;color:#fff}
.sidebar-nav a:hover i,.sidebar-group>summary:hover>i:first-child{color:#cfd6dd}
.sidebar-nav a.active{background:#3f474e;color:#fff;border-left-color:var(--accent);font-weight:600}
.sidebar-nav a.active i{color:var(--accent)}
.sidebar-group>summary.active{color:#fff;font-weight:600}
.sidebar-group>summary.active>i:first-child{color:var(--accent)}
.sidebar-group[open]>summary{background:#30373d}
.sidebar-group>a.sub{padding:7px 16px 7px 30px;margin-right:10px;border-radius:0 8px 8px 0;background:#2a2f34;color:#b7bec6}
.sidebar-group>a.sub.active{background:#3f474e;color:#fff}
.sidebar-group>a.sub+a.sub{border-top:1px solid #30363b}
.sb-badge{font-size:10px;padding:1px 6px}

/* objeto del trámite: a pedido — margen superior, interlineado y alineado a la izquierda; recorte + "Ver completo" */
.tramite-obj{margin-top:15px;line-height:1.35;text-align:left;text-wrap:initial;max-width:90ch}
.obj-ver{font-size:11px;font-weight:600;color:var(--accent-deep);vertical-align:baseline;white-space:nowrap;text-decoration:none}
.obj-ver:hover{text-decoration:underline;text-underline-offset:3px}
.obj-ver i{font-size:10px;margin-right:2px}
/* cabeceras ordenables */
.grid-table thead th.th-sort{cursor:pointer;user-select:none;white-space:nowrap}
.grid-table thead th.th-sort:hover{color:var(--accent-deep);background:#eaf1f7}
.th-sort-ico{margin-left:5px;font-size:10px;color:#b7c2cc}
th[data-dir] .th-sort-ico{color:var(--accent-deep)}
th[data-dir]{color:var(--accent-deep)}

/* ===== Administración · Auditoría ===== */
.aud-filtros{flex-wrap:wrap;row-gap:6px}
.aud-filtros .form-select,.aud-filtros .aud-proc{max-width:190px}
.aud-filtros .aud-proc{width:110px}
.aud-fecha{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:11px;color:var(--ink-3)}
.aud-fecha input{width:132px}
.aud-table{font-size:12px}
.aud-table .th-fecha{width:92px}.aud-table .th-user{width:140px}.aud-table .th-mod{width:120px}.aud-table .th-acc{width:118px}.aud-table .th-reg{width:150px}.aud-table .th-campo{width:120px}.aud-table .th-val{width:170px}
.aud-table td{vertical-align:top}
.aud-mod{display:inline-block;padding:1px 7px;border-radius:4px;background:var(--tint);color:var(--accent-ink,#1b5e8a);font-weight:600;font-size:11px;white-space:nowrap}
.aud-acc{display:inline-block;padding:1px 8px;border-radius:999px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.aud-acc.crea{background:#009688}.aud-acc.edit{background:#2f6fb0}.aud-acc.mov{background:#6d4fc2}.aud-acc.cierre{background:#1f2937}.aud-acc.warn{background:#b45309}.aud-acc.del{background:#b91c1c}.aud-acc.gris{background:#6b7280}
.aud-val{word-break:break-word;max-width:260px}
.aud-ant{color:#8a2b2b;text-decoration:line-through;text-decoration-color:rgba(138,43,43,.35)}
.aud-nue{color:#00695c;font-weight:600}
.aud-nulo{color:#adb5bd;text-decoration:none}
.aud-det{color:var(--ink-2);max-width:320px;word-break:break-word}
.aud-tabla{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-3)}
.aud-idreg{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-2)}
.aud-proc-link{font-weight:600;text-decoration:none}
.aud-ip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
#pdTabla .th-acc{width:112px}
#pdTabla .acciones-cell{white-space:nowrap}

/* ===== Sidebar · módulos principales (acordeón de primer nivel) ===== */
.sidebar-module{margin:0 0 2px}
.sidebar-module>summary{list-style:none;display:flex;align-items:center;gap:11px;padding:10px 16px 10px 15px;margin-right:10px;border-left:3px solid transparent;border-radius:0 8px 8px 0;color:#dfe4e9;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;user-select:none}
.sidebar-module>summary::-webkit-details-marker{display:none}
.sidebar-module>summary>i:first-child{width:18px;font-size:13px;color:#9aa3ad;text-align:center}
.sidebar-module>summary:hover{background:#3b434a;color:#fff}
.sidebar-module>summary.active,.sidebar-module[open]>summary{color:#fff;border-left-color:var(--accent)}
.sidebar-module>summary.active>i:first-child{color:var(--accent)}
.sidebar-module>summary .caret{margin-left:auto;font-size:12px;transition:transform .18s;color:#8f98a3}
.sidebar-module[open]>summary .caret{transform:rotate(-90deg)}
.sidebar-module-body{padding:2px 0 6px;border-left:3px solid #30373d;margin-left:15px}
.sidebar-module-body>a,.sidebar-module-body>.sidebar-group>summary{padding-left:14px!important}
.sidebar-module-body>.sidebar-group>a.sub{padding-left:28px!important}
.sb-pronto{display:block;padding:8px 16px;font-size:11.5px;color:#7d8791;font-style:italic}
.sb-pronto i{margin-right:6px}
.sidebar.collapsed .sidebar-module>summary span,.sidebar.collapsed .sidebar-module>summary .caret{display:none}
.sidebar.collapsed .sidebar-module-body{margin-left:0;border-left:0}

.aud-table .fr-h{display:block;white-space:nowrap}
.aud-table td.nowrap{white-space:normal}

/* ===== Módulo Proveedores ===== */
.prov-table .th-acc{width:84px}.prov-table .th-ruc{width:128px}.prov-table .th-tel{width:120px}.prov-table .th-mail{width:220px}.prov-table .th-n{width:84px;text-align:center}.prov-table .th-fecha{width:100px}.prov-table .th-resp{width:170px}
.prov-ruc{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.03em;color:var(--ink-2)}
.prov-link{font-weight:600;text-decoration:none;color:#17384f}.prov-link:hover{color:var(--accent)}
.prov-link i{color:var(--accent);margin-right:3px;font-size:12px}
.n-pill{display:inline-block;min-width:28px;padding:1px 8px;border-radius:999px;background:var(--tint);color:var(--accent-deep);font-weight:700;font-size:11.5px;text-align:center}
.n-pill.n-doc{background:#e9f6f4;color:#00695c}
.prov-nombre-lg{font-size:17px;padding:14px 18px 10px}
.etapa-pill-sm{padding:2px 10px 2px 8px}.etapa-pill-sm b{font-size:11px}
.etapa-pill-sm.cerrada{border-color:#cfd6dd;background:#f3f5f7}.etapa-pill-sm.cerrada b{color:#55606b}

.tramite-facts dd{word-break:break-word;overflow-wrap:anywhere}

.pager-size{margin:0 0 0 8px}.pager-size .form-select{width:auto;min-width:74px;padding-right:28px}

.seg-alert{border-radius:0;border-left:0;border-right:0;font-size:12.5px;padding:9px 44px 9px 16px}
.seg-alert i{margin-right:6px}

/* ===== Notificaciones: filas clicables + modal de detalle ===== */
.notif-ico.tipo-SEGURIDAD{background:#fff1f1;color:#b91c1c;border-color:#f3c0c0}
.notif-row{cursor:pointer;transition:background .12s}
.notif-row:hover{background:#f3f8fc}
.notif-row.no-leida .notif-titulo{font-weight:700}
.notif-row .notif-titulo{color:#17384f;text-decoration:none}
.notif-row .notif-msg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.notif-det-msg{white-space:pre-line;line-height:1.45;font-size:13px;background:var(--surf-1);border:1px solid var(--line-soft);border-radius:8px;padding:12px 14px}
.notif-det-meta{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;color:var(--ink-3);margin-top:10px}
.notif-det-meta b{color:var(--ink-2)}
.notif-filtros{display:inline-flex;gap:4px;margin-left:8px}
.notif-filtros a{font-size:11.5px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);text-decoration:none}
.notif-filtros a.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* ===== Sidebar · menú por niveles (módulos → menú del módulo) con deslizamiento ===== */
.sb-drill{position:relative;flex:1 1 auto;min-height:0;overflow:hidden}
.sb-level{position:absolute;inset:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding-bottom:12px;transition:transform .32s cubic-bezier(.22,.8,.26,1),opacity .26s ease;will-change:transform,opacity}
.sb-drill.no-anim .sb-level{transition:none}
.sb-level-1{transform:translateX(0);opacity:1}
.sb-drill.in-mod .sb-level-1{transform:translateX(-22%);opacity:0;pointer-events:none}
.sb-level-2{transform:translateX(100%);opacity:0;pointer-events:none}
.sb-level-2.active{transform:translateX(0);opacity:1;pointer-events:auto}
.sb-level-2[hidden]{display:none}
.sb-mod{display:flex;align-items:center;gap:11px;width:calc(100% - 10px);margin:1px 10px 1px 0;padding:11px 16px 11px 15px;border:0;border-left:3px solid transparent;border-radius:0 8px 8px 0;background:transparent;color:#dfe4e9;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left;cursor:pointer;transition:background .12s,color .12s}
.sb-mod>i:first-child{width:18px;font-size:13px;color:#9aa3ad;text-align:center}
.sb-mod:hover{background:#3b434a;color:#fff}
.sb-mod:hover>i:first-child{color:#cfd6dd}
.sb-mod.active{color:#fff;border-left-color:var(--accent)}
.sb-mod.active>i:first-child{color:var(--accent)}
.sb-mod .caret{margin-left:auto;font-size:12px;color:#8f98a3;transition:transform .18s}
.sb-mod:hover .caret{transform:translateX(3px)}
.sb-back{display:flex;align-items:center;gap:8px;margin:2px 12px 8px;padding:6px 10px;background:transparent;border:1px solid #4a5258;color:#c2c7d0;border-radius:6px;font-size:11.5px;cursor:pointer;text-align:left}
.sb-back:hover{background:#3f474e;border-color:#5a6269;color:#fff}
.sb-mod-title{display:flex;align-items:center;gap:9px;padding:14px 16px 6px 15px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8f98a3}
.sb-mod-title i{color:var(--accent);font-size:12px;width:18px;text-align:center}
.sb-level-2>a,.sb-level-2>.sidebar-group>summary{padding-left:15px}
.sb-level-2>.sidebar-group>a.sub{padding-left:30px}
@media (prefers-reduced-motion:reduce){.sb-level{transition:none}}

/* ===== Módulo Proyectos ===== */
.proy-table .th-acc{width:52px}.proy-table .th-cod{width:92px}.proy-table .th-fecha{width:100px}.proy-table .th-cargo{width:200px}.proy-table .th-n{width:84px;text-align:center}.proy-table .th-resp{width:170px}
.proy-nombre{display:inline-block;max-width:100%}
.proy-det{white-space:normal;color:var(--ink-3)}
.proy-detalle{white-space:pre-line}
.proyecto-card .proy-acciones{display:flex;gap:6px;align-items:center;margin-left:auto}
.proyecto-h{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}

/* ===== Módulo Pagos ===== */
.pagos-mod-table .th-fecha{width:96px}.pagos-mod-table .th-cod{width:118px}.pagos-mod-table .th-proc{width:230px}.pagos-mod-table .th-prov{width:200px}.pagos-mod-table .th-valor{width:118px;text-align:right}.pagos-mod-table .th-estado{width:150px}.pagos-mod-table .th-n{width:70px;text-align:center}.pagos-mod-table .th-resp{width:170px}
.pagos-mod-table .pm-obj{white-space:normal;color:var(--ink-3)}
.pagos-mod-table tr.row-click{cursor:pointer}
.cfg-cierre{max-width:520px;margin:4px 0 10px}
#modalPagoDet #formEstadoPago .pago-estado-sel{min-width:150px}


/* ---------- apariencia y temporadas ---------- */
.ap-estilos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.ap-estilo{border:2px solid transparent;border-radius:12px;padding:6px;cursor:pointer;font-size:12.5px;text-align:center;background:#fff;transition:border-color .15s,transform .15s}.ap-estilo:hover{transform:translateY(-1px)}.ap-estilo.on{border-color:var(--accent,#1a74b0)}
.ap-sw{display:block;height:46px;border-radius:9px;margin-bottom:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.ap-hoy{display:flex;gap:12px;align-items:center;background:#f7f9fb;border:1px solid var(--line,#d8e0e8);border-radius:12px;padding:8px 14px}
.ap-presets{display:flex;gap:8px;flex-wrap:wrap}
.ap-preset{display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid transparent;border-radius:12px;padding:8px;width:92px;cursor:pointer;font-size:11px;color:#51606e;text-align:center;background:#f7f9fb}.ap-preset img{width:44px;height:44px;object-fit:contain}.ap-preset.on{border-color:var(--accent,#1a74b0);background:#eaf4fb}
.ap-prev{position:relative;width:110px;height:110px;background:#eef2f6;border-radius:14px;overflow:visible}.ap-prev img{position:absolute;object-fit:contain}.ap-prev #mtPrevBase{left:8%;top:8%;width:84%;height:84%}

/* ---------- talento humano: asistencia, marcación, horarios ---------- */
.rep-filtros{align-items:flex-end}.rep-filtros .rf{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#51606e;font-weight:600;margin:0}.rep-filtros .rf-w{min-width:220px;flex:1 1 220px}.rep-filtros .rf .form-control,.rep-filtros .rf .form-select{font-weight:400}
.rep-cab{padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surf-1)}.rep-titulo{font-size:13px;color:#2b3a4a}
.rep-kpis{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.rep-kpis span{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:#51606e}.rep-kpis span b{color:#13202e}.rep-kpis span.mal{border-color:#f3c0c0;background:#fff1f1}.rep-kpis span.mal b{color:#b91c1c}.rep-kpis span.aviso{border-color:#f1c56b;background:#fff8e6}
.rep-tabla th.num,.rep-tabla td.num{text-align:center;white-space:nowrap}.rep-tabla td{font-size:12.5px}
.rep-falta{background:#fff1f1!important}.rep-feriado{background:#eef6ff!important;color:#51606e}.rep-nolab{color:#8a9199}.rep-atraso{background:#fff8e6!important}
.rep-nov{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;background:#eef2f6;color:#51606e;margin:1px 3px 1px 0;border:1px solid #dfe5ec}.rep-nov.mal{background:#fde2e2;color:#b91c1c;border-color:#f3c0c0}.rep-nov.aviso{background:#fff3cd;color:#8a5a00;border-color:#f1c56b}.rep-nov.info{background:#e0ecfb;color:#1a4e8a;border-color:#bfd4ee}
.rep-persona{border-bottom:8px solid var(--surf-0)}.rep-persona-h{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surf-1);border-bottom:1px solid var(--line);flex-wrap:wrap}
.rep-av{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#dfe5eb;flex:0 0 40px}
.rep-mini{display:flex;gap:6px;flex-wrap:wrap}.rep-mini span{font-size:11.5px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 9px}.rep-mini span.mal{background:#fff1f1;border-color:#f3c0c0;color:#b91c1c}.rep-mini span.aviso{background:#fff8e6;border-color:#f1c56b}
.marcar-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:16px;max-width:1100px}.marcar-card{margin:0}
.marcar-quien{display:flex;gap:12px;align-items:center;margin-bottom:10px}.marcar-quien .rep-av{width:52px;height:52px;flex-basis:52px}
.marcar-reloj{font-size:54px;font-weight:800;letter-spacing:2px;color:#13202e;line-height:1;text-align:center;font-variant-numeric:tabular-nums}.marcar-fecha{text-align:center;color:#51606e;font-size:13px;margin:4px 0 14px;text-transform:capitalize}
.marcar-botones{display:grid;grid-template-columns:1fr 1fr;gap:10px}.marcar-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 10px;font-weight:700;border-radius:12px;font-size:14px}.marcar-btn i{font-size:22px}.marcar-btn small{font-weight:400;opacity:.85}.marcar-btn.hecha{opacity:.55}
.marcar-foto video,.marcar-foto img{display:block;width:100%;max-width:320px;border-radius:10px;margin:8px 0;background:#000}
.marcar-lista{list-style:none;padding:0;margin:0}.marcar-lista li{display:flex;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px solid #eef1f5;font-size:13px}.marcar-lista li b{font-variant-numeric:tabular-nums}
.hor-item{border-bottom:1px solid var(--line)}.hor-item>summary{cursor:pointer;padding:10px 14px;font-size:13.5px;list-style:none;display:flex;gap:8px;align-items:center}.hor-item>summary::before{content:"\25B8";color:#8a9199}.hor-item[open]>summary::before{content:"\25BE"}.hor-tabla .form-control{min-width:92px}
@media print{.sidebar,.topbar,.rep-filtros,.no-print,.update-bar,.seg-alert,.bottom-nav{display:none!important}.main,.content{margin:0!important;padding:0!important}.grid-panel{border:0;box-shadow:none}.rep-tabla td,.rep-tabla th{font-size:10.5px;padding:3px 5px}.rep-persona{break-inside:avoid}body{background:#fff}}
@media (max-width:767.98px){.marcar-wrap{grid-template-columns:1fr}.marcar-reloj{font-size:42px}.rep-filtros .rf{flex:1 1 45%}.rep-filtros .rf-w{flex-basis:100%}}

/* --- proveedor: conjuntos de datos / versiones de documentación (sql/030) --- */
.ver-bar{border-bottom:1px solid var(--line-soft,#e9eef3);padding:10px 12px 8px;background:#fbfcfe}
.ver-bar-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.ver-bar-tit{font-weight:700;font-size:12.5px;color:#2a3b49;text-transform:uppercase;letter-spacing:.05em}
.ver-bar-tit i{color:var(--accent)}
.ver-bar-ayuda{font-size:11.5px;color:#7a8692;flex:1 1 260px}
.ver-chips{display:flex;flex-wrap:wrap;gap:8px}
.ver-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border:1px solid #d7dfe7;border-radius:10px;background:#fff;color:#2c3237;text-decoration:none;font-size:12px;line-height:1.2}
.ver-chip:hover{border-color:var(--accent);color:#1f2937;background:#f3f9fd}
.ver-chip.active{border-color:var(--accent);background:#e8f4fc;box-shadow:inset 0 0 0 1px var(--accent)}
.ver-chip-fecha{font-weight:700;font-variant-numeric:tabular-nums}
.ver-chip-fecha i{color:#8f98a3;margin-right:2px}
.ver-chip-et{color:#3b4a57}
.ver-chip-meta{color:#8a95a0;font-size:11px}
.ver-chip-vig{background:#00796b;color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:2px 8px;text-transform:uppercase;letter-spacing:.04em}
.ver-detalle{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin-top:10px;font-size:12.5px}
.ver-detalle-acc{display:inline-flex;gap:6px;margin-left:auto}
.prov-version{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:#3b4a57}
.prov-version>i{color:var(--accent)}
.prov-version-sel{width:auto;min-width:220px;font-size:12px}

/* --- portada (inicio): fondo del sistema hasta que el usuario abra un módulo --- */
.content.content-inicio{padding:0!important;display:flex;flex-direction:column}
.inicio{--lg1:#0b1d33;--lg2:#12304f;--lg3:#1f4e79;--lg-acento:#c9a227;position:relative;flex:1;min-height:calc(100vh - 50px);display:flex;align-items:center;color:#fff;overflow:hidden;isolation:isolate}
.inicio-bg{position:absolute;inset:0;z-index:-1;background:linear-gradient(160deg,var(--lg1) 0%,var(--lg2) 60%,var(--lg3) 100%)}
.inicio-bg::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 2px,transparent 2px 14px)}
.inicio-in{padding:40px clamp(20px,6vw,96px);max-width:900px}
.inicio-marca{display:flex;align-items:center;gap:18px}
.inicio-escudo{height:112px;max-width:180px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.inicio-icono{width:64px;height:64px}
.inicio-sistema{font-size:clamp(34px,4.4vw,56px);font-weight:700;letter-spacing:1.5px;line-height:1.05;margin:0;color:#fff}
.inicio-eslogan{font-size:clamp(14px,1.3vw,17px);opacity:.8;margin-top:8px;font-weight:300;letter-spacing:.4px}
.inicio-entidad{margin-top:26px;padding-top:18px;border-top:2px solid var(--lg-acento);display:inline-block;font-size:15px;font-weight:600;text-transform:uppercase;letter-spacing:1.4px;line-height:1.35}
.inicio-entidad small{display:block;text-transform:none;letter-spacing:0;font-weight:400;opacity:.75;font-style:italic;margin-top:3px;font-size:13px}
.inicio-saludo{margin-top:22px;font-size:14px;opacity:.85}
.inicio-fecha{display:inline-block}.inicio-fecha::first-letter{text-transform:uppercase}
.inicio-temporada{margin-top:12px;font-size:13.5px;padding:8px 14px;border-left:3px solid var(--lg-acento);background:rgba(255,255,255,.07);display:block;width:fit-content;max-width:520px;line-height:1.4}
.inicio-hint{margin-top:34px;display:flex;align-items:center;gap:10px;font-size:13.5px;opacity:.85}
.inicio-hint .fa-arrow-left{animation:inicioPista 2.4s ease-in-out infinite}
@keyframes inicioPista{0%,100%{transform:translateX(0)}50%{transform:translateX(-6px)}}
@media (prefers-reduced-motion:reduce){.inicio-hint .fa-arrow-left{animation:none}}
@media (max-width:991.98px){
  .inicio{min-height:calc(100dvh - 46px - var(--bn-h,0px));text-align:center;justify-content:center}
  .inicio-in{padding:28px 18px}
  .inicio-marca{justify-content:center;gap:12px}.inicio-icono{width:44px;height:44px}.inicio-escudo{height:64px}
  .inicio-sistema{font-size:32px}
  .inicio-temporada{margin-left:auto;margin-right:auto;text-align:left}
  .inicio-hint{justify-content:center}
}

/* --- Ajustes · Sincronizar con Olympo --- */
.sync-intro{font-size:12.5px;color:#4b5866;margin:4px 0 10px;max-width:900px}
.sync-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;align-items:start}
@media (max-width:991.98px){.sync-grid{grid-template-columns:1fr}}
.sync-panel .panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sync-form{padding:12px 14px 14px}
.sync-bloques{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 14px}
.sync-bloques .form-check{margin:0;font-size:12.5px}
.sync-bloques-acc{font-size:12px;margin-top:4px}
.sync-botones{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft,#e9eef3)}
.sync-tabla td,.sync-tabla th{font-size:12.5px}
.sync-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;margin:1px 2px 1px 0;border:1px solid transparent;white-space:nowrap}
.sync-chip b{font-weight:700}
.sync-ok{background:#e0f2f1;color:#00796b;border-color:#b2dfdb}
.sync-pend{background:#fff4e5;color:#a35a00;border-color:#ffe0b2}
.sync-revisar{background:#fdecea;color:#b3261e;border-color:#f8c9c4}
.sync-omitir{background:#f1f3f5;color:#6b7682;border-color:#e3e8ee}
.sync-avisos{padding:10px 14px;border-top:1px solid var(--line-soft,#e9eef3);font-size:12.5px;display:grid;gap:3px}
.sync-estado{font-size:12px;font-weight:600}
.sync-estado.sync-corriendo{color:var(--accent)}.sync-estado.sync-ok{color:#00796b;background:none;border:0}.sync-estado.sync-error{color:#b3261e}
.sync-meta{padding:0 14px 6px}
.sync-log{margin:0 14px 14px;max-height:420px;overflow:auto;background:#0f1720;color:#d6e2ee;border-radius:8px;padding:12px 14px;font-size:11.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.sync-det{max-width:520px;word-break:break-word}
/* terceros: configuración, endpoints y contrato */
.sync-col{display:flex;flex-direction:column;min-width:0}
.sync-eps td{vertical-align:top}
.ep-res{margin-top:4px;line-height:1.35}
.ep-res details summary{cursor:pointer;color:var(--accent)}
.ep-muestra{max-height:180px;overflow:auto;background:#f6f8fa;border:1px solid #e3e8ee;border-radius:6px;padding:6px 8px;font-size:11px;margin:4px 0 0}
.contrato-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px 18px}
.contrato-item i{color:var(--accent)}
.sync-head .ver-chips{margin-top:4px}
/* sincronización por web service: flujo, bloques e inicio de sesión */
.ws-flujo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.ws-nodo{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid #d7dfe7;border-radius:10px;background:#fff;font-size:12.5px;font-weight:600}
.ws-nodo small{font-weight:400;color:#7a8692;margin-left:2px}
.ws-nodo i{color:#8f98a3}.ws-nodo-ws i{color:var(--accent)}.ws-nodo-yo{border-color:var(--accent);background:#e8f4fc}.ws-nodo-yo i{color:var(--accent)}
.ws-flecha{color:#9aa4ae}
.ws-bloques{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:991.98px){.ws-bloques{grid-template-columns:1fr}}
.ws-bloque .sync-form{display:flex;flex-direction:column;gap:8px}
.ws-estado{background:#f8fafc;border:1px solid #e9eef3;border-radius:8px;padding:6px 10px;display:grid;gap:3px}
.ws-opcion{border:1px dashed #d7dfe7;border-radius:8px;padding:8px 10px}
.ws-ejemplo summary{cursor:pointer;font-size:12.5px;color:var(--accent)}
.ws-ejemplo .ep-muestra{max-height:260px}
.ws-bloque .sync-botones{margin-top:auto}

/* escudo de la portada: fondo configurable en Apariencia */
.inicio-escudo-blanco{background:#fff;border-radius:14px;padding:8px;box-shadow:0 6px 18px rgba(0,0,0,.28);filter:none}
.inicio-escudo-sistema{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:14px;padding:8px;filter:none}
.inicio-escudo-transparente{background:none;padding:0}

/* portada "solo escudo": blanco, escudo centrado */
.inicio-solo{flex:1;min-height:calc(100vh - 50px);display:flex;align-items:center;justify-content:center;background:#fff;padding:32px 16px}
.inicio-solo-escudo{max-width:min(420px,70vw);max-height:62vh;width:auto;height:auto;object-fit:contain;filter:brightness(1.02);opacity:.3}   /* el fondo casi blanco de la imagen (#fcfbfc) queda blanco puro: sin recuadro */
@media (max-width:991.98px){.inicio-solo{min-height:calc(100dvh - 46px - var(--bn-h,0px))}.inicio-solo-escudo{max-width:72vw;max-height:55vh}}

/* --- Diseño y apariencia: temas, editor y vista previa --- */
.dz-grid{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:991.98px){.dz-grid{grid-template-columns:1fr}}
.dz-temas{display:flex;flex-direction:column;gap:6px;padding:8px}
.dz-tema{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid #e3e8ee;border-radius:10px;text-decoration:none;color:#2c3237;background:#fff}
.dz-tema:hover{border-color:var(--accent)}.dz-tema.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#f3f9fd}
.dz-tema-txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}.dz-tema-txt b{font-size:12.5px}.dz-tema-txt small{color:#7a8692;font-size:11px}
.dz-tema-tags{margin-top:3px}
.dz-mini{flex:0 0 64px;height:44px;border-radius:6px;overflow:hidden;display:grid;grid-template-columns:18px 1fr;grid-template-rows:10px 1fr;border:1px solid #d7dfe7}
.dz-mini i{display:block}.dz-mini-barra{grid-column:1/3;background:var(--b)}.dz-mini-menu{background:var(--m);border-top:2px solid var(--a)}
.dz-mini-cont{background:var(--c);position:relative}.dz-mini-cont b{position:absolute;left:6px;top:7px;width:24px;height:6px;border-radius:3px;background:var(--a)}
.dz-editor{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
@media (max-width:1199.98px){.dz-editor{grid-template-columns:1fr}}
.dz-h{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#51606e;margin:16px 0 8px;padding-top:10px;border-top:1px solid #eef1f5}
.dz-colores{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.dz-color{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer;margin:0}
.dz-color input{width:38px;height:30px;border:1px solid #d7dfe7;border-radius:6px;padding:2px;background:#fff;flex:0 0 auto}
.dz-color span{display:flex;flex-direction:column;line-height:1.2}.dz-color code{font-size:10.5px;color:#7a8692}
.dz-ordenes{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:575.98px){.dz-ordenes{grid-template-columns:1fr}}
.dz-orden{list-style:none;padding:0;margin:0;border:1px solid #e3e8ee;border-radius:8px;overflow:hidden;counter-reset:dz}
.dz-orden li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;font-size:12.5px;border-bottom:1px solid #eef1f5;background:#fff}
.dz-orden li:last-child{border-bottom:0}.dz-orden li::before{counter-increment:dz;content:counter(dz);color:#9aa4ae;font-size:11px;width:14px}
.dz-orden li>span:first-of-type,.dz-orden li>label{flex:1}
.dz-orden-acc{display:inline-flex;gap:3px}
.dz-prev-wrap{position:sticky;top:64px}
.dz-prev{--tam:12px;--fuente:inherit;display:flex;height:270px;border:1px solid #d7dfe7;border-radius:10px;overflow:hidden;font-family:var(--fuente);font-size:var(--tam);box-shadow:0 4px 14px rgba(16,42,67,.08)}
.dz-prev.dz-p-derecha{flex-direction:row-reverse}
.dz-p-menu{width:118px;background:var(--menu_fondo);color:var(--menu_texto);display:flex;flex-direction:column;gap:2px;padding-bottom:6px;transition:width .15s}
.dz-p-compacto .dz-p-menu{width:40px}.dz-p-compacto .dz-p-item em,.dz-p-compacto .dz-p-brand b{display:none}
.dz-p-brand{display:flex;align-items:center;gap:6px;padding:8px;font-size:1.05em}.dz-p-brand img{width:18px;height:18px;object-fit:contain}.dz-p-brand b{color:var(--menu_texto);font-weight:700}
.dz-p-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-left:3px solid transparent;font-size:.92em;white-space:nowrap;overflow:hidden}
.dz-p-item i{font-size:7px;opacity:.7}.dz-p-item em{font-style:normal}
.dz-p-item.on{background:var(--menu_activo);border-left-color:var(--acento)}.dz-p-item.on i{color:var(--acento);opacity:1}
.dz-p-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--contenido)}
.dz-p-barra{background:var(--barra);color:var(--barra_texto);padding:8px 10px;font-size:.95em;display:flex;gap:7px;align-items:center;border-bottom:1px solid rgba(0,0,0,.08)}
.dz-p-cont{padding:10px}.dz-p-card{background:#fff;border:1px solid #e3e8ee;border-radius:8px;padding:9px;line-height:1.4}.dz-p-card p{margin:4px 0 8px;color:#4b5866}
.dz-p-card a{color:var(--acento)}.dz-p-btn{display:inline-block;background:var(--acento);color:#fff;border-radius:6px;padding:3px 8px;font-size:.9em}
.dz-p-tab{display:inline-block;border-bottom:2px solid var(--acento);color:var(--acento);padding:2px 4px;font-size:.9em;margin-left:4px}
/* modal de respuesta del web service */
.ws-cargando{padding:40px 10px;text-align:center;color:#51606e;font-size:14px}.ws-cargando i{color:var(--accent);margin-right:6px}
.ws-estado-linea{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-radius:8px;margin-bottom:10px;font-size:13px;border:1px solid}
.ws-estado-linea.ok{background:#e9f6f4;border-color:#b2dfdb;color:#00695c}.ws-estado-linea.mal{background:#fdecea;border-color:#f8c9c4;color:#8a1c14}
.ws-tabla{max-height:52vh;overflow:auto;border:1px solid #e3e8ee;border-radius:8px}.ws-tabla thead th{position:sticky;top:0;z-index:1;background:#f8fafc;white-space:nowrap}
.ws-tabla td{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-json{max-height:56vh;overflow:auto;background:#0f1720;color:#d6e2ee;border-radius:8px;padding:12px 14px;font-size:11.5px;line-height:1.45;margin:0}

/* Talento Humano · catálogos */
.cat-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.cat-grid>*{min-width:0}
@media (max-width:991.98px){.cat-grid{grid-template-columns:minmax(0,1fr)}}
.cat-menu{padding-bottom:6px}.cat-item{display:flex;align-items:center;gap:9px;padding:8px 14px;color:#2c3237;text-decoration:none;font-size:13px;border-left:3px solid transparent}
.cat-item:hover{background:#f3f9fd}.cat-item.active{background:#e8f4fc;border-left-color:var(--accent);font-weight:600}.cat-item>i:first-child{width:16px;text-align:center;color:var(--accent)}
.cat-item span{flex:1}.cat-sync{font-size:10px;color:#9aa4ae}.cat-sep{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8a95a0;padding:12px 14px 4px;font-weight:700}

/* cuadre de códigos biométricos */
.cq-resumen{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:12px 14px}
.cq-kpi{border:1px solid #e3e8ee;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;background:#fff}.cq-kpi b{font-size:22px;line-height:1.1}.cq-kpi span{font-size:12px;color:#51606e}
.cq-kpi.mal{border-color:#f8c9c4;background:#fdf3f2}.cq-kpi.mal b{color:#b3261e}

/* ===== TTHH · Cumpleaños ===== */
.cu-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.cu-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid #e3e8ef;border-radius:10px;background:#fff;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.cu-card i{color:#8a97a8;font-size:1.1rem}
.cu-card b{font-size:1.6rem;line-height:1.1}
.cu-card span{font-size:.8rem;color:#6b7785}
.cu-card:hover{border-color:#9fb3c8}
.cu-card.active{border-color:var(--bs-primary,#2fa4e7);box-shadow:0 0 0 2px rgba(47,164,231,.15)}
.cu-card.fiesta{background:#fff8e6;border-color:#f5c451}
.cu-card.fiesta i{color:#e0a100}
.cu-hoy{display:flex;flex-wrap:wrap;gap:10px}
.cu-hoy-card{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:#fff8e6;border:1px solid #f5c451}
.cu-hoy-ico{font-size:1.8rem}
.cu-mes td{background:#f3f6fa!important;font-weight:600;font-size:.78rem;letter-spacing:.04em;color:#516070}
.cu-fila-hoy td{background:#fff8e6!important}

/* ===== TTHH · Reporte de asistencia (filtros, cruces, indicadores y estados del día) ===== */
.ra-filtros{padding:12px 14px}
.ra-rapidos{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.ra-lbl{font-size:11px;font-weight:600;color:#51606e;margin-right:4px}
.ra-chip{border:1px solid #d6dee7;background:#fff;color:#3a4a5b;border-radius:999px;padding:3px 12px;font-size:12px;line-height:1.5;cursor:pointer;transition:all .15s}
.ra-chip:hover{border-color:#9fb3c8;background:#f5f8fb}
.ra-chip.on{background:var(--bs-primary,#2fa4e7);border-color:var(--bs-primary,#2fa4e7);color:#fff}
.ra-grid{display:grid;grid-template-columns:150px 150px minmax(200px,1fr) minmax(240px,1.4fr) auto;gap:10px;align-items:end}
.ra-fin-in{display:flex;gap:8px;flex-wrap:wrap}.ra-consultar{white-space:nowrap;min-height:31px}
.ra-f{display:flex;flex-direction:column;gap:3px;margin:0;min-width:0}
.ra-f>span{font-size:11px;font-weight:600;color:#51606e}
.ra-f .form-control,.ra-f .form-select,.ra-f .ts-wrapper{width:100%}
.ra-f .ts-wrapper .ts-control{min-height:31px;padding:4px 8px}
.ra-vista .btn{white-space:nowrap}
.ra-acc .btn{white-space:nowrap;min-height:31px}
@media (max-width:1399.98px){.ra-grid{grid-template-columns:1fr 1fr 1fr 1fr}.ra-ancho,.ra-fin{grid-column:span 2}}
@media (max-width:767.98px){.ra-grid{grid-template-columns:1fr 1fr}.ra-ancho,.ra-fin{grid-column:1 / -1}.ra-vista{flex:1 1 100%}.ra-vista .btn{flex:1}.ra-consultar{flex:1 1 100%}}
.ra-cruces{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:12px}
.ra-cruce{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:14px}
.ra-cruce b{font-size:14px}.ra-cruce p{margin:4px 0 0;font-size:12.5px;color:#5f6f80;line-height:1.45}
.ra-cruce-ico{flex:0 0 38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);font-size:16px}
.ra-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 10px}
.ra-exp{display:flex;gap:6px;flex-wrap:wrap}
.ra-kpis .cu-card{cursor:default}
.ra-kpis .cu-card b{font-size:1.45rem}
.ra-fuentes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ra-th-cump{min-width:140px}
.ra-cump{display:flex;align-items:center;gap:8px}.ra-cump b{font-size:12px;min-width:44px;text-align:right}
.ra-barra{flex:1;height:7px;border-radius:99px;background:#e6ecf2;overflow:hidden;display:block}.ra-barra i{display:block;height:100%;border-radius:99px}
.ra-leyenda{display:flex;gap:12px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line);color:#5f6f80}
.ra-leyenda span{display:inline-flex;align-items:center;gap:5px}
.ra-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
.ra-estado{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;margin:1px 4px 1px 0;color:#fff}
.ra-sub{margin-top:3px;font-size:11.5px}
.ra-dot.ra-ok,.ra-estado.ra-ok{background:#00796b}.ra-dot.ra-atraso,.ra-estado.ra-atraso{background:#e65100}.ra-dot.ra-incompleto,.ra-estado.ra-incompleto{background:#b28704}
.ra-dot.ra-falta,.ra-estado.ra-falta{background:#c62828}.ra-dot.ra-permiso,.ra-estado.ra-permiso{background:#00838f}.ra-dot.ra-hoja,.ra-estado.ra-hoja{background:#1565c0}
.ra-dot.ra-feriado,.ra-estado.ra-feriado{background:#6a1b9a}.ra-dot.ra-descanso,.ra-estado.ra-descanso{background:#9aa7b4}
tr.ra-fila.ra-falta td{background:#fff1f1!important}tr.ra-fila.ra-atraso td{background:#fff7ec!important}tr.ra-fila.ra-incompleto td{background:#fffbe6!important}
tr.ra-fila.ra-permiso td{background:#e9f8fa!important}tr.ra-fila.ra-hoja td{background:#eef5fd!important}tr.ra-fila.ra-feriado td{background:#f6effa!important}tr.ra-fila.ra-descanso td{color:#8a97a5}
@media print{.ra-panel,.ra-exp,.ra-cruces{display:none!important}}
.ra-sinmarca{display:inline-block;font-size:10.5px;font-weight:600;color:#c62828;background:#fdecec;border:1px solid #f3c0c0;border-radius:4px;padding:0 5px;white-space:nowrap}
.th-folder{width:38px}
.marcar-sello{margin-top:4px;font-size:11.5px;color:#004d40}.marcar-sello code{color:#004d40;background:rgba(255,255,255,.6);padding:0 4px;border-radius:3px;letter-spacing:.5px}
.ra-veredicto{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:10px;border:1px solid}
.ra-veredicto>i{font-size:22px;margin-top:2px}
.ra-veredicto.bien{background:#e9f6f4;border-color:#b2dfdb;color:#004d40}
.ra-veredicto.mal{background:#fff1f1;border-color:#f3c0c0;color:#7f1d1d}
.ra-marca{display:inline-flex;flex-direction:column;align-items:center;line-height:1.15;white-space:nowrap}
.ra-marca i.ra-o-bio,.ra-leyenda .ra-o-bio{color:#8796a5;font-size:10px}.ra-marca i.ra-o-app,.ra-leyenda .ra-o-app{color:#1565c0;font-size:10px}
.ra-huella{font-size:9.5px;font-family:ui-monospace,Menlo,monospace;color:#00796b;letter-spacing:.3px}.ra-huella i{font-size:8.5px}
td.ra-tarde .ra-marca,td.ra-tarde{color:#c62828;font-weight:700}td.ra-antes .ra-marca,td.ra-antes{color:#b45309;font-weight:700}
.ra-origen{font-size:9.5px;font-weight:500;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ra-origen.bio{color:#7b8794}.ra-origen.app{color:#1565c0}.ra-origen i{font-size:9px}

/* ===== ADMINISTRATIVO · POA ===== */
.poa-barras{display:flex;flex-direction:column;gap:4px}
.poa-barra{display:grid;grid-template-columns:minmax(120px,38%) 1fr auto;gap:8px;align-items:center;padding:3px 6px;border-radius:6px;color:inherit;text-decoration:none;font-size:12px}
.poa-barra:hover{background:#f3f7fb}.poa-barra.on{background:#e7f3fc;outline:1px solid #b8dcf5}
.poa-barra-n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#3a4a5b}
.poa-barra-b{height:9px;background:#eef2f6;border-radius:99px;overflow:hidden}.poa-barra-b i{display:block;height:100%;background:linear-gradient(90deg,#2fa4e7,#16324f);border-radius:99px}
.poa-barra-v{font-weight:600;white-space:nowrap;font-size:11.5px}.poa-barra-v small{color:#8796a5;font-weight:400}
.poa-trim{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.poa-trim-c{display:flex;flex-direction:column;align-items:center;padding:10px 6px;border:1px solid #e3e8ef;border-radius:10px;color:inherit;text-decoration:none;background:#fff}
.poa-trim-c b{font-size:1.4rem;line-height:1.1;color:#16324f}.poa-trim-c span{font-size:11px;font-weight:600;color:#2fa4e7}.poa-trim-c small{font-size:10.5px;color:#7b8794}
.poa-trim-c:hover{border-color:#9fb3c8}.poa-trim-c.on{border-color:#2fa4e7;box-shadow:0 0 0 2px rgba(47,164,231,.18)}
.poa-q{display:inline-flex;gap:2px;margin-right:6px}.poa-q i{font-style:normal;font-size:9.5px;font-weight:700;padding:1px 4px;border-radius:4px;background:#eef2f6;color:#a3afbc}
.poa-q i.on{background:#2fa4e7;color:#fff}.poa-q.c i.on{background:#00796b}
.poa-partida{max-width:220px}
.poa-sel{max-width:200px}
.poa-valor{text-align:right;margin-left:auto}.poa-valor small{display:block;font-size:11px;color:#7b8794}.poa-valor b{font-size:1.5rem;color:#00796b;white-space:nowrap}
.poa-cascada{list-style:none;padding:0;margin:0;border-left:2px solid #d6e6f3;margin-left:6px}
.poa-cascada li{position:relative;padding:4px 0 8px 16px;font-size:13px;line-height:1.35}
.poa-cascada li::before{content:'';position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #2fa4e7}
.poa-cascada li span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#7b8794;font-weight:600}
.poa-facts{grid-template-columns:1fr 1fr}
.poa-prog{display:flex;align-items:center;gap:4px;margin-bottom:6px}.poa-prog .lbl{font-size:11px;color:#7b8794;width:92px}
.poa-prog i{font-style:normal;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#eef2f6;color:#a3afbc}.poa-prog i.on{background:#2fa4e7;color:#fff}.poa-prog.c i.on{background:#00796b}
.poa-chk{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #d6dee7;border-radius:8px;font-size:12.5px;cursor:pointer;margin:0}
.poa-chk:has(input:checked){background:#e7f3fc;border-color:#2fa4e7}
.poa-avance{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}.poa-avance .small{grid-column:1/-1}
.poa-subform{display:grid;grid-template-columns:1fr 130px auto auto;gap:8px;align-items:center}
@media (max-width:767.98px){.poa-subform{grid-template-columns:1fr 1fr}.poa-subform textarea{grid-column:1/-1}.poa-trim{grid-template-columns:repeat(2,1fr)}.poa-facts{grid-template-columns:1fr}}
.grid-toolbar .poa-sel + .ts-wrapper,.grid-toolbar .ts-wrapper.poa-sel{min-width:210px;max-width:260px}

/* mapa del recorrido: cuadrícula que se acomoda en filas (antes una sola fila horizontal) */
.ruta-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:14px 10px 6px}
.ruta-sec small{text-transform:none;letter-spacing:0;font-weight:500}
.ruta-cargos{padding:0 0 4px}
.ruta-cb{display:grid;grid-template-columns:minmax(160px,34%) 1fr auto;gap:10px;align-items:center;padding:3px 10px;font-size:12px}
.ruta-cb .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#17384f}.ruta-cb .n small{display:block;font-weight:400;color:var(--ink-3);font-size:10.5px;overflow:hidden;text-overflow:ellipsis}
.ruta-cb .b{height:9px;background:#eef2f6;border-radius:99px;overflow:hidden}.ruta-cb .b i{display:block;height:100%;border-radius:99px}
.ruta-cb .b i.ok{background:#26a69a}.ruta-cb .b i.med{background:#e0a100}.ruta-cb .b i.alto{background:#d9534f}
.ruta-cb .v{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.ruta-cb .v small{color:var(--ink-3);font-weight:400}
.ruta-grid{list-style:none;margin:0;padding:0 6px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;align-items:start;text-align:left}
.ruta-paso{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(16,42,67,.05);min-width:0}
.ruta-paso.vigente{border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.ruta-paso.primero{border-color:var(--ok-line)}
.ruta-paso.primero .ruta-num{background:var(--ok)}
.ruta-paso .ruta-cargo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ruta-paso .ruta-asunto{flex:0 0 auto;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(12px * 1.4 * 2 + 12px)}
.ruta-paso{text-align:left}
.ruta-paso .ruta-area{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ruta-dur{font-weight:700;white-space:nowrap;padding:1px 6px;border-radius:999px;font-variant-numeric:tabular-nums}
.ruta-dur.ok{color:#00695c;background:#e0f2f1}.ruta-dur.med{color:#8a5a00;background:#fff3cd}.ruta-dur.alto{color:#a32020;background:#fde2e2}.ruta-dur.curso{color:#0b5c8c;background:#e1f1fb}
.ruta-dur i{font-size:9px}

/* enviar trámite: buscador de cargo con área, dirección y quién lo ocupa */
.env-op{padding:2px 0;line-height:1.25}.env-op .c{font-weight:600;color:#17384f}.env-op .s{font-size:11.5px;color:var(--ink-3)}.env-op .p{font-size:11px;color:#2b6a95}.env-op .p i{font-size:9px}
.env-destino{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:10px;padding:10px 12px;border:1px solid #cfe3f2;background:#f3f9fd;border-radius:10px}
.env-destino span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600}.env-destino b{font-size:12.5px;color:#17384f}
@media (max-width:767.98px){.env-destino{grid-template-columns:1fr}}
.ts-dropdown .active .env-op .c,.ts-dropdown .active .env-op .s,.ts-dropdown .active .env-op .p{color:#fff}
.ruta-tabs{padding:0 6px}.ruta-tabs .nav-link{font-size:12.5px}
.ruta-paso .ruta-foot{flex-wrap:wrap;align-items:center;row-gap:4px}.ruta-paso .ruta-foot>span:first-child{white-space:nowrap}

/* ===== CONTROL PREVIO ===== */
.cp-cab{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line)}
.cp-avance{display:grid;grid-template-columns:auto minmax(160px,260px);gap:6px 12px;align-items:center}.cp-avance-n{font-size:13px}.cp-chips{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}
.cp-acciones{display:flex;gap:8px;flex-wrap:wrap}
.cp-revisado{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#00695c;background:#e0f2f1;border:1px solid #b2dfdb;border-radius:999px;padding:2px 9px}
.cp-revisado-btn{background:#e0f2f1;border-color:#b2dfdb;color:#00695c;cursor:default}
tr.cp-fila-ok td{background:#f2faf9!important}
.cp-th-rev{min-width:140px}
.cp-incs{display:flex;flex-direction:column;gap:12px}
/* tarjeta de incidencia: color = estado (icono + pastilla), cuerpo legible, pie de acciones */
.cp-inc{--cp-c:#5b6b7a;--cp-bg:#eef2f6;display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 12px;border:1px solid var(--line);border-radius:12px;padding:14px 16px 0;background:#fff;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.cp-inc.cp-abierta{--cp-c:#b42318;--cp-bg:#fdecea}.cp-inc.cp-resuelta{--cp-c:#8a5a00;--cp-bg:#fff4d6}.cp-inc.cp-cerrada{--cp-c:#00695c;--cp-bg:#e0f2f1}
.cp-inc-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--cp-bg);color:var(--cp-c);font-size:15px}
.cp-inc-cuerpo{min-width:0;padding-bottom:12px}
.cp-inc-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:34px}
.cp-est{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--cp-bg,#eef2f6);color:var(--cp-c,var(--ink-2))}
.cp-inc-n{font-size:13px;font-weight:700;color:var(--ink)}
.cp-inc-f{margin-left:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.cp-inc-t{display:flex;align-items:baseline;gap:8px;min-width:0;margin-top:2px;text-decoration:none;color:var(--ink)}
.cp-inc-t:hover .cp-obj{text-decoration:underline;text-underline-offset:3px}
.cp-cod{flex:none;font-weight:700;color:#1f6fa8;font-variant-numeric:tabular-nums}.cp-cod i{color:#e0a100;margin-right:3px}
.cp-obj{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink-2)}
.cp-desc{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:var(--surf-1);border:1px solid var(--line-soft);font-size:14px;line-height:1.5;color:var(--ink);white-space:pre-wrap;max-width:80ch}
.cp-meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin:10px 0 0;font-size:12.5px}
.cp-meta>div{display:flex;gap:6px;align-items:baseline;min-width:0}
.cp-meta dt{font-weight:400;color:var(--ink-3)}.cp-meta dd{margin:0;font-weight:600;color:var(--ink)}.cp-meta dd small{font-weight:400;color:var(--ink-3)}
.cp-meta dd i{color:#2b6a95}
.cp-resp{margin-top:10px;padding:9px 12px;border-radius:8px;background:#f2faf9;border:1px solid #c4e7e3;font-size:13px;white-space:pre-wrap}
.cp-resp-h{font-weight:700;color:#00695c;font-size:12px;margin-bottom:2px;white-space:normal}.cp-resp-h small{font-weight:400;color:var(--ink-3);margin-left:4px}
.cp-movs{list-style:none;margin:10px 0 0;padding:0 0 0 12px;border-left:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.cp-movs li{margin:4px 0;position:relative}.cp-movs li::before{content:"";position:absolute;left:-16px;top:6px;width:7px;height:7px;border-radius:50%;background:#c4cfda}
.cp-movs li small{color:var(--ink-3);margin-left:4px;font-variant-numeric:tabular-nums}.cp-movs li div{white-space:pre-wrap;color:var(--ink);margin-top:1px}
.cp-movs li.m-responde b{color:#00695c}.cp-movs li.m-responde::before{background:#26a69a}.cp-movs li.m-reabre b{color:#b42318}.cp-movs li.m-reabre::before{background:#d9534f}.cp-movs li.m-cierra::before{background:#00695c}
.cp-inc-pie{grid-column:1/-1;margin:0 -16px;padding:10px 16px 12px;background:var(--surf-1);border-top:1px solid var(--line-soft);border-radius:0 0 12px 12px;display:flex;flex-direction:column;gap:8px}
.cp-resolver{display:flex;flex-direction:column;gap:8px}.cp-resolver textarea{resize:vertical;min-height:58px;background:#fff}
.cp-pie-btns{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.cp-pie-nota{margin-right:auto;font-size:12.5px;color:var(--ink-2)}
.cp-inc.cp-cerrada .cp-desc{color:var(--ink-2)}
@media (max-width:575.98px){
  .cp-inc{grid-template-columns:minmax(0,1fr);padding:12px 12px 0}.cp-inc-ico{display:none}
  .cp-inc-pie{margin:0 -12px;padding:10px 12px 12px}.cp-inc-f{margin-left:0;width:100%}
  .cp-inc-t{flex-wrap:wrap;gap:2px 8px}.cp-obj{white-space:normal}
  .cp-pie-btns>*{flex:1 1 auto}.cp-pie-btns .btn{width:100%}.cp-pie-nota{flex-basis:100%}
}
.cp-form{display:flex;gap:8px;align-items:flex-start;width:100%}.cp-form textarea{flex:1}
/* adjuntar el documento corregido desde la incidencia */
.cp-adjunto{position:relative;margin-right:auto;display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 10px;border:1px dashed var(--line-strong);border-radius:6px;background:#fff;font-size:12.5px;color:var(--ink-2);cursor:pointer}
.cp-adjunto span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-adjunto i{color:#2b6a95}
.cp-adjunto:hover{border-color:#2b6a95;color:var(--ink)}.cp-adjunto:focus-within{outline:2px solid #2fa4e7;outline-offset:2px}
.cp-adjunto.con{border-style:solid;border-color:#26a69a;background:#f2faf9;color:#00695c}.cp-adjunto.con i{color:#00695c}
.cp-adjunto input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
/* visor de control previo: estado del envío */
.cp-ficha{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:12px 18px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.cp-ficha-cod{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px}.cp-ficha-cod b{color:#1f6fa8;font-variant-numeric:tabular-nums}
.cp-ficha-lbl{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.cp-ficha-obj{font-size:17px;font-weight:700;line-height:1.35;color:var(--ink);margin:8px 0 0;text-wrap:balance}
.cp-ficha-org{font-size:12.5px;color:var(--ink-2);margin-top:6px}.cp-ficha-org i{color:var(--ink-3);margin-right:3px}.cp-ficha-org .sep{margin:0 6px;color:var(--ink-3)}
.cp-estado{border-radius:10px;padding:10px 14px;border:1px solid var(--line);background:var(--surf-1)}
.cp-estado-t{font-weight:700;font-size:13.5px;display:flex;gap:7px;align-items:center}
.cp-estado-d{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.45}
.cp-estado-rev{background:#fff7e6;border-color:#f3d39a}.cp-estado-rev .cp-estado-t{color:#8a5a00}
.cp-estado-lib{background:#e9f6f4;border-color:#b2dfdb}.cp-estado-lib .cp-estado-t{color:#00695c}
.cp-estado-no .cp-estado-t{color:var(--ink-2)}
.cp-est-mini{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;white-space:nowrap}
.cp-m-rev{background:#fff4d6;color:#8a5a00}.cp-m-lib{background:#e0f2f1;color:#00695c}
/* en Procesos, lo de control previo es discreto: un chip y el aviso de congelado */
.chip.chip-cp{color:#00695c;border-color:#b2dfdb;background:#e9f6f4;text-decoration:none}a.chip.chip-cp:hover{background:#d5efec}
.solo-lectura.cp-congelado{background:#fff7e6;border-color:#f3d39a;color:#6b4500;align-items:flex-start}.solo-lectura.cp-congelado>i{margin-top:3px}.solo-lectura.cp-congelado a{margin-left:6px}
.solo-lectura.cp-congelado>i,.solo-lectura.cp-congelado i.fa-lock{color:#b7791f}.solo-lectura.cp-congelado a{color:#6b4500;font-weight:600}
@media (max-width:767.98px){.cp-ficha{grid-template-columns:minmax(0,1fr)}}
@media (max-width:575.98px){.cp-adjunto{width:100%;margin-right:0}}
/* documentos por etapa en control previo (mismas pestañas que Procesos) */
.cp-stages{margin:6px 12px 0}
.cp-docs tr.cp-oculta{display:none!important}
.cp-stages .cp-vacia{cursor:default;opacity:.55;pointer-events:none}
.cp-stages .stage-todas{flex:0 0 auto;min-width:130px}
.cp-docs .cp-grupo td{background:var(--surf-1);font-size:12px;font-weight:700;color:var(--ink-2);padding:6px 12px;border-bottom:1px solid var(--line-soft)}
.cp-docs .cp-grupo-etapa td{background:#eef4f9;color:#1f4d6f;text-transform:uppercase;letter-spacing:.03em}
.cp-docs .cp-grupo-pago td{padding-left:18px}.cp-docs .cp-grupo-pago i{color:#2b6a95;margin-right:4px}
.cp-grupo-n{font-weight:400;color:var(--ink-3);margin-left:6px;text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}
.cp-com{border-bottom:1px solid var(--line-soft);padding:8px 0}.cp-com-h{display:flex;gap:8px;align-items:center;font-size:12.5px}.cp-com-t{font-size:13px;white-space:pre-wrap;margin-top:2px}
.stage-cp .stage-num{background:#e0f2f1;color:#00695c}
/* ===== Procesos · Cambiar estado: color = estado ===== */
.est-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;background:#eef2f6;color:#51606e;letter-spacing:.02em}
.est-borrador{--e:#64748b;--eb:#eef2f6}.est-precontrato{--e:#1f6fa8;--eb:#e6f1fa}.est-contractual{--e:#5b4bb7;--eb:#efecfb}
.est-ejecucion{--e:#9a5b00;--eb:#fff3d6}.est-cierre{--e:#00695c;--eb:#e0f2f1}.est-anulado{--e:#b42318;--eb:#fdecea}.est-x{--e:#51606e;--eb:#eef2f6}
.est-pill.est-borrador,.est-pill.est-precontrato,.est-pill.est-contractual,.est-pill.est-ejecucion,.est-pill.est-cierre,.est-pill.est-anulado{background:var(--eb);color:var(--e)}
.est-flecha{color:var(--ink-3);font-size:11px;margin:0 4px}
.est-tabla .est-obj{min-width:220px}.est-obs{min-width:200px;max-width:420px;white-space:pre-wrap}.est-obj-min{white-space:normal;max-width:220px}
.est-fecha-c{font-variant-numeric:tabular-nums}
.est-filtro{width:auto;min-width:170px}
.est-filtros .est-fecha{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}.est-filtros .est-fecha input{width:auto}
.est-filtros .est-resp{width:170px}
/* modal */
.est-actual{font-size:13px;color:var(--ink-2)}
.est-opciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.est-op{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}
.est-op input{position:absolute;opacity:0;pointer-events:none}
.est-op-n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--eb,#eef2f6);color:var(--e,#51606e)}
.est-op-t{display:flex;flex-direction:column;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25}.est-op-t small{font-weight:400;font-size:11px;color:var(--ink-3)}
.est-op:hover{border-color:var(--e,#9aa7b4)}
.est-op:has(input:checked){border-color:var(--e);background:var(--eb);box-shadow:0 0 0 1px var(--e) inset}
.est-op:has(input:focus-visible){outline:2px solid #2fa4e7;outline-offset:2px}
.est-op.es-actual{cursor:not-allowed;opacity:.5;border-style:dashed}.est-op.es-actual .est-op-t small::after{content:" · actual"}
.est-aviso{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:8px;font-size:12.5px;line-height:1.45}
.est-aviso i{margin-top:3px}
.est-aviso-ok{background:#e9f6f4;border:1px solid #b2dfdb;color:#00695c}
.est-aviso-no{background:#fdecea;border:1px solid #f5c2bd;color:#8a1f17}
.est-hist{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:10px;font-size:12px}
.est-hist-t{font-weight:700;color:var(--ink-2);margin-bottom:4px}.est-hist ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
@media (max-width:575.98px){.est-opciones{grid-template-columns:1fr 1fr}.est-filtros .est-resp{width:100%}}
/* ===== TTHH · Permisos con flujo, vacaciones y contratos laborales ===== */
.perm-estado{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;background:#eef2f6;color:#51606e}
.perm-solicitado{background:#e6f1fa;color:#1f5f8f}.perm-en_aprobacion{background:#fff3d6;color:#8a5a00}.perm-aprobado{background:#e0f2f1;color:#00695c}
.perm-rechazado{background:#fdecea;color:#b42318}.perm-anulado{background:#eef2f6;color:#64748b;text-decoration:line-through}
.perm-cab{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.perm-cab-saldo{min-width:0;flex:1 1 320px}.perm-cab-lbl{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.perm-cab-n{font-size:28px;font-weight:800;color:#00695c;line-height:1.1;font-variant-numeric:tabular-nums}.perm-cab-n small{font-size:14px;font-weight:600;color:var(--ink-2)}
.perm-cab-d{font-size:12.5px;color:var(--ink-2);margin-top:2px;max-width:90ch}
.perm-cab-acc{display:flex;gap:8px;flex-wrap:wrap}
/* formulario */
.sol-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.sol-form .panel-title{border-bottom:1px solid var(--line-soft)}
.sol-pie{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line-soft);background:var(--surf-1);border-radius:0 0 10px 10px}
.sol-reglas,.sol-instr{margin-top:6px;font-size:12px;color:var(--ink-2);background:var(--surf-1);border:1px solid var(--line-soft);border-radius:8px;padding:6px 10px}
.sol-instr{background:#fff7e6;border-color:#f3d39a;color:#6b4500;margin-bottom:6px}
.sol-directo{background:var(--surf-1);border:1px dashed var(--line-strong);border-radius:8px;padding:8px 10px 8px 34px}
.sol-calc{display:flex;flex-direction:column;gap:12px;position:sticky;top:70px}
.sol-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.sol-card-t{font-size:12px;font-weight:700;color:var(--ink-2);padding:8px 12px;border-bottom:1px solid var(--line-soft);background:var(--surf-1)}.sol-card-t i{color:#2b6a95;margin-right:4px}
.sol-card-b{padding:10px 12px;font-size:13px}
.sol-card-ok{border-color:#b2dfdb}.sol-card-ok .sol-card-t{background:#e9f6f4}.sol-card-mal{border-color:#f5c2bd}.sol-card-mal .sol-card-t{background:#fdecea}
.sol-kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:2px 0}.sol-kv span{color:var(--ink-3)}.sol-kv b{text-align:right}
.sol-kv-t{border-top:1px solid var(--line-soft);margin-top:4px;padding-top:6px;font-size:13.5px}
.sol-saldo{display:grid;grid-template-columns:auto 1fr;gap:0 10px;align-items:baseline;margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft)}
.sol-saldo span{color:var(--ink-3);font-size:12px}.sol-saldo b{font-size:20px;color:#00695c;text-align:right;font-variant-numeric:tabular-nums}.sol-saldo small{grid-column:1/-1;color:var(--ink-3);font-size:11.5px}
.sol-warn{margin-top:6px;font-size:12px;padding:6px 9px;border-radius:7px;background:#fff7e6;border:1px solid #f3d39a;color:#6b4500;line-height:1.4}
.sol-card-mal .sol-warn{background:#fdecea;border-color:#f5c2bd;color:#8a1f17}
.sol-total{font-size:26px;font-weight:800;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}.sol-total small{font-size:13px;font-weight:600;color:var(--ink-2)}
.sol-desglose{margin:0 0 8px;padding-left:18px;font-size:12px;color:var(--ink-2)}.sol-desglose li{margin:2px 0}
.sol-hor-n{font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:4px}
.sol-hor{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:12px;font-variant-numeric:tabular-nums}.sol-hor li{display:flex;gap:8px}.sol-hor span{width:34px;color:var(--ink-3);font-weight:600}.sol-hor small{margin-left:auto;color:var(--ink-3)}
/* ficha */
.perm-ficha{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:12px 18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.perm-ficha-cod{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.perm-ficha-cod b{color:#1f6fa8}
.perm-ficha-per{font-size:18px;font-weight:700;margin:8px 0 0;color:var(--ink)}.perm-ficha-per small{font-size:12.5px;font-weight:400;color:var(--ink-3);margin-left:6px}
.perm-ficha-fechas{font-size:13px;color:var(--ink-2);margin-top:4px}.perm-ficha-fechas i{color:var(--ink-3);margin-right:3px}
.perm-ficha-mot{margin:10px 0 0;padding:9px 12px;border-radius:8px;background:var(--surf-1);border:1px solid var(--line-soft);font-size:13.5px;white-space:pre-wrap;max-width:80ch}
.perm-ficha-num{border-radius:10px;padding:10px 14px;background:var(--surf-1);border:1px solid var(--line-soft);align-self:start}
.perm-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;align-items:start}
.perm-pasos{list-style:none;margin:0;padding:12px 16px;display:grid;gap:0}
.perm-paso{display:flex;gap:10px;align-items:flex-start;position:relative;padding-bottom:14px}
.perm-paso:not(:last-child)::after{content:"";position:absolute;left:13px;top:28px;bottom:2px;width:2px;background:var(--line)}
.perm-paso.done:not(:last-child)::after{background:#80cbc4}
.perm-paso-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:#eef2f6;color:var(--ink-3);border:2px solid #fff;box-shadow:0 0 0 1px var(--line);position:relative;z-index:1}
.perm-paso b{display:block;font-size:13px}.perm-paso small{display:block;font-size:12px;color:var(--ink-3)}
.perm-paso.done .perm-paso-n{background:#00695c;color:#fff;box-shadow:0 0 0 1px #00695c}
.perm-paso.now .perm-paso-n{background:#fff3d6;color:#8a5a00;box-shadow:0 0 0 2px #e0a100}.perm-paso.now b{color:#8a5a00}
.perm-paso.mal .perm-paso-n{background:#b42318;color:#fff;box-shadow:0 0 0 1px #b42318}
.perm-paso.skip{opacity:.5}
.perm-resolver{margin:0 16px 16px;padding:12px;border-radius:10px;background:#fff7e6;border:1px solid #f3d39a}
.perm-resolver textarea{background:#fff}
.perm-resolver-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.perm-bit{list-style:none;margin:0;padding:10px 16px 14px;display:grid;gap:8px;font-size:12.5px}
.perm-bit li{display:flex;gap:9px;align-items:flex-start}.perm-bit li>i{margin-top:3px;width:14px;text-align:center;color:var(--ink-3)}
.perm-bit small{color:var(--ink-3);margin-left:4px}.perm-bit-obs{white-space:pre-wrap;color:var(--ink);background:var(--surf-1);border-radius:6px;padding:4px 8px;margin-top:3px}
.perm-bit-aprueba>i{color:#00695c!important}.perm-bit-rechaza>i,.perm-bit-anula>i{color:#b42318!important}
.perm-adj{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;gap:6px}
/* flujos */
.flujo-lista{display:grid;gap:12px}
.flujo-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.flujo-card header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.flujo-off{opacity:.65}
.flujo-pasos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:stretch}
.flujo-pasos li{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surf-1);font-size:12.5px;position:relative}
.flujo-pasos li:not(:last-child)::after{content:"\f054";font-family:"Font Awesome 6 Free";font-weight:900;font-size:9px;color:var(--ink-3);position:absolute;right:-9px;top:50%;transform:translateY(-50%)}
.flujo-pasos li b{display:block}.flujo-pasos li small{display:block;color:var(--ink-3);font-size:11px}
.flujo-p0{background:#fff!important;color:var(--ink-3)}.flujo-fin{background:#e9f6f4!important;border-color:#b2dfdb!important;color:#00695c;font-weight:700}
.flujo-n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#efecfb;color:#5b4bb7;font-size:11px;font-weight:700}
.flujo-edit{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.flujo-edit-p{display:grid;grid-template-columns:22px minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1fr) auto;gap:6px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--surf-1)}
.flujo-edit-p [hidden]{display:none!important}
.flujo-edit-acc{display:flex;gap:3px}
/* kardex */
.vac-tipo{display:inline-flex;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:#eef2f6;color:#51606e}
.vac-ini{background:#e6f1fa;color:#1f5f8f}.vac-acr{background:#e0f2f1;color:#00695c}.vac-des{background:#fdecea;color:#b42318}.vac-rev{background:#efecfb;color:#5b4bb7}.vac-aju{background:#fff3d6;color:#8a5a00}
@media (max-width:991.98px){.sol-grid,.perm-cols{grid-template-columns:minmax(0,1fr)}.sol-calc{position:static}}
@media (max-width:767.98px){.perm-ficha{grid-template-columns:minmax(0,1fr)}.flujo-edit-p{grid-template-columns:22px minmax(0,1fr)}.flujo-edit-p>*:not(.flujo-n){grid-column:2}.perm-adj{grid-template-columns:1fr}}
/* ===== formulario de permiso (componentes propios) ===== */
.pf-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.pf-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px rgba(16,42,67,.05)}
.pf-h{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--ink);margin:0 0 12px}
.pf-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e6f1fa;color:#1f5f8f;font-size:12px;font-weight:800;flex:none}
.pf-persona{display:flex;gap:14px;align-items:center}
.pf-avatar{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#2fa4e7,#1f5f8f);color:#fff;font-weight:800;font-size:18px;letter-spacing:.02em}
.pf-persona-t{min-width:0;flex:1}.pf-persona-n{font-size:17px;font-weight:700;color:var(--ink);line-height:1.25}
.pf-persona-d{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pf-b{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:#eef2f6;color:#51606e;white-space:nowrap}
.pf-b-vac{background:#e0f2f1;color:#00695c}.pf-b-reg{background:#efecfb;color:#5b4bb7}.pf-b-req{background:#fdecea;color:#b42318}
.pf-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pf-cat{border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;letter-spacing:.02em}
.pf-cat:hover{border-color:#2fa4e7;color:#1f5f8f}.pf-cat.on{background:#1f5f8f;border-color:#1f5f8f;color:#fff}
.pf-tipos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.pf-tipo{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s;overflow:hidden}
.pf-tipo input{position:absolute;opacity:0;pointer-events:none}
.pf-tipo-n{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3;display:flex;gap:7px;align-items:baseline}.pf-tipo-n::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--c);transform:translateY(-1px)}
.pf-tipo-b{display:flex;flex-wrap:wrap;gap:4px}
.pf-tipo:hover{border-color:#9cc9e8}
.pf-tipo:has(input:checked){border-color:#1f5f8f;background:#f3f9fd;box-shadow:0 0 0 1px #1f5f8f inset}
.pf-tipo:has(input:focus-visible){outline:2px solid #2fa4e7;outline-offset:2px}
.pf-modo{display:inline-flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:var(--surf-1);margin-bottom:12px}
.pf-modo label{position:relative;cursor:pointer}.pf-modo input{position:absolute;opacity:0;pointer-events:none}
.pf-modo span{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:7px;font-size:13px;font-weight:600;color:var(--ink-2)}
.pf-modo input:checked+span{background:#fff;color:#1f5f8f;box-shadow:0 1px 2px rgba(16,42,67,.12)}
.pf-modo input:disabled+span{opacity:.4;cursor:not-allowed}.pf-modo input:focus-visible+span{outline:2px solid #2fa4e7}
.pf-rango{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.pf-rango label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--ink-2)}.pf-rango input{min-width:170px}
.pf-rango-f{color:var(--ink-3);margin-bottom:12px}
.pf-dias{margin-top:12px}.pf-dias-h{font-size:12.5px;color:var(--ink-2);margin-bottom:6px}
.pf-dias-l{display:flex;flex-wrap:wrap;gap:5px}
.pf-d{display:flex;flex-direction:column;align-items:center;min-width:46px;padding:5px 4px;border-radius:8px;border:1px solid var(--line);font-variant-numeric:tabular-nums;line-height:1.15}
.pf-d small{font-size:10px;color:var(--ink-3);text-transform:uppercase;font-weight:700}.pf-d b{font-size:15px}.pf-d em{font-style:normal;font-size:10px;color:var(--ink-3)}
.pf-d.lab{background:#e6f1fa;border-color:#b9d9ef}.pf-d.lab b{color:#1f5f8f}
.pf-d.des{background:var(--surf-1);opacity:.7}.pf-d.fer{background:#fff3d6;border-color:#f3d39a}.pf-d.fer em{color:#8a5a00;font-weight:700}
.pf-d.mas{justify-content:center;font-weight:700;color:var(--ink-3)}
.pf-jornada{margin-top:12px}.pf-jor-h{font-size:12.5px;color:var(--ink-2);margin-bottom:8px}
.pf-barra{position:relative;height:16px;border-radius:999px;background:#e6f1fa;border:1px solid #b9d9ef;overflow:hidden}
.pf-alm{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,#f3d39a 0 4px,#fff3d6 4px 8px)}
.pf-sel{position:absolute;top:0;bottom:0;background:#1f5f8f;border-radius:999px;transition:left .15s ease-out,width .15s ease-out}
.pf-barra-e{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}
.pf-nojornada{padding:10px 12px;border-radius:8px;background:var(--surf-1);border:1px dashed var(--line-strong);font-size:13px;color:var(--ink-2)}
.pf-horas{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}
.pf-horas label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--ink-2)}.pf-horas .cs{min-width:120px}.pf-horas select{min-width:120px;font-variant-numeric:tabular-nums}
.pf-dur{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--ink-2)}.pf-dur b{font-size:18px;color:#1f5f8f;line-height:38px;white-space:nowrap}.pf-dur b small{font-size:12px;font-weight:600;color:var(--ink-2)}
.pf-atajos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.pf-atajo{border:1px solid var(--line);background:#fff;border-radius:999px;font-size:12px;padding:3px 11px;color:var(--ink-2)}.pf-atajo:hover{border-color:#2fa4e7;color:#1f5f8f}
.pf-envio{position:sticky;bottom:8px;z-index:5;border-color:var(--line-strong);box-shadow:0 6px 18px -10px rgba(16,42,67,.35)}
.pf-checks{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:3px 14px;font-size:12.5px}
.pf-checks li.ok{color:#00695c}.pf-checks li.no{color:#b42318;font-weight:600}.pf-checks i{width:14px}
.pf-envio-b{display:flex;justify-content:flex-end;gap:8px}
.pf-saldo{background:linear-gradient(135deg,#00695c,#009688);color:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 4px 14px -8px rgba(0,105,92,.6)}
.pf-saldo-l{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.85}
.pf-saldo-n{font-size:32px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.pf-saldo-n small{font-size:14px;font-weight:600;opacity:.85}
.pf-saldo-d{font-size:12px;opacity:.9;margin-top:2px}
.pf-reglas{list-style:none;margin:0;display:grid;gap:5px;font-size:12.5px}.pf-reglas i{width:16px;color:#2b6a95}
.pf-flujo{list-style:none;margin:0;display:grid;gap:8px}.pf-flujo li{display:flex;gap:8px;align-items:center}.pf-flujo b{display:block;font-size:12.5px}.pf-flujo small{display:block;font-size:11px;color:var(--ink-3)}
@media (max-width:575.98px){.pf-tipos{grid-template-columns:1fr}.pf-rango input{min-width:0;width:100%}.pf-rango label{flex:1}.pf-rango-f{display:none}.pf-checks{grid-template-columns:1fr}}
@media (max-width:767.98px){.pf-envio{bottom:calc(var(--bn-h, 50px) + env(safe-area-inset-bottom, 0px) + 6px)}}
/* ===== calendario propio del formulario de permiso ===== */
.pf-cal-wrap{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:14px;align-items:start}
.pf-cal{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;transition:opacity .15s}.pf-cal.cargando{opacity:.55}
.pf-cal-h{display:flex;align-items:center;gap:6px;margin-bottom:8px}.pf-cal-h b{flex:1;font-size:14px;color:var(--ink)}
.pf-cal-h b{order:0}.pf-cal-nav,.pf-cal-hoy{border:1px solid var(--line);background:#fff;border-radius:8px;height:30px;min-width:30px;font-size:12px;color:var(--ink-2)}
.pf-cal-hoy{padding:0 10px;font-weight:600}.pf-cal-nav:hover,.pf-cal-hoy:hover{border-color:#2fa4e7;color:#1f5f8f}
.pf-cal-h .pf-cal-nav:first-child{order:-1}
.pf-cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.pf-cal-dw{text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;padding:2px 0 4px}
.pf-c{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;height:50px;border:1px solid transparent;border-radius:9px;background:#fff;color:var(--ink);font-variant-numeric:tabular-nums;padding:0;transition:background .1s,border-color .1s}
.pf-c b{font-size:14px;font-weight:700;line-height:1}.pf-c small{font-size:9.5px;color:var(--ink-3);line-height:1.1;white-space:nowrap}
.pf-c.lab{background:#f3f9fd;border-color:#d6e9f6}.pf-c.lab small{color:#2b6a95}
.pf-c.des{background:transparent;color:var(--ink-3)}.pf-c.des b{font-weight:500}
.pf-c.fer{background:#fff7e6;border-color:#f3d39a}.pf-c.fer small{color:#8a5a00;font-weight:700}
.pf-c.perm{background:repeating-linear-gradient(135deg,#efecfb 0 5px,#e3ddf8 5px 10px);border-color:#c9bff0;cursor:not-allowed}.pf-c.perm small{color:#5b4bb7;font-weight:700}
.pf-c.perm.pend{background:repeating-linear-gradient(135deg,#fff7e6 0 5px,#fdeccb 5px 10px);border-color:#f3d39a}.pf-c.perm.pend small{color:#8a5a00}
.pf-c.fuera{opacity:.38}.pf-c.pasado:not(.en){opacity:.6}
.pf-c.hoy b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:#2fa4e7}
.pf-c:hover:not(.perm){border-color:#2fa4e7}
.pf-c:focus-visible{outline:2px solid #2fa4e7;outline-offset:1px;z-index:1}
.pf-c.en,.pf-c.prev{background:#cfe4f4;border-color:#9cc9e8}.pf-c.prev{background:#e3f0f9;border-style:dashed}
.pf-c.en small{color:#1f5f8f}
.pf-c.ini,.pf-c.fin{background:#1f5f8f;border-color:#1f5f8f;color:#fff}.pf-c.ini small,.pf-c.fin small{color:#d6e9f6}
.pf-c.en.des:not(.ini):not(.fin){background:#e8f1f8}
.pf-cal-lado{display:flex;flex-direction:column;gap:12px}
.pf-elegido{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:baseline;padding:10px 12px;border-radius:10px;background:var(--surf-1);border:1px solid var(--line-soft);font-size:13px}
.pf-elegido>.text-muted{grid-column:1/-1;font-size:12.5px}
.pf-el-l{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase}.pf-elegido b{text-transform:capitalize}
.pf-el-n{grid-column:1/-1;font-size:12px;color:var(--ink-2);margin-top:2px}
.pf-el-tip{grid-column:1/-1;font-size:12px;color:#1f5f8f;font-weight:600}
.pf-el-x{grid-column:1/-1;justify-self:start;border:0;background:none;padding:0;font-size:12px;color:#2b6a95;text-decoration:underline;text-underline-offset:2px}
.pf-ley{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:11.5px;color:var(--ink-2)}
.pf-ley li{display:flex;align-items:center;gap:7px}.pf-ley-c{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}
.pf-ley-c.lab{background:#f3f9fd;border-color:#d6e9f6}.pf-ley-c.des{background:#fff}.pf-ley-c.fer{background:#fff7e6;border-color:#f3d39a}.pf-ley-c.perm{background:repeating-linear-gradient(135deg,#efecfb 0 3px,#e3ddf8 3px 6px);border-color:#c9bff0}
.pf-dias-h{font-size:12.5px;color:var(--ink-2);margin-top:10px}.pf-dias-h i{color:#2b6a95;margin-right:3px}
@media (max-width:767.98px){.pf-cal-wrap{grid-template-columns:minmax(0,1fr)}.pf-cal-lado{order:-1}.pf-ley{grid-template-columns:1fr 1fr}.pf-c{height:46px}}
.pf-tipo-ley{font-size:11px;color:var(--ink-3)}.pf-tipo-ley i{margin-right:3px}
.pf-reglas .pf-regla-desc{color:var(--ink);background:var(--surf-1);border-radius:7px;padding:6px 8px;line-height:1.4}
.pf-reglas .pf-regla-ley{color:var(--ink-3);font-size:11.5px}
.pf-checks-n{display:none;color:var(--ink-2)}
@media (max-width:767.98px){.pf-checks li.ok{display:none}.pf-checks-n{display:list-item;display:flex;gap:4px;align-items:center}}
/* ===== CSelect: select propio ===== */
select.cs-nativo{position:absolute!important;left:0;top:0;width:1px!important;height:1px!important;min-width:0!important;padding:0!important;border:0!important;margin:0!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0);overflow:hidden}
.cs{position:relative;min-width:0}.cs[hidden]{display:none!important}
.cs-btn{width:100%;display:flex;align-items:center;gap:8px;min-height:38px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink);text-align:left;font-size:14px;transition:border-color .12s,box-shadow .12s}
.cs-btn:hover:not(:disabled){border-color:#2fa4e7}
.cs-btn:focus-visible,.cs.abierto .cs-btn{outline:none;border-color:#2fa4e7;box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.cs-btn:disabled{background:var(--surf-1);color:var(--ink-3);cursor:not-allowed}
.cs-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-ph{color:var(--ink-3)}
.cs-flecha{font-size:11px;color:var(--ink-3);transition:transform .15s}.cs.abierto .cs-flecha{transform:rotate(180deg)}
.cs-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:1050;background:#fff;border:1px solid var(--line-strong);border-radius:11px;box-shadow:0 12px 32px -12px rgba(16,42,67,.35);overflow:hidden}
.cs.arriba .cs-pop{top:auto;bottom:calc(100% + 4px)}
.cs-buscar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line-soft)}.cs-buscar i{color:var(--ink-3)}
.cs-buscar input{flex:1;border:0;outline:0;font-size:14px;min-width:0;background:transparent}
.cs-lista{max-height:300px;overflow-y:auto;padding:4px;overscroll-behavior:contain}
.cs-grupo{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:8px 10px 4px}
.cs-op{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:13.5px}
.cs-op-t{flex:1;min-width:0}.cs-op-t small{display:block;font-size:11.5px;color:var(--ink-3)}
.cs-op.act{background:#eef6fc}.cs-op.sel{background:#e6f1fa;color:#1f5f8f;font-weight:600}.cs-op.off{opacity:.45;cursor:not-allowed}
.cs-ok{color:#1f5f8f;font-size:12px}.cs-vacio{padding:14px;text-align:center;color:var(--ink-3);font-size:13px}
.cs-grande .cs-btn{min-height:52px;padding:8px 14px}.cs-grande .cs-lista{max-height:380px}
.cs-invalido .cs-btn{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,.15)}
.cs-sm .cs-btn{min-height:31px;padding:3px 10px;font-size:13px;border-radius:7px}.cs-sm .cs-op{padding:6px 9px;font-size:13px}
.cs.cs-auto{display:inline-block;width:auto;min-width:120px;vertical-align:middle}.cs-auto .cs-btn{width:auto;min-width:100%}
.cs-pop{max-width:calc(100vw - 16px)}.cs-pop .cs-lista{max-height:min(300px,45vh)}
/* tipo de permiso dentro del select */
.pf-op{display:flex;gap:9px;align-items:flex-start;min-width:0}.pf-dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:5px}
.pf-op-t{display:flex;flex-direction:column;gap:3px;min-width:0}.pf-op-t b{font-size:13.5px;line-height:1.3;white-space:normal}
.cs-btn .pf-op-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-op-b{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pf-op-ley{font-size:11px;color:var(--ink-3);font-weight:400}
/* ===== formulario en una columna ===== */
.pf-wrap{max-width:880px;margin:0 auto}
.pf-persona{flex-wrap:wrap}
.pf-saldo-mini{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;padding:8px 14px;border-radius:10px;background:#e9f6f4;border:1px solid #b2dfdb;min-width:132px}
.pf-saldo-mini b{font-size:24px;line-height:1.05;color:#00695c;font-variant-numeric:tabular-nums}.pf-saldo-mini span{font-size:11.5px;color:#00695c;font-weight:600}
.pf-saldo-mini small{font-size:11px;color:var(--ink-3)}.pf-saldo-mini.pf-saldo-tope{background:#fff7e6;border-color:#f3d39a}.pf-saldo-mini.pf-saldo-tope b,.pf-saldo-mini.pf-saldo-tope span{color:#8a5a00}
.pf-info{margin-top:10px;padding:10px 12px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft);font-size:13px}
.pf-info p{margin:0 0 8px;color:var(--ink);line-height:1.45}.pf-info-c{display:flex;flex-wrap:wrap;gap:5px}.pf-info-ley{margin-top:8px;font-size:11.5px;color:var(--ink-3)}
.pf-h-fila{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.pf-h-fila .pf-h{margin:0}
.pf-jornada-sem{font-size:12px;color:var(--ink-2)}.pf-jornada-sem i{color:#2b6a95;margin-right:3px}
.pf-modo-uno label:has(input:disabled){display:none}
#pfCalBox{margin-top:4px}
.pf-elegido{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;padding:8px 12px!important;font-size:13px}
.pf-elegido>i:first-child{color:#1f5f8f}.pf-elegido b{text-transform:capitalize}.pf-el-n{color:var(--ink-2)}
.pf-el-tip{color:#1f5f8f;font-weight:600;font-size:12px}.pf-el-x{margin-left:auto}
.pf-ley-l{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11.5px;color:var(--ink-2)}.pf-ley-l span{display:inline-flex;align-items:center;gap:5px}.pf-ley-l .pf-ley-c{display:inline-block}
.pf-horas-box{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.pf-horas .cs{min-width:120px}
.pf-adj-g{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:8px;align-items:start}
.pf-resumen{padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line-soft)}
.pf-res-n{font-size:15px;color:var(--ink)}.pf-res-n b{font-size:22px;color:#1f5f8f;font-variant-numeric:tabular-nums}.pf-res-n.mal b{color:#b42318}
.pf-res-d{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pf-aprueban{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;margin-bottom:10px}
.pf-ap-l{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.pf-ap{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:999px;background:#efecfb;color:#3f3293;font-weight:600}
.pf-ap i{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:10.5px;font-weight:800;color:#5b4bb7}
.pf-ap-s{color:var(--ink-3);font-size:11px}
@media (max-width:767.98px){.pf-saldo-mini{margin-left:0;width:100%;flex-direction:row;align-items:baseline;gap:8px}.pf-saldo-mini small{margin-left:auto}.pf-adj-g{grid-template-columns:1fr}.pf-h-fila{flex-direction:column;align-items:flex-start;gap:4px}}
.pf-info .pf-b{white-space:normal;line-height:1.35}
@media (max-width:575.98px){.pf-b{white-space:normal;max-width:100%;line-height:1.35}}
.pf-envio{position:static!important;box-shadow:0 1px 2px rgba(16,42,67,.05)!important;border-color:var(--line)!important}
.cat-multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surf-1)}
/* ===== campos compactos de fecha/hora con selector flotante ===== */
.pf-campos{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.pf-campos.pf-campos-horas{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr))}
.pf-f{display:flex;flex-direction:column;gap:4px;min-width:0}.pf-f[hidden]{display:none}
.pf-f-l{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.pf-fecha{display:flex;align-items:center;gap:9px;min-height:38px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink);text-align:left;font-size:14px;transition:border-color .12s,box-shadow .12s}
.pf-fecha i{color:#2b6a95}.pf-fecha-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.pf-ph{color:var(--ink-3);text-transform:none}
.pf-fecha:hover{border-color:#2fa4e7}.pf-fecha:focus-visible,.pf-fecha.abierto{outline:none;border-color:#2fa4e7;box-shadow:0 0 0 3px rgba(47,164,231,.18)}
.pf-pop{position:absolute;z-index:1040;width:min(380px,100%);background:#fff;border:1px solid var(--line-strong);border-radius:12px;padding:10px;box-shadow:0 14px 36px -12px rgba(16,42,67,.38)}
.pf-pop .pf-cal{border:0;padding:0}.pf-pop .pf-c{height:44px}
.pf-pop .pf-ley-l{border-top:1px solid var(--line-soft);padding-top:8px}
.pf-cal-tip{font-size:12px;color:#1f5f8f;font-weight:600;margin:-2px 0 6px}
.pf-c.antes{opacity:.35;pointer-events:none}
.pf-jornada{margin-top:10px}.pf-jornada:empty{display:none}
.pf-jornada .pf-jor-h{font-size:12px;color:var(--ink-2);margin-bottom:5px}.pf-jornada .pf-barra{height:10px}
.pf-dias-h:empty{display:none}
#pfAdjSel[hidden]{display:none}.pf-adj-g:has(#pfAdjSel[hidden]){grid-template-columns:1fr}
@media (max-width:575.98px){.pf-campos,.pf-campos.pf-campos-horas{grid-template-columns:1fr 1fr}.pf-campos-horas .pf-f:first-child{grid-column:1/-1}.pf-pop{left:0!important;width:100%}}
.vac-prox{margin-top:8px;padding:7px 10px;border-radius:8px;background:#e9f6f4;border:1px solid #b2dfdb;font-size:12.5px;color:#00695c}.vac-prox i{margin-right:4px}
.vac-prox small{display:block;color:var(--ink-2);margin-top:2px;line-height:1.4}
.pf-res-eq{font-size:13px;font-weight:600;color:var(--ink-2);margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line-soft)}
.perm-cab-curso{flex:0 1 300px;padding-left:16px;border-left:1px solid var(--line-soft)}
.perm-cab-curso .perm-cab-n{color:#2b6a95}
.vac-curso{display:grid;grid-template-columns:1fr auto;gap:0 8px;margin-top:8px;padding:7px 10px;border-radius:8px;background:#eef6fc;border:1px dashed #9cc9e8;font-size:12.5px;color:#1f5f8f}
.vac-curso small{grid-column:1/-1;color:var(--ink-2)}
@media (max-width:767.98px){.perm-cab-curso{padding-left:0;border-left:0;border-top:1px solid var(--line-soft);padding-top:10px;flex-basis:100%}}
/* ===== kardex de vacaciones: cabecera ===== */
.kx-cab{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.kx-persona{display:flex;gap:14px;align-items:center}
.kx-persona-t{min-width:0}.kx-lbl{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.kx-nombre{font-size:20px;font-weight:800;color:var(--ink);margin:1px 0 0;line-height:1.2}
.kx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}
.kx-stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:11px;background:var(--surf-1);border:1px solid var(--line-soft);min-width:0}
.kx-stat-l{font-size:11px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.kx-stat-n{font-size:26px;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}.kx-stat-n small{font-size:13px;font-weight:600;color:var(--ink-2)}
.kx-stat-d{font-size:12px;color:var(--ink-2)}
.kx-disp{background:linear-gradient(135deg,#00695c,#009688);border-color:#00695c}.kx-disp .kx-stat-l,.kx-disp .kx-stat-d,.kx-disp .kx-stat-n small{color:rgba(255,255,255,.85)}.kx-disp .kx-stat-n{color:#fff}
.kx-disp.mal{background:linear-gradient(135deg,#b42318,#d9534f);border-color:#b42318}
.kx-curso{background:#eef6fc;border:1px dashed #9cc9e8}.kx-curso .kx-stat-n{color:#1f5f8f}
.kx-mes{display:block;height:6px;border-radius:999px;background:#d6e9f6;overflow:hidden;margin:4px 0 2px}.kx-mes i{display:block;height:100%;background:#2b6a95;border-radius:999px}
.kx-pie{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:12px;font-size:12.5px;color:var(--ink-2)}
.kx-pie-i{display:inline-flex;align-items:center;gap:6px}.kx-pie-i>i{color:#2b6a95}.kx-aviso{color:#8a5a00}.kx-aviso i{color:#b7791f!important}
.kx-tope{margin-left:auto;flex-direction:column;align-items:stretch;gap:3px;min-width:220px}
.kx-tope-b{display:block;height:7px;border-radius:999px;background:#e6ebf0;overflow:hidden}.kx-tope-b i{display:block;height:100%;background:#26a69a;border-radius:999px}
.kx-tope.cerca .kx-tope-b i{background:#e0a100}.kx-tope.lleno{color:#b42318}.kx-tope.lleno .kx-tope-b i{background:#d9534f}
.kx-ley{margin-top:10px;padding-top:8px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-3)}.kx-ley i{margin-right:4px}
.kx-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;align-items:start}
@media (max-width:991.98px){.kx-cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:575.98px){.kx-stats{grid-template-columns:1fr 1fr}.kx-disp{grid-column:1/-1}.kx-tope{margin-left:0;width:100%}.kx-nombre{font-size:17px}}
.kx-cols .panel-title,.grid-panel .panel-title:has(> span + span){display:flex;align-items:center;justify-content:space-between;gap:10px}
@media (max-width:575.98px){.kx-curso{grid-column:1/-1}}
.kx-stats{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr)}
@media (max-width:991.98px){.kx-stats{grid-template-columns:1fr 1fr}}
@media (max-width:575.98px){.kx-stats{grid-template-columns:1fr 1fr}}
/* ===== Mis permisos: cabecera ===== */
.mp-cab{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:stretch;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.mp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;max-width:760px}
.mp-acc{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:10px;min-width:220px;padding-left:18px;border-left:1px solid var(--line-soft)}
.mp-pedir{font-weight:700;box-shadow:0 4px 12px -6px rgba(0,105,92,.6)}
.mp-links{display:flex;flex-direction:column;gap:4px}
.mp-links a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none}
.mp-links a i{width:16px;text-align:center;color:#2b6a95}.mp-links a:hover{background:var(--surf-1);color:#1f5f8f}
.mp-sin{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-2);padding:8px}
@media (max-width:767.98px){.mp-cab{grid-template-columns:1fr}.mp-acc{padding-left:0;border-left:0;border-top:1px solid var(--line-soft);padding-top:12px;min-width:0}.mp-links{flex-direction:row;flex-wrap:wrap}.mp-stats{grid-template-columns:1fr 1fr}.mp-stats .kx-disp{grid-column:1/-1}}

/* Mis permisos: cabecera compacta (una franja) */
.mp-cab{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px;border-radius:12px;align-items:center}
.mp-cab>.mp-stats,.mp-cab>.mp-sin{flex:1 1 380px;min-width:0}
.mp-stats{display:flex;flex-wrap:wrap;gap:8px;max-width:none}
.mp-cab .kx-stat{flex:1 1 190px;max-width:260px;padding:7px 12px;border-radius:9px;gap:0}
.mp-cab .kx-stat-l{font-size:10px}
.mp-cab .kx-stat-n{font-size:20px}.mp-cab .kx-stat-n small{font-size:12px}
.mp-cab .kx-stat-d{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-cab .kx-mes{height:4px;margin:4px 0 0}
.mp-cab .mp-acc{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 6px;min-width:0;padding:0;border-top:0;border-left:0}
.mp-pedir{white-space:nowrap}
.mp-cab .mp-acc{flex:0 0 auto;margin-left:auto}
.mp-cab .mp-links{flex-direction:row;flex-wrap:nowrap;gap:2px}
.mp-links a{padding:6px 8px;font-size:12.5px;white-space:nowrap}
@media (max-width:767.98px){
  .mp-cab .mp-acc{flex:1 1 100%;margin-left:0;padding:8px 0 0;border-left:0;border-top:1px solid var(--line-soft);justify-content:space-between}
  .mp-cab .kx-stat{max-width:none;flex-basis:140px}
  .mp-cab .kx-stat-d{white-space:normal}
}
@media (max-width:420px){.mp-cab .mp-pedir{flex:1 1 100%}.mp-cab .mp-links{flex:1 1 100%;justify-content:space-between}}

/* ===== Firma electrónica (.p12): modal reutilizable ===== */
.fe-dialog{max-width:460px}
.fe-modal .modal-content{border:0;border-radius:14px;overflow:hidden;box-shadow:0 18px 50px -12px rgba(16,42,67,.35)}
.fe-cab{display:flex;gap:12px;align-items:flex-start;padding:18px 20px 8px}
.fe-ico{flex:0 0 40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#e0f2f1;color:#00796b;font-size:18px}
.fe-titulo{font-size:16px;font-weight:700;margin:2px 0 2px;color:var(--ink)}
.fe-msg{font-size:13px;color:var(--ink-2);margin:0}
.fe-res{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:6px 20px 4px;padding:10px 12px;background:var(--surf-1);border:1px solid var(--line-soft);border-radius:10px;font-size:12.5px}
.fe-res dt{font-weight:600;color:var(--ink-3)}.fe-res dd{margin:0;color:var(--ink);font-weight:600}
.fe-switch{display:flex;gap:10px;align-items:flex-start;margin:10px 20px 0;padding:10px 12px;border:1px solid #b2dfdb;background:#f2faf9;border-radius:10px;cursor:pointer}
.fe-switch .form-check-input{margin:3px 0 0;flex:0 0 auto;width:2.2em;height:1.2em}
.fe-switch span{display:flex;flex-direction:column;font-size:13px}.fe-switch small{color:var(--ink-3);font-size:11.5px}
.fe-panel{padding:12px 20px 4px;display:flex;flex-direction:column;gap:10px}
.fe-cert{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:#e0f2f1;border:1px solid #b2dfdb;color:#00594f}
.fe-cert>i{font-size:20px;color:#00796b}.fe-cert>div{flex:1;min-width:0;display:flex;flex-direction:column}.fe-cert b{font-size:13px}.fe-cert small{font-size:11.5px;color:#00695c}
.fe-cert .btn-link{white-space:nowrap;font-weight:600;color:#00695c}
.fe-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:16px 12px;border:1.5px dashed #9fb3c8;border-radius:12px;background:#fbfcfd;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.fe-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.fe-drop>i{font-size:20px;color:#7b8fa3;margin-bottom:2px}.fe-drop-t{font-size:13px;color:var(--ink-2)}.fe-drop-d{font-size:11.5px;color:var(--ink-3)}
.fe-drop:hover,.fe-drop.sobre,.fe-drop:focus-within{border-color:#009688;background:#f2faf9}
.fe-drop.lleno{border-style:solid;border-color:#009688;background:#f2faf9}.fe-drop.lleno>i{color:#00796b}
.fe-clave .form-label{font-size:12.5px;font-weight:600;margin-bottom:4px}
.fe-clave-in{position:relative}.fe-clave-in .form-control{padding-right:40px}
.fe-ojo{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:none;width:32px;height:32px;border-radius:8px;color:var(--ink-3)}.fe-ojo:hover{background:var(--surf-1);color:var(--ink)}
.fe-recordar{display:flex;gap:8px;align-items:flex-start;padding-left:0;margin:0}.fe-recordar .form-check-input{margin:2px 0 0;float:none;flex:0 0 auto}
.fe-recordar .form-check-label{font-size:13px;display:flex;flex-direction:column}.fe-recordar small{font-size:11.5px;color:var(--ink-3)}
.fe-err{font-size:12.5px;color:#8a1c14;background:#fdecea;border:1px solid #f8c9c4;border-radius:8px;padding:7px 10px}
.fe-olvidar{align-self:flex-start;padding:0;font-size:12px;color:#b42318;text-decoration:none}.fe-olvidar:hover{text-decoration:underline;color:#8a1c14}
.fe-modal .cm-foot{margin-top:12px}
[hidden].fe-panel,.fe-panel [hidden]{display:none!important}

/* ===== Documento firmado (ficha del permiso) ===== */
.doc-firma{padding:4px 16px 14px}
.doc-firma-pdf{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink)}
.doc-firma-pdf:hover{border-color:#80cbc4;background:#f2faf9}
.doc-firma-pdf .pdf-ico{width:26px;height:32px;flex:0 0 auto}.doc-firma-pdf b{font-size:13px;display:block}.doc-firma-pdf small{font-size:11.5px;color:var(--ink-3)}
.doc-firma-ver{margin-left:auto;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}
.doc-firma-ver.ok{background:#e0f2f1;color:#00695c}.doc-firma-ver.mal{background:#fdecea;color:#b42318}.doc-firma-ver.sin{background:#eef2f6;color:#51606e}
.doc-firmantes{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.doc-firmantes li{display:flex;gap:10px;align-items:center;font-size:12.5px}
.doc-firmantes .df-i{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:#eef2f6;color:#8796a5}
.doc-firmantes li.firmado .df-i{background:#00796b;color:#fff}
.doc-firmantes b{display:block;font-size:12.5px}.doc-firmantes small{color:var(--ink-3);font-size:11.5px}
.doc-firma .btn-firmar{margin-top:10px}

/* Kardex: cabecera compacta (persona + saldos en una franja; acreditación, tope y ley en una línea) */
.kx-compacto{padding:10px 14px}
.kx-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.kx-compacto .kx-persona{flex:1 1 360px;min-width:0;gap:12px}
.kx-compacto .pf-avatar{width:44px;height:44px;font-size:16px;flex:0 0 44px}
.kx-compacto .kx-lbl{font-size:10px}
.kx-compacto .kx-nombre{font-size:17px;margin:0 0 3px}
.kx-compacto .pf-chips{gap:4px}.kx-compacto .pf-b{font-size:11px;padding:1px 7px}
.kx-compacto .kx-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0;flex:0 1 auto}
.kx-compacto .kx-stat{flex:1 0 170px;max-width:230px;padding:7px 12px;border-radius:9px;gap:0}
.kx-compacto .kx-stat-l{font-size:10px}
.kx-compacto .kx-stat-n{font-size:20px}.kx-compacto .kx-stat-n small{font-size:12px}
.kx-compacto .kx-stat-d{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kx-compacto .kx-mes{height:4px;margin:4px 0 0}
.kx-compacto .kx-pie{margin-top:8px;padding-top:7px;border-top:1px solid var(--line-soft);gap:6px 16px;font-size:12px;flex-wrap:nowrap}
.kx-compacto .kx-tope{margin-left:0;flex-direction:row;align-items:center;gap:8px;min-width:0;white-space:nowrap}
.kx-compacto .kx-tope-b{width:110px;height:5px}
.kx-ley-i{min-width:0;flex:1 1 auto;color:var(--ink-3);font-size:11.5px;justify-content:flex-end}
.kx-ley-i>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kx-ley-i>i{color:var(--ink-3)!important}
@media (max-width:991.98px){.kx-compacto .kx-pie{flex-wrap:wrap}.kx-ley-i{flex-basis:100%;justify-content:flex-start}.kx-ley-i>span{white-space:normal}}
@media (max-width:575.98px){.kx-compacto .kx-stat{max-width:none;flex-basis:140px}.kx-compacto .kx-stat-d{white-space:normal}.kx-compacto .kx-disp{flex-basis:100%}}

/* ===== Marcar asistencia (rediseño): una tarjeta, cuatro pasos con la hora marcada dentro ===== */
.mk{max-width:720px;margin:0 auto}
.mk-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 10px 28px -16px rgba(16,42,67,.25)}
.mk-cab{display:flex;align-items:center;gap:12px}
.mk-av{position:relative;flex:0 0 46px;width:46px;height:46px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#2fa4e7,#1f5f8f);color:#fff;font-weight:800}
.mk-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mk-quien{flex:1;min-width:0;display:flex;flex-direction:column}.mk-quien b{font-size:14.5px;line-height:1.25}.mk-quien small{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-link{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;border:1px solid var(--line-soft);font-size:12.5px;font-weight:600;color:var(--ink-2);text-decoration:none;white-space:nowrap}
.mk-link i{color:#00796b}.mk-link:hover{background:#f2faf9;border-color:#b2dfdb;color:#00695c}
.mk-hora{text-align:center;margin:14px 0 12px;padding:14px 10px 12px;border-radius:14px;background:radial-gradient(120% 140% at 50% 0%,#f2faf9 0%,#fff 70%)}
.mk-reloj{font-size:56px;font-weight:800;letter-spacing:1px;line-height:1;color:#13202e;font-variant-numeric:tabular-nums}
.mk-fecha{font-size:13px;color:var(--ink-2);margin-top:4px}.mk-fecha::first-letter{text-transform:uppercase}
.mk-jornada{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:3px 10px;border-radius:999px;background:#e0f2f1;color:#00695c;font-size:12px;font-weight:600}
.mk-ok{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;background:#e0f2f1;border:1px solid #b2dfdb;color:#004d40;margin-bottom:10px}
.mk-ok>i{font-size:20px;color:#00796b}.mk-ok div{display:flex;flex-direction:column;font-size:13px}.mk-ok small{font-size:11.5px;color:#00695c}.mk-ok code{color:#004d40;background:rgba(255,255,255,.7);padding:0 4px;border-radius:3px;letter-spacing:.5px}
.mk-err{padding:9px 12px;border-radius:10px;background:#fdecea;border:1px solid #f8c9c4;color:#8a1c14;font-size:13px;margin-bottom:10px}
.mk-pasos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mk-paso{--c:#00796b;--cb:#e0f2f1;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:12px 12px 11px;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:transform .12s,box-shadow .15s,border-color .15s,background .15s}
.mk-paso:hover{border-color:var(--c);box-shadow:0 6px 16px -10px var(--c);transform:translateY(-1px)}
.mk-paso:active{transform:translateY(0) scale(.99)}
.mk-paso:focus-visible{outline:3px solid color-mix(in srgb,var(--c) 35%,transparent);outline-offset:2px}
.mk-ent{--c:#00796b;--cb:#e0f2f1}.mk-alm{--c:#b26a00;--cb:#fff3dc}.mk-reg{--c:#1f6fa8;--cb:#e6f1fa}.mk-sal{--c:#b42318;--cb:#fdecea}
.mk-n{position:absolute;top:8px;right:10px;font-size:10px;font-weight:700;color:var(--ink-3)}
.mk-ico{grid-row:1/3;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--cb);color:var(--c);font-size:19px;transition:background .15s,color .15s}
.mk-t{display:flex;flex-direction:column;min-width:0}.mk-t b{font-size:14.5px;line-height:1.2}.mk-t small{font-size:11.5px;color:var(--ink-3)}
.mk-marca{display:flex;align-items:baseline;gap:6px;min-height:20px;margin-top:3px}
.mk-marca b{font-size:20px;font-weight:800;color:var(--c);font-variant-numeric:tabular-nums;line-height:1}
.mk-marca small{font-size:11px;color:var(--ink-3)}.mk-marca small.bien{color:#00796b;font-weight:600}.mk-marca small.tarde{color:#b45309;font-weight:700}
.mk-marca em{font-style:normal;font-size:12px;font-weight:700;color:#fff;background:var(--c);padding:2px 9px;border-radius:999px}
.mk-paso.siguiente{border-color:var(--c);background:linear-gradient(180deg,var(--cb),#fff 70%);box-shadow:0 8px 20px -12px var(--c)}
.mk-paso.siguiente .mk-ico{background:var(--c);color:#fff;animation:mk-pulso 2s ease-out infinite}
@keyframes mk-pulso{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--c) 45%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
.mk-paso.hecha{background:var(--cb);border-color:transparent}
.mk-paso.hecha .mk-ico{background:var(--c);color:#fff}
.mk-paso.hecha .mk-t small{display:none}
@media (prefers-reduced-motion:reduce){.mk-paso,.mk-paso.siguiente .mk-ico{transition:none;animation:none}}
.mk-fin{margin-top:10px;padding:8px 12px;border-radius:10px;background:#e0f2f1;color:#00695c;font-size:12.5px;font-weight:600}
.mk-reloj-bio{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--ink-3)}
.mk-reloj-bio span{font-weight:700;color:var(--ink-2);background:var(--surf-1);border:1px solid var(--line-soft);border-radius:6px;padding:1px 7px;font-variant-numeric:tabular-nums}
.mk-ctx{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.mk-chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12.5px;color:var(--ink-2);min-width:0;max-width:100%}
.mk-chip>i{color:#7b8fa3}
.mk-edif{padding-right:4px;cursor:pointer}.mk-edif select{border:0;background:transparent;font-size:12.5px;color:var(--ink);padding:0 22px 0 0;max-width:210px;text-overflow:ellipsis;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%237b8fa3' stroke-width='2' d='m4 6 4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 4px center;background-size:12px}
.mk-edif select:focus{outline:0}.mk-edif .cs{max-width:210px}.mk-edif .cs-btn{border:0;background:transparent;min-height:0;padding:0;font-size:12.5px;box-shadow:none!important}.mk-edif:focus-within{border-color:#80cbc4;box-shadow:0 0 0 3px rgba(0,150,136,.15)}
.mk-ubic{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-ubic.ok{background:#f2faf9;border-color:#b2dfdb;color:#00695c}.mk-ubic.ok>i{color:#00796b}
.mk-ubic.lejos{background:#fff7e6;border-color:#f3d19c;color:#8a5a00}.mk-ubic.lejos>i{color:#b26a00}
.mk-ubic.no{color:var(--ink-3)}
.mk-selfie{cursor:pointer;user-select:none}.mk-selfie input{position:absolute;opacity:0;pointer-events:none}
.mk-selfie.on{background:#e6f1fa;border-color:#9cc9e8;color:#1f5f8f}.mk-selfie.on>i{color:#1f6fa8}
.mk-selfie:focus-within{box-shadow:0 0 0 3px rgba(31,111,168,.18)}
.mk .marcar-foto{margin-top:10px}
@media (max-width:575.98px){
  .mk-card{padding:12px;border-radius:14px}
  .mk-reloj{font-size:44px}
  .mk-pasos{gap:8px}
  .mk-paso{grid-template-columns:1fr;padding:10px}
  .mk-ico{grid-row:auto;width:38px;height:38px;font-size:16px;margin-bottom:6px}
  .mk-t b{font-size:13.5px}.mk-marca b{font-size:18px}
  .mk-link span{display:none}
}
/* selfie en miniatura junto a la hora (como la pantalla de un reloj biométrico) */
.mk-hora{display:grid;grid-template-columns:120px minmax(0,1fr) 120px;align-items:center;gap:12px;text-align:center}
.mk-hora-c{min-width:0}
.mk-cam{position:relative;width:120px;height:120px;padding:0;border-radius:18px;overflow:hidden;border:2px dashed #b9c6d3;background:#f6f8fa;color:#7b8fa3;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s}
.mk-cam:hover{border-color:#80cbc4;color:#00796b}.mk-cam:active{transform:scale(.98)}
.mk-cam:focus-visible{outline:3px solid rgba(0,150,136,.35);outline-offset:2px}
.mk-cam video,.mk-cam img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mk-cam video{transform:scaleX(-1)}   /* espejo, como al mirarse en el reloj */
.mk-cam-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:22px}
.mk-cam-ph small{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.mk-cam[data-modo="vivo"],.mk-cam[data-modo="lista"]{border:2px solid #13202e;background:#13202e;box-shadow:0 0 0 4px #e6ebf0,0 8px 20px -10px rgba(16,42,67,.6)}
.mk-cam[data-modo="vivo"] .mk-cam-ph,.mk-cam[data-modo="lista"] .mk-cam-ph{display:none}
.mk-cam[data-modo="vivo"]::after{content:"";position:absolute;inset:14%;border:2px solid rgba(255,255,255,.55);border-radius:50% 50% 46% 46%;pointer-events:none}   /* guía del rostro */
.mk-cam[data-modo="lista"]{border-color:#00796b;box-shadow:0 0 0 4px #e0f2f1,0 8px 20px -10px rgba(0,105,92,.6)}
.mk-cam-est{position:absolute;left:0;right:0;bottom:0;padding:3px 4px;font-size:9.5px;font-weight:700;line-height:1.2;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;align-items:center;justify-content:center;gap:4px}
.mk-rec{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff3b30;animation:mk-rec 1.2s ease-in-out infinite}
@keyframes mk-rec{50%{opacity:.25}}
.mk-cam[data-modo="lista"] .mk-cam-est{background:linear-gradient(transparent,rgba(0,77,64,.85))}
@media (prefers-reduced-motion:reduce){.mk-rec{animation:none}}
@media (max-width:575.98px){
  .mk-hora{grid-template-columns:84px minmax(0,1fr);gap:10px;text-align:left}
  .mk-hora-esp{display:none}
  .mk-cam{width:84px;height:84px;border-radius:14px}
  .mk-cam-est{font-size:8.5px}
  .mk-reloj{font-size:38px}
}
/* marcaciones ya hechas: no se repiten; permiso por horas */
.mk-paso:disabled{cursor:default;opacity:1;transform:none;box-shadow:none}
.mk-paso:disabled:not(.hecha){opacity:.55}
.mk-paso.hecha:hover{border-color:transparent}
.mk-per{--c:#5b4bb7;--cb:#efecfb}
.mk-perm{margin-top:12px;padding:10px;border-radius:14px;border:1px dashed #c9c1f0;background:#faf9ff}
.mk-perm-cab{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 2px 8px;font-size:12.5px;color:#4a3d9c}
.mk-perm-cab>i{color:#5b4bb7}.mk-perm-cab span{color:var(--ink-3);font-size:11.5px}
.mk-perm .mk-paso.hecha{background:#efecfb}
/* ficha del permiso: agregar documento (select propio + dropzone del sistema) */
.perm-adj{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px;border:1px solid var(--line-soft);border-radius:12px;background:var(--surf-1)}
.perm-adj-t{font-size:12.5px;font-weight:700;color:var(--ink-2)}.perm-adj-t i{color:#2b6a95;margin-right:4px}
.perm-adj-uno{font-size:12.5px;font-weight:600;color:var(--ink);padding:6px 10px;border-radius:8px;background:#fff;border:1px solid var(--line-soft)}.perm-adj-uno i{color:#7b8fa3;margin-right:4px}
.perm-adj .dropzone.compact{margin:0;background:#fff}
.perm-adj-ok{align-self:flex-end}

/* ===== Ajustes de módulo (TTHH): cabecera, pestañas y diseñador del menú ===== */
.aj-cab{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.aj-cab-ico{flex:0 0 42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e0f2f1;color:#00796b;font-size:18px}
.aj-cab h1{font-size:18px;font-weight:800;margin:0;color:var(--ink)}.aj-cab p{margin:0;font-size:12.5px;color:var(--ink-3)}
.aj-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px;overflow-x:auto}
.aj-tabs a{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap}
.aj-tabs a:hover{color:#00695c}.aj-tabs a.active{color:#00695c;border-bottom-color:#009688}
.aj-menu{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;align-items:start}
.aj-editor{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.aj-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.aj-bar-t{flex:1;min-width:0;display:flex;flex-direction:column}.aj-bar-t b{font-size:14px}.aj-bar-t small{font-size:11.5px;color:var(--ink-3)}
.aj-arbol,.aj-hijos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.aj-item,.aj-grupo-cab{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line-soft);border-radius:10px;background:#fff}
.aj-item:hover{border-color:#b2dfdb}
.aj-item.off{background:repeating-linear-gradient(-45deg,#fafbfc 0 6px,#f3f5f8 6px 12px)}.aj-item.off .aj-ico,.aj-item.off .aj-nombre{opacity:.5}
.aj-asa{cursor:grab;color:#a3afbc;padding:2px 4px;touch-action:none}.aj-asa:hover{color:#51606e}
.aj-ico{flex:0 0 30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--surf-1);color:#2b6a95;font-size:14px;border:0}
.aj-ico-btn{cursor:pointer;background:#e0f2f1;color:#00796b;box-shadow:inset 0 0 0 1px #b2dfdb}.aj-ico-btn:hover{background:#b2dfdb}
.aj-nombre{flex:1 1 140px;min-width:0;border:1px solid transparent;border-radius:7px;padding:4px 8px;font-size:13px;font-weight:600;color:var(--ink);background:transparent}
.aj-nombre:hover{border-color:var(--line-soft)}.aj-nombre:focus{outline:0;border-color:#80cbc4;background:#fff;box-shadow:0 0 0 3px rgba(0,150,136,.12)}
.aj-nombre::placeholder{color:var(--ink);opacity:.85;font-weight:600}
.aj-orig{flex:0 1 auto;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.aj-vis{margin:0;padding-left:0!important;display:flex}.aj-vis .form-check-input{width:2.1em;height:1.15em;margin:0!important;cursor:pointer;float:none}
.aj-vis .form-check-input:checked{background-color:#00796b;border-color:#00796b}
.aj-grupo{border:1.5px solid #b2dfdb;border-radius:12px;background:#f2faf9;padding:6px}
.aj-grupo-cab{border:0;background:transparent;padding:2px 2px 6px}
.aj-gnombre{text-transform:uppercase;letter-spacing:.02em}
.aj-quitar{border:0;background:none;color:#b42318;opacity:.6;width:28px;height:28px;border-radius:7px}.aj-quitar:hover{opacity:1;background:#fdecea}
.aj-hijos{min-height:44px;padding:4px 0 2px 18px;border-left:2px dashed #b2dfdb;margin-left:14px}
.aj-grupo.vacio .aj-hijos::before{content:"Arrastra opciones aquí";display:block;font-size:12px;color:#00796b;opacity:.75;padding:12px 8px}
.aj-fantasma{opacity:.35;background:#e0f2f1!important}.aj-elegido{box-shadow:0 10px 24px -12px rgba(16,42,67,.45)}
.aj-fijo{margin-top:8px;padding:8px 10px;border-radius:10px;border:1px dashed var(--line);font-size:12.5px;color:var(--ink-3)}.aj-fijo i{color:#7b8fa3;margin-right:4px}.aj-fijo b{color:var(--ink-2)}
.aj-acciones{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);position:sticky;bottom:0;background:#fff}
.aj-estado{margin-left:auto;font-size:12px;font-weight:600;color:#b45309}
.aj-prev{position:sticky;top:70px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}
.aj-prev-t{font-size:12px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.aj-prev-n{font-size:11px;color:var(--ink-3);margin:8px 0 0}
.aj-sb{background:var(--sidebar-bg,#343a40);border-radius:10px;padding:8px 0;max-height:70vh;overflow:auto}
.aj-sb a,.aj-sb summary{display:flex;align-items:center;gap:9px;padding:7px 12px;font-size:12.5px;color:var(--sidebar-link,#c9cfd6);text-decoration:none;list-style:none;cursor:default}
.aj-sb summary::-webkit-details-marker{display:none}.aj-sb .caret{margin-left:auto;font-size:10px}
.aj-sb a i,.aj-sb summary i{width:16px;text-align:center;opacity:.7}
.aj-sb a.sub{padding-left:24px;background:rgba(0,0,0,.12)}
.aj-sb .aj-sb-aj{border-top:1px solid rgba(255,255,255,.1);margin-top:6px;padding-top:9px}
.aj-iconos{position:absolute;z-index:1060;display:grid;grid-template-columns:repeat(6,36px);gap:4px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px -12px rgba(16,42,67,.35)}
.aj-iconos button{width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:#fff;color:#51606e;font-size:15px}
.aj-iconos button:hover,.aj-iconos button:focus-visible{background:#e0f2f1;color:#00796b;outline:0}.aj-iconos button.on{background:#00796b;color:#fff}
/* «Ajustes» del módulo en el menú lateral: separado del resto */
.sidebar-nav a.sb-ajustes{margin-top:8px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}
@media (max-width:991.98px){.aj-menu{grid-template-columns:minmax(0,1fr)}.aj-prev{position:static}}
@media (max-width:575.98px){.aj-orig{display:none}.aj-hijos{padding-left:8px;margin-left:6px}}
/* Cerulean pinta .btn-success con un degradado propio (verde oliva) que tapa el color: degradado teal equivalente */
.btn-success{background-image:linear-gradient(#26a69a,#00796b 60%,#00705f)}
.btn-success:hover{background-image:linear-gradient(#00897b,#00695c 60%,#005f53)}
.btn-success:active,.btn-check:checked+.btn-success{background-image:linear-gradient(#005b4f,#005b4f 60%,#004d40)}
.btn-success:disabled,.btn-success.disabled{background-image:none}
/* solicitud: días sin jornada no elegibles; ajuste a días laborables y fecha de reintegro */
.pf-c.nosel{cursor:not-allowed;opacity:.45}.pf-c.nosel:hover{transform:none;box-shadow:none}
.pf-ajuste{display:flex;gap:7px;align-items:flex-start;margin-bottom:8px;padding:7px 10px;border-radius:8px;background:#e6f1fa;border:1px solid #9cc9e8;color:#1f5f8f;font-size:12.5px}
.pf-reint{display:flex;gap:7px;align-items:center;margin-top:8px;padding:7px 10px;border-radius:8px;background:#e0f2f1;color:#00695c;font-size:13px}
.perm-ficha-reint{display:inline-flex;align-items:center;gap:7px;margin-top:6px;padding:4px 10px;border-radius:999px;background:#e0f2f1;color:#00695c;font-size:12.5px}
/* permiso: documento firmado a mano (escaneado) */
.doc-esc{margin-top:8px}
.doc-pend{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:9px 12px;border-radius:10px;background:#fff7e6;border:1px solid #f3d19c;color:#8a5a00}
.doc-pend>i{margin-top:2px;color:#b26a00}.doc-pend div{display:flex;flex-direction:column;font-size:12.5px}.doc-pend small{color:#8a5a00}
.doc-esc-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}.doc-esc-form .dropzone.compact{margin:0}.doc-esc-form .btn{align-self:flex-end}
.doc-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;vertical-align:middle}
.doc-chip.pend{background:#fff3d6;color:#8a5a00}.doc-chip.esc{background:#e6f1fa;color:#1f5f8f}.doc-chip.ok{background:#e0f2f1;color:#00695c}

/* ===== TTHH · gestión de permisos (cabecera con indicadores-filtro) ===== */
.gp-cab{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,42,67,.05),0 4px 12px -8px rgba(16,42,67,.14)}
.gp-cab-t{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.gp-cab-ico{flex:0 0 42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e0f2f1;color:#00796b;font-size:18px}
.gp-cab-t>div:nth-child(2){flex:1 1 320px;min-width:0}.gp-cab h1{font-size:18px;font-weight:800;margin:0;color:var(--ink)}.gp-cab p{margin:0;font-size:12.5px;color:var(--ink-3)}
.gp-acc{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.gp-nuevo{font-weight:700;white-space:nowrap}
.gp-link{font-size:12.5px;font-weight:600;color:var(--ink-2);text-decoration:none;white-space:nowrap}.gp-link i{color:#2b6a95;margin-right:4px}.gp-link:hover{color:#00695c}
.gp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.gp-kpi{--c:#51606e;--cb:#eef2f6;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:11px;border:1.5px solid var(--line-soft);background:#fff;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.gp-kpi:hover{border-color:var(--c)}.gp-kpi.on{border-color:var(--c);background:var(--cb);box-shadow:0 6px 16px -12px var(--c)}
.gp-kpi-i{flex:0 0 36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--cb);color:var(--c);font-size:16px}.gp-kpi.on .gp-kpi-i{background:var(--c);color:#fff}
.gp-kpi-t{display:flex;flex-direction:column;min-width:0;line-height:1.15}.gp-kpi-t b{font-size:20px;font-weight:800;color:var(--c);font-variant-numeric:tabular-nums}
.gp-kpi-t span{font-size:12.5px;font-weight:600}.gp-kpi-t small{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-pend{--c:#b26a00;--cb:#fff3dc}.k-apr{--c:#00796b;--cb:#e0f2f1}.k-doc{--c:#b45309;--cb:#fff7e6}.k-anul{--c:#8a1c14;--cb:#fdecea}
@media (max-width:991.98px){.gp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gp-tabs{overflow-x:auto;overflow-y:hidden}.gp-tabs .nav-link{white-space:nowrap}
.gp-doc-ayuda{padding:8px 14px;font-size:12.5px;color:#8a5a00;background:#fff7e6;border-bottom:1px solid #f3d19c}.gp-doc-ayuda i{margin-right:4px}

/* ===== TTHH · tabla de permisos (gestión): limpia en escritorio, tarjetas en móvil ===== */
.gp-tabla thead th{font-size:11px}
.gp-tabla>tbody>tr>td{padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.gp-fila:hover>td{background:#f8fbfd}
.gp-fila.off>td{opacity:.6}.gp-fila.off .gp-tipo,.gp-fila.off .gp-quien a{text-decoration:line-through}
.gp-quien{min-width:220px}
.gp-av{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2fa4e7,#1f5f8f);color:#fff;font-size:12px;font-weight:800;vertical-align:middle;margin-right:10px;flex:0 0 34px}
.gp-quien a,.gp-quien b{font-weight:700;font-size:13px;color:var(--ink);text-decoration:none;line-height:1.25}.gp-quien a:hover{color:#00695c;text-decoration:underline}
.gp-quien small{font-size:11.5px;color:var(--ink-3)}
.gp-perm{min-width:220px;max-width:340px}
.gp-tipo{display:inline-flex;align-items:baseline;gap:7px;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.3}
.gp-tipo i{flex:0 0 9px;width:9px;height:9px;border-radius:50%;transform:translateY(-1px)}
.gp-marcas{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.gp-marcas:empty{display:none}
.gp-espera,.gp-vac{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px}
.gp-espera{background:#fff3dc;color:#8a5a00}.gp-vac{background:#e0f2f1;color:#00695c}
.gp-motivo{display:block;margin-top:3px;font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.gp-fechas{white-space:nowrap}.gp-fechas b{display:block;font-size:13px;font-variant-numeric:tabular-nums}.gp-fechas small{font-size:11.5px;color:var(--ink-3)}
.gp-doc{white-space:nowrap}.gp-adj{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;color:#51606e;margin-left:4px}.gp-adj:hover{background:var(--surf-1);color:#1f5f8f}
.gp-reg{white-space:nowrap}.gp-por{display:block;font-size:12px;font-weight:600;color:var(--ink-2);max-width:180px;overflow:hidden;text-overflow:ellipsis}.gp-reg small{font-size:11px;color:var(--ink-3)}
.gp-acciones{white-space:nowrap;text-align:right}
@media (max-width:767.98px){
  .gp-tabla thead{display:none}
  .gp-tabla,.gp-tabla tbody{display:block}
  .gp-tabla tr.gp-fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
  .gp-tabla tr.gp-fila>td{display:block;padding:0;border:0;min-width:0;max-width:none}
  .gp-tabla .gp-quien{grid-column:1/-1}
  .gp-tabla .gp-perm{grid-column:1/-1}
  .gp-tabla .gp-fechas{grid-column:1}
  .gp-tabla .gp-acciones{grid-column:2;align-self:end}
  .gp-motivo{max-width:100%}
}
@media (max-width:767.98px){
  .gp-tabla.grid-table{min-width:0;font-size:inherit}
  .gp-tabla tr.gp-fila{grid-template-columns:minmax(0,1fr) auto}
  .gp-tabla .gp-fechas{grid-column:1}
  .gp-tabla td.gp-doc{grid-column:2;display:block!important;align-self:start;text-align:right}
  .gp-tabla td.gp-reg{display:none!important}
  .gp-tabla td.gp-acciones{grid-column:1/-1;justify-self:end;display:flex!important;gap:4px;flex-wrap:wrap;justify-content:flex-end}
  .gp-tabla td{padding:0!important}
}
.gp-quien-in{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0}.gp-quien-in .gp-av{margin-right:0}.gp-quien-in>div{display:flex;flex-direction:column;min-width:0}
.gp-pdf i.fa-file-pdf{color:#d6312b}.gp-pdf i.fa-file-signature{color:#1f5f8f}
.gp-motivo a{color:inherit;font-weight:700;text-decoration:none}.gp-motivo a:hover{color:#00695c;text-decoration:underline}
.gp-tabla tr.row-click{cursor:pointer}
.gp-vac,.gp-espera{white-space:nowrap}
@media (max-width:767.98px){.gp-tabla td.gp-est{grid-column:1/-1}.gp-tabla .gp-espera{white-space:normal}}
.gp-registro{white-space:nowrap}.gp-registro b{display:block;font-size:13px;font-variant-numeric:tabular-nums}.gp-registro small{font-size:11.5px;color:var(--ink-3)}
.gp-registro a{color:#1f5f8f;font-weight:700;text-decoration:none}.gp-registro a:hover{text-decoration:underline}
@media (max-width:767.98px){.gp-tabla td.gp-registro{grid-column:1/-1}.gp-registro b{display:inline;margin-right:6px}}
/* Mis permisos: acciones de la cabecera (solicitar + kardex) */
.mp-cab .mp-acc{gap:8px}
.mp-cab .mp-pedir{height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-radius:11px}
.mp-kardex{height:44px;display:inline-flex;align-items:center;gap:10px;padding:0 12px 0 14px;border-radius:11px;border:1.5px solid #b2dfdb;background:#f2faf9;color:#00695c;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}
.mp-kardex>i:first-child{font-size:16px;color:#00796b}
.mp-kardex span{display:flex;flex-direction:column;line-height:1.1}.mp-kardex b{font-size:13px}.mp-kardex small{font-size:11px;color:#26806f}
.mp-kardex-f{font-size:12px;opacity:.6;margin-left:2px;transition:transform .15s}
.mp-kardex:hover{background:#e0f2f1;border-color:#80cbc4;color:#004d40;box-shadow:0 6px 14px -10px rgba(0,105,92,.6)}.mp-kardex:hover .mp-kardex-f{transform:translateX(2px);opacity:1}
.mp-kardex:focus-visible{outline:3px solid rgba(0,150,136,.35);outline-offset:2px}
@media (max-width:420px){.mp-cab .mp-pedir,.mp-kardex{flex:1 1 100%;justify-content:center}}
/* ficha de nómina · pestaña Permisos */
.pp-cab{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px}
.pp-saldo{display:inline-flex;align-items:center;gap:10px;padding:7px 12px;border-radius:11px;background:#e0f2f1;border:1px solid #b2dfdb;color:#00695c;text-decoration:none}
.pp-saldo>i:first-child{font-size:17px}.pp-saldo span{display:flex;flex-direction:column;line-height:1.15}.pp-saldo b{font-size:15px}.pp-saldo small{font-size:11px;color:#26806f}
.pp-saldo>i:last-child{font-size:11px;opacity:.6}.pp-saldo:hover{background:#b2dfdb;color:#004d40}
.pp-saldo.mal{background:#fdecea;border-color:#f8c9c4;color:#8a1c14}.pp-saldo.mal small{color:#8a1c14}

/* ===== Menú lateral · panel del módulo (cabecera del módulo arriba, filas separadas, activo en pastilla) ===== */
.sb-brand-mod{display:none;align-items:center;gap:11px;min-width:0}
.sidebar.con-mod .sb-brand{display:none}
.sidebar.con-mod .sb-brand-mod{display:flex}
.sidebar.con-mod .sidebar-brand{border-bottom:2px solid #26a69a;padding-top:12px;padding-bottom:12px}
.sidebar .sb-level-2 .sb-mod-title{display:none}
.sb-mod-ico{flex:0 0 40px;height:40px;border-radius:10px;display:grid;place-items:center;border:1.5px solid rgba(77,182,172,.55);background:linear-gradient(135deg,rgba(38,166,154,.28),rgba(0,105,92,.18))}
.sb-mod-ico i{color:#80cbc4!important;font-size:17px;width:auto}
.sb-mod-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.sb-mod-txt small{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#80cbc4}
.sb-mod-txt b{font-size:14.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#fff;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.15;overflow-wrap:break-word}
.sidebar .sb-level-2 .sb-back{width:100%;margin:0;padding:10px 16px;border:0;border-bottom:1px solid rgba(255,255,255,.07);border-radius:0;gap:12px;font-size:13.5px;font-weight:700;color:var(--sidebar-link);background:transparent}
.sidebar .sb-level-2 .sb-back i{font-size:15px;width:18px;text-align:center;color:#9aa3ad}
.sidebar .sb-level-2 .sb-back:hover{background:rgba(255,255,255,.05);color:#fff}
.sidebar .sb-level-2>a,.sidebar .sb-level-2>.sidebar-group>summary{padding:10px 14px 10px 16px;margin:0;gap:12px;border-left:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.07);font-size:13.5px}
.sidebar .sb-level-2>a i,.sidebar .sb-level-2>.sidebar-group>summary>i:first-child{font-size:15px;width:18px}
.sidebar .sb-level-2>a:hover,.sidebar .sb-level-2>.sidebar-group>summary:hover{background:rgba(255,255,255,.05);color:#fff}
.sidebar .sb-level-2>.sidebar-group>summary .caret{font-size:12px;opacity:.75}
.sidebar .sb-level-2>.sidebar-group[open]{border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:3px}
.sidebar .sb-level-2>.sidebar-group[open]>summary{background:rgba(255,255,255,.08);border-radius:9px;margin:5px 8px 2px;padding-left:8px;border-bottom:0;color:#fff}
.sidebar .sb-level-2>.sidebar-group>a.sub{padding:8px 14px 8px 42px;margin:0;border-left:0;border-radius:0;background:transparent;font-size:13px;gap:11px}
.sidebar .sb-level-2>.sidebar-group>a.sub i{font-size:13px;width:16px}
/* opción activa: pastilla teal */
.sidebar .sb-drill .sb-level-2 a.active,.sidebar .sb-drill .sb-level-2 .sidebar-group>a.sub.active{background:#2e8b7a;color:#fff;border-radius:9px;margin:3px 8px;padding-left:10px;border-bottom:0;font-weight:600;box-shadow:0 5px 12px -8px rgba(0,0,0,.55)}
.sidebar .sb-drill .sb-level-2 .sidebar-group>a.sub.active{padding-left:34px}
.sidebar .sb-drill .sb-level-2 a.active i{color:#fff}
.sidebar .sb-level-2 a.sb-ajustes{margin-top:0;border-top:0}
/* ===== Menú lateral · marca y lista de módulos (mismo estilo que el panel de cada módulo) ===== */
.sidebar .sidebar-brand{border-bottom:2px solid #26a69a;padding-top:12px;padding-bottom:12px}
.sb-brand{gap:11px}
.sb-brand-box img.sb-brand-ico{width:26px;height:26px;flex:0 0 26px;object-fit:contain}
.sb-brand .sb-brand-txt b{font-size:15.5px;font-weight:800;letter-spacing:.03em}
.sb-brand .sb-brand-txt small{font-size:11px;color:#9fb0bd}
.sidebar .sb-level-1 .sb-section{padding:12px 16px 6px;font-size:10px;letter-spacing:.2em;color:#80cbc4}
.sidebar .sb-level-1>a{padding:10px 14px 10px 16px;margin:0;gap:12px;border-left:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.07);font-size:13.5px}
.sidebar .sb-level-1>a i{font-size:15px;width:18px}
.sidebar .sb-level-1>a:hover{background:rgba(255,255,255,.05);color:#fff}
.sidebar .sb-level-1 .sb-mod{width:100%;margin:0;padding:8px 14px 8px 12px;gap:12px;border-left:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.07);
  font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--sidebar-link)}
.sb-mod-i{flex:0 0 32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);transition:background .15s,border-color .15s}
.sb-mod-i i{font-size:14px;color:#9fb0bd;transition:color .15s}
.sidebar .sb-level-1 .sb-mod:hover{background:rgba(255,255,255,.05);color:#fff}
.sidebar .sb-level-1 .sb-mod:hover .sb-mod-i{background:rgba(38,166,154,.22);border-color:rgba(77,182,172,.45)}.sidebar .sb-level-1 .sb-mod:hover .sb-mod-i i{color:#80cbc4}
.sidebar .sb-level-1 .sb-mod.active{color:#fff;font-weight:700}
.sidebar .sb-level-1 .sb-mod.active .sb-mod-i{background:#2e8b7a;border-color:#2e8b7a}.sidebar .sb-level-1 .sb-mod.active .sb-mod-i i{color:#fff}
.sidebar .sb-level-1 .sb-mod .caret{font-size:11px;opacity:.7}
/* ===== Menú lateral · mismo estilo en todos los menús: ícono en recuadro, filas separadas, activo con el recuadro teal ===== */
.sidebar .sb-level-1>a,.sidebar .sb-level-2>a,.sidebar .sb-level-2>.sidebar-group>summary,.sidebar .sb-level-2 .sb-back{padding:8px 14px 8px 12px;gap:12px;font-size:13.5px}
.sidebar .sb-level-1>a>i:first-child,.sidebar .sb-level-2>a>i:first-child,.sidebar .sb-level-2>.sidebar-group>summary>i:first-child,.sidebar .sb-level-2 .sb-back>i:first-child{
  flex:0 0 32px;width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-size:14px;color:#9fb0bd;transition:background .15s,border-color .15s,color .15s}
.sidebar .sb-level-2>.sidebar-group>a.sub{padding:6px 14px 6px 56px;gap:10px;font-size:13px}
.sidebar .sb-level-2>.sidebar-group>a.sub>i:first-child{flex:0 0 26px;width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);font-size:12px;color:#9fb0bd}
/* al pasar: recuadro teñido */
.sidebar .sb-level-1>a:hover>i:first-child,.sidebar .sb-level-2>a:hover>i:first-child,.sidebar .sb-level-2>.sidebar-group>summary:hover>i:first-child,
.sidebar .sb-level-2 .sb-back:hover>i:first-child,.sidebar .sb-level-2>.sidebar-group>a.sub:hover>i:first-child{background:rgba(38,166,154,.22);border-color:rgba(77,182,172,.45);color:#80cbc4}
/* activo: sin pastilla; recuadro teal relleno y texto en blanco */
.sidebar .sb-drill .sb-level-1>a.active,.sidebar .sb-drill .sb-level-2>a.active,.sidebar .sb-drill .sb-level-2 .sidebar-group>a.sub.active{background:transparent;box-shadow:none;margin:0;border-radius:0;color:#fff;font-weight:700;border-bottom:1px solid rgba(255,255,255,.07)}
.sidebar .sb-drill .sb-level-1>a.active,.sidebar .sb-drill .sb-level-2>a.active{padding-left:12px}
.sidebar .sb-drill .sb-level-2 .sidebar-group>a.sub.active{padding-left:56px;border-bottom:0}
.sidebar .sb-drill .sb-level-1>a.active>i:first-child,.sidebar .sb-drill .sb-level-2>a.active>i:first-child,.sidebar .sb-drill .sb-level-2 .sidebar-group>a.sub.active>i:first-child{background:#2e8b7a;border-color:#2e8b7a;color:#fff}
/* grupo abierto: fila sin recuadro de fondo, su ícono teñido */
.sidebar .sb-level-2>.sidebar-group[open]>summary{background:transparent;border-radius:0;margin:0;padding-left:12px;color:#fff;font-weight:700}
.sidebar .sb-level-2>.sidebar-group[open]>summary>i:first-child,.sidebar .sb-level-2>.sidebar-group>summary.active>i:first-child{background:rgba(38,166,154,.22);border-color:rgba(77,182,172,.45);color:#80cbc4}
.sidebar .sb-level-2>.sidebar-group[open]{padding-bottom:4px}
.sidebar .sb-level-2 .sb-back{font-weight:700}

/* ===== Sin degradados: colores sólidos (más sobrio). Se conservan solo las tramas funcionales (días con permiso,
   almuerzo, opción oculta) y la sombra que da legibilidad al texto sobre la foto de la selfie. ===== */
.btn,.btn:hover,.btn:focus,.btn:active,.btn.active,.btn-check:checked+.btn,.btn:disabled,.btn.disabled{background-image:none!important}
.navbar,.dropdown-item:hover,.dropdown-item:focus,.nav-pills .nav-link.active,.progress-bar{background-image:none!important}
.topbar{background:#2fa4e7}
.sidebar-brand{background:var(--sidebar-bg2,#2c3136)}
.panel-title{background:#f6f9fb}
.doc-head{background:#fff}
.prov-head{background:#f6fafd}
.tramite-top{background:#eef6fc}
.stage-recorrido{background:#fff}
.cfg-preview{background:#f8fafc}
.doc-head-ico{background:var(--accent-deep)}
.cfg-escudo{background:#1d6fa5}
.pf-avatar,.gp-av,.mk-av{background:#2b6a95}
.pf-saldo,.kx-disp{background:#00796b}
.kx-disp.mal{background:#b42318}
.poa-barra-b i{background:#2b6a95}
.sb-mod-ico{background:rgba(38,166,154,.2)}
.mk-hora{background:#f2faf9}
.mk-paso.siguiente{background:var(--cb)}
.login-body{background:#2f353b}
/* Cerulean pone una sombra de 1px bajo el texto de pestañas, botones y marca: hace ver las letras borrosas → nítido */
.nav-link,.navbar-brand,.btn,.badge{text-shadow:none!important}

/* ===== Bandeja de notificaciones: agrupada por día, filas compactas, filtros por tipo ===== */
.nb-cab{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.nb-tit{display:flex;align-items:center;gap:10px}.nb-tit>div{display:flex;flex-direction:column;line-height:1.2}.nb-tit b{font-size:15px}.nb-tit small{font-size:12px;color:var(--ink-3)}
.nb-tit #nNoLeidas{font-weight:700;color:#00695c}
.nb-tit-ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#e0f2f1;color:#00796b;font-size:15px}
.nb-filtros{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line-soft);background:#fbfcfd}
.nb-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:12.5px;font-weight:600;text-decoration:none}
.nb-chip i{font-size:12px;color:#7b8fa3}.nb-chip:hover{border-color:#80cbc4;color:#00695c}
.nb-chip.on{background:#00796b;border-color:#00796b;color:#fff}.nb-chip.on i{color:#fff}
.nb-n{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d32f2f;color:#fff;font-size:10.5px;display:inline-grid;place-items:center}
.nb-chip.on .nb-n{background:#fff;color:#00796b}
.nb-sep{width:1px;height:20px;background:var(--line);margin:0 4px}
.nb-solo .fa-toggle-on{color:#fff}
.nb-lista .nb-dia{padding:8px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:#fff;border-bottom:1px solid var(--line-soft);cursor:default}
.nb-lista .nb-fila{position:relative;display:flex;align-items:center;gap:12px;padding:9px 14px 9px 16px;border-bottom:1px solid var(--line-soft);background:#fff}
.nb-lista .nb-fila:hover{background:#f6fafd}
.nb-lista .nb-fila.no-leida{background:#f4fbfa}
.nb-lista .nb-fila.no-leida::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#00897b}
.nb-lista .nb-fila .notif-ico{width:34px;height:34px;font-size:13px;flex:0 0 34px}
.nb-lista .notif-body{flex:1;min-width:0}
.nb-lista .notif-titulo{display:block;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-lista .nb-fila.no-leida .notif-titulo{font-weight:800}
.nb-lista .nb-fila.leida .notif-titulo{color:var(--ink-2)}
.nb-lista .notif-msg{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1px 0 0}
.nb-lado{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.nb-hora{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.nb-fila.no-leida .nb-hora{color:#00695c;font-weight:700}
.nb-tram{font-size:11px;font-weight:700;color:#1f5f8f;background:#e6f1fa;border-radius:6px;padding:2px 7px;white-space:nowrap}
.nb-lista .btn-leer{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:#fff;color:#00796b;display:grid;place-items:center;opacity:0;transition:opacity .12s}
.nb-fila:hover .btn-leer,.nb-fila:focus-within .btn-leer,.btn-leer:focus-visible{opacity:1}
.nb-lista .btn-leer:hover{background:#e0f2f1;border-color:#80cbc4}
.nb-vacio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;color:var(--ink-3)}.nb-vacio>i{font-size:26px}.nb-vacio b{color:var(--ink-2)}
@media (hover:none){.nb-lista .btn-leer{opacity:1}}
@media (max-width:575.98px){.nb-tram{display:none}.nb-cab{flex-wrap:wrap}.nb-cab form{margin-left:0!important}}
.notif-ico.tipo-AGENDA{background:#e0f2f1;color:#00695c;border-color:#b2dfdb}
.notif-ico.tipo-TRAMITE_ADM{background:#fff4dc;color:#8a5300;border-color:#f1c56b}

/* ===== Agenda de espacios (Administrativo) ===== */
.ag-cab{background:var(--surf-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}
.ag-cab-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ag-cab-ico{width:38px;height:38px;border-radius:10px;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;font-size:17px;flex:none}
.ag-cab-t>div:nth-child(2){flex:1 1 220px;min-width:0}
.ag-cab h1{font-size:1.05rem;font-weight:700;margin:0;color:var(--ink)}
.ag-cab p{margin:0;font-size:.8rem;color:var(--ink-3)}
.ag-acc{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ag-link{font-size:.82rem;color:var(--ink-2);text-decoration:none;font-weight:600}.ag-link:hover{color:var(--ok)}
.ag-kpis{display:flex;flex-wrap:wrap;gap:6px}
.ag-kpi{display:inline-flex;align-items:center;gap:7px;padding:4px 10px 4px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surf-1);font-size:.8rem;color:var(--ink-2);text-decoration:none}
.ag-kpi i{font-size:.8rem}.ag-kpi b{color:var(--ink);font-size:.9rem}
.ag-kpi:hover{border-color:var(--line-strong);background:#fff}
.ag-kpi.k-pend i{color:var(--warn)}.ag-kpi.k-hoy i,.ag-kpi.k-sem i{color:var(--ok)}
.ag-kpi.k-venc{border-color:var(--bad-line);background:var(--bad-bg)}.ag-kpi.k-venc i{color:var(--bad)}

.ag-cal-panel{padding:0}
.ag-cal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--line-soft);background:var(--surf-1)}
.ag-mes{display:flex;align-items:center;gap:4px}
.ag-mes b{min-width:150px;text-align:center;font-size:.98rem;color:var(--ink)}
.ag-nav{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink-2);display:grid;place-items:center}
.ag-nav:hover{border-color:var(--ok-line);color:var(--ok)}
.ag-mes .btn{margin-left:4px}
.ag-esp-filtro{display:flex;gap:4px;flex-wrap:wrap}
.ag-esp{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 10px;font-size:.78rem;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.ag-esp i,.ag-esp-chip i{width:9px;height:9px;border-radius:3px;display:inline-block}
.ag-esp.on{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok);font-weight:600}
.ag-cal{position:relative;min-height:300px}
.ag-cal.cargando .ag-g{opacity:.55;transition:opacity .15s}
.ag-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.ag-dw{padding:5px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);border-bottom:1px solid var(--line-soft)}
.ag-d{min-height:96px;padding:4px 5px 5px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:0;outline:0}
.ag-d:nth-child(7n){border-right:0}
.ag-d:hover{background:#fafcfd}
.ag-d:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.ag-d.fds{background:#fbfcfd}
.ag-d.fuera{background:var(--surf-1)}.ag-d.fuera .ag-dn{color:#b5bfca}
.ag-d.sel{background:var(--tint);box-shadow:inset 0 0 0 1px var(--tint-2)}
.ag-dn{font-size:.78rem;font-weight:600;color:var(--ink-2);width:22px;height:22px;display:grid;place-items:center;border-radius:50%}
.ag-d.hoy .ag-dn{background:var(--ok);color:#fff}
.ag-ev{all:unset;box-sizing:border-box;display:block;width:100%;font-size:.72rem;line-height:1.3;padding:2px 5px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;
  background:color-mix(in srgb,var(--c) 13%,#fff);border-left:3px solid var(--c);color:var(--ink)}
.ag-ev b{font-weight:600;color:color-mix(in srgb,var(--c) 70%,#000)}
.ag-ev:hover{background:color-mix(in srgb,var(--c) 22%,#fff)}
.ag-ev:focus-visible{outline:2px solid var(--accent)}
.ag-ev.e1{background:#fff;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 30%,#fff);border-left-style:dotted;color:var(--ink-2)}
.ag-ev.e1:hover{background:color-mix(in srgb,var(--c) 8%,#fff)}
.ag-ev.e3{opacity:.55;text-decoration:line-through}
.ag-mas{all:unset;font-size:.7rem;color:var(--accent-deep);font-weight:600;padding:0 5px;cursor:pointer}
.ag-ley{display:flex;gap:14px;flex-wrap:wrap;padding:6px 10px;font-size:.74rem;color:var(--ink-3);border-top:1px solid var(--line-soft)}
.ag-ley i{display:inline-block;width:14px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px;border-left:3px solid var(--ok);background:var(--ok-bg)}
.ag-ley .ag-ley-p{border-left-style:dotted;background:#fff;box-shadow:inset 0 0 0 1px var(--ok-line)}
.ag-ley .ag-ley-c{opacity:.5}
.ag-dia-det{border-top:1px solid var(--line);padding:8px 10px;background:#fff}
.ag-dia-t{display:flex;align-items:center;gap:10px;margin-bottom:6px}.ag-dia-t span{font-size:.8rem;color:var(--ink-3)}
.ag-dia-ev{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border-radius:8px;border:1px solid var(--line-soft);border-left:4px solid var(--c);margin-bottom:5px;cursor:pointer}
.ag-dia-ev:hover{background:var(--surf-1)}.ag-dia-ev:focus-visible{outline:2px solid var(--accent)}
.ag-dia-ev.e3{opacity:.6}
.ag-dia-h{font-weight:700;font-size:.85rem;color:var(--ink);display:flex;flex-direction:column;line-height:1.1;min-width:44px}.ag-dia-h small{font-weight:500;color:var(--ink-3);font-size:.72rem}
.ag-dia-x{flex:1;min-width:0;display:flex;flex-direction:column}.ag-dia-x b{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ag-dia-x small{color:var(--ink-3);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ag-est{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:999px;white-space:nowrap}
.ag-est.e1{background:var(--warn-bg);color:var(--warn)}.ag-est.e2{background:var(--ok-bg);color:var(--ok)}.ag-est.e3{background:var(--bad-bg);color:var(--bad)}
.ag-esp-chip{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-2);white-space:nowrap}
.ag-recs{display:inline-flex;gap:8px;color:var(--ink-3);font-size:.8rem}.ag-recs span{display:inline-flex;align-items:center;gap:2px}
tr.gp-fila.off td{opacity:.6}

/* detalle */
.ag-det{border-radius:14px;overflow:hidden}
.ag-det-cab{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 10px}
.ag-det-color{width:6px;align-self:stretch;border-radius:3px;flex:none}
.ag-det-cab h2{font-size:1.05rem;font-weight:700;margin:0 0 3px;color:var(--ink)}
.ag-det-cab p{margin:0;font-size:.78rem;color:var(--ink-3);display:flex;gap:8px;align-items:center}
.ag-det-cuerpo{padding:2px 16px 12px}
.ag-det-f{display:grid;grid-template-columns:18px 92px 1fr;gap:6px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line-soft);font-size:.86rem}
.ag-det-f>i{color:var(--ink-3);font-size:.8rem}.ag-det-f>span{color:var(--ink-3);font-size:.78rem}.ag-det-f>b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.ag-det-recs{display:flex;flex-wrap:wrap;gap:5px}.ag-det-recs span{font-weight:500;background:var(--surf-1);border:1px solid var(--line-soft);border-radius:6px;padding:1px 7px;font-size:.8rem}
.ag-det .modal-footer{flex-wrap:wrap;gap:6px}
.ag-det-hist{display:flex;flex-direction:column;gap:2px;margin-top:8px;font-size:.74rem;color:var(--ink-3)}

/* formulario */
.ag-fb{display:flex;flex-direction:column;gap:8px}
.ag-fila{display:flex;gap:10px;flex-wrap:wrap}
.ag-c{display:flex;flex-direction:column;gap:3px;flex:1 1 160px;min-width:0;margin:0}
.ag-c>span{font-size:.75rem;font-weight:600;color:var(--ink-2)}.ag-c>span small{font-weight:400;color:var(--ink-3)}
.ag-c2{flex-basis:100%}.ag-cn{flex:0 0 110px}
.ag-sec{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-top:6px;display:flex;align-items:center;gap:6px}
.ag-sec::after{content:'';flex:1;height:1px;background:var(--line-soft)}
.ag-esps{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.ag-esp-op{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;cursor:pointer;margin:0;background:#fff}
.ag-esp-op input{position:absolute;opacity:0;pointer-events:none}
.ag-esp-op>i{width:12px;height:12px;border-radius:4px;flex:none}
.ag-esp-ninguno>i{border:1.5px dashed var(--line-strong)}
.ag-esp-op span{display:flex;flex-direction:column;min-width:0}.ag-esp-op b{font-size:.84rem;font-weight:600;color:var(--ink)}.ag-esp-op small{font-size:.72rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-esp-op:hover{border-color:var(--line-strong)}
.ag-esp-op:has(input:checked){border-color:var(--ok);background:var(--ok-bg);box-shadow:0 0 0 1px var(--ok)}
.ag-esp-op:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.ag-disp{font-size:.8rem;padding:6px 10px;border-radius:8px;border:1px solid}
.ag-disp.bien{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.ag-disp.ojo{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.ag-disp.mal{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.ag-recs-op{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.ag-rec{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;cursor:pointer;margin:0;background:#fff;position:relative;min-height:42px}
.ag-rec>input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.ag-rec>i{width:26px;height:26px;border-radius:7px;background:var(--surf-1);color:var(--ink-3);display:grid;place-items:center;font-size:.85rem;flex:none}
.ag-rec-n{font-size:.8rem;font-weight:600;color:var(--ink-2);flex:1;min-width:0;line-height:1.15}
.ag-rec-cant{display:none;align-items:center;gap:3px}
.ag-rec-cant input{width:46px;border:1px solid var(--ok-line);border-radius:6px;padding:1px 4px;font-size:.8rem;text-align:center}
.ag-rec-d{font-size:.68rem;color:var(--ink-3);white-space:nowrap}
.ag-rec:hover{border-color:var(--line-strong)}
.ag-rec.on{border-color:var(--ok);background:var(--ok-bg)}
.ag-rec.on>i{background:var(--ok);color:#fff}
.ag-rec.on .ag-rec-n{color:var(--ink)}
.ag-rec.on .ag-rec-cant{display:flex}
.ag-rec:has(input[type=checkbox]:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.ag-rec.agotado:not(.on){opacity:.5}
.ag-rec.agotado.on{border-color:var(--bad);background:var(--bad-bg)}
.ag-aprobar{font-size:.85rem;margin-top:4px}.ag-aprobar small{color:var(--ink-3)}
.ag-err{font-size:.84rem;color:var(--bad);background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:8px;padding:6px 10px}
@media (max-width:767.98px){
  .ag-d{min-height:56px}.ag-ev{font-size:0;height:6px;padding:0;border-radius:3px;border-left-width:0;background:var(--c)}.ag-ev b{display:none}.ag-ev.e1{background:color-mix(in srgb,var(--c) 45%,#fff)}
  .ag-mes b{min-width:110px}.ag-acc{margin-left:0;width:100%}.ag-cn{flex:1 1 100px}
}

/* ===== Órdenes de despacho (Administrativo) ===== */
.ds-rango{display:inline-flex;align-items:center;gap:5px;margin:0;color:var(--ink-3);font-size:.8rem}
.ds-rango input{width:auto;min-width:0}
.ds-totales{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:6px 12px;border-bottom:1px solid var(--line-soft);background:var(--surf-1);font-size:.8rem;color:var(--ink-2)}
.ds-totales b{color:var(--ink)}.ds-totales a{margin-left:auto;color:var(--ink-3);text-decoration:none}.ds-totales a:hover{color:var(--bad)}
.ds-coms{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.ds-n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-weight:700;font-size:.72rem;margin-right:3px}
.ds-m3{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.ds-barra{position:relative;height:20px;background:var(--surf-1);border-radius:5px;overflow:hidden}
.ds-barra i{position:absolute;inset:0 auto 0 0;background:var(--ok-line);border-radius:5px}
.ds-barra span{position:relative;font-size:.75rem;font-weight:600;padding-left:7px;line-height:20px;color:var(--ink);font-variant-numeric:tabular-nums}
.ds-com td{font-variant-numeric:tabular-nums}
.ds-ent{display:flex;flex-direction:column;gap:5px}
.ds-ent-h,.ds-ent-f{display:grid;grid-template-columns:22px 96px minmax(150px,1.3fr) 86px minmax(120px,1fr) 30px;gap:6px;align-items:center}
.ds-ent-h{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:0 2px}
.ds-ent-n{font-size:.78rem;color:var(--ink-3);text-align:center;font-variant-numeric:tabular-nums}
.ds-ent-f input[name=e_cantidad]{text-align:right}
.ds-quitar{border:0;background:none;color:var(--ink-3);width:30px;height:30px;border-radius:7px}
.ds-quitar:hover{background:var(--bad-bg);color:var(--bad)}
.ds-ent-pie{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ds-total{margin-left:auto;font-size:.85rem;color:var(--ink-2)}.ds-total b{color:var(--ok);font-size:.95rem}
.ds-det-g{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}
.ds-det-t{font-size:.84rem}.ds-det-t th{font-size:.7rem;text-transform:uppercase;color:var(--ink-3);font-weight:700}
@media (max-width:767.98px){
  .ds-ent-h{display:none}
  .ds-ent-f{grid-template-columns:22px 1fr 1fr 30px;padding:6px;border:1px solid var(--line-soft);border-radius:8px}
  .ds-ent-f select,.ds-ent-f .cs{grid-column:2/4}.ds-ent-f input[name=e_recibe]{grid-column:2/4}
  .ds-det-g{grid-template-columns:1fr}.ds-rango{flex-wrap:wrap}
}
/* agenda: varias fechas por solicitud */
.ag-sec-n{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3)}
.ag-hor{display:flex;flex-direction:column;gap:5px}
.ag-hor-h,.ag-hor-f{display:grid;grid-template-columns:minmax(130px,1.2fr) 100px 100px minmax(130px,1fr) 56px;gap:6px;align-items:center}
.ag-hor-h{font-size:.72rem;font-weight:600;color:var(--ink-2);padding:0 2px}.ag-hor-h small{font-weight:400;color:var(--ink-3)}
.ag-hor-acc{display:flex;align-items:center;justify-content:flex-end;gap:2px}
.ag-hor-est{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.62rem}
.ag-hor-est.bien{background:var(--ok-bg);color:var(--ok)}.ag-hor-est.bien::before{content:'\2713'}
.ag-hor-est.ojo{background:var(--warn-bg);color:var(--warn)}.ag-hor-est.ojo::before{content:'!'}
.ag-hor-est.mal{background:var(--bad-bg);color:var(--bad)}.ag-hor-est.mal::before{content:'\2715'}
.ag-hor-pie{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ag-hor-pie small{font-size:.74rem}
.ag-grupo{margin-top:10px;display:flex;flex-direction:column;gap:3px}
.ag-grupo>b{font-size:.78rem;color:var(--ink-2);margin-bottom:2px}
.ag-grupo-f{all:unset;box-sizing:border-box;display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;padding:4px 8px;border-radius:7px;border:1px solid var(--line-soft);font-size:.82rem;cursor:pointer;font-variant-numeric:tabular-nums}
.ag-grupo-f:hover{background:var(--surf-1)}.ag-grupo-f:focus-visible{outline:2px solid var(--accent)}
.ag-grupo-f.yo{border-color:var(--ok-line);background:var(--ok-bg);cursor:default}
@media (max-width:767.98px){.ag-hor-h{display:none}.ag-hor-f{grid-template-columns:1fr 1fr;padding:6px;border:1px solid var(--line-soft);border-radius:8px}.ag-hor-f input[name=h_dia]{grid-column:1/-1}}

/* ===== Trámites (Administrativo) ===== */
.tr-cnt{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line);font-size:.7rem;font-weight:700;color:var(--ink-2);margin-left:3px}
.nav-link.active .tr-cnt{background:rgba(255,255,255,.25);border-color:transparent;color:inherit}
.tr-cnt.mal{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.tr-tabla td{vertical-align:top}
.tr-meta{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.tr-meta>span{font-size:.66rem;font-weight:700;letter-spacing:.03em;padding:1px 6px;border-radius:4px;background:var(--surf-1);color:var(--ink-3);border:1px solid var(--line-soft)}
.tr-meta .tr-cat{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.tr-asunto{max-width:520px}
.tr-det{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.84rem;font-weight:600;color:var(--ink);margin-top:3px;line-height:1.3}
.tr-cargo{min-width:170px;max-width:240px}.tr-cargo b{display:block;font-size:.8rem;font-weight:600;color:var(--ink);line-height:1.25}.tr-cargo small{font-size:.72rem;color:var(--ink-3)}.tr-cargo small.tr-lento{color:var(--warn);font-weight:600}
.tr-cargo .ag-est{margin-bottom:3px}
.tr-tarea{max-width:280px}.tr-tarea>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.8rem;color:var(--ink-2);line-height:1.3}.tr-tarea small{display:block;font-size:.72rem;color:var(--ink-3);margin-top:2px}
.tr-volver{margin-bottom:8px}.tr-volver a{font-size:.82rem;color:var(--ink-3);text-decoration:none}.tr-volver a:hover{color:var(--ok)}
.tr-card{background:var(--surf-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.tr-cab{margin-bottom:10px}
.tr-cab-t{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tr-cod{font-size:.8rem;font-weight:800;color:var(--ink-2);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.tr-acc{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tr-titulo{font-size:.9rem;font-weight:600;color:var(--ink);margin:8px 0 0;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:110ch}
.tr-titulo.abierto{display:block;-webkit-line-clamp:unset}
.tr-mas{all:unset;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--accent-deep);margin-top:2px}.tr-mas:hover{text-decoration:underline}.tr-mas:focus-visible{outline:2px solid var(--accent)}
.tr-tira{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:flex-start;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.tr-ahora{display:flex;flex-direction:column;gap:1px;padding:6px 12px;border-radius:9px;background:var(--ok-bg);border:1px solid var(--ok-line);max-width:340px}
.tr-ahora-l{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}
.tr-ahora b{font-size:.86rem;color:var(--ink);line-height:1.25}
.tr-ahora small{font-size:.72rem;color:var(--ink-3)}
.tr-tuyo{align-self:flex-start;font-size:.7rem;font-weight:700;color:var(--ok);margin-top:2px}
.tr-datos{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0;flex:1;min-width:0}
.tr-datos dt{font-size:.66rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.tr-datos dd{margin:1px 0 0;font-size:.84rem;font-weight:600;color:var(--ink)}.tr-datos dd small{font-weight:400;color:var(--ink-3)}
.tr-archs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tr-arch{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);font-size:.8rem;max-width:100%}
.tr-arch i{color:#c62828}.tr-arch span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr-arch small{color:var(--ink-3)}
.tr-arch:hover{border-color:var(--ok-line);background:var(--ok-bg)}
.tr-cierre{margin-top:10px;padding:8px 12px;border-radius:8px;font-size:.84rem;display:flex;flex-direction:column;gap:2px}
.tr-cierre.e2{background:var(--ok-bg);color:var(--ink)}.tr-cierre.e3{background:var(--bad-bg);color:var(--ink)}.tr-cierre b{font-size:.76rem;color:var(--ink-2)}
.tr-panel{padding:14px 16px}
.tr-instr{max-width:110ch}
.tr-instr-c{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;margin-bottom:6px}.tr-instr-c b{font-size:.84rem}.tr-instr-c span{font-size:.82rem;color:var(--ink-2)}.tr-instr-c small{font-size:.74rem;color:var(--ink-3)}
.tr-instr-t{font-size:.9rem;line-height:1.55;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surf-1);border-left:3px solid var(--ok);border-radius:0 8px 8px 0;padding:10px 14px}
.tr-resp{border-left:3px solid var(--ok-line);padding:4px 0 8px 12px;margin-bottom:8px;max-width:110ch}
.tr-resp-c{display:flex;gap:8px;align-items:baseline}.tr-resp-c b{font-size:.84rem}.tr-resp-c small{font-size:.74rem;color:var(--ink-3)}
.tr-resp p{margin:3px 0 0;font-size:.86rem;white-space:pre-wrap}
.tr-resp-f{display:flex;flex-direction:column;gap:6px;margin-top:6px;border-top:1px dashed var(--line);padding-top:10px;max-width:110ch}
.tr-rec{list-style:none;margin:0 0 0 6px;padding:0 0 0 16px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:12px;max-width:110ch}
.tr-rec li{position:relative;display:flex;flex-direction:column;gap:2px}
.tr-rec li::before{content:'';position:absolute;left:-22px;top:4px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--line-strong)}
.tr-rec li.actual::before{background:var(--ok);border-color:var(--ok)}
.tr-rec-c{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}.tr-rec-c b{font-size:.82rem;color:var(--ink)}.tr-rec-c small{font-size:.72rem;color:var(--ink-3)}
.tr-rec-p{font-size:.72rem;color:var(--ink-3)}
.tr-rec-a{font-size:.84rem;color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tr-rec-a.abierto{display:block}
.tr-rec-a.largo{cursor:pointer}.tr-rec-a.largo:not(.abierto)::after{content:''}
@media (max-width:767.98px){.tr-acc{margin-left:0;width:100%}.tr-acc .btn-success{flex:1}.tr-ahora{max-width:none;width:100%}}

/* ===== Salud ocupacional ===== */
.sa-ico{background:#fdeeee;color:#b3261e}
.sa-dia{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line-soft);background:var(--surf-1)}
.sa-dia-t b{font-size:.95rem;color:var(--ink)}.sa-hoy{margin-left:8px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--ok);color:#fff;border-radius:999px;padding:1px 8px}
.sa-dia form input{width:auto}
.sa-lista{list-style:none;margin:0;padding:0}
.sa-at{display:grid;grid-template-columns:62px minmax(0,1fr) auto auto;gap:6px 16px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line-soft)}
.sa-at:hover{background:#fafcfd}.sa-at.nuevo{background:var(--tint)}
.sa-at.anulada{opacity:.6}
.sa-hora{font-size:1.05rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;display:flex;flex-direction:column;line-height:1.15}.sa-hora small{font-size:.68rem;font-weight:600;color:var(--ink-3)}
.sa-vacio-acc{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}
.sa-at{grid-template-columns:76px minmax(0,1fr) auto auto}
.sa-pac{display:flex;flex-direction:column;min-width:0}.sa-pac b{font-size:.9rem;color:var(--ink)}.sa-pac small{font-size:.74rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-obs{font-size:.8rem;color:var(--ink-2);margin-top:2px}.sa-dx{font-size:.76rem;color:var(--ink-2);margin-top:2px}.sa-dx i{color:var(--ok)}
.sa-pasos{list-style:none;display:flex;margin:0;padding:0;gap:0}
.sa-pasos li{display:flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;color:var(--ink-3);padding:3px 9px;border:1px solid var(--line);background:#fff;margin-left:-1px}
.sa-pasos li:first-child{border-radius:999px 0 0 999px;margin-left:0}.sa-pasos li:last-child{border-radius:0 999px 999px 0}
.sa-pasos li.hecho{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-line)}
.sa-pasos li.sig{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg)}
.sa-acc{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.sa-signos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.sa-signo{display:flex;flex-direction:column;gap:3px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.sa-signo>span:first-child{font-size:.76rem;font-weight:600;color:var(--ink-2)}
.sa-signo-in{display:flex;align-items:center;gap:6px}.sa-signo-in input{font-size:1.05rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.sa-signo-in em{font-style:normal;font-size:.76rem;color:var(--ink-3);min-width:36px}
.sa-signo small{font-size:.68rem;color:var(--ink-3)}
.sa-signo.fuera{border-color:var(--warn-line);background:var(--warn-bg)}.sa-signo.fuera input{color:var(--warn)}
.sa-pac-cab{margin-bottom:10px}
.sa-pac-t{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sa-avatar{width:46px;height:46px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;font-weight:700;font-size:1rem;flex:none}
.sa-pac-n{flex:1;min-width:200px}.sa-pac-n h1{font-size:1.05rem;font-weight:700;margin:0;color:var(--ink)}.sa-pac-n p{margin:0;font-size:.8rem;color:var(--ink-3)}
.sa-pac-acc{display:flex;gap:12px;align-items:center}
.sa-pac-res{display:flex;gap:16px;font-size:.8rem;color:var(--ink-3)}.sa-pac-res b{color:var(--ink);font-size:.95rem}
.sa-ant{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.sa-ant-chip{font-size:.74rem;padding:2px 9px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line);color:var(--ink-2)}
.sa-ant-chip.alergia{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad);font-weight:700}
.sa-vitales{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}
.sa-vital{display:inline-flex;align-items:baseline;gap:4px;padding:4px 10px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft)}
.sa-vital small{font-size:.68rem;font-weight:700;color:var(--ink-3);text-transform:uppercase}.sa-vital b{font-size:.98rem;color:var(--ink);font-variant-numeric:tabular-nums}.sa-vital em{font-style:normal;font-size:.7rem;color:var(--ink-3)}
.sa-vital.alto,.sa-vital.bajo{background:var(--warn-bg);border-color:var(--warn-line)}.sa-vital.alto b,.sa-vital.bajo b,.sa-vital i{color:var(--warn)}.sa-vital i{font-size:.7rem}
.sa-vital-por{font-size:.72rem;color:var(--ink-3)}
.sa-motivo-cita{margin:8px 0 0;font-size:.84rem;color:var(--ink-2)}
.sa-form{display:flex;flex-direction:column;gap:10px;max-width:110ch}
.sa-form textarea{line-height:1.45}
.sa-ro span{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.sa-ro p{margin:2px 0 0;font-size:.9rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.sa-pills{display:flex;flex-wrap:wrap;gap:6px}
.sa-pill{margin:0;cursor:pointer}.sa-pill input{position:absolute;opacity:0;pointer-events:none}
.sa-pill span{display:inline-block;padding:5px 12px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--ink-2);background:#fff}
.sa-pill input:checked+span{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.sa-pill input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.sa-dx-p{display:flex;gap:10px;flex-wrap:wrap}.sa-dx-p>.ag-c2{flex:1 1 380px}.sa-cond{flex:0 1 260px}
.sa-cie{position:relative}
.sa-cie-res{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 2px);background:#fff;border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 8px 24px -8px rgba(16,42,67,.25);max-height:280px;overflow:auto}
.sa-cie-op{padding:6px 10px;font-size:.82rem;cursor:pointer;border-bottom:1px solid var(--line-soft)}.sa-cie-op b{color:var(--ok);margin-right:4px}.sa-cie-op.act,.sa-cie-op:hover{background:var(--tint)}.sa-cie-op.off{color:var(--ink-3);cursor:default}
.sa-cie-v{margin:2px 0 0;font-size:.9rem}.sa-cie-v b{color:var(--ok)}
.sa-dxs,.sa-ins{display:flex;flex-direction:column;gap:6px}
.sa-dx-f{display:grid;grid-template-columns:minmax(0,1fr) 220px 30px;gap:6px;align-items:center}
.sa-ins-f{display:grid;grid-template-columns:minmax(0,1fr) 100px 30px;gap:6px;align-items:center;max-width:620px}
.sa-ins-ro{margin:0;padding-left:18px;font-size:.88rem}
.sa-cert{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--ok-line);background:var(--ok-bg);border-radius:10px;max-width:620px;margin-bottom:6px}
.sa-cert>i{color:var(--ok);font-size:1.1rem}.sa-cert span{display:flex;flex-direction:column}.sa-cert b{font-size:.86rem}.sa-cert small{font-size:.74rem;color:var(--ink-3)}
.sa-cert.anulado{border-color:var(--line);background:var(--surf-1);opacity:.7}
.sa-dias{align-self:flex-end;font-size:.86rem;font-weight:700;color:var(--ok);padding-bottom:8px}
.sa-guardar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:12px;justify-content:flex-end;padding:10px 16px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;box-shadow:0 -6px 16px -12px rgba(16,42,67,.3)}
.sa-guardar span{margin-right:auto}.sa-guardar .btn{white-space:nowrap;flex:none}
.sa-sig-t th{font-size:.7rem;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.sa-sig-t th small{display:block;text-transform:none;font-weight:400}.sa-sig-t td{font-variant-numeric:tabular-nums}
.sa-fuera{color:var(--warn);font-weight:700}
.sa-ant-lista{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:5px;max-width:110ch}
.sa-ant-lista li{display:grid;grid-template-columns:150px minmax(0,1fr) auto 30px;gap:10px;align-items:center;padding:6px 10px;border:1px solid var(--line-soft);border-radius:8px;font-size:.86rem}
.sa-ant-lista li.alergia{border-color:var(--bad-line);background:var(--bad-bg)}
.sa-ant-tipo{font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--ink-3)}.sa-ant-lista li.alergia .sa-ant-tipo{color:var(--bad)}.sa-ant-lista small{font-size:.72rem;color:var(--ink-3)}
.sa-ant-f{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:6px;max-width:110ch}
.sa-stock{font-weight:700;font-variant-numeric:tabular-nums}.sa-stock.bajo{color:var(--bad)}
@media (max-width:767.98px){
  .sa-at{grid-template-columns:52px minmax(0,1fr)}.sa-pasos,.sa-acc{grid-column:1/-1}.sa-acc{justify-content:flex-start}
  .sa-dx-f{grid-template-columns:minmax(0,1fr) 30px}.sa-dx-f select,.sa-dx-f .cs{grid-column:1}
  .sa-ant-lista li{grid-template-columns:minmax(0,1fr) 30px}.sa-ant-f{grid-template-columns:1fr}
}
/* salud: receta y estudios */
.sa-doc-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:var(--ok-bg);border:1px solid var(--ok-line);font-size:.84rem;font-weight:600;color:var(--ink)}
.sa-doc-bar span{margin-right:auto}.sa-doc-bar i{color:var(--ok)}
.sa-rx{display:flex;flex-direction:column;gap:6px}
.sa-rx-h,.sa-rx-f{display:grid;grid-template-columns:minmax(200px,1.2fr) 80px minmax(220px,1.4fr) 30px;gap:6px;align-items:center}
.sa-rx-h{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.sa-rx-ro{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.sa-rx-ro li b{font-size:.88rem}.sa-rx-ro li span{display:block;font-size:.84rem;color:var(--ink-2)}
.sa-ex-q{max-width:320px}
.sa-ex-g>b{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:4px 0}
.sa-ex-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 10px}
.sa-ex{display:grid;grid-template-columns:auto minmax(0,1fr) 90px;gap:6px;align-items:center;margin:0;padding:3px 6px;border-radius:7px;font-size:.82rem;cursor:pointer}
.sa-ex:hover{background:var(--surf-1)}.sa-ex input[type=checkbox]{accent-color:var(--ok);width:16px;height:16px}
.sa-ex-obs{visibility:hidden;height:26px;font-size:.75rem}.sa-ex:has(input:checked){background:var(--ok-bg)}.sa-ex:has(input:checked) .sa-ex-obs{visibility:visible}.sa-ex:has(input:checked) span{font-weight:600}
.sa-res{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sa-res li{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(0,1.1fr);gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:9px}
.sa-res-c{display:flex;flex-direction:column}.sa-res-c b{font-size:.86rem}.sa-res-c small{font-size:.74rem;color:var(--ink-3)}
.sa-ex-tipo{font-size:.64rem;font-weight:700;letter-spacing:.05em;color:var(--ink-3)}
.sa-res-v p{margin:0;font-size:.86rem;white-space:pre-wrap}.sa-res-v small{display:block;font-size:.72rem;color:var(--ink-3)}
.sa-notas{border-top:1px dashed var(--line);padding-top:8px}.sa-notas summary{font-size:.8rem;font-weight:600;color:var(--ink-2);cursor:pointer;margin-bottom:6px}
@media (max-width:767.98px){.sa-rx-h{display:none}.sa-rx-f{grid-template-columns:1fr 70px 30px}.sa-rx-f input[name=rx_pos]{grid-column:1/3}.sa-res li{grid-template-columns:1fr}}
.sa-cert-est{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px}.sa-cert-acc{display:flex;gap:6px;align-items:center}
/* ficha ocupacional (MSP) */
.fo-cab{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}.fo-cab .ag-c{flex:0 1 300px}
.fo-apt{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok)}.fo-apt.ojo{background:var(--warn-bg);color:var(--warn)}.fo-apt.mal{background:var(--bad-bg);color:var(--bad)}
.fo-letras{font-size:.66rem;font-weight:800;letter-spacing:.06em;opacity:.7;margin-right:2px}
.fo-sec{border:0;margin:0 0 14px;padding:0}
.fo-sec legend{float:none;width:100%;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);background:var(--surf-1);border-radius:7px;padding:5px 10px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.fo-sec legend span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;background:var(--ok);color:#fff;font-size:.72rem}
.fo-grid{display:flex;flex-wrap:wrap;gap:8px 14px}
.fo-c{display:flex;flex-direction:column;gap:3px;flex:1 1 220px;min-width:0;margin:0}.fo-ancho{flex-basis:100%}.fo-corto{flex:0 1 150px}
.fo-l{font-size:.74rem;font-weight:600;color:var(--ink-2)}
.fo-c p{margin:0;font-size:.88rem;white-space:pre-wrap}
.fo-checks{display:flex;flex-wrap:wrap;gap:5px}
.fo-chk{margin:0;cursor:pointer}.fo-chk input{position:absolute;opacity:0;pointer-events:none}
.fo-chk span,.fo-chk.on{display:inline-block;padding:3px 10px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;color:var(--ink-2);background:#fff}
.fo-chk input:checked+span,.fo-chk.on{background:var(--ok-bg);border-color:var(--ok);color:var(--ok);font-weight:600}.fo-chk input:focus-visible+span{outline:2px solid var(--accent)}
.fo-on{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--ok-bg);border:1px solid var(--ok);color:var(--ok);font-size:.8rem;font-weight:700}
.fo-tabla{font-size:.8rem;margin-bottom:4px}.fo-tabla th{font-size:.7rem;color:var(--ink-3);font-weight:700;white-space:nowrap}.fo-tabla td{min-width:90px}
.sa-inv-td{width:1%;white-space:nowrap}
.sa-inv-acc{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.sa-inv-acc .btn{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;width:auto}
@media (min-width:576px) and (max-width:1199.98px){.sa-inv-t{display:none}}
/* inventario en el móvil: cada insumo es una tarjeta (nombre, stock y mínimo, acciones) */
@media (max-width:575.98px){
  .sa-inv-tabla{min-width:0!important;width:100%}.sa-inv-tabla,.sa-inv-tabla tbody{display:block}.sa-inv-tabla thead{display:none}
  .sa-inv-tabla tr{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:6px 14px;padding:10px 12px;border-bottom:1px solid var(--line-soft)}
  .sa-inv-tabla td{display:block;border:0!important;padding:0!important;text-align:left!important;background:transparent!important}
  .sa-inv-tabla td:first-child{grid-column:1/-1}.sa-inv-tabla td[colspan]{grid-column:1/-1;text-align:center!important}
  .sa-inv-tabla tbody td:nth-child(2)::before{content:'Stock ';font-size:11px;color:var(--ink-3)}
  .sa-inv-tabla tbody td:nth-child(3)::before{content:'Mín. ';font-size:11px;color:var(--ink-3)}
  .sa-inv-tabla .sa-inv-td{width:auto}.sa-inv-tabla .sa-inv-acc{justify-content:flex-end}.sa-inv-tabla tr[hidden]{display:none}
}

/* ===== Calendario propio (CFecha) ===== */
.cf{position:relative;display:block;min-width:0}
.cf.cf-auto{display:inline-block;width:150px}.cf-sm.cf-auto{width:132px}
.ds-rango .cf{width:138px}.sa-dia .cf{width:150px}
.cf .cf-txt{padding-right:34px;font-variant-numeric:tabular-nums;width:100%}
.cf-nativo{position:absolute!important;left:0;bottom:0;width:1px!important;height:1px!important;opacity:0;pointer-events:none;padding:0!important;border:0!important}
.cf-btn{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:30px;height:calc(100% - 6px);border:0;border-radius:7px;background:transparent;color:var(--ink-3);display:grid;place-items:center}
.cf-btn:hover,.cf.abierto .cf-btn{color:var(--ok);background:var(--ok-bg)}
.cf-sm .cf-btn{width:26px}.cf-sm .cf-txt{padding-right:30px}
.cf-pop{position:fixed;z-index:2000;width:284px;background:#fff;border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 14px 36px -12px rgba(16,42,67,.38);padding:10px;font-size:.84rem;user-select:none}
.cf-pop[hidden]{display:none}
.cf-cab{display:flex;align-items:center;gap:4px;margin-bottom:6px}
.cf-t{flex:1;text-align:left;border:0;background:none;font-weight:700;color:var(--ink);font-size:.92rem;padding:4px 6px;border-radius:7px;text-transform:capitalize}
.cf-t i{font-size:.6rem;color:var(--ink-3);margin-left:3px}.cf-t:hover{background:var(--surf-1)}
.cf-nav{width:30px;height:30px;border:0;border-radius:8px;background:none;color:var(--ink-2)}.cf-nav:hover{background:var(--surf-1);color:var(--ok)}
.cf-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cf-dw{text-align:center;font-size:.68rem;font-weight:700;color:var(--ink-3);padding:4px 0}
.cf-d{height:34px;border:0;border-radius:8px;background:none;color:var(--ink);font-variant-numeric:tabular-nums;font-size:.84rem}
.cf-d:hover:not(:disabled){background:var(--ok-bg);color:var(--ok)}
.cf-d.fds{color:var(--ink-2)}.cf-d.otro{color:#b3bdc8}
.cf-d.hoy{box-shadow:inset 0 0 0 1.5px var(--ok);font-weight:700;color:var(--ok)}
.cf-d.sel{background:var(--ok);color:#fff;font-weight:700}.cf-d.sel:hover{background:var(--ok);color:#fff}
.cf-d.foco:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cf-d:disabled{color:#cfd6de;text-decoration:line-through;cursor:not-allowed}
.cf-gm{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.cf-m{height:40px;border:0;border-radius:8px;background:var(--surf-1);color:var(--ink);text-transform:capitalize;font-size:.82rem}.cf-m:hover{background:var(--ok-bg);color:var(--ok)}.cf-m.sel{background:var(--ok);color:#fff;font-weight:700}
.cf-anios{display:block;width:100%;margin-top:6px;border:0;background:none;color:var(--accent-deep);font-size:.78rem;font-weight:600;padding:4px}
.cf-pie{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft)}
.cf-lnk{border:0;background:none;color:var(--accent-deep);font-weight:600;font-size:.8rem;padding:3px 8px;border-radius:6px}.cf-lnk:hover{background:var(--tint)}.cf-lnk:disabled{color:#b3bdc8}
.cf-lnk[data-hoy]{color:var(--ok)}

/* ===== Signos vitales (componente) ===== */
.sv{display:flex;flex-direction:column;gap:10px}
.sv-sec{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}
.sv-sec i{color:var(--ok)}.sv-sec::after{content:'';flex:1;height:1px;background:var(--line-soft)}
.sv-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px}
.sv-c{display:flex;flex-direction:column;gap:6px;padding:9px 11px 8px;border:1px solid var(--line);border-radius:11px;background:#fff;transition:border-color .12s,background .12s}
.sv-c:focus-within{border-color:var(--ok);box-shadow:0 0 0 3px rgba(0,121,107,.12)}
.sv-pa{grid-column:span 2}
.sv-h{display:flex;align-items:flex-start;gap:6px;min-width:0}
.sv-h>i{font-size:.78rem;color:var(--ok);width:14px;text-align:center;margin-top:2px}
.sv-n{font-size:.76rem;font-weight:600;color:var(--ink-2);line-height:1.25;flex:1;min-width:0;overflow-wrap:anywhere}
.sv-est{font-size:.64rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:1px 7px;white-space:nowrap}
.sv-est.normal{background:var(--ok-bg);color:var(--ok)}.sv-est.alto{background:var(--bad-bg);color:var(--bad)}.sv-est.bajo{background:#e7f1fb;color:#1a5f9e}
.sv-in{display:flex;align-items:baseline;gap:6px;border-bottom:1.5px solid var(--line);padding-bottom:2px}
.sv-c:focus-within .sv-in{border-color:var(--ok)}
.sv-in input{flex:1;min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:1.45rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;padding:0;line-height:1.2;-moz-appearance:textfield}
.sv-in input::-webkit-outer-spin-button,.sv-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sv-in input::placeholder{color:#c3ccd5;font-size:1rem;font-weight:600;letter-spacing:.04em}
.sv-in em{font-style:normal;font-size:.74rem;font-weight:600;color:var(--ink-3);white-space:nowrap}
.sv-in-pa input{text-align:center}.sv-in-pa b{font-size:1.3rem;color:var(--ink-3);font-weight:400}
.sv-calc output{flex:1;font-size:1.45rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.sv-imc{background:var(--surf-1)}
.sv-rango{font-size:.68rem;color:var(--ink-3)}
.sv-c.fuera{border-color:var(--bad-line);background:#fffafa}.sv-c.fuera .sv-in{border-color:var(--bad-line)}.sv-c.fuera .sv-in input,.sv-c.fuera output{color:var(--bad)}
.sv-obs{display:flex;flex-direction:column;gap:3px;margin:2px 0 0}.sv-obs span{font-size:.74rem;font-weight:600;color:var(--ink-2)}
@media (max-width:575.98px){.sv-g{grid-template-columns:1fr 1fr}.sv-pa{grid-column:1/-1}}
/* hora propia (CHora) */
.ch-pop{position:fixed;z-index:2000;max-height:240px;overflow:auto;background:#fff;border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 14px 36px -12px rgba(16,42,67,.38);padding:4px;font-variant-numeric:tabular-nums}
.ch-pop[hidden]{display:none}
.ch-op{padding:5px 10px;border-radius:7px;font-size:.86rem;color:var(--ink-2);cursor:pointer}.ch-op.hr{color:var(--ink);font-weight:600}
.ch-op:hover,.ch-op.act{background:var(--ok-bg);color:var(--ok)}.ch-op.sel{background:var(--ok);color:#fff;font-weight:700}
/* certificado de reposo (consulta) */
.cr-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;max-width:760px}
.cr-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--surf-1);border-bottom:1px solid var(--line-soft)}
.cr-ico{width:34px;height:34px;border-radius:9px;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;flex:none}
.cr-cab>div:not(.cr-seg){display:flex;flex-direction:column;flex:1;min-width:180px}.cr-cab b{font-size:.9rem;color:var(--ink)}.cr-cab small{font-size:.74rem;color:var(--ink-3)}
.cr-seg{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.cr-seg label{margin:0;cursor:pointer}.cr-seg input{position:absolute;opacity:0;pointer-events:none}
.cr-seg span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.cr-seg input:checked+span{background:var(--ok);color:#fff}.cr-seg input:focus-visible+span{outline:2px solid var(--accent)}
.cr-cuerpo{padding:12px 12px 4px;display:flex;flex-direction:column;gap:8px}
.cr-campos{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.cr-c{display:flex;flex-direction:column;gap:3px;margin:0;width:170px}.cr-c.cr-h{width:120px}
.cr-c>span{font-size:.74rem;font-weight:600;color:var(--ink-2)}.cr-c>span small{font-weight:400;color:var(--ink-3)}
.cr-flecha{color:var(--ink-3);padding-bottom:9px}
@media (max-width:575.98px){.cr-campos{gap:8px}.cr-c,.cr-c.cr-h{flex:1 1 0;width:auto;min-width:118px}.cr-flecha{flex:none}}
.cr-rap{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cr-rap>span{font-size:.72rem;color:var(--ink-3)}
.cr-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 11px;font-size:.76rem;font-weight:600;color:var(--ink-2)}.cr-chip:hover{border-color:var(--ok);color:var(--ok);background:var(--ok-bg)}
.cr-res{margin:8px 12px 0;padding:7px 11px;border-radius:9px;background:var(--ok-bg);color:var(--ink);font-size:.84rem}.cr-res i{color:var(--ok)}.cr-res b{color:var(--ok)}
.cr-res.mal{background:var(--bad-bg)}.cr-res.mal i{color:var(--bad)}
.cr-obs{width:auto;padding:10px 12px 12px}
.sa-rx-med{max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* exámenes por tipo (consulta) */
.ex-form{max-width:none}
.ex-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ex-top .grid-search{max-width:360px;flex:1 1 260px}
.ex-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;align-items:start}
.ex-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.ex-card>header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surf-1);border-bottom:1px solid var(--line-soft)}
.ex-card>header b{font-size:.86rem;color:var(--ink)}
.ex-ico{width:28px;height:28px;border-radius:8px;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;font-size:.85rem}
.ex-cnt{min-width:22px;height:20px;border-radius:999px;background:var(--ok);color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;padding:0 6px}
.ex-cnt:empty,.ex-cnt:where([data-cnt="0"]){opacity:.4}
.ex-lista{max-height:340px;overflow:auto;padding:4px}
.ex-it{border-radius:8px;padding:2px 6px}.ex-it:hover{background:var(--surf-1)}.ex-it.on{background:var(--ok-bg)}
.ex-chk{display:flex;align-items:center;gap:8px;margin:0;padding:4px 0;cursor:pointer;font-size:.84rem;color:var(--ink-2)}
.ex-chk input{width:16px;height:16px;accent-color:var(--ok);flex:none}.ex-it.on .ex-chk span{font-weight:700;color:var(--ink)}
.ex-extra{display:none;gap:6px;align-items:center;padding:0 0 6px 24px}.ex-it.on .ex-extra{display:flex}
.ex-extra input.form-control{height:28px;font-size:.78rem}
.ex-urg{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:.74rem;font-weight:600;color:var(--ink-3);cursor:pointer;white-space:nowrap}
.ex-urg input{accent-color:var(--bad)}.ex-urg:has(input:checked){color:var(--bad)}
.ex-ro{margin:0;padding:8px 10px 8px 28px;font-size:.86rem}
.ex-top .grid-search{margin-left:0}
/* gráficas de signos vitales */
.sa-desc{display:inline-flex;gap:6px;flex-wrap:wrap}.sa-desc .btn{white-space:nowrap}
@media (max-width:575.98px){.sa-pac-res{flex-wrap:wrap;row-gap:10px}.sa-pac-res .sa-desc{order:2;flex:1 1 100%}.sa-pac-res .sa-desc .btn{flex:1}}
.sv-graf{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;margin-bottom:14px}
.sv-gc{margin:0;border:1px solid var(--line);border-radius:11px;padding:8px 10px 6px;background:#fff}
.sv-gc figcaption{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:2px}
.sv-gc figcaption b{font-size:.84rem;color:var(--ink)}.sv-gc figcaption small{font-size:.72rem;color:var(--ink-3)}
.sv-gc figcaption span{margin-left:auto;font-size:.74rem;font-weight:600;color:var(--ink-2)}.sv-gc figcaption span.mal{color:var(--bad)}
.sv-gc svg{width:100%;height:auto;display:block}
.sv-ley{display:flex;gap:12px;font-size:.7rem;color:var(--ink-3)}.sv-ley i{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle}.sv-ley .sv-ley-n{height:8px;background:#e9f6f4}
/* registrar procedimiento */
.sp-body{display:flex;flex-direction:column;gap:10px}
.sp-sec{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);display:flex;align-items:center;gap:8px;margin-top:4px}
.sp-sec small{text-transform:none;letter-spacing:0;font-weight:500}.sp-sec::after{content:'';flex:1;height:1px;background:var(--line-soft)}
.sp-tipos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sp-tipo{margin:0;cursor:pointer}.sp-tipo input{position:absolute;opacity:0;pointer-events:none}
.sp-tipo>span{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;height:100%;transition:border-color .12s,background .12s}
.sp-tipo i{width:32px;height:32px;border-radius:9px;background:var(--surf-1);color:var(--ink-3);display:grid;place-items:center;font-size:.95rem}
.sp-tipo b{font-size:.82rem;font-weight:600;color:var(--ink-2);line-height:1.25}
.sp-tipo:hover>span{border-color:var(--line-strong)}
.sp-tipo input:checked+span{border-color:var(--ok);background:var(--ok-bg);box-shadow:0 0 0 1px var(--ok)}.sp-tipo input:checked+span i{background:var(--ok);color:#fff}.sp-tipo input:checked+span b{color:var(--ink)}
.sp-tipo input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.sp-det{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:10px 12px;border:1px dashed var(--ok-line);border-radius:12px;background:#fbfefd}
.sp-det .cr-c{width:140px}.sp-det .sp-ancho{width:auto;flex:1 1 240px}.sp-det .sp-pa{width:200px}
.sp-num{display:flex;align-items:baseline;gap:6px;border:1px solid var(--line-strong);border-radius:9px;padding:4px 10px;background:#fff}
.sp-num:focus-within{border-color:var(--ok);box-shadow:0 0 0 3px rgba(0,121,107,.12)}
.sp-num input{flex:1;min-width:0;width:100%;border:0;outline:0;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:transparent;text-align:center}
.sp-num input::-webkit-outer-spin-button,.sp-num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sp-num input::placeholder{font-size:.8rem;color:#c3ccd5;font-weight:600}.sp-num b{color:var(--ink-3);font-weight:400}.sp-num em{font-style:normal;font-size:.72rem;font-weight:600;color:var(--ink-3)}
.sp-ins{display:flex;flex-direction:column;gap:6px}
.sp-prev{font-size:.82rem;padding:8px 11px;border-radius:9px;background:var(--surf-1);color:var(--ink)}.sp-prev span{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-right:4px}
.sp-det[hidden]{display:none}
/* ===== TTHH · Hojas de ruta ===== */
.hr-ico{background:#e3f2fd;color:#1565c0}
.hr-estado{display:inline-flex;align-items:center;font-size:.7rem;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap}
.hr-e-1{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.hr-e-2{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}
.hr-e-3{background:#e3f2fd;border-color:#bbdefb;color:#1565c0}.hr-e-0,.hr-e-anul{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
td .hr-estado{white-space:normal;text-align:left}
.hr-chip{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--surf-1);border:1px solid var(--line-soft);color:var(--ink-2);white-space:nowrap;text-decoration:none;vertical-align:middle}
.hr-chip-w{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.hr-chip-l{background:#f1f3f5;color:var(--ink-3)}
.hr-chip-ok{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}a.hr-chip-ok:hover{border-color:var(--ok)}
.hr-sec{padding:14px 16px;margin-bottom:12px}
.hr-h{font-size:.95rem;font-weight:700;color:var(--ink);margin:0 0 10px;display:flex;align-items:center;gap:8px}.hr-h i{color:#1565c0;font-size:.9rem}
.hr-h-fila{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.hr-h-fila .hr-h{margin-bottom:8px}
.hr-c{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.hr-c>span{font-size:.76rem;font-weight:600;color:var(--ink-2)}.hr-c>span small{font-weight:400;color:var(--ink-3)}
/* formulario */
.hr-wrap{max-width:1120px;margin:0 auto}
.hr-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start;margin-top:8px}
.hr-lado{position:sticky;top:64px}
.hr-campos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.hr-c-ancho{grid-column:1/-1}
.hr-yo{display:flex;flex-direction:column;padding:8px 12px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft)}.hr-yo small{color:var(--ink-3);font-size:.78rem}
.hr-jornada{justify-content:flex-end}.hr-j{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--ink-2);padding:7px 10px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft)}.hr-j-w{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}
.hr-tramos{display:flex;flex-direction:column;gap:10px}
.hr-tramo{position:relative;display:grid;grid-template-columns:26px minmax(0,1.2fr) 112px 112px minmax(0,1.6fr) 30px;gap:10px;align-items:start;padding:12px;border:1px solid var(--line-soft);border-radius:11px;background:var(--surf-2)}
.hr-n{width:24px;height:24px;border-radius:50%;background:#1565c0;color:#fff;font-size:.75rem;font-weight:700;display:grid;place-items:center;margin-top:22px}
.hr-quitar{margin-top:22px;width:30px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--ink-3)}.hr-quitar:hover{background:var(--bad-bg);color:var(--bad)}
.hr-motivo textarea{min-height:38px;resize:vertical}
.hr-agregar{margin-top:10px}
.hr-tarde{margin-top:12px;padding:12px;border-radius:10px;background:var(--warn-bg);border:1px solid var(--warn-line)}.hr-tarde-t{font-size:.82rem;color:#7a4a05;margin-bottom:8px}
.hr-pasos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;counter-reset:p}
.hr-pasos li{position:relative;padding:0 0 12px 30px;counter-increment:p;display:flex;flex-direction:column}
.hr-pasos li::before{content:counter(p);position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--surf-1);border:1px solid var(--line-strong);font-size:.68rem;font-weight:700;display:grid;place-items:center;color:var(--ink-2)}
.hr-pasos li:not(:last-child)::after{content:'';position:absolute;left:10px;top:22px;bottom:2px;width:1px;background:var(--line)}
.hr-pasos li b{font-size:.84rem}.hr-pasos li small{font-size:.75rem;color:var(--ink-3)}
.hr-pasos-e li.hecho::before{content:'✓';background:var(--ok);border-color:var(--ok);color:#fff}.hr-pasos-e li.actual::before{background:#fff7e6;border-color:#f0b75a;color:#7a4a05}.hr-pasos-e li.actual b{color:#7a4a05}
.hr-reglas ul{margin:0;padding-left:18px;font-size:.8rem;color:var(--ink-2);display:flex;flex-direction:column;gap:5px}
.hr-enviar{margin-top:4px}
/* ficha */
.hr-cab{padding:14px 16px;margin:8px 0 12px}
.hr-cab-t{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.hr-cab-n{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:96px;padding:8px 10px;border-radius:10px;background:#00897b;color:#fff;text-align:center}
.hr-cab-n small{font-size:.6rem;letter-spacing:.12em;font-weight:700;opacity:.85}.hr-cab-n b{font-size:1.05rem;font-variant-numeric:tabular-nums}
.hr-cab-d{flex:1 1 260px;min-width:0}.hr-cab-d h1{font-size:1.1rem;font-weight:700;margin:0}.hr-cab-d p{margin:2px 0 0;font-size:.8rem;color:var(--ink-3)}.hr-cab-f{color:var(--ink-2)!important}
.hr-cab-e{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.hr-cab-acc{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.hr-aviso{margin-top:10px;padding:8px 12px;border-radius:9px;font-size:.82rem}.hr-aviso-w{background:var(--warn-bg);border:1px solid var(--warn-line);color:#7a4a05}.hr-aviso-mal{background:var(--bad-bg);border:1px solid var(--bad-line);color:var(--bad)}
.hr-det{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}.hr-det>*{min-width:0}
.hr-valida.si{border-color:var(--ok-line);background:linear-gradient(0deg,#fff,#f1faf8)}.hr-valida.si .hr-h i{color:var(--ok)}
.hr-valida.no{border-color:var(--warn-line);background:linear-gradient(0deg,#fff,#fffaf0)}.hr-valida.no .hr-h i{color:#b26a00}
.hr-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.84rem}
.hr-checks li{display:flex;gap:8px;align-items:baseline;color:var(--ink-2)}.hr-checks li i{width:14px;color:var(--bad)}.hr-checks li.ok i{color:var(--ok)}
.hr-acts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hr-act{padding:10px 12px;border:1px solid var(--line-soft);border-left:3px solid #1565c0;border-radius:9px;background:var(--surf-2)}
.hr-act-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hr-act-t{font-variant-numeric:tabular-nums;font-weight:700;color:#1565c0;font-size:.86rem}
.hr-act p{margin:4px 0 0;font-size:.85rem;color:var(--ink-2);overflow-wrap:anywhere}
.hr-gps{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}.hr-gps:empty{display:none}
.hr-obs{margin-top:10px;font-size:.84rem;color:var(--ink-2)}
.hr-retorno{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}.hr-retorno summary{cursor:pointer;font-size:.84rem;font-weight:600;color:#1565c0}
.hr-retorno-f{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px}.hr-retorno-f .hr-c{flex:0 1 220px}
.hr-resolver{border-color:#bbdefb}.hr-resolver-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.hr-firmas,.hr-bit{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hr-firmas li,.hr-bit li{display:flex;gap:9px;align-items:flex-start;font-size:.82rem}.hr-firmas li span,.hr-bit li span{display:flex;flex-direction:column;min-width:0}
.hr-firmas li i{color:var(--line-strong);margin-top:3px}.hr-firmas li.ok i{color:var(--ok)}.hr-firmas small,.hr-bit small{color:var(--ink-3);font-size:.74rem}
.hr-bit li>i{width:22px;height:22px;flex:none;border-radius:50%;background:var(--surf-1);display:grid;place-items:center;font-size:.68rem;color:var(--ink-2)}.hr-bit em{font-size:.78rem;color:var(--ink-2);overflow-wrap:anywhere}
@media (max-width:991.98px){.hr-grid,.hr-det{grid-template-columns:minmax(0,1fr)}.hr-lado{position:static}}
@media (max-width:767.98px){
  .hr-tramo{grid-template-columns:26px repeat(2,minmax(0,1fr)) 30px;gap:8px}
  .hr-tramo .hr-n{grid-row:1;margin-top:22px}.hr-tramo .hr-lugar{grid-column:2/4}.hr-tramo .hr-quitar{grid-column:4;grid-row:1}
  .hr-tramo .hr-hora{grid-row:2}.hr-tramo .hr-hora:nth-of-type(2){grid-column:2}.hr-tramo .hr-hora:nth-of-type(3){grid-column:3}.hr-tramo .hr-motivo{grid-column:2/4}
  .hr-campos{grid-template-columns:minmax(0,1fr)}.hr-jornada{justify-content:flex-start}
  .hr-cab-e{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
}
.hr-aj-f{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-items:end}.hr-aj-check{grid-column:1/-1;display:flex;gap:8px;align-items:flex-start}
.hr-docs{display:flex;flex-direction:column;gap:8px}.hr-docs .hr-h{margin-bottom:2px}
.hr-doc{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surf-2)}
.hr-doc-ico{flex:none;width:36px;height:40px;border-radius:8px;display:grid;place-items:center;font-size:18px;background:#fdecea;color:#c62828;position:relative}
.hr-doc.ok .hr-doc-ico{background:var(--ok-bg);color:var(--ok)}.hr-doc.w .hr-doc-ico{background:var(--warn-bg);color:#b26a00}.hr-doc.vacio .hr-doc-ico{background:var(--surf-1);color:var(--ink-3)}
.hr-doc-t{flex:1;min-width:0;display:flex;flex-direction:column}.hr-doc-t b{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hr-doc-t small{font-size:.72rem;color:var(--ink-3);line-height:1.3}
.hr-doc.vacio .hr-doc-t b{color:var(--ink-3)}
.hr-doc-acc{display:flex;gap:4px;flex:none}
.hr-doc-b{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;color:var(--ink-2);text-decoration:none;transition:border-color .12s,color .12s,background .12s}
.hr-doc-b:hover{border-color:#1565c0;color:#1565c0}.hr-doc-b-p{background:#1565c0;border-color:#1565c0;color:#fff}.hr-doc-b-p:hover{background:#0d47a1;color:#fff}
.pd-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
/* ===== Administrativo · Solicitudes a bodega ===== */
.sb-ico{background:#fff1e0;color:#b45309}
.sb-e-resp{background:#ede7f6;border-color:#d1c4e9;color:#5e35b1}
.sb-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line-soft)}
.sb-chip{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);text-decoration:none}
.sb-chip b{font-variant-numeric:tabular-nums;color:var(--ink)}.sb-chip:hover{border-color:var(--line-strong)}.sb-chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.sb-chip.on b{color:#fff}
.sb-dot{width:8px;height:8px;border-radius:50%;border:1px solid;display:inline-block}
.sb-res{max-width:520px}
.sb-para{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.sb-para .sp-tipo>span{flex-direction:row;align-items:center}
.sb-off{opacity:.55;cursor:not-allowed}
.sb-origen{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.8rem;padding:8px 11px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft);color:var(--ink-2);min-height:38px}
.sb-origen.ok{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}.sb-origen.w{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.sb-origen small{opacity:.8}
.sb-items{display:flex;flex-direction:column;gap:10px}
.sb-item{display:grid;grid-template-columns:26px minmax(90px,.8fr) minmax(90px,.8fr) minmax(0,2fr) 30px;gap:8px 10px;align-items:start;padding:12px;border:1px solid var(--line-soft);border-radius:11px;background:var(--surf-2)}
.sb-item .sb-n{grid-row:1/3}.sb-item .sb-prod{grid-column:2/5;grid-row:1}.sb-item .sb-quitar{grid-column:5;grid-row:1}
.sb-item .sb-cant{grid-column:2;grid-row:2}.sb-item .sb-uni{grid-column:3;grid-row:2}.sb-item .sb-obs{grid-column:4;grid-row:2}
.sb-n{background:#b45309}
.sb-prod{position:relative}
.sb-buscar{position:relative}.sb-buscar>i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:.8rem;pointer-events:none}.sb-buscar input{padding-left:31px}
.sb-lista{position:absolute;z-index:30;left:0;right:0;top:calc(100% - 14px);max-height:300px;overflow:auto;background:#fff;border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 10px 28px rgba(16,24,40,.14);padding:4px}
.sb-op{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;padding:7px 9px;border-radius:7px;cursor:pointer}.sb-op b{font-size:.84rem;font-weight:600}.sb-op small{grid-column:1;font-size:.72rem;color:var(--ink-3)}
.sb-op.act,.sb-op:hover{background:var(--surf-1)}
.sb-st{grid-column:2;grid-row:1/3;align-self:center;font-weight:700;font-variant-numeric:tabular-nums;font-size:.82rem;white-space:nowrap}.sb-st em{font-style:normal;font-weight:400;font-size:.7rem;color:var(--ink-3)}
.sb-st.si{color:var(--ok)}.sb-st.no{color:var(--bad)}
.sb-vacio{padding:10px;font-size:.8rem;color:var(--ink-3)}
.sb-info{font-size:.74rem;color:var(--ink-3);min-height:1em}.sb-info.si{color:#00695c}.sb-info.no{color:var(--bad)}
.sb-mas-stock .sb-cant input{border-color:var(--warn-line);background:var(--warn-bg)}
.sb-mas-stock .sb-cant::after{content:'Más de lo que hay';font-size:.7rem;color:#7a4a05}
.sb-quitar{margin-top:22px}
.sb-cab-n{background:#b45309;min-width:120px}
.sb-motivo{margin-top:10px;font-size:.86rem;color:var(--ink-2);overflow-wrap:anywhere}
.sb-ritems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sb-ritem{padding:10px 12px;border:1px solid var(--line-soft);border-left:3px solid #b45309;border-radius:9px;background:var(--surf-2)}
.sb-ritem-h{display:flex;gap:10px;align-items:flex-start}.sb-ritem-h>div{flex:1;min-width:0;display:flex;flex-direction:column}.sb-ritem-h small{font-size:.74rem;color:var(--ink-3)}.sb-ritem-h .hr-n{margin-top:0;background:#b45309}
.sb-pide{font-size:.8rem;color:var(--ink-2);white-space:nowrap}.sb-pide b{font-size:.95rem;color:var(--ink)}
.sb-ritem-s{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0 34px}
.sb-ritem-r{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:8px 0 0 34px}.sb-parcial{width:110px}.sb-robs{flex:1 1 220px}
.sb-seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:9px;overflow:hidden;background:#fff}
.sb-seg label{margin:0;cursor:pointer}.sb-seg input{position:absolute;opacity:0;pointer-events:none}
.sb-seg span{display:block;padding:6px 13px;font-size:.8rem;font-weight:600;color:var(--ink-2);border-left:1px solid var(--line-soft)}.sb-seg label:first-child span{border-left:0}
.sb-seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}
.sb-seg-si input:checked+span{background:var(--ok);color:#fff}.sb-seg-pa input:checked+span{background:#b45309;color:#fff}.sb-seg-no input:checked+span{background:var(--bad);color:#fff}
.sb-tabla th{font-size:.72rem;color:var(--ink-3);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.sb-tabla td{font-size:.84rem}
.sb-r{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid}.sb-r-si{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}.sb-r-pa{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.sb-r-no{background:var(--bad-bg);border-color:var(--bad-line);color:var(--bad)}
.sb-modos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.sb-contrato{font-size:.72rem;background:var(--surf-1);border:1px solid var(--line-soft);border-radius:9px;padding:10px;max-height:340px;overflow:auto;white-space:pre}
.sb-ok{background:var(--ok-bg);border:1px solid var(--ok-line);color:#00695c}
.sb-aj{margin-top:4px}
@media (max-width:767.98px){
  .sb-item{grid-template-columns:26px minmax(0,1fr) minmax(0,1fr) 30px;gap:8px}
  .sb-item .sb-n{grid-row:1}.sb-item .sb-prod{grid-column:2/4}.sb-item .sb-quitar{grid-column:4}
  .sb-item .sb-obs{grid-column:2/4;grid-row:3}
  .sb-ritem-s,.sb-ritem-r{margin-left:0}.sb-seg{width:100%}.sb-seg label{flex:1;text-align:center}.sb-parcial{flex:1 1 100px}
  .sb-pide{white-space:normal;text-align:right}
}
.sb-tabla td:nth-child(2){min-width:190px}
/* ===== Administrativo · Usuarios electrónicos ===== */
.ue-ico{background:#ede7f6;color:#5e35b1}
.ue-resumen{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 14px;border-bottom:1px solid var(--line-soft)}
.ue-k{display:flex;align-items:baseline;gap:6px}.ue-k b{font-size:1.25rem;font-variant-numeric:tabular-nums;color:var(--ink)}.ue-k span{font-size:.78rem;color:var(--ink-3)}
.ue-k.ok b{color:var(--ok)}.ue-k.w b{color:#b26a00}
.ue-barra{flex:1 1 140px;min-width:120px;height:8px;border-radius:99px;background:var(--surf-1);overflow:hidden}.ue-barra i{display:block;height:100%;background:var(--ok);border-radius:99px}
.ue-lote{margin-left:auto}
.ue-est{display:inline-flex;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap}
.ue-est.sin{background:var(--surf-1);border-color:var(--line);color:var(--ink-3)}.ue-est.pend{background:var(--warn-bg);border-color:var(--warn-line);color:#7a4a05}.ue-est.ok{background:var(--ok-bg);border-color:var(--ok-line);color:#00695c}
.ue-per{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-top:8px;padding:8px 12px;border-radius:9px;background:var(--surf-1);border:1px solid var(--line-soft);font-size:.82rem}.ue-per span{color:var(--ink-3)}
.ue-cuentas{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.ue-cta{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line-soft);border-radius:9px;background:var(--surf-2);margin:0;font-size:.84rem}
.ue-cta:has(input:checked){border-color:#b39ddb;background:#f7f3fd}
.ue-conf{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:16px;align-items:start}
.ue-conf>.ue-pl:nth-of-type(2){grid-column:1}.ue-vars{grid-column:2;grid-row:1 / span 2}
.ue-pl{padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--surf-2)}
.ue-texto{font-size:.84rem;line-height:1.5;min-height:260px}
.ue-vars{padding:14px;border:1px solid var(--line-soft);border-radius:12px;position:sticky;top:64px}
.ue-vars ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.ue-vars li{display:flex;gap:8px;align-items:baseline;font-size:.78rem}.ue-vars code{flex:none;color:#5e35b1}.ue-vars li span{color:var(--ink-3)}
.ue-sis li{display:block}.ue-sis li.off{opacity:.6}.ue-sis-f{display:flex;gap:5px;align-items:center}.ue-sis-f .ue-ord{width:52px;flex:none}.ue-sis-f>input[name=nombre]{flex:1;min-width:0}
.md-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}
.md-pend{padding:12px;border:1px solid var(--warn-line);border-radius:11px;background:#fffaf0;margin-top:8px}
.md-pend-t{display:flex;gap:10px;align-items:center;margin-bottom:8px}.md-pend-t div{display:flex;flex-direction:column;min-width:0}.md-pend-t small{color:var(--ink-3);font-size:.75rem}
.md-pend .hr-doc-ico{background:#ede7f6;color:#5e35b1}
.md-acc{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.md-subir{margin:0}
@media (max-width:991.98px){.ue-conf,.md-grid{grid-template-columns:minmax(0,1fr)}.ue-vars{grid-column:auto;grid-row:auto;position:static}.ue-conf>.ue-pl:nth-of-type(2){grid-column:auto}}
@media (max-width:575.98px){.ue-cta{grid-template-columns:20px minmax(0,1fr)}.ue-cta input[name=c_usuario]{grid-column:2}.ue-lote{margin-left:0;width:100%}}
.ue-gen{width:auto!important;display:inline-flex;align-items:center;gap:4px;padding:2px 8px}
