:root{--bg:#0b0d16;--bg-2:#10131f;--card:#ffffff09;--card-2:#ffffff0f;--border:#ffffff17;--accent:#7c6cff;--accent-2:#9d8bff;--text:#e9eaf2;--text-2:#a4a8bd;--muted:#6f7488;--good:#34d399;--warn:#f5b74e;--crit:#f4737a;--info:#5fa8f5;--radius:14px;--radius-sm:9px}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:radial-gradient(1100px 600px at 15% -10%, #7c6cff29, transparent 60%), radial-gradient(900px 500px at 100% 0%, #34d39914, transparent 55%), var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,sans-serif}h1,h3{letter-spacing:-.01em;margin:0;font-weight:650}.muted{color:var(--muted);font-size:13px}.nowrap{white-space:nowrap}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-card{background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius);flex-direction:column;gap:8px;width:100%;max-width:360px;padding:30px 28px;display:flex;box-shadow:0 24px 60px #0006}.login-card label{color:var(--text-2);margin-top:8px;font-size:12px}.login-card input{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);background:#00000040;outline:none;padding:11px 12px;font-size:14px}.login-card input:focus{border-color:var(--accent)}.brand{align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.brand span{background:linear-gradient(90deg, var(--accent-2), var(--good));color:#0000;-webkit-background-clip:text;background-clip:text}.brand-lg{font-size:24px}.alert{color:#ffb4b8;border-radius:var(--radius-sm);background:#f4737a1f;border:1px solid #f4737a59;padding:9px 12px;font-size:13px}.btn-primary{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#fff;cursor:pointer;border:none;margin-top:14px;padding:11px;font-size:14px;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:7px 12px;font-size:13px}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.app{min-height:100vh}.topbar{z-index:10;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b0d16b3;align-items:center;gap:20px;padding:14px 24px;display:flex;position:sticky;top:0}.source-select{flex:1;gap:8px;display:flex;overflow-x:auto}.chip{white-space:nowrap;background:var(--card);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;display:inline-flex}.chip.active{color:var(--text);border-color:var(--accent);background:var(--card-2)}.chip .dot{border-radius:50%;width:7px;height:7px}.dot.good{background:var(--good)}.dot.warn{background:var(--warn)}.user{align-items:center;gap:12px;display:flex}.content{flex-direction:column;gap:18px;max-width:1180px;margin:0 auto;padding:24px;display:flex}.page-title{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.page-title h1{font-size:22px}.badge{border:1px solid var(--border);color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;display:inline-flex}.badge i{background:currentColor;border-radius:50%;width:7px;height:7px}.badge-good{color:var(--good);background:#34d3991a;border-color:#34d3994d}.badge-warn{color:var(--warn);background:#f5b74e1a;border-color:#f5b74e4d}.badge-crit{color:var(--crit);background:#f4737a1a;border-color:#f4737a4d}.badge-info{color:var(--info);background:#5fa8f51a;border-color:#5fa8f54d}.badge-muted{color:var(--muted)}.tiles{grid-template-columns:repeat(6,1fr);gap:14px;display:grid}.tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px 18px}.tile-value{letter-spacing:-.02em;font-size:30px;font-weight:700}.tile-label{color:var(--text-2);margin-top:4px;font-size:12px}.tile-good .tile-value{color:var(--good)}.tile-warn .tile-value{color:var(--warn)}.tile-crit .tile-value{color:var(--crit)}.grid2{grid-template-columns:1fr 1fr;gap:18px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:18px 20px}.card h3{font-size:14px}.card-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.barlist{flex-direction:column;gap:10px;margin-top:12px;display:flex}.barlist-row{grid-template-columns:130px 1fr 34px;align-items:center;gap:10px;display:grid}.barlist-label{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.barlist-track{background:#ffffff0d;border-radius:6px;height:10px;overflow:hidden}.barlist-fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:6px;min-width:4px;height:100%;transition:width .4s}.barlist-value{text-align:right;font-size:13px;font-weight:600}.areachart{width:100%;height:200px;margin-top:10px;display:block;overflow:visible}.axis-txt{fill:var(--muted);font-size:10px}.table{flex-direction:column;margin-top:8px;display:flex}.trow{border-top:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px 0;display:grid}.trow:first-child{border-top:none}.tname{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}@media (width<=860px){.tiles{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.barlist-row{grid-template-columns:100px 1fr 30px}}:root[data-theme=light]{--bg:#f4f6fc;--bg-2:#fff;--card:#ffffffb8;--card-2:#fffffff2;--border:#1216301a;--text:#171a29;--text-2:#4b4f66;--muted:#8b8fa4}:root[data-theme=light] body{background:radial-gradient(1100px 600px at 15% -10%, #7c6cff1f, transparent 60%), radial-gradient(900px 500px at 100% 0%, #34d39914, transparent 55%), var(--bg)}:root[data-theme=light] .topbar{background:#ffffffb8}:root[data-theme=light] .login-card input,:root[data-theme=light] .barlist-track{background:#1216300d}:root[data-theme=light] .btn-primary{color:#fff}.theme-toggle{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:34px;height:34px;font-size:15px;line-height:1}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle.floating{position:fixed;top:18px;right:18px}.menu-wrap{position:relative}.menu{z-index:40;background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 44px #00000059}.menu-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 11px;font-size:13px}.menu-item:hover{background:var(--card)}.menu-item.danger{color:var(--crit)}.menu-sep{background:var(--border);height:1px;margin:5px 4px}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:60;background:#04050c8c;justify-content:center;align-items:flex-start;padding:60px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:100%;max-width:520px;box-shadow:0 30px 70px #00000073}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-head h3{font-size:15px}.modal-body{padding:18px 20px 22px}.form{flex-direction:column;gap:6px;display:flex}.form label{color:var(--text-2);margin-top:8px;font-size:12px}.form input,.form-row input,.form-row select{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);background:#0000002e;outline:none;padding:10px 12px;font-size:14px}:root[data-theme=light] .form input,:root[data-theme=light] .form-row input,:root[data-theme=light] .form-row select{background:#1216300a}.form input:focus,.form-row input:focus{border-color:var(--accent)}.form .btn-primary{margin-top:14px}.ok-msg{color:var(--good);border-radius:var(--radius-sm);background:#34d3991f;border:1px solid #34d39959;padding:9px 12px;font-size:13px}.modal.wide{max-width:720px}.user-add{margin-bottom:6px}.ua-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ua-fields input,.ua-fields select{border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);background:#0000002e;outline:none;padding:10px 12px;font-size:14px}:root[data-theme=light] .ua-fields input,:root[data-theme=light] .ua-fields select{background:#1216300a}.ua-fields input:focus,.ua-fields select:focus{border-color:var(--accent)}.user-add .btn-primary{align-self:flex-start;margin-top:12px;padding:9px 18px}.ulist-head{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 2px;font-size:11px}.ulist{flex-direction:column;display:flex}.urow{border-top:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:6px 14px;padding:12px 0;display:grid}.urow:first-child{border-top:none}.uinfo{min-width:0}.uname{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.uinfo .muted{margin-top:1px;display:block}.urole{justify-self:end}.uactions{flex-wrap:wrap;grid-column:1/-1;gap:6px;margin-top:4px;display:flex}.uactions .btn-ghost{padding:5px 10px;font-size:12px}.btn-ghost.danger{color:var(--crit);border-color:#f4737a59}@media (width<=560px){.ua-fields{grid-template-columns:1fr}}.center-inline{justify-content:center;align-items:center;padding:60px 0;display:flex}.spacer{flex:1}.view-switch{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.view-switch:hover{border-color:var(--accent)}.view-switch .caret{color:var(--text-2);font-size:11px}.view-wrap .menu{min-width:240px}.tiles-5{grid-template-columns:repeat(5,1fr)}@media (width<=860px){.tiles-5{grid-template-columns:repeat(2,1fr)}}.status-card{cursor:pointer;transition:border-color .15s,transform .15s}.status-card:hover{border-color:var(--accent);transform:translateY(-2px)}.status-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;display:grid}.status-grid>div{flex-direction:column;gap:2px;display:flex}.status-grid .muted{font-size:11px}.status-grid b{font-size:14px}.t-good{color:var(--good)}.t-warn{color:var(--warn)}.t-crit{color:var(--crit)}.rows-breakdown{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.chip-mini{color:var(--text-2);border:1px solid var(--border);background:#ffffff0d;border-radius:6px;padding:2px 8px;font-size:11px}:root[data-theme=light] .chip-mini{background:#1216300a}.issues-card{border-color:#f4737a66}.issue-row{grid-template-columns:1fr auto}.issue-err{color:var(--crit);background:#f4737a14;border-radius:6px;grid-column:1/-1;margin-top:4px;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;overflow-x:auto}.wtable{flex-direction:column;margin-top:10px;display:flex}.wthead,.wtrow{grid-template-columns:var(--tpl);align-items:center;gap:12px;padding:9px 10px;display:grid}.wthead{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.wtrow{border-top:1px solid var(--border);border-radius:8px}.wtrow:hover{background:var(--card)}.wtcell{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.wtcell.r{text-align:right}.wtcell.strong{font-weight:600}.wtrow.crit{background:#f4737a12}.wtrow.crit .num{color:var(--crit);font-weight:700}.wtrow.warn{background:#f5b74e0f}.wtrow.warn .num{color:var(--warn);font-weight:700}.num{font-variant-numeric:tabular-nums}.pill-crit{color:var(--crit);font-weight:700}.pill-warn{color:var(--warn);font-weight:700}.pill-good{color:var(--good);font-weight:600}
