.lineage-navigation { margin: 18px 0; }
.lineage-navigation button { font: inherit; cursor: pointer; }
.lineage-open,.lineage-expand { min-height: 48px; padding: 10px 16px; color: var(--ink); background: var(--paper-2); border: 1px solid var(--line); border-radius: 10px; }
.lineage-open { width: 100%; text-align: left; font-weight: 600; }
.lineage-navigation h3 { margin: 0 0 8px; font-size: 18px; }
.lineage-caption,.lineage-empty { font-size: 14px; line-height: 1.6; color: var(--muted); }
.lineage-columns { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: start; gap: 16px; margin: 18px 0; }
.lineage-branch h4 { font-size: 14px; margin: 0 0 10px; }
.lineage-branch { border-left: 2px solid var(--line); padding-left: 12px; }
.lineage-card { position: relative; display: flex; flex-direction: column; gap: 5px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; margin: 0 0 12px; min-width: 0; overflow-wrap: anywhere; background: var(--paper-2); }
.lineage-branch .lineage-card::before { content: ''; position: absolute; width: 12px; border-top: 2px solid var(--line); top: 24px; left: -13px; }
.lineage-card.is-current { border: 2px solid #368b82; background: rgba(54,139,130,.08); }
.lineage-target { border: 0; padding: 6px 0; min-height: 44px; background: transparent; color: var(--ink); font-weight: 700!important; text-align: left; text-decoration: underline; text-underline-offset: 4px; }
.lineage-target:focus-visible,.lineage-open:focus-visible,.lineage-expand:focus-visible { outline: 3px solid #368b82; outline-offset: 3px; }
.lineage-scientific,.lineage-age,.lineage-relation { font-size: 14px; line-height: 1.5; }
.lineage-relation { color: #28766e; }
.lineage-card details { font-size: 14px; }
.lineage-card summary,.lineage-references summary { cursor: pointer; min-height: 36px; padding-top: 8px; }
.lineage-navigation a { display: block; overflow-wrap: anywhere; font-size: 14px; margin: 8px 0; }
.lineage-card figure { margin: 0; }
.lineage-card img { width: 100%; height: auto; max-height: 150px; object-fit: contain; }
.lineage-card figcaption { font-size: 12px; }
.lineage-pair { display: grid; grid-template-columns: 1fr 24px 1fr; gap: 8px; align-items: center; margin-top: 12px; }
.lineage-arrow { text-align: center; }
.lineage-references { margin-top: 14px; }
@media(max-width: 600px) {
  .lineage-columns { grid-template-columns: 1fr; gap: 6px; }
  .lineage-columns > .is-current { margin-left: 14px; }
  .lineage-branch { margin-left: 14px; }
  .lineage-pair { grid-template-columns: 1fr; gap: 0; }
  .lineage-arrow { transform: rotate(90deg); margin: -7px 0 5px; }
}
