:root{color-scheme:light;--ink:#17211c;--muted:#5c6861;--line:#d9e2dc;--surface:#ffffff;--soft:#f5f8f6;--warm:#fff7ef;--gold:#e4a11b;--brand:#0f7b5f;--brand-dark:#095c48;--accent:#c64f2f;--focus:#e1f2ec}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:linear-gradient(180deg,var(--warm) 0,var(--soft) 340px,var(--soft) 100%);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar-inner{justify-content:space-between;gap:16px;max-width:1120px;margin:0 auto;padding:14px 18px}.brand,.topbar-inner{display:flex;align-items:center}.brand{gap:10px;font-weight:800;letter-spacing:0}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;background:var(--brand);color:white;font-size:18px}.nav{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.nav-signin{border:1px solid var(--line);border-radius:999px;background:var(--brand);color:white;padding:8px 12px;font-weight:900;text-decoration:none}.main{max-width:1120px;margin:0 auto;padding:22px 18px 48px}.eyebrow{width:-moz-fit-content;width:fit-content;margin:0;border:1px solid rgba(15,123,95,.18);border-radius:999px;background:rgba(255,255,255,.72);color:var(--brand-dark);padding:7px 11px;font-size:13px;font-weight:900}.welcome-hero{display:grid;grid-gap:14px;gap:14px;max-width:840px;margin-bottom:14px}.welcome-image-wrap{overflow:hidden;border-radius:8px;border:1px solid rgba(15,123,95,.14);box-shadow:0 18px 50px rgba(23,33,28,.12);aspect-ratio:16/8.6}.welcome-image{display:block;width:100%;height:100%;object-fit:cover}.welcome-copy{display:grid;justify-items:center;grid-gap:8px;gap:8px;text-align:center}.welcome-copy .eyebrow{margin-inline:auto}.welcome-copy h1{max-width:720px;margin:0;font-size:clamp(28px,6vw,54px);line-height:1;letter-spacing:0}.welcome-copy p{margin:0;color:var(--ink);font-size:17px;font-weight:900;line-height:1.35}.flow{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:22px;gap:22px;align-items:start}.flow-single{max-width:680px}.premium-search{max-width:840px}.main:has(.premium-search.results-mode){padding-top:14px}.main:has(.premium-search.results-mode) .welcome-hero{display:none}.premium-search.results-mode{margin-top:0}.search-panel{border:1px solid rgba(15,123,95,.16);border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,255,255,.82)),radial-gradient(circle at top right,rgba(228,161,27,.2),transparent 36%);box-shadow:0 22px 70px rgba(23,33,28,.12);padding:22px}.results-mode .search-panel{padding:16px}.search-icon,.village-result-icon{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:8px;background:var(--focus);color:var(--brand)}.search-panel h2{margin:0;font-size:28px}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:end}.search-field{gap:8px}.search-input{min-height:58px;border-color:rgba(15,123,95,.22);font-size:17px}.search-action{min-width:132px;min-height:58px}.steps-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:16px}.step-card{display:grid;justify-items:center;grid-gap:7px;gap:7px;border:1px solid rgba(217,226,220,.96);border-radius:8px;background:white;padding:14px 8px;text-align:center;min-height:112px}.step-card svg{color:var(--brand)}.step-card span{color:var(--muted);font-size:12px;font-weight:800}.step-card strong{color:var(--ink);font-size:15px}.premium-results{margin-top:18px}.results-mode .premium-results{margin-top:12px}.village-result{display:grid;grid-template-columns:42px minmax(0,1fr) auto 20px;grid-gap:12px;gap:12px;align-items:center;width:100%;border:1px solid rgba(217,226,220,.96);border-radius:8px;background:white;padding:13px;text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.village-result:hover{border-color:rgba(15,123,95,.38);box-shadow:0 10px 26px rgba(23,33,28,.08);transform:translateY(-1px)}.village-result-main{display:grid;grid-gap:4px;gap:4px;min-width:0}.village-result-main strong{color:var(--ink);font-size:17px}.village-result-main small,.village-result-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.village-result-main small{color:var(--muted)}.village-result-pin{border-radius:999px;background:var(--soft);color:var(--brand-dark);padding:7px 10px;font-size:13px;font-weight:900}.empty-state{border:1px dashed rgba(92,104,97,.35);border-radius:8px;background:rgba(255,255,255,.62);color:var(--muted);padding:14px;font-size:14px;line-height:1.4}.empty-state.compact{padding:12px}.admin-panel,.panel,.side-panel{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.panel{box-shadow:0 16px 42px rgba(23,33,28,.07);padding:22px}.step-label{margin:0 0 8px;color:var(--accent);font-size:13px;font-weight:700;text-transform:uppercase}.panel h2{margin:0 0 10px;font-size:24px}.panel p{color:var(--muted);line-height:1.5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.field{display:grid;grid-gap:7px;gap:7px}.field.full{grid-column:1/-1}.field span{color:var(--ink);font-size:14px;font-weight:700}.hint{color:var(--muted);font-size:12px}.input,.select{width:100%;min-height:52px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:11px 12px;outline:none}.textarea{min-height:92px;resize:vertical}.input:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:800}.button.primary{background:var(--brand);color:white;box-shadow:0 10px 24px rgba(15,123,95,.22)}.button.primary:hover{background:var(--brand-dark)}.button.secondary{border-color:var(--line);background:white;color:var(--ink)}.button.subtle{background:transparent;color:var(--muted)}.results{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.data-warning{border:1px solid rgba(198,79,47,.22);border-radius:8px;background:#fff4ee;color:#894029;padding:12px;font-size:13px;font-weight:800;line-height:1.35}.village-main{max-width:760px}.village-hero{position:-webkit-sticky;position:sticky;top:70px;z-index:5;margin-bottom:5px;background:var(--page)}.back-link{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);color:var(--muted);padding:4px 8px;font-size:12px;font-weight:800;text-decoration:none}.village-title-row{display:block;padding:0}.village-context{display:grid;grid-gap:0;gap:0}.village-context-top{display:flex;align-items:center;gap:12px}.village-context-place{display:flex;align-items:center;gap:7px;min-width:0}.village-context-place svg{flex:0 0 auto;color:var(--brand)}.village-context-place div{display:grid;grid-gap:2px;gap:2px;min-width:0}.village-context-place strong{color:var(--ink);font-size:14px;line-height:1.15}.village-context-place span{margin:0;color:var(--muted);font-size:11px;font-weight:800}.village-form-shell .panel{padding:22px}.village-form-shell .panel h2{margin-bottom:14px}.village-form-shell .form-grid{grid-template-columns:1fr;gap:14px}.village-form-shell .field{gap:7px}.village-form-shell .input,.village-form-shell .select{min-height:52px;padding-block:11px}.village-form-shell .actions{margin-top:12px}.field-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-edit{border:0;background:transparent;color:var(--brand);cursor:pointer;font-size:12px;font-weight:900;padding:0}.select:disabled{background:#f1f5f3;color:#7b8781;cursor:default}.native-village-options{display:grid;grid-gap:6px;gap:6px}.native-village-options button{display:grid;grid-gap:2px;gap:2px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px 10px;text-align:left;cursor:pointer}.native-village-options button:hover{border-color:var(--brand)}.native-village-options strong{font-size:13px}.native-village-options span{color:var(--muted);font-size:11px;font-weight:800}.village-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:18px;gap:18px;align-items:start}.village-layout .flow{display:block}.village-side{display:grid;grid-gap:14px;gap:14px}.side-panel{padding:16px}.side-panel-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}.side-panel-head h2{margin:0;font-size:18px}.side-panel-head svg{color:var(--brand)}.single-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:end}.event-list{display:grid;grid-gap:10px;gap:10px}.event-item{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--line);border-radius:8px;padding:12px}.event-item strong{font-size:15px}.event-item span{color:var(--muted);font-size:13px}.person-row,.result-row,.tree-row{display:grid;grid-gap:5px;gap:5px;width:100%;border:1px solid var(--line);border-radius:8px;background:white;padding:13px;text-align:left}.person-row:hover,.result-row:hover{border-color:var(--brand)}.row-title{font-weight:800}.row-meta{color:var(--muted);font-size:13px;line-height:1.35}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill{border-radius:999px;background:var(--soft);color:var(--muted);padding:5px 9px;font-size:12px;font-weight:700}.builder-section{display:grid;grid-gap:12px;gap:12px;padding-top:16px}.family-list,.lineage-card,.relative-form,.root-person-card{border:1px solid var(--line);border-radius:8px;background:#fbfdfc;padding:14px}.root-person-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.root-person-card div{display:grid;grid-gap:4px;gap:4px}.root-person-card strong{font-size:20px}.root-person-card small{color:var(--muted);font-size:13px;font-weight:800}.root-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.lineage-card{display:grid;grid-gap:10px;gap:10px}.lineage-path{display:flex;flex-wrap:wrap;gap:8px}.lineage-path span{position:relative;border:1px solid rgba(15,123,95,.2);border-radius:999px;background:white;color:var(--brand-dark);padding:8px 12px;font-size:13px;font-weight:900}.lineage-path span:not(:first-child):before{content:"father";position:absolute;top:-8px;left:12px;background:#fbfdfc;color:var(--muted);font-size:9px;line-height:1;padding:0 3px;text-transform:uppercase}.visual-tree{display:grid;grid-gap:14px;gap:14px;border:1px solid rgba(15,123,95,.18);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,248,246,.96)),radial-gradient(circle at 12% 0,rgba(228,161,27,.14),transparent 34%);padding:16px}.graph-tree{position:relative;overflow:hidden}.graph-tree:before{content:"";position:absolute;top:74px;bottom:28px;left:50%;width:2px;background:linear-gradient(180deg,rgba(15,123,95,.08),rgba(15,123,95,.3),rgba(15,123,95,.08));transform:translateX(-50%)}.visual-tree-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.visual-tree-head strong{color:var(--brand-dark);font-size:13px}.tree-generation{display:grid;grid-gap:8px;gap:8px;position:relative;z-index:1;border:1px solid rgba(15,123,95,.1);border-radius:8px;background:rgba(255,255,255,.78);padding:10px}.tree-generation>span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.tree-card-row{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px}.tree-card-row:before{content:"";position:absolute;top:-6px;left:14%;right:14%;height:2px;background:rgba(15,123,95,.16)}.tree-person-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:8px;background:white;padding:11px;box-shadow:0 10px 24px rgba(23,33,28,.05)}.tree-person-card:before{content:"";position:absolute;top:-10px;left:50%;width:2px;height:10px;background:rgba(15,123,95,.16)}.tree-person-card.featured{border-color:rgba(15,123,95,.34);background:var(--focus)}.tree-avatar{display:grid;width:42px;height:42px;place-items:center;border-radius:999px;background:var(--brand);color:white;font-weight:900}.tree-person-card div:last-child{display:grid;grid-gap:3px;gap:3px;min-width:0}.tree-person-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-person-card small,.tree-person-card span{color:var(--muted);font-size:12px;font-weight:800}.family-accordion{display:grid;grid-gap:10px;gap:10px}.tree-protected-card{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;grid-gap:12px;gap:12px;border:1px solid rgba(15,123,95,.2);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(245,248,246,.96)),var(--focus);padding:14px}.tree-protected-card>span{display:grid;width:42px;height:42px;place-items:center;border-radius:999px;background:var(--brand-dark);color:white}.tree-protected-card strong{color:var(--brand-dark);font-size:15px}.tree-protected-card p{margin:3px 0 0;color:var(--muted);font-size:13px;font-weight:800;line-height:1.35}.family-action-card{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.family-action-card.open,.family-action-card:hover{border-color:rgba(15,123,95,.32);box-shadow:0 14px 34px rgba(21,42,36,.08)}.family-action-card.open{transform:translateY(-1px)}.family-action-card.priority{border-color:rgba(15,123,95,.26);background:var(--focus)}.family-action-trigger{display:grid;width:100%;grid-gap:6px;gap:6px;border:0;background:transparent;color:var(--ink);cursor:pointer;padding:14px;text-align:left}.family-action-trigger span{display:flex;align-items:center;gap:8px;font-weight:900}.family-action-trigger small{color:var(--muted);font-size:12px;font-weight:800}.relative-form{display:grid;grid-gap:12px;gap:12px}.relative-form.inline{border-width:1px 0 0;border-radius:0;background:rgba(255,255,255,.72);padding:14px;animation:openCard .17s ease-out}.relative-form-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.family-list{display:grid;grid-gap:4px;gap:4px}@keyframes openCard{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.inline-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfdfc}.status{margin-top:14px;color:var(--muted);font-size:14px}.success-box{display:grid;grid-gap:4px;gap:4px;border:1px solid rgba(15,123,95,.24);border-radius:8px;background:var(--focus);color:var(--brand-dark);padding:14px;margin-bottom:14px;font-weight:800}.success-box span{color:var(--muted);font-size:14px;font-weight:700}.registration-benefits{display:grid;grid-gap:10px;gap:10px;margin:0 0 16px}.registration-benefit-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;grid-gap:10px;gap:10px;border:1px solid rgba(15,123,95,.16);border-radius:8px;background:#fbfdfc;padding:12px;box-shadow:0 10px 24px rgba(23,33,28,.04)}.benefit-check{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:rgba(15,123,95,.1);color:var(--brand-dark)}.registration-benefit-card div{display:grid;grid-gap:3px;gap:3px}.registration-benefit-card strong{color:var(--brand-dark);font-size:15px}.registration-benefit-card span:not(.benefit-check){color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}.account-section{margin-top:18px}.admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.admin-panel{padding:18px}.admin-number{font-size:30px;font-weight:900}.admin-main .admin-grid{margin-bottom:18px}.admin-workspace{margin-top:18px}.village-admin-cta{display:flex;margin-top:16px}.segmented{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:4px;margin-bottom:14px}.segmented button{border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;padding:9px 12px;font-weight:900}.segmented button.active{background:white;color:var(--brand-dark);box-shadow:0 6px 16px rgba(23,33,28,.08)}.signin-benefit{display:grid;grid-gap:4px;gap:4px;border:1px solid rgba(15,123,95,.2);border-radius:8px;background:var(--focus);color:var(--brand-dark);padding:12px;margin-bottom:14px}.signin-benefit span{color:var(--muted);font-size:13px;font-weight:700}.visible-events{margin-top:16px}.visible-events h3{margin:0 0 8px;font-size:18px}.superadmin-main{max-width:1280px}.straight-panel{margin-top:18px}.straight-list{display:grid;grid-gap:8px;gap:8px}.edit-row{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:860px){.flow,.search-row{grid-template-columns:1fr}.search-action{width:100%}.village-layout{grid-template-columns:1fr}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.topbar-inner{padding-inline:14px}.nav{display:flex}.nav a:not(.nav-signin){display:none}.nav-signin{padding:8px 11px;font-size:13px}.main{padding:16px 12px 36px}.eyebrow{padding:6px 10px;font-size:12px}.welcome-hero{gap:12px}.welcome-copy h1{font-size:31px}.welcome-copy p{font-size:16px}.panel,.search-panel{padding:16px}.search-panel h2{font-size:24px}.village-result{grid-template-columns:38px minmax(0,1fr) 20px}.village-result-pin{grid-column:2;width:-moz-fit-content;width:fit-content;padding:5px 8px}.village-title-row{display:grid;padding:0}.village-context-place,.village-context-top{gap:8px}.village-context-place strong{font-size:13px}.village-context-place span{font-size:10px;line-height:1.25}.single-search-form{grid-template-columns:1fr}.panel h2{font-size:22px}.admin-grid,.form-grid{grid-template-columns:1fr}.button{width:100%}.relative-form-head,.root-person-card{align-items:stretch;flex-direction:column}}