/* ============================================================
   Vermont Gestión — Sistema de diseño v5 · "Acero oscuro"
   Oscuro · Minimalista · Tipografía ligera · Acento acero-verdoso
   ------------------------------------------------------------
   Basado en la imagen de referencia del cliente: fondo casi negro,
   degradado acero-verdoso en los paneles, líneas finas que se
   desvanecen, etiquetas pequeñas en mayúsculas y títulos ligeros
   con una palabra en negrita cursiva.
   Todas las clases y variables (--c-*) del sistema anterior se
   conservan: solo cambió su aspecto.
   ============================================================ */

@font-face{font-family:'Red Hat Display';font-weight:300;font-style:normal;font-display:swap;src:url(../fonts/redhat-300.woff2) format('woff2')}
@font-face{font-family:'Red Hat Display';font-weight:300;font-style:italic;font-display:swap;src:url(../fonts/redhat-300-italic.woff2) format('woff2')}
@font-face{font-family:'Red Hat Display';font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/redhat-400.woff2) format('woff2')}
@font-face{font-family:'Red Hat Display';font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/redhat-500.woff2) format('woff2')}
@font-face{font-family:'Red Hat Display';font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/redhat-700.woff2) format('woff2')}
@font-face{font-family:'Red Hat Display';font-weight:700;font-style:italic;font-display:swap;src:url(../fonts/redhat-700-italic.woff2) format('woff2')}

/* Fase 10 (4.9): dos temas. El oscuro es el de siempre con más contraste;
   el claro se activa con <html data-theme="claro"> (selector de la barra
   superior, guardado en la cookie vg_tema). Todo color de la interfaz sale
   de estas variables: no escribir colores fijos en las pantallas. */
