*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f3f6fa;color:#172033}.top{min-height:68px;background:#102a43;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 24px}.top strong{display:block;font-size:18px}.top span{font-size:12px;opacity:.82}.userbox{text-align:right}.userbox b,.userbox span{display:block}.app{display:flex;min-height:calc(100vh - 68px)}.sidebar{width:245px;background:#183b56;padding:14px 12px}.sidebar a{display:block;color:#e8f1f8;text-decoration:none;padding:9px 10px;border-radius:7px;margin-bottom:3px;font-size:14px}.sidebar a:hover{background:#24577c}.nav-title{font-size:10px;color:#91b2c9;padding:13px 10px 5px;letter-spacing:1px}.content{flex:1;padding:24px;min-width:0}.content h1{margin-top:0}.container{max-width:760px;margin:60px auto}.grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px}.card{background:#fff;border-radius:10px;padding:18px;box-shadow:0 2px 12px #00000010;margin-bottom:18px}.kpi{position:relative}.kpi small{display:block;color:#65758b}.kpi b{font-size:26px;display:block;margin-top:8px}.filters,.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filters label,.form-grid label,.card label{font-size:12px;color:#566}.filters input,.filters select,.form-grid input,.form-grid select,.card input[type=file],.card select{display:block;width:100%;padding:9px;border:1px solid #ccd5df;border-radius:6px;margin-top:4px;background:#fff}.btn{display:inline-block;background:#0b6fa4;color:#fff;border:0;border-radius:6px;padding:10px 15px;text-decoration:none;cursor:pointer;font-size:14px}.btn.secondary{background:#60758a}.btn.small{padding:6px 9px;font-size:12px}.btn.full{width:100%}.success{background:#e7f7ed;color:#176b35;padding:12px;border-radius:7px}.error{background:#feeceb;color:#a12622;padding:12px;border-radius:7px}.muted{color:#6a7787}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:10px;border-bottom:1px solid #e8edf2;text-align:left;font-size:13px;white-space:nowrap}th{background:#eef4f8;color:#28465e;position:sticky;top:0}.charts{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.chartbox{background:#fff;padding:18px;border-radius:10px;min-height:330px}.badge,.status{padding:4px 8px;border-radius:99px;font-size:12px;display:inline-block}.status.ok{background:#e4f6ea;color:#176b35}.status.warn{background:#fff4d6;color:#8a6100}.status.bad{background:#feeceb;color:#a12622}.semaforo{position:absolute;width:12px;height:12px;border-radius:50%;right:18px;top:18px}.semaforo.verde{background:#31a354}.semaforo.amarillo{background:#f1b82d}.semaforo.rojo{background:#d64545}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}.detail{white-space:pre-wrap;max-width:360px;font:11px Arial;margin:0}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#102a43}.login-card{width:390px;background:white;padding:30px;border-radius:14px;box-shadow:0 10px 35px #0004}.login-card h1{margin:0 0 5px}.login-card label{display:block;margin:14px 0;font-size:13px}.login-card input{display:block;width:100%;padding:11px;border:1px solid #ccd5df;border-radius:7px;margin-top:5px}.login-card small{display:block;margin-top:18px;color:#758395}@media(max-width:1050px){.grid{grid-template-columns:repeat(2,1fr)}.charts{grid-template-columns:1fr}.sidebar{width:205px}.form-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.sidebar{display:none}.grid,.form-grid{grid-template-columns:1fr}.content{padding:12px}.top{padding:10px 14px}.userbox{display:none}}
.chartbox h3,.card h3{margin-top:0}.chartbox canvas{width:100%!important;height:280px!important}
/* Dashboard Comercial V2.3 */
.filter-card{border:1px solid #e5ebf1;box-shadow:none}.filter-search{min-width:300px;flex:1}.executive-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:14px;margin-bottom:18px}.exec-kpi{margin-bottom:0;border:1px solid #e7edf3;box-shadow:0 5px 18px rgba(20,52,77,.06);min-height:132px}.exec-kpi .kpi-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#718096;font-weight:700}.exec-kpi b{display:block;font-size:25px;line-height:1.2;margin:12px 0 7px;color:#17324d}.exec-kpi small{color:#748396}.exec-kpi.positive{border-left:4px solid #1f9d62}.exec-kpi.danger{border-left:4px solid #d64545}.chartbox{border:1px solid #e7edf3;box-shadow:0 5px 18px rgba(20,52,77,.06)}.chart-wide{margin-bottom:18px}.chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.chart-head h3{margin:0;color:#1f3b53;font-size:16px}.chart-head p{margin:5px 0 0;color:#8190a1;font-size:12px}.chart-pill{background:#eef5f9;color:#4f6f86;padding:6px 10px;border-radius:20px;font-size:11px;white-space:nowrap}.canvas-lg{height:340px}.canvas-rank{height:350px}.canvas-donut{height:350px;max-width:460px;margin:auto}.cancel-rank{height:380px}.executive-charts{align-items:stretch}.executive-charts .chartbox{min-height:425px}.executive-charts canvas,.chart-wide canvas{width:100%!important;height:100%!important}.card table tbody tr:hover{background:#f8fbfd}
@media(max-width:1200px){.executive-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.executive-grid{grid-template-columns:1fr}.filter-search{min-width:100%}.canvas-lg{height:300px}.canvas-rank,.canvas-donut{height:320px}.chart-head{display:block}.chart-pill{display:inline-block;margin-top:8px}}

/* Ventas integradas V2.8 */
.sales-toolbar{margin-bottom:14px}.canvas-annual{height:360px}.year-filter{display:flex;gap:10px;align-items:end}.year-filter label{font-size:12px;color:#566}.year-filter select{display:block;padding:8px;border:1px solid #ccd5df;border-radius:6px;margin-top:4px;background:#fff}@media(max-width:720px){.canvas-annual{height:300px}.year-filter{margin-top:10px}}
