/* 정당사 계보도 (세로형) — /parties.html. lineage.js가 SVG 생성. */
.lin-page { max-width: 1280px; margin: 0 auto; padding: 1.5rem 1rem 4rem; }

.lin-toolbar { display: flex; gap: 1.1rem; align-items: center; margin: 0.5rem 0 1rem; flex-wrap: wrap; }
.lin-legend { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; color: var(--ink-soft); }
.lin-lg { width: 22px; height: 0; border-top-width: 2.5px; border-top-style: solid; display: inline-block; }
.lin-lg-merge { border-top-color: #d08700; }
.lin-lg-split { border-top-color: #2c82c9; }
.lin-lg-rename { border-top-color: #8a8f98; border-top-style: dashed; }

.lin-graph { overflow-x: auto; border: 1px solid var(--rule); border-radius: 10px; background: var(--bg); }
.lin-loading { padding: 2rem; text-align: center; color: var(--ink-mute); }
.lin-svg { display: block; }

/* 연도 가로 그리드(좌측 라벨) */
.lin-grid { stroke: var(--rule); stroke-width: 1; stroke-dasharray: 2 4; }
.lin-year { fill: var(--ink-mute); font-size: 11px; text-anchor: middle; dominant-baseline: central; font-variant-numeric: tabular-nums; }

/* 계열 컬럼 배경 + 헤더 */
/* 스펙트럼 양 끝(진보/보수)만 — 중간은 라벨 없이 위치로만 */
.lin-axis { stroke: var(--rule); stroke-width: 1.5; stroke-dasharray: 1 5; stroke-linecap: round; }
.lin-pole { font-size: 13px; font-weight: 800; fill: var(--ink-soft); dominant-baseline: middle; }

/* 계승 연결선 */
.lin-edge { fill: none; stroke-width: 1.6; opacity: 0.6; }
.lin-edge[stroke="#8a8f98"] { stroke-dasharray: 3 3; }

/* 정당 막대(세로) + 라벨(오른쪽) */
.lin-bar { stroke: rgba(0, 0, 0, 0.12); stroke-width: 0.5; transition: opacity 0.12s; }
.lin-node:hover .lin-bar { opacity: 0.82; }
.lin-bar-label { font-weight: 600; fill: var(--ink); pointer-events: none; paint-order: stroke; stroke: var(--bg); stroke-width: 2.4px; stroke-linejoin: round; }
.lin-node:hover .lin-bar-label { fill: var(--accent); }

/* 분류 외(기타) — 그래프 밖 텍스트 */
.lin-etc-note { font-size: 0.82rem; color: var(--ink-mute); margin: 0.6rem 0.2rem 0; line-height: 1.6; }
.lin-etc-note span { font-weight: 700; margin-right: 0.4rem; }
.lin-etc-note a { color: var(--ink-soft); text-decoration: none; border-bottom: 1px dotted var(--rule-strong); }
.lin-node { cursor: pointer; }

@media (max-width: 640px) {
  .lin-page { padding: 1rem 0.5rem 3rem; }
}
