*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,-apple-system,Arial,sans-serif;background:#f1f5f9;color:#0f172a}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;padding:0;position:fixed;height:100vh;left:0;top:0}.sidebar-logo{padding:22px 20px;font-size:16px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);letter-spacing:.3px}.sidebar-logo span{color:#60a5fa}.nav{padding:12px 10px;flex:1}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:500;color:#cbd5e1;margin-bottom:3px;transition:all .15s;border:none;background:transparent;width:100%;text-align:left}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:#2563eb;color:#fff}.nav-item .ico{font-size:16px}.main{margin-left:240px;flex:1;padding:22px 28px;min-width:0;overflow-x:hidden}.page-title{font-size:22px;font-weight:700;color:#0f172a;margin-bottom:14px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.filter-group select{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff;color:#0f172a;cursor:pointer;min-width:130px}.btn{padding:9px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-ghost{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.btn-ghost:hover{background:#e2e8f0}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.kpi{background:#fff;border-radius:12px;padding:16px;border:1px solid #e2e8f0}.kpi .ico{font-size:18px;margin-bottom:4px}.kpi .label{font-size:10px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.6px}.kpi .value{font-size:24px;font-weight:700;color:#0f172a;line-height:1.3}.kpi .sub{font-size:11px;color:#94a3b8;margin-top:2px}.table-wrap{background:#fff;border-radius:12px;border:1px solid #e2e8f0;overflow:hidden;overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:12px}thead th{background:#334155;color:#f1f5f9;padding:11px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;text-align:center;position:sticky;top:0;border-right:1px solid #475569}thead th:last-child{border-right:none}tbody td{padding:9px 8px;text-align:center;font-size:12px;color:#374151;border-bottom:1px solid #eef2f7;border-right:1px solid #f1f5f9}tbody td:last-child{border-right:none}tbody tr:nth-child(2n){background:#f8fafc}tbody tr:hover td{background:#eff6ff}tr.total-row td{background:#eff6ff!important;font-weight:700;color:#1e40af}.col-name{text-align:left!important;font-weight:500;color:#111827}.pbar{display:flex;align-items:center;gap:6px}.pbar .pct{font-size:11px;font-weight:700;min-width:42px;text-align:right}.pbar .track{flex:1;background:#e2e8f0;border-radius:5px;height:6px;overflow:hidden;min-width:50px}.pbar .fill{height:100%;border-radius:5px}.loader-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px}.spinner{width:44px;height:44px;border:4px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-text{margin-top:14px;font-size:13px;color:#64748b}.error-box{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:16px;border-radius:10px;font-size:13px}.cob-table td.cart-ant{background:#fef3c7}.cob-table td.cart-mes{background:#d1fae5}.cob-table td.cart-tot{background:#ede9fe}.cob-table tbody tr:hover td.cart-ant{background:#fde68a!important}.cob-table tbody tr:hover td.cart-mes{background:#a7f3d0!important}.cob-table tbody tr:hover td.cart-tot{background:#ddd6fe!important}.cob-table tbody tr.row-deuda td{background:#fee2e2!important}.cob-table tbody tr.row-deuda:hover td{background:#fecaca!important}.cob-table tbody tr:hover td:not(.cart-ant):not(.cart-mes):not(.cart-tot){background:#f1f5f9}tbody tr.row-inicio td{background:#fecaca!important;color:#7f1d1d;font-weight:600}tbody tr.row-inicio:hover td{background:#fca5a5!important}.col-resizer{transition:background .15s}.col-resizer:hover{background:#93c5fd}
