@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg: #0a0a0a;--color-surface: #111111;--color-border: #1e1e1e;--color-muted: #2a2a2a;--color-text: #e8e8e8;--color-text-dim: #666666;--color-accent: #4f8ef7;--color-danger: #e05555;--color-warning: #d4914a;--color-success: #4caf73;--sidebar-w: 220px;--font-ui: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;border-radius:0!important}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-ui);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}code,.mono,pre{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-muted)}::-webkit-scrollbar-track{background:var(--color-bg)}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{padding:16px 18px;font-weight:600;font-size:15px;letter-spacing:.06em;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:8px}.sidebar-section{padding:10px 0}.sidebar-section-label{padding:6px 18px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-dim)}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 18px;color:var(--color-text-dim);cursor:pointer;border-left:2px solid transparent;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--color-muted);color:var(--color-text)}.nav-item.active{color:var(--color-text);border-left-color:var(--color-accent);background:transparent}.nav-item .nav-count{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--color-text-dim)}.content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.page{padding:22px 26px;max-width:1500px;width:100%}.page-header{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--color-border)}.page-title{font-size:18px;font-weight:600;margin:0}.page-subtitle{color:var(--color-text-dim);font-size:12px}.page-header .spacer{flex:1}.panel{background:var(--color-surface);border:1px solid var(--color-border);padding:16px}.panel+.panel{margin-top:16px}.btn{font-family:var(--font-ui);font-size:12px;padding:6px 12px;background:transparent;color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--color-muted);border-color:var(--color-accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{border-color:var(--color-accent);color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent);color:#fff}.btn-danger{border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger);color:#fff}.btn-sm{padding:3px 8px;font-size:11px}input,select,textarea{font-family:var(--font-ui);font-size:12px;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);padding:7px 10px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-accent)}label{display:block;font-size:11px;color:var(--color-text-dim);margin-bottom:4px}.field{margin-bottom:12px}table.tbl{width:100%;border-collapse:collapse;font-size:12px}.tbl th{text-align:left;font-weight:500;color:var(--color-text-dim);text-transform:uppercase;font-size:10px;letter-spacing:.08em;padding:8px 12px;border-bottom:1px solid var(--color-border)}.tbl td{padding:9px 12px;border-bottom:1px solid var(--color-border)}.tbl tr:hover td{background:var(--color-surface)}.tbl .mono{font-family:var(--font-mono);font-size:11px}.dot{display:inline-block;width:8px;height:8px;margin-right:7px;vertical-align:middle}.dot.ok,.dot.up{background:var(--color-success)}.dot.warning{background:var(--color-warning)}.dot.danger,.dot.down{background:var(--color-danger)}.dot.unknown{background:var(--color-text-dim)}.dot.muted{background:var(--color-muted)}.tag{display:inline-block;padding:1px 7px;font-size:10px;border:1px solid var(--color-border);color:var(--color-text-dim);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.tag.critical{color:var(--color-danger);border-color:var(--color-danger)}.tag.high{color:var(--color-warning);border-color:var(--color-warning)}.tag.medium{color:var(--color-text)}.tag.low,.text-dim{color:var(--color-text-dim)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);padding:16px;cursor:pointer}.stat-card:hover{border-color:var(--color-accent)}.stat-card .stat-label{color:var(--color-text-dim);text-transform:uppercase;font-size:10px;letter-spacing:.1em;display:flex;align-items:center;gap:8px}.stat-card .stat-value{font-family:var(--font-mono);font-size:28px;margin-top:10px}.stat-card .stat-detail{color:var(--color-text-dim);font-size:11px;margin-top:4px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px}.toolbar .spacer{flex:1}.empty{padding:40px;text-align:center;color:var(--color-text-dim)}.loading{padding:30px;color:var(--color-text-dim);font-family:var(--font-mono)}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}.login-box{width:340px;background:var(--color-surface);border:1px solid var(--color-border);padding:28px}.login-box h1{font-size:18px;margin:0 0 4px;letter-spacing:.06em}.login-box .err{color:var(--color-danger);font-size:12px;margin-top:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{width:460px;max-width:90vw;background:var(--color-surface);border:1px solid var(--color-border)}.modal-head{padding:14px 18px;border-bottom:1px solid var(--color-border);display:flex;align-items:center}.modal-body{padding:18px;max-height:70vh;overflow-y:auto}.modal-foot{padding:14px 18px;border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end}.icon-btn{background:transparent;border:none;color:var(--color-text-dim);cursor:pointer;padding:4px;display:inline-flex}.icon-btn:hover{color:var(--color-text)}
