:root{
  --node-bg:#ffffff;
  --node-border:#d0d7de;
  --node-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.tree-wrap{
  width:100%;
  height:70vh;
  overflow:auto;
  border:1px solid #e9ecef;
  border-radius:14px;
  background: linear-gradient(180deg, #fff, #fbfbfb);
}
#treeSvg{
  width:1600px;
  height:900px;
}
.node-card{
  fill: var(--node-bg);
  stroke: var(--node-border);
  stroke-width:1;
  rx:12; ry:12;
  filter: drop-shadow(var(--node-shadow));
  cursor: pointer;
}
.node-text{
  font-size:12px;
  pointer-events:none;
}
.node-name{ font-weight:700; font-size:12px;}
.node-sub{ fill:#6c757d; font-size:11px;}
.link{
  fill:none;
  stroke:#adb5bd;
  stroke-width:1.4;
}
.badge{ border-radius:999px; }