:root{
  --r:12px;--r-sm:8px;--r-lg:16px;
  --sw:244px;
  --ff:'Red Hat Display','Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --ff-doc:'Red Hat Display','Segoe UI',-apple-system,BlinkMacSystemFont,Arial,sans-serif;

  color-scheme:dark;
  /* Acento acero-verdoso (más luminoso que en la 4.8 para ganar contraste) */
  --c-brand:#9cc3cd;--c-brand-dark:#7aa0aa;--c-brand-light:rgba(156,195,205,.13);--c-brand-soft:rgba(156,195,205,.24);--c-brand-bg:rgba(156,195,205,.13);
  --brand-rgb:156,195,205;--c-brand-hover:#b6d6de;--c-brand-border:rgba(156,195,205,.55);
  --c-accent:#9dbde6;--c-accent-light:rgba(157,189,230,.15);

  /* Navegación */
  --c-sidebar:#121617;--c-sidebar-2:#0b0d0e;--c-sidebar-hover:rgba(255,255,255,.06);--c-sidebar-active:#9cc3cd;
  --c-sidebar-border:rgba(255,255,255,.09);
  --sb-glow:radial-gradient(120% 30% at 0% 104%,rgba(140,150,155,.24),transparent 72%);
  --sb-edge:#1e2427;--sb-text:#b4c2c6;--sb-strong:#f1f6f7;--sb-dim:#7f939a;--sb-rule:linear-gradient(90deg,#46595f,transparent);
  --sb-active-bg:rgba(156,195,205,.14);--sb-input-bg:#171b1d;--sb-input-border:#343d40;
  --avatar-bg:rgba(156,195,205,.18);--avatar-border:rgba(156,195,205,.4);--avatar-fg:#c4dce2;
  --topbar-bg:rgba(11,13,14,.92);

  /* Superficies y texto */
  --c-bg:#0b0d0e;--c-card:#15191b;--c-card-2:#1b2023;--c-border:#363f42;--c-border-soft:#262d30;
  --c-inset:#0d1011;--c-steel:#5f7378;
  --c-text:#edf2f3;--c-muted:#a9b6ba;--c-light:#86959a;
  --c-strong:#f4f8f9;--c-strongest:#ffffff;--c-label:#93a7ad;--c-line:#333c3f;--c-line-strong:#4a585d;--c-arrow:#5d6f74;
  --c-hover:rgba(255,255,255,.06);--c-tint:rgba(255,255,255,.035);--c-row-hover:rgba(156,195,205,.07);--c-overlay:rgba(0,0,0,.66);
  --c-input-border:#3b4549;--c-btn-border:#454f53;--c-btn-border-h:#62747a;--c-placeholder:#73848a;--c-disabled-bg:#121617;
  --c-on-brand:#0b1012;--c-neutral-bg:rgba(255,255,255,.08);--c-scroll:#333b3e;--c-scroll-h:#46525a;
  --bg-glow:radial-gradient(55% 38% at 0% 100%,rgba(130,140,145,.12),transparent 70%);
  --toast-bg:#1e2326;--toast-fg:#f4f8f9;

  /* Semánticos (fondos translúcidos sobre oscuro) */
  --c-green:#86d4ab;--c-green-bg:rgba(134,212,171,.15);--c-green-hover:#a2e0bf;
  --c-red:#f09590;--c-red-bg:rgba(240,149,144,.15);
  --c-yellow:#e6c66f;--c-yellow-bg:rgba(230,198,111,.15);
  --c-blue:#9dbde6;--c-blue-bg:rgba(157,189,230,.15);
  --c-orange:#eca874;--c-orange-bg:rgba(236,168,116,.15);
  --c-purple:#c4aee3;--c-purple-bg:rgba(196,174,227,.15);
  --c-ox:#dcab97;--c-ox-bg:rgba(185,139,120,.22);
  --c-yellow-border:rgba(230,198,111,.38);--c-red-border:rgba(240,149,144,.45);--c-blue-border:rgba(157,189,230,.38);--c-green-border:rgba(134,212,171,.4);
  --c-warn-text:#f0d898;--c-danger-text:#f7b8b3;--c-info-text:#c6d8f0;

  /* Paneles del dashboard y tesorería (degradado acero) */
  --grad-text:linear-gradient(180deg,#ffffff 0%,#9fb1b6 100%);
  --hs-border:#262e31;--hs-bg:#101313;--hs-link:#b6cbd1;
  --hs-left-bg:radial-gradient(90% 34% at 0% 106%,rgba(150,156,160,.22),transparent 72%),linear-gradient(180deg,#1f2325,#191c1e);
  --hs-right-bg:linear-gradient(90deg,#5d7279 0%,#4d5f64 3%,#323b3d 14%,#171b1b 40%,#111312 70%);
  --panel-bg:linear-gradient(90deg,#465a60 0%,#2a3436 6%,#171b1b 34%,#131616 100%);
  --hs-rule:linear-gradient(90deg,#62777c,transparent 82%);--hs-sep:linear-gradient(90deg,#46595f,transparent 80%);
  --hs-sep-v:linear-gradient(180deg,#46595f,transparent);

  /* Paleta de gráficos */
  --ch-1:#9cc3cd;--ch-2:#cfd8db;--ch-3:#c9977f;--ch-4:#86d4ab;--ch-5:#e6c66f;--ch-6:#a796c4;--ch-steel:#56696e;
  --ch-grid:rgba(255,255,255,.08);--ch-tick:#b3c4c9;--ch-axis:rgba(255,255,255,.25);

  --shadow:none;
  --shadow-md:0 8px 24px -10px rgba(0,0,0,.7);
  --shadow-lg:0 20px 44px -14px rgba(0,0,0,.85);
}
html[data-theme="claro"]{
  color-scheme:light;
  --c-brand:#2f6774;--c-brand-dark:#234f59;--c-brand-light:rgba(47,103,116,.09);--c-brand-soft:rgba(47,103,116,.18);--c-brand-bg:rgba(47,103,116,.09);
  --brand-rgb:47,103,116;--c-brand-hover:#24525d;--c-brand-border:rgba(47,103,116,.5);
  --c-accent:#2f5f9e;--c-accent-light:rgba(47,95,158,.1);

  --c-sidebar:#f6f8f9;--c-sidebar-2:#e8eef0;--c-sidebar-hover:rgba(18,24,26,.05);--c-sidebar-active:#2f6774;
  --c-sidebar-border:rgba(18,24,26,.1);
  --sb-glow:radial-gradient(120% 30% at 0% 104%,rgba(47,103,116,.10),transparent 72%);
  --sb-edge:#d3dcdf;--sb-text:#33434a;--sb-strong:#0a1013;--sb-dim:#5b6d73;--sb-rule:linear-gradient(90deg,#b7c4c8,transparent);
  --sb-active-bg:rgba(47,103,116,.12);--sb-input-bg:#ffffff;--sb-input-border:#c3ced1;
  --avatar-bg:rgba(47,103,116,.12);--avatar-border:rgba(47,103,116,.35);--avatar-fg:#234f59;
  --topbar-bg:rgba(255,255,255,.94);

  --c-bg:#eef2f3;--c-card:#ffffff;--c-card-2:#ffffff;--c-border:#c9d3d6;--c-border-soft:#dde4e6;
  --c-inset:#f7f9fa;--c-steel:#8aa0a6;
  --c-text:#11181b;--c-muted:#4b5a5f;--c-light:#66767b;
  --c-strong:#0a1013;--c-strongest:#000000;--c-label:#4d6066;--c-line:#c6d0d3;--c-line-strong:#9fb0b5;--c-arrow:#8a9ca1;
  --c-hover:rgba(18,24,26,.05);--c-tint:rgba(18,24,26,.03);--c-row-hover:rgba(47,103,116,.06);--c-overlay:rgba(16,24,28,.45);
  --c-input-border:#b9c5c9;--c-btn-border:#b3c0c4;--c-btn-border-h:#7f9297;--c-placeholder:#7a888d;--c-disabled-bg:#eef2f3;
  --c-on-brand:#ffffff;--c-neutral-bg:#e8edef;--c-scroll:#c3cdd0;--c-scroll-h:#a5b3b7;
  --bg-glow:radial-gradient(55% 38% at 0% 100%,rgba(47,103,116,.06),transparent 70%);
  --toast-bg:#11181b;--toast-fg:#f4f8f9;

  --c-green:#166c3e;--c-green-bg:#e3f4ea;--c-green-hover:#10552f;
  --c-red:#b42318;--c-red-bg:#fdecea;
  --c-yellow:#8a5a00;--c-yellow-bg:#fdf3d8;
  --c-blue:#1f4f9a;--c-blue-bg:#e7eefa;
  --c-orange:#a94a0b;--c-orange-bg:#fdebdc;
  --c-purple:#5b3aa0;--c-purple-bg:#efe9fa;
  --c-ox:#9a5a43;--c-ox-bg:#f6e6df;
  --c-yellow-border:#e8cf8a;--c-red-border:#f0b4ae;--c-blue-border:#b5c9ea;--c-green-border:#a9d9bc;
  --c-warn-text:#6b4600;--c-danger-text:#8f1c13;--c-info-text:#1d3f7a;

  --grad-text:linear-gradient(180deg,#0a1013 0%,#3d5a62 100%);
  --hs-border:#d3dcdf;--hs-bg:#ffffff;--hs-link:#24525d;
  --hs-left-bg:radial-gradient(90% 34% at 0% 106%,rgba(47,103,116,.08),transparent 72%),linear-gradient(180deg,#ffffff,#f6f8f9);
  --hs-right-bg:linear-gradient(90deg,#9fb6bd 0%,#c3d2d6 3%,#e3eaec 14%,#f7f9fa 40%,#ffffff 70%);
  --panel-bg:linear-gradient(90deg,#b4c7cc 0%,#dbe4e7 6%,#f6f8f9 34%,#ffffff 100%);
  --hs-rule:linear-gradient(90deg,#9fb0b5,transparent 82%);--hs-sep:linear-gradient(90deg,#c6d0d3,transparent 80%);
  --hs-sep-v:linear-gradient(180deg,#c6d0d3,transparent);

  --ch-1:#2f6774;--ch-2:#7d8f95;--ch-3:#b0694f;--ch-4:#2e8a5a;--ch-5:#b8871f;--ch-6:#6c5a9c;--ch-steel:#a9b8bc;
  --ch-grid:rgba(18,24,26,.08);--ch-tick:#3f4f54;--ch-axis:rgba(18,24,26,.25);

  --shadow:0 1px 2px rgba(16,24,40,.05);
  --shadow-md:0 8px 24px -12px rgba(16,24,40,.18);
  --shadow-lg:0 20px 44px -16px rgba(16,24,40,.25);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--ff);color:var(--c-text);display:flex;min-height:100vh;font-size:14px;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background:var(--bg-glow),var(--c-bg);background-attachment:fixed}
::selection{background:var(--c-brand);color:var(--c-on-brand)}
input[type=checkbox],input[type=radio]{accent-color:var(--c-brand)}
:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--c-scroll);border-radius:10px;border:2px solid var(--c-bg)}
::-webkit-scrollbar-thumb:hover{background:var(--c-scroll-h)}

/* ── SIDEBAR ── */
.sb{width:var(--sw);min-width:var(--sw);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:200;overflow-y:auto;overflow-x:hidden;transition:transform .2s ease;
  background:var(--sb-glow),linear-gradient(180deg,var(--c-sidebar) 0%,var(--c-sidebar-2) 100%);
  border-right:1px solid var(--sb-edge)}
.sb::-webkit-scrollbar-thumb{background:var(--c-scroll);border-color:transparent}
.sb-brand{padding:24px 20px 14px;display:flex;align-items:center;gap:12px;text-decoration:none}
.sb-brand img{width:36px;height:36px;object-fit:contain;border-radius:9px;flex-shrink:0;background:#e6ecee;padding:3px}
.sb-brand-text{line-height:1.2;overflow:hidden}
.sb-brand-name{color:var(--sb-strong);font-size:16px;font-weight:500;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-brand-sub{color:var(--sb-dim);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.sb-close{display:none;margin-left:auto;background:none;border:none;color:var(--sb-text);font-size:20px;cursor:pointer;padding:4px;line-height:1}
.sb-section{padding:20px 20px 7px;font-size:10.5px;font-weight:500;color:var(--sb-dim);letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:12px}
.sb-section::after{content:'';flex:1;height:1px;background:var(--sb-rule)}
.sb-link{display:flex;align-items:center;gap:11px;padding:8px 14px;margin:1px 10px;color:var(--sb-text);text-decoration:none;font-size:13.5px;font-weight:400;border-radius:9px;position:relative;transition:background .15s,color .15s}
.sb-link i{font-size:17px;width:18px;text-align:center;opacity:.8;flex-shrink:0}
.sb-link:hover{background:var(--c-sidebar-hover);color:var(--sb-strong)}
.sb-link:hover i{opacity:1}
.sb-link.active{background:var(--sb-active-bg);color:var(--sb-strong);font-weight:500}
.sb-link.active i{opacity:1;color:var(--c-sidebar-active)}
.sb-link.active::before{content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:var(--c-sidebar-active)}
.sb-empresa-switch select.fc{background:var(--sb-input-bg);border-color:var(--sb-input-border);color:var(--sb-strong)}
.sb-empresa-switch select.fc:focus{border-color:var(--c-brand)}
.sb-user{margin-top:auto;border-top:1px solid var(--c-sidebar-border);padding:14px 16px 6px}
.sb-user-info{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sb-user-avatar{width:34px;height:34px;border-radius:50%;background:var(--avatar-bg);border:1px solid var(--avatar-border);color:var(--avatar-fg);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;font-weight:500}
.sb-user-text{line-height:1.3;overflow:hidden}
.sb-user-name{color:var(--sb-strong);font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-user-rol{color:var(--sb-dim);font-size:11px}
.sb-user .sb-link{padding:7px 14px;margin:0 0 6px;color:var(--c-red)}
.sb-user .sb-link:hover{background:var(--c-red-bg);color:var(--c-red)}
.sb-footer{padding:0 20px 14px;font-size:11px;color:var(--sb-dim)}
.sb-badge{background:var(--c-red);color:var(--c-on-brand);font-size:10px;padding:1px 6px;border-radius:10px;margin-left:auto;font-weight:700}
.sb-overlay{display:none;position:fixed;inset:0;background:var(--c-overlay);z-index:190}
.sb-overlay.open{display:block}

/* ── MAIN ── */
.main{margin-left:var(--sw);flex:1;display:flex;flex-direction:column;min-height:100vh;overflow:hidden;min-width:0}
.topbar{position:sticky;top:0;z-index:100;background:var(--topbar-bg);border-bottom:1px solid var(--c-border-soft);padding:9px 26px;display:flex;align-items:center;flex-wrap:wrap;min-height:60px;gap:8px 14px}
.topbar-title{font-size:19px;font-weight:300;flex:0 0 auto;letter-spacing:.01em;white-space:nowrap;color:var(--c-strong)}
.topbar .gs-wrap{min-width:170px}
.topbar .btn{padding:7px 13px;font-size:12.5px}
.topbar-breadcrumb{font-size:12px;color:var(--c-muted);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-breadcrumb a{color:var(--c-muted);text-decoration:none}.topbar-breadcrumb a:hover{color:var(--c-brand)}
.sb-toggle{display:none;background:none;border:none;font-size:20px;color:var(--c-text);cursor:pointer;padding:4px 6px 4px 0;line-height:1}
.page{padding:26px 28px 44px}

/* ── NOTIFICATION BELL ── */
.notif-wrap{position:relative}
.notif-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:transparent;border:1px solid transparent;color:var(--c-muted);font-size:19px;cursor:pointer;transition:background .15s,color .15s}
.notif-btn:hover{background:var(--c-hover);color:var(--c-text)}
.notif-dot{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:10px;background:var(--c-red);color:var(--c-on-brand);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--c-bg)}
.notif-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:90vw;background:var(--c-card-2);border:1px solid var(--c-border);border-radius:var(--r);box-shadow:var(--shadow-lg);z-index:400;overflow:hidden}
.notif-dropdown.open{display:block}
.notif-head{padding:13px 16px;border-bottom:1px solid var(--c-border);font-size:13px;font-weight:500;display:flex;justify-content:space-between;align-items:center}
.notif-head a{font-size:12px;font-weight:500;color:var(--c-brand);text-decoration:none}
.notif-list{max-height:340px;overflow-y:auto}
.notif-item{display:flex;gap:10px;padding:11px 16px;border-bottom:1px solid var(--c-border-soft);text-decoration:none;color:inherit;transition:background .12s}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--c-hover)}
.notif-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.notif-body{min-width:0}
.notif-title{font-size:12.5px;font-weight:500;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-sub{font-size:11.5px;color:var(--c-muted)}
.notif-empty{padding:32px 16px;text-align:center;color:var(--c-muted);font-size:12.5px}
.notif-empty i{font-size:28px;display:block;margin-bottom:8px;opacity:.4}

/* ── USER MENU (topbar) ── */
.usr-wrap{position:relative}
.usr-btn{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--c-border);border-radius:30px;padding:4px 12px 4px 4px;cursor:pointer;font-family:inherit;color:var(--c-text);transition:background .15s}
.usr-btn:hover{background:var(--c-hover)}
.usr-btn .sb-user-avatar{width:28px;height:28px;font-size:12px}
.usr-btn-name{font-size:12.5px;font-weight:500;color:var(--c-text);max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.usr-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;width:210px;background:var(--c-card-2);border:1px solid var(--c-border);border-radius:var(--r);box-shadow:var(--shadow-lg);z-index:400;overflow:hidden;padding:6px}
.usr-dropdown.open{display:block}
.usr-dropdown a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--c-text);font-size:13px;font-weight:400}
.usr-dropdown a:hover{background:var(--c-hover)}
.usr-dropdown a.danger{color:var(--c-red)}
.usr-dropdown a.danger:hover{background:var(--c-red-bg)}
.usr-dropdown hr{border:none;border-top:1px solid var(--c-border-soft);margin:5px 2px}

/* ── ENCABEZADO DE PÁGINA / HERO ── */
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.hero-greet{font-size:30px;font-weight:300;letter-spacing:.005em;line-height:1.1;color:var(--c-text)}
.hero-sub{font-size:13px;color:var(--c-muted);margin-top:7px}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.grad-text em{font-weight:700;font-style:italic}
.label-caps{font-size:10.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--c-label)}

/* ── CARDS ── */
.card{background:var(--c-card);border:1px solid var(--c-border-soft);border-radius:var(--r)}
.card-body{padding:22px}
.card-header{padding:15px 20px;border-bottom:1px solid var(--c-border-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.card-title{font-size:13.5px;font-weight:500;color:var(--c-text);display:flex;align-items:center;gap:9px;letter-spacing:.005em}
.card-title i{font-size:17px}
.card-mb{margin-bottom:18px}

/* Icono circular (antes hexágono) */
.stat-icon,.kpi-icon,.hx{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}

/* ── STATS ── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:18px}
.stat-card{background:var(--c-card);border:1px solid var(--c-border-soft);border-radius:var(--r);padding:15px 18px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:auto 1fr;grid-template-areas:"i v" "i l";column-gap:14px;align-items:center;transition:border-color .15s,background .15s}
.stat-card:hover{background:var(--c-card-2)}
.stat-link{text-decoration:none;color:inherit;cursor:pointer}
.stat-link:hover{border-color:var(--c-brand-border)}
.stat-icon{grid-area:i;margin:0}
.stat-val{grid-area:v;font-size:28px;font-weight:300;line-height:1.1;font-variant-numeric:tabular-nums;align-self:end;color:var(--c-strong)}
.stat-label{grid-area:l;font-size:12px;color:var(--c-muted);font-weight:400;align-self:start}
.stat-card.is-alert{border-color:var(--c-red-border)}
.stat-card.is-alert .stat-val{color:var(--c-red)}
.stat-trend{position:absolute;top:12px;right:12px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:2px;padding:2px 7px;border-radius:10px}
.stat-trend.up{background:var(--c-green-bg);color:var(--c-green)}
.stat-trend.down{background:var(--c-red-bg);color:var(--c-red)}

/* ── DASHBOARD: composición de "lámina" (panel izquierdo + gráfico con degradado acero) ── */
.hero-slide{display:grid;grid-template-columns:minmax(330px,5fr) 7fr;border-radius:16px;overflow:hidden;border:1px solid var(--hs-border);margin-bottom:18px;background:var(--hs-bg)}
.hs-left{position:relative;padding:28px 34px 26px;display:flex;flex-direction:column;
  background:var(--hs-left-bg)}
.hs-title{font-size:40px;font-weight:300;line-height:1.08;margin-top:34px;letter-spacing:-.005em}
.hs-sub{font-size:13px;color:var(--c-muted);margin-top:10px}
.hs-rule{height:1px;background:var(--hs-rule);margin:22px 0 4px}
.hs-row{display:block;text-decoration:none;color:inherit;padding:13px 0 12px;position:relative}
.hs-row+.hs-row::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--hs-sep)}
.hs-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--c-label);font-weight:500;display:flex;align-items:center;gap:8px}
.hs-label i{font-size:14px;color:var(--c-brand)}
.hs-val{font-size:30px;font-weight:300;color:var(--c-strong);line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hs-val.sm{font-size:25px}
.hs-arrow{margin-left:auto;font-size:14px;color:var(--c-arrow);transition:color .15s,transform .15s}
a.hs-row:hover .hs-arrow{color:var(--c-brand);transform:translateX(2px)}
a.hs-row:hover .hs-val{color:var(--c-strongest)}
.hs-right{position:relative;padding:28px 34px 22px;display:flex;flex-direction:column;
  background:var(--hs-right-bg)}
.hs-right-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.hs-right-head a{color:var(--hs-link);text-decoration:none;font-size:12px}
.hs-right-head a:hover{color:var(--c-strongest);text-decoration:underline}
.hs-chart{position:relative;flex:1;min-height:290px;margin-top:22px}
.hs-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--c-muted);font-size:13px;text-align:center}

/* ── PANEL DE CONTROL (tesorería) ── */
.panel-ctl{position:relative;overflow:hidden;margin-bottom:18px;border-radius:16px;border:1px solid var(--hs-border);
  background:var(--panel-bg)}
.panel-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}
.panel-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.ro{display:block;text-decoration:none;color:inherit;padding:24px 26px 20px;min-width:0;position:relative}
.ro+.ro::before{content:'';position:absolute;left:0;top:22px;bottom:18px;width:1px;background:var(--hs-sep-v)}
a.ro:hover{background:var(--c-hover)}
.ro-label{display:flex;align-items:center;gap:10px;font-size:10.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--c-label)}
.ro-label .hx{width:28px;height:28px;font-size:14px}
.ro-arrow{margin-left:auto;font-size:14px;color:var(--c-arrow);transition:color .15s,transform .15s}
a.ro:hover .ro-arrow{color:var(--c-brand);transform:translateX(2px)}
.ro-val{font-weight:300;font-size:40px;line-height:1;margin-top:14px;color:var(--c-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.ro-val.sm{font-size:32px;margin-top:17px}
.ro-note{font-size:12px;color:var(--c-muted);margin-top:6px}
.hx-ok{background:var(--c-green-bg);color:var(--c-green)}
.hx-brass{background:var(--c-yellow-bg);color:var(--c-yellow)}
.hx-ox{background:var(--c-ox-bg);color:var(--c-ox)}
.hx-zinc{background:var(--c-brand-bg);color:var(--c-brand)}

/* Escala de cartera / flujo: una línea fina de dos tonos */
.gauge{position:relative;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:18px;padding:15px 26px 18px;border-top:1px solid var(--c-border-soft);font-size:12.5px;color:var(--c-label)}
.gauge-lbl{display:flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;color:inherit}
.gauge-lbl b{color:var(--c-strong);font-weight:500}
a.gauge-lbl:hover b{color:var(--c-strongest);text-decoration:underline}
.gauge-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.gauge-dot.brass{background:var(--ch-1)}.gauge-dot.ox{background:var(--ch-3)}.gauge-dot.ok{background:var(--ch-4)}
.gauge-track{position:relative;height:6px;border-radius:4px;background:var(--c-inset);box-shadow:inset 0 0 0 1px var(--c-border-soft);display:flex;overflow:hidden;min-width:120px}
.gauge-a{width:var(--w,50%);background:var(--ch-1);animation:gauge-in .9s cubic-bezier(.2,.7,.2,1) both}
.gauge-a.ok{background:var(--ch-4)}
.gauge-b{flex:1;background:var(--ch-3)}
.gauge-track.vacio .gauge-a,.gauge-track.vacio .gauge-b{display:none}
.gauge-net{padding-left:18px;border-left:1px solid var(--c-border);white-space:nowrap}
.gauge-net b{font-size:18px;font-weight:500;color:var(--c-strong);margin-left:6px;font-variant-numeric:tabular-nums}
.gauge-net b.neg{color:var(--c-ox)}
@keyframes gauge-in{from{width:0}}
@media (prefers-reduced-motion:reduce){.gauge-a{animation:none}}

/* ── KPI (versión anterior, se conserva por compatibilidad) ── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.kpi-card{background:var(--c-card);border:1px solid var(--c-border-soft);border-radius:var(--r);padding:18px 20px;position:relative;overflow:hidden}
.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.kpi-val{font-size:28px;font-weight:300;line-height:1.1}
.kpi-label{font-size:12px;color:var(--c-muted);margin-top:4px}
.kpi-link{display:block;text-decoration:none;color:inherit;cursor:pointer}
.kpi-link:hover{border-color:var(--c-brand-border)}
.kpi-link-arrow{font-size:16px;color:var(--c-border);transition:color .18s,transform .18s}
.kpi-link:hover .kpi-link-arrow{color:var(--c-brand);transform:translateX(2px)}

/* ── ALERTAS ── */
.alert-strip{position:relative;border-radius:10px;padding:11px 16px 11px 20px;margin-bottom:12px;display:flex;align-items:center;gap:11px;font-size:13px;overflow:hidden}
.alert-strip::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.alert-strip i{font-size:19px;flex-shrink:0}
.alert-strip.warn{background:var(--c-yellow-bg);border:1px solid var(--c-yellow-border);color:var(--c-warn-text)}
.alert-strip.warn::before{background:var(--c-yellow)}
.alert-strip.danger{background:var(--c-red-bg);border:1px solid var(--c-red-border);color:var(--c-danger-text)}
.alert-strip.danger::before{background:var(--c-red)}
.alert-strip a{margin-left:auto;font-weight:500;text-decoration:none;color:inherit;white-space:nowrap;display:flex;align-items:center;gap:3px}
.alert-strip a:hover{text-decoration:underline}

/* ── CHART CARDS ── */
.chart-card{background:var(--c-card);border:1px solid var(--c-border-soft);border-radius:var(--r)}
.chart-body{padding:18px 20px 8px}
.chart-canvas-wrap{position:relative;width:100%}
.legend-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:2px 20px 16px;font-size:12px;color:var(--c-muted)}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}

/* ── BOTONES ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-sm);border:1px solid var(--c-btn-border);background:transparent;color:var(--c-text);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;font-family:inherit;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;line-height:1}
.btn:hover{background:var(--c-hover);border-color:var(--c-btn-border-h)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--c-brand);color:var(--c-on-brand);border-color:var(--c-brand);font-weight:700}
.btn-primary:hover{background:var(--c-brand-hover);border-color:var(--c-brand-hover)}
.btn-danger{border-color:var(--c-red-border);color:var(--c-red)}.btn-danger:hover{background:var(--c-red-bg);border-color:var(--c-red)}
.btn-success{background:var(--c-green);color:var(--c-on-brand);border-color:var(--c-green);font-weight:700}.btn-success:hover{background:var(--c-green-hover);border-color:var(--c-green-hover)}
.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--c-hover);border-color:transparent}
.btn-sm{padding:5px 12px;font-size:12px;border-radius:7px}
.btn-xs{padding:3px 9px;font-size:11px;border-radius:6px}
.btn-icon{padding:7px;width:34px;height:34px;justify-content:center}

/* ── TABLAS ── */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th{font-size:10.5px;font-weight:500;color:var(--c-label);text-align:left;padding:11px 16px;border-bottom:1px solid var(--c-line);text-transform:uppercase;letter-spacing:.11em;white-space:nowrap;background:transparent}
.tbl td{padding:12px 16px;border-bottom:1px solid var(--c-border-soft);font-size:13px;vertical-align:middle}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover td{background:var(--c-row-hover)}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl-clickable tbody tr{cursor:pointer}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:11.5px;font-weight:500;white-space:nowrap}
.badge::before{content:'';width:6px;height:6px;border-radius:50%}
.badge-borrador{background:var(--c-neutral-bg);color:var(--c-muted)}.badge-borrador::before{background:var(--c-light)}
.badge-pendiente{background:var(--c-yellow-bg);color:var(--c-yellow)}.badge-pendiente::before{background:var(--c-yellow)}
.badge-aprobada,.badge-pagada{background:var(--c-green-bg);color:var(--c-green)}.badge-aprobada::before,.badge-pagada::before{background:var(--c-green)}
.badge-rechazada,.badge-anulada{background:var(--c-red-bg);color:var(--c-red)}.badge-rechazada::before,.badge-anulada::before{background:var(--c-red)}
.badge-enviada{background:var(--c-blue-bg);color:var(--c-blue)}.badge-enviada::before{background:var(--c-blue)}
.badge-vencida{background:var(--c-purple-bg);color:var(--c-purple)}.badge-vencida::before{background:var(--c-purple)}
.badge-recibida{background:var(--c-green-bg);color:var(--c-green)}.badge-recibida::before{background:var(--c-green)}
.badge-emitida{background:var(--c-blue-bg);color:var(--c-blue)}.badge-emitida::before{background:var(--c-blue)}

/* ── BADGES ESTADO REMISIÓN (regla de color propia, no comparte con otros documentos) ── */
.badge-rem-emitida{background:var(--c-red-bg);color:var(--c-red)}.badge-rem-emitida::before{background:var(--c-red)}
.badge-rem-entregada{background:var(--c-orange-bg);color:var(--c-orange)}.badge-rem-entregada::before{background:var(--c-orange)}
.badge-rem-facturada{background:var(--c-green-bg);color:var(--c-green)}.badge-rem-facturada::before{background:var(--c-green)}
.badge-rem-anulada{background:transparent;color:var(--c-muted);border:1px solid var(--c-border)}.badge-rem-anulada::before{background:transparent;border:1px solid var(--c-muted)}
.badge-rem-dividida{background:var(--c-purple-bg);color:var(--c-purple)}.badge-rem-dividida::before{background:var(--c-purple)}

/* ── FORMULARIOS ── */
.fg{margin-bottom:15px}
.fg label{display:block;font-size:10.5px;font-weight:500;color:var(--c-label);margin-bottom:7px;text-transform:uppercase;letter-spacing:.12em}
.fc{width:100%;padding:9px 12px;border:1px solid var(--c-input-border);border-radius:var(--r-sm);font-size:13.5px;font-family:inherit;color:var(--c-text);background:var(--c-inset);transition:border-color .15s,box-shadow .15s}
.fc::placeholder{color:var(--c-placeholder)}
.fc:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.16)}
.fc:disabled{background:var(--c-disabled-bg);color:var(--c-muted)}
.fc[data-fp]{cursor:pointer;padding-right:36px;background-repeat:no-repeat;background-position:right 12px center;background-size:16px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%238b989d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>")}
select.fc{cursor:pointer}
textarea.fc{resize:vertical;min-height:70px}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fg3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.fg4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:14px}
.field-hint{font-size:11.5px;color:var(--c-light);margin-top:4px}
.autosave-status{font-size:11px;color:var(--c-light);display:flex;align-items:center;gap:5px}
.autosave-status.saving{color:var(--c-yellow)}
.autosave-status.saved{color:var(--c-green)}
.autosave-status i{font-size:13px}

