
.pm-pf-full-pedigree{padding:0;overflow:hidden}
.pm-pf-full-pedigree .pm-pf-tree-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;padding:16px 18px;border-bottom:1px solid var(--line)}
.pm-pf-full-pedigree .pm-pf-tree-head h2{margin:0;color:var(--navy);font-size:18px}
.pm-pf-full-pedigree .pm-pf-tree-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.pm-pf-gen-control{display:flex;align-items:center;gap:10px}
.pm-pf-gen-control>small{padding:0;color:var(--muted);font-size:9px;font-weight:800;white-space:nowrap}
#pm-pf-gens{display:flex;gap:6px;overflow:auto}
#pm-pf-gens button{min-width:40px;border:1px solid #d5dfe6;background:#fff;color:var(--navy);border-radius:8px;padding:8px 9px;font-size:11px;font-weight:800;cursor:pointer}
#pm-pf-gens button:hover,#pm-pf-gens button.is-active{border-color:var(--navy);background:var(--navy);color:#fff}
.pm-pf-tree-scroll{overflow:auto;max-height:720px;border:0;border-radius:0;background:#fff}
.pm-pf-tree-labels{position:sticky;top:0;z-index:20;height:48px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}
.pm-pf-tree-labels>div{position:absolute;top:0;width:258px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#435a70;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.pm-pf-canvas{position:relative;min-height:560px;background:#fff}
.pm-pf-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}
.pm-pf-lines path{fill:none;stroke:#9fb0bf;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.pm-pf-node{position:absolute;z-index:2;transform:translateY(-50%);width:258px;height:112px;display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 1px 4px rgba(23,50,77,.05)}
.pm-pf-node.is-male{background:var(--sire);border-color:var(--sire-line)}
.pm-pf-node.is-female{background:var(--dam);border-color:var(--dam-line)}
.pm-pf-node.is-subject{background:#fff;border:1.5px solid #8098aa;box-shadow:0 2px 7px rgba(23,50,77,.08)}
.pm-pf-node.is-empty{opacity:.76;border-style:dashed;box-shadow:none}
a.pm-pf-node:hover{transform:translateY(-50%) translateX(2px);box-shadow:0 7px 18px rgba(23,50,77,.12)}
.pm-pf-node-photo{width:82px;height:82px;border-radius:9px;overflow:hidden;background:rgba(255,255,255,.74);display:flex;align-items:center;justify-content:center}
.pm-pf-node-photo img{width:100%;height:100%;object-fit:contain}
.pm-pf-node-photo .pm-pf-placeholder b{font-size:23px}
.pm-pf-node-photo .pm-pf-placeholder small{font-size:7px}
.pm-pf-node-copy{min-width:0}
.pm-pf-node-copy em,.pm-pf-node-copy strong,.pm-pf-node-copy span,.pm-pf-node-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-pf-node-copy em{font-style:normal;color:#0da999;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.pm-pf-node.is-male .pm-pf-node-copy em{color:#397eb5}
.pm-pf-node.is-female .pm-pf-node-copy em{color:#cc6680}
.pm-pf-node-copy strong{margin-top:3px;color:var(--navy);font-size:13px}
.pm-pf-node-copy span{margin-top:3px;color:#566579;font-size:9px;line-height:1.25}
.pm-pf-node-copy small{margin-top:3px;color:#738096;font-size:8px;font-weight:700}
@media(max-width:760px){.pm-pf-full-pedigree .pm-pf-tree-head{align-items:flex-start;flex-direction:column}.pm-pf-gen-control{width:100%;align-items:flex-start;flex-direction:column}.pm-pf-tree-scroll{max-height:640px}}

/* Smooth generation navigation + selected-generation focus. */
.pm-pf-tree-scroll{
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:auto;
  scroll-padding-inline:24px;
}
.pm-pf-tree-labels>div{
  transition:background-color .28s ease,color .28s ease,box-shadow .28s ease,transform .28s ease;
}
.pm-pf-tree-labels>div.is-focused{
  background:var(--navy);
  color:#fff;
  box-shadow:0 5px 14px rgba(23,50,77,.14);
  transform:translateY(3px);
}
.pm-pf-node{
  transition:opacity .34s ease,transform .34s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease,border-color .28s ease,filter .28s ease;
}
.pm-pf-node:not(.is-focused-generation){
  opacity:.9;
}
.pm-pf-node.is-focused-generation{
  opacity:1;
  box-shadow:0 7px 20px rgba(23,50,77,.14);
  filter:saturate(1.04);
}
.pm-pf-tree-scroll.is-transitioning:not(.is-ready) .pm-pf-node.is-focused-generation{
  opacity:0;
  transform:translateY(-50%) translateX(22px) scale(.985);
}
.pm-pf-tree-scroll.is-ready .pm-pf-node.is-focused-generation{
  opacity:1;
  transform:translateY(-50%) translateX(0) scale(1);
}
.pm-pf-lines{
  transition:opacity .3s ease;
}
.pm-pf-tree-scroll.is-transitioning:not(.is-ready) .pm-pf-lines{
  opacity:.58;
}
.pm-pf-tree-scroll.is-ready .pm-pf-lines{
  opacity:1;
}

