.family-section{min-width:0;max-width:100%;margin:40px 0 24px;padding-top:34px;border-top:1px solid var(--line)}
.family-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.family-heading h2{margin:.25rem 0 0;font-size:clamp(2.15rem,4vw,4.2rem);line-height:.95;letter-spacing:-.06em}.family-heading>p{max-width:540px;margin:0;color:var(--muted);line-height:1.55}
.family-message{min-height:1.4em;margin:12px 0;color:var(--muted);font-size:.78rem}.family-message.error,.family-dialog-message.error{color:var(--danger)}
.family-content{display:grid;gap:32px}.family-summary{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:30px;border-left:5px solid var(--accent);background:var(--ink);color:#fff}.family-kicker{margin:0 0 8px;color:#a9cdbc;font:800 .66rem ui-monospace,monospace;letter-spacing:.13em;text-transform:uppercase}.family-summary h3{margin:0;font-size:clamp(2rem,4vw,4rem);line-height:.95;letter-spacing:-.055em}.family-summary p:not(.family-kicker){margin:12px 0 0;color:#c2c9c3}.family-summary-actions,.family-person-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.family-list-section{min-width:0}.family-list-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;padding-bottom:12px;border-bottom:1px solid var(--strong)}.family-list-heading h3{margin:0;font-size:1.35rem;letter-spacing:-.035em}.family-list-heading p{max-width:520px;margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.family-list{display:grid}
.family-person{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.family-person.compact{padding:14px 0}.family-avatar{width:46px;height:46px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--ink);color:#fff;font-weight:850}.family-avatar img{width:100%;height:100%;object-fit:cover}.family-person-info{min-width:0;display:grid;gap:3px}.family-person-info strong,.family-person-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-person-info span{color:var(--muted);font-size:.8rem}.family-person-info .family-role{width:max-content;margin-top:5px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--accent);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.family-button{min-height:41px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);padding:8px 12px;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.family-button:hover{border-color:var(--strong);background:var(--soft)}.family-button.primary{border-color:var(--accent);background:var(--accent);color:#fff}.family-summary .family-button{border-color:rgba(255,255,255,.28);background:transparent;color:#fff}.family-summary .family-button.primary{border-color:#fff;background:#fff;color:var(--ink)}.family-button.danger{color:var(--danger)}.family-summary .family-button.danger{color:#ffc4bf}.family-button:disabled{cursor:not-allowed;opacity:.55}
.family-empty{min-height:190px;display:grid;place-items:center;align-content:center;gap:8px;padding:34px;border-block:1px solid var(--line);text-align:center}.family-empty strong{font-size:1.2rem}.family-empty p{max-width:560px;margin:0 0 10px;color:var(--muted);line-height:1.55}
.family-dialog{width:min(610px,calc(100% - 28px));max-height:min(760px,calc(100vh - 28px));padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 34px 100px rgba(0,0,0,.3)}.family-dialog::backdrop{background:rgba(15,18,16,.65);backdrop-filter:blur(5px)}.family-dialog-inner{display:grid;gap:20px;padding:clamp(24px,5vw,40px)}.family-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:20px}.family-dialog-header h2{margin:0;font-size:2.25rem;letter-spacing:-.055em}.family-dialog-header p:not(.eyebrow){margin:8px 0 0;color:var(--muted);line-height:1.5}.family-dialog form{gap:12px}.family-dialog-actions{display:flex;justify-content:flex-end;gap:9px}.family-dialog-message{min-height:1.4em;margin:0;color:var(--muted);font-size:.78rem}.family-candidates{display:grid;max-height:340px;overflow:auto;border-top:1px solid var(--line)}
@media(max-width:700px){.family-heading,.family-list-heading{display:block}.family-heading>p,.family-list-heading p{margin-top:12px}.family-summary{align-items:start;flex-direction:column}.family-summary-actions{justify-content:flex-start}.family-person{grid-template-columns:auto minmax(0,1fr)}.family-person-actions{grid-column:1/-1;justify-content:flex-start;padding-left:60px}}
@media(max-width:480px){.family-section{margin-top:20px}.family-summary{margin-inline:-12px;padding:25px 18px}.family-person-actions{padding-left:0}.family-dialog{width:100%;height:100vh;max-height:100vh;border:0;border-radius:0}.family-dialog-inner{min-height:100%;padding:22px 16px}.family-dialog-actions{align-items:stretch;flex-direction:column-reverse}.family-dialog-actions .button{width:100%}.family-empty{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.family-button{transition:none}}
