/* Tree connector lines */
.tree-svg path {
  fill: none;
  stroke: var(--border);
  stroke-width: 1;
}
.tree-svg path.spouse {
  stroke: var(--spouse-line);
  stroke-width: 1;
  stroke-dasharray: 4 3;
}
.tree-svg path.ancestor {
  stroke: var(--ancestor-line);
  stroke-width: 1;
}

/* Tree nodes */
.tree-node {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  white-space: nowrap;
}
.tree-node:hover { background: var(--accent-bg); }
.tree-node.focus { border-color: var(--accent); background: var(--accent-bg); }
.tree-node.selected { box-shadow: 0 0 0 1px var(--accent); }
.tree-node.unknown { border-style: dashed; opacity: 0.6; }
.tree-node.unknown .node-name { font-style: italic; color: var(--text-tertiary); }

/* Gender dot */
.gender-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.gender-dot.male { background: var(--male); }
.gender-dot.female { background: var(--female); }
.gender-dot.unknown { background: var(--unknown); }

/* Node name */
.node-name { font-family: 'Roboto', sans-serif; font-weight: 500; font-size: 11px; flex: 1; overflow: hidden; text-overflow: ellipsis; }

/* Provenance badge */
.prov-badge { font-size: 9px; padding: 1px 4px; border-radius: 2px; flex-shrink: 0; font-weight: 500; }
.prov-badge.verified { background: var(--verified); color: #000; }
.prov-badge.sourced { background: var(--sourced); color: #000; }
.prov-badge.entered { background: var(--entered); color: #000; }
.prov-badge.inferred { background: var(--inferred); color: #000; }

/* Collapse button */
.collapse-btn { width: 16px; height: 16px; border-radius: 2px; border: 1px solid var(--border); background: var(--surface); color: var(--text-secondary); font-size: 12px; line-height: 14px; text-align: center; cursor: pointer; flex-shrink: 0; padding: 0; }
.collapse-btn:hover { color: var(--text); background: var(--accent-bg); }
