:root,[data-theme=dark]{--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-display: "Space Grotesk", "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--brand: #F60100;--brand-strong: #ff2a24;--brand-ink: #fff;--brand-bg: rgba(246,1,0,.13);--bg: #0b0b0f;--surface: #141419;--surface-2: #1c1c23;--surface-3: #26262f;--border: #2a2a33;--border-strong: #3b3b47;--text: #f4f4f6;--text-2: #a4a4b0;--text-3: #6d6d79;--ok: #1fbf6b;--ok-bg: rgba(31,191,107,.15);--warn: #f5a623;--warn-bg: rgba(245,166,35,.15);--info: #4b8dff;--info-bg: rgba(75,141,255,.15);--crit: #ff453c;--crit-bg: rgba(255,69,60,.15);--shadow: 0 1px 2px rgba(0,0,0,.5), 0 12px 32px -8px rgba(0,0,0,.55);--ring: rgba(246,1,0,.45)}[data-theme=light]{--brand: #F60100;--brand-strong: #d40b0b;--brand-ink: #fff;--brand-bg: #fdeaea;--bg: #f5f5f8;--surface: #ffffff;--surface-2: #f4f4f7;--surface-3: #ececf1;--border: #e7e7ee;--border-strong: #d6d6e0;--text: #14141b;--text-2: #5b5b69;--text-3: #9090a0;--ok: #0f9d58;--ok-bg: #e6f6ee;--warn: #c9820a;--warn-bg: #fdf1dd;--info: #2a6fdb;--info-bg: #e8f0fe;--crit: #e00b0b;--crit-bg: #fdeaea;--shadow: 0 1px 2px rgba(20,20,45,.06), 0 10px 28px -8px rgba(20,20,45,.14);--ring: rgba(246,1,0,.28)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-strong)}::selection{background:#f6010047;color:#fff}svg.ic{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:9px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:padding-box}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.dim{color:var(--text-3)}@keyframes fbspin{to{transform:rotate(360deg)}}@keyframes fbfade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fbpulse{0%{transform:scale(.9);opacity:.5}70%,to{transform:scale(1.9);opacity:0}}.spin{animation:fbspin 1s linear infinite}.login-wrap{display:flex;min-height:100vh;background:var(--bg)}.login-brand{position:relative;flex:1;overflow:hidden;min-width:0;padding:56px 60px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(1200px 600px at 12% -10%,rgba(246,1,0,.22),transparent 55%),#0b0b0f;color:#fff}.login-rings{position:absolute;right:-80px;bottom:-80px;width:520px;height:520px;opacity:.5}.login-form-side{flex:none;width:min(50%,560px);display:flex;align-items:center;justify-content:center;padding:40px;background:var(--surface);border-left:1px solid var(--border)}.login-card{width:100%;max-width:380px}.brand-row{position:relative;display:flex;align-items:center;gap:13px}.brand-badge{width:40px;height:40px;flex:none;border-radius:11px;background:var(--brand);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px -2px var(--ring)}.feat-icon{width:38px;height:38px;flex:none;border-radius:10px;background:#f601001f;color:var(--brand);display:flex;align-items:center;justify-content:center}.field{position:relative}.field>svg.ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-3)}.input{width:100%;height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:400 14px var(--font-sans);outline:none;transition:border-color .12s,box-shadow .12s}.field .input{padding-left:40px}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.lbl{display:block;font-size:12.5px;font-weight:500;color:var(--text-2);margin-bottom:7px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border-radius:9px;border:1px solid transparent;font:600 13px var(--font-sans);height:38px;padding:0 15px;transition:background .12s,border-color .12s,opacity .12s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 6px 18px -6px var(--ring)}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-outline{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-lg{height:46px;border-radius:10px;font-size:14px;width:100%}.iconbtn{width:36px;height:36px;flex:none;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center}.iconbtn:hover{color:var(--text);border-color:var(--border-strong)}.app{display:flex;height:100vh;overflow:hidden;background:var(--bg);color:var(--text)}.sidebar{flex:none;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);transition:width .18s ease;overflow:hidden}.side-head{height:60px;flex:none;display:flex;align-items:center;gap:11px;padding:0 16px;border-bottom:1px solid var(--border)}.side-logo{width:32px;height:32px;flex:none;border-radius:9px;background:var(--brand);display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px -2px var(--ring)}.side-nav{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:3px}.nav-group{font:600 10px var(--font-mono);letter-spacing:1.5px;color:var(--text-3);padding:8px 10px 6px}.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:9px 11px;border-radius:9px;border:0;cursor:pointer;width:100%;text-align:left;font:500 13.5px var(--font-sans);background:transparent;color:var(--text-2);transition:background .12s;white-space:nowrap}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--brand-bg);color:var(--brand);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--brand)}.nav-item .lbl-txt{flex:1;overflow:hidden}.nav-badge{flex:none;font:600 11px var(--font-mono);color:var(--crit);background:var(--crit-bg);padding:1px 7px;border-radius:20px}.side-foot{flex:none;padding:12px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;flex:none;border-radius:50%;background:var(--surface-3);display:flex;align-items:center;justify-content:center;font:600 12px var(--font-sans);color:var(--text-2)}.topbar{height:60px;flex:none;display:flex;align-items:center;gap:14px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface)}.tenant-btn{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 8px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:default}.tenant-badge{width:26px;height:26px;border-radius:7px;background:var(--brand);display:flex;align-items:center;justify-content:center;font:700 12px var(--font-display);color:#fff}.search{position:relative;width:min(320px,32vw)}.search>svg.ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-3)}.search input{width:100%;height:36px;padding:0 12px 0 34px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:400 13px var(--font-sans);outline:none}.search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}.seg{display:flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--surface-2)}.seg button{padding:0 11px;height:36px;border:0;cursor:pointer;font:600 12px var(--font-sans);background:transparent;color:var(--text-2)}.seg button.on{background:var(--brand);color:#fff}.content{flex:1;overflow-y:auto}.wrap{padding:26px 34px 60px;max-width:none;margin:0;animation:fbfade .18s ease}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.pagehead h1{font:600 24px/1.1 var(--font-display);letter-spacing:-.6px;margin:0}.pagehead .sub{margin:7px 0 0;color:var(--text-2);font-size:13.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:18px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 17px}.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.kpi-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}.kpi-val{font:600 27px/1 var(--font-display);letter-spacing:-.5px}.kpi-val .u{font:500 12px var(--font-mono);color:var(--text-3);margin-left:5px}.kpi-lbl{margin-top:8px;font-size:12.5px;color:var(--text-2)}.card-title{font:600 15px var(--font-display)}.grid-2{display:grid;grid-template-columns:1.9fr 1fr;gap:18px;align-items:start}@media(max-width:980px){.grid-2{grid-template-columns:1fr}}.table-card{overflow:hidden}.tbl-scroll{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse}table.tbl thead th{text-align:left;font:600 11px var(--font-mono);letter-spacing:.4px;text-transform:uppercase;color:var(--text-3);padding:12px 16px;border-bottom:1px solid var(--border);white-space:nowrap}table.tbl tbody td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13.5px}table.tbl tbody tr:last-child td{border-bottom:0}table.tbl tbody tr.click{cursor:pointer;transition:background .1s}table.tbl tbody tr.click:hover{background:var(--surface-2)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font:600 12px var(--font-sans)}.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-warn{background:var(--warn-bg);color:var(--warn)}.pill-crit{background:var(--crit-bg);color:var(--crit)}.pill-info{background:var(--info-bg);color:var(--info)}.pill-muted{background:var(--surface-3);color:var(--text-2)}.sig-good{color:var(--ok)}.sig-warning{color:var(--warn)}.sig-critical{color:var(--crit)}.sig-unknown{color:var(--text-3)}.opt-bar{position:relative;height:10px;border-radius:6px;margin:14px 0 8px;background:linear-gradient(90deg,var(--crit) 0%,var(--warn) 32%,var(--ok) 60%,var(--ok) 100%)}.opt-marker{position:absolute;top:50%;width:3px;height:20px;border-radius:2px;background:var(--text);transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--surface)}.metric-mini{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.metric-mini .mv{font:600 19px var(--font-display)}.metric-mini .ml{font-size:11.5px;color:var(--text-3);margin-top:3px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px;flex-wrap:wrap}.tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-2);font:500 13.5px var(--font-sans);padding:10px 13px;cursor:pointer;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.chips{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text-2);font:500 13px var(--font-sans);padding:7px 13px;border-radius:9px;cursor:pointer}.chip:hover{color:var(--text)}.chip.on{border-color:var(--brand);color:var(--brand);background:var(--brand-bg)}.mini{font:600 12px var(--font-sans);padding:5px 11px;border-radius:7px;border:0;cursor:pointer}.mini.ok{background:var(--ok-bg);color:var(--ok)}.mini.no{background:var(--crit-bg);color:var(--crit)}.error-box{background:var(--crit-bg);border:1px solid var(--crit);color:var(--crit);padding:9px 12px;border-radius:9px;font-size:13px}.empty{text-align:center;padding:60px 20px;color:var(--text-3)}.empty svg.ic{width:40px;height:40px;margin-bottom:14px;color:var(--border-strong)}@keyframes shimmer{0%{background-position:-220px 0}to{background-position:220px 0}}.skel{display:inline-block;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:440px 100%;animation:shimmer 1.25s ease-in-out infinite}.skel-num{width:48px;height:28px;vertical-align:middle}.skel-line{height:13px;border-radius:5px}.center{min-height:100%;display:flex;align-items:center;justify-content:center}
