/* ══════════════════════════════════════════════════════════════════════════
   Importadora Pro · interfaz "Ejecutivo"
   Solo aplica cuando el servidor la monta (INTERFAZ=ejecutivo): todo cuelga de
   body.ui-ej. Viste la misma página de siempre: no cambia ninguna función.
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --ej-canvas:#F5F5F2; --ej-surface:#FFFFFF; --ej-surface-2:#FAFAF8; --ej-rail:#EFEFEB;
  --ej-line:#E4E4DF; --ej-line-soft:#EEEEEA; --ej-line-strong:#CFCFC8;
  --ej-ink:#16181D; --ej-ink-2:#5A5E68; --ej-ink-3:#80848D;
  --ej-side:#15171C; --ej-side-2:#1E2128; --ej-side-ink:#C9CBD1; --ej-side-muted:#8B8F99; --ej-side-line:#2A2D35;
  --ej-brand:#0B7A5C; --ej-brand-hover:#09684E; --ej-brand-ink:#075E47; --ej-brand-soft:#E3F2EC; --ej-brand-line:#B9DECF;
  --ej-warn:#8A5300; --ej-warn-bg:#FDF3E0; --ej-warn-line:#F3DCAE;
  --ej-danger:#B42318; --ej-danger-bg:#FDECEA; --ej-danger-line:#F6C9C3;
  --ej-info:#24508F; --ej-info-bg:#EAF1FB; --ej-info-line:#C9DAF2;
  --ej-sans:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ej-mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
}

/* ── base ─────────────────────────────────────────────────────────────── */
body.ui-ej{font-family:var(--ej-sans);font-size:14px;color:var(--ej-ink);-webkit-font-smoothing:antialiased}
body.ui-ej.bg-light{background-color:var(--ej-canvas)!important}
.ui-ej .font-monospace{font-family:var(--ej-mono)!important}
.ui-ej h5,.ui-ej h6{font-weight:600;letter-spacing:-.005em}
.ui-ej a:not(.btn){color:var(--ej-brand-ink)}
.ui-ej .text-primary{color:var(--ej-info)!important}
.ui-ej .text-success{color:var(--ej-brand-ink)!important}
.ui-ej .text-danger{color:var(--ej-danger)!important}
.ui-ej .text-warning{color:var(--ej-warn)!important}
.ui-ej .text-muted{color:var(--ej-ink-3)!important}

/* La barra negra de arriba y las pestañas de siempre quedan escondidas: las reemplaza el menú lateral.
   Siguen en la página porque son las que abren cada módulo con sus funciones. */
body.ui-ej > nav.navbar{display:none!important}
.ui-ej #tabs{display:none!important}

