html,body{margin:0;padding:0;background:#000;color:#fff;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial}
#container{display:flex;height:100vh;width:100%}
#viz{flex:1;position:relative;background:radial-gradient(1200px 800px at 50% 50%,#0b0b0b 0%,#000 65%)}
#sidebar{width:280px;background:#0d0d10;border-left:1px solid #242428;padding:12px;overflow-y:auto}
.brand{font-weight:700;letter-spacing:.08em;color:#8df; margin-bottom:8px}
.controls{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.controls button{background:#15151a;border:1px solid #2b2b33;color:#e3f2ff;border-radius:8px;padding:6px 10px;cursor:pointer}
.controls button:hover{background:#1b1b22}
.hint{opacity:.6;font-size:.8em;margin-top:2px}
#sidebar h2{font-size:1.05em;margin:.6em 0;border-bottom:1px solid #26262d;padding-bottom:4px;color:#bcd}
#nodeDetails{font-size:.92em;line-height:1.45em;margin-bottom:.8em}
#streamLog{font-size:.85em;line-height:1.4em;max-height:34vh;overflow-y:auto;border-top:1px solid #26262d;padding-top:.5em}
#hud{position:absolute;top:8px;left:8px;background:rgba(10,10,14,.6);backdrop-filter:blur(4px);padding:6px 10px;font-size:.82em;border:1px solid #2b2b33;border-radius:8px}
.links .link{stroke:#6a7;stroke-opacity:.25;stroke-width:1.25px}
.node path{stroke:#cfe;stroke-width:1px}
.node text{fill:#dde;font-size:10px;pointer-events:none;text-anchor:middle}
.badge{display:inline-block;padding:2px 6px;border-radius:999px;border:1px solid #2b2b33;background:#15151a;color:#9cf;font-size:.75em;margin-left:6px}
