:root{
  --bg:#071018;
  --panel:#0d1822;
  --panel-2:#10202d;
  --panel-3:#132838;
  --text:#eef5fb;
  --muted:#9eb1c1;
  --border:#355165;
  --grid:#0c1822;
  --grid-strong:#0a1620;
  --parent:#7691a3;
  --union:#c69a4f;
  --accent:#d6aa55;
  --royal:#8ea6ff;
  --dim:.16;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
button,input{font:inherit}
button{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.genealogy-app{height:calc(100% - 58px);display:grid;grid-template-rows:auto 1fr}
.topbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;background:#09141d;border-bottom:1px solid #1f3341;z-index:30}
.brand{margin-right:6px;line-height:1.05}
.brand strong{display:block;font-weight:850;letter-spacing:.01em}
.brand small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}
.search-wrap{flex:1;min-width:220px;max-width:380px}
.search-wrap input{width:100%;padding:9px 11px;border:1px solid #294153;border-radius:9px;background:#0f1c27;color:var(--text);outline:none}
.search-wrap input:focus{border-color:#6c8ca2;box-shadow:0 0 0 3px rgba(108,140,162,.15)}
.control{min-height:38px;border:1px solid #365064;border-radius:9px;padding:7px 10px;background:#132331;cursor:pointer}
.control:hover{background:#193043}
.control.primary{background:#4c3a18;border-color:#8b6c2d}
.control.icon{min-width:38px;padding-inline:9px;font-size:18px;line-height:1}
.zoom-readout{min-width:58px;text-align:center;color:var(--muted);font-size:12px}

.stage{position:relative;min-height:0;overflow:hidden}
.viewport{
  position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;
  background:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px),
    linear-gradient(var(--grid-strong) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-strong) 1px,transparent 1px);
  background-size:40px 40px,40px 40px,200px 200px,200px 200px
}
.viewport.dragging{cursor:grabbing}
.world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.edges{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.family-parent,.family-descent,.family-highlight{fill:none;stroke-linejoin:round;stroke-linecap:round}
.family-parent{stroke:var(--union);stroke-width:3}
.family-descent{stroke:var(--edge-color,var(--parent));stroke-width:4}
.family-highlight{stroke:var(--accent);stroke-width:7}
.family-junction{fill:var(--union);stroke:#f0ce88;stroke-width:1.5}
.family-junction.highlighted{fill:var(--accent);stroke:#fff0b7}
.family-edge.dimmed{opacity:var(--dim)}

.era{
  position:absolute;border-top:3px solid #754080;color:#c9a6d3;
  font-size:22px;font-weight:850;padding-top:8px;pointer-events:none
}
.person-card{
  position:absolute;width:190px;min-height:88px;border:2px solid var(--border);border-radius:12px;
  background:var(--panel-2);color:var(--text);padding:10px 12px;text-align:left;
  box-shadow:0 5px 18px rgba(0,0,0,.25);cursor:pointer;user-select:none;transition:border-color .12s,opacity .12s,box-shadow .12s
}
.person-card:hover{border-color:#6d91a8}
.person-card.selected{border-color:var(--accent);box-shadow:0 0 0 4px rgba(214,170,85,.18),0 8px 24px rgba(0,0,0,.38)}
.person-card.highlighted{border-color:var(--accent);box-shadow:0 0 0 3px rgba(214,170,85,.16)}
.person-card.dimmed{opacity:var(--dim)}
.person-name{font-weight:850;font-size:16px;line-height:1.08}
.person-meta{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.2}
.badge{display:inline-block;margin-top:6px;padding:2px 6px;border:1px solid #46667a;border-radius:999px;color:#b9cedb;font-size:10px}
.badge.royal{border-color:#596ebc;color:#bac6ff}
.badge.patriarch{border-color:#7f6630;color:#e4c57e}
.badge.matriarch{border-color:#815369;color:#e3a9c4}
.badge.tribe{border-color:#3f725f;color:#91d3b6}
.badge.priest{border-color:#8b7d3d;color:#eadc92}
.badge.prophet{border-color:#4d6f8a;color:#a9d5f3}

.world.zoom-far .person-meta,.world.zoom-far .badge{display:none}
.world.zoom-far .person-card{min-height:58px;padding:9px 11px}
.world.zoom-far .person-name{font-size:17px}

.profile{
  position:absolute;top:14px;right:14px;width:min(400px,calc(100% - 28px));max-height:calc(100% - 28px);
  overflow:auto;background:#0c1721;border:1px solid #314858;border-radius:14px;padding:16px;
  box-shadow:0 16px 42px rgba(0,0,0,.45);z-index:20
}
.profile.hidden{display:none}
.profile h2{margin:0 0 4px;font-size:25px}
.profile .sub{color:var(--muted);margin-bottom:14px}
.profile-row{margin:11px 0}
.profile-label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#84a0b2}
.profile-value{margin-top:3px;line-height:1.4}
.profile-close{float:right}
.profile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.profile-link{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid #365064;border-radius:8px;background:#132331;cursor:pointer}
.relation-chip{display:inline-block;margin:3px 4px 3px 0;padding:3px 7px;border:1px solid #345166;border-radius:999px;background:#0f1e2a;cursor:pointer;color:#d8e8f2;font-size:12px}
.profile-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}
.profile-meta-grid div{padding:8px;border:1px solid #263d4c;border-radius:9px;background:#0a1720}
.profile-meta-grid strong{display:block;color:#dce8ef;font-size:12px}
.profile-meta-grid small{display:block;margin-top:2px;color:#9eb1c1;font-size:10px;line-height:1.35}
.profile-warning{margin-top:10px;padding:8px 9px;border:1px solid #806c36;border-radius:9px;background:#211b0d;color:#f4d68d;font-size:12px;line-height:1.35}
.profile-provenance-list{display:grid;gap:6px;margin-top:7px}
.profile-provenance-item{padding:7px 8px;border:1px solid #263d4c;border-radius:8px;background:#0a1720;font-size:12px;line-height:1.35}
.profile-provenance-item small{display:block;color:#9eb1c1;margin-top:2px}
.profile-link.primary{background:#4c3a18;border-color:#8b6c2d}
.profile-link.disabled{opacity:.48;cursor:not-allowed}

.research-tools{
  position:absolute;top:14px;left:14px;width:min(520px,calc(100% - 28px));max-height:calc(100% - 28px);
  overflow:auto;background:#0c1721;border:1px solid #314858;border-radius:14px;padding:14px;
  box-shadow:0 16px 42px rgba(0,0,0,.45);z-index:26
}
.research-tools.hidden{display:none}
.research-tools-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.research-tools-head strong{display:block;font-size:16px}
.research-tools-head small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.research-tool-section{border-top:1px solid #253b4a;padding-top:12px;margin-top:12px}
.research-tool-section:first-of-type{border-top:0;margin-top:0;padding-top:0}
.research-tool-section h3{margin:0 0 8px;font-size:13px;color:#dce8ef}
.path-grid,.filter-grid,.jump-grid,.compare-grid,.bookmark-grid,.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.path-grid label,.filter-grid label,.jump-grid label,.compare-grid label,.bookmark-grid label,.export-grid label{display:grid;gap:4px;color:#9eb1c1;font-size:11px}
.path-grid input,.path-grid select,.filter-grid select,.jump-grid select,.compare-grid input,.bookmark-grid select,.export-grid select{
  width:100%;min-height:36px;border:1px solid #294153;border-radius:8px;background:#0f1c27;color:var(--text);padding:7px 9px;outline:none
}
.path-grid input:focus,.path-grid select:focus,.filter-grid select:focus,.jump-grid select:focus,.compare-grid input:focus,.bookmark-grid select:focus,.export-grid select:focus{border-color:#6c8ca2;box-shadow:0 0 0 3px rgba(108,140,162,.15)}
.path-result,.comparison-result{margin-top:9px;padding:9px 10px;border:1px solid #263d4c;border-radius:9px;background:#0a1720;color:#c7d7e1;font-size:12px;line-height:1.45}
.path-result ol{margin:6px 0 0 21px;padding:0}
.path-result li{margin:4px 0}
.path-result button{margin:0 2px;padding:2px 6px;border:1px solid #345166;border-radius:999px;background:#0f1e2a;color:#d8e8f2;cursor:pointer;font-size:12px}
.comparison-grid{display:grid;gap:7px;margin-top:8px}
.comparison-card{padding:8px 9px;border:1px solid #263d4c;border-radius:9px;background:#0d1a25}
.comparison-card strong{display:block;color:#e2edf4}
.comparison-card small{display:block;margin-top:2px;color:#94abb9}
.comparison-card p{margin:6px 0 0;color:#c2d1dc}
.comparison-card button{margin-top:7px}
.filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px;color:#9eb1c1;font-size:12px}
.jump-grid{grid-template-columns:minmax(0,1fr) auto auto auto}
.bookmark-grid,.export-grid{grid-template-columns:minmax(0,1fr) auto auto auto;margin-top:8px}

.person-card.filtered-out,
.person-card.focus-out{opacity:.12}
.person-card.filtered-out.focus-in,
.person-card.focus-in{opacity:1}
.person-card.bookmarked{box-shadow:0 0 0 2px rgba(143,184,223,.5),0 12px 26px rgba(0,0,0,.34)}
.person-card .entity-badge,
.person-card .period-badge,
.person-card .conflict-badge{
  display:inline-block;margin-top:6px;margin-left:4px;padding:2px 6px;border:1px solid #46667a;border-radius:999px;color:#b9cedb;font-size:9px;font-weight:850;letter-spacing:.04em
}
.person-card .period-badge{border-color:#5c6642;color:#d3dea7}
.person-card .conflict-badge{border-color:#8d6a37;color:#f3c978}
.person-card.filtered-out .period-badge,.person-card.filtered-out .entity-badge,.person-card.filtered-out .conflict-badge{opacity:.7}
.person-card.virtualized-out,
.family-edge.virtualized-out,
.family-junction.virtualized-out,
.affiliation-edge.virtualized-out,
.affiliation-terminal.virtualized-out,
.affiliation-label.virtualized-out,
.era.virtualized-out,
.branch-label.virtualized-out{display:none!important}
.family-edge.filtered-out,.family-junction.filtered-out,.affiliation-edge.filtered-out,.affiliation-terminal.filtered-out,.affiliation-label.filtered-out{opacity:.09}
.family-edge.focus-out,.family-junction.focus-out,.affiliation-edge.focus-out,.affiliation-terminal.focus-out,.affiliation-label.focus-out{opacity:.09}
.mini-node.filtered-out,.mini-node.focus-out{opacity:.12}

.path-active{outline:3px solid rgba(214,170,85,.32)}
.family-edge.path-active{stroke:var(--accent)!important;stroke-width:7!important;opacity:1}
.affiliation-edge.path-active{stroke-width:5!important;opacity:1}

@media(max-width:760px){
  .research-tools{top:8px;left:8px;width:calc(100% - 16px);max-height:calc(100% - 16px)}
  .path-grid,.filter-grid,.jump-grid,.compare-grid,.bookmark-grid,.export-grid{grid-template-columns:1fr}
}

.legend{
  position:absolute;left:14px;bottom:14px;z-index:12;max-width:360px;
  background:rgba(9,18,26,.94);border:1px solid #2d4353;border-radius:12px;padding:10px 12px;font-size:12px;color:#bfd0dc
}
.legend strong{display:block;margin-bottom:4px}
.legend span{display:inline-flex;align-items:center;margin-right:12px;margin-top:5px}
.swatch{width:23px;height:0;margin-right:6px}
.swatch.union{border-top:3px solid var(--union)}
.swatch.descent{border-top:4px solid var(--parent)}
.swatch.highlight{border-top:5px solid var(--accent)}
.canvas-hint{
  position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:10;
  background:rgba(7,16,24,.88);border:1px solid #2e4658;border-radius:999px;padding:6px 10px;
  color:#a9bcc9;font-size:12px;pointer-events:none
}
.minimap{position:absolute;right:14px;bottom:14px;width:250px;height:180px;background:#08131c;border:1px solid #2f4758;border-radius:12px;overflow:hidden;z-index:12}
.mini-node{position:absolute;width:4px;height:4px;background:#8eb3c8;border-radius:50%}
.mini-view{position:absolute;border:2px solid var(--accent);background:rgba(214,170,85,.08);pointer-events:none}
.toast{
  position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:40;
  padding:9px 12px;border:1px solid #365064;border-radius:9px;background:#0d1b26;color:#dce9f2;font-size:13px;
  box-shadow:0 8px 24px rgba(0,0,0,.3)
}
.toast.hidden{display:none}

@media(max-width:920px){
  .brand{width:100%}
  .search-wrap{max-width:none}
  .topbar{gap:6px;padding:7px 8px}
  .control{min-height:36px;padding:6px 8px}
  .legend{display:none}
  .minimap{width:180px;height:125px}
}
@media(max-width:600px){
  .canvas-hint{display:none}
  .person-card{width:176px}
  .genealogy-app{height:calc(100% - 52px)}
  .topbar{max-height:40vh;overflow:auto;align-content:flex-start}
  .research-tools{font-size:13px}
  .profile{right:8px;top:8px;width:calc(100% - 16px);max-height:calc(100% - 16px)}
  .minimap{right:8px;bottom:8px;width:150px;height:100px}
}


/* v0.6 tribal clarity */
.person-card.tribal-card{border-left:7px solid var(--tribe-color)}
.person-card.tribe-founder{
  border-color:var(--tribe-color);
  border-left-width:7px;
}
.person-card.tribe-founder .person-name{color:var(--tribe-color)}
.person-card .gem-marker{
  position:absolute;right:9px;top:7px;font-size:13px;line-height:1;color:var(--tribe-color);
  text-shadow:0 0 8px rgba(255,255,255,.08)
}
.person-card.tribal-card .badge.tribe{border-color:var(--tribe-color);color:var(--tribe-color)}

.branch-label{
  position:absolute;
  width:auto !important;
  max-width:520px;
  min-height:30px;
  padding:6px 10px 6px 12px;
  border:1px solid #314858;
  border-left:5px solid var(--branch-color);
  border-radius:8px;
  background:rgba(8,19,28,.94);
  color:var(--branch-color);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.25;
  pointer-events:none;
  text-shadow:0 1px 0 #071018;
  box-shadow:0 4px 12px rgba(0,0,0,.2)
}

.tribe-legend{
  position:absolute;left:14px;top:14px;z-index:25;width:min(620px,calc(100% - 28px));
  background:rgba(9,18,26,.98);border:1px solid #314a5b;border-radius:14px;padding:13px;
  box-shadow:0 16px 42px rgba(0,0,0,.4)
}
.tribe-legend.hidden{display:none}
.tribe-legend-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tribe-legend-head strong{font-size:15px}
.tribe-legend-note{margin-top:7px;color:var(--muted);font-size:11px;line-height:1.4}
.tribe-legend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}
.tribe-legend-item{
  display:grid;grid-template-columns:14px 1fr;gap:7px;align-items:start;
  padding:7px 8px;border:1px solid #263d4c;border-radius:9px;background:#0d1a24
}
.tribe-chip{width:12px;height:12px;border-radius:3px;margin-top:2px;background:var(--tribe-color)}
.tribe-legend-item strong{display:block;font-size:12px;color:var(--tribe-color)}
.tribe-legend-item small{display:block;margin-top:2px;color:#a9bbc8;font-size:10px;line-height:1.25}

.profile-tribe{
  display:inline-flex;align-items:center;gap:7px;margin-top:4px;padding:4px 8px;
  border:1px solid var(--tribe-color);border-radius:999px;color:var(--tribe-color);font-size:12px
}
.profile-tribe-dot{width:9px;height:9px;border-radius:50%;background:var(--tribe-color)}
@media(max-width:700px){.tribe-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.tribe-legend-grid{grid-template-columns:1fr}}


/* v0.7 cross-tree affiliation bridges */
.swatch.affiliation{
  border-top:2px dotted #aab8c3;
}
.affiliation-edge{
  fill:none;
  stroke:var(--affiliation-color,#aab8c3);
  stroke-width:2;
  stroke-dasharray:3 8;
  stroke-linecap:round;
  opacity:.72;
  pointer-events:stroke;
  cursor:help;
}
.affiliation-edge:hover,
.affiliation-edge.active{
  stroke-width:4;
  opacity:1;
}
.affiliation-terminal{
  fill:var(--affiliation-color,#aab8c3);
  opacity:.9;
  pointer-events:none;
}
.affiliation-label{
  position:absolute;
  z-index:4;
  min-width:104px;
  max-width:170px;
  padding:5px 8px;
  border:1px dashed var(--affiliation-color,#aab8c3);
  border-radius:999px;
  background:rgba(7,16,24,.92);
  color:var(--affiliation-color,#aab8c3);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-align:center;
  pointer-events:auto;
  cursor:help;
}
.affiliation-label:hover{
  background:#10202d;
}
.world.affiliations-hidden .affiliation-edge,
.world.affiliations-hidden .affiliation-terminal,
.world.affiliations-hidden .affiliation-label{
  display:none;
}
.person-card .affiliation-badge{
  display:inline-block;
  margin-top:6px;
  margin-left:4px;
  padding:2px 6px;
  border:1px dotted #8ca1b0;
  border-radius:999px;
  color:#b8c9d4;
  font-size:10px;
}
.profile-affiliation{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
  padding:4px 8px;
  border:1px dotted #8ca1b0;
  border-radius:999px;
  color:#c5d5df;
  font-size:12px;
}
.connection-panel{
  margin-top:13px;
  padding-top:11px;
  border-top:1px solid #253b4a;
}
.connection-item{
  margin-top:7px;
  padding:8px 9px;
  border:1px dashed #334e60;
  border-radius:9px;
  background:#0b1821;
}
.connection-item strong{
  display:block;
  font-size:12px;
  color:#dce8ef;
}
.connection-item small{
  display:block;
  margin-top:3px;
  color:#9fb2c0;
  line-height:1.35;
}


/* v0.8 relationship-readability hardening */
.family-parent.vertical-union{stroke-dasharray:7 6;stroke-width:3;opacity:.9}
.family-junction.vertical-union{fill:#071018;stroke:var(--union);stroke-width:3}
.layout-warning{
  position:absolute;left:14px;top:62px;z-index:45;max-width:520px;padding:9px 11px;
  border:1px solid #9f624d;border-radius:9px;background:#2a1713;color:#ffd9cb;
  font-size:12px;line-height:1.4
}


/* v0.16.6 — direct documented relationship displayed across distant clusters */
.affiliation-edge.documented-remote{
  stroke-dasharray:none;
  stroke-width:1.5;
  opacity:.52;
}
.affiliation-edge.documented-remote:hover,
.affiliation-edge.documented-remote.active{
  stroke-width:3;
  opacity:.95;
}
.affiliation-label.documented-remote{
  border-style:solid;
  opacity:.86;
  letter-spacing:.06em;
}


/* v0.39 — toggleable deuterocanonical / extra-biblical genealogy layer */
.extended-toggle[aria-pressed="true"]{
  border-color:#8f6fc5;
  color:#e2d7f4;
  box-shadow:0 0 0 2px rgba(155,123,209,.10) inset;
}
.swatch.extended{
  border-top:3px solid #9b7bd1;
  box-shadow:0 -2px 0 #d6aa55 inset;
}

.world.extended-hidden [data-layer="extended"],
.minimap.extended-hidden .mini-node[data-layer="extended"]{
  display:none !important;
}

.person-card[data-layer="extended"]{
  border-top:3px solid var(--source-layer-color,#9b7bd1);
  background:linear-gradient(180deg,rgba(155,123,209,.08),rgba(11,25,35,.98));
}
.person-card.source-deuterocanon{--source-layer-color:#d6aa55}
.person-card.source-extrabiblical{--source-layer-color:#9b7bd1}

.source-badge{
  display:inline-block;
  margin-top:6px;
  margin-left:4px;
  padding:2px 6px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
}
.source-badge.dc{color:#d6aa55}
.source-badge.extra{color:#b69de0}

.profile-source{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:6px;
  padding:4px 8px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:11px;
}
.profile-source.dc{color:#d6aa55}
.profile-source.extra{color:#b69de0}

.family-edge.extended-edge.source-deuterocanon{
  stroke:#d6aa55 !important;
}
.family-edge.extended-edge.source-extrabiblical{
  stroke:#9b7bd1 !important;
}
.family-junction.extended-edge.source-deuterocanon{
  fill:#d6aa55 !important;
  stroke:#f1d79e !important;
}
.family-junction.extended-edge.source-extrabiblical{
  fill:#9b7bd1 !important;
  stroke:#d6c5ef !important;
}
.affiliation-edge.extended-edge.source-deuterocanon{
  --affiliation-color:#d6aa55 !important;
}
.affiliation-edge.extended-edge.source-extrabiblical{
  --affiliation-color:#9b7bd1 !important;
}
.branch-label.source-deuterocanon{
  --branch-color:#d6aa55 !important;
}
.branch-label.source-extrabiblical{
  --branch-color:#9b7bd1 !important;
}


/* v0.44 — independently toggleable Later Traditions layer */
.later-toggle[aria-pressed="true"]{
  border-color:#55b7a6;
  color:#d9fff7;
  box-shadow:0 0 0 2px rgba(85,183,166,.10) inset;
}
.swatch.later{
  border-top:3px solid #55b7a6;
  box-shadow:
    5px 0 0 #63a9d8,
    10px 0 0 #d78d5d,
    15px 0 0 #c183d5,
    20px 0 0 #9bbd63;
}

.world.later-hidden [data-layer="later"],
.minimap.later-hidden .mini-node[data-layer="later"]{
  display:none !important;
}

.person-card[data-layer="later"]{
  border-top:3px solid var(--source-layer-color,#55b7a6);
  background:linear-gradient(180deg,rgba(85,183,166,.07),rgba(11,25,35,.98));
}

.person-card.source-rabbinic{--source-layer-color:#55b7a6}
.person-card.source-targumic{--source-layer-color:#63a9d8}
.person-card.source-syriac{--source-layer-color:#d78d5d}
.person-card.source-patristic{--source-layer-color:#c183d5}
.person-card.source-medieval{--source-layer-color:#9bbd63}

.source-badge.rabbinic,.profile-source.rabbinic{color:#72d2c0}
.source-badge.targumic,.profile-source.targumic{color:#83c7ef}
.source-badge.syriac,.profile-source.syriac{color:#efa978}
.source-badge.patristic,.profile-source.patristic{color:#daa1e8}
.source-badge.medieval,.profile-source.medieval{color:#b7d77b}

.family-edge.source-rabbinic{stroke:#55b7a6 !important}
.family-edge.source-targumic{stroke:#63a9d8 !important}
.family-edge.source-syriac{stroke:#d78d5d !important}
.family-edge.source-patristic{stroke:#c183d5 !important}
.family-edge.source-medieval{stroke:#9bbd63 !important}

.family-junction.source-rabbinic{fill:#55b7a6 !important;stroke:#b8fff2 !important}
.family-junction.source-targumic{fill:#63a9d8 !important;stroke:#cbeaff !important}
.family-junction.source-syriac{fill:#d78d5d !important;stroke:#ffd3b5 !important}
.family-junction.source-patristic{fill:#c183d5 !important;stroke:#f1cef8 !important}
.family-junction.source-medieval{fill:#9bbd63 !important;stroke:#ddf3b4 !important}

.affiliation-edge.source-rabbinic{--affiliation-color:#55b7a6 !important}
.affiliation-edge.source-targumic{--affiliation-color:#63a9d8 !important}
.affiliation-edge.source-syriac{--affiliation-color:#d78d5d !important}
.affiliation-edge.source-patristic{--affiliation-color:#c183d5 !important}
.affiliation-edge.source-medieval{--affiliation-color:#9bbd63 !important}

.branch-label.source-rabbinic{--branch-color:#55b7a6 !important}
.branch-label.source-targumic{--branch-color:#63a9d8 !important}
.branch-label.source-syriac{--branch-color:#d78d5d !important}
.branch-label.source-patristic{--branch-color:#c183d5 !important}
.branch-label.source-medieval{--branch-color:#9bbd63 !important}


/* BTL integration shell */
.btl-genealogy-sitebar{
  height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:7px 16px;border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(7,16,24,.98);box-shadow:0 7px 24px rgba(0,0,0,.24);z-index:60
}
.btl-genealogy-brand{display:flex;align-items:center;gap:10px;min-width:0;color:var(--text);text-decoration:none}
.btl-genealogy-brandmark{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:linear-gradient(145deg,#f2d797,#e6bc64);color:#14100a;font:800 17px Georgia,"Times New Roman",serif}
.btl-genealogy-brand strong,.btl-genealogy-brand small{display:block}.btl-genealogy-brand strong{font-size:13px}.btl-genealogy-brand small{margin-top:1px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.btl-genealogy-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.btl-genealogy-nav a{padding:7px 9px;border-radius:8px;color:#b6c5d0;text-decoration:none;font-size:12px;font-weight:750}.btl-genealogy-nav a:hover,.btl-genealogy-nav a:focus-visible{background:rgba(255,255,255,.07);color:#fff;outline:none}
@media(max-width:760px){.btl-genealogy-sitebar{height:52px;padding:6px 9px}.genealogy-app{height:calc(100% - 52px)}.btl-genealogy-brand small{display:none}.btl-genealogy-nav{overflow-x:auto;flex-wrap:nowrap;max-width:62vw}.btl-genealogy-nav a{white-space:nowrap;padding:6px 7px;font-size:11px}}
@media(max-width:500px){.btl-genealogy-brand strong{font-size:11px}.btl-genealogy-brandmark{width:34px;height:34px;flex-basis:34px}.btl-genealogy-nav{max-width:58vw}}

/* v0.51 — three-view genealogy navigation: Biblical / Kings & Rulers / Prophets */
.genealogy-app{grid-template-rows:auto auto 1fr}
.genealogy-view-tabs{
  display:flex;align-items:center;gap:6px;min-height:44px;padding:6px 11px;
  background:#08121a;border-bottom:1px solid #263a48;z-index:29;overflow-x:auto
}
.genealogy-view-tab{
  min-height:31px;padding:6px 13px;border:1px solid #314a5c;border-radius:999px;
  background:#0d1c27;color:#aabdc9;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer
}
.genealogy-view-tab:hover,.genealogy-view-tab:focus-visible{background:#162b3a;color:#fff;outline:none;border-color:#59788d}
.genealogy-view-tab.active{background:#4b3a18;border-color:#95733a;color:#ffe3a3;box-shadow:0 0 0 2px rgba(214,170,85,.10) inset}
.genealogy-view-hidden{display:none!important}
.genealogy-app.view-leadership .topbar>:not(.brand){display:none}
.genealogy-app.view-leadership .topbar{min-height:54px}
.genealogy-app.view-leadership .brand small{color:#c5d4dd}

.leadership-view-shell{position:absolute;inset:0;overflow:hidden;background:#071018;z-index:18}
.leadership-view-shell.hidden{display:none}
.leadership-toolbar{
  position:absolute;left:12px;right:12px;top:10px;z-index:26;display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  padding:8px 9px;border:1px solid #304858;border-radius:12px;background:rgba(9,20,29,.96);box-shadow:0 8px 25px rgba(0,0,0,.28)
}
.leadership-toolbar-copy{min-width:270px;margin-right:4px;line-height:1.08}
.leadership-toolbar-copy strong{display:block;font-size:15px}
.leadership-toolbar-copy small{display:block;margin-top:4px;color:#98acba;font-size:10px;line-height:1.25}
.leadership-search-wrap{flex:1;min-width:210px;max-width:350px}
.leadership-search-wrap input{width:100%;min-height:36px;padding:7px 10px;border:1px solid #294153;border-radius:8px;background:#0f1c27;color:var(--text);outline:none}
.leadership-search-wrap input:focus{border-color:#6c8ca2;box-shadow:0 0 0 3px rgba(108,140,162,.15)}
.leadership-viewport{
  position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;
  background:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px),
    linear-gradient(var(--grid-strong) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-strong) 1px,transparent 1px);
  background-size:40px 40px,40px 40px,200px 200px,200px 200px
}
.leadership-viewport.dragging{cursor:grabbing}
.leadership-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.leadership-edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:3}
.leadership-axis{position:absolute;left:36px;top:0;width:2px;background:#3b5362;opacity:.7;z-index:1}
.leadership-year-marker{position:absolute;left:26px;right:20px;height:1px;background:rgba(110,139,157,.16);z-index:1;pointer-events:none}
.leadership-year-marker:before{content:"";position:absolute;left:5px;top:-3px;width:7px;height:7px;border-radius:50%;background:#6b8798}
.leadership-year-marker span{position:absolute;left:-22px;top:6px;width:78px;color:#738c9c;font-size:10px;font-weight:800;text-align:left;transform:rotate(-90deg);transform-origin:0 0}
.leadership-lane{position:absolute;border:1px solid rgba(86,113,130,.16);border-radius:16px;background:rgba(11,24,33,.22);z-index:0;pointer-events:none}
.leadership-lane-label{
  position:absolute;z-index:4;min-width:250px;padding:6px 9px;border:1px solid #314a5b;border-radius:8px;background:#0a1821;
  color:#d7e4ec;font-size:12px;font-weight:900;letter-spacing:.045em;text-transform:uppercase;pointer-events:none
}
.leadership-era-line{position:absolute;left:58px;height:0;border-top:2px solid rgba(163,88,177,.62);z-index:2;pointer-events:none}
.leadership-era-line span{position:absolute;left:12px;top:-22px;padding:2px 7px;border-radius:999px;background:#201128;color:#d7a8df;font-size:10px;font-weight:850;letter-spacing:.04em}
.leadership-card{
  position:absolute;z-index:6;width:206px;min-height:92px;padding:9px 10px;text-align:left;border:2px solid #3b596d;border-radius:11px;
  background:linear-gradient(180deg,#122535,#0d1b26);color:#eef5fb;box-shadow:0 5px 16px rgba(0,0,0,.28);cursor:pointer;user-select:none
}
.leadership-card:hover{border-color:#7a9fb5;z-index:8}
.leadership-card.selected{border-color:#d6aa55;box-shadow:0 0 0 4px rgba(214,170,85,.16),0 8px 24px rgba(0,0,0,.38);z-index:9}
.leadership-card[data-lane="judah"]{border-left-color:#7ea2ff}
.leadership-card[data-lane="israel"],.leadership-card[data-lane="north"]{border-left-color:#69c69f}
.leadership-card[data-lane="later"],.leadership-card[data-lane="restoration"]{border-left-color:#c59dd8}
.leadership-card[data-lane="imperial"]{border-left-color:#dc8b6b}
.leadership-card[data-lane="exile"]{border-left-color:#a6a26f}
.leadership-card[data-lane="disputed"]{border-left-color:#d4a259}
.leadership-card.uncertain{background:repeating-linear-gradient(135deg,#14222b 0,#14222b 10px,#1b2630 10px,#1b2630 20px);border-style:dashed}
.leadership-card-name{display:block;font-size:15px;font-weight:900;line-height:1.08}
.leadership-card-date{display:block;margin-top:5px;color:#d1b36d;font-size:10px;font-weight:800}
.leadership-card-role{display:block;margin-top:3px;color:#9eb1c1;font-size:10px;line-height:1.2}
.leadership-card.compact{padding:7px 9px;border-radius:10px}
.leadership-card.compact .leadership-card-name{font-size:13px;line-height:1.08}
.leadership-card.compact .leadership-card-date{margin-top:4px;font-size:10px}
.leadership-card.compact .leadership-card-role{display:none}
.leadership-world.zoom-far .leadership-card{min-height:52px;padding:7px 8px}
.leadership-world.zoom-far .leadership-card-date,.leadership-world.zoom-far .leadership-card-role{display:none}
.leadership-world.zoom-far .leadership-card-name{font-size:13px}
.leadership-edge{fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.82}
.leadership-edge.family{stroke:#d6aa55;stroke-width:4}
.leadership-edge.succession{stroke:#7892a3;stroke-width:2.4;stroke-dasharray:9 7}
.leadership-edge.mentor{stroke:#58b9aa;stroke-width:3.2}
.leadership-profile{
  position:absolute;top:88px;right:14px;z-index:31;width:min(405px,calc(100% - 28px));max-height:calc(100% - 108px);overflow:auto;
  padding:16px;border:1px solid #314858;border-radius:14px;background:#0c1721;box-shadow:0 16px 42px rgba(0,0,0,.48)
}
.leadership-profile.hidden{display:none}
.leadership-profile h2{margin:0 70px 4px 0;font-size:24px}
.leadership-profile .sub{margin-bottom:12px;color:#9eb1c1}
.leadership-profile-warning{margin:8px 0;padding:8px 9px;border:1px solid #806c36;border-radius:9px;background:#211b0d;color:#f4d68d;font-size:12px}
.leadership-related{display:grid;gap:5px;margin-top:5px}
.leadership-related button{padding:6px 8px;border:1px solid #345166;border-radius:8px;background:#0f1e2a;color:#d8e8f2;text-align:left;cursor:pointer;font-size:11px}
.leadership-key{
  position:absolute;left:14px;bottom:14px;z-index:27;width:min(430px,calc(100% - 28px));padding:10px 12px;border:1px solid #2d4353;border-radius:12px;
  background:rgba(9,18,26,.95);color:#bfd0dc;font-size:11px;box-shadow:0 8px 24px rgba(0,0,0,.25)
}
.leadership-key strong{display:block;margin-bottom:6px}
.leadership-key>span{display:inline-flex;align-items:center;margin:2px 12px 4px 0}
.leadership-key-line{display:inline-block;width:26px;height:0;margin-right:6px}
.leadership-key-line.family{border-top:4px solid #d6aa55}
.leadership-key-line.succession{border-top:3px dashed #7892a3}
.leadership-key-line.mentor{border-top:3px solid #58b9aa}
.leadership-note-toggle{display:block;margin-top:6px;padding:4px 7px;border:1px solid #365064;border-radius:7px;background:#112431;color:#c7d6df;cursor:pointer;font-size:10px;font-weight:800}
.leadership-notes{margin-top:7px;padding-top:5px;border-top:1px solid #283d4b;color:#9eb1c1;line-height:1.35}
.leadership-notes.hidden{display:none}
.leadership-notes p{margin:5px 0}
.leadership-hint{
  position:absolute;left:50%;bottom:15px;transform:translateX(-50%);z-index:25;padding:5px 9px;border:1px solid #2e4658;border-radius:999px;
  background:rgba(7,16,24,.88);color:#a9bcc9;font-size:11px;pointer-events:none
}
@media(max-width:900px){
  .leadership-toolbar{right:8px;left:8px;top:7px;max-height:38vh;overflow:auto}
  .leadership-toolbar-copy{width:100%;min-width:0}
  .leadership-profile{top:118px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 132px)}
  .leadership-key{left:8px;bottom:8px;max-width:340px}
}
@media(max-width:600px){
  .genealogy-view-tabs{min-height:40px;padding:5px 7px}
  .genealogy-view-tab{font-size:11px;padding:5px 9px}
  .leadership-search-wrap{min-width:160px}
  .leadership-hint{display:none}
  .leadership-key{display:none}
}
