/* ei.css · Sistema de diseño Expresión Impresa · v2 (paleta de marca, IF-Mini 2026-09-28)
   Tokens en :root; NADA hardcodeado en páginas. Origen: logo_imprenta.ai (CMYK) → sRGB medido.
   Proporción: ~60 % neutros · ~30 % azul EI · ~10 % magenta EI. Cian y amarillo = solo identidad (logo, hero, gráficas), nunca estado ni texto. */
:root {
  /* Marca */
  --ei-primary: #004F9F; --ei-primary-600: #003D7C; --ei-primary-700: #002B5A; --ei-primary-300: #7FB2F0; --ei-primary-soft: #E5EEF8;   /* Azul EI · C100 M70 */
  --ei-accent: #E6007E;  --ei-accent-600: #B8005F;  --ei-accent-text: #C4006B; --ei-accent-300: #FF6FB5; --ei-accent-soft: #FDE6F2;   /* Magenta EI · M100 */
  --ei-cyan: #009FE3;    --ei-cyan-text: #006FA3;   --ei-cyan-soft: #E0F3FC;                                                            /* Cian EI · C100 (decorativo) */
  --ei-yellow: #FFED00;  --ei-yellow-soft: #FFF9C2;                                                                                     /* Amarillo EI · Y100 (solo superficie + texto tinta) */
  --ei-ink: #1D1D1B;                                                                                                                    /* Tinta · K100 */
  /* Neutros (escala desde la tinta) */
  --ei-gray-900: #1D1D1B; --ei-gray-700: #575756; --ei-gray-500: #767675; --ei-gray-400: #9A9A99; --ei-gray-300: #C4C4C3; --ei-gray-200: #DFE0E0; --ei-gray-100: #EFEFEF; --ei-gray-50: #F6F6F6;
  --ei-bg: var(--ei-gray-50); --ei-surface: #FFFFFF; --ei-surface-2: var(--ei-gray-100); --ei-line: var(--ei-gray-200);
  --ei-text: var(--ei-ink); --ei-text-2: var(--ei-gray-700); --ei-text-3: var(--ei-gray-500);
  /* Estados: independientes de la marca (el azul nunca significa "correcto"; el amarillo de marca no es "aviso") */
  --ei-success: #1E7D3B; --ei-success-soft: #E4F5E9;
  --ei-warning: #9A5B00; --ei-warning-soft: #FFF2D9;
  --ei-danger: #B42318;  --ei-danger-soft: #FCE8E6;
  --ei-info: #5B4BBF;    --ei-info-soft: #EEEBFA;
  --ei-neutral: #4B5563; --ei-neutral-soft: #ECEEF1;
  --ei-radius: 10px; --ei-nav-w: 236px;
  --ei-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
:root[data-theme="dark"] {
  --ei-bg: #101418; --ei-surface: #171C22; --ei-surface-2: #1F252D; --ei-line: #2A313A;
  --ei-text: #E8ECF1; --ei-text-2: #A6AFBB; --ei-text-3: #7C8590;
  --ei-primary-soft: #14304F; --ei-accent-soft: #3D1230; --ei-cyan-soft: #0F2E3D; --ei-yellow-soft: #3A3600;
  --ei-success-soft: #14321F; --ei-warning-soft: #3A2A0A; --ei-danger-soft: #3B1613; --ei-info-soft: #241E4A; --ei-neutral-soft: #262C35;
  /* Texto de estado y de marca en oscuro: variantes claras (contraste medido sobre su fondo suave ≥ 4.5:1) */
  --ei-success: #6FD79A; --ei-warning: #F2BE5C; --ei-danger: #FF8A80; --ei-info: #B3A7F7; --ei-neutral: #B4BCC7;
  --ei-accent-text: #FF6FB5; --ei-cyan-text: #5CC8F5; --ei-primary-600: #7FB2F0;
}
/* En oscuro, texto/enlaces de marca usan la variante clara (contraste medido ≥ 6.8:1) */
:root[data-theme="dark"] a { color: var(--ei-primary-300); }
:root[data-theme="dark"] .ei-nav__item.is-active { color: var(--ei-primary-300); }
:root[data-theme="dark"] .ei-kpi--alt .ei-kpi__v { color: var(--ei-accent-300); }
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 15px; }
body.ei-body { margin: 0; background: var(--ei-bg); color: var(--ei-text); font-family: var(--ei-font); line-height: 1.45; }
a { color: var(--ei-primary); }
h1 { font-size: 22px; font-weight: 700; margin: 0 0 4px; } h2 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.ei-sec { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ei-text-3); margin: 22px 0 8px; }