/* ── ITEMS TABLE (doc form) ── */
.items-tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.items-tbl th{font-size:10.5px;font-weight:500;color:var(--c-label);padding:10px 8px;border-bottom:1px solid var(--c-line);text-transform:uppercase;letter-spacing:.11em;text-align:left;background:transparent}
.items-tbl td{padding:4px 4px;border-bottom:1px solid var(--c-border-soft);vertical-align:middle}
.items-tbl tbody tr:hover td{background:var(--c-row-hover)}
.items-tbl input,.items-tbl select{width:100%;padding:7px 8px;border:1px solid transparent;border-radius:6px;font-size:13px;font-family:inherit;color:var(--c-text);background:transparent}
.items-tbl input:focus,.items-tbl select:focus{outline:none;border-color:var(--c-brand);background:var(--c-inset);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.14)}
.items-tbl .r input,.items-tbl .r{text-align:right}
.items-tbl .c input,.items-tbl .c{text-align:center}
.tot-cell{font-size:13px;font-weight:500;color:var(--c-text);text-align:right;padding:0 8px}
.del-row{background:none;border:none;cursor:pointer;color:var(--c-light);font-size:16px;padding:4px 6px;border-radius:6px;font-family:inherit;line-height:1}
.del-row:hover{color:var(--c-red);background:var(--c-red-bg)}
.add-row-btn{width:100%;padding:9px;border:1px dashed var(--c-btn-border);border-radius:var(--r-sm);background:transparent;color:var(--c-muted);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;margin-top:6px;transition:background .15s,color .15s,border-color .15s}
.add-row-btn:hover{border-color:var(--c-brand);color:var(--c-brand);background:var(--c-brand-light)}

