:root{--navy:#18345f;--navy2:#294a78;--blue:#4d7fc8;--blue2:#6693d1;--blue3:#8eaddb;--blue4:#b9cde9;--ice:#edf3fb;--bg:#f5f7fa;--text:#26364d;--muted:#718097;--line:#e1e7ef;--white:#fff;--shadow:0 10px 28px rgba(30,52,88,.07)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f8faff 0,#f3f6fb 100%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.topbar{height:94px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);padding:0 5%;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5;box-shadow:0 4px 18px rgba(0,16,48,.04)}.brand-logo{width:205px;height:82px;object-fit:contain;object-position:left center}.status{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:7px;font-weight:700}.status i{width:8px;height:8px;border-radius:50%;background:#aeb9c8;box-shadow:0 0 0 4px #eef2f7}.status.connected{color:var(--blue)}.status.connected i{background:var(--blue);box-shadow:0 0 0 4px #e0eaff}main{max-width:1320px;margin:28px auto;padding:0 22px}.login-card{background:var(--white);border:1px solid var(--line);border-radius:24px;padding:34px 42px;max-width:860px;margin:42px auto;box-shadow:0 24px 70px rgba(0,16,48,.10);position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--navy),var(--blue),var(--blue3),var(--blue))}.login-logo{width:285px;height:150px;object-fit:contain;object-position:left center;margin:-5px 0 -8px}.login-card h1{margin:4px 0 8px;font-size:29px;letter-spacing:-.55px;color:var(--navy)}.login-card>p{color:var(--muted);font-size:13px;max-width:720px;line-height:1.65}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:900;color:var(--blue)}.connection-box{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:25px 0}.connection-box div{background:#f8fafc;padding:15px}.connection-box b{display:block;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#7a88a0;margin-bottom:5px}.connection-box span{font-size:12px;color:var(--navy);font-weight:650}.login{display:flex;gap:10px}.login input{flex:1}input{padding:13px 14px;border:1px solid #cbd7e8;border-radius:10px;font-size:14px;outline:none;background:#fff;color:var(--navy)}input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,80,240,.10)}button{border:0;border-radius:10px;padding:13px 20px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer;transition:.18s;box-shadow:0 7px 18px rgba(0,16,48,.12)}button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,80,240,.18)}button span{margin-left:8px}.secondary{background:var(--ice);color:var(--navy);box-shadow:none}.hero{background:linear-gradient(115deg,#294a78 0%,#416a9f 52%,#6e96cc 100%);color:#fff;border-radius:22px;padding:22px 26px;display:grid;grid-template-columns:1fr auto auto;gap:20px;align-items:center;margin-bottom:18px;box-shadow:0 14px 32px rgba(30,52,88,.13);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:420px;height:220px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-100px;top:-100px;transform:rotate(-18deg)}.hero-copy,.hero-brand,.hero button{position:relative;z-index:1}.hero h1{margin:5px 0;font-size:29px;letter-spacing:-.55px}.hero p{margin:7px 0 0;color:#eef4fb;font-size:13px}.hero .eyebrow{color:#dbe7f6}.hero-brand img{width:170px;height:86px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.16))}.light{background:#fff!important;color:var(--navy)!important}.panel{background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:17px;padding:21px;margin-bottom:18px;box-shadow:var(--shadow)}.filters{padding:18px 21px}.filter-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:15px}.panel h2{font-size:17px;margin:4px 0;letter-spacing:-.15px;color:var(--navy)}.date-grid{display:grid;grid-template-columns:1fr 1fr auto auto;gap:11px;align-items:end}.date-grid label{font-size:9px;font-weight:900;color:#74839a;letter-spacing:.5px}.date-grid input{display:block;width:100%;margin-top:6px}.period-msg{font-size:11px;color:#718097;text-align:right}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:19px 20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--navy)}.card.sales:before{background:linear-gradient(90deg,var(--navy),var(--blue))}.card.receivable:before{background:linear-gradient(90deg,var(--blue),var(--blue2))}.card.paid:before{background:linear-gradient(90deg,var(--blue2),var(--blue3))}.card.docs:before{background:linear-gradient(90deg,var(--blue3),var(--blue4))}.card-top{display:flex;justify-content:space-between;align-items:center}.card span{font-size:9px;letter-spacing:1.5px;color:#718097;font-weight:900}.card-top b{font-size:13px;color:var(--blue)}.card strong{display:block;font-size:27px;margin:10px 0 5px;letter-spacing:-.6px;color:var(--navy)}.card em{font-style:normal;color:#8997a8;font-size:11px}.section-label{font-size:9px;letter-spacing:2px;color:#5d7fae;font-weight:800;margin:25px 2px 10px}.grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:12px}.tag{align-self:flex-start;border:1px solid #dbe4f1;background:#f6f9fd;border-radius:20px;padding:6px 9px;font-size:8px;letter-spacing:1px;font-weight:900;color:#6e7e98}.tag.blue{background:#f0f5fc;border-color:#d7e3f3;color:#5d7fae}.tag.warning{background:#f3f6fa;border-color:#dce5ef;color:#6a7f9e}.hint{font-size:11px;color:#8997a8;margin:6px 0 0;line-height:1.5}.chart-panel{min-height:345px}.pie-layout{min-height:250px}.pie-summary{display:flex;align-items:end;justify-content:space-between;gap:15px;padding:4px 2px 10px;border-bottom:1px solid #edf1f6;margin-bottom:4px}.summary-label{display:block;font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#7b8799;font-weight:800;margin-bottom:3px}.pie-summary strong{display:block;font-size:21px;line-height:1.15;color:var(--navy);letter-spacing:-.35px}.summary-note{font-size:10px;color:#9aa6b6;padding-bottom:2px}.pie-wrap{display:grid;grid-template-columns:minmax(250px,1fr) minmax(170px,.9fr);gap:12px;align-items:center}.pie-svg{width:100%;max-width:360px;height:auto;overflow:visible;filter:drop-shadow(0 12px 12px rgba(0,16,48,.10))}.pie-center-title,.pie-center-value{display:none}.pie-legend{display:flex;flex-direction:column;gap:5px;max-height:245px;overflow:auto;padding:2px 4px 2px 0}.legend-row{display:grid;grid-template-columns:9px minmax(70px,1fr) auto auto;gap:7px;align-items:center;font-size:10px;color:#627188;padding:3px 0}.legend-dot{width:9px;height:9px;border-radius:3px}.legend-total{color:#52657f;font-size:9px;font-weight:700;white-space:nowrap}.legend-row b{color:var(--navy);font-size:10px;min-width:42px;text-align:right}.legend-empty{padding:35px 10px;text-align:center;color:#8997a8;font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:13px 10px;border-bottom:1px solid #edf1f6;text-align:left;font-size:12px;white-space:nowrap}tbody tr:hover{background:#f7f9fc}th{font-size:9px;letter-spacing:1px;color:#74839a;}td:nth-last-child(-n+3),th:nth-last-child(-n+3){text-align:right}.error{color:#a43a3a;font-size:12px;margin-top:12px}.empty{padding:18px;text-align:center;color:#8997a8;font-size:12px;background:#f7f9fc;border-radius:9px}footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:20px 5px 30px;color:#8190a6;font-size:9px;letter-spacing:1.1px}.footer-brand img{width:150px;height:70px;object-fit:contain;object-position:left center}.footer-brand{min-width:150px}.error+*{color:var(--navy)}@media(max-width:980px){.cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.hero{grid-template-columns:1fr auto}.hero-brand{display:none}.pie-wrap{grid-template-columns:1fr 1fr}.pie-summary{margin-top:2px}.date-grid{grid-template-columns:1fr 1fr}.connection-box{grid-template-columns:1fr}.filter-head{align-items:flex-start;flex-direction:column;gap:7px}.period-msg{text-align:left}footer{grid-template-columns:1fr 1fr}}@media(max-width:620px){.cards{grid-template-columns:1fr}.login{flex-direction:column}.hero{align-items:flex-start;grid-template-columns:1fr}.hero .light{width:max-content}.date-grid{grid-template-columns:1fr}.date-grid button{width:100%}.topbar{padding:0 18px;height:82px}.brand-logo{width:175px;height:70px}.status{font-size:0}.status i{width:8px;height:8px}main{padding:0 14px}.login-card{padding:26px;margin:25px auto}.login-logo{width:235px;height:125px}.panel{padding:17px}.pie-wrap{grid-template-columns:1fr}.pie-svg{max-width:320px;margin:auto}.pie-summary{padding-bottom:9px}.pie-legend{max-height:180px}footer{grid-template-columns:1fr;gap:8px}.footer-brand img{width:145px}}

/* Interacción de gráficos: al señalar una fecha/segmento se resalta dentro del 3D */
.pie-slice{transform-box:fill-box;transform-origin:center;transition:transform .22s ease,opacity .22s ease,filter .22s ease;outline:none;cursor:pointer}
.pie-slice.is-active{transform:translate(var(--slice-x,0),var(--slice-y,0)) scale(1.045);filter:drop-shadow(0 7px 7px rgba(30,52,88,.22));z-index:2}
.pie-slice.is-dimmed{opacity:.38}
.pie-slice:focus-visible{filter:drop-shadow(0 0 0 rgba(0,0,0,0)) brightness(1.05)}
.legend-row{cursor:pointer;border-radius:7px;padding-left:5px;padding-right:5px;transition:background .18s ease,transform .18s ease,color .18s ease}
.legend-row:hover,.legend-row.is-active{background:#eef4fb;transform:translateX(2px)}
.legend-row.is-active span,.legend-row.is-active b{color:var(--navy)}

/* Dashboard ejecutivo V16 */
.executive-label{margin-top:10px}.executive-cards{grid-template-columns:repeat(4,1fr)}
.card.profit:before{background:linear-gradient(90deg,#557b9f,#6f9bb9)}.card.margin:before{background:linear-gradient(90deg,#6f9bb9,#83b3b1)}.card.overdue:before{background:linear-gradient(90deg,#a98279,#c29a87)}.card.inventory-value:before{background:linear-gradient(90deg,#7899a9,#91b0b9)}
.executive-panel{margin-top:2px}.comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.compare-item{background:#f8fafc;border:1px solid #e7edf5;border-radius:12px;padding:15px}.compare-item>span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#7b8799;font-weight:900}.compare-item strong{display:block;margin-top:7px;color:var(--navy);font-size:20px}.compare-item small{display:block;margin-top:5px;font-size:10px;color:#8a98aa}.compare-item small.positive{color:#527c70}.compare-item small.negative{color:#9a6f6f}.compare-item small.neutral{color:#8997a8}
.executive-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mini-panel{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}.mini-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#edf3fb;color:#5d7fae;display:grid;place-items:center;font-weight:900;font-size:15px}.mini-panel h3{margin:4px 0 2px;color:var(--navy);font-size:15px}.mini-panel strong{display:block;font-size:25px;color:var(--navy);margin-top:6px}.mini-panel p{font-size:10px;color:#8997a8;margin:5px 0 0;line-height:1.5}
@media(max-width:980px){.executive-cards{grid-template-columns:1fr 1fr}.comparison-grid{grid-template-columns:1fr 1fr}.executive-mini-grid{grid-template-columns:1fr}}
@media(max-width:620px){.executive-cards,.comparison-grid{grid-template-columns:1fr}}
.collection-summary{margin-bottom:18px}.collection-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.collection-cards>div{background:#f8fafc;border:1px solid #e7edf5;border-radius:12px;padding:15px}.collection-cards span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#7b8799;font-weight:900}.collection-cards strong{display:block;margin-top:8px;font-size:20px;color:var(--navy)}.collection-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.flow-chart{padding:5px 0}.flow-row{display:grid;grid-template-columns:55px 1fr;gap:10px;align-items:center;margin:10px 0}.flow-label{font-size:10px;color:#718097;font-weight:800}.flow-bars{display:flex;flex-direction:column;gap:5px}.flow-bar{height:18px;border-radius:5px;min-width:4px;position:relative;overflow:visible;padding-left:7px;display:flex;align-items:center}.flow-bar span{font-size:8px;font-weight:800;white-space:nowrap;color:#52657f}.flow-bar.cargo{background:#d8e4f3}.flow-bar.abono{background:#cfe2dc}.flow-bar.abono span{color:#527c70}.flow-bar.cargo span{color:#5d7fae}@media(max-width:980px){.collection-cards{grid-template-columns:1fr 1fr}.collection-grid{grid-template-columns:1fr}}@media(max-width:620px){.collection-cards{grid-template-columns:1fr}.flow-row{grid-template-columns:48px 1fr}}
/* Inventarios avanzados V18 */
.inventory-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:4px 0 15px}.inventory-stats>div{background:#f8fafc;border:1px solid #e7edf5;border-radius:12px;padding:12px}.inventory-stats span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#7b8799;font-weight:900}.inventory-stats strong{display:block;margin-top:6px;font-size:18px;color:var(--navy)}.inventory-tools{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:10px;margin-bottom:12px}.inventory-tools input,.inventory-tools select{width:100%}.inventory-table{min-width:1100px}.inventory-table th:nth-child(n),.inventory-table td:nth-child(n){text-align:left}.inventory-table th:nth-child(n+4),.inventory-table td:nth-child(n+4){text-align:right}.inventory-table .inv-desc{white-space:normal;min-width:220px;max-width:360px}.inv-state{display:inline-block;padding:5px 8px;border-radius:12px;font-size:8px;font-weight:900;letter-spacing:.4px}.inv-state.ok{background:#edf6f1;color:#527c70}.inv-state.warning{background:#f7f2e9;color:#8a7150}.inv-state.danger{background:#f7eded;color:#9a6464}.inv-state.info{background:#edf3fb;color:#5d7fae}@media(max-width:980px){.inventory-stats{grid-template-columns:repeat(3,1fr)}.inventory-tools{grid-template-columns:1fr 1fr}}@media(max-width:620px){.inventory-stats{grid-template-columns:1fr 1fr}.inventory-tools{grid-template-columns:1fr}.inventory-table .inv-desc{min-width:180px}}

/* Análisis de ventas V19 */
.sales-summary-panel{margin-bottom:18px}.sales-summary-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.sales-summary-cards>div{background:#f8fafc;border:1px solid #e7edf5;border-radius:12px;padding:15px}.sales-summary-cards span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#7b8799;font-weight:900}.sales-summary-cards strong{display:block;margin-top:8px;font-size:20px;color:var(--navy)}.sales-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:18px;margin-bottom:18px}.sales-grid .panel{min-width:0}.sales-grid table{min-width:760px}.sales-grid .inv-desc{white-space:normal;min-width:190px;max-width:330px}.sales-grid th:nth-child(n),.sales-grid td:nth-child(n){text-align:left}.sales-grid th:nth-child(n+2),.sales-grid td:nth-child(n+2){text-align:right}.sales-grid th:nth-child(2),.sales-grid td:nth-child(2){text-align:center}.sales-products-limit{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.sales-products-limit select{border:1px solid #dce5f2;border-radius:8px;padding:8px 10px;background:#f8fafc;color:var(--navy);font:inherit;font-weight:800}
.daily-sales-chart-scroll{overflow-x:auto;overflow-y:hidden;padding:8px 0 2px}.daily-sales-svg{display:block;height:250px;max-width:none;overflow:visible}.daily-sales-gridline{stroke:#e8edf4;stroke-width:1}.daily-sales-axis-label{fill:#8997a8;font-size:9px}.daily-sales-day-label{fill:#74839a;font-size:10px}.daily-sales-bar{fill:#cfd9e7;outline:none;transition:fill .16s ease,filter .16s ease}.daily-sales-bar.has-sales{fill:#5b7fb8;cursor:pointer}.daily-sales-bar.has-sales:hover,.daily-sales-bar.has-sales:focus{fill:#294a78;filter:drop-shadow(0 2px 3px rgba(30,52,88,.25))}.daily-sales-bar.is-peak{fill:#d28a27}.daily-sales-bar.is-peak:hover,.daily-sales-bar.is-peak:focus{fill:#a86211}.daily-sales-bar:focus-visible{stroke:#1a3a68;stroke-width:2}.daily-sales-value-label{fill:#54657c;font-size:8px;font-weight:800}.daily-sales-value-label.is-peak{fill:#a86211;font-size:9px}.daily-sales-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin:10px 0 2px}.daily-sales-day-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px!important;border:1px solid #e2e9f2!important;border-radius:10px!important;background:#f8fafc!important;color:var(--navy)!important;box-shadow:none!important;text-align:left;cursor:pointer}.daily-sales-day-card span{font-size:10px;color:#718097}.daily-sales-day-card strong{font-size:15px}.daily-sales-day-card b{font-size:9px;color:#a86211}.daily-sales-day-card.is-peak{border-color:#e7c48f!important;background:#fff8ed!important}.daily-sales-warning{display:flex;flex-direction:column;gap:5px;margin:10px 0;padding:12px 14px;border:1px solid #e7c48f;border-radius:10px;background:#fff8ed;color:#80551f;font-size:11px}.daily-sales-warning strong{font-size:12px}.daily-sales-warning small{font-size:10px;color:#896d48}.daily-sales-no-activity{padding:14px;color:#8997a8;font-size:11px}
@media(max-width:980px){.sales-summary-cards{grid-template-columns:repeat(3,1fr)}.sales-grid{grid-template-columns:1fr}}
@media(max-width:620px){.sales-summary-cards{grid-template-columns:1fr 1fr}.sales-grid{grid-template-columns:1fr}}

/* Búsqueda global V20 */
.search-label{margin-top:10px}.global-search-panel{margin-bottom:18px}.global-search-tools{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin-top:4px}.global-search-tools input{width:100%}.global-search-tools button{min-width:105px}.search-msg{min-height:18px;margin:8px 0;color:#7b8799;font-size:10px}.global-search-results{display:grid;gap:7px;max-height:520px;overflow:auto}.search-result{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;border:1px solid #e7edf5;background:#f9fbfd;border-radius:11px;padding:10px 12px}.search-result-icon{width:32px;height:32px;border-radius:9px;background:#edf3fb;color:#5d7fae;display:grid;place-items:center;font-size:11px;font-weight:900}.search-result-main{min-width:0}.search-result-top{display:flex;align-items:center;gap:8px}.search-result-top strong{font-size:12px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-type{font-size:8px;letter-spacing:.7px;text-transform:uppercase;font-weight:900;color:#6f8097;background:#eef3f8;border:1px solid #dde6ef;border-radius:10px;padding:3px 6px;flex:0 0 auto}.search-result p{font-size:9px;color:#74839a;margin:4px 0 0}.search-result small{display:block;font-size:9px;color:#9aa6b6;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-amount{font-size:12px;color:var(--navy);white-space:nowrap}.search-result:hover{background:#f3f7fb;border-color:#dbe5ef}
@media(max-width:620px){.global-search-tools{grid-template-columns:1fr}.global-search-tools button{width:100%}.search-result{grid-template-columns:32px 1fr}.search-amount{grid-column:2;text-align:left}.search-result-top{align-items:flex-start;flex-direction:column;gap:4px}}
/* Reportes V21 */
.report-label{margin-top:10px}.report-panel{margin-bottom:18px}.report-tools{display:flex;flex-wrap:wrap;gap:10px}.report-tools button{font-size:11px}.report-panel .search-msg{margin-bottom:0}@media(max-width:620px){.report-tools{display:grid;grid-template-columns:1fr}.report-tools button{width:100%}}

.login-stack{display:flex;flex-direction:column;gap:10px}.login-help{font-size:10px;color:#7b8799;margin-top:12px;line-height:1.5}.user-bar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px 15px;margin-bottom:12px;box-shadow:var(--shadow)}.user-bar b{display:block;font-size:12px;color:var(--navy)}.user-bar span{font-size:9px;color:#7b8799}.user-actions{display:flex;gap:8px}.small-btn{padding:7px 10px;font-size:9px;box-shadow:none}.user-create{display:grid;grid-template-columns:1fr 1.3fr 1fr 1.2fr auto;gap:8px;margin-bottom:14px}.users-panel table{min-width:650px}@media(max-width:850px){.user-create{grid-template-columns:1fr 1fr}.user-create button{grid-column:1/-1}}

.config-panel{margin-bottom:18px}.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.config-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.config-grid label.wide{grid-column:span 2}.config-grid input,.config-grid select{padding:11px 12px;border:1px solid #d9dee8;border-radius:10px;background:#fff;font:inherit;font-weight:400;text-transform:none;letter-spacing:normal}.config-actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:800px){.config-grid{grid-template-columns:1fr}.config-grid label.wide{grid-column:auto}}
.backup-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.backup-warning{margin-top:14px;padding:10px 12px;border-left:3px solid #d3a84d;background:#faf8f1}.backup-actions button{cursor:pointer}.admin-panel{margin-top:16px}

/* V29.3 Multiempresa: encabezado y permisos por usuario */
.company-head{display:flex;flex-direction:column;justify-content:center;margin-left:12px;padding-left:12px;border-left:1px solid var(--line);line-height:1.05}.company-head span{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#8a97a8;font-weight:800}.company-head strong{font-size:13px;color:var(--navy);margin-top:4px}.company-access{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.company-access h3{font-size:14px;color:var(--navy);margin:0 0 4px}.access-checks{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:7px}.access-checks label{font-size:10px;color:#5f7088;font-weight:700;white-space:nowrap}.access-checks input{accent-color:#5d7fae;margin-right:4px}.company-access table{min-width:760px}.company-access td:nth-child(3){min-width:430px}@media(max-width:620px){.company-head{display:none}}

.inventory-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.pager-buttons{display:flex;align-items:center;gap:8px}.pager-buttons button{padding:8px 12px;font-size:11px}.pager-buttons button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:620px){.inventory-pager{align-items:flex-start;flex-direction:column}.pager-buttons{width:100%;justify-content:space-between}}

.cxc-client-link{color:#2f68b1;text-decoration:underline;font-weight:700;cursor:pointer}.modal-backdrop{position:fixed;inset:0;background:rgba(18,32,52,.48);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal-backdrop[hidden]{display:none}.modal-panel{background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(18,32,52,.25);width:min(1200px,96vw);max-height:92vh;overflow:auto;padding:22px}.modal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.modal-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-panel .collection-cards{margin:18px 0}.modal-panel .table-wrap{max-height:52vh}.modal-panel .small-btn{white-space:nowrap}

.global-search-filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}.global-search-filter{border:1px solid #dce5f0;background:#f5f8fc;color:#4d6483;border-radius:999px;padding:7px 12px;font:inherit;font-size:10px;font-weight:750;cursor:pointer}.global-search-filter b{margin-left:5px;color:#173660}.global-search-filter.active{background:#1b3966;color:white;border-color:#1b3966}.global-search-filter.active b{color:white}.global-search-filter:disabled{opacity:.45;cursor:default}.global-search-group{margin-top:8px}.global-search-group-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 6px;color:#344d70}.global-search-group-head h3{font-size:11px;margin:0}.global-search-group-head span{font-size:9px;color:#8491a3}.global-search-group-items{display:grid;gap:7px}.search-result{grid-template-columns:36px minmax(0,1fr) auto}.search-result-side{display:grid;justify-items:end;align-items:center;gap:6px}.search-result-side .small-btn{padding:6px 9px;font-size:9px;white-space:nowrap}.global-article-panel{width:min(900px,96vw)}.global-article-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.global-article-kpis>div{display:grid;gap:5px;padding:12px;border:1px solid #e4eaf2;background:#f8fafd;border-radius:10px}.global-article-kpis span{font-size:9px;color:#76869d}.global-article-kpis strong{font-size:13px;color:var(--navy)}.global-article-table{margin-top:10px}.global-article-table td,.global-article-table th{white-space:nowrap}
@media(max-width:700px){.search-result{grid-template-columns:32px minmax(0,1fr)}.search-result-side{grid-column:2;display:flex;justify-content:space-between;width:100%}.global-article-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.global-search-filter{flex:1 0 auto}}

.company-finance-box{grid-column:1/-1;border-top:1px solid #dfe6ef;margin-top:10px;padding-top:16px}.company-finance-box h3{margin:0 0 6px}.bank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.bank-card{border:1px solid #dfe6ef;border-radius:10px;padding:12px;background:#fafbfd}.bank-card>b{display:block;margin-bottom:8px;color:#18345f}.bank-card label{display:block;margin:7px 0}.logo-preview img{max-height:70px;max-width:240px;margin-top:8px;border:1px solid #dfe6ef;border-radius:8px;padding:5px;background:white}@media(max-width:900px){.bank-grid{grid-template-columns:1fr}}

body.modal-open{overflow:hidden}
.chart-zoom-panel{width:min(1100px,96vw);max-height:92vh;overflow:auto}
.chart-zoom-content{padding:12px 8px 24px;min-height:420px;display:flex;align-items:center;justify-content:center}
.chart-zoom-content .pie-wrap{display:grid;grid-template-columns:minmax(360px,1.2fr) minmax(300px,.8fr);gap:24px;align-items:center}
.chart-zoom-content .pie-svg{width:100%!important;max-width:760px;height:auto!important}
.chart-zoom-content .pie-legend{max-height:60vh;overflow:auto}
#sales,#aging{cursor:zoom-in}
@media(max-width:800px){.chart-zoom-content .pie-wrap{grid-template-columns:1fr}.chart-zoom-panel{width:98vw}.chart-zoom-content .pie-legend{max-height:none}}

.zoom-chart-block{background:#fff;border:1px solid #d9e3ee;border-radius:12px;padding:14px;margin-bottom:14px}.zoom-chart-block .pie-svg{width:100%;max-width:820px;height:auto}.zoom-chart-block .pie-layout,.zoom-chart-block .pie-wrap{width:100%}.zoom-detail-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:#f5f9fd;border:1px solid #d9e3ee;border-radius:12px;padding:14px;margin-bottom:12px}.zoom-detail-head h3{margin:3px 0 5px;color:#102c58;font-size:16px}.zoom-detail-kpis{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.zoom-detail-kpis span{background:#fff;border:1px solid #d7e2ee;border-radius:8px;padding:7px 10px;font-size:10px;color:#536780;white-space:nowrap}.zoom-detail-kpis b{display:block;color:#102c58;font-size:12px;margin-top:2px}.zoom-detail-table{max-height:52vh;overflow:auto}.zoom-detail-table table{min-width:980px}.zoom-detail-table th{position:sticky;top:0;background:#eef4fa;z-index:1}.empty-cell{text-align:center;padding:22px;color:#8997a8}.zoom-loading{padding:35px;text-align:center;color:#536780;background:#f5f9fd;border:1px dashed #cbd8e6;border-radius:12px}@media(max-width:850px){.zoom-detail-head{display:block}.zoom-detail-kpis{justify-content:flex-start;margin-top:10px}}
.zoom-top{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:18px;align-items:stretch;margin-bottom:18px}.zoom-chart-block{padding:14px;border:1px solid rgba(120,140,160,.18);border-radius:16px;background:rgba(255,255,255,.035);display:flex;align-items:center;justify-content:center;min-height:320px}.zoom-chart-block .pie-wrap{grid-template-columns:minmax(240px,1fr) minmax(220px,.8fr);gap:14px}.zoom-chart-block .pie-svg{max-width:440px!important}.zoom-chart-block .pie-legend{max-height:300px;overflow:auto}.zoom-detail-head{height:100%;padding:20px;border:1px solid rgba(120,140,160,.18);border-radius:16px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;justify-content:center}.zoom-detail-head h3{margin:5px 0 7px;font-size:24px}.zoom-selected{font-weight:800}.zoom-detail-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.zoom-detail-kpis span{padding:12px 14px;border-radius:12px;background:rgba(120,140,160,.08);display:flex;flex-direction:column;gap:3px}.zoom-detail-kpis b{font-size:17px}.zoom-table-title{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 4px 8px;font-size:14px}.zoom-table-title span{color:var(--muted,#77808c);font-size:12px}.zoom-detail-table{max-height:48vh;overflow:auto}.zoom-detail-table table{min-width:980px}.zoom-detail-table th{position:sticky;top:0;z-index:2;background:var(--panel,#fff)}
@media(max-width:1050px){.zoom-top{grid-template-columns:1fr}.zoom-chart-block .pie-wrap{grid-template-columns:minmax(300px,1fr) minmax(260px,.8fr)}}
@media(max-width:700px){.zoom-detail-kpis{grid-template-columns:1fr}.zoom-table-title{align-items:flex-start;flex-direction:column}.zoom-detail-table table{min-width:900px}}
/* V30.16.2 - mejor distribución visual del indicador seleccionado */
.chart-zoom-panel{width:min(1280px,97vw);max-height:94vh}
.chart-zoom-content{padding:18px 12px 28px;display:block;min-height:0}
.zoom-top{grid-template-columns:minmax(420px,1.05fr) minmax(360px,.95fr);gap:22px;margin-bottom:20px}
.zoom-chart-block{min-height:360px;padding:20px;background:var(--panel,#fff);border:1px solid #d9e3ee;border-radius:16px;box-shadow:0 4px 14px rgba(20,45,75,.06)}
.zoom-chart-block .pie-wrap{grid-template-columns:minmax(280px,1fr) minmax(230px,.78fr);gap:20px}
.zoom-chart-block .pie-svg{max-width:500px!important}
.zoom-chart-block .pie-legend{max-height:330px;padding-right:4px}
.zoom-detail-head{padding:22px;background:linear-gradient(180deg,#f8fbfe,#f1f6fb);border:1px solid #d6e1ec;border-radius:16px;box-shadow:0 4px 14px rgba(20,45,75,.05);justify-content:flex-start}
.zoom-detail-head .eyebrow{display:block;margin-bottom:5px}
.zoom-detail-head h3{font-size:25px;line-height:1.2;margin:4px 0 8px;color:#102c58}
.zoom-detail-head p.hint{margin:0;line-height:1.5;max-width:620px}
.zoom-detail-kpis{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;justify-content:initial}
.zoom-detail-kpis span{min-width:0;box-sizing:border-box;padding:13px 15px;background:#fff;border:1px solid #d7e2ee;border-radius:12px;box-shadow:0 2px 7px rgba(20,45,75,.04);white-space:normal;color:#61738a;font-size:11px;line-height:1.25}
.zoom-detail-kpis b{font-size:18px;line-height:1.25;margin-top:5px;overflow-wrap:anywhere;color:#102c58}
.zoom-table-title{margin-top:8px;padding:14px 5px 10px;border-bottom:1px solid #dfe7ef}
.zoom-table-title strong{font-size:15px;color:#17365f}
.zoom-table-title span{font-size:11px}
.zoom-detail-table{max-height:45vh;border:1px solid #d9e3ee;border-radius:12px;overflow:auto;background:#fff}
.zoom-detail-table table{min-width:1060px;border-collapse:separate;border-spacing:0}
.zoom-detail-table th{padding:11px 10px;font-size:11px;letter-spacing:.02em;background:#edf4fa}
.zoom-detail-table td{padding:10px;font-size:11px;vertical-align:middle}
.zoom-detail-table tbody tr:nth-child(even){background:#fafcff}
.zoom-detail-table tbody tr:hover{background:#f1f7fc}
@media(max-width:1050px){.zoom-top{grid-template-columns:1fr}.zoom-chart-block{min-height:330px}.zoom-detail-head{min-height:0}}
@media(max-width:700px){.chart-zoom-panel{width:98vw}.chart-zoom-content{padding:12px 8px 20px}.zoom-detail-kpis{grid-template-columns:1fr}.zoom-detail-head h3{font-size:21px}.zoom-chart-block .pie-wrap{grid-template-columns:1fr}.zoom-chart-block .pie-legend{max-height:none}}

/* V30.16.3 · detalle financiero: jerarquía y distribución mejoradas */
.zoom-top{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(360px,1.05fr);gap:20px;align-items:stretch;margin-bottom:20px}.zoom-chart-block{min-width:0;padding:18px;border:1px solid #dbe4ee;border-radius:16px;background:#fbfdff;display:flex;align-items:center;justify-content:center;min-height:340px}.zoom-detail-head{min-width:0;box-sizing:border-box;padding:22px;border:1px solid #d6e1ec;border-radius:16px;background:linear-gradient(180deg,#f8fbfe,#f1f6fb);display:flex;flex-direction:column;justify-content:flex-start;gap:0}.zoom-selection{min-width:0}.zoom-selection h3{overflow-wrap:anywhere;word-break:break-word}.zoom-selection .hint{max-width:none}.zoom-detail-kpis{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.zoom-detail-kpis span{min-width:0;min-height:70px;box-sizing:border-box;padding:13px 15px;background:#fff;border:1px solid #d7e2ee;border-radius:12px;display:flex;flex-direction:column;justify-content:center;gap:5px;white-space:normal;overflow:hidden}.zoom-detail-kpis span::first-line{white-space:normal}.zoom-detail-kpis b{display:block;overflow-wrap:anywhere;word-break:break-word;font-size:18px;line-height:1.2;margin:0}.zoom-table-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:12px 4px 10px}.zoom-table-title strong{font-size:14px;color:#102c58}.zoom-table-title span{font-size:11px;color:#77879b;text-align:right;max-width:320px;line-height:1.35}.zoom-detail-table{max-height:45vh;border:1px solid #d9e3ee;border-radius:12px;overflow:auto;background:#fff}.zoom-detail-table table{min-width:1060px;border-collapse:separate;border-spacing:0}.zoom-detail-table th{position:sticky;top:0;z-index:2;background:#edf4fa}.zoom-detail-table td{vertical-align:middle}.zoom-detail-table tbody tr:nth-child(even){background:#fafcff}
@media(max-width:1050px){.zoom-top{grid-template-columns:1fr}.zoom-chart-block{min-height:300px}.zoom-detail-head{padding:20px}.zoom-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.zoom-detail-kpis{grid-template-columns:1fr}.zoom-table-title{grid-template-columns:1fr;align-items:start}.zoom-table-title span{text-align:left;max-width:none}.zoom-chart-block{padding:12px}.zoom-detail-head{padding:17px}}

/* V30.16.4 - corrección de interacción tras cambiar periodo y distribución final */
.zoom-detail-head{gap:16px!important}
.zoom-selection{display:flex;flex-direction:column;gap:4px}
.zoom-detail-kpis{grid-template-columns:repeat(2,minmax(150px,1fr))!important;align-items:stretch}
.zoom-detail-kpis span{min-height:68px;justify-content:center}
.zoom-detail-kpis b{font-variant-numeric:tabular-nums}
@media(max-width:700px){.zoom-detail-kpis{grid-template-columns:1fr!important}}

/* V30.16.6 - ajuste final de alineación en cuadro destacado */
.zoom-chart-block{display:block!important;padding:20px 22px!important;min-height:360px!important;overflow:hidden}
.zoom-chart-block .pie-summary{width:100%;display:flex;align-items:flex-start;justify-content:flex-start;gap:18px;padding:0 0 14px;margin:0 0 12px;border-bottom:1px solid #e4eaf1;text-align:left}
.zoom-chart-block .pie-summary>div{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.zoom-chart-block .pie-summary .summary-label{margin:0 0 4px;text-align:left}
.zoom-chart-block .pie-summary strong{font-size:24px;line-height:1.15;text-align:left}
.zoom-chart-block .pie-summary .summary-note{margin-left:auto;padding-top:3px;text-align:right}
.zoom-chart-block .pie-wrap{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(240px,.78fr)!important;gap:22px!important;align-items:center!important;width:100%}
.zoom-chart-block .pie-wrap>div:first-child{min-width:0;display:flex;justify-content:center;align-items:center}
.zoom-chart-block .pie-svg{display:block;width:100%!important;max-width:470px!important;height:auto!important;margin:0 auto}
.zoom-chart-block .pie-legend{width:100%;max-height:300px!important;overflow:auto;padding:4px 6px 4px 0;display:flex;flex-direction:column;gap:7px}
.zoom-chart-block .legend-row{width:100%;min-height:34px;display:grid;grid-template-columns:10px minmax(0,1fr) minmax(95px,auto) minmax(52px,auto);gap:9px;align-items:center;padding:7px 9px;border:1px solid transparent;border-radius:9px;box-sizing:border-box}
.zoom-chart-block .legend-row span{min-width:0;overflow-wrap:anywhere;line-height:1.25;text-align:left}
.zoom-chart-block .legend-row .legend-total{text-align:right;white-space:nowrap}
.zoom-chart-block .legend-row b{text-align:right;white-space:nowrap}
.zoom-chart-block .legend-row.is-active{background:#f1f6fb;border-color:#d6e2ef}
.zoom-detail-head{overflow:hidden}
.zoom-detail-kpis{width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
.zoom-detail-kpis span{min-width:0!important;overflow:hidden!important}
@media(max-width:900px){.zoom-chart-block .pie-wrap{grid-template-columns:minmax(260px,1fr) minmax(210px,.8fr)!important;gap:14px!important}.zoom-chart-block{padding:18px!important}}
@media(max-width:700px){.zoom-chart-block .pie-wrap{grid-template-columns:1fr!important}.zoom-chart-block .pie-legend{max-height:none!important}.zoom-chart-block .pie-summary .summary-note{margin-left:0;text-align:left}.zoom-detail-kpis{grid-template-columns:1fr!important}}

/* V30.20.0 dashboard simplification */
.executive-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.card .metric-change{display:block;margin-top:8px;font-size:11px;font-weight:700;color:#718097}.card .metric-change.positive{color:#527c70}.card .metric-change.negative{color:#9a6f6f}.card .metric-change.neutral{color:#8997a8}.period-scope{margin:10px 0 0;color:#718097;font-size:11px;line-height:1.5}.sales-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.inventory-stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:980px){.executive-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:620px){.executive-cards,.sales-summary-cards,.inventory-stats{grid-template-columns:1fr 1fr}}

/* V30.20.4 - sortable table headers */
.sortable-th{white-space:nowrap}.table-sort-button{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.table-sort-button:hover,.table-sort-button:focus-visible{color:#245ca8}.table-sort-button:focus-visible{outline:2px solid #7da8e8;outline-offset:3px;border-radius:3px}.table-sort-indicator{min-width:10px;color:#7c8da5;font-size:11px}.sortable-th[aria-sort="ascending"] .table-sort-indicator,.sortable-th[aria-sort="descending"] .table-sort-indicator{color:#245ca8}