.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.page-head h1{margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.tree-search{display:flex;gap:9px;flex:1}.tree-search input{max-width:430px}.view-switch{display:flex;gap:8px}.tree-canvas{overflow:auto;min-height:420px}.genealogy{min-width:max-content;text-align:center;padding:20px}.genealogy ul{padding-top:24px;position:relative;display:flex;justify-content:center;margin:0}.genealogy li{list-style:none;position:relative;padding:24px 8px 0}.genealogy li:before,.genealogy li:after{content:"";position:absolute;top:0;right:50%;border-top:2px solid #bfdbfe;width:50%;height:24px}.genealogy li:after{right:auto;left:50%;border-left:2px solid #bfdbfe}.genealogy li:only-child:before,.genealogy li:only-child:after{display:none}.genealogy li:only-child{padding-top:0}.genealogy li:first-child:before,.genealogy li:last-child:after{border:0}.genealogy li:last-child:before{border-right:2px solid #bfdbfe;border-radius:0 8px 0 0}.genealogy li:first-child:after{border-radius:8px 0 0 0}.genealogy ul ul:before{content:"";position:absolute;top:0;left:50%;border-left:2px solid #bfdbfe;width:0;height:24px}.tree-node{width:220px;background:#fff;border:1px solid #dbeafe;border-radius:15px;padding:14px;box-shadow:0 8px 24px rgba(15,23,42,.08);display:inline-block}.tree-node>a{text-decoration:none;color:inherit}.tree-node.deceased{opacity:.82;border-style:dashed}.avatar-wrap{display:flex;justify-content:center;margin-bottom:8px}.avatar-wrap img,.person-row img{width:58px;height:58px;border-radius:50%;object-fit:cover}.avatar-placeholder{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-weight:800;font-size:22px}.tree-node strong,.tree-node small{display:block}.tree-node small{color:#64748b;margin-top:4px}.spouse-line{font-size:11px;border-top:1px solid #e2e8f0;margin-top:10px;padding-top:8px;color:#64748b}.spouse-line a{margin-left:4px}.people-list{display:grid;gap:12px}.person-row{display:flex;justify-content:space-between;align-items:center}.person-main{display:flex;align-items:center;gap:14px}.person-main h3{margin:0 0 5px}.person-main p{margin:0}.profile-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.profile-top{display:flex;align-items:center;gap:18px}.profile-photo{width:110px;height:110px;border-radius:22px;object-fit:cover}.avatar-placeholder.large{width:110px;height:110px;border-radius:22px;font-size:42px}.badge{display:inline-block;background:#dbeafe;color:#1d4ed8;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}.details-grid div{background:#f8fafc;border-radius:10px;padding:11px}.details-grid dt{font-size:11px;color:#64748b;text-transform:uppercase}.details-grid dd{margin:5px 0 0;font-weight:700}.section-gap{margin-top:18px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.connections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.connection{border:1px solid #e2e8f0;border-radius:12px;padding:13px;display:flex;justify-content:space-between;gap:12px}.connection p{margin:5px 0}.link-danger{border:0;background:none;color:#dc2626;cursor:pointer}.memory-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.memory-mini-grid article{border:1px solid #e2e8f0;border-radius:10px;padding:12px}.memory-mini-grid small{display:block;color:#64748b;margin-top:6px}.danger-zone{border:1px solid #fecaca}.btn.danger{background:#dc2626}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.checkbox{display:flex;align-items:center;gap:8px;margin-top:30px}.checkbox input{width:auto}.form-actions{margin-top:18px}.empty-state{text-align:center;padding:70px 20px}@media(max-width:850px){.profile-grid{grid-template-columns:1fr}.toolbar,.page-head{flex-direction:column}.form-grid.three{grid-template-columns:1fr 1fr}}@media(max-width:600px){.form-grid.three,.details-grid{grid-template-columns:1fr}.tree-search{flex-wrap:wrap}.person-row{align-items:flex-start;gap:12px}.view-switch{width:100%}}