/* ── PRODUCTO VINCULADO / SIN VINCULAR (celda de descripción, doc form) ── */
.prod-cell{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;min-height:20px}
.prod-cell-name{font-size:13px;color:var(--c-text);display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prod-cell-change{background:none;border:none;cursor:pointer;color:var(--c-light);font-size:14px;padding:3px 5px;border-radius:6px;flex-shrink:0}
.prod-cell-change:hover{color:var(--c-brand);background:var(--c-brand-light)}
.row-sin-vincular td{background:var(--c-yellow-bg)}
.prod-cell-unlinked{flex-wrap:wrap}
.prod-cell-warn{font-size:12.5px;color:var(--c-warn-text);display:flex;align-items:center;gap:6px}
.prod-cell-warn i{color:var(--c-yellow)}

/* ── TOTALS BOX ── */
.totals-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-top:10px;padding:10px 0}
.tot-r{display:flex;align-items:center;gap:24px;padding:5px 0;font-size:13px;font-variant-numeric:tabular-nums}
.tot-r .lbl{color:var(--c-muted);width:120px;text-align:right}
.tot-r .val{width:100px;text-align:right;font-weight:500}
.tot-r.grand{border-top:1px solid var(--c-line-strong);margin-top:4px;padding-top:9px;font-size:18px;font-weight:500}
.tot-r.grand .lbl{color:var(--c-text)}