/* Layout */
.ei-shell { display: flex; min-height: 100vh; }
.ei-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ei-wrap { max-width: 1180px; width: 100%; margin: 0 auto; padding: 22px 28px; flex: 1; }
.ei-foot { padding: 14px 28px; color: var(--ei-text-3); font-size: 12.5px; border-top: 1px solid var(--ei-line); }

/* Nav lateral */
.ei-nav { width: var(--ei-nav-w); flex: 0 0 var(--ei-nav-w); background: var(--ei-surface); border-right: 1px solid var(--ei-line); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.ei-nav__brand { display: flex; align-items: center; gap: 10px; padding: 16px 16px 8px; text-decoration: none; color: var(--ei-text); font-weight: 700; }
.ei-nav__logo { display: inline-block; width: 34px; height: 32px; background: url("/img/isotipo_color.svg") center / contain no-repeat; }
.ei-nav__logo--text { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 8px; background: var(--ei-primary); color: #fff; font-size: 13px; }
.ei-nav__role { padding: 0 16px 10px; font-size: 12px; color: var(--ei-text-3); }
.ei-nav__list { list-style: none; margin: 0; padding: 6px 8px; flex: 1; overflow-y: auto; }
.ei-nav__item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; color: var(--ei-text-2); text-decoration: none; font-size: 14px; min-height: 36px; }
.ei-nav__item:hover { background: var(--ei-surface-2); color: var(--ei-text); }
.ei-nav__item.is-active { background: var(--ei-primary-soft); color: var(--ei-primary-600); font-weight: 600; }
.ei-nav__item .bi { font-size: 17px; width: 20px; text-align: center; }
.ei-nav__badge { margin-left: auto; background: var(--ei-accent); color: #fff; font-size: 11.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; }
.ei-nav__foot { padding: 8px; border-top: 1px solid var(--ei-line); }

/* Top */
.ei-top { display: flex; align-items: center; gap: 12px; padding: 12px 28px; border-bottom: 1px solid var(--ei-line); background: var(--ei-surface); position: sticky; top: 0; z-index: 20; }
.ei-top__title { font-weight: 600; font-size: 15px; }
.ei-top__actions { margin-left: auto; display: flex; align-items: center; gap: 10px; color: var(--ei-text-2); font-size: 14px; }
.ei-top__burger { display: none; }
.ei-iconbtn { width: 36px; height: 36px; border: 1px solid var(--ei-line); background: var(--ei-surface); border-radius: 8px; color: var(--ei-text-2); }
.ei-iconbtn:hover { color: var(--ei-text); background: var(--ei-surface-2); }

/* Cabecera de página: título + UNA acción primaria */
.ei-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.ei-head p { margin: 0; color: var(--ei-text-2); font-size: 14px; }
.ei-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Botones: un primario por vista; destructivo separado */
.ei-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 8px 14px; border-radius: 8px; border: 1px solid transparent; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none; background: var(--ei-primary); color: #fff; }
.ei-btn:hover { background: var(--ei-primary-600); color: #fff; }
.ei-btn--alt { background: var(--ei-accent); } .ei-btn--alt:hover { background: var(--ei-accent-600); }
.ei-btn--ghost { background: var(--ei-surface); color: var(--ei-text); border-color: var(--ei-line); } .ei-btn--ghost:hover { background: var(--ei-surface-2); color: var(--ei-text); }
.ei-btn--danger { background: var(--ei-surface); color: var(--ei-danger); border-color: var(--ei-danger); } .ei-btn--danger:hover { background: var(--ei-danger); color: #fff; }
.ei-btn--sm { min-height: 32px; padding: 5px 10px; font-size: 13px; }
.ei-btn:focus-visible, .ei-nav__item:focus-visible, .ei-iconbtn:focus-visible { outline: 3px solid var(--ei-info); outline-offset: 2px; }

/* Cards y KPIs */
.ei-card { background: var(--ei-surface); border: 1px solid var(--ei-line); border-radius: var(--ei-radius); }
.ei-card__h { padding: 12px 16px; border-bottom: 1px solid var(--ei-line); font-weight: 600; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ei-card__b { padding: 16px; }
.ei-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 18px; }
.ei-kpi { background: var(--ei-surface); border: 1px solid var(--ei-line); border-radius: var(--ei-radius); padding: 14px 16px; }
.ei-kpi__l { font-size: 12.5px; color: var(--ei-text-2); } .ei-kpi__v { font-size: 24px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ei-kpi--alt .ei-kpi__v { color: var(--ei-accent-text); } .ei-kpi--ok .ei-kpi__v { color: var(--ei-success); }

/* Estados: color Y texto, siempre */
.ei-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.ei-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ei-badge--neutral { background: var(--ei-neutral-soft); color: var(--ei-neutral); }
.ei-badge--info    { background: var(--ei-info-soft);    color: var(--ei-info); }
.ei-badge--success { background: var(--ei-success-soft); color: var(--ei-success); }
.ei-badge--warning { background: var(--ei-warning-soft); color: var(--ei-warning); }
.ei-badge--danger  { background: var(--ei-danger-soft);  color: var(--ei-danger); }

/* Filtros: búsqueda primero y ancha; activos visibles como chips */
.ei-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.ei-filters .ei-search { flex: 1 1 260px; }
.ei-input, .ei-select { min-height: 38px; padding: 6px 10px; border: 1px solid var(--ei-line); border-radius: 8px; background: var(--ei-surface); color: var(--ei-text); font: inherit; font-size: 14px; }
.ei-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.ei-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--ei-primary-soft); color: var(--ei-primary-600); font-size: 12.5px; padding: 3px 9px; border-radius: 999px; }
.ei-chip a { color: inherit; text-decoration: none; }

/* Tablas: anchos previsibles, números a la derecha, < 7 columnas visibles */
.ei-tbl { width: 100%; border-collapse: collapse; background: var(--ei-surface); border: 1px solid var(--ei-line); border-radius: var(--ei-radius); overflow: hidden; font-size: 14px; }
.ei-tbl th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--ei-text-3); padding: 10px 12px; border-bottom: 1px solid var(--ei-line); background: var(--ei-surface-2); }
.ei-tbl td { padding: 10px 12px; border-bottom: 1px solid var(--ei-line); vertical-align: middle; max-width: 320px; overflow-wrap: anywhere; }
.ei-tbl tr:last-child td { border-bottom: 0; }
.ei-tbl tbody tr:hover { background: var(--ei-surface-2); }
.ei-tbl .num { text-align: right; font-variant-numeric: tabular-nums; } .ei-tbl .cen { text-align: center; }
.ei-tbl .id { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; } .ei-tbl .muted { color: var(--ei-text-2); font-size: 13px; }
.ei-tbl .acts { white-space: nowrap; text-align: right; }

/* Paginación: cuántos hay, no solo páginas */
.ei-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0; font-size: 13.5px; color: var(--ei-text-2); flex-wrap: wrap; }
.ei-pager__links { display: flex; gap: 4px; } .ei-pager__links a, .ei-pager__links span { min-width: 34px; height: 34px; display: inline-grid; place-items: center; border: 1px solid var(--ei-line); border-radius: 8px; text-decoration: none; color: var(--ei-text); background: var(--ei-surface); }
.ei-pager__links .is-active { background: var(--ei-primary); color: #fff; border-color: var(--ei-primary); }

/* Estados vacíos (tres casos distintos) y alertas */
.ei-empty { text-align: center; padding: 40px 20px; color: var(--ei-text-2); background: var(--ei-surface); border: 1px dashed var(--ei-line); border-radius: var(--ei-radius); }
.ei-empty .bi { font-size: 30px; display: block; margin-bottom: 8px; color: var(--ei-text-3); }
.ei-empty strong { display: block; color: var(--ei-text); margin-bottom: 4px; }
.ei-alert { padding: 10px 14px; border-radius: 8px; margin: 12px 28px 0; font-size: 14px; border: 1px solid transparent; }
.ei-alert--success { background: var(--ei-success-soft); color: var(--ei-success); } .ei-alert--warning { background: var(--ei-warning-soft); color: var(--ei-warning); }
.ei-alert--danger { background: var(--ei-danger-soft); color: var(--ei-danger); } .ei-alert--info { background: var(--ei-info-soft); color: var(--ei-info); }

/* Formularios: error junto al campo */
.ei-field { margin-bottom: 14px; } .ei-field label { display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 4px; }
.ei-field .ei-input, .ei-field .ei-select { width: 100%; } .ei-field__err { color: var(--ei-danger); font-size: 13px; margin-top: 4px; }
.ei-field__help { color: var(--ei-text-3); font-size: 12.5px; margin-top: 4px; }

/* Login */
.ei-login { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.ei-login .ei-card { width: 100%; max-width: 400px; }

/* Móvil: nav off-canvas, áreas de pulsación 44px */
@media (max-width: 900px) {
  .ei-nav { position: fixed; left: 0; top: 0; transform: translateX(-100%); transition: transform .2s; z-index: 40; }
  .ei-nav.is-open { transform: none; box-shadow: 0 12px 40px rgba(0,0,0,.25); }
  .ei-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 35; }
  .ei-nav.is-open + .ei-backdrop { display: block; }
  .ei-top__burger { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--ei-text); font-size: 22px; }
  .ei-wrap { padding: 16px; } .ei-top { padding: 8px 16px; } .ei-btn { min-height: 44px; }
}


