.mask[data-v-7862260a]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#141b187a;display:flex;align-items:flex-end}.sheet[data-v-7862260a]{background:#fff;width:100%;max-height:94vh;overflow:auto;border-radius:8px 8px 0 0}.sheet header[data-v-7862260a],.sheet footer[data-v-7862260a]{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e7e3}.sheet header div[data-v-7862260a]{display:grid}.sheet header small[data-v-7862260a]{color:#6b7872}.sheet header button[data-v-7862260a],.search button[data-v-7862260a]{width:38px;height:38px;display:grid;place-items:center;border:1px solid #ccd6d1;background:#fff;border-radius:6px}.progress[data-v-7862260a]{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px 18px 0}.progress span[data-v-7862260a]{text-align:center;padding:5px;border-bottom:3px solid #dfe6e2}.progress .active[data-v-7862260a]{border-color:#356b5c;color:#28594b;font-weight:700}main[data-v-7862260a]{padding:18px;min-height:330px}h2[data-v-7862260a]{font-size:18px;margin:0 0 14px}.segments[data-v-7862260a]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.segments button[data-v-7862260a]{height:42px;border:1px solid #ccd6d1;background:#fff;border-radius:6px}.segments .active[data-v-7862260a]{border-color:#356b5c;background:#eef5f2;color:#28594b;font-weight:700}main p[data-v-7862260a],small[data-v-7862260a]{font-size:13px;color:#68766f}.search[data-v-7862260a]{display:grid;grid-template-columns:1fr 40px;gap:6px;margin:14px 0}.search input[data-v-7862260a],.fields input[data-v-7862260a],.fields select[data-v-7862260a]{width:100%;min-height:42px;padding:8px;border:1px solid #ccd6d1;border-radius:6px}.selection-summary[data-v-7862260a]{display:flex;align-items:center;justify-content:space-between;margin:-6px 0 10px;color:#53635d;font-size:13px}.selection-actions[data-v-7862260a]{display:flex;align-items:center;gap:10px}.selection-summary button[data-v-7862260a]{border:0;background:transparent;color:#28594b;font-weight:700;white-space:nowrap}.list[data-v-7862260a]{display:grid;gap:7px;max-height:235px;overflow:auto}.list button[data-v-7862260a]{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;text-align:left;padding:10px;border:1px solid #d9e1dd;background:#fff;border-radius:6px}.list button small[data-v-7862260a]{grid-column:1}.list .selected[data-v-7862260a]{border-color:#356b5c;background:#eef5f2}.list em[data-v-7862260a],.pick-mark[data-v-7862260a]{grid-column:2;justify-self:end;font-style:normal;color:#28604f;font-size:12px}.pick-mark[data-v-7862260a]{font-weight:700}.fields[data-v-7862260a]{display:grid;gap:12px}.fields label[data-v-7862260a]{display:grid;gap:5px;font-size:13px}fieldset[data-v-7862260a]{margin-top:16px;border:1px solid #d6dfda;border-radius:6px;padding:12px;display:grid;gap:9px}dl[data-v-7862260a]{display:grid;grid-template-columns:90px 1fr;margin:0}dt[data-v-7862260a],dd[data-v-7862260a]{padding:10px 0;border-bottom:1px solid #e4eae7;margin:0}.error[data-v-7862260a]{color:#a22c2c;padding:0 18px}.sheet footer[data-v-7862260a]{border-top:1px solid #e1e7e3;border-bottom:0}.sheet footer button[data-v-7862260a]{min-height:40px;padding:0 14px;display:flex;align-items:center;gap:5px;border:1px solid #cbd5d0;background:#fff;border-radius:6px}.sheet footer .primary[data-v-7862260a]{background:#356b5c;color:#fff;border-color:#356b5c}@media(min-width:760px){.mask[data-v-7862260a]{align-items:center;justify-content:center;padding:20px}.sheet[data-v-7862260a]{width:min(680px,100%);border-radius:8px}.segments[data-v-7862260a]{grid-template-columns:repeat(4,1fr)}}.co-parent-order[data-v-7862260a]{margin-top:4px;padding-top:10px;border-top:1px solid #e1e7e3}.co-parent-order input[data-v-7862260a]{width:100%;min-height:40px;margin-top:5px;padding:8px;border:1px solid #ccd6d1;border-radius:6px}.sole-spouse-auto[data-v-7862260a]{margin:0;display:grid;gap:4px;padding:10px;border:1px solid #cbd8d1;border-radius:6px;background:#f2f7f4}.sole-spouse-auto strong[data-v-7862260a]{color:#28594b}.sole-spouse-auto span[data-v-7862260a]{color:#68766f;font-size:13px}.record-view[data-v-674cb31b]{display:grid;gap:14px}.record-header[data-v-674cb31b]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.record-header h2[data-v-674cb31b]{margin:0}.record-search[data-v-674cb31b]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.record-search input[data-v-674cb31b]{width:100%;min-height:44px;border:1px solid #d3d5cb;border-radius:8px;padding:0 12px;background:#fff}.record-results[data-v-674cb31b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.record-result[data-v-674cb31b]{display:grid;gap:3px;min-height:58px;border:1px solid #d3d5cb;border-radius:8px;background:#fff;padding:8px 10px;text-align:left;color:#1d2b28;cursor:pointer}.record-result span[data-v-674cb31b]{color:#68716d;font-size:12px}.record-result.active[data-v-674cb31b]{border-color:#356152;background:#e9f0eb;color:#245346}.record-card[data-v-674cb31b]{display:grid;gap:14px;border-top:1px solid #d8ddd9;padding-top:14px}.record-memorial-portrait[data-v-674cb31b]{width:72px;height:96px;margin:0 auto;padding:0;overflow:hidden;border:1px solid #cbd5cf;border-radius:50%;background:#eef2ef;cursor:pointer}.record-memorial-portrait img[data-v-674cb31b]{display:block;width:72px;height:96px;object-fit:cover;border-radius:50%}.record-title[data-v-674cb31b]{display:flex;align-items:center;gap:10px;color:#245346}.record-title h3[data-v-674cb31b]{margin:0;font-size:22px}.record-family[data-v-674cb31b]{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.record-family div[data-v-674cb31b]{min-height:42px;display:flex;align-items:center;gap:7px;border:1px solid #d3d5cb;border-radius:8px;background:#fbfffc;padding:9px 12px}.record-family span[data-v-674cb31b]{color:#68716d}.record-family strong[data-v-674cb31b]{color:#1d2b28}.record-name-links[data-v-674cb31b]{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap}.record-name-link[data-v-674cb31b]{border:0;background:transparent;padding:0;color:#1d2b28;font:inherit;font-weight:800;cursor:pointer}.record-name-link[data-v-674cb31b]:hover{color:#245346;text-decoration:underline;text-underline-offset:3px}.record-fields[data-v-674cb31b]{display:grid;grid-template-columns:64px 1fr;margin:0;border-top:1px solid #e1e5e0}.record-fields dt[data-v-674cb31b],.record-fields dd[data-v-674cb31b]{margin:0;padding:11px 0;border-bottom:1px solid #e1e5e0}.record-fields dt[data-v-674cb31b]{color:#7a2f2f;font-weight:800}.record-fields dd[data-v-674cb31b]{white-space:pre-wrap;line-height:1.7}.record-deceased-media[data-v-674cb31b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,160px));gap:9px}.record-deceased-media button[data-v-674cb31b]{display:grid;gap:6px;padding:7px;border:1px solid #d3d5cb;border-radius:8px;background:#fff;color:#1d2b28;cursor:pointer}.record-deceased-media img[data-v-674cb31b]{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px}.record-deceased-media span[data-v-674cb31b]{font-size:12px;font-weight:800}.record-image-backdrop[data-v-674cb31b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:20px;background:#121c19b8}.record-image-dialog[data-v-674cb31b]{position:relative;width:min(760px,100%);max-height:calc(100vh - 40px);padding:12px;border-radius:8px;background:#fff}.record-image-dialog>img[data-v-674cb31b]{display:block;width:100%;max-height:calc(100vh - 64px);object-fit:contain}.record-image-close[data-v-674cb31b]{position:absolute;top:9px;right:9px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #ccd4ce;border-radius:50%;background:#fff;color:#1d2b28;cursor:pointer}@media(max-width:640px){.record-search[data-v-674cb31b]{grid-template-columns:1fr}.record-fields[data-v-674cb31b]{grid-template-columns:48px 1fr}.record-deceased-media[data-v-674cb31b]{grid-template-columns:repeat(2,minmax(0,1fr))}}.private-profile-page[data-v-dd5f7c43]{display:grid;gap:0}.private-profile-heading[data-v-dd5f7c43],.profile-band-heading[data-v-dd5f7c43],.profile-actions[data-v-dd5f7c43],.profile-session-row[data-v-dd5f7c43]{display:flex;align-items:center;justify-content:space-between;gap:16px}.private-profile-heading[data-v-dd5f7c43]{padding-bottom:16px}.private-profile-heading h2[data-v-dd5f7c43],.profile-band-heading h3[data-v-dd5f7c43],.profile-band-heading p[data-v-dd5f7c43],.profile-session-row p[data-v-dd5f7c43]{margin:0}.privacy-status[data-v-dd5f7c43],.security-state[data-v-dd5f7c43]{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:#315f52;font-size:13px;font-weight:700}.profile-state[data-v-dd5f7c43]{margin:0;padding:28px 0;border-top:1px solid #deded4;color:#68716d;text-align:center}.profile-state.is-error[data-v-dd5f7c43],.field-error[data-v-dd5f7c43]{color:#9a2c2c}.profile-admin-state .profile-session-row[data-v-dd5f7c43]{padding-top:18px;border-top:1px solid #deded4}.profile-form-band[data-v-dd5f7c43]{display:grid;gap:18px;padding:22px 0;border-top:1px solid #deded4}.profile-band-heading p[data-v-dd5f7c43]{margin-top:4px;color:#68716d;font-size:13px}.profile-form-grid[data-v-dd5f7c43]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.profile-field[data-v-dd5f7c43]{display:grid;align-content:start;gap:7px;min-width:0;color:#2d3835;font-weight:700}.profile-field.is-wide[data-v-dd5f7c43]{grid-column:1 / -1}.profile-field input[data-v-dd5f7c43],.profile-field textarea[data-v-dd5f7c43]{width:100%;min-width:0;min-height:44px;border:1px solid #d3d5cb;border-radius:8px;padding:10px 12px;background:#fff;color:#19201f;font-weight:400}.profile-field textarea[data-v-dd5f7c43]{resize:vertical}.profile-field input[readonly][data-v-dd5f7c43]{background:#f6f7f4;color:#68716d}.profile-field input[aria-invalid=true][data-v-dd5f7c43],.profile-field textarea[aria-invalid=true][data-v-dd5f7c43]{border-color:#9a2c2c}.field-error[data-v-dd5f7c43]{font-size:12px;font-weight:600}.password-grid[data-v-dd5f7c43]{align-items:start}.password-visibility[data-v-dd5f7c43]{align-self:end;min-height:44px;border:0;background:transparent;color:#315f52;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.profile-actions[data-v-dd5f7c43]{justify-content:flex-end}.profile-actions .primary-button[data-v-dd5f7c43]{min-width:160px;padding:0 18px}.profile-feedback[data-v-dd5f7c43]{margin:0 auto 0 0;color:#315f52;font-size:13px;font-weight:700}.profile-session-row[data-v-dd5f7c43]{padding-top:18px;border-top:1px solid #deded4}.profile-session-row .icon-button[data-v-dd5f7c43]{min-width:132px;padding:0 14px}@media(max-width:720px){.private-profile-heading[data-v-dd5f7c43],.profile-band-heading[data-v-dd5f7c43],.profile-actions[data-v-dd5f7c43],.profile-session-row[data-v-dd5f7c43]{align-items:stretch;flex-direction:column}.privacy-status[data-v-dd5f7c43],.security-state[data-v-dd5f7c43]{align-self:flex-start}.profile-form-grid[data-v-dd5f7c43],.password-grid[data-v-dd5f7c43]{grid-template-columns:1fr}.profile-field.is-wide[data-v-dd5f7c43]{grid-column:auto}.password-visibility[data-v-dd5f7c43]{justify-self:start}.profile-actions .primary-button[data-v-dd5f7c43],.profile-session-row .icon-button[data-v-dd5f7c43]{width:100%}}.reviews header h1[data-v-cc6228f0]{margin:0;font-size:22px}.reviews header p[data-v-cc6228f0]{color:#6b7771}.review-list[data-v-cc6228f0]{display:grid;gap:10px}.review-row[data-v-cc6228f0]{border:1px solid #d9e1dd;border-radius:7px;padding:14px;background:#fff}.review-head[data-v-cc6228f0]{display:flex;justify-content:space-between;gap:10px}.status[data-v-cc6228f0]{font-size:12px;padding:3px 7px;border:1px solid #cdd7d2;border-radius:4px}.status.pending[data-v-cc6228f0]{color:#8a5a10;background:#fff8e8}.status.approved[data-v-cc6228f0]{color:#27614f;background:#edf7f2}.status.rejected[data-v-cc6228f0],.status.conflict[data-v-cc6228f0]{color:#9a3030;background:#fff0f0}.profile-changes[data-v-cc6228f0]{display:grid;grid-template-columns:minmax(90px,140px) 1fr;margin:10px 0;border-top:1px solid #e3e9e6}.profile-changes dt[data-v-cc6228f0],.profile-changes dd[data-v-cc6228f0]{margin:0;padding:7px 4px;border-bottom:1px solid #e8ecea;overflow-wrap:anywhere}.profile-changes dt[data-v-cc6228f0]{color:#66736d}.review-meta[data-v-cc6228f0]{display:flex;flex-wrap:wrap;gap:6px 18px;color:#6b7771;font-size:12px}.review-result[data-v-cc6228f0]{margin:10px 0 0;font-weight:600;color:#8a5a10}.review-result.approved[data-v-cc6228f0]{color:#27614f}.review-result.rejected[data-v-cc6228f0],.review-result.conflict[data-v-cc6228f0]{color:#963434}.review-result.withdrawn[data-v-cc6228f0]{color:#6b7771}.withdraw[data-v-cc6228f0]{display:flex;align-items:center;gap:5px;margin-top:10px;min-height:36px;border:1px solid #cbd5d0;background:#fff;border-radius:6px;padding:0 10px}.empty[data-v-cc6228f0]{text-align:center;color:#6b7771;padding:28px}.kinship-reference-control,.kinship-reference-summary{position:relative;display:inline-flex;align-items:center;gap:8px}.kinship-reference-control{min-height:36px}.kinship-reference-summary{min-height:36px;border:1px solid #d3d5cb;border-radius:8px;padding-left:10px;background:#fff;color:#52615b;font-size:13px}.kinship-reference-summary strong{max-width:112px;overflow:hidden;color:#203d35;text-overflow:ellipsis;white-space:nowrap}.kinship-reference-summary button,.kinship-reference-picker-head button,.kinship-reference-search button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;border-left:1px solid #d3d5cb;padding:0 10px;background:transparent;color:#245346;cursor:pointer}.kinship-reference-state{color:#68736e;font-size:12px}.kinship-reference-state.error{color:#9a2c2c}.kinship-reference-help{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;color:#68736e}.kinship-reference-help summary{width:28px;height:34px;display:grid;place-items:center;border-radius:6px;cursor:help;list-style:none}.kinship-reference-help summary::-webkit-details-marker{display:none}.kinship-reference-help summary:hover,.kinship-reference-help summary:focus-visible{background:#edf4f0;color:#245346;outline:none}.kinship-reference-help-popover{position:absolute;z-index:45;top:calc(100% + 5px);right:0;width:max-content;max-width:min(340px,calc(100vw - 32px));display:none;border:1px solid #bdc8c1;border-radius:6px;padding:8px 10px;background:#fff;box-shadow:0 8px 20px #25373029;color:#52615b;font-size:12px;font-weight:400;line-height:1.5;white-space:normal}.kinship-reference-help:hover .kinship-reference-help-popover,.kinship-reference-help:focus-within .kinship-reference-help-popover,.kinship-reference-help[open] .kinship-reference-help-popover{display:block}.kinship-person-search label>.kinship-reference-help{position:absolute;top:-8px;left:88px}.kinship-reference-picker{position:absolute;z-index:30;top:calc(100% + 7px);right:0;width:min(360px,calc(100vw - 32px));border:1px solid #bdc8c1;border-radius:8px;padding:10px;background:#fff;box-shadow:0 12px 28px #25373029}.kinship-reference-picker-head,.kinship-reference-search{display:flex;align-items:center;justify-content:space-between;gap:8px}.kinship-reference-picker-head button{width:34px;border-left:0;padding:0}.kinship-reference-search{margin-top:8px}.kinship-reference-search input{min-width:0;flex:1}.kinship-reference-search button{width:40px;border:1px solid #bdc8c1;border-radius:6px;padding:0}.kinship-reference-results{max-height:260px;display:grid;gap:4px;margin-top:8px;overflow-y:auto}.kinship-reference-results>button{display:grid;gap:2px;border:0;border-radius:6px;padding:8px;background:transparent;color:#1f332d;text-align:left;cursor:pointer}.kinship-reference-results>button:hover,.kinship-reference-results>button:focus-visible{background:#edf4f0}.kinship-reference-results small{color:#68736e}.genealogy-set-reference{position:absolute;top:4px;left:4px;width:18px;height:18px;display:inline-grid;place-items:center;border:1px solid #c3cec8;border-radius:50%;background:#fff;color:#356356;opacity:.72}.genealogy-person-node:has(.genealogy-record-corner) .genealogy-set-reference{left:26px}.genealogy-set-reference:hover,.genealogy-set-reference:focus-visible{opacity:1;outline:2px solid #aac8bb;outline-offset:1px}.genealogy-kinship-badge{position:absolute;right:4px;bottom:4px;max-width:88px;color:#2f6657;font-size:10px;font-weight:700;line-height:1.2;overflow:visible;text-align:right;text-overflow:ellipsis;white-space:nowrap}.genealogy-person-node.zodiac-visible .genealogy-kinship-badge{left:42px;max-width:none}.genealogy-kinship-label{display:block;overflow:hidden;text-overflow:ellipsis}.genealogy-kinship-badge.fallback,.genealogy-kinship-badge.neutral{color:#6d6036}.genealogy-kinship-badge.unknown{color:#8a4b4b}.genealogy-kinship-tooltip{position:absolute;z-index:12;top:calc(100% + 7px);right:0;width:max-content;max-width:220px;border:1px solid #bdc8c1;border-radius:6px;padding:7px 9px;background:#fff;box-shadow:0 8px 20px #25373029;color:#273b35;font-size:12px;font-weight:500;line-height:1.5;text-align:left;white-space:normal}.kinship-guide-page{display:grid;gap:16px;max-width:1180px;min-width:0}.kinship-guide-toolbar,.kinship-guide-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.kinship-guide-toolbar{padding-bottom:12px;border-bottom:1px solid #d8ddd9}.kinship-guide-toolbar .icon-button{width:42px;min-height:38px;flex:0 0 auto}.kinship-guide-toolbar .segmented-control button,.kinship-guide-heading .segmented-control button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.kinship-guide-heading h2,.kinship-guide-heading p{margin:0}.kinship-guide-heading h2{font-size:21px;line-height:1.25}.segmented-control.compact button{min-width:58px}.kinship-inline-note{margin:-6px 0 0;color:#7a2f2f;font-size:12px}.kinship-chart-scroll{width:100%;overflow:auto;border:1px solid #d5d9d5;border-radius:6px;background:#fcfcfa;overscroll-behavior:contain;scrollbar-gutter:stable}.kinship-chart-canvas{position:relative;min-width:100%;isolation:isolate}.kinship-chart-lines{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none}.kinship-chart-lines line{stroke:#77817d;stroke-width:1.5;vector-effect:non-scaling-stroke;shape-rendering:crispEdges}.kinship-chart-lines line.spouse-line{stroke:#53665f;stroke-width:2}.kinship-generation-label{position:absolute;left:12px;z-index:2;width:54px;padding:4px 5px;transform:translateY(-50%);border:1px solid #cbd2ce;border-radius:4px;background:#f5f7f5;color:#4d5e58;font-size:11px;font-weight:700;line-height:1.2;text-align:center;pointer-events:none}.kinship-chart-node{position:absolute;z-index:1;display:grid;place-content:center;gap:3px;border:1px solid #bfc8c3;border-radius:4px;padding:7px 8px;background:#fff;color:#17201e;text-align:center;cursor:pointer}.kinship-chart-node strong{overflow-wrap:anywhere;font-size:14px;line-height:1.2}.kinship-chart-node small{color:#6d7572;font-size:10px;line-height:1.2}.kinship-chart-node.tone-ancestor{background:#f1f2ef;border-color:#9da6a2}.kinship-chart-node.tone-direct{border-color:#759285;background:#f6faf7}.kinship-chart-node.tone-self{border-color:#9a2c2c;background:#fff7f6;color:#7a2020}.kinship-chart-node.tone-spouse{border-style:dashed;background:#fbfaf7}.kinship-chart-node:hover,.kinship-chart-node.selected{outline:2px solid #356152;outline-offset:2px}.kinship-chart-detail{min-height:60px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;border-top:1px solid #d8ddd9;padding-top:12px}.kinship-chart-detail span,.kinship-chart-detail small{color:#68716d;font-size:12px}.kinship-reference-chip{min-height:34px;display:inline-flex;align-items:center;gap:6px;border:1px solid #9eb5aa;border-radius:6px;padding:6px 9px;background:#f3f8f5;color:#245346;font-weight:700}.kinship-reference-chip small{padding-left:6px;border-left:1px solid #bfd0c8;color:#60716a;font-size:11px;font-weight:600}.kinship-tree-view-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.kinship-tree-view-controls .lineage-toggle{min-height:34px;margin:0}.kinship-person-search{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;z-index:8}.kinship-person-search label{display:grid;gap:6px;min-width:0;color:#35413e;font-size:13px;font-weight:700}.kinship-person-search .primary-button{min-width:92px}.kinship-search-error{grid-column:1 / -1;margin:0;color:#9a2f2f;font-size:12px}.kinship-search-input{min-height:42px;display:flex;align-items:center;gap:8px;border:1px solid #cdd4d0;border-radius:6px;padding:0 10px;background:#fff;color:#65716c}.kinship-search-input input{width:100%;min-width:0;height:40px;border:0;outline:0;background:transparent}.kinship-search-results{position:absolute;top:calc(100% + 4px);left:0;right:100px;max-height:320px;overflow:auto;border:1px solid #cdd4d0;border-radius:6px;background:#fff;box-shadow:0 12px 28px #19201f26}.kinship-search-results button{width:100%;display:grid;gap:3px;border:0;border-bottom:1px solid #e7e9e6;padding:10px 12px;background:#fff;color:#19201f;text-align:left;cursor:pointer}.kinship-search-results button:hover,.kinship-search-results button:focus-visible{background:#eef4f0}.kinship-search-results small{color:#68716d}.kinship-result{min-height:58px;display:flex;align-items:center;gap:10px;border-left:3px solid #356152;padding:9px 12px;background:#f4f8f5}.kinship-result strong,.kinship-result span{overflow-wrap:anywhere}.kinship-result strong{color:#173c31}.kinship-result span{color:#64706b;font-size:12px}.kinship-result .kinship-confidence{flex:0 0 auto;padding:3px 7px;border:1px solid #b9ccc4;border-radius:6px;color:#285a49;background:#fff;font-size:11px;font-weight:700}.kinship-result .kinship-confidence[data-confidence=fallback],.kinship-result .kinship-confidence[data-confidence=unknown]{border-color:#dbc7a8;color:#78591f;background:#fffaf0}.kinship-tree-state,.kinship-tree-empty{min-height:360px;display:grid;place-content:center;justify-items:center;gap:10px;border:1px dashed #cfd6d2;border-radius:6px;color:#68716d;background:#fafbf9}.kinship-tree-state.error{color:#8b2929}.kinship-public-tree{min-height:420px;border:1px solid #d5d9d5;border-radius:6px;background:#fff}.kinship-public-tree .genealogy-tree-scroll{max-height:min(68vh,680px)}@media(max-width:640px){.kinship-guide-page{padding:12px}.kinship-guide-toolbar{align-items:stretch}.kinship-guide-toolbar .segmented-control{flex:1}.kinship-guide-toolbar .segmented-control button{min-width:0;padding-inline:8px}.kinship-guide-heading{align-items:flex-start;flex-direction:column}.kinship-tree-view-controls{width:100%;justify-content:flex-start;flex-wrap:wrap}.kinship-chart-scroll{margin-inline:-4px;width:calc(100% + 8px);max-height:66vh}.kinship-chart-detail{grid-template-columns:1fr auto}.kinship-chart-detail small{grid-column:1 / -1}.kinship-person-search{grid-template-columns:minmax(0,1fr) 48px}.kinship-person-search .primary-button{min-width:48px;padding:0;font-size:0}.kinship-person-search .primary-button svg{width:18px;height:18px}.kinship-search-results{right:56px}.kinship-result{align-items:flex-start;flex-direction:column}.kinship-public-tree,.kinship-tree-state,.kinship-tree-empty{min-height:480px}}.app-shell.gate-shell{min-height:100vh;padding:0;background:radial-gradient(circle at 1px 1px,rgba(44,74,65,.055) 1px,transparent 0) 0 0 / 22px 22px,linear-gradient(180deg,#f7f6f1,#faf9f5);color:#14231f}.app-shell.gate-shell .app-layout{min-height:100vh;display:flex;flex-direction:column}.app-shell.public-shell.gate-shell .topbar{width:100%;max-width:none;min-height:74px;margin:0;padding:14px max(20px,calc((100vw - 480px)/2));border-bottom:1px solid #ebece7;background:#fffffff0;box-shadow:0 5px 22px #14231f0b}.app-shell.gate-shell .topbar h1{margin-top:1px;color:#123f35;font-size:27px;line-height:1;letter-spacing:.04em}.app-shell.gate-shell .kicker{color:#326458;font-size:12px;letter-spacing:.04em}.app-shell.gate-shell .account{min-width:102px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-color:#aebbb5;border-radius:6px;color:#123f35;font-size:14px}.app-shell.public-shell.gate-shell .gate-page{width:min(100%,480px);max-width:480px;flex:1;display:flex;flex-direction:column;padding:32px 16px 24px}.gate-card{display:grid;gap:22px;padding:26px 24px 22px;border:1px solid #e0e3df;border-radius:10px;background:#fffffff7;box-shadow:0 16px 44px #14231f16}.gate-card-intro h2{margin:0 0 7px;color:#102f28;font-size:25px;line-height:1.25}.gate-card-intro p{margin:0;color:#4f615c;font-size:14px;line-height:1.7}.gate-form{display:grid;grid-template-columns:1fr;gap:10px}.gate-form label{margin-top:3px;color:#1c2d28;font-size:14px;font-weight:750}.gate-form>input,.gate-secret-field input{width:100%;min-width:0;min-height:48px;border:1px solid #cfd7d3;border-radius:7px;padding:0 14px;background:#fff;color:#182823;transition:border-color .16s ease,box-shadow .16s ease}.gate-form>input::placeholder,.gate-secret-field input::placeholder{color:#7a8783}.gate-form>input:focus,.gate-secret-field input:focus{outline:none;border-color:#2b6858;box-shadow:0 0 0 3px #2b685821}.gate-secret-field{position:relative;display:block;min-width:0}.gate-secret-field input{padding-right:52px}.gate-secret-toggle{position:absolute;top:4px;right:5px;display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;background:transparent;color:#38695d;cursor:pointer}.gate-secret-toggle:hover{background:#edf4f1}.app-shell.gate-shell .gate-secret-toggle:focus-visible,.app-shell.gate-shell .gate-primary-action:focus-visible,.app-shell.gate-shell .gate-secondary-action:focus-visible{outline:3px solid rgba(43,104,88,.22);outline-offset:2px}.gate-notice{margin:3px 0 0;padding:10px 12px;border:1px solid #edc9c3;border-radius:7px;background:#fff7f5;color:#8a362e;font-size:13px;line-height:1.5}.app-shell.gate-shell .gate-primary-action,.app-shell.gate-shell .gate-secondary-action{min-height:48px;margin-top:9px;border-radius:6px;font-size:15px;font-weight:750}.app-shell.gate-shell .gate-primary-action{border-color:#124f40;background:#124f40;box-shadow:0 8px 18px #124f4024}.app-shell.gate-shell .gate-primary-action:hover:not(:disabled){border-color:#0d4034;background:#0d4034}.app-shell.gate-shell .gate-primary-action:disabled{cursor:wait;opacity:.68}.app-shell.gate-shell .gate-secondary-action{margin-top:3px;border-color:#aebbb5;color:#173b32}.app-shell.gate-shell .gate-secondary-action:hover{border-color:#6e8d84;background:#f6faf8}.gate-security-note{display:flex;align-items:flex-start;gap:7px;margin:0;padding-top:16px;border-top:1px solid #edf0ed;color:#6a7773;font-size:12px;line-height:1.55}.gate-security-note svg{flex:0 0 auto;margin-top:1px;color:#4f756a}.gate-footer{margin-top:auto;padding:38px 8px 2px;color:#7a817e;text-align:center;font-size:12px}.gate-footer p{margin:0}.gate-footer-caption{margin-top:8px!important;color:#9a9f9d}@media(max-width:520px){.app-shell.public-shell.gate-shell .topbar{min-height:72px;padding:13px 12px}.app-shell.gate-shell .topbar h1{font-size:25px}.app-shell.gate-shell .account{min-width:100px;min-height:40px}.app-shell.public-shell.gate-shell .gate-page{padding:30px 12px 22px}.gate-card{padding:24px 22px 20px}}@media(max-width:360px){.gate-card{padding-inline:18px}.gate-card-intro h2{font-size:23px}}@media(prefers-reduced-motion:reduce){.gate-form>input,.gate-secret-field input{transition:none}}:root{color:#19201f;background:#f6f7f4;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:18px 16px 96px;background:linear-gradient(180deg,rgba(154,44,44,.08),transparent 280px),#f6f7f4}.app-layout{display:contents}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:920px;margin:0 auto 18px}.topbar h1{margin:2px 0 0;font-size:clamp(26px,7vw,44px);line-height:1.08;letter-spacing:0}.kicker{margin:0;color:#7a2f2f;font-weight:700;font-size:13px}.account{min-width:72px;padding:9px 12px;border:1px solid #d8d8ce;border-radius:8px;text-align:center;background:#fff;color:#356152;font-weight:700;text-decoration:none}.page{max-width:920px;margin:0 auto}.panel{background:#ffffffe0;border:1px solid #deded4;border-radius:8px;padding:16px;box-shadow:0 12px 34px #19201f14}.grid{display:grid;gap:12px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.person-card{min-height:72px;border:1px solid #ddd8cc;border-radius:8px;padding:12px;background:#fff}.person-card strong{display:block;font-size:18px}.claim-form{display:grid;grid-template-columns:minmax(90px,140px) minmax(120px,180px) 1fr;gap:8px;margin-top:10px}.claim-form input{min-height:40px;border:1px solid #d3d5cb;border-radius:8px;padding:0 10px;background:#fff}.claim-button{width:100%;margin-top:10px}.meta{margin-top:4px;color:#68716d;font-size:13px;overflow-wrap:anywhere}.notice{margin:0 0 10px;color:#356152;font-weight:700;font-size:14px}.admin-switcher{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid #d4dbd6;border-radius:8px;background:#fbfffc}.admin-current{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;color:#245346}.admin-current span{min-width:0;font-weight:800}.admin-current small{grid-column:2 / -1;color:#68716d}.admin-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.admin-search input{width:100%;min-height:44px;border:1px solid #d3d5cb;border-radius:8px;padding:0 12px;background:#fff}.admin-next-button{white-space:nowrap}.admin-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.person-pick{min-height:58px;border:1px solid #d3d5cb;border-radius:8px;background:#fff;color:#1d2b28;display:grid;gap:2px;justify-items:start;padding:8px 10px;text-align:left;cursor:pointer}.person-pick span{color:#68716d;font-size:12px}.actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.icon-button,.choice-button,.primary-button{min-height:44px;border:1px solid #d3d5cb;border-radius:8px;background:#fff;color:#1d2b28;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none}.primary-button,.icon-button.is-active,.choice-button.is-active{border-color:#356152;background:#356152;color:#fff}.tree{display:grid;gap:0;justify-items:center;padding:12px 0}.tree-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%}.node{position:relative;min-width:96px;min-height:48px;border-radius:8px;border:1px solid #bdc8c1;background:#fbfffc;display:grid;place-items:center;padding:8px;text-align:center;font-weight:700}.node.self{border-color:#9a2c2c;background:#fff7f4;color:#7a2f2f}.node.marker{border-style:dashed;background:#f9fbff}.lineage-parent-strip{width:min(760px,calc(100% - 24px));display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;margin-bottom:18px;padding:10px 0;border-top:1px dashed #bdc8c1;border-bottom:1px dashed #bdc8c1}.lineage-parent-strip>header{color:#71461c;white-space:nowrap}.lineage-parent-node{background:#fffaf3;border-color:#b89462}.family-parent-row{position:relative;left:calc(var(--parent-anchor-x, 50%) - 50%);padding-bottom:24px}.family-parent-row.has-descendants:after{content:"";position:absolute;left:50%;bottom:0;height:24px;border-left:1px solid #66766f}.family-parent-row.has-couple .node:not(:last-child):after{content:"";position:absolute;top:50%;right:-11px;width:10px;border-top:1px solid #66766f;transform:translateY(-50%)}.family-parent-row.has-descendants.has-couple:after{top:calc(50% - 12px);bottom:0;height:auto}.family-generation-row{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:10px;padding-top:24px;padding-bottom:10px}.family-generation-row.has-parents:before{content:"";position:absolute;top:0;left:var(--parent-anchor-x, 50%);height:24px;border-left:1px solid #66766f}.family-generation-row.has-siblings:after{content:"";position:absolute;top:0;left:var(--sibling-bus-left, calc(50% - var(--leading-sibling-width, 0px)));right:var(--sibling-bus-right, calc(50% - var(--trailing-sibling-width, 0px)));border-top:1px solid #66766f}.sibling-side,.self-cluster{position:relative;z-index:1;display:flex;align-items:flex-start;gap:10px}.sibling-before{justify-content:flex-end}.sibling-after{justify-content:flex-start}.self-cluster{justify-content:center}.self-cluster.has-spouse{gap:18px}.self-cluster.has-spouse>.node,.self-cluster .node.self{min-width:124px;min-height:84px}.self-cluster.has-spouse .node.self:after{content:"";position:absolute;top:50%;right:-19px;width:18px;border-top:1px solid #66766f;transform:translateY(-50%)}.self-cluster.has-spouse .spouse-node:not(:last-child):after{content:"";position:absolute;top:50%;right:-19px;width:18px;border-top:1px solid #66766f;transform:translateY(-50%)}.family-generation-row.has-children .self-cluster:after{content:"";position:absolute;left:var(--child-anchor-local-x, 50%);bottom:-10px;height:10px;border-left:1px solid #66766f}.family-generation-row.has-children .self-cluster.has-spouse:after{top:50%;bottom:-10px;height:auto}.generation-node:before{content:"";position:absolute;top:-24px;left:50%;height:24px;border-left:1px solid #66766f}.family-generation-row:not(.has-parents):not(.has-siblings) .generation-node:before{display:none}.descendant-scroll{width:100%;overflow-x:auto;padding-bottom:6px}.descendant-canvas{position:relative;width:max-content;min-width:100%;padding-top:34px}.descendant-canvas:before{content:"";position:absolute;top:0;left:var(--child-anchor-x, 50%);height:34px;border-left:1px solid #66766f}.family-relation-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin:2px 0 12px;color:#805d20;font-size:.84rem;line-height:1.5;text-align:center}.family-relation-hint svg{flex:0 0 auto}.child-row{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:108px;width:max-content;min-width:100%;padding-top:18px;column-gap:10px;flex-wrap:nowrap}.child-row.has-many:before{content:"";position:absolute;top:0;left:calc((100% - (var(--child-count) * 108px + (var(--child-count) - 1) * 10px)) / 2 + 54px);right:calc((100% - (var(--child-count) * 108px + (var(--child-count) - 1) * 10px)) / 2 + 54px);border-top:1px solid #66766f}.child-node{width:108px;min-width:108px}.child-node:before{content:"";position:absolute;top:-18px;left:50%;height:18px;border-left:1px solid #66766f}.child-groups{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:28px;width:max-content;min-width:100%;padding-top:22px}.child-groups:before{content:"";position:absolute;top:0;left:var(--child-group-bus-left, 50%);right:var(--child-group-bus-right, 50%);border-top:1px solid #66766f}.child-family-group{position:relative;display:grid;justify-items:center;min-width:max(260px,calc(var(--group-child-count) * 108px + (var(--group-child-count) - 1) * 10px + 24px))}.child-family-group:before{content:"";position:absolute;top:-22px;left:50%;height:22px;border-left:1px solid #66766f}.child-group-heading{position:relative;z-index:1;display:grid;justify-items:center;gap:2px;min-width:150px;min-height:46px;padding:5px 12px 7px;background:#fff;color:#24473d}.child-group-heading span{color:#6b7872;font-size:12px}.co-parent-heading-title{position:relative;display:inline-flex;align-items:center;gap:4px}.co-parent-heading-help{position:relative;display:inline-flex;color:#7a5c22}.co-parent-heading-help summary{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;cursor:help;list-style:none}.co-parent-heading-help summary::-webkit-details-marker{display:none}.co-parent-heading-help summary:hover,.co-parent-heading-help summary:focus-visible{background:#fff3d9;color:#6b4711;outline:none}.co-parent-heading-help-popover{position:absolute;z-index:35;top:calc(100% + 5px);left:50%;width:min(260px,calc(100vw - 32px));display:none;border:1px solid #cdbb91;border-radius:6px;padding:8px 10px;background:#fff;box-shadow:0 8px 20px #37291429;color:#5f5141;font-size:12px;font-weight:400;line-height:1.5;text-align:left;transform:translate(-50%);white-space:normal}.co-parent-heading-help:hover .co-parent-heading-help-popover,.co-parent-heading-help:focus-within .co-parent-heading-help-popover,.co-parent-heading-help[open] .co-parent-heading-help-popover{display:block}.child-family-group.unassigned .child-group-heading{color:#73521d}.group-child-row{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:108px;justify-content:center;gap:10px;width:100%;padding-top:10px}.group-child-row.has-many:before{content:"";position:absolute;top:0;left:calc((100% - (var(--group-child-count) * 108px + (var(--group-child-count) - 1) * 10px)) / 2 + 54px);right:calc((100% - (var(--group-child-count) * 108px + (var(--group-child-count) - 1) * 10px)) / 2 + 54px);border-top:1px solid #66766f}.group-child-row .child-node:before{top:-10px;left:calc(50% + 1px);height:10px}.pending-child-node{border-style:dashed;border-color:#b28a4a;background:#fffaf0}.pending-confirm-action{position:absolute;top:4px;right:4px}.co-parent-repair-card select{width:100%;min-height:42px;border:1px solid #ccd6d1;border-radius:6px;padding:8px;background:#fff}.genealogy-view{display:grid;gap:18px}.view-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.view-toolbar h2,.view-toolbar p,.branch-tree-section h3,.unlinked-section h3{margin:0}@media(min-width:641px){.view-toolbar{justify-content:flex-start;gap:8px;flex-wrap:nowrap}.view-toolbar>div:first-child{min-width:130px;flex:1 1 160px}.view-toolbar>div:first-child .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-toolbar>:not(:first-child){flex:0 0 auto}}.segmented-control,.depth-control{display:inline-flex;align-items:center;border:1px solid #d3d5cb;border-radius:8px;overflow:hidden;background:#fff}.segmented-control button,.depth-control button{min-height:36px;border:0;border-right:1px solid #d3d5cb;padding:7px 12px;background:transparent;color:#273b35;cursor:pointer}.segmented-control button:last-child,.depth-control button:last-child{border-right:0}.segmented-control button.active{background:#e7f0eb;color:#245346;font-weight:700}.lineage-toggle{min-height:36px;display:inline-flex;align-items:center;gap:8px;border:1px solid #d3d5cb;border-radius:8px;padding:0 10px;background:#fff;color:#273b35;font-size:14px;font-weight:700;cursor:pointer}.lineage-toggle input{position:absolute;opacity:0;pointer-events:none}.lineage-toggle-track{position:relative;width:34px;height:18px;flex:0 0 auto;border:1px solid #b8c5be;border-radius:999px;background:#eef2ef}.lineage-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:999px;background:#718078;transition:transform .16s ease,background .16s ease}.lineage-toggle input:checked+.lineage-toggle-track{border-color:#8eb2a3;background:#e7f0eb}.lineage-toggle input:checked+.lineage-toggle-track:after{transform:translate(16px);background:#245346}.depth-control button{display:grid;width:38px;place-items:center;padding:0}.depth-control .depth-all-button{width:auto;min-width:64px;padding:0 12px}.depth-control .depth-all-button.active{background:#e7f0eb;color:#245346;font-weight:700}.depth-control span{min-width:58px;padding:0 10px;text-align:center;font-weight:700}.genealogy-record-corner{position:absolute;top:4px;left:4px}.genealogy-record-button{width:18px;height:18px;display:inline-grid;place-items:center;border:1px solid #c3cec8;border-radius:50%;background:#fff;color:#356356;opacity:.82;cursor:pointer}.genealogy-record-button:hover,.genealogy-record-button:focus-visible{opacity:1;outline:2px solid #aac8bb;outline-offset:1px}.genealogy-record-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:18px;background:#121c197a}.genealogy-record-dialog{position:relative;width:min(640px,100%);max-height:min(720px,calc(100vh - 36px));overflow:auto;display:grid;gap:12px;border:1px solid #cfd8d2;border-radius:8px;padding:16px;background:#fff;box-shadow:0 18px 48px #19201f3d;color:#1d2b28;text-align:left}.genealogy-record-dialog-close{position:absolute;top:10px;right:10px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #ccd4ce;border-radius:50%;background:#fff;color:#1d2b28;cursor:pointer}.genealogy-record-dialog-state{margin:0;color:#64716b;font-size:13px;line-height:1.5}.genealogy-record-dialog-state.error{color:#9a2c2c}.genealogy-record-popover-title{display:flex;align-items:center;gap:9px;color:#245346}.genealogy-record-popover-title strong{display:block;font-size:18px;line-height:1.2}.genealogy-record-popover-title .meta{margin:2px 0 0;font-size:12px}.genealogy-record-popover-family{display:flex;flex-wrap:wrap;gap:6px}.genealogy-record-popover-family div{min-height:34px;display:inline-flex;align-items:center;gap:5px;border:1px solid #d3d5cb;border-radius:6px;padding:6px 8px;background:#fbfffc}.genealogy-record-popover-family span{color:#68716d;font-size:12px}.genealogy-record-popover-family strong{color:#1d2b28;font-size:12px}.genealogy-record-popover-fields{display:grid;grid-template-columns:42px 1fr;margin:0;border-top:1px solid #e1e5e0}.genealogy-record-popover-fields dt,.genealogy-record-popover-fields dd{margin:0;padding:8px 0;border-bottom:1px solid #e1e5e0;font-size:12px}.genealogy-record-popover-fields dt{color:#7a2f2f;font-weight:800}.genealogy-record-popover-fields dd{white-space:pre-wrap;line-height:1.55;overflow-wrap:anywhere}.genealogy-tree-shell{position:relative;width:100%;min-width:0;overflow:hidden}.genealogy-tree-scroll{width:100%;min-width:0;max-height:min(66vh,640px);overflow:auto;padding:12px 8px 22px 116px;cursor:grab;overscroll-behavior:contain;touch-action:none;scrollbar-gutter:stable both-edges}.genealogy-tree-scroll.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.generation-markers{position:absolute;top:0;left:12px;bottom:0;z-index:3;width:96px;overflow:hidden;pointer-events:none}.generation-markers span{position:absolute;left:0;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;width:92px;border:1px solid #d4dbd6;border-radius:7px;padding:6px 8px;background:#ffffffeb;color:#31544a;font-size:12px;font-weight:700;line-height:1.35;text-align:center;overflow-wrap:anywhere;box-shadow:0 4px 12px #19201f14}.generation-markers b,.generation-markers small{display:block}.generation-markers b{font-size:12px}.generation-markers small{font-size:11px}.genealogy-tree,.genealogy-tree ul{position:relative;display:flex;justify-content:center;width:max-content;min-width:100%;margin:0;padding:28px 0 0;list-style:none}.genealogy-tree{padding-top:0}.genealogy-tree-item{position:relative;padding:28px 7px 0;text-align:center}.genealogy-subtree-placeholder{align-self:flex-start;min-width:118px;min-height:62px;contain:layout style}.genealogy-subtree-endpoint{margin-inline:auto}.genealogy-tree>.genealogy-tree-item{padding-top:0}.genealogy-tree-item:before,.genealogy-tree-item:after{content:"";position:absolute;top:0;right:50%;width:50%;height:28px;border-top:1px solid #66766f}.genealogy-tree-item:after{right:auto;left:50%;border-left:1px solid #66766f}.genealogy-tree-item:only-child:before,.genealogy-tree>.genealogy-tree-item:before,.genealogy-tree>.genealogy-tree-item:after{display:none}.genealogy-tree-item:first-child:before,.genealogy-tree-item:last-child:after{border:0}.genealogy-tree-item:last-child:before{border-right:1px solid #66766f;border-radius:0 5px 0 0}.genealogy-tree-item:first-child:after{border-radius:5px 0 0}.genealogy-tree-item:only-child:after{left:50%;width:0;border-top:0;border-left:1px solid #66766f;border-radius:0}.genealogy-tree-item>ul:before{content:"";position:absolute;top:0;left:50%;height:28px;border-left:1px solid #66766f}.genealogy-node-family{position:relative;display:inline-grid;grid-template-columns:var(--genealogy-spouse-side-width, 0px) 118px var(--genealogy-spouse-side-width, 0px);align-items:center;justify-content:center;gap:0;vertical-align:top}.genealogy-node-family>.genealogy-person-node{grid-column:2}.genealogy-spouse-row{position:relative;grid-column:3;display:inline-flex;align-items:center;justify-self:start;gap:8px;margin-left:16px}.genealogy-spouse-row:before{content:"";position:absolute;top:50%;left:-16px;width:16px;border-top:1px solid #66766f}.genealogy-person-node{position:relative;display:grid;width:118px;height:70px;margin-inline:auto;place-items:center;gap:2px;border:1px solid #bdc8c1;border-radius:7px;padding:8px 8px 18px;background:#fbfffc;color:#19201f;cursor:pointer}.genealogy-person-node.current{border-color:#9a2c2c;background:#fff7f4;color:#7a2f2f}.genealogy-zodiac-badge{position:absolute;left:4px;bottom:4px;height:20px;display:inline-flex;align-items:center;gap:2px;padding:1px 4px 1px 3px;background:#fafdfaeb;color:#31584f;opacity:.94}.zodiac-badge-icon{width:14px;height:14px;flex:0 0 auto;display:block;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.zodiac-badge-label{display:inline-block;color:currentColor;font-size:11px;font-weight:800;line-height:1}.zodiac-badge--unknown{color:#7a6f5b;opacity:.8}.genealogy-spouse-node{border-color:#c9d4ce;background:#f7fbf8}.genealogy-spouse-node:not(:last-child):after{content:"";position:absolute;top:50%;right:-9px;width:8px;border-top:1px solid #66766f}.genealogy-family-connectors{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.genealogy-family-connector-path{fill:none;stroke:#66766f;stroke-width:1;vector-effect:non-scaling-stroke}.genealogy-child-groups{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:24px;width:max-content;min-width:100%;margin-top:0;padding-top:var(--genealogy-family-route-height, 48px)}.genealogy-child-family-group{position:relative;display:grid;justify-items:center;transform:translate(var(--genealogy-family-group-offset-x, 0px))}.genealogy-tree .genealogy-group-child-list{position:relative;display:flex;justify-content:center;width:max-content;min-width:100%;margin-top:0;padding-top:0}.genealogy-group-child-list:before{content:"";position:absolute;top:0;left:var(--genealogy-child-bus-left, 50%);right:var(--genealogy-child-bus-right, 50%);display:none;border-top:1px solid #66766f}.genealogy-group-child-list.has-many:before{display:block}.genealogy-group-child-list>.genealogy-tree-item:before{display:none}.genealogy-group-child-list>.genealogy-tree-item:after{top:0;left:50%;width:0;height:28px;border:0;border-left:1px solid #66766f;border-radius:0}.genealogy-person-node strong,.genealogy-person-node small{max-width:100%;overflow-wrap:anywhere}.genealogy-person-node small{color:#68736e;font-size:12px;font-style:normal;font-weight:500}.genealogy-tree-frontier{display:grid;width:150px;min-height:34px;margin:12px auto 0;place-items:center;gap:4px}.genealogy-tree-frontier-ancestor{margin:0 auto 12px}.genealogy-expand-up-icon{transform:rotate(180deg)}.genealogy-tree-expand{display:inline-flex;min-width:132px;height:32px;align-items:center;justify-content:center;gap:6px;border:1px solid #bdc8c1;border-radius:6px;background:#fff;color:#24473d;cursor:pointer;font-size:12px}.genealogy-tree-expand:disabled{cursor:wait;opacity:.7}.genealogy-tree-expand-error{max-width:150px;color:#a22f2f;font-size:11px;overflow-wrap:anywhere}.genealogy-tree-expand .spin{animation:genealogy-spin .8s linear infinite}@keyframes genealogy-spin{to{transform:rotate(360deg)}}.genealogy-marker-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;display:inline-grid;place-items:center;border:1px solid #d36b6b;border-radius:999px;background:#fff7f7;color:#9a2c2c;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}.ancestor-chain{display:flex;align-items:stretch;width:100%;margin:0;padding:12px 6px;overflow-x:auto;list-style:none}.ancestor-chain li{position:relative;display:grid;min-width:124px;min-height:78px;place-items:center;gap:2px;border:1px solid #bdc8c1;border-radius:7px;padding:8px;background:#fbfffc;text-align:center}.ancestor-chain li:not(:last-child){margin-right:34px}.ancestor-chain li:not(:last-child):after{content:"";position:absolute;top:50%;left:100%;width:34px;border-top:1px solid #66766f}.ancestor-chain li.current{border-color:#9a2c2c;background:#fff7f4}.ancestor-chain small,.ancestor-generation{color:#68736e;font-size:12px}.relationship-issue{display:flex;align-items:center;gap:10px;border-left:3px solid #b47b22;padding:10px 12px;background:#fff9ed;color:#684818}.relationship-issue div,.branch-title div{display:grid;gap:2px}.relationship-issue span,.branch-title span,.branch-stat span{font-size:12px}.issue-corner{position:relative;margin-left:auto}.issue-corner-button{width:32px;height:32px;display:inline-grid;place-items:center;border:1px solid #eadbbf;border-radius:7px;background:#fff9ed;color:#7b561c;cursor:pointer}.issue-corner.open .issue-corner-button{background:#f5ead5}.issue-corner.open .issue-corner-button svg{transform:rotate(180deg)}.issue-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:10;width:min(360px,calc(100vw - 44px));display:grid;gap:8px;border:1px solid #eadbbf;border-left:3px solid #b47b22;border-radius:8px;padding:10px 12px;background:#fff9ed;color:#684818;box-shadow:0 12px 28px #19201f24}.issue-popover div{display:grid;gap:2px}.issue-popover span{font-size:12px}.issue-corner-button svg{transition:transform .18s ease}.issue-corner-button,.issue-popover{text-align:left}.issue-corner-button:focus-visible{outline:2px solid #8c6726;outline-offset:2px}.issue-corner-button+.issue-popover{transform-origin:top right}.issue-popover strong{color:#543910}.issue-popover span{line-height:1.5}.issue-popover:empty{display:none}.issue-corner .issue-popover{animation:issue-popover-in .12s ease-out}@keyframes issue-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.issue-corner button{font:inherit}.issue-corner svg{flex:0 0 auto}.issue-corner,.issue-popover{min-width:0}.issue-popover>strong,.issue-popover>span{display:block}.issue-popover>span{font-size:12px}.issue-popover>strong+span{margin-top:2px}.issue-corner-button:hover{background:#f5ead5}.issue-popover div+div{border-top:1px solid rgba(104,72,24,.14);padding-top:8px}.issue-popover>div,.issue-popover{word-break:break-word}.issue-popover{max-height:220px;overflow:auto}.issue-corner-button{-webkit-tap-highlight-color:transparent}.issue-corner-button svg{pointer-events:none}.issue-corner-button,.issue-corner-button svg{align-items:center}.branch-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #d8ddd9;border-bottom:1px solid #d8ddd9;padding:14px 0}.branch-title,.branch-stat{display:flex;align-items:center;gap:9px}.branch-stat{margin-left:auto}.house-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.house-card{display:grid;gap:5px;border:1px solid #c8d1cb;border-radius:7px;padding:14px;background:#fbfffc}.house-card span,.house-card small{color:#68736e;font-size:12px}.branch-tree-section,.unlinked-section{display:grid;gap:12px;border-top:1px solid #d8ddd9;padding-top:16px}.unlinked-section h3 span{color:#8c4a31;font-size:13px}.unlinked-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unlinked-list>div{display:grid;gap:3px;border-bottom:1px solid #e0e3df;padding:8px 4px}.unlinked-list span{color:#68736e;font-size:12px}.empty-state{margin:0;padding:24px 12px;color:#68736e;text-align:center}.node-action,.node-tools button{width:28px;height:28px;border:1px solid #d3d5cb;border-radius:7px;background:#fff;color:#245346;display:inline-grid;place-items:center;cursor:pointer}.node-action{position:absolute;right:4px;top:4px}.node-tools{display:flex;justify-content:center;gap:6px;margin-top:8px}.child-node .node-tools{gap:2px;max-width:100%}.child-node .node-tools button{width:20px;height:20px;flex:0 0 20px;padding:0;border-radius:5px}.child-node .node-tools button svg{width:13px;height:13px}.self-tools{gap:3px;margin-top:7px}.self-tools button{width:24px;height:24px;border-radius:5px}.self-tools button:disabled{cursor:not-allowed;opacity:.35}.spouse-action{width:24px;height:24px;border-radius:5px}.edit-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.edit-card>*{min-width:0}.edit-card strong,.edit-card .meta,.form-actions{grid-column:1 / -1}.edit-card label{display:grid;gap:6px;color:#2d3835;font-weight:700}.edit-card input,.edit-card select,.edit-card textarea{width:100%;min-width:0;min-height:42px;border:1px solid #d3d5cb;border-radius:8px;padding:10px;background:#fff}.edit-card textarea{resize:vertical}.rank-edit-card{max-width:560px}.date-input-control{position:relative;display:block;min-width:0}.date-input-control>input:first-child{padding-right:82px}.date-picker-button,.date-convert-button{position:absolute;top:50%;width:34px;height:30px;transform:translateY(-50%);border:0;border-left:1px solid #e1e6e2;background:transparent;color:#2e4f45;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.date-picker-button{right:6px}.date-input-control>.date-convert-button{right:42px}.date-sync-control{position:relative;display:block;min-width:0}.date-sync-control>input{padding-right:46px}.date-sync-control>.date-convert-button{right:6px}.calendar-sync-hint{margin:-2px 0 2px;color:#68736e;font-size:13px;line-height:1.5}.life-time-editor{display:grid;gap:10px}.life-time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.life-time-mode{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #cbd4cf;border-radius:7px;overflow:hidden}.life-time-mode button{min-height:34px;padding:6px 10px;border:0;border-right:1px solid #cbd4cf;background:#fff;color:#40504b;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.life-time-mode button:last-child{border-right:0}.life-time-mode button.active{background:#e6eee9;color:#225b49;font-weight:700}.life-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.time-convert-control{position:relative;display:block}.time-convert-control input{padding-right:46px}.time-convert-control button{position:absolute;top:50%;right:6px;width:34px;height:30px;transform:translateY(-50%);border:0;border-left:1px solid #e1e6e2;background:transparent;color:#2e4f45;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.life-time-error{margin:0;color:#a12f2f;font-size:13px}.native-date-picker{position:absolute;right:6px;top:50%;width:1px;min-height:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}.wide{grid-column:1 / -1}.section-tabs{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.section-tabs button{min-height:40px;border:1px solid #d3d5cb;border-radius:8px;background:#fff;cursor:pointer}.section-tabs button.active{border-color:#356152;background:#e9f0eb;color:#245346;font-weight:700}.existing-picker{display:grid;gap:8px;padding:10px;border:1px solid #d4dbd6;border-radius:8px;background:#fbfffc}.form-actions,.search-box{display:flex;gap:8px}.search-clear-button{min-width:44px;min-height:44px;padding:0}.public-article-entry{min-height:62px;display:flex;align-items:center;gap:12px;border-top:1px solid #d8ddd9;border-bottom:1px solid #d8ddd9;padding:10px 2px;color:#245346;text-decoration:none}.public-article-entry span{display:grid;gap:2px}.public-article-entry small{color:#68736e;font-size:12px}.public-article-page{display:grid;gap:16px;min-width:0}.public-article-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:40px;border-bottom:1px solid #d8ddd9;padding-bottom:10px}.public-article-toolbar .icon-button{text-decoration:none}.article-request-state{min-height:160px;display:grid;place-items:center;gap:12px;margin:0;color:#68736e;text-align:center}.article-request-state.error{color:#8a3030}.article-request-state.compact{min-height:0;justify-items:start;padding:0 2px;text-align:left;font-size:13px}.public-article-categories{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.public-article-categories span{color:#68736e;font-size:13px;font-weight:700}.public-article-categories button{min-height:32px;border:1px solid #d3ddd7;border-radius:999px;padding:0 12px;background:#fff;color:#40524a;font-weight:700}.public-article-categories button.active{border-color:#2d6a58;background:#e7f2ed;color:#245346}.public-article-list{display:grid;border-top:1px solid #d8ddd9}.public-article-row{min-height:76px;display:grid;grid-template-columns:24px minmax(0,1fr) 20px;align-items:center;gap:12px;border-bottom:1px solid #d8ddd9;padding:12px 2px;color:#273b35;text-decoration:none}.public-article-row>span{display:grid;gap:5px;min-width:0}.public-article-row strong,.public-article-detail h2{overflow-wrap:anywhere}.public-article-row small{color:#68736e;font-size:12px;line-height:1.5}.public-article-category{display:inline-flex;align-items:center;min-height:22px;margin-right:6px;border:1px solid #cbd9d2;border-radius:999px;padding:0 8px;background:#eef7f2;color:#245346;font-size:12px;font-weight:800}.public-article-detail{min-width:0}.public-article-detail>header{display:grid;gap:8px;border-bottom:1px solid #d8ddd9;padding-bottom:16px}.public-article-detail h2{margin:0;color:#273b35;font-size:26px;line-height:1.35;letter-spacing:0}.public-article-detail header p{color:#68736e;font-size:13px}.article-rich-text{min-width:0;padding:18px 0;color:#273b35;font-size:16px;line-height:1.85;overflow-wrap:anywhere}.article-rich-text>:first-child{margin-top:0}.article-rich-text>:last-child{margin-bottom:0}.article-rich-text img{display:block;max-width:100%;height:auto;margin:14px auto}.article-rich-text a{color:#286852;overflow-wrap:anywhere}.article-rich-text [data-align=left]{text-align:left}.article-rich-text [data-align=center]{text-align:center}.article-rich-text [data-align=right]{text-align:right}.article-rich-text [data-align=justify]{text-align:justify}.search-box input{width:100%;min-height:44px;border:1px solid #d3d5cb;border-radius:8px;padding:0 12px;background:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:#19201f52}.claim-modal{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;border:1px solid #deded4;border-radius:8px;background:#fff;box-shadow:0 20px 50px #19201f38}.modal-heading{grid-column:1 / -1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.claim-modal label{display:grid;gap:6px;font-weight:700;color:#2d3835}.claim-modal input{width:100%;min-width:0;min-height:42px;border:1px solid #d3d5cb;border-radius:8px;padding:10px;background:#fff}.tabbar{position:fixed;left:50%;bottom:12px;transform:translate(-50%);width:min(920px,calc(100% - 24px));display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:8px;border:1px solid #d6d8cf;border-radius:8px;background:#fffffff5;box-shadow:0 14px 40px #19201f29}.tab{min-height:52px;display:grid;place-items:center;gap:2px;color:#59615d;text-decoration:none;border-radius:7px;font-size:12px;text-align:center}.tab.router-link-active{background:#e9f0eb;color:#245346;font-weight:700}@media(min-width:760px)and (max-width:959px){.app-shell{padding:24px 24px 104px}.topbar,.page{max-width:min(1040px,100%)}.panel{padding:20px}.genealogy-tree-scroll{max-height:min(70vh,700px);padding-right:18px;padding-bottom:28px}}@media(min-width:960px){.app-shell{padding:28px 32px}.app-shell:not(.public-shell) .app-layout{width:min(100%,1524px);margin:0 auto;display:grid;grid-template-columns:220px minmax(0,1280px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"topbar topbar" "nav content";gap:20px 24px;align-items:start}.topbar{max-width:1280px;width:100%;margin-bottom:20px}.app-shell:not(.public-shell) .app-layout>.topbar{grid-area:topbar;max-width:none;margin:0}.topbar h1{font-size:38px}.page{max-width:1120px;width:100%}.app-shell:not(.public-shell) .app-layout>.page{grid-area:content;max-width:1280px;margin:0}.app-shell.public-shell .page,.app-shell.public-shell .topbar{max-width:920px}.panel{padding:22px}.app-shell:not(.public-shell) .tabbar{position:sticky;grid-area:nav;top:24px;left:auto;bottom:auto;transform:none;width:100%;display:grid;grid-template-columns:1fr;gap:6px;padding:10px;align-self:start}.app-shell:not(.public-shell) .tab{min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 12px;font-size:14px;text-align:left}.app-shell:not(.public-shell) .tab svg{flex:0 0 auto}.app-shell:not(.public-shell) .actions{grid-template-columns:repeat(4,minmax(130px,1fr))}.app-shell:not(.public-shell) .house-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell:not(.public-shell) .unlinked-list{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell:not(.public-shell) .genealogy-tree-scroll{max-height:min(72vh,760px);padding:16px 18px 30px 124px}}@media(max-width:640px){.app-shell{overflow-x:hidden}.two,.actions,.admin-search,.claim-form,.gate-form,.claim-modal,.edit-card{grid-template-columns:1fr}.life-time-heading{align-items:stretch;flex-direction:column}.life-time-fields{grid-template-columns:1fr}.topbar h1{font-size:30px}.page,.panel,.gate-form label,.gate-secret-field,.gate-form input{min-width:0}.tabbar{width:calc(100% - 16px)}.view-toolbar{align-items:stretch}.view-toolbar>div:first-child{flex-basis:100%}.segmented-control{flex:1 1 auto}.segmented-control button{flex:1}.branch-summary{align-items:flex-start;flex-wrap:wrap}.branch-stat{margin-left:0}.house-grid,.unlinked-list{grid-template-columns:1fr}.genealogy-tree-scroll{margin-inline:-8px;width:calc(100% + 16px)}}
