:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#687386;--primary:#4f46e5;--primary2:#7c3aed;--border:#e6e9f0;--danger:#dc2626;--soft:#eef0ff;--shadow:0 12px 35px rgba(30,41,80,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{border:0;border-radius:11px;padding:10px 15px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;cursor:pointer;font-weight:700;transition:.15s}button:hover{transform:translateY(-1px);opacity:.94}.hidden{display:none!important}.topbar{height:68px;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.brand{font-size:21px;font-weight:850}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn,.ghost{background:transparent!important;color:var(--text);border:1px solid var(--border)}.danger{background:var(--danger)}.layout{display:flex;min-height:calc(100vh - 68px)}.sidebar{width:235px;background:var(--card);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:6px}.nav{background:transparent;color:var(--text);text-align:left;display:flex;gap:10px;align-items:center;width:100%}.nav.active,.nav:hover{background:var(--soft);color:var(--primary);transform:none}.content{padding:28px;max-width:1550px;width:100%;margin:auto}.page-head,.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.hero{padding:8px 0 16px}.hero h2,.page-head h2{margin:4px 0 6px;font-size:30px}.hero p,.page-head p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:850;color:var(--primary)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat,.panel,.member-card,.event,.report-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px}.stat{padding:20px;position:relative}.stat-icon{font-size:24px}.stat .n{font-size:34px;font-weight:850;margin-top:8px}.stat .l{color:var(--muted);font-size:13px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{padding:20px;margin-bottom:20px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:15px}.panel-title h3,.panel h3{margin:0}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tips{margin-top:0}.setup-box{display:flex;gap:14px;align-items:center;padding:16px;background:var(--soft);border-radius:14px;margin:16px 0}.setup-box p{margin:5px 0 0;color:var(--muted);font-size:13px}.setup-icon{font-size:35px}.full-btn{width:100%}.toolbar{margin-bottom:18px;display:flex;gap:10px}.toolbar input,.toolbar select{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text)}.toolbar input{flex:1}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}.member-card{padding:17px;cursor:pointer;transition:.18s;overflow:hidden}.member-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(30,41,80,.13)}.member-card-top{display:flex;justify-content:space-between;align-items:flex-start}.card-actions{display:flex;gap:5px}.mini-btn{padding:7px;background:var(--soft);color:var(--primary);font-size:13px}.avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,#e8eaff,#ddd6fe);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:850;color:#4338ca;overflow:hidden}.avatar.small{width:40px;height:40px;font-size:14px}.avatar.large{width:82px;height:82px;font-size:27px}.avatar.profile{width:112px;height:112px;font-size:36px}.member-name{font-size:20px;font-weight:850;margin-top:15px}.member-role{color:var(--muted);font-size:13px;margin-top:3px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.chip{padding:5px 9px;background:var(--soft);border-radius:99px;font-size:11px;color:var(--primary)}.card-footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.link-btn{background:transparent;color:var(--primary);padding:0;font-size:12px}.mini-row,.connection-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer}.mini-row:last-child,.connection-row:last-child{border-bottom:0}.mini-row span,.connection-row span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.event-list{display:grid;gap:12px}.event{padding:17px;display:flex;gap:15px}.event-icon{font-size:27px}.event-body{flex:1}.tree-tools{display:flex;gap:15px;align-items:center;margin:-8px 0 14px}.tree-tools input{width:min(430px,100%);padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--card);color:var(--text)}.toolbar-actions{display:flex;gap:6px}.tree-panel{height:calc(100vh - 220px);min-height:560px;overflow:hidden;padding:0}.tree-panel svg{width:100%;height:100%;background:radial-gradient(circle at center,#fff 0,#f8f9fd 65%,#f2f4fa 100%)}.tree-link{fill:none;stroke:#b8bfd0;stroke-width:2.5}.tree-node{cursor:pointer}.tree-card{width:224px;height:140px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 20px rgba(30,41,80,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px;text-align:center}.tree-card img,.tree-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover}.tree-avatar{display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--primary);font-weight:850;font-size:16px}.tree-card b{font-size:12px;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.tree-card span{font-size:9px;color:var(--muted);white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.tree-node.match .tree-card{outline:3px solid #f59e0b}.empty,.empty-panel,.empty-tree{text-align:center;color:var(--muted);padding:30px}.empty-panel{background:var(--card);border:1px dashed var(--border);border-radius:16px}.empty-tree{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.empty-tree>div{font-size:55px}.empty-tree h3{color:var(--text);margin:8px}.report-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.report-card{padding:25px;text-decoration:none;color:var(--text);display:grid;gap:8px;font-size:26px}.report-card b{font-size:17px}.report-card span{font-size:13px;color:var(--muted)}.security-note{margin-top:20px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,#7c3aed,#111827 55%,#020617)}.login-card{width:min(420px,92vw);background:#fff;border-radius:24px;padding:38px;box-shadow:0 30px 90px rgba(0,0,0,.3);text-align:center}.login-card h1{margin:5px 0;font-size:31px}.login-card p{color:#667085}.logo-badge{font-size:48px}.login-card form{display:grid;gap:12px;margin:24px 0}.login-card input{padding:13px;border:1px solid #ddd;border-radius:11px}.modal{position:fixed;inset:0;background:rgba(2,6,23,.6);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20;backdrop-filter:blur(3px)}.modal-card{background:var(--card);border-radius:20px;padding:23px;width:min(650px,100%);max-height:91vh;overflow:auto}.modal-card.wide{width:min(940px,100%)}.modal-card.small{width:min(460px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{margin:4px 0}.modal-head button{background:transparent;color:var(--text);font-size:20px;padding:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label,.modal-card>label,#eventForm label,#relationshipForm label{display:grid;gap:6px;font-weight:700;font-size:12px;color:var(--muted)}.form-grid input,.form-grid select,.form-grid textarea,.modal-card input,.modal-card select,.modal-card textarea{padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);outline:none}.form-grid input:focus,.form-grid select:focus,.modal-card input:focus{border-color:var(--primary)}textarea{min-height:82px;resize:vertical}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.profile-hero{display:flex;gap:18px;align-items:center;padding:8px 0 20px}.profile-hero h2{margin:0 0 5px}.profile-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.profile-actions button{font-size:12px;padding:8px 11px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.profile-row{display:grid;grid-template-columns:120px 1fr;gap:8px;padding:11px 0;border-bottom:1px solid var(--border);font-size:13px}.profile-row b{color:var(--muted)}.connection-section{margin-top:22px}.upload-preview{height:190px;border:2px dashed var(--border);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:48px;margin-bottom:15px;overflow:hidden}.upload-preview img{width:100%;height:100%;object-fit:contain}.dark{--bg:#0b1020;--card:#121827;--text:#e7eaf0;--muted:#9aa5b6;--border:#273044;--soft:#202742;--shadow:0 12px 35px rgba(0,0,0,.28)}body.dark .tree-panel svg{background:#0f1524}.dark .tree-card{background:#121827}.dark .login-card{color:#172033}@media(max-width:1000px){.sidebar{width:72px}.nav span{display:none}.nav{justify-content:center}.content{padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr}}@media(max-width:650px){.topbar{padding:0 12px}.brand span{display:none}.content{padding:13px}.hero,.page-head{align-items:flex-start;gap:12px;flex-direction:column}.stats{gap:10px}.stat{padding:14px}.stat .n{font-size:27px}.member-toolbar{display:grid;grid-template-columns:1fr 1fr}.member-toolbar input{grid-column:1/-1}.form-grid,.profile-grid{grid-template-columns:1fr}.full{grid-column:auto}.tree-panel{min-height:520px;height:calc(100vh - 300px)}.tree-tools{align-items:flex-start;flex-direction:column}.report-cards{grid-template-columns:1fr}.profile-hero{align-items:flex-start;flex-direction:column}.quick-actions{grid-template-columns:1fr 1fr}}

