:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#233233;background:#efe9de;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #f8f4ec;--paper-2: #fffdf8;--ink: #243536;--muted: #6b7472;--line: #9e9c8f;--gold: #b98b45;--green: #2f7b4a;--green-soft: #e6f4df;--green-mid: #87b77f;--amber: #a87727;--amber-soft: #fff0cd;--red: #a34f43;--red-soft: #f8dfdc;--blue-soft: #edf2f3;--shadow: 0 18px 55px rgba(48, 43, 33, .16)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{overflow:hidden;background:radial-gradient(circle at top left,rgba(255,255,255,.8),transparent 38%),#efe9de}button,input,select{font:inherit}button{color:inherit}.app-shell{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{min-height:82px;padding:13px 18px;background:#f8f4ecf5;border-bottom:1px solid rgba(133,118,92,.25);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:20}.brand{display:flex;align-items:center;gap:12px;min-width:280px}.brand-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#243c3d;color:#f6e9c7;font-weight:800;letter-spacing:.04em;box-shadow:0 8px 22px #243c3d38}.brand h1{font-family:Georgia,Times New Roman,serif;font-size:24px;margin:0;line-height:1}.brand p{margin:5px 0 0;color:var(--muted);font-size:12px}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.search-wrap{position:relative}.search-wrap input{width:220px;height:40px;border-radius:12px;border:1px solid #cfc6b6;background:#fffefa;padding:0 13px;outline:none}.search-wrap input:focus{border-color:var(--green);box-shadow:0 0 0 3px #2f7b4a1f}.search-results{position:absolute;top:47px;right:0;width:300px;overflow:hidden;z-index:40}.search-results button{width:100%;border:0;border-bottom:1px solid #ece6da;background:#fffdf8;text-align:left;padding:10px 12px;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.search-results button:hover{background:#eef6ec}.search-results span{color:var(--muted);font-size:12px}.filter{height:40px;border:1px solid #cfc6b6;border-radius:12px;background:#fffefa;display:flex;align-items:center;padding-left:10px;color:var(--muted);font-size:12px}.filter select{border:0;background:transparent;outline:none;padding:0 10px 0 7px;height:100%;color:var(--ink)}.switch{height:40px;border:1px solid #cfc6b6;border-radius:12px;background:#fffefa;display:flex;align-items:center;gap:8px;padding:0 11px;font-size:12px;cursor:pointer}.switch input{accent-color:var(--green)}.tool-btn,.reset-btn{border:1px solid #cfc6b6;background:#fffefa;border-radius:12px;height:40px;padding:0 12px;cursor:pointer}.tool-btn:hover,.reset-btn:hover{border-color:#9e8f77;background:#fff}.count{min-width:21px;height:21px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;margin-left:5px;color:#fff;background:var(--green);font-size:11px}.viewport{position:relative;overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(circle at 22% 35%,rgba(104,146,155,.08),transparent 33%),radial-gradient(circle at 78% 35%,rgba(73,134,88,.08),transparent 33%),var(--paper)}.viewport.panning{cursor:grabbing}.side-label{position:absolute;top:14px;font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700;letter-spacing:.06em;z-index:4;pointer-events:none}.father-label{left:18px;color:#315764}.mother-label{right:18px;color:#39674c}.tree-world{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform 80ms linear}.panning .tree-world{transition:none}.side-wash{position:absolute;top:0;bottom:0;width:50%;pointer-events:none}.father-wash{left:0;background:linear-gradient(90deg,#4d747e0f,#4d747e03)}.mother-wash{right:0;background:linear-gradient(270deg,#417a4e11,#417a4e03)}.generation-line{position:absolute;left:90px;right:90px;height:1px;border-top:1px dashed rgba(115,111,96,.24);pointer-events:none}.generation-line span{position:absolute;left:50%;transform:translate(-50%,-50%);padding:0 14px;background:#f8f4ecf5;color:#77786f;font-size:13px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.edges{position:absolute;inset:0;overflow:visible;pointer-events:none}.edges path{fill:none;stroke:#6a675ba3;stroke-width:2.3;vector-effect:non-scaling-stroke}.edges path.dashed{stroke:#2f7b4ab8;stroke-dasharray:8 7}.node-card{position:absolute;width:228px;height:118px;border:1.5px solid #b9aa90;border-radius:16px;background:#fffdf8f7;box-shadow:0 9px 22px #4943361f;padding:15px 15px 13px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.node-card:hover{transform:translateY(-3px);border-color:#8f7a5b;box-shadow:0 14px 30px #49433629}.node-card.researched{background:linear-gradient(135deg,#e6f4dff5,#fafdf6fa);border-color:#76a66e}.node-card.probable{border-style:solid}.node-card.uncertain{background:linear-gradient(135deg,#fff0cdfa,#fffcf2fa);border-color:#c49343}.node-card.selected{outline:4px solid rgba(47,123,74,.2);border-color:var(--green);box-shadow:0 12px 35px #2f7b4a33}.node-card strong{font-family:Georgia,Times New Roman,serif;font-size:19px;line-height:1.1;margin-bottom:3px}.surname{font-size:13px;line-height:1.18;color:#394849}.life,.place{font-size:12px;color:#68716e;margin-top:4px}.place{max-width:185px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.confidence{position:absolute;top:9px;right:10px;min-width:42px;height:23px;padding:0 7px;border-radius:999px;background:#314e47;color:#fff;display:grid;place-items:center;font-weight:800;font-size:11px}.uncertain .confidence{background:var(--amber)}.new-dot{position:absolute;right:11px;bottom:11px;width:9px;height:9px;border-radius:50%;background:#62a361;box-shadow:0 0 0 4px #62a36124}.floating-panel{background:#fffdf8f5;border:1px solid rgba(157,144,119,.35);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.zoom-controls{position:absolute;left:16px;bottom:18px;z-index:12;border-radius:14px;display:grid;grid-template-columns:42px 42px auto;overflow:hidden}.zoom-controls button{height:42px;border:0;border-right:1px solid #e7dfd0;background:transparent;cursor:pointer;font-size:18px}.zoom-controls button:hover{background:#eef6ec}.zoom-controls .fit{border-right:0;font-size:12px;padding:0 12px}.details{position:absolute;top:20px;right:18px;width:min(390px,calc(100vw - 36px));max-height:calc(100% - 86px);overflow:auto;z-index:15;border-radius:18px;padding:18px;cursor:default}.close,.close-inline{border:0;background:#eee7da;width:32px;height:32px;border-radius:50%;font-size:22px;display:grid;place-items:center;cursor:pointer}.close{position:absolute;top:12px;right:12px}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-right:38px}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:10px}.detail-head h2,.trace-title h2{margin:4px 0 2px;font-family:Georgia,Times New Roman,serif;font-size:24px}.detail-head p{margin:0;color:#62706c;font-size:13px}.big-confidence{min-width:55px;height:32px;border-radius:999px;display:grid;place-items:center;color:#fff;background:#35584e;font-weight:800;font-size:12px}.big-confidence.probable{background:#64835e}.big-confidence.uncertain{background:var(--amber)}.aliases{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0 5px}.aliases span{background:#edf2eb;color:#4d6354;border:1px solid #d4e2d0;padding:5px 8px;border-radius:999px;font-size:11px}.facts{display:grid;grid-template-columns:92px 1fr;margin:16px 0 0;border-top:1px solid #ece5d8}.facts dt,.facts dd{margin:0;padding:8px 0;border-bottom:1px solid #ece5d8;font-size:12px}.facts dt{color:#7a7c73}.facts dd{font-weight:650}.detail-section{margin-top:17px}.detail-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;color:#6a6d64}.detail-section ul,.trace-card ul{margin:0;padding-left:18px}.detail-section li,.trace-card li{margin:5px 0;font-size:12px;line-height:1.42}.sources{display:grid;gap:7px}.source{border:1px solid #e1dbcf;border-radius:11px;padding:9px 10px;background:#fffefa}.source strong,.source a{display:block;font-size:12px;color:#315f42;text-decoration:none}.source span{display:block;margin-top:3px;font-size:11px;color:#6b736f;line-height:1.35}.trace-panel{position:absolute;left:18px;top:18px;width:min(440px,calc(100vw - 36px));max-height:calc(100% - 82px);overflow:auto;z-index:16;border-radius:18px;padding:16px;cursor:default}.trace-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.trace-card{margin-top:12px;border:1px solid #d9d1c3;border-radius:14px;background:#fffefa;padding:12px}.trace-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.trace-card h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:17px}.trace-card-head span{background:#e9efdf;color:#486041;font-size:11px;font-weight:800;padding:5px 7px;border-radius:999px}.trace-card p{margin:9px 0 0;color:#6a716d;font-size:11px;line-height:1.42}.legend{position:absolute;right:18px;bottom:18px;z-index:11;border-radius:14px;padding:10px 12px;display:flex;gap:13px;flex-wrap:wrap;max-width:590px;font-size:11px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.confirmed-dot{background:#314e47}.probable-dot{background:#64835e}.uncertain-dot{background:var(--amber)}.researched-dot{background:#62a361;box-shadow:0 0 0 3px #62a36124}.reset-btn{position:absolute;left:242px;bottom:18px;z-index:12;height:42px}@media(max-width:1000px){.topbar{align-items:flex-start}.brand p{display:none}.toolbar{gap:7px}.filter,.switch{display:none}.search-wrap input{width:180px}.legend{display:none}}@media(max-width:700px){.topbar{min-height:68px;padding:10px}.brand{min-width:0}.brand-mark{width:40px;height:40px;border-radius:12px}.brand h1{font-size:18px;white-space:nowrap}.toolbar{margin-left:auto}.search-wrap{position:static}.search-wrap input{width:130px;height:38px}.search-results{left:10px;right:10px;top:62px;width:auto}.tool-btn{height:38px;padding:0 9px}.tool-btn .count{display:none}.side-label{font-size:12px}.details{inset:auto 10px 10px;width:auto;max-height:48%;border-radius:16px}.trace-panel{left:10px;right:10px;width:auto;top:10px;max-height:60%}.zoom-controls{left:10px;bottom:10px}.reset-btn{display:none}}.marriage-back{padding:7px 10px;margin-bottom:14px;border:1px solid #d2d7c8;border-radius:9px;color:#315f42;background:#eff6eb;cursor:pointer;font-size:12px}.marriage-note{font-size:12px;line-height:1.5;color:#67716b}.marriage-items{display:grid;gap:7px}.marriage-item{width:100%;padding:10px 11px;text-align:left;background:#f5f8f0;border:1px solid #d0decb;border-radius:11px;cursor:pointer;display:grid;gap:4px}.marriage-item:hover{background:#eaf4e6}.marriage-item strong{color:#315f42;font-size:12px}.marriage-item span{font-size:11px;color:#67716b}.evidence-root{margin-top:20px;border-top:1px solid #e0d8cb;padding-top:15px}.evidence-main-trigger{border:1px solid #b8d1b3;border-radius:12px;background:#eaf5e5;padding:12px 14px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:6px;color:#315f42;font-weight:750;cursor:pointer;text-align:left}.evidence-main-trigger:hover{background:#dff0d8}.evidence-trigger-meta{font-size:11px;font-weight:600;opacity:.8}.evidence-body{padding:13px 0 2px;font-size:12px}.evidence-explainer,.evidence-muted{color:#6d756e;line-height:1.5;font-size:12px;margin:0 0 13px}.evidence-message{padding:9px;border-radius:9px;font-size:11px;line-height:1.5}.evidence-message.error{background:#fbebeb;border:1px solid #e9c0b7;color:#973e32}.evidence-message.success{background:#ebf7e8;border:1px solid #b2dab0;color:#2f6941}.evidence-login,.evidence-form{border:1px solid #ded7ca;border-radius:12px;padding:12px;background:#fffefa;display:grid;gap:10px;margin-bottom:12px}.evidence-login p{margin:0;line-height:1.5;color:#6a736d}.evidence-form h4{margin:2px 0 4px;font-size:13px;font-weight:800}.evidence-form label,.evidence-login label{font-size:11px;line-height:1.4;color:#52645b;font-weight:650;display:grid;gap:5px}.evidence-form input,.evidence-form select,.evidence-form textarea,.evidence-login input,.evidence-list select{width:100%;min-height:36px;padding:8px 9px;background:#fff;border:1px solid #d1d3c9;border-radius:8px;color:#233233;outline-color:#639a6c;font-size:12px;min-width:0}.evidence-form input[type=file]{padding:7px}.evidence-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.evidence-attest{display:flex!important;align-items:flex-start;gap:7px!important;padding:10px;background:#edf7e9;border-radius:9px}.evidence-attest input{width:auto;min-height:auto;margin:2px 0 0}.evidence-actions{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.evidence-actions button,.evidence-primary,.evidence-section-header button{border:1px solid #bacdb7;border-radius:9px;background:#f4f8f0;padding:8px 10px;font-weight:650;cursor:pointer;font-size:11px}.evidence-actions button:hover,.evidence-section-header button:hover{background:#e7f2e1}button.evidence-primary{background:#2f7048;color:#fff;border-color:#2f7048}button.evidence-primary:hover{background:#245d39}.evidence-actions button.evidence-logout{margin-left:auto;border-color:transparent;background:transparent;color:#83877d}.evidence-actions button:disabled,.evidence-primary:disabled,.evidence-section-header button:disabled{opacity:.5;cursor:not-allowed}.evidence-list{margin:16px 0 0}.evidence-section-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.evidence-section-header>strong{font-size:12px}.evidence-section-header>span{border:1px solid #d6dfd1;background:#ecf4e8;border-radius:999px;padding:4px 8px}.evidence-document,.evidence-claim{border:1px solid #ddd7cb;border-radius:11px;padding:10px;background:#fffefa;margin-bottom:7px}.evidence-document-top{display:flex;justify-content:space-between;align-items:start;gap:8px}.evidence-document-top strong,.evidence-claim>strong{display:block;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.evidence-document-top a,.evidence-origin-link{white-space:nowrap;color:#2f7549;font-size:11px;text-decoration:none}.evidence-document small,.evidence-claim small{display:block;font-size:10px;color:#7c8079;margin-top:5px;line-height:1.45;overflow-wrap:anywhere}.evidence-origin-link{display:inline-block;margin-top:6px}.evidence-claim{display:grid;gap:5px}.evidence-claim p{margin:3px 0;font-size:11px;line-height:1.4;color:#5c6961}.evidence-claim select{margin-top:5px}.evidence-status{justify-self:start;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:750;background:#fff0cd;color:#815c23}.evidence-status.verified{background:#ddf2df;color:#28643b}.evidence-status.disputed{background:#fae1de;color:#973e32}@media(max-width:500px){.evidence-form-grid{grid-template-columns:1fr}.details{max-height:62%}}.verified-node{position:absolute;bottom:8px;right:26px;background:#d5eed5;border:1px solid #9cc99a;color:#24623c;padding:3px 6px;border-radius:999px;font-size:10px;font-weight:800;line-height:1}.details{width:min(490px,calc(100vw - 36px));max-height:calc(100% - 40px);top:18px;padding:20px}.node-card{height:138px;padding-bottom:38px}.node-doc-icons{position:absolute;left:12px;bottom:10px;display:flex;align-items:center;gap:6px}.node-doc-icons>span{display:grid;place-items:center;width:29px;height:25px;border-radius:7px;border:1px solid rgba(121,128,115,.26);background:#efefeabf;color:#a6aba2;transition:.15s ease}.node-doc-icons>span.present{color:#246d44;border-color:#b1d6b6;background:#dff3e1}.parent-links{display:grid;gap:6px}.parent-links button{display:flex;align-items:center;gap:5px;width:100%;border:1px solid #dde4d7;border-radius:10px;padding:9px 11px;background:#f5f8f1;text-align:left;cursor:pointer}.parent-links button>span:first-child{font-size:12px;font-weight:700;color:#375c48;flex:1}.parent-links button>span:nth-child(2){font-size:10px;color:#98702e}.parent-links button:hover{background:#edf5e8}.detail-secondary{margin-top:18px;padding:12px 0 5px;border-top:1px solid #e3e0d8;color:#686e65;font-size:12px}.detail-secondary summary{cursor:pointer;font-weight:700;font-size:12px;color:#6a756a}.detail-secondary ul{padding-left:18px;line-height:1.5}.detail-secondary .sources{margin-top:12px}.document-overview{margin-top:20px;border-top:1px solid #e3ddcf;padding-top:18px}.do-title{display:flex;align-items:baseline;justify-content:space-between;gap:9px;margin-bottom:12px}.do-title h3{font-family:Georgia,serif;font-size:20px;margin:0;color:#263b32}.do-title span{color:#828a7f;font-size:11px}.do-category{background:#fffcf7;border:1px solid #e2dece;border-radius:13px;margin-bottom:9px;overflow:hidden}.do-category-heading{display:flex;align-items:center;gap:10px;min-height:63px;padding:11px 12px}.do-category-icon{width:38px;height:38px;border:1px solid #e1e2d9;border-radius:11px;display:grid;place-items:center;flex-shrink:0;color:#969f94;background:#f1f1ea}.do-category-icon.available{background:#e2f3df;border-color:#acd5ad;color:#28714b}.do-category-name{display:grid;flex:1;min-width:0;gap:2px}.do-category-name strong{font-size:13px;color:#263c33}.do-category-name span{font-size:11px;color:#8a9087}.do-count{white-space:nowrap;padding:5px 8px;font-size:10px;font-weight:700;border-radius:999px;background:#efeee8;color:#92978c}.do-count.available{background:#e1f2df;color:#287249}.do-category-content{border-top:1px solid #eee9dd;padding:9px 12px 11px}.do-bucket+.do-bucket{border-top:1px solid #eee9dd;padding-top:10px;margin-top:12px}.do-marriage-label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:#6f756a;padding:3px 0 8px}.do-add{display:inline-flex;align-items:center;gap:5px;border:1px dashed #b7cbaa;background:#f3f8ef;color:#387150;cursor:pointer;padding:6px 10px;font-size:11px;font-weight:700;border-radius:8px}.do-add:hover{background:#e3f2dc}.do-document{border:1px solid #e4e5da;padding:10px;border-radius:11px;background:#fff;margin-bottom:8px}.do-document-info{display:flex;gap:9px;align-items:flex-start;color:#5c8b67}.do-document-info>div{flex:1;min-width:0}.do-document-info strong{display:block;font-size:12px;color:#283e34;overflow-wrap:anywhere}.do-document-info small{display:block;margin-top:4px;font-size:10px;color:#898c84}.do-proof-text{display:block;font-size:11px;color:#526b57;line-height:1.45;margin-top:7px;white-space:pre-line}.do-review{display:inline-flex;align-items:center;gap:3px;margin-top:6px;color:#257546;background:#e8f6e7;border:1px solid #c7e6c8;border-radius:99px;padding:4px 6px;font-size:10px;font-weight:700}.do-document-actions{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin:8px 0 0}.do-document-actions button,.do-document-actions a{width:30px;height:29px;display:grid;place-items:center;color:#516a56;background:#f2f6ef;border:1px solid #e1e8dc;border-radius:8px;cursor:pointer;text-decoration:none}.do-document-actions button:hover,.do-document-actions a:hover{color:#276a44;background:#e2f1df}.do-alert{border-radius:8px;padding:9px 10px;font-size:11px;line-height:1.5}.do-alert-error{background:#ffeded;border:1px solid #ecc1c1;color:#933d3d}.do-alert-success{color:#2b7245;background:#e8f7e5;border:1px solid #bdddb9}.do-login{margin-top:12px;border:1px solid #d7e0d1;background:#f2f7ee;border-radius:11px;padding:13px}.do-login-caption{display:flex;align-items:center;gap:8px;color:#395f45;font-weight:750;font-size:12px}.do-login p{color:#657367;margin:7px 0 11px;font-size:11px;line-height:1.5}.do-login-row{display:flex;gap:6px}.do-login-row input{flex:1;min-width:0}.do-locked{padding:5px 12px 11px;display:flex;align-items:center;gap:8px;font-size:10px;color:#6c796a}.do-login-state{color:#777e76;font-size:11px;padding:12px}.do-login-row input,.do-upload-form input,.do-upload-form textarea,.do-inline-editor textarea{border:1px solid #d1d7cc;background:#fff;border-radius:8px;padding:9px 10px;font:inherit;font-size:12px;min-height:36px;outline-color:#77a977}.do-upload-form textarea,.do-inline-editor textarea{resize:vertical;width:100%;min-height:54px}.do-primary,.do-form-actions>button{border-radius:8px;border:1px solid #cfdccc;background:#fff;color:#46644c;cursor:pointer;font-size:11px;font-weight:750;padding:8px 10px;display:inline-flex;align-items:center;gap:5px;justify-content:center}.do-primary,.do-form-actions>button.do-primary{border-color:#2e734c;background:#2e734c;color:#fff}.do-primary:hover{background:#24613d}.do-primary:disabled,.do-form-actions button:disabled{opacity:.5;cursor:not-allowed}.do-form-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.do-form-actions .do-danger{margin-left:auto;border-color:#f1d5cd;color:#a54a43}.do-upload-form,.do-inline-editor{display:grid;gap:10px;padding:12px;border:1px solid #d5e1cc;background:#f6faf3;border-radius:10px;margin-top:7px}.do-upload-form>strong{font-size:12px;font-weight:750;color:#315b42}.do-upload-form label,.do-inline-editor label{display:grid;gap:5px;color:#647065;font-size:11px;font-weight:700}.do-check{display:flex!important;gap:8px!important;align-items:flex-start;line-height:1.4;font-weight:500!important}.do-check input{flex-shrink:0;width:auto;min-height:auto;margin:2px 0 0}.do-optional{font-size:10px;font-weight:400;color:#838e82}.do-more summary{display:flex;justify-content:space-between;cursor:pointer;font-size:11px;font-weight:650;color:#60836b;padding:4px 0}.do-more label{margin-top:10px}.do-link-proof{margin-top:16px;border:1px solid #e0e5d8;background:#f5f8f0;padding:13px;border-radius:12px}.do-proof-heading{display:flex;align-items:center;gap:8px;color:#477457}.do-proof-heading h3{font-size:12px;margin:0}.do-link-proof p{font-size:11.5px;line-height:1.6;margin:10px 0;color:#53655a;white-space:pre-line}.do-small-edit{border:0;padding:0;font-size:11px;background:none;color:#52775e;cursor:pointer;display:flex;gap:5px;align-items:center;font-weight:700}.do-preview-backdrop{position:fixed;inset:0;z-index:999;display:flex;justify-content:center;align-items:center;padding:22px;background:#16201abd;cursor:default}.do-preview-shell{height:min(92vh,1100px);width:min(92vw,1400px);display:flex;flex-direction:column;background:#f7f7f1;border-radius:15px;overflow:hidden;box-shadow:0 30px 100px #00000054}.do-preview-bar{flex-shrink:0;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 18px;background:#fff;border-bottom:1px solid #e7e7df}.do-preview-bar>div{min-width:0;flex:1}.do-preview-bar strong{display:block;font-size:13px;color:#273c30;overflow-wrap:anywhere}.do-preview-bar small{font-size:11px;color:#737d72}.do-preview-bar>a,.do-preview-bar>button{display:inline-flex;align-items:center;gap:6px;color:#2d6947;text-decoration:none;font-size:12px;border:0;background:transparent;cursor:pointer;flex-shrink:0}.do-preview-shell iframe{border:0;width:100%;height:100%}.do-preview-image{width:100%;height:100%;overflow:auto;display:grid;place-items:center;padding:15px}.do-preview-image img{max-width:100%;max-height:100%;object-fit:contain}.do-preview-fallback{margin:auto;display:grid;gap:15px;color:#58675b;text-align:center;font-size:13px}.do-preview-fallback a{color:#34734d;display:inline-flex;gap:6px;justify-content:center;text-decoration:none}.do-legacy{padding:8px 0;font-size:11px}.do-legacy button{background:none;border:none;cursor:pointer;color:#44724e;display:flex;gap:6px;align-items:center;margin-top:8px}@media(max-width:700px){.details{max-height:calc(100% - 24px);width:auto;inset:12px 10px;padding:16px}.do-preview-backdrop{padding:0}.do-preview-shell{width:100vw;height:100dvh;border-radius:0}.do-preview-bar{padding:11px 12px}.do-preview-bar strong{max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.do-zoom{display:inline-flex;align-items:center;gap:5px;padding:3px;border-radius:9px;background:#f0f4eb}.do-zoom button{width:25px;height:25px;border-radius:6px;border:1px solid #d8e4d0;background:#fff;color:#315e42;font-weight:800;cursor:pointer}.do-zoom span{min-width:38px;text-align:center;color:#56705b;font-size:11px;font-weight:700}.do-preview-image{display:block;overflow:auto;padding:0;text-align:center;background:#e1e0dc}.do-preview-image img{display:block;height:auto;max-width:none;max-height:none;object-fit:initial;margin:auto}@media(max-width:700px){.do-zoom span{min-width:26px;font-size:10px}.do-zoom button{width:23px;height:23px}.do-preview-bar>a{font-size:0}.do-preview-bar>a svg{font-size:initial}}.do-preview-bar>div.do-zoom{flex:0 0 auto;min-width:0}.details,.trace-panel{touch-action:pan-y;overscroll-behavior:contain}.do-source-link{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:10px;color:#30704d;text-decoration:none}.family-count{position:absolute;right:9px;bottom:11px;padding:4px 6px;border-radius:7px;background:#e4eddf;border:1px solid #b9d2ae;color:#3b6d49;font-size:10px;font-weight:800}.familysearch-source{margin-top:12px;padding:10px 11px;background:#f9f2df;border:1px solid #ebd9a7;border-radius:10px;display:grid;gap:5px;line-height:1.45}.familysearch-source strong{font-size:11px;color:#946b2d}.familysearch-source span{font-size:11px;color:#736747}.familysearch-warning{margin:0 0 10px;border-left:3px solid #cba45b;padding:7px 9px;border-radius:0 7px 7px 0;background:#fff7e8;color:#786c4c;font-size:11px;line-height:1.5}.family-relations{display:grid;gap:6px}.family-relation{width:100%;min-height:58px;padding:10px 12px;border:1px solid #cbd9c6;border-radius:10px;background:#f5f9f1;display:flex;gap:7px;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.family-relation:hover{background:#eaf4e3}.family-relation-uncertain{background:#fff8e9;border:1px dashed #d8b178}.family-relation-uncertain:hover{background:#fff0ce}.family-relation>div{display:grid;gap:3px}.family-relation strong{font-size:12px;color:#385746}.family-relation small{font-size:10px;color:#6b786a}.family-relation .relation-uncertainty{color:#987333}.family-relation .relation-source{color:#708275}.family-children-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.family-children-grid>button{padding:10px;min-width:0;border:1px solid #d8dfd0;border-radius:10px;background:#fafbf7;text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer}.family-children-grid>button:hover{border-color:#83ae7b;background:#f0f7ea}.family-children-grid>button strong{color:#2e4c3b;font-size:12px;line-height:1.2;overflow-wrap:anywhere}.family-children-grid>button span{color:#727c72;font-size:11px}.family-children-grid>button small{color:#9c792f;font-size:10px;line-height:1.25}@media(max-width:450px){.family-children-grid{grid-template-columns:1fr}}.trace-open-person{margin-top:9px;padding:8px 10px;border:1px solid #b7ceb0;border-radius:8px;background:#eaf5e5;color:#306245;font-size:11px;font-weight:750;cursor:pointer}.trace-open-person:hover{background:#def0d6}.import-tool-btn{border-color:#a6cda7;background:#e9f4e6;color:#2c6b47;font-weight:700}.import-tool-btn:hover{border-color:#7db084;background:#def0db}.bulk-backdrop{position:fixed;inset:0;z-index:1500;background:#14231d9e;padding:22px;display:flex;align-items:center;justify-content:center}.bulk-dialog{width:min(760px,100%);max-height:min(850px,92dvh);background:#faf9f4;border-radius:20px;overflow:hidden;border:1px solid #c6c9b8;box-shadow:0 25px 90px #0000004a;display:flex;flex-direction:column;color:#263d33}.bulk-header{padding:18px 20px;border-bottom:1px solid #e3e5db;background:#fffdf8;display:flex;justify-content:space-between;align-items:center;gap:12px}.bulk-heading{display:flex;gap:12px;align-items:center}.bulk-heading>svg{flex-shrink:0;color:#3c8559}.bulk-heading h2{font-family:Georgia,serif;font-size:23px;margin:0}.bulk-heading p{color:#7e877b;font-size:12px;margin:5px 0 0}.bulk-header>button{background:#f4f2e9;border:none;border-radius:99px;width:33px;height:33px;display:grid;place-items:center;cursor:pointer}.bulk-content{overflow:auto;padding:19px 21px 22px;overscroll-behavior:contain}.bulk-explainer{margin:0 0 17px;color:#627468;font-size:12px;line-height:1.5}.bulk-info{color:#7f847a;font-size:12px}.bulk-auth{border:1px solid #d4decc;background:#f0f7ea;padding:15px;border-radius:13px;display:grid;gap:11px}.bulk-auth p{display:flex;gap:7px;align-items:center;margin:0;font-size:12px;color:#47694e}.bulk-auth>div{display:flex;gap:8px}.bulk-auth input{flex:1;min-width:0;border:1px solid #c5d6bd;border-radius:9px;padding:10px;background:#fff}.bulk-auth button,.bulk-submit{border:1px solid #2d754e;border-radius:9px;padding:9px 15px;background:#2d754e;color:#fff;font-weight:750;cursor:pointer}.bulk-auth button:disabled,.bulk-submit:disabled{opacity:.5;cursor:not-allowed}.bulk-file{border:1px dashed #9bbd9c;color:#356b45;padding:18px;border-radius:13px;background:#f0f8ea;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;font-weight:700;font-size:13px;margin:6px 0 13px}.bulk-file:hover{background:#e8f3e4}.bulk-file input{display:block;max-width:100%;font-size:11px;font-weight:400;padding:5px}.bulk-list{border:1px solid #e0e1d6;border-radius:13px;overflow:hidden;background:#fffdfa;margin-top:10px}.bulk-list-head{padding:12px 14px;background:#f5f5ed;display:flex;justify-content:space-between;align-items:center;font-size:12px}.bulk-list-head span{color:#62836c}.bulk-item{border-top:1px solid #e9e9df;padding:11px 13px;display:flex;align-items:flex-start;gap:11px;cursor:pointer}.bulk-item>input{margin:6px 0 0;accent-color:#2b754b;flex-shrink:0}.bulk-kind{border-radius:6px;background:#e8eee5;color:#54755b;font-size:10px;font-weight:800;padding:5px 6px;min-width:91px;text-align:center;white-space:nowrap}.bulk-item-info{flex:1;min-width:0;display:grid;gap:4px}.bulk-item-info strong{font-size:12px;color:#2b4434}.bulk-item-info small{font-size:10px;color:#7a8176;line-height:1.35}.bulk-success{color:#3e9654;flex-shrink:0}.bulk-error{color:#b35048;flex-shrink:0}.bulk-footer{display:flex;justify-content:flex-end;gap:9px;align-items:center;padding:15px 19px;border-top:1px solid #e2e3d7;background:#fffdf9}.bulk-footer>span{margin-right:auto;color:#848b7f;font-size:11px}.bulk-footer>button:not(.bulk-submit){border:1px solid #d7dacc;border-radius:9px;background:#fff;padding:9px 14px;cursor:pointer}.bulk-alert{padding:10px;border-radius:9px;display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.4}.bulk-alert.error{background:#fbe8e5;color:#a74943;border:1px solid #e5bcb6}.bulk-alert.success{background:#e7f4e5;color:#30704b;border:1px solid #b9dbb8}@media(max-width:700px){.import-tool-btn{font-size:10px;padding:0 8px}.bulk-backdrop{padding:0}.bulk-dialog{height:100dvh;max-height:100dvh;border-radius:0}.bulk-header{padding:14px}.bulk-heading h2{font-size:20px}.bulk-heading p{font-size:11px}.bulk-content{padding:15px}.bulk-item{gap:6px;padding:10px}.bulk-kind{min-width:65px;font-size:9px;padding:5px 3px}.bulk-footer{padding:12px;flex-wrap:wrap}.bulk-submit{margin-left:auto}}