/* ── v4 · Tipografía de titulares, auth, acciones rápidas, móvil (IF-Mini) ── */
:root { --ei-display: "Montserrat", var(--ei-font); }
h1, h2, .ei-kpi__v { font-family: var(--ei-display); letter-spacing: -.01em; }
h1 { font-size: 24px; font-weight: 800; } h2 { font-size: 18px; font-weight: 700; }
.ei-btn--block { width: 100%; justify-content: center; min-height: 44px; }
.ei-nav__name { font-family: var(--ei-display); font-weight: 800; font-size: 15px; letter-spacing: -.01em; }

/* Auth (login / recuperación) */
.ei-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(320px, 44%) 1fr; }
.ei-auth__brand { position: relative; overflow: hidden; background: var(--ei-primary-soft); color: var(--ei-primary); display: flex; flex-direction: column; justify-content: space-between; padding: 40px; border-right: 1px solid var(--ei-line); }
.ei-auth__logo { width: 250px; max-width: 72%; position: relative; z-index: 2; }
.ei-auth__tag { position: relative; z-index: 2; font-family: var(--ei-display); font-weight: 800; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; margin: 0; color: var(--ei-primary); max-width: 14ch; }
.ei-auth__inks { position: absolute; inset: 0; pointer-events: none; }
.ei-auth__inks span { position: absolute; width: 44vmin; height: 44vmin; border-radius: 50%; mix-blend-mode: multiply; }
.ei-auth__inks .c { background: var(--ei-cyan); left: 6%; top: 26%; animation: eiInkA 14s ease-in-out infinite; } .ei-auth__inks .m { background: var(--ei-accent); right: 4%; top: 18%; animation: eiInkB 16s ease-in-out infinite; } .ei-auth__inks .y { background: var(--ei-yellow); left: 26%; bottom: 6%; animation: eiInkC 18s ease-in-out infinite; }
@keyframes eiInkA { 0%,100% { transform: translate(0,0) } 50% { transform: translate(8%,5%) } } @keyframes eiInkB { 0%,100% { transform: translate(0,0) } 50% { transform: translate(-7%,7%) } } @keyframes eiInkC { 0%,100% { transform: translate(0,0) } 50% { transform: translate(4%,-8%) } }
@media (prefers-reduced-motion: reduce) { .ei-auth__inks span { animation: none; } }
:root[data-theme="dark"] .ei-auth__brand { background: #14304F; } :root[data-theme="dark"] .ei-auth__tag { color: #fff; } :root[data-theme="dark"] .ei-auth__inks span { mix-blend-mode: screen; opacity: .85; }
.ei-auth__panel { display: grid; place-items: center; padding: 32px 20px; }
.ei-auth__box { width: 100%; max-width: 380px; }
.ei-auth__box h1 { margin-bottom: 4px; } .ei-auth__sub { color: var(--ei-text-2); margin: 0 0 18px; font-size: 14.5px; }
.ei-auth__logo-mobile { display: none; height: 40px; margin-bottom: 22px; }
.ei-auth__links { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0 0; font-size: 14px; }
.ei-pass { position: relative; } .ei-pass .ei-input { padding-right: 46px; }
.ei-pass__toggle { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 38px; height: 34px; border: 0; background: transparent; color: var(--ei-text-3); border-radius: 6px; }
.ei-pass__toggle:hover { color: var(--ei-text); background: var(--ei-surface-2); }
.ei-input:focus, .ei-select:focus { outline: none; border-color: var(--ei-primary); box-shadow: 0 0 0 3px var(--ei-primary-soft); }
@media (max-width: 900px) { .ei-auth { grid-template-columns: 1fr; } .ei-auth__brand { display: none; } .ei-auth__logo-mobile { display: block; } .ei-auth__panel { align-items: start; padding-top: 48px; } }

/* Acciones rápidas del tablero */
.ei-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 22px; }
.ei-quick__a { display: flex; align-items: center; gap: 14px; padding: 16px; background: var(--ei-surface); border: 1px solid var(--ei-line); border-radius: var(--ei-radius); text-decoration: none; color: var(--ei-text); min-height: 72px; transition: border-color .15s, transform .15s; }
.ei-quick__a:hover { border-color: var(--ei-primary); transform: translateY(-2px); color: var(--ei-text); }
.ei-quick__a .bi { font-size: 22px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; background: var(--ei-primary-soft); color: var(--ei-primary); flex: none; }
.ei-quick__a.is-primary .bi { background: var(--ei-primary); color: #fff; }
.ei-quick__a b { display: block; font-size: 14.5px; } .ei-quick__a small { color: var(--ei-text-2); font-size: 12.5px; }

/* Móvil: nav off-canvas con cabecera y cierre, KPIs en 2 columnas, top compacto */
@media (max-width: 900px) {
  .ei-nav { width: min(84vw, 300px); flex-basis: auto; }
  .ei-nav__brand { padding-top: 18px; }
  .ei-nav__list a { min-height: 46px; }
  .ei-kpis { grid-template-columns: repeat(2, 1fr); gap: 10px; } .ei-kpi__v { font-size: 21px; }
  .ei-head { margin-bottom: 14px; } .ei-actions .ei-btn { flex: 1 1 auto; justify-content: center; }
  .ei-top__title { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ei-top__user span { display: none; }
}

/* ── Login v2 · panel azul plano, urgentes como mensaje central (IF-Mini) ── */
.ei-auth--v2 .ei-auth__brand { background: var(--ei-primary); color: #fff; border-right: 0; padding: 44px 48px; justify-content: flex-start; gap: 40px; }
.ei-auth--v2 .ei-auth__logo { width: 230px; max-width: 70%; }
.ei-auth__logo-link { position: relative; z-index: 2; display: inline-block; }
.ei-auth__msg { position: relative; z-index: 2; max-width: 460px; }
.ei-auth__urg { display: inline-flex; align-items: center; gap: 6px; background: var(--ei-yellow); color: var(--ei-ink); font-weight: 700; font-size: 13.5px; padding: 6px 12px; border-radius: 999px; margin-bottom: 18px; }
.ei-auth--v2 .ei-auth__tag { color: #fff; font-size: clamp(28px, 3vw, 40px); line-height: 1.1; max-width: none; margin: 0 0 14px; }
.ei-auth__sub2 { color: #D6E4F7; font-size: 16px; line-height: 1.5; margin: 0 0 22px; max-width: 42ch; }
.ei-auth__list { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 10px; font-size: 15px; }
.ei-auth__list li { display: flex; align-items: center; gap: 12px; } .ei-auth__list .bi { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: rgba(255,255,255,.14); font-size: 16px; color: var(--ei-yellow); flex: none; }
.ei-auth__wa { display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 10px 20px; border-radius: 999px; background: #fff; color: var(--ei-primary-700); font-weight: 700; text-decoration: none; font-size: 15px; }
.ei-auth__wa:hover { background: var(--ei-yellow); color: var(--ei-ink); }
.ei-auth__iso { position: absolute; right: -6%; bottom: -8%; width: 52%; max-width: 420px; opacity: .95; pointer-events: none; }
.ei-auth__urg--mobile { display: none; }
.ei-auth__new { margin-top: 26px; padding: 16px; background: var(--ei-surface-2); border-radius: 12px; font-size: 14px; color: var(--ei-text-2); }
.ei-auth__new b { color: var(--ei-text); }
@media (max-width: 900px) { .ei-auth__urg--mobile { display: inline-flex; margin-bottom: 16px; } }

/* ── Trabajos (operativos) ── */
.ei-jobs { display: grid; gap: 10px; }
.ei-job { display: flex; gap: 16px; align-items: center; justify-content: space-between; background: var(--ei-surface); border: 1px solid var(--ei-line); border-left: 4px solid var(--ei-line); border-radius: var(--ei-radius); padding: 14px 16px; }
.ei-job.is-urg { border-left-color: var(--ei-yellow); background: linear-gradient(90deg, var(--ei-yellow-soft), var(--ei-surface) 30%); }
.ei-job__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px; }
.ei-job__folio { font-family: var(--ei-display); font-weight: 800; font-size: 15px; text-decoration: none; color: var(--ei-text); }
.ei-job__work { font-size: 14.5px; } .ei-job__meta { font-size: 13px; color: var(--ei-text-2); margin-top: 2px; }
.ei-job__acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; flex: none; max-width: 46%; }
.ei-job__acts .ei-btn--sm { min-height: 36px; }
@media (max-width: 900px) { .ei-job { flex-direction: column; align-items: stretch; } .ei-job__acts { max-width: none; justify-content: flex-start; } .ei-job__acts form, .ei-job__acts .ei-btn { flex: 1 1 auto; } .ei-job__acts .ei-btn { width: 100%; justify-content: center; min-height: 44px; } }

/* ══ v8 · Sistema: escala tipográfica modular (1.25, fluida), espaciado base 4, retícula propia (sustituye Bootstrap), menú colapsable, móvil ══ */
:root {
  --fs-0: 0.8125rem; --fs-1: 0.9375rem; --fs-2: 1rem; --fs-3: clamp(1.125rem, 1rem + .5vw, 1.25rem); --fs-4: clamp(1.375rem, 1.2rem + .8vw, 1.5625rem); --fs-5: clamp(1.625rem, 1.3rem + 1.4vw, 1.95rem);
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px; --sp-7: 48px;
  --ei-nav-w-min: 68px; color-scheme: light dark;
}
:root[data-theme="light"] { color-scheme: light; } :root[data-theme="dark"] { color-scheme: dark; }
h1 { font-size: var(--fs-5); } h2 { font-size: var(--fs-4); } .ei-kpi__v { font-size: var(--fs-4); } .ei-sec { font-size: var(--fs-0); }
/* Retícula mínima (reemplaza .row/.col-* de Bootstrap en las páginas existentes) */
.row { display: flex; flex-wrap: wrap; margin: 0 calc(var(--sp-2) * -1); } .row > [class*="col-"] { padding: 0 var(--sp-2); flex: 1 1 100%; max-width: 100%; box-sizing: border-box; }
.row.g-2 > * { margin-bottom: var(--sp-2); } .row.g-3 > * { margin-bottom: var(--sp-3); } .align-items-end { align-items: flex-end; }
@media (min-width: 768px) { .col-md-2 { flex: 0 0 16.6667%; max-width: 16.6667%; } .col-md-3 { flex: 0 0 25%; max-width: 25%; } .col-md-4 { flex: 0 0 33.3333%; max-width: 33.3333%; } .col-md-6 { flex: 0 0 50%; max-width: 50%; } }
@media (min-width: 992px) { .col-lg-6 { flex: 0 0 50%; max-width: 50%; } }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Menú lateral colapsable (escritorio) */
.ei-nav__collapse { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; background: transparent; color: var(--ei-text-2); border-radius: 8px; font: inherit; font-size: 14px; cursor: pointer; min-height: 36px; }
.ei-nav__collapse:hover { background: var(--ei-surface-2); color: var(--ei-text); } .ei-nav__collapse .bi { font-size: 17px; width: 20px; text-align: center; transition: transform .2s; }
.ei-nav { transition: width .2s ease, flex-basis .2s ease; }
@media (min-width: 901px) {
  html.nav-min .ei-nav { width: var(--ei-nav-w-min); flex-basis: var(--ei-nav-w-min); }
  html.nav-min .ei-nav__name, html.nav-min .ei-nav__role, html.nav-min .ei-nav__item span, html.nav-min .ei-nav__collapse span { display: none; }
  html.nav-min .ei-nav__brand { justify-content: center; padding: 16px 8px 8px; } html.nav-min .ei-nav__item, html.nav-min .ei-nav__collapse { justify-content: center; padding: 10px 0; }
  html.nav-min .ei-nav__badge { position: absolute; top: 4px; right: 8px; margin: 0; } html.nav-min .ei-nav__item { position: relative; }
  html.nav-min .ei-nav__collapse .bi { transform: rotate(180deg); }
}
@media (max-width: 900px) { .ei-nav__collapse { display: none; } }
/* Móvil: campos a 16 px (evita el zoom de iOS), áreas táctiles, filtros apilados */
@media (max-width: 900px) {
  .ei-input, .ei-select, .ei-btn { font-size: 16px; } .ei-input, .ei-select { min-height: 44px; }
  .ei-filters { flex-direction: column; align-items: stretch; } .ei-filters .ei-input, .ei-filters .ei-select, .ei-filters .ei-btn { width: 100%; }
  .ei-quick { grid-template-columns: 1fr 1fr; } .ei-quick__a { flex-direction: column; align-items: flex-start; gap: 8px; min-height: 0; padding: 12px; } .ei-quick__a small { display: none; }
  .ei-wrap { padding: var(--sp-4); }
}
@media (prefers-reduced-motion: reduce) { .ei-nav, .ei-quick__a, .ei-btn { transition: none; } }
@media (max-width: 900px) { .ei-tbl .hide-m { display: none; } }
.ei-tbl .num { white-space: nowrap; }
/* ── Asistente (admin) ── */
.ei-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--sp-4,20px);align-items:start}@media (max-width:1000px){.ei-split{grid-template-columns:1fr}}
.chatlog{display:flex;flex-direction:column;gap:8px;padding:14px;max-height:70vh;overflow:auto;background:var(--bg-2,#f6f6f6);border-radius:12px}
.chatlog__m{max-width:85%;padding:8px 12px;border-radius:12px;font-size:14px;line-height:1.4;background:#fff;border:1px solid var(--g200,#dfe0e0);align-self:flex-start}
.chatlog__m--user{align-self:flex-end;background:var(--azul,#004F9F);color:#fff;border-color:transparent}
.chatlog__m--sistema{align-self:center;background:transparent;border:0;color:var(--g500,#767675);font-size:12.5px;font-style:italic}
.chatlog__m small{display:block;font-size:11px;opacity:.65;margin-top:3px}
html[data-theme=dark] .chatlog{background:rgba(255,255,255,.04)}html[data-theme=dark] .chatlog__m{background:rgba(255,255,255,.07);border-color:transparent}
/* ── Caja / mostrador ── */
.caja{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:20px;align-items:start}@media (max-width:1100px){.caja{grid-template-columns:1fr}}
.caja__cot{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px dashed var(--ei-line);border-radius:var(--ei-radius);margin-top:4px}
.qbtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.qbtn{font:600 12px var(--ei-font);padding:4px 9px;border:1px solid var(--ei-line);border-radius:999px;background:var(--ei-surface);color:var(--ei-text);cursor:pointer}.qbtn:hover{border-color:var(--ei-primary);color:var(--ei-primary)}
.ei-check{display:flex;align-items:center;gap:8px;font-size:14px;margin:6px 0 12px;cursor:pointer}.ei-help{font-size:12.5px;color:var(--ei-text-2,#767675);margin-top:5px;line-height:1.4}
.ei-field.is-err .ei-input,.ei-field.is-err .ei-select{border-color:var(--ei-danger);box-shadow:0 0 0 3px var(--ei-danger-soft)}
.ei-btn--lg{padding:12px 18px;font-size:16px;justify-content:center}
.sug{position:relative;z-index:5;margin-top:4px;border:1px solid var(--ei-line);border-radius:10px;background:var(--ei-surface);box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}.sug__i{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-bottom:1px solid var(--ei-line);background:transparent;color:inherit;font:14px var(--ei-font);cursor:pointer}.sug__i:hover{background:var(--ei-primary-soft)}.sug__i small{color:var(--ei-text-2,#767675);margin-left:6px}
.cli-sel{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--ei-primary-soft);margin-bottom:12px}.cli-sel small{color:var(--ei-text-2,#767675)}.cli-sel .ei-btn{align-self:flex-start;margin-top:6px}
.tot{display:grid;gap:4px;margin-bottom:12px;font-size:14px}.tot>div{display:flex;justify-content:space-between}.tot__t{font-size:18px;padding-top:6px;border-top:1px solid var(--ei-line)}
/* ── Cola de producción ── */
.cola{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.cola__a{padding:10px 12px;border:1px solid var(--ei-line);border-radius:var(--ei-radius);background:var(--ei-surface)}.cola__a b{display:block;font-size:13px;margin-bottom:4px}.cola__bar{height:6px;border-radius:3px;background:var(--ei-neutral-soft);overflow:hidden;margin:6px 0}.cola__bar i{display:block;height:100%;background:var(--ei-primary)}.cola__a.is-hot .cola__bar i{background:var(--ei-danger)}.cola__a small{color:var(--ei-text-2,#767675);font-size:12px}
[hidden]{display:none!important}
.caja__side .ei-card{margin-bottom:16px}.caja__side .ei-card:last-child{margin-bottom:0}

/* ── Tablas con scroll horizontal (envueltas por ei.js) y anchos mínimos en grids ── */
.ei-tblwrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;border-radius:var(--ei-radius)}.ei-tblwrap .ei-tbl{min-width:560px}
.ei-split>*,.caja>*,.row>[class*="col-"]{min-width:0}.caja__cot{flex-wrap:wrap}.ei-card__h{flex-wrap:wrap}
.opc-row{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}.opc-row .ei-input:first-child{flex:1 1 160px;min-width:0}
@media (max-width:600px){.ei-filters .ei-select,.ei-filters .ei-input{flex:1 1 100%;max-width:100%}}
.ei-main,.ei-wrap,.ei-shell>*{min-width:0}html,body{overflow-x:hidden}