/* ── marco ───────────────────────────────────────────────────────────── */
svg.ej-i{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ej-app{display:flex;min-height:100vh}
.ej-side{width:248px;flex-shrink:0;background:var(--ej-side);color:var(--ej-side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:30}
.ej-side::-webkit-scrollbar{width:8px} .ej-side::-webkit-scrollbar-thumb{background:#2A2D35;border-radius:8px}
.ej-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px}
.ej-logo{width:34px;height:34px;border-radius:9px;background:var(--ej-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0}
.ej-brand-name{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.ej-brand-name b{color:#fff;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ej-brand-name span{color:var(--ej-side-muted);font-size:12px}
.ej-cta-row{display:flex;gap:6px;margin:4px 14px 10px}
.ej-cta{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;height:40px;border-radius:8px;background:var(--ej-brand);color:#fff!important;font-weight:600;border:none;text-decoration:none}
.ej-cta:hover{background:var(--ej-brand-hover)}
.ej-cta.mas{flex:0 0 44px;background:#262932}
.ej-cta.mas:hover{background:#30343E}
.ej-group{padding:6px 10px 2px}
.ej-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:8px 8px 6px;color:var(--ej-side-muted);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:6px;user-select:none}
.ej-group>summary::-webkit-details-marker{display:none}
.ej-group>summary:hover{color:var(--ej-side-ink)}
.ej-group>summary svg.ej-i{width:14px;height:14px;transition:transform .15s}
.ej-group:not([open])>summary svg.ej-i{transform:rotate(-90deg)}
.ej-link{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:1px 0;border-radius:7px;color:var(--ej-side-ink)!important;font-size:13.5px;text-decoration:none}
.ej-link:hover{background:var(--ej-side-2);color:#fff!important}
.ej-link.on{background:#262932;color:#fff!important;font-weight:500}
.ej-link.on svg.ej-i{color:#5FD3AE}
.ej-link .ej-badge{margin-left:auto;font-size:11px;padding:1px 7px;border-radius:999px;background:#3A2E14;color:#F2C46B;font-weight:500}
.ej-link .ej-badge.n{background:#2A2D35;color:var(--ej-side-ink)}
.ej-side-foot{margin-top:auto;padding:12px 10px 16px;border-top:1px solid var(--ej-side-line)}
.ej-user{display:flex;align-items:center;gap:10px;padding:6px 8px}
.ej-avatar{width:32px;height:32px;border-radius:999px;background:#262932;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12.5px;flex-shrink:0}
.ej-user-txt{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.ej-user-txt b{color:#fff;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ej-user-txt span{color:var(--ej-side-muted);font-size:12px}
.ej-icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:none;background:transparent;color:var(--ej-side-muted)}
.ej-icon-btn:hover{background:var(--ej-side-2);color:#fff}

.ej-main{flex:1;min-width:0;display:flex;flex-direction:column}
.ej-top{height:60px;display:flex;align-items:center;gap:14px;padding:0 28px;background:var(--ej-surface);border-bottom:1px solid var(--ej-line);position:sticky;top:0;z-index:25}
.ej-crumb{color:var(--ej-ink-3);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ej-crumb b{color:var(--ej-ink);font-weight:500}
.ej-crumb i{font-style:normal;margin:0 6px}
.ej-spacer{flex:1}
.ej-top #sedeSelector{max-width:190px;height:36px;background-color:var(--ej-surface-2)!important;color:var(--ej-ink)!important;border:1px solid var(--ej-line)!important;border-radius:8px;font-size:13px}
.ej-search{display:flex;align-items:center;gap:8px;width:min(360px,34vw);height:38px;padding:0 12px;border:1px solid var(--ej-line);border-radius:8px;background:var(--ej-surface-2);color:var(--ej-ink-3)}
.ej-search input{border:none;outline:none;background:transparent;width:100%;min-width:0;font-size:13.5px;color:var(--ej-ink)}
.ej-search:focus-within{border-color:var(--ej-brand);box-shadow:0 0 0 3px rgba(11,122,92,.12)}
.ej-kbd{font-family:var(--ej-mono);font-size:11px;white-space:nowrap;padding:1px 6px;border:1px solid var(--ej-line-strong);border-radius:5px;color:var(--ej-ink-3);background:#fff}
.ej-top .ej-avatar{background:var(--ej-brand-soft);color:var(--ej-brand-ink)}
button.ej-avatar{border:0;padding:0;font-family:inherit;cursor:pointer}
button.ej-avatar:hover{box-shadow:0 0 0 3px rgba(11,122,92,.15)}
.ui-ej .ej-card-head a.sub{color:var(--ej-ink-3)} .ui-ej .ej-card-head a.sub:hover{color:var(--ej-brand-ink)}
.ui-ej .ej-main > .container-fluid{margin-top:0!important;padding:22px 28px 56px!important;max-width:1480px}

/* encabezado de cada módulo */
.ej-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin-bottom:18px}
.ej-head .t{flex:1 1 320px;display:flex;flex-direction:column;gap:2px;min-width:0}
.ej-head h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.015em;color:var(--ej-ink)}
.ej-head .t span{color:var(--ej-ink-2);font-size:14px}

/* ── tarjetas ────────────────────────────────────────────────────────── */
.ui-ej .card{border:1px solid var(--ej-line);border-radius:12px;background:var(--ej-surface);box-shadow:none!important}
.ui-ej .shadow-sm{box-shadow:none!important}
.ui-ej .card-header{background:var(--ej-surface)!important;color:var(--ej-ink)!important;border-bottom:1px solid var(--ej-line);padding:12px 16px;font-size:14.5px;font-weight:600;border-radius:12px 12px 0 0!important}
.ui-ej .card-header.fw-bold,.ui-ej .card-header .fw-bold{font-weight:600!important}
/* Las cabeceras de color fuerte pasan a blanco con una rayita del color: se sigue distinguiendo sin cansar la vista */
.ui-ej .card-header.bg-primary,.ui-ej .card-header.bg-info{box-shadow:inset 3px 0 0 var(--ej-info)}
.ui-ej .card-header.bg-success{box-shadow:inset 3px 0 0 var(--ej-brand)}
.ui-ej .card-header.bg-warning,.ui-ej .card-header[style*="ffc107"]{box-shadow:inset 3px 0 0 #D99A1E}
.ui-ej .card-header.bg-danger{box-shadow:inset 3px 0 0 var(--ej-danger)}
.ui-ej .card-header.bg-dark{box-shadow:inset 3px 0 0 var(--ej-ink)}
.ui-ej .card-header.text-white,.ui-ej .card-header .text-white{color:var(--ej-ink)!important}
.ui-ej .card-header .btn-close-white,.ui-ej .modal-header .btn-close-white{filter:none}
.ui-ej .card-header .text-white-50{color:var(--ej-ink-3)!important}
.ui-ej .card-footer{background:var(--ej-surface-2);border-top:1px solid var(--ej-line)}
.ui-ej .row.g-3{--bs-gutter-x:1.1rem;--bs-gutter-y:1.1rem}

/* ── botones ─────────────────────────────────────────────────────────── */
.ui-ej .btn{border-radius:8px;font-weight:500;--bs-btn-focus-box-shadow:0 0 0 3px rgba(11,122,92,.15)}
.ui-ej .btn-sm{border-radius:7px;font-size:12.5px}
.ui-ej .btn-primary,.ui-ej .btn-success{--bs-btn-bg:var(--ej-brand);--bs-btn-border-color:var(--ej-brand);--bs-btn-hover-bg:var(--ej-brand-hover);--bs-btn-hover-border-color:var(--ej-brand-hover);--bs-btn-active-bg:var(--ej-brand-ink);--bs-btn-active-border-color:var(--ej-brand-ink);--bs-btn-disabled-bg:var(--ej-brand);--bs-btn-disabled-border-color:var(--ej-brand);--bs-btn-color:#fff;--bs-btn-hover-color:#fff}
.ui-ej .btn-dark{--bs-btn-bg:var(--ej-ink);--bs-btn-border-color:var(--ej-ink);--bs-btn-hover-bg:#2A2D35;--bs-btn-hover-border-color:#2A2D35;--bs-btn-active-bg:#000}
.ui-ej .btn-secondary,.ui-ej .btn-light{--bs-btn-bg:var(--ej-surface);--bs-btn-border-color:var(--ej-line-strong);--bs-btn-color:var(--ej-ink);--bs-btn-hover-bg:var(--ej-surface-2);--bs-btn-hover-border-color:#BDBDB5;--bs-btn-hover-color:var(--ej-ink);--bs-btn-active-bg:var(--ej-rail);--bs-btn-active-color:var(--ej-ink)}
.ui-ej .btn-warning{--bs-btn-bg:var(--ej-warn-bg);--bs-btn-border-color:var(--ej-warn-line);--bs-btn-color:var(--ej-warn);--bs-btn-hover-bg:#FAE8C4;--bs-btn-hover-border-color:#E9C98A;--bs-btn-hover-color:var(--ej-warn);--bs-btn-active-bg:#F6DDA8;--bs-btn-active-color:var(--ej-warn)}
.ui-ej .btn-info{--bs-btn-bg:var(--ej-info-bg);--bs-btn-border-color:var(--ej-info-line);--bs-btn-color:var(--ej-info);--bs-btn-hover-bg:#DCE8F8;--bs-btn-hover-border-color:#B3CBEC;--bs-btn-hover-color:var(--ej-info);--bs-btn-active-bg:#CFE0F5;--bs-btn-active-color:var(--ej-info)}
.ui-ej .btn-danger{--bs-btn-bg:var(--ej-danger);--bs-btn-border-color:var(--ej-danger);--bs-btn-hover-bg:#9A1D14;--bs-btn-hover-border-color:#9A1D14}
.ui-ej [class*="btn-outline-"]{--bs-btn-bg:var(--ej-surface);--bs-btn-border-color:var(--ej-line-strong);--bs-btn-hover-bg:var(--ej-surface-2);--bs-btn-hover-border-color:#BDBDB5;--bs-btn-active-bg:var(--ej-rail);--bs-btn-active-border-color:#BDBDB5}
.ui-ej .btn-outline-primary,.ui-ej .btn-outline-info{--bs-btn-color:var(--ej-info);--bs-btn-hover-color:var(--ej-info);--bs-btn-active-color:var(--ej-info)}
.ui-ej .btn-outline-success{--bs-btn-color:var(--ej-brand-ink);--bs-btn-hover-color:var(--ej-brand-ink);--bs-btn-active-color:var(--ej-brand-ink)}
.ui-ej .btn-outline-danger{--bs-btn-color:var(--ej-danger);--bs-btn-hover-color:var(--ej-danger);--bs-btn-active-color:var(--ej-danger);--bs-btn-hover-bg:var(--ej-danger-bg);--bs-btn-hover-border-color:var(--ej-danger-line)}
.ui-ej .btn-outline-warning{--bs-btn-color:var(--ej-warn);--bs-btn-hover-color:var(--ej-warn);--bs-btn-active-color:var(--ej-warn);--bs-btn-hover-bg:var(--ej-warn-bg)}
.ui-ej .btn-outline-secondary,.ui-ej .btn-outline-dark,.ui-ej .btn-outline-light{--bs-btn-color:var(--ej-ink-2);--bs-btn-hover-color:var(--ej-ink);--bs-btn-active-color:var(--ej-ink)}
/* Botones que ahora son claros pero traían letra blanca forzada (ej. "Guardar" de la sede) */
.ui-ej .btn-info.text-white,.ui-ej .btn-warning.text-white,.ui-ej .btn-secondary.text-white,.ui-ej .btn-light.text-white,.ui-ej [class*="btn-outline-"].text-white{color:var(--bs-btn-color)!important}

/* ── etiquetas (badges) ─────────────────────────────────────────────── */
.ui-ej .badge{border-radius:999px;font-weight:500;padding:.32em .7em;letter-spacing:.005em}
.ui-ej .badge.bg-success{background:var(--ej-brand-soft)!important;color:var(--ej-brand-ink)!important}
.ui-ej .badge.bg-danger{background:var(--ej-danger-bg)!important;color:var(--ej-danger)!important}
.ui-ej .badge.bg-warning{background:var(--ej-warn-bg)!important;color:var(--ej-warn)!important}
.ui-ej .badge.bg-info,.ui-ej .badge.bg-primary{background:var(--ej-info-bg)!important;color:var(--ej-info)!important}
.ui-ej .badge.bg-secondary{background:var(--ej-rail)!important;color:#4B4F58!important}
.ui-ej .badge.bg-dark{background:#2A2D35!important;color:#fff!important}
.ui-ej .badge.bg-light{background:var(--ej-surface-2)!important;color:var(--ej-ink-2)!important;border:1px solid var(--ej-line)}
/* Etiqueta clara con texto de color (ej. "⚠️ Nunca ha abonado" en rojo): el color se respeta */
.ui-ej .badge.bg-light.text-danger{color:var(--ej-danger)!important}
.ui-ej .badge.bg-light.text-primary,.ui-ej .badge.bg-light.text-info{color:var(--ej-info)!important}
.ui-ej .badge.bg-light.text-success{color:var(--ej-brand-ink)!important}
.ui-ej .badge.bg-light.text-warning{color:var(--ej-warn)!important}
.ui-ej .badge.bg-light.text-dark{color:var(--ej-ink)!important}

/* ── tablas ──────────────────────────────────────────────────────────── */
.ui-ej .table{--bs-table-border-color:var(--ej-line-soft);--bs-table-hover-bg:#F7F7F4;--bs-table-striped-bg:#FAFAF8;font-size:13px;color:var(--ej-ink)}
.ui-ej .table-sm td,.ui-ej .table-sm th{font-size:12.8px}
.ui-ej .table > :not(caption) > * > *{padding:.5rem .6rem}
.ui-ej .table thead th,.ui-ej .table > thead > tr > th{font-weight:500;font-size:12px;color:var(--ej-ink-3);white-space:nowrap}
/* Solo los ENCABEZADOS oscuros pasan a claros. Las filas de TOTAL oscuras (tbody/tfoot) se quedan
   oscuras: traen cifras con color en línea (amarillo, verde) pensadas para fondo negro. */
.ui-ej tbody .table-dark,.ui-ej tfoot .table-dark,.ui-ej tbody.table-dark,.ui-ej tfoot.table-dark{--bs-table-bg:#262932;--bs-table-color:#fff;--bs-table-border-color:#3A3D46;--bs-table-hover-bg:#2E313A;--bs-table-hover-color:#fff;--bs-table-striped-bg:#262932;--bs-table-striped-color:#fff}
/* …y en esas filas oscuras las cifras con color van en tonos claros (el Neto en verde, lo que salió en rojo) */
.ui-ej tbody .table-dark .text-success,.ui-ej tfoot .table-dark .text-success{color:#5FD3AE!important}
.ui-ej tbody .table-dark .text-danger,.ui-ej tfoot .table-dark .text-danger{color:#F59B8F!important}
.ui-ej tbody .table-dark .text-warning,.ui-ej tfoot .table-dark .text-warning{color:#F2C46B!important}
.ui-ej tbody .table-dark .text-primary,.ui-ej tfoot .table-dark .text-primary,.ui-ej tbody .table-dark .text-info,.ui-ej tfoot .table-dark .text-info{color:#9DC1F0!important}
.ui-ej tbody .table-dark .text-muted,.ui-ej tfoot .table-dark .text-muted{color:#A9ADB6!important}
.ui-ej thead.table-dark,.ui-ej thead .table-dark,.ui-ej .table-light{--bs-table-bg:var(--ej-surface-2);--bs-table-color:var(--ej-ink-3);--bs-table-border-color:var(--ej-line);--bs-table-striped-bg:var(--ej-surface-2);--bs-table-hover-bg:var(--ej-surface-2);--bs-table-active-bg:var(--ej-surface-2);--bs-table-hover-color:var(--ej-ink-3);--bs-table-striped-color:var(--ej-ink-3)}
.ui-ej thead.table-dark th,.ui-ej thead.table-light th,.ui-ej tr.table-dark th,.ui-ej tr.table-light th{border-bottom:1px solid var(--ej-line)}
.ui-ej .table-success{--bs-table-bg:#EEF7F2;--bs-table-color:var(--ej-ink);--bs-table-border-color:var(--ej-line-soft)}
.ui-ej .table-danger{--bs-table-bg:#FDF2F0;--bs-table-color:var(--ej-ink);--bs-table-border-color:var(--ej-line-soft)}
.ui-ej .table-warning{--bs-table-bg:#FEF8EC;--bs-table-color:var(--ej-ink);--bs-table-border-color:var(--ej-line-soft)}
.ui-ej .table-info,.ui-ej .table-primary{--bs-table-bg:#F1F6FC;--bs-table-color:var(--ej-ink);--bs-table-border-color:var(--ej-line-soft)}
.ui-ej .table-secondary{--bs-table-bg:var(--ej-rail);--bs-table-color:var(--ej-ink);--bs-table-border-color:var(--ej-line-soft)}

/* ── formularios ─────────────────────────────────────────────────────── */
.ui-ej .form-control,.ui-ej .form-select{border-color:var(--ej-line-strong);border-radius:8px;color:var(--ej-ink)}
.ui-ej .form-control-sm,.ui-ej .form-select-sm{border-radius:7px;font-size:13px;min-height:32px}
.ui-ej .form-control:focus,.ui-ej .form-select:focus,.ui-ej .form-check-input:focus{border-color:var(--ej-brand);box-shadow:0 0 0 3px rgba(11,122,92,.15)}
.ui-ej .form-check-input:checked{background-color:var(--ej-brand);border-color:var(--ej-brand)}
.ui-ej .form-label{font-size:12.5px;color:var(--ej-ink-2)}
.ui-ej .form-label.fw-bold,.ui-ej label.fw-bold{font-weight:500!important}
.ui-ej .form-text{color:var(--ej-ink-3)}
.ui-ej .input-group-text{background:var(--ej-surface-2);border-color:var(--ej-line-strong);color:var(--ej-ink-2)}

/* ── avisos ──────────────────────────────────────────────────────────── */
.ui-ej .alert{border-radius:8px}
.ui-ej .alert-warning{--bs-alert-bg:var(--ej-warn-bg);--bs-alert-border-color:var(--ej-warn-line);--bs-alert-color:var(--ej-warn)}
.ui-ej .alert-danger{--bs-alert-bg:var(--ej-danger-bg);--bs-alert-border-color:var(--ej-danger-line);--bs-alert-color:var(--ej-danger)}
.ui-ej .alert-info{--bs-alert-bg:var(--ej-info-bg);--bs-alert-border-color:var(--ej-info-line);--bs-alert-color:var(--ej-info)}
.ui-ej .alert-success{--bs-alert-bg:var(--ej-brand-soft);--bs-alert-border-color:var(--ej-brand-line);--bs-alert-color:var(--ej-brand-ink)}
.ui-ej .alert-light,.ui-ej .alert-secondary{--bs-alert-bg:var(--ej-surface-2);--bs-alert-border-color:var(--ej-line);--bs-alert-color:var(--ej-ink-2)}

/* ── ventanas (modales de siempre) ──────────────────────────────────── */
.ui-ej .modal-content{border:none;border-radius:16px;overflow:hidden}
.ui-ej .modal-header{background:var(--ej-surface)!important;color:var(--ej-ink)!important;border-bottom:1px solid var(--ej-line);padding:14px 20px}
.ui-ej .modal-header.text-white,.ui-ej .modal-header .text-white{color:var(--ej-ink)!important}
.ui-ej .modal-header.bg-dark,.ui-ej .modal-header.bg-primary{box-shadow:inset 0 3px 0 var(--ej-ink)}
.ui-ej .modal-header.bg-success{box-shadow:inset 0 3px 0 var(--ej-brand)}
.ui-ej .modal-header.bg-warning{box-shadow:inset 0 3px 0 #D99A1E}
.ui-ej .modal-header.bg-danger{box-shadow:inset 0 3px 0 var(--ej-danger)}
.ui-ej .modal-header .modal-title{font-size:17px;font-weight:600}
.ui-ej .modal-footer{background:var(--ej-surface-2);border-top:1px solid var(--ej-line)}
.ui-ej .modal-backdrop.show{opacity:.55;background:#15171C}

/* pestañas internas de algún módulo: estilo "segmentado" */
.ui-ej .tab-pane .nav-tabs{border:none;background:var(--ej-rail);border-radius:9px;padding:3px;gap:2px;display:inline-flex;flex-wrap:wrap}
.ui-ej .tab-pane .nav-tabs .nav-link{border:none;border-radius:7px;color:var(--ej-ink-2);font-size:13px;padding:5px 12px}
.ui-ej .tab-pane .nav-tabs .nav-link.active{background:#fff;color:var(--ej-ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.ui-ej .progress{background:var(--ej-rail);border-radius:999px}
.ui-ej .progress-bar.bg-success{background-color:var(--ej-brand)!important}

/* candado de entrada */
.ui-ej #lockScreen{background:var(--ej-side)!important}
.ui-ej #lockScreen > div{font-family:var(--ej-sans)!important}
.ui-ej #lockScreen input{border-color:#2A2D35!important;background:#1E2128!important;border-radius:10px!important}
.ui-ej #lockScreen input:focus{border-color:var(--ej-brand)!important;box-shadow:0 0 0 3px rgba(11,122,92,.3)}
.ui-ej #lockScreen button{background:var(--ej-brand)!important;border-radius:10px!important;font-weight:600!important}
.ui-ej #lockScreen .ej-logo{width:52px;height:52px;border-radius:14px;font-size:18px;margin:0 auto 6px}

/* ── Inicio ──────────────────────────────────────────────────────────── */
.ej-grid{display:grid;gap:16px}
.ej-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ej-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ej-g-main{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.ej-card{background:var(--ej-surface);border:1px solid var(--ej-line);border-radius:12px;min-width:0}
.ej-card-head{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--ej-line)}
.ej-card-head h2{margin:0;font-size:15px;font-weight:600;flex:1}
.ej-card-head .sub{color:var(--ej-ink-3);font-size:12.5px}
.ej-card-body{padding:14px 18px}
.ej-kpi{background:var(--ej-surface);border:1px solid var(--ej-line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.ej-kpi .l{font-size:12.5px;color:var(--ej-ink-2)}
.ej-kpi .v{font-size:22px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ej-kpi .d{font-size:12px;color:var(--ej-ink-3)}
.ej-stat{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--ej-line-soft)}
.ej-stat:first-child{border-top:none}
.ej-stat .l{color:var(--ej-ink-2)} .ej-stat .l small{display:block;color:var(--ej-ink-3);font-size:12px}
.ej-stat .v{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ej-stat.total{border-top:1px solid var(--ej-line-strong);padding-top:11px}
.ej-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-top:1px solid var(--ej-line-soft);color:var(--ej-ink)!important;text-decoration:none}
.ej-row:first-child{border-top:none}
a.ej-row:hover{background:#FBFBF9}
.ej-row .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ej-row .grow b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ej-row .grow small{color:var(--ej-ink-3);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ej-row .money{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ej-ico{width:36px;height:36px;border-radius:9px;background:var(--ej-rail);color:var(--ej-ink-2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ej-ico.brand{background:var(--ej-brand-soft);color:var(--ej-brand-ink)}
.ej-ico.warn{background:var(--ej-warn-bg);color:var(--ej-warn)}
.ej-ico.danger{background:var(--ej-danger-bg);color:var(--ej-danger)}
.ej-ico.info{background:var(--ej-info-bg);color:var(--ej-info)}
.ej-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:2px 9px;border-radius:999px;white-space:nowrap;background:var(--ej-rail);color:#4B4F58}
.ej-pill.ok{background:var(--ej-brand-soft);color:var(--ej-brand-ink)}
.ej-pill.warn{background:var(--ej-warn-bg);color:var(--ej-warn)}
.ej-bars{display:flex;align-items:flex-end;gap:5px;height:130px;padding-top:6px}
.ej-bars span{flex:1;background:var(--ej-brand-soft);border-radius:4px 4px 0 0;min-height:3px;position:relative}
.ej-bars span.hoy{background:var(--ej-brand)}
.ej-bars span:hover{background:#9FD3BE}
.ej-bars-x{display:flex;gap:5px;margin-top:6px}
.ej-bars-x span{flex:1;text-align:center;font-size:10.5px;color:var(--ej-ink-3)}
.ej-empty{padding:28px 18px;text-align:center;color:var(--ej-ink-3)}
.ej-note{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:8px;background:var(--ej-surface-2);border:1px solid var(--ej-line);color:var(--ej-ink-2);font-size:13px}
.ej-note.ok{background:var(--ej-brand-soft);border-color:var(--ej-brand-line);color:var(--ej-brand-ink)}
.ej-skel{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,#EEEEEA,#F6F6F3,#EEEEEA);background-size:200% 100%;animation:ejsk 1.2s infinite}
@keyframes ejsk{to{background-position:-200% 0}}

/* ── registrar rápido / menú del celular ────────────────────────────── */
.ej-ov{position:fixed;inset:0;background:rgba(21,23,28,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:1045}
.ej-ov.open{display:flex}
.ej-modal{width:100%;max-width:420px;max-height:90vh;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden}
.ej-modal-head{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--ej-line)}
.ej-modal-head h2{margin:0;font-size:17px;font-weight:600;flex:1}
.ej-modal-head button{width:34px;height:34px;border:none;background:transparent;border-radius:8px;color:var(--ej-ink-2);display:flex;align-items:center;justify-content:center}
.ej-modal-head button:hover{background:var(--ej-rail)}
.ej-modal .ej-list{overflow:auto}
.ej-sheet{background:var(--ej-side);max-width:440px}
.ej-sheet .ej-modal-head{border-color:var(--ej-side-line)} .ej-sheet .ej-modal-head h2{color:#fff}
.ej-sheet .ej-modal-head button{color:var(--ej-side-muted)} .ej-sheet .ej-modal-head button:hover{background:var(--ej-side-2)}
.ej-sheet nav{overflow:auto;padding-bottom:12px}
.ej-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--ej-ink);color:#fff;padding:11px 16px;border-radius:10px;font-size:13.5px;z-index:4100;box-shadow:0 8px 24px rgba(0,0,0,.18);max-width:min(520px,calc(100vw - 32px));display:none}
.ej-toast.open{display:block}
.ej-tabbar{display:none}

/* ── celular ─────────────────────────────────────────────────────────── */
@media (max-width:980px){
  .ej-side{display:none}
  .ej-top{padding:0 14px;gap:10px}
  .ej-top .ej-crumb,.ej-spacer{display:none}
  .ej-top #sedeSelector{max-width:130px}
  .ej-search{flex:1;width:auto}
  .ej-search .ej-kbd{display:none}
  .ui-ej .ej-main > .container-fluid{padding:16px 14px 104px!important}
  .ej-head h1{font-size:21px}
  .ej-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ej-g2,.ej-g-main{grid-template-columns:minmax(0,1fr)}
  .ej-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--ej-line);padding:6px 4px calc(10px + env(safe-area-inset-bottom));z-index:1030}
  .ej-tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--ej-ink-3)!important;padding:4px 0;text-decoration:none}
  .ej-tabbar a.on{color:var(--ej-brand-ink)!important;font-weight:600}
  .ej-tabbar .ej-plus{width:46px;height:46px;margin-top:-18px;border-radius:999px;background:var(--ej-brand);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(11,122,92,.35)}
  .ej-tabbar .ej-plus svg.ej-i{width:24px;height:24px}
  .ej-toast{bottom:92px}
  .ej-row .grow b,.ej-row .grow small{white-space:normal}
}
@media (max-width:520px){ .ej-top #sedeSelector{max-width:104px;font-size:12px;padding-left:8px;padding-right:22px;background-position:right 6px center} }
@media print{ .ej-app,.ej-tabbar,.ej-ov,.ej-toast{display:none!important} }
.ej-logo.con-img{background:#fff;padding:3px}
.ej-logo img{width:100%;height:100%;object-fit:contain;border-radius:6px;display:block}

/* ── Venta en 3 pasos (ejecutivo-venta.js) ──────────────────────────────── */
.nv-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nv-step{display:flex;align-items:center;gap:8px;border:none;background:none;padding:2px;color:var(--ej-ink-3);font-size:13.5px;font-weight:500}
.nv-step i{font-style:normal;width:26px;height:26px;border-radius:999px;border:1px solid var(--ej-line-strong);display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;background:#fff}
.nv-step.on{color:var(--ej-ink);font-weight:600} .nv-step.on i{border:2px solid var(--ej-brand);color:var(--ej-brand-ink)}
.nv-step.done i{background:var(--ej-brand);border-color:var(--ej-brand);color:#fff}
.nv-step:disabled{cursor:default}
.nv-line{width:32px;height:2px;background:var(--ej-line)} .nv-line.done{background:var(--ej-brand)}
.nv-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.nv-side{position:sticky;top:76px}
.nv-seg{display:inline-flex;padding:3px;background:var(--ej-rail);border-radius:9px;gap:2px}
.nv-seg button{height:32px;padding:0 14px;border:none;border-radius:7px;background:transparent;color:var(--ej-ink-2);font-size:13px;font-weight:500}
.nv-seg button.on{background:#fff;color:var(--ej-ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.nv-chips{display:flex;flex-wrap:wrap;gap:6px}
.nv-chip{height:34px;padding:0 13px;border-radius:999px;border:1px solid var(--ej-line-strong);background:#fff;color:var(--ej-ink-2);font-size:13px;display:inline-flex;align-items:center;gap:6px}
.nv-chip.on{border-color:var(--ej-brand);background:var(--ej-brand-soft);color:var(--ej-brand-ink);font-weight:500}
.nv-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.nv-field>label,.nv-lbl{font-size:12.5px;font-weight:500;color:var(--ej-ink-2)}
.nv-in{height:40px;padding:0 12px;border:1px solid var(--ej-line-strong);border-radius:8px;background:#fff;width:100%;font-size:14px;color:var(--ej-ink)}
.nv-in:focus{outline:none;border-color:var(--ej-brand);box-shadow:0 0 0 3px rgba(11,122,92,.15)}
.nv-in.big{height:46px;font-size:16px}
.nv-in.mono{font-family:var(--ej-mono);letter-spacing:.02em}
.nv-in.mal{border-color:var(--ej-danger)}
textarea.nv-in{height:auto;min-height:64px;padding:8px 12px}
.nv-help{font-size:12px;color:var(--ej-ink-3)}
.nv-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nv-form .full{grid-column:1/-1}
.nv-search{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:1px solid var(--ej-line-strong);border-radius:9px;background:#fff;color:var(--ej-ink-3)}
.nv-search input{border:none;outline:none;background:transparent;width:100%;font-size:15px;color:var(--ej-ink)}
.nv-search:focus-within{border-color:var(--ej-brand);box-shadow:0 0 0 3px rgba(11,122,92,.15)}
.nv-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--ej-line-soft)}
.nv-item:first-child{border-top:none}
.nv-item .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.nv-item .grow b{font-weight:500}
.nv-item .grow small{color:var(--ej-ink-3);font-size:12.5px}
.nv-item .money{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.nv-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 13px;border-radius:8px;border:1px solid var(--ej-line-strong);background:#fff;color:var(--ej-ink);font-weight:500;font-size:13.5px;white-space:nowrap;text-decoration:none}
.nv-btn:hover{background:var(--ej-surface-2);color:var(--ej-ink)}
.nv-btn.pri{background:var(--ej-brand);border-color:var(--ej-brand);color:#fff;font-weight:600}
.nv-btn.pri:hover{background:var(--ej-brand-hover);color:#fff}
.nv-btn.pri:disabled{opacity:.6;cursor:wait}
.nv-btn.ok{background:var(--ej-brand-soft);border-color:var(--ej-brand-line);color:var(--ej-brand-ink)}
.nv-btn.wa{background:#1F9D55;border-color:#1F9D55;color:#fff;font-weight:600}
.nv-btn.wa:hover{background:#178048;color:#fff}
.nv-btn.dan{color:var(--ej-danger);border-color:var(--ej-danger-line)}
.nv-btn.dan.full{background:var(--ej-danger);border-color:var(--ej-danger);color:#fff}
.nv-btn.ghost{border-color:transparent;background:transparent;color:var(--ej-ink-2)}
.nv-btn.ghost:hover{background:var(--ej-rail)}
.nv-btn.sm{height:30px;padding:0 10px;font-size:12.5px}
.nv-btn.lg{height:46px;padding:0 20px;font-size:15px}
.nv-btn:disabled{opacity:.55;cursor:not-allowed}
.nv-dash{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;border:1.5px dashed var(--ej-line-strong);border-radius:10px;background:var(--ej-surface-2);color:var(--ej-ink);text-align:left}
.nv-dash:hover{border-color:var(--ej-brand);background:var(--ej-brand-soft)}
.nv-dash small{display:block;color:var(--ej-ink-3);font-size:12.5px}
.nv-linea{padding:12px 16px;border-top:1px solid var(--ej-line-soft)}
.nv-linea:first-child{border-top:none}
.nv-linea .top{display:flex;gap:10px;align-items:flex-start}
.nv-linea .top .grow{flex:1;min-width:0}
.nv-linea .top .grow b{font-weight:500;display:block}
.nv-linea .top .grow small{color:var(--ej-ink-3);font-size:12.5px}
.nv-precio{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.nv-precio .nv-in{height:38px;max-width:170px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.nv-cant{display:inline-flex;align-items:center;border:1px solid var(--ej-line-strong);border-radius:8px;overflow:hidden}
.nv-cant button{width:30px;height:30px;border:none;background:#fff;color:var(--ej-ink)}
.nv-cant span{min-width:28px;text-align:center;font-weight:600}
.nv-sum{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:13.5px}
.nv-sum .l{color:var(--ej-ink-2)} .nv-sum .v{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.nv-sum.tot{border-top:1px solid var(--ej-line-strong);margin-top:4px;padding-top:10px;font-size:15px}
.nv-sum.tot .l{color:var(--ej-ink);font-weight:600}
.nv-sum.neg .v{color:var(--ej-danger)} .nv-sum.warn .v{color:var(--ej-warn)}
.nv-big{font-size:28px;font-weight:600;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.nv-box{border:1px solid var(--ej-line);border-radius:10px;padding:14px;background:var(--ej-surface-2)}
.nv-pie{position:sticky;bottom:0;z-index:20;margin-top:16px;background:#fff;border:1px solid var(--ej-line);border-radius:12px;box-shadow:0 -6px 18px rgba(21,23,28,.06);padding:12px 16px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.nv-pie .txt{flex:1;min-width:160px;color:var(--ej-ink-2);font-size:13.5px}
.nv-pie .txt b{color:var(--ej-ink);font-size:16px;font-variant-numeric:tabular-nums}
.nv-pie .err{flex-basis:100%;margin-top:0}
.nv-tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;padding:2px 9px;border-radius:999px;background:var(--ej-rail);color:#4B4F58;white-space:nowrap}
.nv-tag.ok{background:var(--ej-brand-soft);color:var(--ej-brand-ink)} .nv-tag.warn{background:var(--ej-warn-bg);color:var(--ej-warn)}
.nv-tag.dan{background:var(--ej-danger-bg);color:var(--ej-danger)} .nv-tag.info{background:var(--ej-info-bg);color:var(--ej-info)}
.nv-note{display:flex;gap:9px;align-items:flex-start;padding:9px 12px;border-radius:8px;font-size:13px;background:var(--ej-surface-2);border:1px solid var(--ej-line);color:var(--ej-ink-2);margin-top:8px}
.nv-note.warn{background:var(--ej-warn-bg);border-color:var(--ej-warn-line);color:var(--ej-warn)}
.nv-note.dan{background:var(--ej-danger-bg);border-color:var(--ej-danger-line);color:var(--ej-danger)}
.nv-note.ok{background:var(--ej-brand-soft);border-color:var(--ej-brand-line);color:var(--ej-brand-ink)}
.nv-note.info{background:var(--ej-info-bg);border-color:var(--ej-info-line);color:var(--ej-info)}
.nv-note svg.ej-i{width:16px;height:16px;margin-top:1px}
.nv-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:14px}
.nv-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--ej-brand)}
.nv-ret{border:1px solid var(--ej-line);border-radius:12px;padding:14px;margin-top:12px;background:#fff}
.nv-ret h3{font-size:14px;font-weight:600;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.nv-av{width:34px;height:34px;border-radius:999px;background:var(--ej-rail);color:var(--ej-ink-2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}
.nv-recibo{font-family:var(--ej-mono);font-size:12px;background:#fff;border:1px dashed var(--ej-line-strong);border-radius:8px;padding:14px;white-space:pre-wrap;line-height:1.5;max-height:420px;overflow:auto}
.nv-ok-head{display:flex;gap:14px;align-items:center}
.nv-ok-head .ic{width:46px;height:46px;border-radius:999px;background:var(--ej-brand);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nv-ok-head .ic svg.ej-i{width:24px;height:24px}
@media (max-width:980px){
  .nv-grid{grid-template-columns:minmax(0,1fr)}
  .nv-side{position:static}
  .nv-pie{bottom:72px}
  .nv-step span{display:none} .nv-step.on span{display:inline}
  .nv-form{grid-template-columns:minmax(0,1fr)}
}
.nv-side .ej-card-head{flex-wrap:wrap;row-gap:4px}