/* ── SEARCH / FILTER BAR ── */
.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.filter-bar input{padding:9px 13px;border:1px solid var(--c-input-border);border-radius:var(--r-sm);font-size:13px;font-family:inherit;color:var(--c-text);background:var(--c-inset);min-width:220px}
.filter-bar input:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px rgba(var(--brand-rgb),.16)}
.filter-bar select{padding:9px 11px;border:1px solid var(--c-input-border);border-radius:var(--r-sm);font-size:13px;font-family:inherit;color:var(--c-text);background:var(--c-inset);cursor:pointer}
.filter-bar select:focus{outline:none;border-color:var(--c-brand)}

/* Smart search dropdown */
.search-wrap{position:relative}
.search-results{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--c-card-2);border:1px solid var(--c-border);border-radius:var(--r);box-shadow:var(--shadow-lg);z-index:300;max-height:280px;overflow-y:auto}
.search-results.open{display:block}
/* Desplegable de búsqueda de producto anclado a una fila de ítems: se
   posiciona con JS (position:fixed) para no quedar recortado por el
   contenedor con scroll horizontal de la tabla de ítems. */
.search-results-fixed{position:fixed}
.row-prod-input{width:100%;border:none;background:transparent;font-size:13px;color:var(--c-text);outline:none;padding:0;font-family:inherit}
.row-prod-input::placeholder{color:var(--c-yellow);opacity:.85}
.search-item{padding:10px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--c-border-soft);display:flex;justify-content:space-between;gap:10px}
.search-item:last-child{border-bottom:none}
.search-item:hover,.search-item.hl{background:var(--c-brand-light)}
.search-item .si-name{font-weight:500;color:var(--c-text)}
.search-item .si-meta{color:var(--c-muted);font-size:11px}
.search-empty{padding:14px;text-align:center;color:var(--c-muted);font-size:12px}
.search-empty a{color:var(--c-brand);font-weight:500;text-decoration:none}

