:root{--font-ui: "Instrument Sans", system-ui, -apple-system, sans-serif;--font-mono: "Spline Sans Mono", ui-monospace, SFMono-Regular, monospace;--sidebar: #0e1622;--sidebar-2: #16202d;--sidebar-line: #22303f;--sidebar-text: #cdd6e0;--sidebar-muted: #7d8a99;--bg: #f6f7f9;--card: #ffffff;--border: #e7eaef;--border-strong: #d7dce3;--text: #16202e;--muted: #667487;--muted-2: #8a95a5;--accent: #2563d6;--accent-ink: #1a4aa8;--accent-weak: #ecf2fd;--positive: #157a4f;--positive-weak: #e8f6ee;--warning: #b26a12;--warning-weak: #fbf0e2;--danger: #c23b2e;--danger-weak: #fcecea;--chart-rev: #2563d6;--chart-cost: #9aa6b6;--radius-card: 14px;--radius-btn: 9px;--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 2px 6px rgba(16, 24, 40, .04);--shadow-pop: 0 6px 24px rgba(16, 24, 40, .12), 0 2px 6px rgba(16, 24, 40, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-ui);background:var(--bg);color:var(--text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);background:var(--card);color:var(--text);padding:8px 14px;border-radius:var(--radius-btn);font-weight:500;font-size:13px;line-height:1;min-height:36px;transition:background .12s,border-color .12s,box-shadow .12s,transform .02s}.btn:hover{background:#f1f4f8}.btn:active{transform:translateY(.5px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-weak),0 0 0 1px var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-ink)}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{background:#eef1f5;color:var(--text)}.btn.ok{color:var(--positive);border-color:transparent;background:var(--positive-weak);font-weight:600}.btn.sm{padding:6px 10px;min-height:30px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:default}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:22px}.card.tight{padding:16px}.section-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0}.page-title{font-size:27px;font-weight:600;letter-spacing:-.01em;margin:0}.sub{color:var(--muted);font-size:13px}.chip{border:1px solid var(--border-strong);background:var(--card);color:var(--text);padding:7px 13px;border-radius:999px;font-size:12.5px;transition:border-color .12s,color .12s,background .12s}.chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-weak)}.chip.on{border-color:var(--accent);color:#fff;background:var(--accent)}.chip:disabled{opacity:.55;cursor:default}.tone-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.linkbtn{background:transparent;border:0;padding:0;cursor:pointer;color:var(--accent-ink);font:inherit}.linkbtn:hover{text-decoration:underline}.menu-pop{position:absolute;top:calc(100% + 6px);right:0;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);min-width:220px;padding:6px;z-index:40}.menu-head{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px}.badge{font-size:10.5px;padding:3px 9px;border-radius:999px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge.subscribed{background:var(--accent-weak);color:var(--accent-ink)}.badge.breach{background:var(--warning-weak);color:var(--warning)}.badge.muted{background:#eef1f5;color:var(--muted)}.pos{color:var(--positive)}.neg{color:var(--danger)}.warn{color:var(--warning)}.app{display:grid;grid-template-columns:248px 1fr;height:100vh;overflow:hidden}.sidebar{background:linear-gradient(180deg,var(--sidebar) 0%,#0b111b 100%);color:var(--sidebar-text);display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid var(--sidebar-line)}.brand{padding:18px 18px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--sidebar-line)}.brand .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#3b82f6,#1e40af);display:grid;place-items:center;color:#fff;font-weight:700}.brand b{font-size:15px;color:#fff}.brand small{display:block;color:var(--sidebar-muted);font-size:11px}.nav-group{padding:14px 10px 4px}.nav-group h4{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--sidebar-muted);margin:0 0 6px 8px}.nav-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:transparent;border:0;color:var(--sidebar-text);padding:8px 10px;border-radius:8px;font-size:13.5px;cursor:pointer}.nav-item:hover{background:var(--sidebar-2)}.nav-item.active{background:var(--sidebar-2);color:#fff;box-shadow:inset 2px 0 0 var(--accent)}.nav-item .marker{margin-left:auto;font-size:10.5px;color:var(--sidebar-muted)}.nav-item .marker.on{width:7px;height:7px;border-radius:50%;background:#34d399}.sidebar-foot{margin-top:auto;padding:14px;border-top:1px solid var(--sidebar-line);font-size:12.5px}.sidebar-foot .advisor{background:var(--sidebar-2);border-radius:10px;padding:12px}.sidebar-foot .advisor b{color:#fff}.menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:transparent;border:0;color:var(--text);padding:9px 10px;border-radius:8px;font-size:13.5px;cursor:pointer}.menu-item:hover{background:var(--accent-weak)}.menu-item:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}.menu-item .sub{color:var(--muted)}.menu-item:hover .sub{color:var(--accent-ink)}.main{overflow-y:auto;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:#f6f7f9d9;-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:10px 26px}.topbar .spacer{flex:1}.entity-switch{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border-strong);border-radius:10px;padding:7px 12px;cursor:pointer}.entity-switch .fy{color:var(--muted);font-size:12px}.iconbtn{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);display:grid;place-items:center;cursor:pointer}.iconbtn:hover{background:#f1f4f8}.iconbtn .count{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;border-radius:999px;display:grid;place-items:center;padding:0 4px}.user-chip{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 6px;border:1px solid var(--border-strong);border-radius:999px;background:var(--card)}.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#2563d6);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.content{padding:26px;max-width:1140px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.sync{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px}.sync .live{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px var(--positive-weak)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stack{display:flex;flex-direction:column;gap:16px}@media(max-width:1000px){.kpi-row{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{grid-template-columns:1fr}.app{grid-template-columns:64px 1fr}}.kpi .label{font-size:12.5px;color:var(--muted);font-weight:500}.kpi .value{font-size:31px;font-weight:600;margin:6px 0 4px;letter-spacing:-.02em}.kpi .delta{font-size:12.5px;font-weight:600;display:inline-flex;gap:5px;align-items:center}.kpi .note{color:var(--muted-2);font-size:12px;margin-top:2px}.row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--border)}.row:first-of-type{border-top:0}.row .grow{flex:1;min-width:0}.row .title{font-weight:500}.row .amount{font-weight:600}.count-pill{background:var(--accent-weak);color:var(--accent-ink);font-weight:700;font-size:12px;padding:2px 9px;border-radius:999px}.bars{display:flex;flex-direction:column;gap:12px}.bar-line{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:10px;font-size:13px}.bar-track{background:#eef1f5;border-radius:999px;height:10px;overflow:hidden}.bar-fill{height:100%;border-radius:999px}.alert{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--border)}.alert:first-child{border-top:0}.alert .ic{width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none}.upsell{border:1px solid var(--border);border-radius:12px;padding:16px;background:linear-gradient(180deg,#fff,#fbfcfe)}.upsell .price{font-family:var(--font-mono);font-weight:600}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-brandpanel{background:linear-gradient(160deg,#0e1622,#14294d 120%);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:center}.login-brandpanel h1{font-size:34px;line-height:1.15;letter-spacing:-.02em;max-width:460px}.login-brandpanel p{color:#aeb9c7;max-width:440px;font-size:15px}.stat-tiles{display:flex;gap:28px;margin-top:36px}.stat-tiles .st b{font-family:var(--font-mono);font-size:26px;display:block}.stat-tiles .st span{color:#93a0b1;font-size:12.5px}.login-formpanel{display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:380px}.sso-btn{width:100%;justify-content:center;margin-bottom:10px;min-height:44px;font-size:14px}.divider{display:flex;align-items:center;gap:10px;color:var(--muted-2);font-size:12px;margin:16px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--border);flex:1}.consent-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182847;z-index:50;animation:fade .15s ease}.drawer{position:fixed;top:0;right:0;height:100vh;width:424px;max-width:100vw;background:var(--card);z-index:51;display:flex;flex-direction:column;box-shadow:var(--shadow-pop);animation:slidein .18s ease}@keyframes slidein{0%{transform:translate(20px);opacity:.6}}@keyframes fade{0%{opacity:0}}.drawer-head{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.drawer-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--bg)}.msg{max-width:88%;padding:11px 13px;border-radius:13px;font-size:13.5px;line-height:1.5}.msg.assistant{background:var(--card);border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:4px}.msg.user{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.metric-grid .m{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:8px 10px}.metric-grid .m .k{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.metric-grid .m .v{font-family:var(--font-mono);font-weight:600;font-size:15px}.metric-grid button.m{text-align:left;cursor:pointer;font:inherit;transition:border-color .12s,background .12s}.metric-grid button.m:hover{border-color:var(--accent);background:var(--accent-weak)}.metric-grid button.m .k{color:var(--accent-ink)}.chips{display:flex;flex-wrap:wrap;gap:8px}.drawer-input{border-top:1px solid var(--border);padding:12px;display:flex;gap:8px}.drawer-input input{flex:1;border:1px solid var(--border-strong);border-radius:10px;padding:10px 12px;font:inherit}.drawer-input input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-weak),0 0 0 1px var(--accent)}.greeting{background:linear-gradient(180deg,var(--accent-weak),#fff);border:1px solid var(--border);border-radius:13px;padding:14px;font-size:13.5px}.disclaimer{color:var(--muted-2);font-size:11.5px;text-align:center;padding:22px}.skeleton{background:linear-gradient(90deg,#eef1f5,#f6f8fb,#eef1f5);background-size:200% 100%;animation:sh 1.2s infinite;border-radius:8px}@keyframes sh{to{background-position:-200% 0}}
