:root{color-scheme:light dark;--app-bg:#f1ede5;--canvas-bg:#f8f5ef;--surface:#ffffff;--surface-elevated:#fffdf9;--text:#1e2d29;--text-muted:#6d7873;--border:#ded8cf;--brand:#216b52;--brand-strong:#15513d;--on-brand:#ffffff;--accent:#e47c61;--focus:#2f80ed;--line-parent:#2f8f62;--line-partner:#c8715a;--line-sibling:#87938e;--radius-control:12px;--radius-card:16px;--radius-panel:20px;--radius-pill:999px;--shadow-card:0 4px 18px rgba(30,45,41,0.08);--shadow-panel:0 16px 48px rgba(30,45,41,0.16)}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark;--app-bg:#111715;--canvas-bg:#161e1b;--surface:#202a26;--surface-elevated:#26322d;--text:#f3f6f4;--text-muted:#adb8b3;--border:#3b4742;--brand:#63c29b;--brand-strong:#83d6b4;--on-brand:#111715;--accent:#f09a82;--focus:#78a9ff;--line-parent:#68c995;--line-partner:#eea18d;--line-sibling:#aeb8b3;--shadow-card:0 4px 18px rgba(0,0,0,0.24);--shadow-panel:0 16px 48px rgba(0,0,0,0.36)}*{box-sizing:border-box}body{margin:0;background:var(--app-bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body:has(.tree-shell){height:100dvh;overflow:hidden}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.person-node-avatar,img{filter:none}.app-shell{min-height:100svh;display:grid;place-items:center;padding:24px}.welcome-panel{width:min(720px,100%);border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:0 20px 60px rgba(0,0,0,.1)}.eyebrow{margin:0 0 8px;color:var(--brand);font-weight:700}h1{margin:0 0 12px;font-size:clamp(32px,7vw,56px);line-height:1.04;letter-spacing:0}p{color:var(--text-muted);line-height:1.5}.primary-button{border:0;border-radius:14px;background:var(--brand);color:var(--on-brand)}.primary-button,.secondary-button{min-height:44px;font-weight:700;padding:0 18px;cursor:pointer}.secondary-button{border:1px solid var(--border);border-radius:14px}.secondary-button,.toolbar-action{background:var(--surface);color:var(--text)}.toolbar-action{display:inline-flex;min-height:36px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;font-size:14px;font-weight:700;padding:0 12px;text-decoration:none}.toolbar-action.primary{border-color:transparent;background:var(--brand);color:var(--on-brand)}.danger-button{min-height:40px;border:1px solid rgba(255,59,48,.3);border-radius:12px;background:rgba(255,59,48,.1);color:#d70015;font-weight:700;padding:0 14px}.tree-picker{display:grid;grid-gap:12px;gap:12px;margin-top:22px}.tree-picker-item{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:inherit;padding:16px;text-decoration:none}.tree-picker-item span{color:var(--brand);font-size:14px;font-weight:700}.tree-picker-item small{color:var(--text-muted)}.tree-switch-item{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:inherit;padding:12px;text-decoration:none}.tree-switch-item span{color:var(--brand);font-size:14px;font-weight:700}.tree-switch-item.active{border-color:rgba(0,122,255,.45);background:rgba(0,122,255,.08)}.admin-layout{width:min(1180px,100%);margin:0 auto}.admin-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:20px}.admin-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.duplicate-review-heading{margin-bottom:16px}.duplicate-person h3,.duplicate-person p,.duplicate-review-heading h2,.duplicate-review-heading p{margin-top:0}.duplicate-pair,.duplicate-pair-list{display:grid;grid-gap:16px;gap:16px}.duplicate-pair-actions,.duplicate-pair-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.duplicate-reasons,.duplicate-tree-chips{display:flex;flex-wrap:wrap;gap:6px}.duplicate-reasons span,.duplicate-tree-chips span{border-radius:999px;background:rgba(0,122,255,.09);color:var(--text);font-size:13px;padding:5px 9px}.duplicate-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.duplicate-person{display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:12px;gap:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:14px}.duplicate-person-photo{width:72px;height:72px;border-radius:50%;object-fit:cover}.duplicate-person-initials{display:grid;place-items:center;background:#e8f2ff;color:#245f99;font-weight:800}.duplicate-pair-actions small{color:var(--text-muted)}.duplicate-pair-actions .primary-button:disabled{cursor:not-allowed;opacity:.5}.duplicate-review-status:empty{display:none}.merge-conflict-alert,.merge-inline-error{border:1px solid color-mix(in srgb,var(--accent) 58%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));padding:12px}.person-merge-backdrop{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:rgba(10,18,15,.62);padding:20px}.person-merge-dialog{width:min(1040px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--border);border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.24);padding:20px}.person-merge-footer,.person-merge-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.person-merge-header h2,.person-merge-header p{margin-top:0}.person-merge-header>button{flex:0 0 44px;min-height:44px;font-size:24px}.merge-destination,.merge-position-choice{display:flex;flex-wrap:wrap;gap:10px 18px;border:1px solid var(--border);border-radius:14px;margin:16px 0;padding:14px}.merge-destination legend,.merge-position-choice legend{font-weight:750;padding:0 6px}.merge-choice-group label,.merge-destination label,.merge-final-confirmation,.merge-position-choice label{display:flex;align-items:center;gap:8px;min-height:44px}.person-merge-table-wrap{overflow-x:auto}.person-merge-table{width:100%;border-collapse:collapse}.person-merge-table caption{font-weight:750;padding:10px 0}.person-merge-table td,.person-merge-table th{border-top:1px solid var(--border);text-align:left;vertical-align:top;padding:12px 10px}.person-merge-table th:first-child{width:130px}.merge-choice-group{border:0;margin:0;padding:0}.merge-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.merge-photo{width:72px;height:72px;border-radius:50%;object-fit:cover}.merge-notes{display:block;max-width:28ch;white-space:pre-wrap}.merge-appearances{margin-top:20px}.merge-appearance-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.merge-appearance-columns section{border:1px solid var(--border);border-radius:12px;padding:12px}.merge-appearance-columns h4{margin:0 0 8px}.merge-conflict-alert:focus{outline:3px solid var(--focus);outline-offset:3px}.merge-final-confirmation{border:1px solid var(--border);border-radius:12px;margin:16px 0;padding:12px;font-weight:700}.person-merge-footer{align-items:center;justify-content:flex-end}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.admin-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.admin-panel{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:18px}.admin-row{min-height:44px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--border);padding:10px 0}.admin-row span{display:grid;grid-gap:2px;gap:2px}.admin-row small{color:var(--text-muted)}.admin-list{display:grid}.editor-form{display:grid;grid-gap:10px;gap:10px}.editor-form.inline{grid-template-columns:minmax(0,1fr) auto;margin:12px 0}.editor-form input,.editor-form select,.editor-form textarea{width:100%;min-height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:10px 12px;font:inherit}.editor-form textarea{min-height:88px;resize:vertical}.editor-form label{display:grid;grid-gap:5px;gap:5px;color:var(--text-muted);font-size:13px;font-weight:700}.editor-label-hint{font-size:12px;font-weight:400;color:var(--text-muted);font-style:italic}.editor-multiselect{min-height:80px!important;border-radius:12px;padding:4px 0!important}.editor-multiselect option{padding:4px 12px;border-radius:6px}.editor-form .editor-checkbox{display:flex;gap:8px;color:var(--text)}.editor-form .editor-checkbox input{width:20px;min-height:20px;margin:0}.audit-row code{max-width:min(42ch,50%);overflow-wrap:anywhere;color:var(--text-muted);font-size:12px}.editor-list{display:grid;grid-gap:10px;gap:10px}.editor-item,.editor-row{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:12px}.editor-item summary{cursor:pointer;font-weight:700;margin-bottom:10px}.editor-row{display:flex;justify-content:space-between;gap:12px;align-items:center}.tree-editor-drawer{position:fixed;z-index:20;top:0;right:0;width:min(420px,calc(100vw - 28px));height:100svh;overflow-y:auto;border-left:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 96%,transparent);box-shadow:-24px 0 70px rgba(0,0,0,.16);padding:20px;transform:translateX(108%);transition:transform .18s ease}.tree-editor-drawer.wide{width:min(560px,calc(100vw - 28px))}.tree-editor-drawer:target{transform:translateX(0)}.tree-editor-drawer:target~.drawer-scrim{opacity:1;pointer-events:auto}.drawer-scrim{position:fixed;z-index:19;inset:0;background:rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .18s ease}.drawer-header{position:-webkit-sticky;position:sticky;top:-20px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 96%,transparent);padding:6px 0 14px;margin-bottom:16px}.drawer-header h2{margin:0;font-size:24px}.drawer-header a{color:var(--brand);font-weight:700;text-decoration:none}.tree-editor-drawer h3{margin:22px 0 12px;font-size:17px}.theme-switcher{display:inline-grid;gap:4px;min-width:0;color:var(--text-muted);font-size:12px;font-weight:700}.theme-switcher select{min-width:116px;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text);padding:0 36px 0 12px;font:inherit;font-size:14px;cursor:pointer}.theme-switcher select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.theme-switcher.is-compact select{min-width:102px}@media (max-width:760px){.admin-grid,.admin-grid.three{grid-template-columns:1fr}.admin-header{align-items:flex-start}.admin-header-actions,.duplicate-pair-actions,.duplicate-pair-header{align-items:stretch;flex-direction:column}.duplicate-people{grid-template-columns:1fr}.person-merge-backdrop{align-items:end;padding:0}.person-merge-dialog{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;padding:16px}.person-merge-table,.person-merge-table tbody,.person-merge-table td,.person-merge-table th,.person-merge-table tr{display:block;width:100%}.person-merge-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.person-merge-table tr{border-top:1px solid var(--border);padding:10px 0}.person-merge-table td,.person-merge-table th{border:0;padding:6px 0}.person-merge-table td:before{content:attr(data-label);display:block;color:var(--text-muted);font-size:12px;font-weight:700;margin-bottom:4px}.merge-appearance-columns{grid-template-columns:1fr}.person-merge-footer{align-items:stretch;flex-direction:column-reverse}.editor-form.inline,.editor-row{display:grid}.audit-row{align-items:flex-start;flex-direction:column}.audit-row code{max-width:100%}.tree-editor-drawer,.tree-editor-drawer.wide{top:auto;bottom:0;width:100vw;height:min(82svh,720px);border-top:1px solid var(--border);border-left:0;border-radius:22px 22px 0 0;box-shadow:0 -24px 70px rgba(0,0,0,.16);transform:translateY(108%)}.tree-editor-drawer:target{transform:translateY(0)}}:root{--text-muted:#4f6157;--radius-control:8px;--radius-card:12px;--radius-panel:16px;--danger:#a42135;--shadow-card:none}html[data-theme=dark]{--text-muted:#b5c3bb;--danger:#ffb6bf;--shadow-card:none}.person-merge-footer>button:not(.primary-button),.person-merge-header>button{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text);padding:8px 14px;font-weight:650}[hidden]{display:none!important}::selection{background:var(--brand);color:var(--on-brand)}input,textarea{caret-color:var(--brand)}*{scrollbar-color:var(--border) var(--surface);scrollbar-width:thin}a{text-underline-offset:3px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.64}button:disabled:not([aria-busy=true]){cursor:not-allowed}.admin-layout{max-width:1180px;padding:28px}.admin-header{align-items:flex-start}.admin-header h1,.welcome-panel h1{font-size:clamp(24px,3vw,32px);line-height:1.2;letter-spacing:-.02em;margin:10px 0 8px;overflow-wrap:anywhere}.admin-header p{margin:0;max-width:68ch}.product-link{color:var(--brand-strong);font-size:16px;font-weight:750;text-decoration:none;display:inline-block;min-height:24px}.admin-panel{border-radius:var(--radius-card);padding:24px;margin-bottom:20px;box-shadow:none}.admin-grid{gap:20px;align-items:start}.admin-records{display:block}.admin-records>.admin-panel{width:100%}.section-navigation{display:flex;flex-wrap:wrap;gap:4px 24px;margin:24px 0;border-bottom:1px solid var(--border)}.section-navigation a{display:flex;align-items:center;min-height:48px;padding:8px 0;color:var(--text-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.section-navigation a[aria-current=page]{border-color:var(--brand);color:var(--text);font-weight:700}.row-actions,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-heading{margin-bottom:16px}.section-heading h2{margin:0;font-size:22px}.section-heading>span{color:var(--text-muted);font-size:14px}.row-actions{justify-content:flex-start}.tree-name-link{color:var(--text);text-decoration:none;font-size:17px}.tree-name-link:hover{text-decoration:underline}.tree-management-item{padding:16px 0;border-top:1px solid var(--border)}.tree-management-item:first-child{border-top:0}.tree-management-item .admin-row{border-top:0;padding-top:0}.tree-management-item p{margin:6px 0}.tree-management-item small{display:block}.creation-options>details{margin:0}.creation-options>details[hidden]+details:not([hidden]):last-child{grid-column:1/-1}.creation-options:has(>details:first-child:not([hidden])),.creation-options:has(>details:not([hidden]):only-child){grid-template-columns:1fr}.creation-options{margin-bottom:20px}.admin-panel>summary,.inline-editor>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:650}.admin-panel>summary{font-size:18px}.inline-editor{margin:8px 0}.inline-editor[open]>summary{margin-bottom:12px}.inline-editor .editor-form{max-width:720px}.editor-form{gap:16px}.managed-form-fields{border:0;padding:0;margin:0;min-width:0;display:grid;grid-gap:16px;gap:16px}.managed-form-fields>button[type=submit]{justify-self:start}.editor-form label{color:var(--text);font-size:14px;font-weight:550;gap:8px}.editor-form input,.editor-form select,.editor-form textarea{min-height:44px;border-radius:var(--radius-control)}.editor-form input::placeholder,.editor-form textarea::placeholder{color:var(--text-muted);opacity:1}.field-hint{font-size:14px;line-height:1.5;margin:0;color:var(--text-muted)}.form-feedback{color:var(--text);font-size:14px}.form-feedback:empty{display:none}.access-scope{border:1px solid var(--border);border-radius:var(--radius-control);padding:16px;min-width:0;display:grid;grid-gap:12px;gap:12px}.access-scope legend{font-size:14px;font-weight:650;padding:0 6px}.access-tree-options{display:grid;grid-gap:10px;gap:10px;padding:8px 0}.editor-form .editor-checkbox{min-height:44px;grid-template-columns:20px minmax(0,1fr);align-items:center}.editor-form .editor-checkbox input{width:18px;min-height:18px;height:18px;accent-color:var(--brand)}.settings-panel{max-width:800px}.settings-secondary{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.history-list{margin:20px 0;padding:0;list-style:none}.history-list>li{padding:20px 0;border-top:1px solid var(--border)}.history-list p{margin:5px 0}.history-list time{color:var(--text-muted);font-size:14px}.history-list details{margin-top:12px}.history-list pre{max-width:100%;overflow:auto;font-size:13px;background:var(--app-bg);padding:12px}.history-list dd{margin:4px 0 12px;overflow-wrap:anywhere}.toolbar-action{min-height:44px}.danger-button,.primary-button,.secondary-button,.toolbar-action{border-radius:var(--radius-control)}.danger-button{background:color-mix(in srgb,var(--danger) 8%,var(--surface));border-color:color-mix(in srgb,var(--danger) 45%,var(--border));min-height:44px}.danger-button,.form-error{color:var(--danger)}.welcome-panel{max-width:640px;border-radius:var(--radius-panel);box-shadow:none;padding:32px}.sign-out-control>button{min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text)}.welcome-panel .sign-out-control{margin-top:20px}.empty-secondary{margin-top:24px}@media (max-width:760px){.admin-layout{padding:20px 16px}.admin-header{gap:16px;align-items:flex-start;flex-direction:column}.admin-header-actions{justify-content:flex-start}.admin-panel{padding:18px}.admin-grid{grid-template-columns:1fr}.section-navigation{gap:4px 18px}.section-navigation a{font-size:14px}.admin-row{align-items:flex-start;flex-wrap:wrap}.admin-row>div{min-width:0}.admin-header>.toolbar-action{flex-shrink:0}.admin-row small{overflow-wrap:anywhere}.welcome-panel{padding:24px}.app-shell{padding:16px}}.person-merge-dialog{background:var(--surface-elevated)}.person-merge-table caption{width:100%;max-width:none;text-align:left;font-size:18px;line-height:1.35;padding-bottom:16px}.merge-choice-group label,.merge-destination label,.merge-position-choice label{min-height:44px;align-items:center}@media (max-width:760px){.person-merge-dialog{padding:20px 16px}.person-merge-table caption{display:block;width:100%;font-size:18px}.person-merge-table td,.person-merge-table th{overflow-wrap:anywhere}.merge-choice-group{gap:12px}}