/* Global search bar (topbar) */
.gs-wrap{display:flex;align-items:center}
.gs-icon{position:absolute;left:12px;color:var(--c-muted);font-size:15px;pointer-events:none;z-index:1}
.gs-input{padding-left:34px;padding-right:34px;font-size:13px;border-radius:30px}
.gs-key{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-family:var(--ff);font-size:11px;font-weight:500;color:var(--c-muted);border:1px solid var(--c-btn-border);border-radius:5px;padding:0 6px;line-height:16px;pointer-events:none}
.gs-input:focus ~ .gs-key{display:none}
.gs-group-title{padding:8px 12px 4px;font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);background:var(--c-tint)}

/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;background:var(--c-overlay);z-index:500;align-items:center;justify-content:center;padding:16px}
.modal-overlay.open{display:flex}
.modal{background:var(--c-card-2);border:1px solid var(--c-border);border-radius:16px;padding:26px;min-width:340px;max-width:500px;width:90%;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}
.modal-title{font-size:17px;font-weight:300;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}
.modal-close{background:none;border:none;cursor:pointer;color:var(--c-muted);font-size:20px;padding:0;font-family:inherit;line-height:1}
.modal-close:hover{color:var(--c-text)}

/* ── TOAST ── */
.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:900;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--toast-bg);color:var(--toast-fg);padding:11px 18px;border-radius:10px;border:1px solid var(--c-border);font-size:13px;font-weight:500;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:9px;opacity:0;transform:translateY(8px);transition:all .2s}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success i{color:var(--c-green)}
.toast.error i{color:var(--c-red)}

/* ── MISC ── */
.empty{text-align:center;padding:52px 20px;color:var(--c-muted)}
.empty i{font-size:42px;display:block;margin-bottom:12px;opacity:.3}
.divider{border:none;border-top:1px solid var(--c-border-soft);margin:16px 0}
.text-muted{color:var(--c-muted)}
.text-sm{font-size:12px}
.text-xs{font-size:11px}
.fw-600{font-weight:500}
.fw-700{font-weight:700}
.gap-8{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.gap-6{display:flex;gap:6px;align-items:center}
.ml-auto{margin-left:auto}
.mt-4{margin-top:4px}
.mt-8{margin-top:8px}
.mt-16{margin-top:16px}
.mb-16{margin-bottom:16px}
.w-full{width:100%}
.text-right{text-align:right}
.text-center{text-align:center}
.color-green{color:var(--c-green)}
.color-red{color:var(--c-red)}
.color-brand{color:var(--c-brand)}
.link-plain{color:inherit;text-decoration:none;cursor:pointer}
.link-plain:hover{color:var(--c-brand);text-decoration:underline}
@media print{.link-plain{color:inherit!important;text-decoration:none!important}}
.color-muted{color:var(--c-muted)}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;background:var(--c-brand-light);color:var(--c-brand)}
.star-btn{background:none;border:none;cursor:pointer;color:var(--c-light);font-size:16px;padding:2px;line-height:1}
.star-btn.active,.star-btn:hover{color:var(--c-yellow)}

