/* Executive Hub v20 · Estilos compartidos */
:root{
  --ink:#162033;--muted:#617087;--muted2:#7d8a9d;--navy:#203d63;--navy2:#2f527d;--blue:#5f82ae;--blue2:#86a0c0;
  --ice:#eef3f8;--line:#dfe5ed;--panel:#fff;--bg:#f5f7fa;--soft:#fafbfd;--green:#618f7d;--amber:#b29a74;--red:#9d606a;
  --shadow:0 12px 34px rgba(25,42,70,.055);--radius:16px;--radius-sm:9px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.right{text-align:right}.hint{font-weight:400;color:#8692a3}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:#647896}.brand-mark{width:20px;height:20px;border-radius:6px;background:linear-gradient(145deg,#203d63,#7996bb);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);display:inline-block;flex:0 0 auto}.brand-inline{display:flex;align-items:center;gap:9px;font-weight:760;letter-spacing:-.02em;font-size:14px}.brand-lockup{display:flex;align-items:center;gap:11px}.brand-lockup div{display:flex;flex-direction:column}.brand-lockup strong{font-size:16px}.brand-lockup small{font-size:12px;color:var(--muted);margin-top:2px}.flash{padding:11px 13px;border-radius:9px;font-size:13px;margin:0 0 16px}.flash-error{background:#fff2f3;color:#8b3540;border:1px solid #f2d6da}.flash-success{background:#eef8f3;color:#356b55;border:1px solid #d7ebdf}.notice,.context-note{border:1px solid var(--line);background:#f9fbfd;padding:14px 16px;border-radius:11px;color:var(--muted);font-size:13px;line-height:1.55}.tiny-error{max-width:270px;font-size:11px;color:#9d4450;margin-top:5px}.empty{text-align:center;color:#8795a8;padding:28px!important}

/* Forms */
.stack-form input:focus,.stack-form select:focus,.director-form input:focus,.director-form select:focus,.sales-filter input:focus{border-color:#7891b2;box-shadow:0 0 0 3px rgba(79,111,159,.08)}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8290a4 50%),linear-gradient(135deg,#8290a4 50%,transparent 50%);background-position:calc(100% - 16px) 15px,calc(100% - 11px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px!important}.btn-primary{border:0;background:var(--navy);color:white;padding:9px 13px;border-radius:8px;font-weight:720;box-shadow:0 5px 15px rgba(31,58,95,.11);transition:.16s}.btn-primary:hover{transform:translateY(-1px);background:#294a73}.btn-primary.slim{padding:8px 12px;font-size:12px}.btn-ghost{padding:8px 10px;border-radius:8px;border:1px solid var(--line);font-size:12px;color:var(--muted);background:#fff}.form-actions{display:flex;gap:9px;align-items:center}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{width:15px!important;height:15px;margin:0!important}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quiet-link{display:inline-block;margin-top:18px;font-size:12px;color:var(--muted)}.inline-delete{display:inline}.logo-cell{width:45px}.logo-cell img{width:34px;height:24px;object-fit:contain}.mini-brand{display:block;width:25px;height:25px;border-radius:7px;background:#e8edf3}

/* Directives login */
.director-login{min-height:100vh;overflow:hidden}.director-shell{min-height:100vh;display:grid;place-items:center;padding:28px;position:relative;background:linear-gradient(135deg,#f7f9fc 0%,#edf2f7 100%)}.director-bg{position:absolute;inset:0;background:radial-gradient(circle at 80% 15%,rgba(83,112,153,.16),transparent 30%),radial-gradient(circle at 15% 80%,rgba(95,140,122,.09),transparent 27%)}.director-card{position:relative;width:min(100%,540px);background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid rgba(218,225,234,.9);border-radius:22px;padding:34px 36px;box-shadow:0 28px 80px rgba(30,52,82,.11)}.director-copy{margin:45px 0 30px}.director-copy h1{font-size:45px;line-height:1.02;letter-spacing:-.045em;margin:8px 0 14px;font-weight:760}.director-copy p{max-width:440px;color:var(--muted);font-size:15px;line-height:1.6}.pin-line{display:flex;align-items:stretch;margin-top:6px}.pin-line input{margin-top:0;border-radius:8px 0 0 8px;border-right:0;letter-spacing:.2em}.arrow-btn{width:43px;border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:0 8px 8px 0;font-size:19px}.director-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:26px;padding-top:17px;color:#7f8ca0;font-size:12px}.director-foot a:hover{color:var(--navy)}

/* Auth */
.auth-page{min-height:100vh;background:#f4f7fb}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(100%,400px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.auth-card h1{font-size:25px;letter-spacing:-.03em;margin:32px 0 6px}.auth-card .muted{font-size:13px;margin:0 0 22px}

/* Admin */
.admin-topbar,.dash-topbar{height:64px;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(18px,4vw,58px);position:sticky;top:0;z-index:20}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{font-size:31px;letter-spacing:-.035em;margin:5px 0 5px}.page-heading p{margin:0;color:var(--muted);font-size:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 7px 24px rgba(25,42,70,.035);overflow:hidden}.compact-panel{padding-bottom:18px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 21px 16px}.panel-head h2{font-size:18px;letter-spacing:-.02em;margin:4px 0 0}.panel-metric{font-size:12px;color:var(--muted);white-space:nowrap}.table-wrap{width:100%;overflow:auto}.table-link{font-size:12px;color:var(--blue);font-weight:700}.status{display:inline-block;font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;padding:4px 7px;border-radius:999px;background:#f0f2f6;color:#6c7788}.status-completed{background:#eaf5ef;color:#3f6f5b}.status-processing{background:#edf3fb;color:#466b9f}.status-failed{background:#faecee;color:#93505a}.schema-note{font-size:12px;line-height:1.5;color:#6f7d91;background:#f8fafc;border:1px dashed #d9e0e8;border-radius:8px;padding:10px 11px}

/* Dashboard */
.company-chip{margin-left:auto;margin-right:20px;text-align:right;display:flex;flex-direction:column}.company-chip span{font-size:13px;font-weight:750}.company-chip small{font-size:11px;color:var(--muted);margin-top:2px}.switch-company{font-size:12px;color:var(--muted);padding-left:18px;border-left:1px solid var(--line)}.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px}.company-hero{display:flex;align-items:center;gap:16px}.company-logo{width:72px;height:54px;background:#fff;border:1px solid var(--line);border-radius:11px;display:grid;place-items:center;padding:6px}.company-logo img{width:100%;height:100%;object-fit:contain}.hero-row h1{font-size:37px;letter-spacing:-.045em;margin:6px 0 4px}.hero-row p{margin:0;color:#53647b;font-size:14px}.export-menu{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.export-menu>span{font-size:11px;font-weight:800;letter-spacing:.07em;color:#6d7c91;margin-right:4px}.export-menu a{font-size:12px;color:#4f6077;background:#fff;border:1px solid #d9e0e9;padding:7px 10px;border-radius:7px;transition:.15s}.export-menu a:hover{color:var(--navy);border-color:#bdc9d8;box-shadow:0 4px 12px rgba(31,58,95,.05)}.empty-chart{height:230px;display:grid;place-items:center;color:#7f8da1;font-size:13px}.donut{width:138px;height:138px;border-radius:50%;position:relative;background:#e9eef4}.donut:after{content:"";position:absolute;inset:24px;background:#fff;border-radius:50%}.donut-center{position:absolute;inset:0;z-index:2;display:grid;place-items:center;text-align:center;pointer-events:none}.donut-center strong{font-size:18px}.donut-center small{display:block;color:#6f7e92;font-size:10px;margin-top:3px}.context-note{margin-top:15px}

/* Sales filter */
.filter-panel{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:14px}.filter-panel>div{display:flex;flex-direction:column;gap:3px}.filter-panel>div strong{font-size:14px}.filter-panel>div small{color:var(--muted);font-size:11px}.filter-action{border:1px solid var(--navy);background:var(--navy);color:#fff;padding:7px 10px;border-radius:7px;font-size:12px;font-weight:700}.filter-clear{padding:7px 7px;font-size:12px;color:#67778c}

/* Client summary */
.client-code{display:block;color:#8794a5;font-size:10px;margin-top:3px}.total-cell{font-weight:760;color:var(--navy)}

/* Trend chart */
.line-chart{padding:0 18px 18px;min-height:260px}.line-chart svg{display:block;width:100%;height:auto;overflow:visible}.grid-line{stroke:#e5eaf0;stroke-width:1}.axis-text{font-size:10px;fill:#6b7a90;font-family:Inter,ui-sans-serif,system-ui,sans-serif}


@media (max-width:780px){.admin-topbar,.dash-topbar{padding:0 16px}
.admin-shell,.dashboard-shell{width:min(100% - 24px,1480px);padding-top:24px}
.page-heading,.hero-row{align-items:flex-start;flex-direction:column}
.company-hero{align-items:flex-start}
.export-menu{justify-content:flex-start}
.director-copy h1{font-size:38px}
.director-card{padding:28px 24px}
.company-chip{display:none}
.switch-company{margin-left:auto;border-left:0}
.split{grid-template-columns:1fr}
.filter-panel{align-items:flex-start;flex-direction:column}}
@media (max-width:500px){.director-shell{padding:14px}
.director-card{border-radius:18px;padding:24px 20px}
.director-copy{margin:36px 0 25px}
.director-copy h1{font-size:34px}
.company-logo{width:58px;height:46px}
.hero-row h1{font-size:32px}}
.selected-company-logo{position:absolute;right:34px;top:31px;width:92px;height:48px;display:grid;place-items:center;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.selected-company-logo[hidden]{display:none}.selected-company-logo img{width:100%;height:100%;object-fit:contain}

/* =========================================================
   SaaS Admin + cartera tipo Excel + interacciones
   ========================================================= */

/* FontAwesome icon alignment */


/* Admin SaaS shell */




.page-heading{align-items:center;margin-bottom:25px}.page-heading h1{font-size:30px}.page-heading .eyebrow{color:#6f829a}.page-heading p{font-size:13px;color:#6c7b8f}.schema-note{background:#f7f9fc;border-color:#d8e0e9;color:#64758b}
.auth-card{border-radius:16px}.auth-card .btn-primary{justify-content:center}.auth-card .brand-mark{box-shadow:none}

/* Dashboard text polish */
.export-menu a{padding:7px 11px}

/* Excel-style executive client summary */
.excel-panel{overflow:visible}.excel-panel>.panel-head{background:#fff;border-radius:16px 16px 0 0}.excel-table-wrap{max-height:640px;overflow:auto;border-top:1px solid #d6dfE9;border-radius:0 0 15px 15px;scrollbar-width:thin;scrollbar-color:#b6c2cf #eef2f6}.excel-grid{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:12.2px;background:#fff}.excel-grid th{position:sticky;top:0;z-index:6;padding:11px 12px;text-align:right;white-space:nowrap;background:#4472c4;color:#fff;font-size:10.5px;letter-spacing:.015em;font-weight:760;border-right:1px solid rgba(255,255,255,.28);border-bottom:1px solid #315c9c}.excel-grid th:first-child{text-align:left;left:0;z-index:8}.excel-grid td{height:39px;padding:8px 11px;border-right:1px solid #d7dee7;border-bottom:1px solid #d7dee7;background:#fff;color:#18283d;vertical-align:middle}.excel-grid tbody tr:hover td{background-color:#f5f8fc}.excel-grid td:first-child{position:sticky;left:0;z-index:3;min-width:280px;max-width:360px}.excel-grid tbody tr:hover td:first-child{background:#f5f8fc}.excel-grid .client-name strong{font-size:12.5px;font-weight:720}.excel-grid .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.excel-grid .money-cell{font-size:12px}.excel-grid .total-cell{font-weight:780;color:#12345a}.excel-grid .pct-cell{font-weight:650}.excel-grid .negative-amount{color:#d22730}.excel-grid .data-bar{position:relative;isolation:isolate}.excel-grid .data-bar:before{content:"";position:absolute;z-index:-1;left:2px;top:4px;bottom:4px;width:var(--bar-width,0%);max-width:calc(100% - 4px);border-radius:2px;opacity:.9}.excel-grid .red-bar:before{background:linear-gradient(90deg,#e43137 0%,#f49a9d 100%)}.excel-grid .red-bar:not(.negative-amount){color:#172235}.excel-grid .blue-bar:before{background:linear-gradient(90deg,#5b88c9 0%,#b8cde9 100%)}

/* Facturas modal */


@media (max-width:1180px){.excel-grid{min-width:1080px}}
@media (max-width:900px){.excel-table-wrap{max-height:560px}}
@media (max-width:600px){.page-heading{align-items:flex-start}
.page-heading .btn-primary{margin-top:3px}
.excel-grid td:first-child{min-width:0}
.excel-grid{font-size:11px}}

/* Densidad ejecutiva y tabla de cartera */
.company-hero-logo-only{gap:14px;align-items:center}.company-logo-hero{width:142px;height:72px;border-radius:12px;padding:8px;box-shadow:0 4px 14px rgba(31,58,95,.04)}.company-hero-logo-only .hero-context{display:flex;flex-direction:column;gap:5px}.company-hero-logo-only .hero-context .eyebrow{font-size:10.5px}.company-hero-logo-only .hero-context p{font-size:13px}.company-name-fallback h1{margin:4px 0 0;font-size:31px}.company-name-fallback+.hero-context{display:none}

/* Tabla de cartera con densidad tipo Excel: más información visible, menos aire. */
.excel-grid th{padding:6px 9px;font-size:10.2px;height:29px}.excel-grid td{height:27px;padding:3px 9px}.excel-grid .client-name strong{font-size:11.7px}.excel-grid .money-cell{font-size:11.4px}.excel-grid .pct-cell{font-size:11.4px}.excel-grid .data-bar:before{top:2px;bottom:2px}.excel-table-wrap{max-height:670px}

/* Modal compacto con fecha de vencimiento. */


@media (max-width:780px){.company-logo-hero{width:126px;height:65px}
.company-hero-logo-only{align-items:center}
.company-hero-logo-only .hero-context{max-width:320px}}
@media (max-width:500px){.company-logo-hero{width:112px;height:58px}
.company-hero-logo-only .hero-context p{font-size:12px}
.excel-grid th{padding:5px 7px}
.excel-grid td{height:26px;padding:3px 7px}}

/* Controles de exportación */
.export-menu [data-server-export]{font:inherit;font-size:12px;color:#4f6077;background:#fff;border:1px solid #d9e0e9;padding:7px 11px;border-radius:7px;transition:.15s;display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.export-menu [data-server-export]:hover{color:var(--navy);border-color:#bdc9d8;box-shadow:0 4px 12px rgba(31,58,95,.05)}
.export-menu [data-server-export]:disabled{opacity:.58;cursor:wait;transform:none;box-shadow:none}

/* KPIs ejecutivos */
.brief-icon{width:43px;height:43px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-size:17px}.brief-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 24px;margin-top:7px}.brief-lines p{margin:0;color:#edf4fb;font-size:12.5px;line-height:1.45}.compare-list{padding:0 20px 18px}.compare-row{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(110px,.7fr) 68px;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #edf0f4}.compare-row:first-child{border-top:0}.compare-row>div{display:flex;flex-direction:column;gap:2px}.compare-row span{font-size:11px;color:#65758a}.compare-row small{font-size:9.5px;color:#93a0b0}.compare-row strong{text-align:right;font-size:14px}.delta{display:inline-flex;justify-content:flex-end;font-weight:780;font-size:11px!important}.delta.positive{color:#3f8064}.delta.negative{color:#a7515d}.delta.neutral{color:#7d8896}.forecast-main{padding:4px 20px 13px;display:flex;flex-direction:column}.forecast-main span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.forecast-main strong{font-size:32px;letter-spacing:-.04em;color:var(--navy);margin:4px 0}.forecast-main small{font-size:11px;color:#7e8b9c}.forecast-compare{margin:0 20px 18px;padding:10px 12px;border-radius:9px;background:#f7f9fc;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#64758b}.cut-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 20px 19px}.cut-change-card{border:1px solid #e3e8ef;border-radius:10px;padding:14px;background:#fafbfd}.cut-change-card>span{font-size:10px;color:#6f7f92;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.cut-change-card>strong{display:block;font-size:22px;margin:5px 0 3px}.cut-change-card>small{display:block;color:#8794a3;font-size:10px}.cut-change-card>div{display:flex;gap:22px;margin-top:10px;border-top:1px solid #e6ebf1;padding-top:9px}.cut-change-card>div span{font-size:10px;color:#738196}.cut-change-card b{margin-left:5px}.maturity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 20px 20px}.maturity-card{border:1px solid #e0e6ed;border-radius:11px;padding:13px 14px;background:#fbfcfe}.maturity-card>strong{font-size:12px;color:#243d5b}.maturity-card>div{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:11px}.maturity-card>div span{color:#718197}.maturity-card>div:first-of-type i{color:#5b8f79}.maturity-card>div:nth-of-type(2) i{color:#9e6670}.maturity-card>small{display:block;border-top:1px solid #e7ecf2;margin-top:10px;padding-top:8px;color:#6e7d90;font-size:10px}.alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:0 20px 20px}.exec-alert{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:11px 12px;border:1px solid #e2e7ed;border-radius:10px;background:#fbfcfd}.exec-alert>i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#eef2f6;color:#65768b}.exec-alert strong{font-size:11.5px}.exec-alert p{margin:3px 0 0;color:#6d7c90;font-size:10.5px;line-height:1.4}.alert-danger>i{background:#faecee;color:#a04f5a}.alert-warning>i{background:#faf4e8;color:#9b7c43}.alert-good>i{background:#eaf5ef;color:#477a64}.compact-table-panel .panel-head{padding-bottom:10px}.profit-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 20px 20px}.profit-columns h4{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6d7d91;margin:0 0 7px}.profit-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 50px;gap:8px;align-items:center;border-top:1px solid #edf0f4;padding:7px 0;font-size:10.5px}.profit-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profit-row strong{text-align:right}.profit-row small{text-align:right;color:#708196}.activity-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 20px 15px}.activity-kpis>div{padding:12px;border:1px solid #e2e8ef;border-radius:10px;background:#f9fbfd}.activity-kpis span{display:block;font-size:10px;color:#738296}.activity-kpis strong{display:block;font-size:25px;margin-top:5px;color:var(--navy)}.inactive-list{padding:0 20px 18px}.inactive-list h4{font-size:10px;text-transform:uppercase;color:#6e7e92;margin:0 0 5px}.inactive-list>div{display:grid;grid-template-columns:minmax(0,1fr) 105px 85px;gap:8px;padding:6px 0;border-top:1px solid #edf0f4;font-size:10px}.inactive-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inactive-list small{color:#8793a2}.inactive-list strong{text-align:right}.negative{color:#a34f5a!important}


/* Executive Hub V9 · tipografía, filtros comerciales y vistas directivas */
body{font-size:15.5px}.eyebrow{font-size:11.75px}.brand-inline{font-size:14.5px}.dash-topbar,.admin-mobilebar{font-size:14px}.company-chip small,.switch-company{font-size:12.5px}.hero-context p{font-size:14px!important;line-height:1.45}.panel-head h2{font-size:18.5px}.panel-head .panel-metric,.panel-help{font-size:11.5px}

/* El periodo comercial es un filtro global para Resumen, KPIs y Ventas. */



.custom-period-form{grid-column:1/-1;display:none;grid-template-columns:minmax(160px,220px) minmax(160px,220px) auto;gap:10px;align-items:end;padding-top:11px;border-top:1px solid #e9edf2}.custom-period-form.open{display:grid}.custom-period-form label{font-size:11.5px;font-weight:720;color:#617087}.custom-period-form input{display:block;width:100%;margin-top:5px;border:1px solid #d5dce6;border-radius:7px;background:#fff;padding:8px 9px;color:var(--ink);outline:none}.filter-action{border:0;border-radius:7px;background:var(--navy);color:#fff;padding:9px 14px;font-weight:720;font-size:12px;height:36px}.filter-action:hover{background:#294a73}

/* Tabla de cartera: compacta como hoja de cálculo, pero más legible. */
.excel-grid{font-size:12px}.excel-grid th{padding:5px 8px;font-size:10.8px;height:28px}.excel-grid td{height:26px;padding:2px 8px}.excel-grid .client-name strong{font-size:12.2px}.excel-grid .money-cell,.excel-grid .pct-cell{font-size:11.8px}

/* KPIs: subir lectura sin convertir la interfaz en tarjetas sobredimensionadas. */
.brief-lines p{font-size:13px}.compare-row span{font-size:12px}.compare-row small{font-size:10.5px}.compare-row strong{font-size:14.5px}.forecast-main small,.forecast-compare{font-size:11.5px}.cut-change-card>span,.cut-change-card>small,.cut-change-card>div span{font-size:11px}.maturity-card>div{font-size:11.5px}.maturity-card>small{font-size:10.8px}.exec-alert strong{font-size:12px}.exec-alert p{font-size:11.5px}.profit-row{font-size:11.5px}.activity-kpis span,.inactive-list h4{font-size:11px}.inactive-list>div{font-size:11px}

/* Admin SaaS · más legible. */
.page-heading p{font-size:14.5px}.btn-primary,.btn-ghost{font-size:12.5px}

/* Administrador de perfiles directivos. */

.preset-actions{display:flex;gap:7px;flex-wrap:wrap;padding:0 18px 18px}.preset-actions form{margin:0}
.view-settings-form{margin-top:22px}.view-settings-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}.view-settings-head h2{margin:4px 0 4px;font-size:24px;letter-spacing:-.025em}.view-settings-head p{margin:0;color:var(--muted);font-size:13px}.view-toggle-card{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 36px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px;cursor:pointer;transition:.15s}.view-toggle-card:hover{border-color:#c3cfdd;box-shadow:0 5px 16px rgba(30,55,84,.045)}.view-toggle-card>input{position:absolute;opacity:0;pointer-events:none}.view-toggle-icon{width:36px;height:36px;border-radius:9px;background:#edf3f8;color:#46698d;display:grid;place-items:center}.view-toggle-copy{display:flex;flex-direction:column;min-width:0}.view-toggle-copy strong{font-size:12.5px;color:#26364b}.view-toggle-copy small{font-size:10.8px;line-height:1.35;color:#78879a;margin-top:2px}.view-toggle-card .switch-pill{width:34px;height:19px;border-radius:99px;background:#d9dfe6;position:relative;transition:.18s}.view-toggle-card .switch-pill:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;top:2px;left:2px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);transition:.18s}.view-toggle-card input:checked~.switch-pill{background:#557da8}.view-toggle-card input:checked~.switch-pill:after{left:17px}.view-toggle-card:has(input:checked){border-color:#cbd8e6;background:#fbfdff}.sticky-save{position:sticky;bottom:12px;z-index:8;margin-top:18px;padding:11px 13px;border:1px solid #d6dee8;border-radius:11px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(25,42,70,.09);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.sticky-save strong{color:var(--ink)}


@media (max-width:760px){body{font-size:14.5px}
.brief-lines{grid-template-columns:1fr}
.kpi-page-intro,.profile-toolbar,.view-settings-head{align-items:stretch;flex-direction:column}
.custom-period-form{grid-template-columns:1fr}
.compare-row{grid-template-columns:1fr auto}
.compare-row>.delta{grid-column:2}
.inactive-list>div{grid-template-columns:1fr auto}
.inactive-list strong{grid-column:2}
.inactive-list small{grid-row:2}
.sticky-save{bottom:6px}
.excel-grid th{padding:5px 7px}
.excel-grid td{height:25px;padding:2px 7px}}

/* ========================================================================== 
   EXECUTIVE HUB V11 · PRODUCT DESIGN SYSTEM
   Rediseño visual consolidado: admin SaaS compacto + módulos directivos claros
   ========================================================================== */
:root{
  --v10-bg:#f7f9fc;
  --v10-surface:#ffffff;
  --v10-surface-soft:#f9fbfd;
  --v10-ink:#172033;
  --v10-muted:#637188;
  --v10-faint:#8c98a9;
  --v10-line:#dce4ee;
  --v10-line-strong:#cbd6e3;
  --v10-navy:#183a60;
  --v10-navy-2:#244d79;
  --v10-blue:#5b83b3;
  --v10-blue-soft:#eef4fb;
  --v10-green:#5d8b79;
  --v10-red:#a95762;
  --v10-shadow:0 10px 30px rgba(25,45,72,.055);
  --v10-radius:14px;
  --v10-radius-sm:9px;
}
html{font-size:16px}
body{font-size:16px;line-height:1.45;color:var(--v10-ink);background:var(--v10-bg)}
body,button,input,select,textarea{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.eyebrow{font-size:11px!important;line-height:1.2;letter-spacing:.12em;font-weight:700;color:#657994}
.panel{border:1px solid var(--v10-line);border-radius:var(--v10-radius);box-shadow:0 5px 18px rgba(31,58,95,.035);background:#fff}
.panel-head{padding:17px 18px 13px;gap:14px}
.panel-head h2{font-size:18px!important;font-weight:650;letter-spacing:-.02em;margin:3px 0 0;color:var(--v10-ink)}
.panel-metric,.panel-help{font-size:12px!important;color:var(--v10-muted)}

/* -------- Admin shell -------- */










.page-heading{margin-bottom:18px;align-items:flex-start}.page-heading h1{font-size:30px;font-weight:680;letter-spacing:-.035em;margin:3px 0 4px}.page-heading p{font-size:14px!important;line-height:1.55;color:var(--v10-muted);max-width:850px}

.metric-icon{width:34px;height:34px;border-radius:9px;margin-bottom:11px}
.compact-panel{padding-bottom:14px}.check-row{font-weight:500!important}.check-row input{accent-color:var(--v10-navy)}
.btn-primary{padding:9px 13px;border-radius:8px;font-size:13px!important;font-weight:620;box-shadow:none}.btn-ghost{padding:8px 11px;font-size:13px!important;font-weight:520;border-color:#d5dee9;color:#54657b}.btn-primary:hover{transform:none}.form-actions{gap:7px}
.table-link{font-size:12.5px;font-weight:600}.status{font-size:10px;padding:4px 7px;font-weight:600}.schema-note{font-size:13px;line-height:1.5;padding:10px 11px;background:#f8fafc}
.panel .empty{font-size:13px}

/* Vistas directivas / configuración: más denso y legible */
.preset-copy strong{font-weight:650}.preset-actions{padding:0 17px 16px;gap:6px}
.view-settings-form{margin-top:18px}.view-settings-head{align-items:center;margin-bottom:13px}.view-settings-head h2{font-size:23px;font-weight:650;margin:2px 0 2px}.view-settings-head p{font-size:13.5px;line-height:1.45}.view-toggle-card{grid-template-columns:36px minmax(0,1fr) 38px;gap:10px;min-height:60px;padding:9px 11px;border-radius:10px;box-shadow:none}.view-toggle-icon{width:34px;height:34px;border-radius:8px;font-size:13px}.view-toggle-copy strong{font-size:14px;font-weight:610;color:#26374c}.view-toggle-copy small{font-size:12px;line-height:1.3;color:#74849a;margin-top:1px}.view-toggle-card .switch-pill{width:36px;height:20px}.view-toggle-card .switch-pill:after{width:16px;height:16px}.view-toggle-card input:checked~.switch-pill:after{left:18px}.sticky-save{bottom:10px;margin-top:15px;padding:9px 11px;border-radius:10px;font-size:12.5px;box-shadow:0 10px 30px rgba(23,43,68,.09)}

/* Drawer admin en móvil/tablet */


/* -------- Dashboard ejecutivo -------- */


.brand-inline{font-size:14px!important;font-weight:620}.company-chip small,.switch-company{font-size:12px!important}.switch-company{font-weight:520}
.hero-row{align-items:center;margin-bottom:14px;gap:18px}.company-hero-logo-only{gap:13px}.company-logo-hero{width:118px;height:62px;border-radius:11px;padding:7px;box-shadow:none}.hero-context{gap:2px!important}.hero-context .eyebrow{font-size:10px!important}.hero-context p{font-size:13.5px!important;color:#63738a;margin:0;line-height:1.35!important}.export-menu{gap:5px}.export-menu>span{font-size:10.5px;font-weight:650;letter-spacing:.05em}.export-menu [data-server-export]{border:1px solid #d6dfea;background:#fff;color:#51637a;border-radius:8px;padding:7px 10px;font-size:12.5px;line-height:1.2}.export-menu [data-server-export]:hover{background:#f6f9fc;border-color:#bccada;color:#23466e}

/* Módulos arriba; en móvil se transforma en tab bar inferior tipo iOS */


@keyframes v10fade{from{opacity:.5;transform:translateY(2px)}to{opacity:1;transform:none}}


/* Filtro comercial compartido únicamente por Resumen / KPIs / Ventas */
.custom-period-form{gap:8px;padding-top:9px}.custom-period-form label{font-size:11.5px;font-weight:600}.custom-period-form input{min-height:36px;padding:7px 8px}.filter-action{height:36px;font-size:12px;font-weight:620;padding:8px 12px}

/* Resumen: sólo aquí viven los KPIs globales */


.donut{width:126px;height:126px}.donut:after{inset:22px}
.line-chart{padding:0 14px 14px;min-height:250px}.axis-text{font-size:9.5px}

/* KPI intelligence: modular, limpio, sin tarjetas exageradas */
.brief-icon{width:34px;height:34px;border-radius:9px}.brief-lines{gap:6px 18px}.brief-lines p{font-size:12.5px!important;line-height:1.45}.compare-row{padding:9px 16px}.compare-row span{font-size:11.5px!important}.compare-row small{font-size:10.5px!important}.compare-row strong{font-size:14px!important}.forecast-main{padding:12px 16px}.forecast-main strong{font-size:25px}.forecast-main small,.forecast-compare{font-size:11px!important}.cut-change-grid,.maturity-grid{gap:9px;padding:0 16px 16px}.cut-change-card,.maturity-card{padding:11px 12px}.profit-columns{gap:14px;padding:0 16px 16px}.profit-row{font-size:11px!important;padding:6px 0}.activity-kpis{padding:0 16px 12px}.activity-kpis>div{padding:10px}.activity-kpis strong{font-size:22px}.inactive-list{padding:0 16px 15px}.inactive-list>div{font-size:10.8px!important}.alert-list{padding:0 16px 16px;gap:8px}.exec-alert{padding:10px 11px}.exec-alert strong{font-size:11.5px!important}.exec-alert p{font-size:11px!important}

/* Cartera analítica · densidad tipo Excel y anchos útiles */

.excel-table-wrap{max-height:600px;overflow:auto;border-top:1px solid #d7e0eb;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#b9c5d2 #eef2f6}
.excel-grid{width:100%;min-width:1120px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12px!important}
.excel-grid col.col-client{width:auto}.excel-grid col.col-invoices{width:62px}.excel-grid col.col-money{width:118px}.excel-grid col.col-pct{width:76px}
.excel-grid th{position:sticky;top:0;z-index:3;height:27px;padding:4px 7px!important;font-size:10px!important;font-weight:700;background:#4778c4;color:#fff;border-color:#6e94ca;white-space:nowrap;text-align:right}
.excel-grid th:first-child{left:0;z-index:7;text-align:left;box-shadow:1px 0 0 #6e94ca}
.excel-grid td{height:25px!important;padding:2px 7px!important;font-size:11.5px!important;border-color:#d4deea;background:#fff;vertical-align:middle}
.excel-grid tbody tr:hover td{background:#f7faff}
.excel-grid .client-name{position:sticky;left:0;z-index:2;background:#fff;min-width:0!important;max-width:none!important;overflow:hidden;box-shadow:1px 0 0 #d4deea}
.excel-grid tbody tr:hover .client-name{background:#f7faff}
.excel-grid .client-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.7px;font-weight:650}
.excel-grid .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.excel-grid .money-cell,.excel-grid .pct-cell{font-size:11.3px!important}
.excel-grid .total-cell{font-weight:760;color:#12345a}.excel-grid .negative-amount{color:#d22730}.excel-grid .data-bar:before{top:2px;bottom:2px;opacity:.84}






/* Pie de página */


/* -------- Responsive -------- */



@media (max-width:760px){body{font-size:15px}
.switch-company{margin-left:auto;padding-left:10px}
.company-chip{display:none}
.hero-row{align-items:center;flex-direction:row;margin-bottom:10px}
.company-logo-hero{width:100px;height:54px}
.hero-context{display:none!important}
.export-menu{margin-left:auto}
.export-menu>span{display:none}
.export-menu [data-server-export]{padding:7px 8px;font-size:0}
.export-menu [data-server-export] i{font-size:14px;margin:0}
.custom-period-form{grid-template-columns:1fr 1fr}
.custom-period-form .filter-action{grid-column:1/-1}
.panel-head{padding:14px 14px 11px}
.panel-head h2{font-size:17px!important}
.donut{width:112px;height:112px}
.brief-lines{grid-template-columns:1fr}
.excel-table-wrap{max-height:520px}
.excel-grid .client-name{min-width:0!important}
.page-heading{flex-direction:column;align-items:flex-start}
.page-heading h1{font-size:27px}
.page-heading p{font-size:13.5px!important}
.sticky-save{bottom:8px}}
@media (max-width:480px){.custom-period-form{grid-template-columns:1fr}}

/* ========================================================================== 
   EXECUTIVE HUB V11 · SUPER PLUS
   Ajustes de acceso, perfiles, factura interactiva y microinteracciones.
   ========================================================================== */

/* Acceso ejecutivo: PIN alineado como un solo control */
.director-copy h1 span{color:#315b86}


.pin-line{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:stretch;width:100%;margin-top:5px}
.pin-line input{height:42px;min-height:42px!important;margin:0!important;border-radius:9px 0 0 9px!important;border-right:0!important;letter-spacing:.16em;padding:8px 12px!important}
.arrow-btn{width:46px;height:42px;border:1px solid var(--v10-navy);background:var(--v10-navy);color:#fff;border-radius:0 9px 9px 0;font-size:14px;display:grid;place-items:center;transition:background .15s ease,transform .15s ease}
.arrow-btn:hover{background:#244f7d}.arrow-btn:active{transform:translateY(1px)}

/* Perfiles: listado administrativo real */




.preset-actions-large{display:flex;flex-wrap:wrap}.view-settings-head{display:flex;justify-content:space-between;gap:18px}.view-settings-head>.btn-primary{flex:0 0 auto}

/* Tarjetas del resumen como navegación */



/* Gráficas y tarjetas: entrada discreta */

@keyframes eh-draw-line{to{stroke-dashoffset:0}}

.motion-reveal{opacity:0;transform:translateY(6px);transition:opacity .32s ease var(--reveal-delay,0ms),transform .32s ease var(--reveal-delay,0ms)}.motion-reveal.is-revealed{opacity:1;transform:none}


/* Modal de lista de facturas */


/* Recreación visual de factura */
.modal-loading{display:flex;align-items:center;justify-content:center;gap:9px;padding:14px;color:#63748a}

/* Refinamiento del modal SweetAlert */


/* Responsivo V11 */
@media (max-width:900px){.pin-line{grid-template-columns:minmax(0,1fr) 46px}}
@media (max-width:760px){.view-settings-head>.btn-primary{width:100%;justify-content:center;display:flex}
.director-copy{margin:34px 0 24px}
.director-copy h1{font-size:36px!important;line-height:1.06}
.director-card{padding:27px 23px}
.pin-line input,.arrow-btn{height:44px;min-height:44px!important}}
@media (max-width:480px){.director-copy h1{font-size:31px!important}
.director-copy p{font-size:14px}
.director-card{padding:24px 18px}
.brand-lockup strong{font-size:15px}}

/* V11 · resumen documental de factura */





/* V11.1 · tabla analítica móvil + instalación PWA */
@media (max-width:760px){.excel-table-wrap{max-height:64vh;border-radius:0 0 12px 12px}
.excel-grid{min-width:900px;font-size:10.7px!important}
.excel-grid col.col-invoices{width:48px}
.excel-grid col.col-money{width:98px}
.excel-grid col.col-pct{width:64px}
.excel-grid th{height:24px;padding:3px 5px!important;font-size:9px!important;letter-spacing:0}
.excel-grid td{height:23px!important;padding:1px 5px!important;font-size:10.4px!important}
.excel-grid .client-name strong{font-size:10.4px}
.excel-grid .money-cell,.excel-grid .pct-cell{font-size:10.2px!important}
.excel-grid .data-bar:before{left:1px;right:auto;top:1px;bottom:1px;opacity:.72}}
@media (max-width:480px){.excel-grid{min-width:850px}
.excel-grid col.col-invoices{width:46px}
.excel-grid col.col-money{width:92px}
.excel-grid col.col-pct{width:62px}
.excel-grid th{padding:3px 4px!important;font-size:8.7px!important}
.excel-grid td{padding:1px 4px!important;font-size:10px!important}
.excel-grid .client-name strong{font-size:10.1px}}
.director-install{margin-top:16px;display:flex;align-items:center;gap:11px;min-height:36px}.director-install[hidden]{display:none!important}.install-app-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #d2dce8;background:#f8fafc;color:#274b73;border-radius:9px;padding:8px 11px;font-size:12.5px;font-weight:620;transition:background .15s ease,border-color .15s ease,transform .15s ease}.install-app-btn:hover{background:#eef4fa;border-color:#b8c8da}.install-app-btn:active{transform:translateY(1px)}.install-app-btn i{font-size:11px}.director-install small{font-size:11px;color:#8290a3;line-height:1.3}
@media (max-width:600px){.director-install{align-items:flex-start;flex-direction:column;gap:5px}
.install-app-btn{width:100%;justify-content:center;min-height:40px}
.director-install small{width:100%;text-align:center}}

/* V11.2 · precisión de columnas en cartera móvil
   Conserva exactamente el orden analítico de escritorio. Solo compacta y fija
   CLIENTE/FACTURAS con la misma geometría en THEAD y TBODY para evitar desfases. */



/* Progreso real de importaciones grandes */


/* Totales visibles sobre cada columna de cartera */








/* V11.3 · NC / saldo a favor separado en resumen de cartera */






/* ========================================================================== 
   EXECUTIVE HUB V12 · HEADER UNIFICADO + ADMIN RESPONSIVE POLISH
   Solo presentación: no modifica datos, permisos ni lógica de negocio.
   ========================================================================== */

/* Dashboard: una sola barra de mando con empresa, módulos y acciones. */
































/* Admin: proteger grids/tablas/formularios para que nunca se monten entre sí. */
























/* Las tablas anchas conservan columnas legibles y hacen scroll dentro de su panel. */














/* v13 dashboard polish: jerarquía clara, navegación táctil y paleta más actual */


































/* v14 — claridad ejecutiva: controles inequívocos, tipografía legible y navegación móvil inferior real */
















/* Navegación: se ve y se comporta como navegación, no como texto. */










/* El periodo ahora es un formulario reconocible: texto + select + botón Aplicar. */















/* Títulos y metadatos: lectura, no botón. */






/* KPIs del resumen son datos, no botones. */











/* Tarjetas secundarias legibles */







/* Paleta de gráficas más actual y semántica. */














/* v15 — ajustes quirúrgicos: navegación compacta, ayuda contextual y tablas admin densas */

/* Solo los módulos se compactan; Excel / PDF / Cambiar empresa conservan su escala v14. */



/* Cartera por cliente: encabezado compacto y la explicación vive en un modal. */






.portfolio-help-modal{text-align:left;font-size:13.5px;line-height:1.55;color:#40536a}
.portfolio-help-modal p{margin:0 0 12px}
.portfolio-help-modal p:last-child{margin-bottom:0}
.portfolio-help-modal strong{color:#173c65}


/* Resumen admin: lista operativa, no tabla de presentación. */









/* Historial admin: 25 filas/página, cada lote ocupa una sola línea visual. */
















/* Paginación propia del historial; no modifica ninguna otra tabla del sistema. */









/* v17 · selector de periodo: un clic en escritorio, select compacto en móvil. */









