:root{--ink:#262b27;--muted:#7e817b;--line:#e5e4dd;--cream:#f7f6f1;--paper:#fffefa;--green:#204e40;--sage:#dfe7d9;--coral:#e8a38f;--shadow:0 14px 32px rgba(53,59,48,.08)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}.shell{display:flex;min-height:100vh}.sidebar{width:244px;background:#fffefa;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:25px 14px 15px;flex-shrink:0}.brand{display:flex;align-items:center;gap:9px;margin:0 10px 33px;font-family:Fraunces,serif;font-weight:700;font-size:21px;letter-spacing:-1px}.brand-mark{height:28px;width:28px;border-radius:9px;background:var(--green);color:#f7e9cd;display:grid;place-items:center;font-family:Fraunces,serif;font-size:16px}.family-switch{display:flex;align-items:center;gap:10px;margin:0 6px 24px;padding:9px 8px;border-radius:10px;background:#f2f2eb}.family-switch svg{margin-left:auto}.mini-avatar,.owner-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e2b099;color:#56372e;font-weight:700;font-size:12px}.family-switch small,.owner small{display:block;font:500 9px 'DM Mono';letter-spacing:.06em;color:#888b83;margin-bottom:3px}.family-switch strong{font-size:12px}.nav-item{width:100%;height:43px;border:0;background:none;color:#686c65;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:8px;font:500 13px 'DM Sans';cursor:pointer;text-align:left}.nav-item:hover{background:#f2f3ed}.nav-item.active{background:var(--sage);color:#24483c;font-weight:700}.nav-item em{font-style:normal;margin-left:auto;background:#eff0eb;border-radius:10px;padding:1px 6px;font:500 10px 'DM Mono'}.nav-item .warning{background:#f7d7ca;color:#98523e}.sidebar-bottom{margin-top:auto}.owner{border-top:1px solid var(--line);margin-top:14px;padding:17px 8px 5px;display:flex;align-items:center;gap:9px}.owner strong{font-size:12px}.owner button{margin-left:auto;border:0;background:none;color:#777}.sidebar-bottom>.nav-item{margin-bottom:5px}main{flex:1;min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);background:#fffefa;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.search{display:flex;align-items:center;gap:8px;color:#83867f;width:250px}.search input{border:0;outline:0;background:none;font:13px 'DM Sans';width:100%}.top-actions{display:flex;align-items:center;gap:14px}.help{border:1px solid #d9dad4;width:26px;height:26px;border-radius:50%;background:transparent;color:#777;font-weight:bold}.invite,.btn.primary{border:0;background:var(--green);color:#fffef9;font:600 12px 'DM Sans';padding:10px 13px;border-radius:7px;display:flex;align-items:center;gap:7px;cursor:pointer}.workspace{display:flex;min-height:calc(100vh - 72px)}.main-pane{flex:1;padding:42px 44px 30px;min-width:0}.detail-pane{width:380px;background:#fbfaf6;border-left:1px solid var(--line);padding:32px 28px}.content-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px}.eyebrow{font:500 10px 'DM Mono';letter-spacing:.1em;color:#7b877d}.content-head h1{font-family:Fraunces,serif;letter-spacing:-1.2px;font-size:30px;margin:8px 0 8px;line-height:1.05}.content-head p{color:var(--muted);margin:0;font-size:13px}.tree-area{border:1px solid var(--line);background:radial-gradient(#deded7 1px,transparent 1px),#fffefa;background-size:18px 18px;border-radius:13px;min-height:590px;padding:35px 40px;position:relative;overflow:auto}.root-caption{display:flex;gap:11px;align-items:center;color:#94978f;font:10px 'DM Mono';text-transform:uppercase;letter-spacing:.08em}.root-caption span{height:1px;width:38px;background:#d2d3ca}.root-caption p{margin:0}.family-tree,.family-tree ul{list-style:none;margin:18px 0 0;padding:0}.family-tree ul{margin:0 0 0 20px;border-left:1px solid #cfd3c8}.tree-node{position:relative}.tree-node:not(:last-child){padding-bottom:17px}.tree-node ul .tree-node:before{content:'';position:absolute;left:0;top:21px;width:20px;border-top:1px solid #cfd3c8}.node-row{display:flex;align-items:center;gap:7px;position:relative}.fold{width:20px;height:20px;border:1px solid #cdd3c6;border-radius:5px;background:#f9faf6;color:#607066;display:grid;place-items:center;cursor:pointer;transform:rotate(-90deg);z-index:1}.fold.open{transform:rotate(0)}.fold.invisible{visibility:hidden}.person-chip{border:1px solid #e1e2dc;background:#fffefa;border-radius:9px;padding:7px 12px 7px 7px;display:flex;align-items:center;gap:8px;min-width:170px;text-align:left;cursor:pointer;box-shadow:0 3px 8px rgba(40,50,42,.03)}.tree-node.selected>.node-row .person-chip{border-color:#7e9f8c;box-shadow:0 0 0 3px rgba(87,124,104,.12)}.person-chip strong{font-size:12px;display:block}.person-chip small{font-size:10px;color:#8b8d87}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-weight:700;font-size:10px;letter-spacing:-.5px}.avatar-lg{width:78px;height:78px;font-size:20px;border:5px solid #fffefa}.coral{background:#e6a58e;color:#673e32}.lavender{background:#c9bedf;color:#4d4467}.mint{background:#a7cbbd;color:#244d41}.sun{background:#e8cf89;color:#66541f}.stone{background:#b9b5ac;color:#4d4b46}.remembered-card{position:absolute;right:35px;bottom:33px;border:1px solid #e6e3da;background:#faf9f4;display:flex;gap:9px;align-items:center;padding:9px 14px 9px 9px;border-radius:8px;color:#666}.remembered-card span{font:9px 'DM Mono';text-transform:uppercase;color:#96938c;display:block;margin-bottom:3px}.remembered-card strong{font-size:11px}.profile-card{background:#fffefa;border:1px solid var(--line);border-radius:13px;padding:22px;box-shadow:0 5px 14px rgba(59,61,53,.03)}.profile-top{display:flex;align-items:center;gap:13px}.profile-photo{position:relative}.photo-edit{position:absolute;right:-2px;bottom:-1px;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;border:2px solid #fffefa;background:var(--green);color:white;padding:0}.profile-title h2{font:700 21px Fraunces,serif;letter-spacing:-.6px;margin:3px 0}.profile-title p{margin:0;color:#858780;font-size:12px}.quiet-btn{margin-left:auto;align-self:flex-start;border:0;background:none;color:#8d8f88}.status-row{display:flex;gap:8px;margin:21px 0 17px}.status,.gender{border-radius:10px;padding:4px 8px;font-size:10px;font-weight:600}.status{background:#e6efe4;color:#44704d}.status i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#5f9c69;margin-right:5px;vertical-align:1px}.status.remembered{background:#eeeae4;color:#77716a}.status.remembered i{background:#999}.gender{background:#f0f0eb;color:#777}.detail-list{border-top:1px solid var(--line)}.detail{display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);padding:13px 0}.detail-icon{color:#708173;width:19px}.detail small{display:block;color:#999b94;font-size:10px;margin-bottom:3px}.detail strong{font-size:12px;font-weight:500}.phone-detail{position:relative}.request-phone{margin-left:auto;border:1px solid #ced8cb;border-radius:5px;background:#f7faf5;color:#41644e;font:600 10px 'DM Sans';padding:5px 7px;cursor:pointer}.request-phone.requested{color:#858a82;border-color:#e2e3de;background:#fbfbf9}.profile-actions{display:flex;gap:8px;margin-top:18px}.btn{border-radius:7px;padding:10px 12px;font:600 11px 'DM Sans';cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.btn.secondary{border:1px solid #d9dbd4;background:#fffefa;color:#4c554e;flex:1}.profile-actions .primary{flex:1}.privacy-note{display:flex;gap:8px;align-items:flex-start;margin:18px 5px;color:#7d8179}.privacy-note svg{color:#547966;flex-shrink:0}.privacy-note p{font-size:10px;line-height:1.5;margin:0}.privacy-note strong{color:#5d655d}.count-badge{background:#f5ded5;color:#9e543f;font:500 10px 'DM Mono';padding:7px 9px;border-radius:10px}.requests-list{max-width:760px;display:grid;gap:12px}.request-card{background:#fffefa;border:1px solid var(--line);padding:18px;display:flex;align-items:center;gap:13px;border-radius:12px}.request-avatar{height:42px;width:42px;border-radius:50%;display:grid;place-items:center;font-weight:700}.request-copy{flex:1}.request-copy span{font:10px 'DM Mono';color:#819084;text-transform:uppercase}.request-copy h3{font:600 15px 'DM Sans';margin:4px 0}.request-copy p{color:#7c8179;font-size:12px;margin:0}.request-actions{display:flex;gap:8px}.approve,.decline{border-radius:6px;padding:8px 11px;font:600 11px 'DM Sans';cursor:pointer}.approve{border:0;background:var(--green);color:white}.decline{border:1px solid #dcded8;background:#fffefa;color:#777}.empty-state{text-align:center;background:#fffefa;border:1px dashed #d8dbd3;padding:70px 20px;border-radius:12px;color:#819084}.empty-state h3{font-family:Fraunces,serif;color:var(--ink);margin:12px 0 4px}.empty-state p{margin:0;font-size:12px}.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;max-width:850px}.directory-card{background:#fffefa;border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;align-items:center;gap:10px;text-align:left;color:var(--ink);cursor:pointer}.directory-card:hover,.directory-active{border-color:#8aa491}.directory-card div{flex:1}.directory-card strong{font-size:13px;display:block}.directory-card span{font-size:11px;color:#80837d;display:block;margin-top:3px}.directory-card svg{color:#999}.modal-backdrop{position:fixed;inset:0;background:rgba(35,43,38,.38);display:grid;place-items:center;z-index:10;padding:20px}.modal-backdrop.hidden{display:none}.modal{width:min(540px,100%);background:#fffefa;border-radius:14px;padding:28px;position:relative;box-shadow:0 22px 70px rgba(20,30,24,.28)}.modal-close{position:absolute;right:17px;top:17px;border:0;background:none;color:#7c807a}.modal h2{font:700 25px Fraunces,serif;letter-spacing:-.8px;margin:8px 0}.modal>p{color:#747970;font-size:13px;line-height:1.5;margin:0 0 20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal label{font-size:11px;font-weight:600;display:block;margin:0 0 13px}.modal b{color:#b3533d}.modal input,.modal select{display:block;width:100%;background:#fffefa;border:1px solid #dcded8;border-radius:6px;padding:9px;margin-top:6px;font:12px 'DM Sans';outline-color:#739582}.modal .submit{margin-top:5px;margin-left:auto}.mobile-brand{display:none}@media(max-width:900px){.sidebar{width:68px;padding:22px 8px}.brand span,.family-switch>div:not(.mini-avatar),.family-switch svg,.nav-item:not(.active) svg+*,.nav-item{font-size:0}.brand{margin:0 auto 28px}.family-switch{padding:7px;margin:0 auto 24px}.nav-item{justify-content:center;padding:0}.nav-item svg{width:19px;height:19px}.nav-item em,.owner>div:not(.owner-avatar),.owner button{display:none}.owner{justify-content:center;padding:17px 0 5px}.detail-pane{width:340px}.main-pane{padding:32px 25px}}@media(max-width:720px){.sidebar{display:none}.topbar{padding:0 18px}.mobile-brand{display:flex;align-items:center;gap:6px;font:700 18px Fraunces,serif}.mobile-brand .brand-mark{width:24px;height:24px}.search{width:145px}.help{display:none}.invite{font-size:0;padding:9px}.invite svg{margin:0}.workspace{display:block}.main-pane{padding:28px 18px}.detail-pane{width:auto;border-left:0;border-top:1px solid var(--line);padding:22px 18px}.content-head h1{font-size:27px}.content-head{gap:10px}.tree-area{padding:26px 16px;min-height:510px}.remembered-card{right:14px;bottom:18px}.form-row{grid-template-columns:1fr}.modal{padding:25px 20px}.request-card{align-items:flex-start;flex-wrap:wrap}.request-actions{margin-left:55px}.profile-card{max-width:500px;margin:auto}}
/* Generational pedigree layout: couples share a row and descendants form the next row. */
.tree-area{padding:34px 28px;background:#fffdf3;min-height:640px}.family-tree{display:flex;justify-content:center;margin:40px 0 0;min-width:max-content}.family-tree,.family-tree ul{border:0}.family-tree ul{display:flex;justify-content:center;gap:38px;margin:62px 0 0;padding:32px 0 0;position:relative;border-top:1px solid #60645e}.family-tree ul:before{content:'';position:absolute;left:50%;top:-63px;height:63px;border-left:1px solid #60645e}.tree-node{padding:0!important;display:flex;flex-direction:column;align-items:center;position:relative}.tree-node ul .tree-node:before{display:none}.node-row{gap:0;position:relative}.node-row:after{content:'';position:absolute;left:50%;right:-18px;top:50%;border-top:1px solid #60645e;z-index:0}.node-row .person-chip:last-child{z-index:1}.fold{position:absolute;left:50%;bottom:-30px;z-index:3}.person-chip{position:relative;z-index:1;display:flex;flex-direction:column;min-width:112px;padding:7px;border:0;background:transparent;box-shadow:none;text-align:center;gap:6px}.person-chip .avatar{width:76px;height:76px;border-radius:0;font-size:20px;border:2px solid #fff}.person-chip strong{font-size:13px}.person-chip small{font-size:10px}.spouse-chip{margin-left:18px}.tree-node.selected>.node-row .person-chip{box-shadow:none}.tree-node.selected>.node-row .person-chip .avatar{outline:3px solid rgba(87,124,104,.3)}.remembered-card{display:none}
