.link { stroke: #ccc; stroke-width: 1.5px; stroke-opacity: 0.5; }
.node ellipse { fill: #fff; stroke: #000; stroke-width: 0.5px; }
.node text { pointer-events: none; font: 10px sans-serif; fill: var(--bs-body-color); }
.axis { opacity: 0.5; font: 10px sans-serif; -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.axis .domain { fill: none; stroke: #000; stroke-opacity: .3; stroke-width: 4px; stroke-linecap: round; }
.axis .halo { fill: none; stroke: #ddd; stroke-width: 3px; stroke-linecap: round; }
.slider .handle { fill: #fff; stroke: #000; stroke-opacity: .5; stroke-width: 1.25px; cursor: grab; }
#viz-container { background: var(--bs-body-bg); padding: 1rem; border-radius: 0.5rem; }
#viz-container svg { max-width: 100%; height: auto; }
[data-bs-theme="dark"] .node ellipse { fill: #333; stroke: #fff; }
[data-bs-theme="dark"] .link { stroke: #666; }
