/* Seth Family Tree — styles. Colours adapt to light/dark themes. */
.sft-wrap,.sft-prof{--sft-accent:#8a5a2b;--sft-line:rgba(127,127,127,.45);--sft-card:rgba(127,127,127,.09);line-height:1.35}
.sft-wrap *,.sft-prof *{box-sizing:border-box}

/* toolbar */
.sft-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 1.25rem}
.sft-toolbar input[type=search]{flex:1 1 220px;min-width:0;padding:.6rem .8rem;border:1px solid var(--sft-line);border-radius:8px;background:transparent;color:inherit;font:inherit}
.sft-btn{padding:.55rem .9rem;border:1px solid var(--sft-line);border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.sft-btn:hover,.sft-btn:focus-visible{border-color:var(--sft-accent);color:var(--sft-accent)}
.sft-status{font-size:.85em;opacity:.75}

/* tree — specific selectors + !important so themes cannot distort the lines */
.sft-wrap ul.sft-tree,.sft-wrap ul.sft-children,.sft-wrap ul.sft-dir,.sft-prof ul.sft-plist{list-style:none!important;margin:0!important;padding:0!important;border:0!important}
.sft-wrap ul.sft-tree li,.sft-wrap ul.sft-children li{list-style:none!important;margin:0!important;padding:6px 0!important;position:relative;background:none!important;border:0!important}
.sft-wrap ul.sft-tree li::marker{content:""}
.sft-wrap details{border:0!important;margin:0!important;padding:0!important;background:none!important;box-shadow:none!important}
.sft-wrap summary{margin:0!important;padding:0!important;background:none!important;border:0!important}
.sft-wrap ul.sft-children{margin-left:21px!important;padding-left:24px!important}
/* vertical line for each child, shortened on the last child so it ends at the elbow */
.sft-wrap ul.sft-children>li::before{content:"";position:absolute;left:-24px;top:0;bottom:0;border-left:2px solid var(--sft-line)}
.sft-wrap ul.sft-children>li:last-child::before{bottom:auto;height:37px}
/* horizontal elbow into the card */
.sft-wrap ul.sft-children>li::after{content:"";position:absolute;left:-24px;top:37px;width:22px;border-top:2px solid var(--sft-line)}

.sft-has>details>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.sft-has>details>summary::-webkit-details-marker{display:none}
.sft-has>details>summary::before{content:"";flex:none;width:0;height:0;border-left:7px solid var(--sft-accent);border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s}
.sft-has>details[open]>summary::before{transform:rotate(90deg)}
.sft-wrap li.sft-leaf{padding-left:17px!important}

.sft-couple{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 12px;border:1px solid var(--sft-line);border-radius:14px;background:var(--sft-card)}
.sft-amp{opacity:.55;font-size:.9em}
.sft-chip{display:inline-flex;align-items:center;gap:9px;color:inherit;text-decoration:none!important;border:0!important;box-shadow:none!important}
.sft-chip:hover .sft-name{color:var(--sft-accent)}
.sft-av{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center 20%;flex:none;display:block}
.sft-ini{display:inline-flex;align-items:center;justify-content:center;background:var(--sft-accent);color:#fff;font-weight:600;font-size:14px;letter-spacing:.5px}
.sft-meta{display:flex;flex-direction:column}
.sft-name{font-weight:600;font-size:.95em}
.sft-years{font-size:.78em;opacity:.7}
.sft-count{margin-left:2px;font-size:.72em;min-width:1.6em;text-align:center;padding:1px 7px;border-radius:99px;background:var(--sft-accent);color:#fff}
.sft-hit>.sft-couple,.sft-hit>details>summary .sft-couple{outline:3px solid var(--sft-accent);outline-offset:2px}

/* directory */
.sft-dir{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.sft-dir li{margin:0}
.sft-dir .sft-couple{display:flex;width:100%}
.sft-dir li[hidden]{display:none}

/* profile page */
.sft-profile{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;margin:0 0 1.5rem}
.sft-ph .sft-av{width:220px;height:auto;max-width:100%;aspect-ratio:3/4;border-radius:14px;object-position:center 20%}
.sft-ph .sft-ini{width:160px;height:160px;font-size:48px}
.sft-pd{flex:1 1 260px}
.sft-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}
.sft-facts dt{font-weight:600;opacity:.75}
.sft-facts dd{margin:0}
.sft-h{margin:1.6rem 0 .6rem}
.sft-plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.sft-plist .sft-couple{display:flex}
.sft-back{margin-top:1.5rem}

@media (max-width:600px){
  .sft-wrap ul.sft-children{margin-left:8px!important;padding-left:16px!important}
  .sft-wrap ul.sft-children>li::before{left:-16px}
  .sft-wrap ul.sft-children>li::after{left:-16px;width:14px}
  .sft-couple{padding:6px 9px}
  .sft-av{width:38px;height:38px}
}
