:root{--accent: #3355ff;--accent-dk: #1b2a8f;--accent2: #6d5bff;--ink: #0f172a;--grey: #64748b;--line: #e2e8f0;--bg: #f4f6fb;--card: #ffffff;--green: #16a34a;--amber: #d97706;--red: #dc2626;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.topbar{display:flex;align-items:center;gap:16px;padding:14px 24px;background:linear-gradient(90deg,var(--accent-dk),var(--accent));color:#fff;position:sticky;top:0;z-index:10}.topbar .logo{width:34px;height:34px}.topbar h1{font-size:16px;margin:0;font-weight:700}.topbar .sub{font-size:12px;opacity:.8}.topbar .spacer{flex:1}.topbar .who{font-size:12.5px;opacity:.9;text-align:right}.btn{font-family:var(--sans);font-size:12.5px;font-weight:600;cursor:pointer;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#fff;padding:8px 14px}.btn:hover{background:#fff3}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dk)}.wrap{max-width:1240px;margin:0 auto;padding:20px 24px 48px}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:1fr 1fr 1fr}.cols-2{grid-template-columns:1fr 1fr}.cols-2-1{grid-template-columns:2fr 1fr}@media (max-width: 980px){.kpis{grid-template-columns:repeat(2,1fr)}.cols-3,.cols-2,.cols-2-1{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 1px 2px #0f172a0a}.card h3{margin:0 0 14px;font-size:13px;font-weight:700;letter-spacing:.01em}.card .hint{color:var(--grey);font-size:11px;font-weight:500}.kpi .label{font-size:11.5px;color:var(--grey);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.kpi .value{font-size:26px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums}.kpi .delta{font-size:11.5px;margin-top:4px;color:var(--grey)}.kpi .value .unit{font-size:14px;color:var(--grey);font-weight:700;margin-left:3px}.section-title{font-size:12px;font-weight:700;color:var(--grey);text-transform:uppercase;letter-spacing:.05em;margin:22px 4px 10px}.barrow{display:grid;grid-template-columns:130px 1fr 52px;align-items:center;gap:10px;margin:9px 0}.barrow .bl{font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barrow .bv{font-size:13px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.bartrack{background:var(--bg);border-radius:999px;height:16px;overflow:hidden}.barfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--accent))}table{width:100%;border-collapse:collapse;font-size:12.5px}th{text-align:left;color:var(--grey);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--line)}td{padding:9px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}.mono{font-family:var(--mono);font-size:12px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}.pill.approved{background:#dcfce7;color:#15803d}.pill.held{background:#fef3c7;color:#b45309}.pill.declined{background:#fee2e2;color:#b91c1c}.pill.progress{background:#eef1fb;color:var(--accent-dk)}.trend{display:flex;align-items:flex-end;gap:2px;height:90px}.trend .bar{flex:1;background:linear-gradient(180deg,var(--accent2),var(--accent));border-radius:3px 3px 0 0;min-height:2px}.trend .bar.zero{background:var(--line)}.trend-axis{display:flex;justify-content:space-between;color:var(--grey);font-size:10.5px;margin-top:6px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.legend .item{display:flex;align-items:center;gap:6px;font-size:12px}.dot{width:10px;height:10px;border-radius:3px}.login{min-height:100%;display:grid;place-items:center;background:linear-gradient(160deg,var(--accent-dk),#070a1f)}.login .box{background:#fff;border-radius:18px;padding:28px;width:340px;box-shadow:0 20px 60px #0000004d}.login h2{margin:4px 0 2px;font-size:20px}.login p{margin:0 0 18px;color:var(--grey);font-size:13px}.login label{font-size:12px;color:var(--grey);font-weight:600}.login input{width:100%;margin:6px 0 14px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-family:var(--sans)}.login .err{color:var(--red);font-size:12.5px;margin-bottom:12px}.login .btn.primary{width:100%;padding:12px;justify-content:center}.muted{color:var(--grey);font-size:12px}.center{display:grid;place-items:center;height:60vh;color:var(--grey)}.livedot{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#ffffffb3}.livedot .d{width:8px;height:8px;border-radius:999px;background:#fff6}.livedot.on{color:#fff}.livedot.on .d{background:#4ade80;box-shadow:0 0 #4ade80b3;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #4ade8099}70%{box-shadow:0 0 0 7px #4ade8000}to{box-shadow:0 0 #4ade8000}}.flash{position:fixed;top:66px;left:50%;transform:translate(-50%);z-index:50;background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 10px 30px #0f172a4d;animation:drop .3s ease}@keyframes drop{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}
