*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#0f172a;background:#f1f5f9;font-family:DM Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit}.app{color:#0f172a;background:#f1f5f9;flex-direction:column;min-height:100vh;display:flex}.header{color:#f8fafc;background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 55%,#0f766e 140%);box-shadow:0 8px 24px #0f172a2e}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:1200px;margin:0 auto;padding:1.25rem 1.5rem;display:flex}.brand{align-items:center;gap:.9rem;display:flex}.brand-mark{letter-spacing:.04em;background:#ffffff1f;border:1px solid #fff3;border-radius:12px;place-items:center;width:44px;height:44px;font-size:.85rem;font-weight:700;display:grid}.brand h1{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:700}.tagline{opacity:.85;margin:.15rem 0 0;font-size:.85rem}.main{flex-direction:column;flex:1;gap:1rem;width:100%;max-width:1200px;margin:0 auto;padding:1.25rem 1.5rem 2rem;display:flex}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:1rem 1.15rem;box-shadow:0 1px 2px #0f172a0a}.search-panel{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.meta{color:#64748b;flex-direction:column;align-items:flex-end;gap:.15rem;font-size:.9rem;display:flex}.meta strong{color:#0f172a;font-size:1.05rem}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.section-head h2{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:600}.state{text-align:center;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:2rem}.state.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.search{flex:1;min-width:min(420px,100%);position:relative}.search label,.filter-field label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.search-input-wrap{position:relative}.search-icon{color:#94a3b8;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.search input[type=search]{width:100%;font:inherit;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:.65rem .85rem .65rem 2.35rem;transition:border-color .15s,box-shadow .15s}.search input[type=search]:focus,.filter-field select:focus,.filter-field input:focus{background:#fff;border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.search-dropdown{z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:10px;max-height:260px;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 12px 28px #0f172a1f}.search-dropdown button{text-align:left;width:100%;font:inherit;cursor:pointer;color:#0f172a;background:0 0;border:0;border-radius:8px;padding:.55rem .7rem}.search-dropdown button:hover,.search-dropdown button.active{color:#1d4ed8;background:#eff6ff}.filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:.75rem .9rem;display:grid}.filter-field select,.filter-field input[type=date]{width:100%;font:inherit;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:.55rem .65rem}.filter-actions{align-items:end;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:9px;padding:.55rem .95rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{color:#0f172a;background:#f8fafc;border-color:#ffffff59}.btn.primary:hover:not(:disabled){background:#fff}.btn.ghost{color:#334155;background:#f1f5f9;border-color:#e2e8f0;width:100%}.btn.ghost:hover{background:#e2e8f0}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.kpi-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.85rem 1rem}.kpi-card.highlight{background:linear-gradient(160deg,#eff6ff,#f0fdfa);border-color:#bfdbfe}.kpi-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:.72rem;font-weight:700}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:.35rem;font-size:1.35rem;font-weight:700}.kpi-sub{color:#64748b;margin-top:.2rem;font-size:.8rem}.kpi-deltas{flex-direction:column;gap:.35rem;margin-top:.45rem;display:flex}.kpi-delta{justify-content:space-between;gap:.5rem;font-size:.85rem;display:flex}.kpi-delta-label{color:#64748b}.kpi-delta-value{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem;font-weight:700}.kpi-delta-value.up{color:#b91c1c}.kpi-delta-value.down{color:#047857}.kpi-delta-value.flat{color:#64748b}.chart-wrap{width:100%}.chart-banner{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:.65rem;padding:.55rem .75rem;font-size:.82rem}.chart-empty,.table-empty{text-align:center;color:#94a3b8;padding:2rem 1rem;font-size:.95rem}.table-wrap{border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}thead th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.7rem .75rem;font-size:.72rem;font-weight:700}tbody td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:.65rem .75rem}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:0}th.num,td.num{text-align:right;white-space:nowrap}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.82rem;font-weight:500}.supplier-cell,.payment-cell{white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.badge{color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:.15rem .45rem;font-size:.75rem;font-weight:700;display:inline-block}.conf{text-transform:lowercase;border-radius:999px;padding:.15rem .45rem;font-size:.75rem;font-weight:700;display:inline-block}.conf-alta{color:#047857;background:#ecfdf5}.conf-media{color:#b45309;background:#fffbeb}.conf-baja{color:#b91c1c;background:#fef2f2}.footer{text-align:center;background:#fff;border-top:1px solid #e2e8f0;padding:1rem 1.5rem}.footer p{margin:0;color:#64748b;max-width:1200px;margin-inline:auto;font-size:.82rem}@media (width<=720px){.meta{align-items:flex-start;width:100%}.supplier-cell,.payment-cell{max-width:140px}}
