* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji"; }

.app-header { padding: 12px 16px; background: #0f172a; color: #e2e8f0; border-bottom: 1px solid #1e293b; }
.app-header h1 { margin: 0 0 4px; font-size: 18px; }
.app-header .hint { margin: 0; font-size: 12px; opacity: 0.8; }

.app-main { height: calc(100% - 60px); }
#graph-container { position: relative; height: 100%; width: 100%; }
#graph { width: 100%; height: 100%; display: block; background: #0b1020; }

.link { stroke: #64748b; stroke-opacity: 0.5; }
.link.highlight { stroke-opacity: 0.9; }

.node text { pointer-events: none; font-size: 12px; fill: #e5e7eb; text-shadow: 0 1px 2px rgba(0,0,0,0.6); }

.node circle { stroke: #0b1020; stroke-width: 1.5px; }

.node, .nodes .node, .nodes g.node { cursor: pointer; }

.badge { fill: #94a3b8; font-size: 10px; dominant-baseline: middle; text-anchor: middle; pointer-events: none; }