.deceased-badge{display:inline-flex;align-items:center;margin-top:6px;padding:4px 8px;border-radius:999px;background:#f3e8e8;color:#7f1d1d;font-size:.78rem;font-weight:700}.tree-deceased{display:block;margin-top:4px;color:#7f1d1d;font-style:normal;font-size:.72rem;font-weight:700}.death-help{padding:10px 12px;background:var(--panel,#f7f7f8);border-radius:10px}.hidden{display:none!important}

.tree-family-card{gap:6px;padding:8px}.tree-couple-label{font-size:9px;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.tree-people{display:flex;justify-content:center;gap:12px;width:100%}.tree-people>div,.tree-people>img{flex:0 0 auto}.tree-person-name{font-size:11px;font-weight:850;max-width:94px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.tree-people{align-items:flex-start}.tree-people .tree-avatar,.tree-people img{display:block}.tree-family-card .tree-deceased{font-size:9px;margin-top:1px}

/* Modern generation + family branch tree */
.tree-panel{height:calc(100vh - 220px);min-height:600px;overflow:auto;padding:0;background:var(--card)}
.tree-panel #treeCanvas{min-width:1050px;min-height:100%;overflow:auto;padding:34px 28px 60px}
.family-tree-modern{width:100%;max-width:1500px;margin:0 auto;transition:transform .2s ease}
.tree-root{width:min(560px,100%);margin:0 auto;padding:22px 24px 18px;background:linear-gradient(135deg,#eef7ff,#fff);border:2px solid #9ac7f4;border-radius:24px;box-shadow:0 14px 35px rgba(30,64,120,.12);text-align:center}
.generation-pill{display:inline-flex;padding:6px 12px;border-radius:999px;background:#e0efff;color:#145ea8;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.root-couple{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px}
.root-person{width:190px;padding:10px;border-radius:16px;cursor:pointer;transition:.2s}.root-person:hover,.couple-member:hover,.branch-person:hover{transform:translateY(-2px)}
.root-person img,.root-avatar{width:78px;height:78px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 5px 16px rgba(0,0,0,.12);margin:auto}.root-avatar,.couple-avatar,.branch-avatar{display:flex;align-items:center;justify-content:center;background:var(--soft);color:var(--primary);font-weight:900}
.root-person h3{font-size:17px;margin:9px 0 3px}.root-person span,.couple-member small,.branch-person small{font-size:11px;color:var(--muted);font-weight:700}.root-marriage{font-size:22px;flex:0 0 auto}.root-title{margin-top:12px;color:var(--muted);font-size:12px;font-weight:800}
.generation-connector{height:42px;width:2px;background:#b8bfd0;margin:0 auto;position:relative}.generation-connector:after{content:'';position:absolute;bottom:0;left:-5px;border:5px solid transparent;border-top-color:#b8bfd0}
.generation-heading{text-align:center;margin:4px 0 20px}.generation-heading span{display:block;color:var(--primary);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.generation-heading b{display:block;font-size:22px;margin:3px 0}.generation-heading small{color:var(--muted);font-size:12px}
.family-branches{display:grid;grid-template-columns:repeat(5,minmax(205px,1fr));gap:18px;align-items:start;position:relative}.family-branches:before{content:'';position:absolute;top:-12px;left:10%;right:10%;height:2px;background:#d0d5df}
.family-branch{position:relative;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:13px;box-shadow:0 10px 28px rgba(30,41,80,.08);min-height:260px}.family-branch:before{content:'';position:absolute;top:-13px;left:50%;width:2px;height:13px;background:#d0d5df}.branch-head{text-align:center;margin-bottom:9px}.branch-head span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:900}.branch-head strong{display:block;font-size:12px;margin-top:2px}
.branch-couple{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px;background:var(--soft);border-radius:14px}.couple-member{display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer;min-width:72px}.couple-member img,.couple-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--card);box-shadow:0 3px 9px rgba(0,0,0,.1)}.couple-member b{font-size:10px;margin-top:5px;max-width:82px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.marriage{font-size:14px}.branch-connector{height:18px;width:2px;background:#c9ced8;margin:0 auto;position:relative}.branch-connector:after{content:'';position:absolute;bottom:0;left:-4px;border:4px solid transparent;border-top-color:#c9ced8}.branch-generation-label{text-align:center;font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin:2px 0 7px}.branch-children{display:grid;gap:7px}.branch-person{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:.2s}.branch-person img,.branch-avatar{width:39px;height:39px;border-radius:50%;object-fit:cover;flex:0 0 39px}.branch-person-info{min-width:0}.branch-person-info b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.branch-person-info small{display:block;font-size:9px;margin-top:2px}.branch-empty{text-align:center;color:var(--muted);font-size:11px;padding:15px 5px;border:1px dashed var(--border);border-radius:12px}.branch-empty.large{grid-column:1/-1;padding:30px}.tree-match{outline:3px solid #f59e0b!important;box-shadow:0 0 0 5px rgba(245,158,11,.12)!important}.hidden{display:none!important}
.dark .tree-root{background:linear-gradient(135deg,#17243a,#121827)}
.dark .family-branches:before,.dark .family-branch:before,.dark .generation-connector,.dark .branch-connector{background:#4b5568}.dark .generation-connector:after,.dark .branch-connector:after{border-top-color:#4b5568}
@media(max-width:1250px){.family-branches{grid-template-columns:repeat(3,minmax(230px,1fr))}.family-branches:before{display:none}.family-branch:before{display:none}}
@media(max-width:800px){.tree-panel #treeCanvas{min-width:0;padding:20px 12px 45px}.family-tree-modern{min-width:0}.root-couple{gap:5px}.root-person{width:140px}.root-person h3{font-size:14px}.root-person img,.root-avatar{width:64px;height:64px}.family-branches{grid-template-columns:1fr}.generation-heading b{font-size:18px}}
.tree-root-select{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.tree-root-select select{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);min-width:220px}.tree-reset{margin-top:14px;font-size:12px}.ancestor-branch{max-width:620px;margin:0 auto}.ancestor-grid{justify-content:center}.tree-root .branch-couple{justify-content:center}.tree-root .couple-member{min-width:230px}.tree-root .root-title{margin-top:10px}
@media(max-width:800px){.tree-tools{flex-wrap:wrap}.tree-root-select{width:100%;flex-wrap:wrap}.tree-root-select select{width:100%}.ancestor-branch{width:100%}.tree-root .couple-member{min-width:0;flex:1}}

/* v13 - Madupathi's Family branch design */
.family-tree-modern{padding:10px 8px 40px;background:radial-gradient(circle at top,#f8fbff 0,#fff 48%,#f8fafc 100%);border-radius:24px}
.tree-root{position:relative;width:min(620px,100%);padding:26px 28px 22px;background:linear-gradient(145deg,#ffffff,#f3f8ff);border:1px solid #b8cbe3;border-radius:28px;box-shadow:0 18px 45px rgba(25,55,95,.14)}
.tree-root:after{content:"";position:absolute;left:50%;bottom:-22px;width:3px;height:22px;background:#b8cbe3}
.generation-pill{display:inline-flex;padding:7px 12px;border-radius:999px;background:#e8f1ff;color:#285a93;font-size:10px;font-weight:900;letter-spacing:.08em}
.tree-root .root-title{text-transform:uppercase;letter-spacing:.12em;color:#285a93;font-size:13px;font-weight:900}
.family-branches{gap:20px;margin-top:10px}
.family-branch{min-height:0;padding:16px;border-radius:22px;box-shadow:0 12px 30px rgba(31,41,55,.09);background:rgba(255,255,255,.96);overflow:hidden}
.family-branch:nth-child(1){border-top:4px solid #4f8cc9}.family-branch:nth-child(2){border-top:4px solid #7b72c9}.family-branch:nth-child(3){border-top:4px solid #4fa58b}.family-branch:nth-child(4){border-top:4px solid #d39b55}.family-branch:nth-child(5){border-top:4px solid #c56b86}
.branch-head strong{font-size:15px;color:#1f2937}.branch-head span{font-size:9px}
.branch-couple{padding:12px;background:#f7f9fc;border:1px solid #e5eaf1}.couple-member b{font-size:11px}.branch-person{background:#fff}.branch-person:hover{background:#f7fbff;border-color:#9bbfe3}
.branch-generation-label{margin-top:7px;color:#64748b}.branch-connector{height:15px;background:#b9c5d4}
@media(max-width:1250px){.family-branches{grid-template-columns:repeat(2,minmax(250px,1fr))}}
@media(max-width:800px){.family-tree-modern{padding:4px}.tree-root{padding:20px 14px}.family-branches{grid-template-columns:1fr}.family-branch{border-top-width:4px}}

/* v14 family tree readability and fullscreen */
.tree-panel:fullscreen{background:var(--bg);padding:0;overflow:auto}
.tree-panel:fullscreen #treeCanvas{min-height:100vh;padding:40px 50px 80px}
.tree-panel:fullscreen .family-tree-modern{max-width:1800px;margin:0 auto}
.family-branch{min-width:260px}
.family-branches{align-items:start}
.couple-member b{font-size:13px;max-width:180px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
.branch-person-info b{font-size:13px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
.branch-person{min-height:58px}
@media(min-width:1100px){.family-branches:not(.ancestor-grid){grid-template-columns:repeat(3,minmax(280px,1fr));}}

/* v15 - tree readability and relationship safety */
.family-tree-modern,.family-tree-modern *{opacity:1}
.tree-root,.family-branch{color:var(--text)}
.tree-root .couple-member,.family-branch .couple-member{color:var(--text)}
.tree-root .couple-member b,.family-branch .couple-member b{color:var(--text);font-size:14px;font-weight:850}
.tree-root .couple-member small,.family-branch .couple-member small{color:var(--muted);font-size:11px;font-weight:750}
.branch-head strong{color:var(--text)!important;font-size:16px!important;font-weight:900}
.branch-person{color:var(--text)!important}
.branch-person-info b{color:var(--text)!important;font-size:14px!important;font-weight:850}
.branch-person-info small{color:var(--muted)!important;font-size:10px!important}
.tree-root .root-title{color:var(--primary)!important;font-weight:900}
.dark .tree-root .couple-member b,.dark .family-branch .couple-member b,.dark .branch-head strong,.dark .branch-person-info b{color:#f3f6fb!important}
.dark .tree-root .couple-member small,.dark .family-branch .couple-member small,.dark .branch-person-info small{color:#aeb8c8!important}
.branch-children{margin-top:4px}

/* v16 - family tree contrast and child rendering */
.family-tree-modern { color:#172033 !important; }
.family-tree-modern .tree-root,
.family-tree-modern .family-branch { color:#172033 !important; }
.family-tree-modern .generation-heading b,
.family-tree-modern .generation-heading span,
.family-tree-modern .generation-heading small,
.family-tree-modern .root-title,
.family-tree-modern .branch-head span,
.family-tree-modern .branch-head strong,
.family-tree-modern .couple-member b,
.family-tree-modern .couple-member small,
.family-tree-modern .branch-person-info b,
.family-tree-modern .branch-person-info small { opacity:1 !important; }
.family-tree-modern .generation-heading b { color:#172033 !important; }
.family-tree-modern .generation-heading small,
.family-tree-modern .couple-member small,
.family-tree-modern .branch-person-info small { color:#536176 !important; }
.family-tree-modern .branch-head strong,
.family-tree-modern .couple-member b,
.family-tree-modern .branch-person-info b { color:#172033 !important; }
.dark .family-tree-modern { color:#f3f6fb !important; }
.dark .family-tree-modern .generation-heading b,
.dark .family-tree-modern .branch-head strong,
.dark .family-tree-modern .couple-member b,
.dark .family-tree-modern .branch-person-info b { color:#f3f6fb !important; }
.dark .family-tree-modern .generation-heading small,
.dark .family-tree-modern .couple-member small,
.dark .family-tree-modern .branch-person-info small { color:#b7c1d2 !important; }
.family-tree-modern .branch-person-info { min-width:0; flex:1; }
.family-tree-modern .branch-person-info b { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.25; }

/* v17 — collapsible Add/Edit Family Member form */
.member-form-modal{max-height:min(92vh,920px)}
.member-form-subtitle{margin:5px 0 0;font-size:13px}
.member-accordion-form{display:grid;gap:11px}
.member-accordion{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}
.member-accordion[open]{border-color:var(--primary);box-shadow:0 3px 16px rgba(79,70,229,.08)}
.member-accordion summary{list-style:none;display:flex;align-items:center;gap:13px;padding:15px 16px;cursor:pointer;user-select:none;color:var(--text)}
.member-accordion summary::-webkit-details-marker{display:none}
.member-accordion summary:focus-visible{outline:3px solid var(--primary);outline-offset:-3px;border-radius:12px}
.member-accordion summary:hover{background:var(--soft)}
.member-accordion[open] summary{background:var(--soft);border-bottom:1px solid var(--border)}
.member-accordion .accordion-icon{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:11px;background:var(--card);border:1px solid var(--border);font-size:19px}
.member-accordion .accordion-title{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.member-accordion .accordion-title strong{font-size:14px;font-weight:800}
.member-accordion .accordion-title small{font-size:11px;color:var(--muted);font-weight:500}
.member-accordion .accordion-chevron{font-size:25px;line-height:1;color:var(--muted);transition:transform .15s ease}
.member-accordion[open] .accordion-chevron{transform:rotate(180deg)}
.member-accordion .accordion-content{padding:17px;gap:14px}
.member-accordion-actions{position:sticky;bottom:0;z-index:1;background:var(--card);border-top:1px solid var(--border);padding:15px 2px 2px;box-shadow:0 -8px 15px -15px rgba(0,0,0,.15)}
@media(max-width:650px){.member-form-modal{padding:16px}.member-accordion summary{padding:12px;gap:10px}.member-accordion .accordion-content{padding:13px}.member-accordion .accordion-title small{line-height:1.3}.member-accordion-actions button{flex:1}}
