:root{
  --bg:#070a0f;--panel:#0b0f18;--card:#0f1624;
  --stroke:rgba(255,255,255,.08);--stroke2:rgba(255,255,255,.12);
  --txt:#d9e1ff;--muted:#7f8aa8;
  --orange:#ff7a00;--blue:#0031a7;--gray:#b6b6b6;
  --glow:0 0 18px rgba(255,122,0,.35);--shadow:0 18px 50px rgba(0,0,0,.55);
  --r:16px;--mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;color:var(--txt);
  background:radial-gradient(900px 520px at 15% 10%, rgba(0,49,167,.18), transparent 55%),
           radial-gradient(900px 520px at 85% 20%, rgba(255,122,0,.16), transparent 55%),
           radial-gradient(900px 520px at 60% 92%, rgba(182,182,182,.08), transparent 55%), var(--bg);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;
}
.btn{border:1px solid var(--stroke2);background:rgba(255,255,255,.03);color:var(--txt);
  border-radius:999px;padding:10px 14px;cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.btn:hover{transform:translateY(-1px);border-color:rgba(255,122,0,.45);box-shadow:var(--glow);}
.btn.primary{border-color:rgba(255,122,0,.55);box-shadow:var(--glow);}
.btn.ghost{background:transparent;}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--stroke);background:rgba(255,255,255,.02);
  border-radius:999px;padding:8px 12px;color:var(--muted);font-size:12px;white-space:nowrap;}
.layout{display:grid;grid-template-columns:64px 1fr 360px;height:100%;}
.side{border-right:1px solid var(--stroke);background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));position:relative;}
.side .nav{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:10px;}
.iconbtn{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;border:1px solid var(--stroke);
  background:rgba(255,255,255,.02);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;}
.iconbtn:hover{transform:translateY(-1px);border-color:rgba(255,122,0,.45);box-shadow:var(--glow);}
.iconbtn.active{border-color:rgba(255,122,0,.65);box-shadow:var(--glow);}
.main{padding:16px;overflow:auto;}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;
  background:linear-gradient(180deg, rgba(7,10,15,.92), rgba(7,10,15,.55));backdrop-filter:blur(10px);
  border:1px solid var(--stroke);border-radius:var(--r);padding:12px;box-shadow:var(--shadow);z-index:5;}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.card{border:1px solid var(--stroke);background:rgba(255,255,255,.02);border-radius:var(--r);
  padding:12px;box-shadow:0 10px 28px rgba(0,0,0,.35);}
.card h3{margin:0 0 10px 0;font-size:14px;letter-spacing:.2px;}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.input{width:100%;border:1px solid var(--stroke);background:rgba(0,0,0,.22);color:var(--txt);
  border-radius:12px;padding:10px 12px;outline:none;}
.input:focus{border-color:rgba(255,122,0,.5);box-shadow:var(--glow);}
.log{font-family:var(--mono);font-size:12px;white-space:pre-wrap;max-height:280px;overflow:auto;
  border:1px solid var(--stroke);border-radius:14px;padding:10px;background:rgba(0,0,0,.28);}
.right{border-left:1px solid var(--stroke);background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  padding:14px 12px;overflow:auto;}
.tabs{display:flex;gap:8px;flex-wrap:wrap;}
.tab{width:40px;height:40px;border-radius:999px;border:1px solid var(--stroke);background:rgba(255,255,255,.02);
  display:grid;place-items:center;cursor:pointer;}
.tab.active{border-color:rgba(255,122,0,.65);box-shadow:var(--glow);}
.small{font-size:12px;color:var(--muted)}
.hr{height:1px;background:var(--stroke);margin:12px 0;}
.kv{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:12px;}
.kv .k{color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--stroke);
  background:rgba(255,255,255,.02);font-size:12px;color:var(--muted)}
.badge.ok{border-color:rgba(34,197,94,.35);color:#c9ffe0}
.badge.warn{border-color:rgba(245,158,11,.35);color:#fff1d6}
.badge.bad{border-color:rgba(239,68,68,.35);color:#ffd6d6}
@media (max-width:980px){.layout{grid-template-columns:56px 1fr;}.right{display:none}.cards{grid-template-columns:1fr}}