/* Selector de fecha (flatpickr): sigue el tema */
.flatpickr-calendar{background:var(--c-card-2)!important;border:1px solid var(--c-border);box-shadow:var(--shadow-lg)!important;color:var(--c-text)}
.flatpickr-calendar:before,.flatpickr-calendar:after{display:none}
.flatpickr-months .flatpickr-month,.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year,span.flatpickr-weekday{background:transparent!important;color:var(--c-text)!important;fill:var(--c-text)!important}
.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{fill:var(--c-muted)}
.flatpickr-day{color:var(--c-text);border-color:transparent}
.flatpickr-day:hover{background:var(--c-hover)!important;border-color:transparent}
.flatpickr-day.today{border-color:var(--c-brand)}
.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--c-brand)!important;border-color:var(--c-brand)!important;color:var(--c-on-brand)!important}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.flatpickr-disabled{color:var(--c-light)}

/* ── DOCUMENTOS IMPRIMIBLES ─────────────────────────────────
   Cotizaciones, facturas, remisiones, recibos y estados de cuenta
   son papel: fondo blanco para imprimir, pero con el mismo lenguaje
   visual de la interfaz (acero-verdoso, tipografía ligera, líneas
   finas y etiquetas pequeñas). */
.doc-wrap,.recibo-wrap,.ec-wrap{
  color-scheme:light;
  --c-brand:#5d7a84;--c-brand-dark:#2c3b41;--c-brand-light:#eef3f5;--c-brand-soft:#dbe6ea;
  --c-card:#ffffff;--c-card-2:#ffffff;--c-border:#e7e9f0;--c-border-soft:#eef0f5;--c-bg:#f6f7fb;--c-inset:#f6f7fb;
  --c-text:#12141c;--c-muted:#6b7280;--c-light:#9ca3af;
  --c-green:#16a34a;--c-green-bg:#dcfce7;--c-red:#dc2626;--c-red-bg:#fef2f2;
  --c-yellow:#d97706;--c-yellow-bg:#fffbeb;--c-blue:#2563eb;--c-blue-bg:#eff6ff;
  --c-orange:#ea580c;--c-orange-bg:#fff7ed;--c-purple:#7c3aed;--c-purple-bg:#f5f3ff;
  --r:12px;--r-sm:8px;--r-lg:18px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --shadow-md:0 4px 10px -2px rgba(16,24,40,.07),0 2px 6px -2px rgba(16,24,40,.05);
  --c-strong:#12141c;--c-strongest:#000;--c-label:#6b7280;--c-line:#e7e9f0;--c-line-strong:#d3dcdf;--c-arrow:#9ca3af;
  --c-hover:rgba(0,0,0,.04);--c-tint:rgba(0,0,0,.025);--c-row-hover:rgba(93,122,132,.06);--c-neutral-bg:#f3f4f6;
  --c-input-border:#d1d5db;--c-btn-border:#d1d5db;--c-btn-border-h:#9ca3af;--c-placeholder:#9ca3af;--c-on-brand:#fff;
  --c-yellow-border:#fde68a;--c-red-border:#fecaca;--c-blue-border:#bfdbfe;--c-green-border:#bbf7d0;
  --c-warn-text:#92400e;--c-danger-text:#991b1b;--c-info-text:#1e3a8a;
  --ff:var(--ff-doc);font-family:var(--ff-doc);color:#12141c;font-weight:400}
.doc-wrap .badge,.recibo-wrap .badge,.ec-wrap .badge{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700;gap:5px}
.doc-wrap .badge-borrador,.recibo-wrap .badge-borrador,.ec-wrap .badge-borrador{background:#f3f4f6;color:#6b7280}
.doc-wrap .badge-borrador::before,.recibo-wrap .badge-borrador::before,.ec-wrap .badge-borrador::before{background:#9ca3af}
.doc-wrap .fw-600,.recibo-wrap .fw-600,.ec-wrap .fw-600{font-weight:600}

/* ── Formatos de impresión: capa de estilo "Acero oscuro" ── */
.doc-wrap{border-color:#cfd8db}
.doc-wrap .doc-header{border-bottom:0;position:relative}
.doc-wrap .doc-header::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#26333a 0%,#5d7a84 50%,rgba(93,122,132,0) 100%)}
.doc-wrap .doc-brand{font-size:21px;font-weight:500;letter-spacing:-.005em;color:#12181a}
.doc-wrap .doc-type{font-weight:500;letter-spacing:.18em;color:#5d7a84}
.doc-wrap .doc-num{font-weight:500;letter-spacing:0;color:#12181a}
.doc-wrap .info-box-hd,.ec-wrap .info-box-hd,.doc-wrap .doc-table thead tr,.doc-wrap .t-row:last-child,
.recibo-wrap .recibo-header,.recibo-wrap .monto-box,.ec-wrap .ec-header{background:linear-gradient(90deg,#26333a 0%,#3b4f57 100%)}
.ec-wrap .ec-table th{background:#33444b}
.doc-wrap .info-box-hd,.ec-wrap .info-box-hd{font-weight:500;letter-spacing:.16em}
.doc-wrap .doc-table thead th,.ec-wrap .ec-table th{font-weight:500;letter-spacing:.12em}
.doc-wrap .doc-table tbody tr:nth-child(even){background:#f3f6f7}
.ec-wrap .ec-table tr:nth-child(even) td{background:#f3f6f7}
.doc-wrap .info-box,.doc-wrap .doc-table,.doc-wrap .totals-inner,.doc-wrap .notes-box,.ec-wrap .info-box,.ec-wrap .ec-table{border-color:#d3dcdf}
.doc-wrap .doc-table td,.doc-wrap .t-row,.ec-wrap .ec-table td,.recibo-wrap .info-row{font-variant-numeric:tabular-nums}
.doc-wrap .t-row:last-child{font-weight:500}
.recibo-wrap .recibo-title{font-weight:500;letter-spacing:.005em;font-size:18px}
.recibo-wrap .recibo-num,.recibo-wrap .monto-val{color:#b9d4db;font-weight:500}
.recibo-wrap .monto-label{color:#c5d3d8;font-weight:500;letter-spacing:.14em}
.recibo-wrap .watermark{color:rgba(44,59,65,.06)}
.recibo-wrap .recibo-empresa{border-bottom-color:#cfd8db}

/* ── RESPONSIVE ── */
@media (max-width: 1200px){
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .panel-grid{grid-template-columns:repeat(2,1fr)}
  .panel-grid .ro:nth-child(3)::before{display:none}
  .panel-grid.cols-3{grid-template-columns:repeat(3,1fr)}
  .panel-grid.cols-3 .ro:nth-child(3)::before{display:block}
  .hero-slide{grid-template-columns:1fr}
  .hs-right{min-height:380px}
}
@media (max-width: 1024px){
  .fg4{grid-template-columns:1fr 1fr}
  .gauge{grid-template-columns:1fr 1fr;row-gap:12px}
  .gauge-track{grid-column:1 / -1;order:-1}
  .gauge-net{grid-column:1 / -1;padding-left:0;border-left:none;border-top:1px solid var(--c-border);padding-top:12px}
}
@media (max-width: 900px){
  .sb{transform:translateX(-100%)}
  .sb.open{transform:translateX(0)}
  .sb-close{display:block}
  .main{margin-left:0}
  .sb-toggle{display:inline-flex;align-items:center}
  .topbar{padding:8px 14px}
  .page{padding:16px}
  .topbar-breadcrumb{display:none}
  .gs-wrap{max-width:none!important;margin:0!important}
  .topbar-title{display:none}
  .fg2,.fg3,.fg4{grid-template-columns:1fr}
  .fg2 [style*="grid-column:span 2"],.fg3 [style*="grid-column:span 2"]{grid-column:span 1!important}
  div[style*="grid-template-columns:1fr 300px"]{grid-template-columns:1fr!important}
  .filter-bar input{min-width:0;flex:1}
  .usr-btn-name{display:none}
  .hero-greet{font-size:26px}
  .hs-title{font-size:32px;margin-top:22px}
  .gs-key{display:none}
}
@media (max-width: 560px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .panel-grid,.panel-grid.cols-3{grid-template-columns:1fr}
  .panel-grid .ro+.ro::before{display:block;left:26px;right:26px;top:0;bottom:auto;width:auto;height:1px;background:var(--hs-sep)}
  .ro-val{font-size:34px}
  .hs-left,.hs-right{padding:22px 20px}
  .card-body{padding:16px}
  .doc-wrap{padding:18px!important}
  .info-boxes{grid-template-columns:1fr!important}
  .notif-dropdown{width:92vw;right:-40px}
}

@media print{
  .sb,.topbar,.no-print,.sb-overlay,.toast-wrap{display:none!important}
  .main{margin-left:0!important}
  .page{padding:0!important}
  /* Al imprimir todo es papel blanco: se anula el modo oscuro (color-scheme) que pintaba los márgenes de negro */
  :root{color-scheme:light}
  html,body{background:#fff!important;background-image:none!important;color:#000}
  .main,.page{background:transparent!important}
  .card{box-shadow:none!important}
  tr,td,th{page-break-inside:avoid}
  thead{display:table-header-group}
}

/* ── V3.39 Facturación electrónica SRI (clases aisladas) ── */
.badge-sri-autorizada{background:var(--c-green-bg);color:var(--c-green)}.badge-sri-autorizada::before{background:var(--c-green)}
.badge-sri-recibida,.badge-sri-pendiente_envio{background:var(--c-blue-bg);color:var(--c-blue)}.badge-sri-recibida::before,.badge-sri-pendiente_envio::before{background:var(--c-blue)}
.badge-sri-borrador{background:var(--c-yellow-bg);color:var(--c-yellow)}.badge-sri-borrador::before{background:var(--c-yellow)}
.badge-sri-devuelta,.badge-sri-no_autorizada{background:var(--c-red-bg);color:var(--c-red)}.badge-sri-devuelta::before,.badge-sri-no_autorizada::before{background:var(--c-red)}
.badge-sri-externa{background:var(--c-neutral-bg);color:var(--c-muted)}.badge-sri-externa::before{background:var(--c-light)}
.badge-sri-pruebas{background:var(--c-brand-bg);color:var(--c-brand);font-size:10.5px;letter-spacing:.6px;text-transform:uppercase}.badge-sri-pruebas::before{display:none}
.sri-panel{border:1px solid var(--c-border);border-radius:12px;background:var(--c-card);padding:14px 16px;margin-bottom:16px}
.sri-panel-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.sri-panel-hd .ttl{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--c-muted)}
.sri-panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;font-size:12.5px;margin-bottom:10px}
.sri-panel-grid .k{color:var(--c-muted);font-size:11px;display:block}
.sri-panel-grid .v{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
.sri-msg{border-radius:8px;padding:9px 12px;font-size:12.5px;margin-bottom:10px;line-height:1.5}
.sri-msg.err{background:var(--c-red-bg);color:var(--c-danger-text);border:1px solid var(--c-red-border)}
.sri-msg.info{background:var(--c-blue-bg);color:var(--c-info-text);border:1px solid var(--c-blue-border)}
.sri-acciones{display:flex;gap:8px;flex-wrap:wrap}
.sri-acciones form{display:inline}
/* V3.39 formulario de factura con casillas SRI */
.tot-ec .tot-r{padding:3px 0}
.tot-ec .tot-r .lbl{width:200px}

.items-tbl select.iva-sel{min-width:76px;padding:6px 22px 6px 8px;color:var(--c-text);background-color:var(--c-card);border:1px solid var(--c-border);border-radius:6px;font-size:12px;cursor:pointer}
.items-tbl select.iva-sel option{color:#111;background:#fff}

/* V3.39 ventana "Nuevo producto" completa desde cotización/remisión/factura */
.modal.modal-producto-full{max-width:860px;width:94%;max-height:94vh}
.mp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 14px}
.mp-grid .mp-span{grid-column:1 / -1}
@media (max-width:760px){.mp-grid{grid-template-columns:1fr 1fr}}

/* ── Fase 10 · Selector de tema ── */
.tema-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:transparent;border:1px solid transparent;color:var(--c-muted);font-size:19px;cursor:pointer;transition:background .15s,color .15s}
.tema-btn:hover{background:var(--c-hover);color:var(--c-text)}
.tema-btn .ti-sun{display:none}
html[data-theme="claro"] .tema-btn .ti-sun{display:inline}
html[data-theme="claro"] .tema-btn .ti-moon{display:none}
.tema-seg{display:flex;gap:4px;padding:4px 6px 6px}
.tema-seg button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1px solid var(--c-border);border-radius:8px;background:transparent;color:var(--c-muted);font-family:inherit;font-size:11px;cursor:pointer}
.tema-seg button i{font-size:16px}
.tema-seg button:hover{background:var(--c-hover);color:var(--c-text)}
.tema-seg button.on{border-color:var(--c-brand);color:var(--c-brand);background:var(--c-brand-light);font-weight:500}
.tema-cap{font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-label);padding:4px 10px 0}
/* Ajustes puntuales del tema claro */
html[data-theme="claro"] .sb-brand img{background:#fff;box-shadow:0 0 0 1px var(--c-border-soft)}
html[data-theme="claro"] .card,html[data-theme="claro"] .stat-card,html[data-theme="claro"] .chart-card,html[data-theme="claro"] .kpi-card{box-shadow:var(--shadow)}
html[data-theme="claro"] .fc[data-fp]{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%234b5a5f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>")}
