:root{--bg:#f6f7f9;--card:#fff;--tx:#1b2330;--mut:#6b7686;--bd:#e3e7ee;--pri:#1f5eff;--ok:#16a34a;--warn:#d97706;--bad:#dc2626} *{box-sizing:border-box} body{margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx)} .login{max-width:340px;margin:12vh auto;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:28px} .login h1{font-size:18px;margin:0 0 16px} label{display:block;font-size:12px;color:var(--mut);margin:12px 0 4px} input,select{width:100%;padding:9px 10px;border:1px solid var(--bd);border-radius:8px;font:inherit;background:#fff} button{padding:9px 14px;border:0;border-radius:8px;background:var(--pri);color:#fff;font:inherit;cursor:pointer} button.sec{background:#eef1f6;color:var(--tx)} button:disabled{opacity:.6} .err{color:var(--bad);margin-top:10px;font-size:13px} .top{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--bd);flex-wrap:wrap;position:sticky;top:0;z-index:5} .top .brand{font-weight:700;margin-right:12px} .tab{background:none;color:var(--mut);padding:7px 12px} .tab.on{background:#e8efff;color:var(--pri);font-weight:600} .sp{flex:1} .bar{display:flex;gap:10px;align-items:end;padding:12px 16px;flex-wrap:wrap} .bar>div{min-width:130px} main{padding:0 16px 40px;max-width:1300px;margin:0 auto} .grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:8px 0 16px} .kpi{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px 14px} .kpi .l{font-size:12px;color:var(--mut)}.kpi .v{font-size:22px;font-weight:700;margin-top:2px} .kpi.bad .v{color:var(--bad)}.kpi.warn .v{color:var(--warn)}.kpi.ok .v{color:var(--ok)} .card{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:14px;margin-bottom:16px;overflow:auto} .card h2{font-size:15px;margin:0 0 10px} table{border-collapse:collapse;width:100%;font-size:13px} th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--bd);white-space:nowrap} th{color:var(--mut);font-weight:600;cursor:pointer;user-select:none;position:sticky;top:0;background:var(--card)} td.n,th.n{text-align:right;font-variant-numeric:tabular-nums} .pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;background:#eef1f6} .pill.bad{background:#fde8e8;color:var(--bad)}.pill.warn{background:#fff1dc;color:var(--warn)}.pill.ok{background:#e0f6e8;color:var(--ok)} .chart{display:flex;align-items:end;gap:2px;height:140px;padding-top:8px} .chart .b{flex:1;background:var(--pri);border-radius:3px 3px 0 0;min-width:2px;opacity:.85} .chart .b:hover{opacity:1} .hb{display:grid;grid-template-columns:150px 1fr 110px;gap:8px;align-items:center;margin:4px 0;font-size:13px} .hb .t{background:#eef1f6;border-radius:4px;height:14px}.hb .t i{display:block;height:100%;background:var(--pri);border-radius:4px} .mut{color:var(--mut)}.load{padding:30px;text-align:center;color:var(--mut)} 
