:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--accent:#6d5dfc}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,#111827,#1f1b4d);color:#fff;padding:24px;position:fixed;top:0;bottom:0}.brand{font-size:22px;font-weight:800;margin-bottom:30px}.sidebar a{display:block;color:#dbeafe;text-decoration:none;padding:12px 14px;border-radius:14px;margin:6px 0}.sidebar a:hover{background:rgba(255,255,255,.12)}.userbox{position:absolute;bottom:20px;left:24px;right:24px;font-size:13px;color:#cbd5e1}.userbox span{display:block;color:#94a3b8}.main{margin-left:260px;width:calc(100% - 260px);padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar h1{margin:0;font-size:30px}.topbar button,.btn,button{background:var(--accent);color:#fff;border:0;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.danger{background:#ef4444}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.card{color:#fff;text-decoration:none;border-radius:24px;padding:24px;box-shadow:0 14px 34px rgba(0,0,0,.12);min-height:145px;display:flex;flex-direction:column;justify-content:space-between}.card span{opacity:.9}.card strong{font-size:44px}.grad1{background:linear-gradient(135deg,#2563eb,#7c3aed)}.grad2{background:linear-gradient(135deg,#059669,#22c55e)}.grad3{background:linear-gradient(135deg,#ea580c,#ef4444)}.grad4{background:linear-gradient(135deg,#0891b2,#4f46e5)}.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;margin-bottom:20px;box-shadow:0 10px 25px rgba(15,23,42,.06);overflow:auto}.actions,.bulkbar{display:flex;gap:10px;margin-bottom:14px;align-items:center}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}th{color:#475569}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:800;font-size:12px}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.badge.warn{background:#fef3c7;color:#92400e}.modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);align-items:center;justify-content:center;z-index:20}.modal.open{display:flex}.modalbox{background:#fff;border-radius:24px;padding:24px;max-width:900px;width:92%;position:relative}.x{position:absolute;right:18px;top:14px;background:#111827}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-weight:700;color:#475569}input,select{width:100%;padding:11px;border:1px solid var(--line);border-radius:12px;margin-top:6px;background:#fff}pre{white-space:pre-wrap;max-width:420px;font-size:12px}.flash{padding:12px 16px;border-radius:14px;margin-bottom:16px;background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}.loginbody{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#111827,#4f46e5)}.login{width:390px;background:#fff;border-radius:24px;padding:30px;box-shadow:0 25px 70px rgba(0,0,0,.28)}.login h1{margin-top:0}.login input,.login button{margin-top:12px}.detailgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.detailgrid div{background:#f8fafc;padding:14px;border-radius:14px}.detailgrid b{display:block;color:#64748b}.linkbtn{background:transparent;color:#2563eb;padding:0}.dark{--bg:#0f172a;--card:#111827;--text:#e5e7eb;--muted:#94a3b8;--line:#334155}@media(max-width:1000px){.cards{grid-template-columns:1fr 1fr}.sidebar{position:static;width:100%}.app{display:block}.main{margin-left:0;width:100%}.grid2,.detailgrid{grid-template-columns:1fr}}
.inline{display:inline-block;margin:2px}.buttonrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.buttonrow form{display:inline-flex;gap:8px;flex-wrap:wrap}.servers td form.inline button{padding:7px 10px;font-size:12px}.actions .btn{margin-right:8px;margin-bottom:8px}
.hint{background:#eef6ff;border:1px solid #bfdbfe;border-radius:14px;padding:12px 14px;margin-bottom:14px;color:#15345b}.mini-result{margin-top:6px;max-width:460px}.mini-result pre{white-space:pre-wrap;font-size:12px;background:#0b1020;color:#dbeafe;border-radius:10px;padding:10px;max-height:170px;overflow:auto}.muted{color:#64748b;font-size:12px}.servers td{vertical-align:top}.servers button[disabled]{opacity:.7;cursor:wait}
