*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0b0f0d;--panel: #121915;--panel2: #18221c;--border: #23332a;--green: #00c853;--green-dark: #006b2c;--text: #e8efe9;--muted: #8aa195;--red: #ff5252;--yellow: #ffc107;--amber: #ffb300;--blue: #42a5f5}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px}.grid{display:grid;gap:14px}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#0e2b1c 0%,var(--bg) 60%);padding:20px}.login-box{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:32px}.login-box .login-logo{width:52px;height:52px;border-radius:14px}.login-box .login-logo .shield{width:22px;height:22px;border:2px solid var(--panel)}.login-box h1{font-size:22px;margin-bottom:4px}.login-box p{color:var(--muted);font-size:13px;margin-bottom:24px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.field input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px}.field input:focus{outline:none;border-color:var(--green)}.btn{width:100%;padding:13px;border-radius:10px;border:none;background:var(--green);color:#04120a;font-weight:700;font-size:14px;transition:filter .15s}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed}.error-msg{color:var(--red);font-size:13px;margin-bottom:12px}.ok-msg{color:var(--green);font-size:13px;margin-bottom:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040a07bf;display:flex;align-items:center;justify-content:center;z-index:100}.modal-overlay .login-box{padding:26px}.app{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--panel);border-right:1px solid var(--border);padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0}.sidebar .logo{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;border-bottom:1px solid var(--border);margin-bottom:14px}.logo-badge,.login-logo{position:relative;width:40px;height:40px;border-radius:12px;background:#fff;border:1px solid rgba(127,252,151,.35);overflow:visible;flex-shrink:0}.logo-badge img,.login-logo img{width:100%;height:100%;object-fit:contain;border-radius:12px}.logo-badge .shield,.login-logo .shield{position:absolute;right:-7px;bottom:-7px;width:19px;height:19px;border-radius:50%;background:var(--green-dark);border:2px solid var(--panel);color:#7ffc97;display:flex;align-items:center;justify-content:center}.sidebar .logo strong{font-size:15px}.sidebar .logo small{display:block;color:var(--muted);font-size:10px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:10px;border:none;background:none;color:var(--muted);font-size:13px;font-weight:600;margin-bottom:3px;text-align:left}.nav-item:hover{background:var(--panel2);color:var(--text)}.nav-item.active{background:var(--green-dark);color:#d5ffe0}.nav-item .count{margin-left:auto;font-size:10px;background:var(--red);color:#fff;border-radius:99px;padding:1px 7px;font-weight:700}.sidebar .footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.sidebar .footer button{width:100%;padding:9px;border-radius:8px;border:1px solid var(--border);background:none;color:var(--muted);font-size:12px}.sidebar .footer button:hover{color:var(--red);border-color:var(--red)}.main{flex:1;padding:22px;max-width:1500px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.page-header h2{font-size:20px}.page-header .sub{color:var(--muted);font-size:12px;margin-top:2px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.metric .label{color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.metric .value{font-size:26px;font-weight:800;margin-top:6px}.metric .bar{height:6px;border-radius:99px;background:var(--panel2);margin-top:10px;overflow:hidden}.metric .bar>div{height:100%;border-radius:99px;background:var(--green);transition:width .6s}.metric .bar>div.warn{background:var(--yellow)}.metric .bar>div.danger{background:var(--red)}.metric .foot{color:var(--muted);font-size:11px;margin-top:6px}table.data{width:100%;border-collapse:collapse;font-size:12.5px}table.data th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--border)}table.data td{padding:8px 10px;border-bottom:1px solid rgba(35,51,42,.5);vertical-align:top}table.data tr:hover td{background:#00c85308}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:700}.badge.green{background:#00c85326;color:#4ade80}.badge.red{background:#ff525226;color:#ff8a8a}.badge.yellow{background:#ffc10726;color:#ffd54f}.badge.blue{background:#42a5f526;color:#90caf9}.badge.gray{background:#8aa19526;color:var(--muted)}.sev-high{color:var(--red);font-weight:700}.sev-medium{color:var(--yellow);font-weight:600}.sev-low{color:var(--blue)}.sev-info{color:var(--muted)}.sql-console textarea{width:100%;min-height:130px;background:#0a0f0c;border:1px solid var(--border);border-radius:12px;color:#c9e6d3;padding:14px;font-family:JetBrains Mono,monospace;font-size:13px}.sql-console textarea:focus{outline:none;border-color:var(--green)}.sql-results{overflow:auto;max-height:460px}.sql-results table td{white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.log-view{background:#070b08;border:1px solid var(--border);border-radius:12px;padding:14px;max-height:480px;overflow:auto}.log-view pre{font-family:JetBrains Mono,monospace;font-size:11.5px;line-height:1.55;color:#9fb8a8;white-space:pre-wrap;word-break:break-word}.log-view pre .err{color:var(--red)}.log-view pre .warn{color:var(--yellow)}.tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.tab-btn{padding:8px 16px;border-radius:9px;border:1px solid var(--border);background:none;color:var(--muted);font-size:12.5px;font-weight:600}.tab-btn.active{background:var(--green-dark);border-color:var(--green-dark);color:#d5ffe0}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input,.toolbar select{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12.5px}.toolbar input:focus,.toolbar select:focus{outline:none;border-color:var(--green)}.toolbar .btn{width:auto;padding:9px 16px;font-size:12.5px}.mb{margin-bottom:14px}.mt{margin-top:14px}.muted{color:var(--muted)}.small{font-size:11.5px}.flex{display:flex;gap:8px;align-items:center}.flex-wrap{flex-wrap:wrap}.between{justify-content:space-between}.wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}a{color:var(--green)}.dot{width:9px;height:9px;border-radius:99px;display:inline-block}.dot.on{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s infinite}.dot.off{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (max-width: 860px){.app{flex-direction:column}.sidebar{width:100%;height:auto;position:static;display:flex;flex-wrap:wrap;gap:6px;padding:10px}.sidebar .logo{border:none;padding:4px 6px;margin:0}.sidebar .nav{display:flex;flex-wrap:wrap;gap:4px}.nav-item{width:auto;padding:8px 10px;font-size:12px}.sidebar .footer{display:none}.main{padding:14px}}
