:root{
  --brand:#173f36;--brand-2:#2f6e5d;--brand-soft:#e3eee9;
  --accent:#8a5a2b;--ink:#25312d;--muted:#6f7773;--paper:#fffdfa;
  --bg:#f4f1ea;--line:#dcd6ca;--danger:#9b4a3d;--shadow:0 12px 34px rgba(30,51,43,.10);
  --radius:20px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,"Segoe UI",sans-serif;line-height:1.7}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.site-header{height:74px;padding:0 4vw;display:flex;align-items:center;gap:24px;background:rgba(255,253,250,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px;min-width:170px}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:800}.brand strong{display:block;font-size:18px}.brand small{display:block;color:var(--muted);font-size:11px;direction:ltr;text-align:right}
.top-nav{display:flex;align-items:center;gap:5px;flex:1}.top-nav a{padding:9px 11px;border-radius:10px;font-size:13px;font-weight:700}.top-nav a:hover,.top-nav a.active{background:var(--brand-soft);color:var(--brand)}
.search-button,.menu-toggle{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 13px;color:var(--brand);font-weight:700}.menu-toggle{display:none;font-size:20px}
.app-shell{min-height:calc(100vh - 145px)}.loading{padding:80px;text-align:center;color:var(--muted)}
.hero{background:linear-gradient(125deg,#173f36,#2b6657);color:#fff;padding:72px 5vw 92px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:420px;height:420px;border:80px solid rgba(255,255,255,.04);border-radius:50%;left:-140px;top:-160px}.hero-inner{max-width:900px;margin:auto;position:relative;z-index:1}.hero h1{font-size:clamp(40px,7vw,74px);margin:8px 0 12px;line-height:1}.hero p{font-size:19px;max-width:760px;color:#e6f0ec}.eyebrow{display:inline-flex;background:rgba(255,255,255,.13);padding:5px 11px;border-radius:100px;font-size:12px;font-weight:700}.eyebrow.subtle{background:var(--brand-soft);color:var(--brand)}.hero-actions,.toolbar,.card-actions,.focus-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:12px;padding:10px 15px;font-weight:700;font-size:13px;transition:.15s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--brand);color:#fff}.button.secondary{background:#fff;border-color:var(--line);color:var(--brand)}.button.outline{border-color:rgba(255,255,255,.45);background:transparent;color:#fff}.button.small{padding:7px 10px;font-size:12px}.full-width{width:100%}
.section{padding:48px 5vw}.soft-section{background:#ebe7de}.section-inner{max-width:1180px;margin:auto}.section-inner.narrow{max-width:900px}.portal-section{padding-top:0}.portal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:-42px;position:relative;z-index:3}.portal-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:225px}.portal-card:hover{border-color:#a8bdb4;transform:translateY(-3px)}.portal-icon{font-size:30px;color:var(--brand)}.portal-card h3{margin:12px 0 5px}.portal-card p{font-size:13px;color:var(--muted);margin:0;flex:1}.portal-count{color:var(--brand);font-weight:800;margin-top:16px;font-size:12px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.section-head.compact{align-items:center;margin-bottom:14px}.section-head h2{margin:0;font-size:25px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:16px;padding:18px}.stat strong{font-size:30px;color:var(--brand);display:block}.stat span{font-size:13px;color:var(--muted)}
.page-hero{padding:36px 5vw 28px;background:#ebe6dc;border-bottom:1px solid var(--line)}.compact-hero{padding-top:25px;padding-bottom:20px}.page-title{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:end;gap:20px}.page-title h1{margin:5px 0;font-size:34px}.page-title p{margin:0;color:var(--muted)}.back-link{font-size:12px;color:var(--brand);font-weight:700}.large-count{font-size:30px;color:var(--brand);font-weight:800}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 7px 22px rgba(30,50,42,.06)}.panel-pad{padding:22px}
.input,.big-input,select,textarea,input[type=text],input[type=email],input[type=tel],input[type=file]{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;outline:none;color:var(--ink)}.big-input{padding:14px 16px;font-size:16px}.input:focus,.big-input:focus,select:focus,textarea:focus,input:focus{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(47,110,93,.12)}
.family-search-box{max-width:760px;margin:0 auto 38px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.family-search-box label{font-size:16px;margin-bottom:8px}.inline-search-results{display:grid;gap:7px;margin-top:9px;max-height:320px;overflow:auto}.family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.family-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 7px 20px rgba(30,50,42,.05)}.family-card-main{display:flex;gap:13px;min-height:112px}.family-tree-icon{font-size:31px;color:var(--brand)}.family-card h3{margin:0 0 5px}.family-card p{margin:0;color:var(--muted);font-size:13px}.family-card-stats{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:11px;margin-top:12px;font-size:12px;color:var(--muted)}.question-count{color:var(--accent);font-weight:700}.family-card-actions{display:flex;gap:8px;margin-top:12px}
.question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.question-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:17px;display:flex;flex-direction:column}.question-card h3{font-size:16px;margin:12px 0 6px}.question-card p{font-size:13px;color:var(--muted);margin:0 0 14px;flex:1}.question-top,.question-context{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.question-context{justify-content:flex-start;border-top:1px dashed var(--line);padding-top:9px;margin-bottom:12px}.question-context a{color:var(--brand);font-weight:700}
.family-workspace{max-width:1320px;margin:auto;padding:22px 3vw 60px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:19px}.family-sidebar{padding:15px;position:sticky;top:94px;height:calc(100vh - 120px);overflow:hidden;display:flex;flex-direction:column}.sidebar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sidebar-head span{font-size:12px;color:var(--muted)}.family-member-list{margin-top:10px;overflow:auto;display:grid;gap:4px;padding-left:3px}.family-member-row{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;font-size:13px}.family-member-row:hover,.family-member-row.active{background:var(--brand-soft);color:var(--brand)}.family-member-row small{color:var(--muted)}.sidebar-help{margin-top:12px;padding:12px;background:#f5eee3;border-radius:12px;display:flex;justify-content:space-between;font-size:12px}.sidebar-help a{color:var(--accent);font-weight:700}.family-main{display:grid;gap:18px;min-width:0}
.focus-panel{overflow:hidden}.focus-header{padding:20px 22px;display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);background:#faf8f3}.focus-header h2{font-size:30px;margin:5px 0 0}.focus-header p{margin:0;color:var(--muted)}.focus-facts{display:flex;gap:10px;flex-wrap:wrap;padding:14px 22px;border-bottom:1px solid var(--line)}.focus-facts span{background:#f1eee7;border-radius:100px;padding:5px 10px;font-size:12px}.missing-fact{color:var(--muted);border:1px dashed #b9b1a3;background:transparent!important}.person-note{margin:16px 22px 0;padding:12px 14px;background:#f4eee4;border-right:4px solid var(--accent);border-radius:10px;font-size:13px}.simple-tree{padding:20px 22px 27px}.tree-level{background:#fbfaf7;border:1px solid var(--line);border-radius:17px;padding:16px}.tree-level h3{margin:0 0 12px;font-size:15px;color:var(--brand)}.tree-arrow{text-align:center;font-size:26px;color:#95a49e;height:37px}.tree-cards{display:grid;gap:12px}.two-slots{grid-template-columns:1fr 1fr}.parent-slot{border:1px dashed #cfc7ba;border-radius:14px;padding:10px;min-width:0}.slot-label{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.siblings-scroll{display:flex;gap:10px;overflow:auto;padding-bottom:7px}.siblings-scroll .person-card{min-width:205px}.level-title{display:flex;justify-content:space-between;align-items:center}.text-action{border:0;background:transparent;color:var(--brand-2);font-weight:700;font-size:12px;padding:6px}.text-action:hover{text-decoration:underline}
.person-card{min-height:66px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px;display:flex;align-items:center;gap:9px;position:relative}.person-card:hover{border-color:var(--brand-2);box-shadow:0 6px 14px rgba(38,79,66,.09)}.person-card.selected{border:2px solid var(--brand);background:var(--brand-soft)}.person-card.disputed{border-color:#d49c8e;background:#fff7f4}.person-avatar{width:34px;height:34px;min-width:34px;border-radius:50%;background:#d9e6e1;color:var(--brand);display:grid;place-items:center;font-size:11px;font-weight:800}.person-avatar.female{background:#eee0da;color:#804638}.person-card-text{min-width:0;flex:1}.person-card-text strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-card-text small{display:block;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-date{font-size:9px;color:var(--muted);position:absolute;bottom:4px;left:7px}.missing-card{width:100%;min-height:65px;border:1px dashed #aaa296;border-radius:12px;background:#fffdf8;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center}.missing-card strong{color:var(--brand);font-size:12px}.missing-card small{font-size:10px}
.union-card{border:1px solid var(--line);border-radius:15px;padding:14px;margin-top:11px;background:#fff}.union-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.union-number{font-size:12px;font-weight:800;color:var(--accent)}.couple-row{display:grid;grid-template-columns:1fr 34px 1fr;gap:9px;align-items:center}.marriage-mark{text-align:center;font-size:24px;color:var(--accent)}.external-family-link{display:block;text-align:center;margin:8px 0;color:var(--brand-2);font-size:11px;font-weight:700}.children-box{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}.children-box>strong{font-size:12px}.children-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.empty-child{grid-column:1/-1;color:var(--muted);font-size:12px;padding:10px}.unassigned-union{background:#fff9ef;border-style:dashed}.empty-union{text-align:center;padding:27px;border:1px dashed #beb6aa;border-radius:14px}.empty-union p{color:var(--muted)}.empty-union>div{display:flex;justify-content:center;gap:8px}
.sources-panel .source-list{display:grid;gap:8px}.source-row{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.source-row strong{display:block;font-size:13px}.source-row small{display:block;color:var(--muted);font-size:10px}.empty-inline{padding:16px;text-align:center;color:var(--muted);background:#faf8f4;border:1px dashed var(--line);border-radius:12px}
.network-notice{background:#f4eee4;border-right:4px solid var(--accent);padding:13px 15px;border-radius:11px;margin-bottom:16px}.family-network-wrap{overflow:auto;padding:15px}.family-network{position:relative;margin:auto;background-image:radial-gradient(#ddd7cd 1px,transparent 1px);background-size:24px 24px}.family-network svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.network-edge line{stroke:#8ba298;stroke-width:2.5}.network-edge circle{fill:#fff;stroke:#668b7b;stroke-width:2}.network-edge text{fill:var(--brand);font-size:11px;font-weight:800}.family-node{position:absolute;transform:translate(-50%,-50%);width:145px;min-height:68px;background:#fff;border:2px solid var(--brand);border-radius:15px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:8px;box-shadow:var(--shadow);z-index:2}.family-node:hover{background:var(--brand);color:#fff}.family-node small{color:var(--muted);font-size:10px}.family-node:hover small{color:#d9e8e2}.connection-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.connection-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px}.connection-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-title a{font-weight:800;color:var(--brand)}.connection-title b{margin-right:auto;background:var(--brand-soft);padding:3px 8px;border-radius:100px;font-size:11px}.couple-list{display:grid;gap:7px;margin-top:12px}.couple-list>div{display:flex;gap:6px;align-items:center;border-top:1px dashed var(--line);padding-top:7px;font-size:12px}.couple-list a{color:var(--brand-2);font-weight:700}.couple-list .badge{margin-right:auto}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.document-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(30,47,40,.06)}.document-card .thumb{height:210px;background:#e9e4da;display:grid;place-items:center;overflow:hidden}.document-card img{width:100%;height:100%;object-fit:cover;transition:.25s}.document-card:hover img{transform:scale(1.025)}.no-image{font-size:44px;color:#8c857a}.card-body{padding:16px}.card-body h3{margin:0 0 7px;font-size:16px}.card-body p{margin:0 0 12px;color:var(--muted);font-size:12px}.card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.standalone-search{max-width:290px}
.document-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:20px;max-width:1180px;margin:auto;padding:25px 5vw 60px}.document-image{background:#282b29;border-radius:18px;overflow:hidden;min-height:530px;display:grid;place-items:center}.document-image img{width:100%;height:auto;max-height:80vh;object-fit:contain;cursor:zoom-in}.empty-dark{color:#fff;text-align:center}.empty-dark span{font-size:58px}.transcription{white-space:pre-wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;margin:11px 0}.spaced-title{margin-top:24px}.person-chips{display:flex;gap:7px;flex-wrap:wrap}.person-chip{border:1px solid var(--line);background:#fff;border-radius:100px;padding:6px 10px;font-size:11px;color:var(--brand)}.process-note{display:grid;gap:5px;margin-top:22px;padding:13px;background:#f2eee5;border-radius:12px;font-size:12px}.process-note b{color:var(--accent)}
.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:100px;font-size:10px;background:#e9eee9;color:var(--brand)}.badge.confirmed{background:#e3eee9}.badge.probable{background:#f3ead7;color:#7b5a1f}.badge.disputed{background:#f7e1dc;color:#8e3f34}
.empty-state{background:var(--paper);border:1px dashed #bcb4a7;border-radius:22px;padding:58px 25px;text-align:center;max-width:780px;margin:20px auto}.empty-state .empty-icon{font-size:54px;opacity:.7}.empty-state h2{margin:12px 0 5px}.empty-state p{color:var(--muted);max-width:560px;margin:0 auto 20px}.floating-contribute{position:fixed;left:20px;bottom:20px;z-index:45;border:0;background:var(--accent);color:#fff;padding:12px 18px;border-radius:100px;box-shadow:0 9px 24px rgba(116,68,29,.3);font-weight:700}.site-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 5vw;background:#163b33;color:#fff}.site-footer span{display:block;color:#cfded9;font-size:11px}.footer-links{display:flex;gap:18px}.link-button{border:0;background:none;color:inherit;padding:0}.dialog{border:0;border-radius:22px;padding:0;box-shadow:0 25px 70px rgba(0,0,0,.25);width:min(690px,calc(100vw - 24px));max-height:90vh;background:var(--paper);color:var(--ink)}.dialog::backdrop{background:rgba(13,25,21,.58);backdrop-filter:blur(3px)}.contribution-dialog form,.search-dialog{padding:22px}.dialog-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:18px}.dialog-head h2{margin:0}.dialog-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.icon-button{border:0;background:#ebe7df;width:38px;height:38px;border-radius:12px;font-size:24px;display:grid;place-items:center}label{display:block;font-size:13px;font-weight:700;margin-bottom:13px}label input,label select,label textarea{margin-top:6px;font-weight:400}label small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.form-grid{display:grid;gap:12px}.two-col{grid-template-columns:1fr 1fr}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.hidden{display:none!important}.required{color:var(--danger)}.search-results{display:grid;gap:7px;margin-top:13px;max-height:55vh;overflow:auto}.search-result{border:1px solid var(--line);border-radius:12px;padding:9px 11px;display:flex;justify-content:space-between;align-items:center;background:#fff}.search-result small{display:block;color:var(--muted);font-size:10px}.lightbox-dialog{width:min(1200px,96vw);height:min(90vh,900px);background:#202422;overflow:hidden}.lightbox-dialog img{width:100%;height:100%;object-fit:contain}.lightbox-close{position:absolute;top:12px;left:12px;z-index:2}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#183e35;color:#fff;padding:12px 16px;border-radius:13px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(15px);transition:.2s;max-width:360px}.toast.show{opacity:1;transform:none}.track-box{max-width:620px;margin:30px auto;background:var(--paper);padding:24px;border:1px solid var(--line);border-radius:20px}.track-result{margin-top:18px;padding:16px;border-radius:14px;background:#edf2ef}
@media(max-width:1100px){.portal-grid{grid-template-columns:repeat(3,1fr)}.family-grid,.question-grid,.cards-grid{grid-template-columns:repeat(2,1fr)}.children-grid{grid-template-columns:repeat(2,1fr)}.family-workspace{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:820px){.site-header{height:auto;min-height:66px;flex-wrap:wrap;padding:10px 14px}.menu-toggle{display:block;margin-right:auto}.search-button{display:none}.top-nav{display:none;width:100%;flex-direction:column;align-items:stretch}.top-nav.open{display:flex}.top-nav a{background:#f0ece4}.portal-grid{grid-template-columns:1fr 1fr;margin-top:-28px}.stats{grid-template-columns:1fr 1fr}.page-title,.section-head,.focus-header{align-items:start;flex-direction:column}.family-workspace{grid-template-columns:1fr;padding:15px}.family-sidebar{position:static;height:auto;max-height:370px}.two-slots,.couple-row{grid-template-columns:1fr}.marriage-mark{transform:rotate(90deg)}.children-grid{grid-template-columns:1fr 1fr}.document-layout{grid-template-columns:1fr;padding:18px 14px 48px}.connection-list{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr 1fr}.document-image{min-height:380px}.floating-contribute{left:12px;right:12px;bottom:12px;width:calc(100% - 24px)}.site-footer{padding-bottom:80px;flex-direction:column;align-items:start}}
@media(max-width:560px){.hero{padding:48px 18px 64px}.hero p{font-size:16px}.section{padding:34px 14px}.page-hero{padding:26px 14px 20px}.page-title h1{font-size:28px}.portal-grid,.family-grid,.question-grid,.cards-grid{grid-template-columns:1fr}.portal-card{min-height:180px}.stats{grid-template-columns:1fr 1fr}.focus-header,.focus-facts,.simple-tree{padding-left:14px;padding-right:14px}.children-grid{grid-template-columns:1fr}.siblings-scroll .person-card{min-width:180px}.two-col{grid-template-columns:1fr}.family-network-wrap{padding:6px}.standalone-search{width:100%;max-width:none}.site-footer{padding-left:16px;padding-right:16px}}
.timeline-note{border-right:4px solid var(--accent);background:#f5eee5;padding:13px;border-radius:10px;color:#5c4a39}.source-list{display:grid;gap:10px}

/* ===== Sarology v4: full-depth hierarchy family tree ===== */
.hierarchy-page{padding:22px 4vw 64px;display:grid;gap:18px;max-width:1800px;margin:auto}
.hierarchy-tools{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:16px 18px;position:relative;z-index:8}
.tree-search-wrap{position:relative;width:min(420px,100%)}
.tree-search-wrap label{margin:0 0 6px;font-size:12px;color:var(--muted)}
.tree-search-results{position:absolute;top:68px;right:0;left:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;z-index:20;max-height:330px;overflow-y:auto}
.tree-search-results:empty{display:none}
.tree-search-results>a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #eee9e1}
.tree-search-results>a:last-child{border-bottom:0}
.tree-search-results>a:hover{background:var(--brand-soft)}
.tree-search-results strong{font-size:13px}
.tree-search-results small{color:var(--muted);font-size:10px}
.tree-tool-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tool-button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:20px;display:grid;place-items:center;color:var(--brand)}
.tool-button:hover{background:var(--brand-soft)}
.zoom-label{min-width:48px;text-align:center;font-size:12px;font-weight:800;color:var(--brand)}
.hierarchy-caption{display:flex;gap:18px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:11px;padding:0 8px}
.hierarchy-caption b{font-size:15px;color:var(--brand)}
.legend-line{display:flex;align-items:center;gap:6px}
.legend-line i{display:inline-block;width:28px;border-top:2px solid #83978f}
.legend-line .dashed-line{border-top-style:dashed;border-color:#b1834f}
.hierarchy-viewport{min-height:620px;overflow:auto;padding:0;background-color:#fbfaf7;background-image:radial-gradient(#ddd7cd 1px,transparent 1px);background-size:24px 24px;direction:ltr;overscroll-behavior:contain}
.hierarchy-stage{width:max-content;min-width:100%;padding:52px 90px 110px;box-sizing:border-box;zoom:var(--tree-zoom);direction:ltr;transform-origin:top center}
.org-tree,.org-tree ul{padding-top:34px;position:relative;display:flex;justify-content:center;align-items:flex-start;margin:0;list-style:none;white-space:nowrap}
.org-tree.root-tree{padding-top:0}
.org-tree li{position:relative;padding:34px 12px 0;text-align:center;list-style:none}
.org-tree.root-tree>li{padding-top:0}
.org-tree li::before,.org-tree li::after{content:'';position:absolute;top:0;right:50%;width:50%;height:34px;border-top:2px solid #84978f}
.org-tree li::after{right:auto;left:50%;border-right:2px solid #84978f}
.org-tree li:only-child::before,.org-tree li:only-child::after{display:none}
.org-tree li:only-child{padding-top:34px}
.org-tree.root-tree>li:only-child{padding-top:0}
.org-tree li:first-child::before,.org-tree li:last-child::after{border:0 none}
.org-tree li:last-child::before{border-left:2px solid #84978f;border-radius:0 8px 0 0}
.org-tree li:first-child::after{border-radius:8px 0 0 0}
.org-tree ul::before{content:'';position:absolute;top:0;left:50%;height:34px;border-left:2px solid #84978f}
.org-tree.root-tree::before{display:none}
.org-tree .hierarchy-union-li.probable::before,.org-tree .hierarchy-union-li.probable::after,.org-tree .hierarchy-union-li.disputed::before,.org-tree .hierarchy-union-li.disputed::after{border-top-style:dashed;border-color:#b1834f}
.org-tree .hierarchy-union-li.probable>.hierarchy-children::before,.org-tree .hierarchy-union-li.disputed>.hierarchy-children::before{border-left-style:dashed;border-color:#b1834f}
.hierarchy-person-wrap{display:inline-flex;flex-direction:column;align-items:center;position:relative;direction:rtl}
.hierarchy-person-card{width:206px;min-height:98px;background:#fff;border:2px solid #6e8f82;border-radius:16px;box-shadow:0 8px 22px rgba(27,56,47,.11);overflow:hidden;position:relative;transition:.18s;text-align:right;white-space:normal}
.hierarchy-person-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(27,56,47,.16)}
.hierarchy-person-card.selected{border-color:var(--accent);box-shadow:0 0 0 4px rgba(156,100,47,.15),0 12px 28px rgba(27,56,47,.15)}
.hierarchy-person-card.female{border-color:#9e7c83}
.hierarchy-person-card.disputed{border-style:dashed;border-color:#a75a4e}
.hierarchy-person-main{display:grid;grid-template-columns:35px 1fr;gap:9px;padding:12px 12px 8px;color:var(--ink);min-height:64px;align-items:start}
.hierarchy-avatar{width:33px;height:33px;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center;color:var(--brand);font-size:11px;font-weight:900}
.hierarchy-person-card.female .hierarchy-avatar{background:#f2e8eb;color:#7a4c58}
.hierarchy-person-text{min-width:0}
.hierarchy-person-text strong{display:block;font-size:14px;line-height:1.55;white-space:normal}
.hierarchy-person-text small{display:block;color:var(--muted);font-size:9px;margin-top:2px;white-space:normal}
.hierarchy-date{grid-column:2;font-size:9px;color:#765c42;margin-top:-3px}
.hierarchy-person-main .badge{grid-column:2;justify-self:start;margin-top:2px}
.hierarchy-node-actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ece7de;background:#faf8f4}
.hierarchy-node-actions button{border:0;border-left:1px solid #ece7de;background:transparent;height:30px;color:#52675e;font-size:14px}
.hierarchy-node-actions button:last-child{border-left:0}
.hierarchy-node-actions button:hover{background:var(--brand-soft);color:var(--brand)}
.branch-toggle{margin-top:7px;border:1px solid #9aa9a2;background:#fff;border-radius:100px;padding:4px 10px;font-size:10px;color:var(--brand);font-weight:800;box-shadow:0 3px 9px rgba(27,56,47,.08)}
.branch-toggle:hover{background:var(--brand);color:#fff}
.branch-transfer{display:block;margin-top:7px;max-width:210px;background:#eef3f0;color:var(--brand);border-radius:9px;padding:5px 8px;font-size:9px;font-weight:800;white-space:normal}
.branch-transfer.warning{background:#f7e8e3;color:#8e3f34}
.hierarchy-union-node{direction:rtl;width:176px;min-height:72px;background:#f7f2e9;border:1.5px solid #b19470;border-radius:14px;padding:9px 10px;box-shadow:0 5px 14px rgba(95,72,45,.09);white-space:normal;position:relative}
.hierarchy-union-li.confirmed .hierarchy-union-node{border-color:#81978d;background:#f2f6f4}
.hierarchy-union-li.probable .hierarchy-union-node{border-style:dashed}
.hierarchy-union-li.disputed .hierarchy-union-node{border-style:dashed;border-color:#a75a4e;background:#fcf1ee}
.union-label{display:block;color:#7c6a54;font-size:9px;font-weight:800;margin-bottom:5px}
.union-spouse{display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:800}
.union-spouse span{color:var(--accent);font-size:17px}
.union-spouse a{color:var(--brand);white-space:normal}
.union-spouse.unknown{font-size:10px;color:var(--muted);font-weight:500}
.union-family-link{display:block;margin-top:5px;color:#4e7465;font-size:9px}
.union-add-child{border:0;background:transparent;color:var(--accent);font-size:9px;font-weight:800;margin-top:7px;padding:0}
.person-workbench{padding:20px}
.person-workbench-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}
.person-workbench-head h2{margin:4px 0 4px}
.person-workbench-head p{margin:0;color:var(--muted);font-size:12px;max-width:760px}
.person-workbench-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.person-workbench-grid>div{background:#faf8f4;border:1px solid #ebe5da;border-radius:12px;padding:11px 12px;min-height:62px;font-size:12px}
.person-workbench-grid>div>span{display:block;color:var(--muted);font-size:9px;margin-bottom:5px}
.person-workbench-grid a{color:var(--brand);font-weight:800}
.inline-missing{border:0;background:transparent;color:var(--accent);padding:0;font-size:11px;text-align:right}
@supports not (zoom:1){.hierarchy-stage{transform:scale(var(--tree-zoom));transform-origin:top center;margin-bottom:calc((var(--tree-zoom) - 1) * 500px)}}
@media(max-width:900px){.hierarchy-page{padding:14px 10px 70px}.hierarchy-tools{align-items:stretch;flex-direction:column}.tree-search-wrap{width:100%}.tree-tool-buttons{justify-content:flex-start}.hierarchy-viewport{min-height:540px}.hierarchy-stage{padding:42px 55px 90px}.person-workbench-head{flex-direction:column}.person-workbench-grid{grid-template-columns:1fr 1fr}.hierarchy-caption{gap:10px}}
@media(max-width:560px){.hierarchy-stage{padding:36px 35px 80px}.hierarchy-person-card{width:184px}.hierarchy-union-node{width:160px}.org-tree li{padding-left:7px;padding-right:7px}.person-workbench-grid{grid-template-columns:1fr}.tree-tool-buttons .button{font-size:10px;padding:8px 9px}.hierarchy-caption span:last-child{width:100%}}

/* ===== Sarology v5: user-created trees and official surnames ===== */
.badge.draft{background:#e9f1ff;color:#325d91;border:1px solid #b8d0ef}
.family-card.draft-family-card{border-style:dashed;border-color:#89a7c7;background:linear-gradient(180deg,#fff,#f7fbff)}
.family-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.family-card-title-row h3{margin:0}
.surname-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.surname-chips span,.surname-chips button{border:0;background:#efe8da;color:#684d2f;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}
.surname-chips button{cursor:pointer}
.surname-chips button:hover{background:var(--accent);color:#fff}
.surname-chips.large{margin-top:8px}
.surname-chips.large span,.surname-chips.large button{font-size:12px;padding:7px 11px}
.surname-empty{display:block;margin-top:10px;color:var(--muted);font-size:10px}
.create-family-callout{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,var(--brand),#2d6757);color:#fff;border-radius:20px;padding:22px 24px;margin-bottom:24px;box-shadow:var(--shadow)}
.create-family-callout>div{display:flex;align-items:center;gap:16px}.create-family-callout h2{margin:0 0 5px}.create-family-callout p{margin:0;color:#e7f0ec}.callout-icon{width:48px;height:48px;border-radius:16px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:30px}
.family-empty-draft{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px}
.family-heading-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.family-heading-line h1{margin:0}
.draft-family-notice{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;border:1px dashed #789bc0;background:#f5f9ff}.draft-family-notice p{margin:4px 0 0;color:var(--muted)}.edit-unlocked{background:#e2f3e9;color:#236044;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:900;white-space:nowrap}
.family-surname-band{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 18px}.family-surname-band>p{max-width:520px;margin:0;color:var(--muted);font-size:11px}
.legend-surname{background:#f0e8da;border-radius:999px;padding:5px 9px;color:#6d4e2e}
.hierarchy-person-card.draft-person{background:linear-gradient(180deg,#fff,#f8fbff)}
.official-surname{grid-column:2;justify-self:start;display:inline-flex;align-items:center;gap:5px;background:#efe7d8;color:#684b2b;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:900;margin-top:3px}
.official-surname b{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#b58b55;color:#fff;font-size:8px}.official-surname.surname-start{outline:2px solid #c89c62;outline-offset:1px;background:#fff4dc}
.surname-origin-note{grid-column:2;color:#8a5c28;font-size:8px;font-weight:800;margin-top:2px}.historical-name{color:#715c43!important}
.union-spouse small{display:block;color:var(--muted);font-size:8px;font-weight:500}
.person-name-history{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.person-name-history>div{border:1px solid #e8e0d5;border-radius:12px;background:#fffdf9;padding:10px 12px}.person-name-history span{display:block;color:var(--muted);font-size:9px;margin-bottom:4px}.person-name-history strong{display:block;font-size:12px}.person-name-history small{display:block;color:var(--accent);font-size:8px;margin-top:4px}
.family-node em{display:block;font-style:normal;font-size:8px;color:#735636;margin-top:3px;max-width:140px;white-space:normal}.family-node.draft-node{border-style:dashed;background:#f7fbff}
.surname-origin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:34px}.surname-origin-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px}.surname-origin-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.surname-origin-head strong{font-size:18px;color:var(--brand)}.surname-origin-card p{margin:8px 0}.surname-origin-card dl{margin:0;display:grid;gap:6px}.surname-origin-card dl>div{display:grid;grid-template-columns:100px 1fr;gap:8px;font-size:10px}.surname-origin-card dt{color:var(--muted)}.surname-origin-card dd{margin:0}.surname-origin-card small{display:block;margin-top:10px;color:var(--muted)}
.create-family-dialog{width:min(780px,calc(100% - 24px));max-height:92vh}.draft-person-dialog{width:min(680px,calc(100% - 24px));max-height:92vh}.create-family-dialog form,.draft-person-dialog form{overflow:auto;max-height:88vh;padding-left:2px}.form-grid.three-col{grid-template-columns:repeat(3,1fr)}.form-divider{display:flex;align-items:center;gap:10px;margin:20px 0 12px;color:var(--brand);font-weight:900}.form-divider:before,.form-divider:after{content:'';height:1px;background:var(--line);flex:1}.check-row{display:flex!important;align-items:center;gap:9px;background:#faf7f0;border:1px solid #e9dfcf;border-radius:11px;padding:10px 12px}.check-row input{width:auto;margin:0}.similar-family-box{margin:8px 0 2px}.similar-family-box:empty{display:none}.similar-family-box>strong{display:block;margin-bottom:7px;color:#8a5c28}.similar-family-box>a{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #eadbc6;border-radius:10px;margin-bottom:6px;background:#fffaf2}.similar-family-box>a small{color:var(--muted)}.similar-family-box p{font-size:10px;color:var(--muted)}.similar-ok{display:block;background:#edf7f0;color:#2a6947;border-radius:10px;padding:9px 11px;font-size:11px}
.created-family-result{text-align:center;padding:24px 8px}.success-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e1f3e8;color:#1f6b43;font-size:32px;font-weight:900;margin:0 auto 12px}.created-family-result h3{font-size:24px;margin:0 0 8px}.created-family-result p{color:var(--muted)}.edit-code-box{display:inline-flex;align-items:center;gap:16px;border:2px dashed #9e7b4e;border-radius:14px;padding:11px 18px;background:#fff9ee;margin:12px 0}.edit-code-box span{font-size:11px;color:var(--muted)}.edit-code-box strong{font-size:24px;letter-spacing:5px;color:var(--brand)}.warning-note{font-size:10px!important;color:#8a5c28!important}

@media(max-width:900px){.surname-origin-grid{grid-template-columns:1fr 1fr}.person-name-history{grid-template-columns:1fr 1fr}.family-surname-band,.draft-family-notice,.create-family-callout{align-items:flex-start;flex-direction:column}.form-grid.three-col{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.surname-origin-grid,.person-name-history,.form-grid.three-col{grid-template-columns:1fr}.create-family-callout>div{align-items:flex-start}.family-empty-draft{align-items:flex-start;flex-direction:column}.family-surname-band>p{font-size:10px}}

/* ===== Sarology v6: PowerPoint-like hierarchy with spouse as advisor ===== */
.hierarchy-marriages{padding-top:34px!important;gap:0}
.hierarchy-marriage-li{min-width:360px;padding-left:18px!important;padding-right:18px!important}
.hierarchy-marriage-li.probable::before,.hierarchy-marriage-li.probable::after,
.hierarchy-marriage-li.disputed::before,.hierarchy-marriage-li.disputed::after{border-top-style:dashed!important;border-color:#b1834f!important}
.marriage-axis-wrap{width:340px;height:112px;margin:0 auto;position:relative;direction:ltr}
.marriage-axis{position:absolute;left:50%;top:0;height:112px;border-left:2px solid #84978f;transform:translateX(-1px);z-index:1}
.hierarchy-marriage-li.probable .marriage-axis,.hierarchy-marriage-li.disputed .marriage-axis{border-left-style:dashed;border-left-color:#b1834f}
.hierarchy-marriage-li.disputed .marriage-axis{border-left-color:#a75a4e}
.marriage-junction{position:absolute;top:35px;left:-6px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #718980;box-shadow:0 0 0 4px rgba(113,137,128,.11)}
.hierarchy-marriage-li.probable .marriage-junction{border-color:#b1834f}
.hierarchy-marriage-li.disputed .marriage-junction{border-color:#a75a4e}
.marriage-spouse-card{position:absolute;left:0;top:12px;width:146px;min-height:70px;background:#fff;border:2px solid #7f978d;border-radius:13px;box-shadow:0 7px 18px rgba(27,56,47,.1);padding:10px 11px;text-align:right;white-space:normal;direction:rtl;z-index:3}
.marriage-spouse-card::after{content:'';position:absolute;right:-25px;top:35px;width:25px;border-top:2px solid #84978f}
.hierarchy-marriage-li.probable .marriage-spouse-card::after,.hierarchy-marriage-li.probable .marriage-spouse-card{border-color:#b1834f;border-style:dashed}
.hierarchy-marriage-li.disputed .marriage-spouse-card::after,.hierarchy-marriage-li.disputed .marriage-spouse-card{border-color:#a75a4e;border-style:dashed}
.marriage-spouse-card.female{border-color:#9e7c83;background:#fffafb}
.spouse-role{display:block;color:#836b50;font-size:9px;font-weight:900;margin-bottom:4px}
.marriage-spouse-card a{display:block;color:var(--ink)}
.marriage-spouse-card strong{display:block;font-size:13px;line-height:1.5}
.marriage-spouse-card small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.spouse-family-link{color:var(--brand)!important;font-size:8px;margin-top:5px;font-weight:800}
.spouse-card-edit{position:absolute;left:5px;top:5px;width:24px;height:24px;border:0;border-radius:7px;background:var(--brand-soft);color:var(--brand)}
.marriage-spouse-card.unknown{border-style:dashed;background:#fffaf1;color:#77634d;display:flex;flex-direction:column;justify-content:center}
.marriage-spouse-card.unknown button{border:0;background:transparent;color:var(--accent);font-size:9px;font-weight:900;padding:4px 0;text-align:right}
.marriage-label{position:absolute;top:50px;left:50%;transform:translateX(-50%);background:#f6f1e8;color:#795f43;border-radius:999px;padding:3px 7px;font-size:8px;font-weight:900;white-space:nowrap}
.marriage-add-child{position:absolute;top:77px;left:50%;transform:translateX(-50%);border:1px solid #c8b79f;background:#fff;color:var(--accent);border-radius:999px;padding:4px 8px;font-size:8px;font-weight:900;white-space:nowrap;z-index:2}
.marriage-add-child:hover{background:var(--accent);color:#fff}
.hierarchy-children{padding-top:34px!important}
.hierarchy-marriage-li.probable>.hierarchy-children::before,.hierarchy-marriage-li.disputed>.hierarchy-children::before{border-left-style:dashed!important;border-color:#b1834f!important}
.hierarchy-marriage-li.disputed>.hierarchy-children::before{border-color:#a75a4e!important}
.marriage-no-children{margin:0 auto;color:var(--muted);font-size:9px;background:#faf7f1;border:1px dashed #d5cabb;border-radius:9px;padding:6px 10px;width:max-content;direction:rtl}

.draft-notice-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.danger-outline{border-color:#bd7065!important;color:#9a4135!important;background:#fff!important}
.danger-outline:hover{background:#9a4135!important;color:#fff!important}
.editable-relation{display:inline-flex;align-items:center;gap:3px}
.editable-relation button{border:0;width:19px;height:19px;border-radius:50%;background:#f6e5e2;color:#9a4135;font-size:13px;line-height:1}
.edit-help-note{margin:12px 0 0;color:var(--muted);font-size:10px}
.family-suggestions-dialog{width:min(820px,94vw)}
.family-suggestions-list{display:grid;gap:12px;max-height:70vh;overflow:auto;padding:2px}
.family-suggestion-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}
.family-suggestion-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.family-suggestion-head h3{margin:5px 0 0;font-size:15px}
.family-suggestion-item p{font-size:12px;color:#594f44}
.family-suggestion-item>small{color:var(--muted);font-size:9px}
.family-suggestion-item label{margin-top:10px}
.suggestion-review-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.empty-state.compact{padding:30px}

@media(max-width:700px){
  .hierarchy-marriage-li{min-width:310px;padding-left:8px!important;padding-right:8px!important}
  .marriage-axis-wrap{width:290px}
  .marriage-spouse-card{width:126px;left:0}
  .marriage-spouse-card::after{right:-19px;width:19px}
  .marriage-spouse-card strong{font-size:11px}
}

/* ===== Sarology v7: explicit direct editing and safe deletion ===== */
.hierarchy-node-actions.editing-actions{grid-template-columns:repeat(3,1fr);background:#f4f8f6}
.hierarchy-node-actions.editing-actions .card-action{height:34px;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:3px;white-space:nowrap}
.hierarchy-node-actions.editing-actions .card-action span{font-size:12px;line-height:1}
.hierarchy-node-actions.editing-actions .card-action.edit{color:#245f49}
.hierarchy-node-actions.editing-actions .card-action.add{color:#745326}
.hierarchy-node-actions.editing-actions .card-action.delete{color:#9a4135;background:#fff8f7}
.hierarchy-node-actions.editing-actions .card-action.delete:hover{background:#9a4135;color:#fff}
.hierarchy-node-actions.editing-actions .card-action.root-lock{color:#8c8172;background:#f3f0ea;cursor:not-allowed}
.active-edit-hint{margin:12px 0 2px;padding:10px 12px;border-radius:11px;background:#edf7f1;color:#245f49;font-size:11px;font-weight:800}
.spouse-edit-actions{display:flex;gap:5px;margin-top:7px}
.spouse-edit-actions button{border:1px solid #c8d7d0;border-radius:7px;background:#f2f7f4;color:#2e6651;padding:4px 7px;font-size:8px;font-weight:900}
.spouse-edit-actions .danger-link{border-color:#e2b8b2;background:#fff5f3;color:#93463c}
.delete-person-dialog,.family-trash-dialog{width:min(720px,94vw)}
.delete-person-summary{display:grid;gap:10px}
.delete-summary-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #dfd7cb;border-radius:13px;padding:12px;background:#fffdf9}
.delete-summary-card strong{font-size:16px;color:var(--ink);margin-left:auto}
.delete-summary-card span{font-size:10px;color:var(--muted);background:#f2eee7;border-radius:999px;padding:5px 8px}
.delete-person-summary>p{margin:0;color:var(--muted);font-size:11px}
.delete-relation-options{margin-top:16px}.delete-relation-options h3{font-size:13px;margin:0 0 8px}
.delete-relation-list{display:grid;gap:7px}
.delete-relation-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #ece5da;border-radius:11px;padding:9px 10px;background:#fff}
.delete-relation-list span{font-size:11px}
.delete-person-actions{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.danger-zone{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.danger-zone strong{color:#8d3f35}.danger-zone p{margin:0;color:var(--muted);font-size:9px;flex-basis:100%}
.button.danger{background:#9a4135;color:#fff;border-color:#9a4135}.button.danger:hover{background:#7c2f27}
.family-trash-list{display:grid;gap:9px;max-height:65vh;overflow:auto}.trash-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff}.trash-item strong{display:block;font-size:12px}.trash-item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
@media(max-width:560px){.hierarchy-node-actions.editing-actions .card-action{font-size:8px}.delete-relation-list>div,.trash-item{align-items:flex-start;flex-direction:column}}

/* ===== Sarology v8: verified four-action cards and clean hierarchy unions ===== */
.hierarchy-node-actions.four-actions{
  grid-template-columns:repeat(4,1fr)!important;
  background:#faf8f4;
}
.hierarchy-node-actions.four-actions .card-action{
  height:34px;
  display:grid;
  place-items:center;
  padding:0;
  font-size:15px;
  line-height:1;
  font-weight:900;
  border:0;
  border-left:1px solid #ece7de;
  background:transparent;
  cursor:pointer;
}
.hierarchy-node-actions.four-actions .card-action:last-child{border-left:0}
.hierarchy-node-actions.four-actions .card-action.edit{color:#245f49}
.hierarchy-node-actions.four-actions .card-action.add{color:#745326}
.hierarchy-node-actions.four-actions .card-action.delete{color:#a43f34;background:#fff8f7}
.hierarchy-node-actions.four-actions .card-action.delete:hover{background:#a43f34;color:#fff}
.hierarchy-node-actions.four-actions .card-action.focus{color:#4d667c}
.hierarchy-node-actions.four-actions .card-action.root-lock{color:#a9a197;background:#f2efea;cursor:not-allowed}
.hierarchy-node-actions.four-actions.view-actions .suggestion-delete{opacity:.72}

/* Marriage is not a separate box. The spouse sits beside the vertical trunk. */
.marriage-label,.marriage-add-child{display:none!important}
.marriage-axis-wrap{height:94px!important}
.marriage-axis{height:94px!important}
.marriage-junction{top:34px!important}
.junction-add-child{
  position:absolute;
  top:57px;
  left:50%;
  transform:translateX(-50%);
  width:25px;
  height:25px;
  border-radius:50%;
  border:1px solid #bca98f;
  background:#fff;
  color:#8a5b2c;
  font-size:15px;
  font-weight:900;
  line-height:1;
  z-index:4;
  box-shadow:0 3px 8px rgba(80,60,35,.12);
  cursor:pointer;
}
.junction-add-child:hover{background:#8a5b2c;color:#fff}
.marriage-spouse-card{top:4px!important;min-height:66px!important}
.marriage-spouse-card::after{top:34px!important}
.marriage-spouse-card.unknown{padding-top:8px;padding-bottom:8px}
.spouse-edit-actions button{min-width:27px;padding:4px 6px;font-size:12px}
.hierarchy-children{padding-top:32px!important}

/* Strong visual confirmation that the tree is in direct edit mode. */
.draft-family-notice .edit-unlocked::before{content:'●';margin-left:6px;color:#1b8b55}

@media(max-width:560px){
  .hierarchy-node-actions.four-actions .card-action{font-size:14px;height:32px}
  .junction-add-child{width:23px;height:23px;font-size:14px}
}

/* Sarology v9: person cards, media archive and persistent data */
.father-name{color:#765f42!important;font-weight:600}
.people-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:22px}.people-toolbar .big-input{flex:1}.people-toolbar>span{white-space:nowrap;color:var(--muted)}
.people-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.people-card{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fff;color:inherit;text-decoration:none;transition:.2s}
.people-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(27,59,51,.09);border-color:#7da394}.people-card-photo{width:64px;height:64px;border-radius:16px;overflow:hidden;background:#edf4f0;display:grid;place-items:center;font-weight:800;color:#426c5e}.people-card-photo img{width:100%;height:100%;object-fit:cover}.people-card>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.people-card strong{font-size:1rem}.people-card small{color:#6e746f}.people-card span{font-size:.82rem;color:#8a7657}.people-card>b{font-size:.78rem;color:#6b7d74;background:#f2f6f4;padding:5px 8px;border-radius:999px}
.person-profile-hero{background:linear-gradient(135deg,#eef5f1,#faf7ef);border-bottom:1px solid var(--line);padding:32px 0}.person-profile-head{display:grid;grid-template-columns:150px 1fr auto;gap:24px;align-items:center}.person-profile-photo{width:150px;height:150px;border-radius:28px;overflow:hidden;background:#dfeae5;display:grid;place-items:center;font-size:3rem;color:#315d4f}.person-profile-photo img{width:100%;height:100%;object-fit:cover}.person-profile-title h1{margin:8px 0;font-size:2.2rem}.person-profile-title p{margin:0;color:#6d746f}.person-profile-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.person-profile-tags span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:.82rem}.person-profile-actions{display:flex;flex-direction:column;gap:9px;min-width:180px}.person-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.person-profile-main{display:grid;gap:20px}.person-profile-side{position:sticky;top:88px}.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.profile-facts>div{background:#f8faf9;border:1px solid #e5ece8;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:5px}.profile-facts span{font-size:.78rem;color:#7a807c}.profile-notes{margin-top:16px;padding:15px;border-right:3px solid #6e9989;background:#f4f8f6;line-height:1.9}.relation-profile-group{padding:14px 0;border-bottom:1px solid var(--line)}.relation-profile-group>span{display:block;color:#7b817d;font-size:.8rem;margin-bottom:8px}.relation-profile-group>a{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:8px 10px;background:#f7f9f8;border-radius:11px;margin-bottom:6px}.relation-profile-group a small{color:#8b7654}.empty-value{color:#9b9f9c}
.person-media-groups{display:grid;gap:24px}.media-category>h3{display:flex;align-items:center;gap:8px}.media-category>h3 span{font-size:.75rem;background:#eef3f0;border-radius:999px;padding:3px 8px}.person-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.person-media-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.media-image{display:block;width:100%;height:180px;border:0;padding:0;background:#eee;cursor:zoom-in}.media-image img{width:100%;height:100%;object-fit:cover}.person-media-body{padding:13px}.person-media-body h3{margin:8px 0 5px}.person-media-body p{color:#666;line-height:1.7;font-size:.88rem}.person-media-body dl{margin:10px 0;display:grid;gap:6px}.person-media-body dl>div{display:grid;grid-template-columns:65px 1fr;font-size:.82rem}.person-media-body dt{color:#858b87}.person-media-body dd{margin:0}.media-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.person-media-dialog{max-width:760px}.data-safety-card code{display:block;direction:ltr;text-align:left;background:#172d27;color:#e9f6f1;padding:13px;border-radius:12px;margin:12px 0;overflow:auto}.data-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.hidden{display:none!important}
@media(max-width:900px){.person-profile-head{grid-template-columns:100px 1fr}.person-profile-photo{width:100px;height:100px;border-radius:20px}.person-profile-actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.person-profile-layout{grid-template-columns:1fr}.person-profile-side{position:static}.profile-facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.people-cards{grid-template-columns:1fr}.person-profile-head{grid-template-columns:76px 1fr;gap:14px}.person-profile-photo{width:76px;height:76px}.person-profile-title h1{font-size:1.55rem}.profile-facts{grid-template-columns:1fr}.person-media-grid{grid-template-columns:1fr}.people-toolbar{align-items:stretch;flex-direction:column}}

/* ===== Sarology v10: archive of old documents, separate from research sources ===== */
.archive-hero{background:linear-gradient(135deg,#2c2116,#6f5435);color:#fff;padding:44px 0;border-bottom:1px solid #4e3b28}.archive-hero-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:32px}.archive-hero h1{font-size:38px;margin:6px 0 10px}.archive-hero p{max-width:650px;color:#eadfce;margin:0}.archive-hero .eyebrow{color:#e9c992}.archive-hero-stats{display:flex;gap:10px;flex-wrap:wrap}.archive-hero-stats div{min-width:115px;padding:13px 15px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.08);text-align:center}.archive-hero-stats strong{display:block;font-size:23px}.archive-hero-stats span{font-size:9px;color:#e9dfd0}.archive-toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:center;margin-bottom:20px}.archive-toolbar select{height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px;color:var(--ink)}.compact-check{margin:0!important;white-space:nowrap}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.archive-card{border:1px solid #d8ccb9;background:#fffdf9;border-radius:15px;overflow:hidden;box-shadow:0 7px 20px rgba(62,44,26,.07);display:grid;grid-template-columns:112px 1fr;min-height:150px}.archive-thumb{display:grid;place-items:center;background:linear-gradient(145deg,#2f281f,#756044);color:#ead8ba;min-height:150px;overflow:hidden}.archive-thumb img{width:100%;height:100%;object-fit:cover}.archive-thumb span{font-size:38px}.archive-card-body{padding:14px}.archive-code-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.archive-code-row strong{font-family:ui-monospace,monospace;direction:ltr;color:#805a2e;font-size:13px}.archive-code-row span{font-size:8px;border-radius:999px;padding:4px 7px;background:#eee5d8;color:#6d5438}.archive-card h3{font-size:13px;line-height:1.8;margin:9px 0 4px}.archive-card h3 a{color:var(--ink)}.archive-card p{font-size:9px;color:var(--muted);margin:0}.archive-card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.archive-card-meta span{font-size:8px;background:#f5f0e8;border:1px solid #e5dac9;padding:4px 6px;border-radius:8px;color:#6f5d47}.archive-record-hero{background:#f0e8dc;border-bottom:1px solid #d9ccb9;padding:28px 0}.archive-record-title{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:10px}.archive-record-title h1{margin:7px 0;font-size:28px}.archive-record-title p{margin:0;color:#6f6252}.archive-record-code{font-family:ui-monospace,monospace;direction:ltr;display:inline-flex;background:#362a1d;color:#f1d5a8;padding:6px 10px;border-radius:8px;font-weight:900;letter-spacing:1px}.archive-record-actions{display:flex;gap:8px;flex-wrap:wrap}.archive-record-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:18px;align-items:start}.archive-record-main,.archive-record-side{display:grid;gap:18px}.archive-scans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.archive-scan{border:1px solid #ded4c5;border-radius:13px;overflow:hidden;background:#fff}.archive-scan>button,.archive-scan>a{display:grid;place-items:center;width:100%;height:280px;border:0;background:#28231e;overflow:hidden}.archive-scan img{width:100%;height:100%;object-fit:contain}.archive-scan>div{padding:11px}.archive-scan strong{display:block;font-size:11px}.archive-scan small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.archive-scan p{font-size:10px;color:#5f5548}.pdf-mark{display:grid;place-items:center;width:74px;height:74px;border-radius:14px;background:#9c4338;color:#fff;font-weight:900}.danger-text{color:#9b4137!important;font-size:8px;margin-top:7px}.archive-empty-scan{grid-column:1/-1;min-height:250px;border:2px dashed #cdbda6;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fbf8f2;color:#786750}.archive-empty-scan span{font-size:42px}.archive-empty-scan h3{font-size:14px}.archive-facts{display:grid;gap:0;margin:0}.archive-facts>div{display:grid;grid-template-columns:110px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid #eee7dc}.archive-facts dt{font-size:9px;color:var(--muted)}.archive-facts dd{margin:0;font-size:10px;font-weight:800}.seal-list{display:grid;gap:8px}.seal-list>div{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;padding:8px;border-radius:9px;background:#f8f4ed}.seal-list span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#7a5b36;color:#fff;font-size:8px}.seal-list p{margin:0;font-size:10px;line-height:1.8}.archive-transcription article{border-right:3px solid #927047;padding:8px 12px;background:#faf7f1;margin-bottom:8px}.archive-transcription p{white-space:pre-wrap}.source-sections h3{font-size:11px;margin:18px 0 7px;color:#6a5740}.archive-edit-dialog,.archive-scan-dialog{width:min(760px,94vw)}.source-image{background:#f6f3ee}.source-card .thumb{background:#f0ece5}
@media(max-width:1000px){.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-record-layout{grid-template-columns:1fr}.archive-hero-inner{align-items:flex-start;flex-direction:column}.archive-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.archive-grid{grid-template-columns:1fr}.archive-card{grid-template-columns:88px 1fr}.archive-thumb{min-height:140px}.archive-toolbar{grid-template-columns:1fr}.archive-scans{grid-template-columns:1fr}.archive-record-title{align-items:flex-start;flex-direction:column}.archive-hero h1{font-size:30px}.archive-record-actions{width:100%}.archive-record-actions .button{flex:1}.archive-facts>div{grid-template-columns:95px 1fr}}
.scan-file-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:8px}.scan-file-actions .link-button{font-size:8px;color:var(--brand)}

/* ===== Sarology v11: bulk archive import and Excel round-trip ===== */
.archive-management-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fbf7ef,#f4faf6)}
.archive-management-bar h2{margin:0 0 4px;font-size:17px}.archive-management-bar p{margin:0;color:var(--muted);font-size:11px}.archive-management-actions{display:flex;gap:8px;flex-wrap:wrap}
.archive-list-summary{margin:10px 2px 14px;color:var(--muted);font-size:10px}.archive-binder-line{display:block;color:#826d52;font-size:9px;margin-top:5px}.archive-card.pending-catalog{border-style:dashed;background:#fffcf7}.archive-card.pending-catalog .archive-thumb{background:#f8f1e4}.archive-card.pending-catalog h3 a{color:#785d39}
.archive-bulk-dialog,.archive-excel-dialog{width:min(1060px,96vw)}.bulk-summary{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:8px;margin:14px 0}.bulk-summary>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:#faf8f4;text-align:center}.bulk-summary strong{display:block;font-size:18px;color:var(--brand)}.bulk-summary span{display:block;font-size:9px;color:var(--muted);margin-top:3px}
.bulk-preview{max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:13px}.bulk-preview table{width:100%;border-collapse:collapse;font-size:10px}.bulk-preview th{position:sticky;top:0;background:#315f51;color:#fff;padding:9px;z-index:2}.bulk-preview td{padding:8px;border-bottom:1px solid #ece6dc;vertical-align:middle}.bulk-preview td:first-child{min-width:250px}.bulk-preview td strong{display:block}.bulk-preview td small{display:block;color:var(--muted);margin-top:2px}.bulk-preview input{width:96px;border:1px solid #cfc4b4;border-radius:7px;padding:6px}.bulk-preview tr.invalid{background:#fff7f5}.bulk-preview tr.valid{background:#f7fcf8}.bulk-more-note{padding:10px;margin:0;color:var(--muted);font-size:10px;text-align:center}
.excel-change-list{display:grid;gap:8px;max-height:44vh;overflow:auto;margin-top:12px}.excel-change-list article{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.excel-change-list article>strong{display:block;color:var(--brand);margin-bottom:7px}.excel-change-list article p{display:grid;grid-template-columns:120px 1fr 20px 1fr;gap:7px;align-items:center;margin:4px 0;font-size:9px}.excel-change-list article p b{color:#6f604d}.excel-change-list article p span{background:#f7f3ec;border-radius:7px;padding:5px;overflow:hidden;text-overflow:ellipsis}.excel-change-list article p i{text-align:center;color:var(--accent)}.split-actions{justify-content:space-between}.split-actions>div{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:900px){.archive-management-bar{align-items:flex-start;flex-direction:column}.bulk-summary{grid-template-columns:repeat(2,1fr)}.excel-change-list article p{grid-template-columns:1fr}.excel-change-list article p i{transform:rotate(90deg)}}
@media(max-width:560px){.archive-management-actions{width:100%;display:grid}.archive-management-actions .button{width:100%}.bulk-summary{grid-template-columns:1fr 1fr}.bulk-preview td:first-child{min-width:180px}}


/* Sarology v13: همکاری مستقیم و هدر تصویری */
.photo-hero{position:relative;min-height:520px;background-image:url('/sar-hero.jpg');background-size:cover;background-position:center 42%;overflow:hidden;color:#fff}
.photo-hero .hero-photo-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,42,34,.84) 0%,rgba(18,42,34,.55) 38%,rgba(18,42,34,.12) 75%,rgba(18,42,34,.18) 100%)}
.photo-hero .hero-inner{position:relative;z-index:1;min-height:520px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;text-align:right}
.photo-hero h1{font-size:clamp(3rem,8vw,6rem);margin:.2rem 0;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.25)}
.photo-hero p{font-size:clamp(1.05rem,2vw,1.5rem);max-width:630px;color:#f7f5ee}
.photo-hero .button.outline{border-color:#fff;color:#fff;background:rgba(255,255,255,.08)}
.auth-area{margin-inline-start:auto;display:flex;align-items:center}
.auth-button,.auth-user-button{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:inherit;border-radius:12px;padding:.55rem .85rem;cursor:pointer;font:inherit}
.auth-user-button{display:flex;flex-direction:column;line-height:1.15;text-align:right}
.auth-user-button small{opacity:.72;font-size:.7rem}
.login-help{font-size:.82rem;background:#f6f0df;border-radius:10px;padding:.7rem}
.account-summary{display:flex;flex-direction:column;gap:.25rem;background:#f7f5ef;padding:1rem;border-radius:14px;margin-bottom:1rem}
.account-warning{padding:.75rem;background:#fff3cd;border:1px solid #e6c96f;border-radius:10px;margin-bottom:1rem}
.account-password-form{display:grid;gap:.8rem}
.audit-list{display:grid;gap:.65rem}
.audit-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.9rem 1rem;background:#fff;border:1px solid #e4dfd3;border-radius:12px}
.audit-row>div{display:flex;flex-direction:column;gap:.2rem}.audit-row span,.audit-row small{color:#6c746e;font-size:.82rem}
.users-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:1.2rem}.users-list{display:grid;gap:.65rem}.users-list article{display:flex;justify-content:space-between;align-items:center;padding:.8rem;border-bottom:1px solid #ece7dd}.users-list article div{display:flex;flex-direction:column}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.gallery-card{background:#fff;border:1px solid #e3ded2;border-radius:16px;overflow:hidden}.gallery-image{width:100%;height:210px;border:0;padding:0;background:#e9ece8;cursor:pointer}.gallery-image img{width:100%;height:100%;object-fit:cover}.gallery-card>div{padding:1rem}.gallery-card footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:1rem;font-size:.75rem;color:#777}.gallery-people{margin-top:.6rem;padding:.45rem .55rem;background:#f3f0e8;border-radius:8px;font-size:.85rem}
.success-note,.info-note{padding:.8rem 1rem;border-radius:10px;background:#eef7f1;color:#28523c}
@media(max-width:760px){.photo-hero,.photo-hero .hero-inner{min-height:390px}.photo-hero{background-position:58% center}.photo-hero .hero-photo-shade{background:linear-gradient(0deg,rgba(15,38,31,.85),rgba(15,38,31,.25))}.users-layout{grid-template-columns:1fr}.audit-row{align-items:flex-start;flex-direction:column}}

.audit-main{flex:1;min-width:0}.audit-user{min-width:180px}.audit-details{margin-top:.55rem}.audit-details summary{cursor:pointer;color:var(--brand);font-size:.8rem}.audit-diff{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.55rem}.audit-diff section{min-width:0;background:#f7f5ef;border-radius:9px;padding:.6rem}.audit-diff pre{direction:ltr;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow:auto;font-size:.7rem;margin:.4rem 0 0}.gallery-actions{display:flex;gap:.45rem}.danger-outline{border-color:#b56a63!important;color:#9b3d35!important;background:transparent!important}
@media(max-width:760px){.audit-diff{grid-template-columns:1fr}.audit-user{min-width:0}}

/* ===== Sarology v14: text-first family tree editor ===== */
.family-text-page{width:min(1600px,calc(100% - 32px));margin:20px auto 46px;display:grid;gap:16px}
.family-text-intro,.family-text-toolbar,.family-text-editor,.family-text-preview-panel,.family-text-readonly{padding:18px}
.family-text-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#f8fbf9,#fbf6ed)}
.family-text-intro h2,.family-text-panel-head h2{margin:3px 0 5px}.family-text-intro p,.family-text-panel-head p{margin:0;color:var(--muted)}
.family-text-family-stats{display:flex;gap:10px;flex-wrap:wrap}.family-text-family-stats span{display:flex;flex-direction:column;min-width:105px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}.family-text-family-stats b{font-size:1.25rem;color:var(--brand)}
.family-text-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px}.family-text-search{flex:1;max-width:600px}.family-text-search label{display:block;margin-bottom:6px;font-size:.85rem;color:var(--muted)}.family-text-view-buttons{display:flex;gap:8px;flex-wrap:wrap}.family-text-view-buttons .active{background:var(--brand);color:#fff;border-color:var(--brand)}
.family-text-workspace{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(420px,.95fr);gap:16px;align-items:start}.family-text-workspace.read-only{grid-template-columns:minmax(360px,.8fr) minmax(420px,1.2fr)}
.family-text-editor,.family-text-preview-panel,.family-text-readonly{min-width:0}.family-text-preview-panel{position:sticky;top:82px;max-height:calc(100vh - 100px);overflow:auto}
.family-text-panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.family-text-status{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.status-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:.75rem;background:#fff;color:var(--muted)}.status-pill.ok{background:#edf7f1;color:#24633f;border-color:#bcdcc9}.status-pill.warn{background:#fff4e5;color:#8a5b1c;border-color:#e7c99f}
.family-text-code{display:grid;grid-template-columns:54px minmax(0,1fr);height:560px;border:1px solid #cfc8b9;border-radius:14px;overflow:hidden;background:#fff;direction:ltr}.family-text-code pre{margin:0;padding:15px 10px;background:#f4f1ea;color:#9b958b;text-align:right;line-height:1.8;overflow:hidden;user-select:none;font-family:Consolas,monospace;font-size:14px}.family-text-code textarea{resize:none;border:0;outline:0;padding:15px 16px;line-height:1.8;white-space:pre;overflow:auto;direction:rtl;text-align:right;font-family:Tahoma,"Segoe UI",sans-serif;font-size:15px;background:#fff;color:var(--ink)}
.family-text-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.family-text-actions .button{min-height:40px}.browser-draft-notice{padding:12px 16px;background:#fff8df;border-color:#e7cf7b;color:#6f5617}.family-text-issues{margin:0 0 10px;padding:10px 12px;border:1px solid #e7bd88;background:#fff6e9;border-radius:10px;color:#85511b;font-size:.82rem;line-height:1.8}.family-text-diff{margin-top:14px}.family-text-diff>h3{margin:0 0 9px}.text-tree-diff-stats{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:7px;margin-bottom:9px}.text-tree-diff-stats span{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#faf9f5;font-size:.75rem}.text-tree-diff-stats b{font-size:1.1rem;color:var(--brand)}.warning-text{color:#805a1d;margin-top:6px}.danger-text{color:#9b3d35!important}
.family-text-preview{padding:4px;min-height:260px}.text-tree-list,.text-tree-list ul{list-style:none;margin:0;padding:0}.text-tree-list ul{margin-right:28px;border-right:1px solid #cbd8d2;padding-right:14px}.text-tree-node{margin:6px 0}.text-tree-node.collapsed>ul{display:none}.text-tree-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border:1px solid #e1e5e1;border-radius:10px;background:#fff}.text-tree-row.match{outline:3px solid rgba(194,139,55,.25);border-color:#c28b37}.text-tree-toggle{width:26px;height:26px;border:1px solid #aac2b8;border-radius:50%;background:#f5faf7;color:var(--brand);cursor:pointer;font-weight:800}.text-tree-toggle.empty{border-color:transparent;background:transparent}.text-tree-person-main{display:flex;flex-direction:column;gap:2px;min-width:0}.text-tree-person-main strong{font-size:.95rem}.text-tree-person-main small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-tree-person-link,.text-tree-spouses a,.text-compact-card a{color:inherit;text-decoration:none}.text-tree-person-link:hover,.text-tree-spouses a:hover,.text-compact-card a:hover{color:var(--brand);text-decoration:underline}.text-tree-line-number{font-size:.7rem;color:#a39d91}.text-tree-spouses{display:flex;gap:6px;flex-wrap:wrap;margin:5px 34px 7px 0}.text-tree-spouses span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px dashed #c9a56f;border-radius:999px;background:#fffaf2;font-size:.78rem}.text-tree-spouses small{color:var(--muted)}
.text-compact-tree{display:grid;gap:10px}.text-compact-node{display:grid;gap:8px}.text-compact-card{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #dce4df;border-right:4px solid #75988c;border-radius:10px;background:#fff}.text-compact-card small{color:var(--muted)}.text-compact-card em{font-style:normal;color:#76572e;font-size:.78rem}.text-compact-children{display:grid;gap:8px;margin-right:28px;padding-right:14px;border-right:1px solid #c8d7d1}.text-compact-node.match>.text-compact-card{outline:3px solid rgba(194,139,55,.22)}
.family-text-readonly .family-text-plain,.family-text-help pre{margin:0;white-space:pre;overflow:auto;direction:rtl;text-align:right;line-height:1.9;padding:14px 16px;background:#f8f7f2;border:1px solid var(--line);border-radius:12px;font-family:Tahoma,"Segoe UI",sans-serif}.family-text-help{display:grid;gap:8px}.family-text-help h2,.family-text-help p{margin:0}.family-text-help p{color:var(--muted)}kbd{border:1px solid #c8c1b4;border-bottom-width:2px;border-radius:5px;padding:1px 5px;background:#fff;font-family:inherit}
@media(max-width:1100px){.family-text-workspace,.family-text-workspace.read-only{grid-template-columns:1fr}.family-text-preview-panel{position:static;max-height:none}.family-text-code{height:500px}.text-tree-diff-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.family-text-page{width:min(100% - 18px,1600px)}.family-text-intro,.family-text-toolbar,.family-text-panel-head{align-items:stretch;flex-direction:column}.family-text-code{grid-template-columns:40px 1fr;height:440px}.family-text-code pre{padding-inline:5px;font-size:12px}.family-text-code textarea{font-size:14px;padding-inline:10px}.family-text-actions{display:grid;grid-template-columns:1fr}.family-text-actions .button{width:100%}.text-tree-diff-stats{grid-template-columns:1fr 1fr}.text-tree-row{grid-template-columns:28px minmax(0,1fr)}.text-tree-line-number{display:none}.text-tree-list ul{margin-right:14px;padding-right:9px}.text-compact-children{margin-right:15px;padding-right:9px}}

/* v15 — old photo people identification */
.old-photo-summary{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 20px}.old-photo-summary>div{min-width:150px;background:var(--panel,#fff);border:1px solid var(--border,#d8ddd8);border-radius:16px;padding:14px 18px;display:flex;align-items:baseline;gap:9px}.old-photo-summary strong{font-size:1.65rem}.old-photo-summary span{color:var(--muted,#68736e)}
.old-photo-card .gallery-image{position:relative;display:block}.photo-count-badge{position:absolute;left:10px;bottom:10px;background:rgba(18,48,42,.88);color:#fff;border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:700}.photo-card-stats{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.photo-card-stats span{background:#f1f4f1;border-radius:999px;padding:4px 8px;font-size:.77rem;color:#53605a}
.photo-detail-hero{background:linear-gradient(135deg,#eef2ed,#f8f4eb);border-bottom:1px solid var(--border,#d8ddd8);padding:22px 0}.photo-detail-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:12px}.photo-detail-title h1{margin:0 0 6px}.photo-detail-title p{margin:0;color:var(--muted,#68736e)}.photo-detail-actions{display:flex;gap:8px;flex-wrap:wrap}
.photo-identify-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);gap:20px;align-items:start}.photo-identify-main{min-width:0}.photo-identify-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.photo-identify-toolbar .button.active{box-shadow:0 0 0 3px rgba(158,111,44,.2);background:#8c5f23;color:#fff}.unsaved-badge{background:#fff1ca;color:#785008;border:1px solid #e6c465;border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:700}
.photo-workspace{position:relative;width:100%;background:#242724;border-radius:18px;overflow:hidden;line-height:0;touch-action:none;user-select:none}.photo-workspace img{display:block;width:100%;height:auto;margin:auto}.photo-mark-layer{position:absolute;inset:0;z-index:2;touch-action:none}.photo-workspace.editable .photo-mark-layer{cursor:crosshair}.photo-person-box{position:absolute;display:block;border:2px solid #f6c453;background:rgba(246,196,83,.07);padding:0;cursor:pointer;border-radius:5px;box-shadow:0 0 0 1px rgba(0,0,0,.45);line-height:1}.photo-person-box.status-certain{border-color:#62d28c;background:rgba(98,210,140,.08)}.photo-person-box.status-probable{border-color:#f3bc4b;background:rgba(243,188,75,.08)}.photo-person-box.status-unknown{border-color:#e9e9e9;background:rgba(255,255,255,.045)}.photo-person-box.selected{box-shadow:0 0 0 3px #2e86ff,0 0 0 5px rgba(255,255,255,.8);z-index:4}.photo-person-number{position:absolute;top:-15px;right:-12px;min-width:28px;height:28px;border-radius:999px;background:#173f36;color:white;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;border:2px solid white;box-shadow:0 2px 7px rgba(0,0,0,.35)}.photo-resize-handle{position:absolute;right:-6px;bottom:-6px;width:15px;height:15px;border-radius:3px;background:#fff;border:2px solid #173f36;cursor:nwse-resize}.photo-draw-box{position:absolute;z-index:5;border:2px dashed #fff;background:rgba(46,134,255,.14);pointer-events:none}.photo-identify-instruction{margin:12px 0 18px;padding:12px 14px;border-radius:12px;background:#f7f2e8;border:1px solid #e4d5b8;line-height:1.8}
.photo-identify-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:82px}.photo-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.photo-stats-grid>div{background:#fff;border:1px solid var(--border,#d8ddd8);border-radius:14px;padding:12px;text-align:center}.photo-stats-grid strong{display:block;font-size:1.5rem}.photo-stats-grid span{font-size:.78rem;color:var(--muted,#68736e)}.photo-people-list{display:flex;flex-direction:column;gap:7px;max-height:360px;overflow:auto}.photo-person-row{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;text-align:right;border:1px solid #dde3de;background:#fafcfa;border-radius:12px;padding:8px;cursor:pointer}.photo-person-row:hover,.photo-person-row.selected{border-color:#2e795e;background:#eef8f3}.photo-list-number{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#173f36;color:#fff;font-weight:800}.photo-person-row strong,.photo-person-row small{display:block}.photo-person-row small{margin-top:3px;color:var(--muted,#68736e);font-size:.75rem}.photo-mark-editor{display:flex;flex-direction:column;gap:11px}.photo-mark-editor-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.photo-mark-editor-head span,.photo-mark-editor-head strong{display:block}.photo-mark-editor-head>div>span{font-size:.78rem;color:var(--muted,#68736e)}.photo-linked-person{border:1px solid #dbe2dc;background:#f6f9f6;border-radius:10px;padding:9px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.photo-person-search-results{display:flex;flex-direction:column;gap:5px}.photo-person-search-results button{border:1px solid #d9e1db;background:white;border-radius:9px;padding:7px 9px;text-align:right;cursor:pointer}.photo-person-search-results button:hover{background:#eff8f3;border-color:#70a68e}.photo-person-search-results strong,.photo-person-search-results small{display:block}.photo-person-search-results small{color:var(--muted,#68736e);margin-top:2px}.photo-identify-help,.photo-identify-readonly{line-height:1.8;color:var(--muted,#68736e)}
@media (max-width:980px){.photo-identify-layout{grid-template-columns:1fr}.photo-identify-side{position:static}.photo-detail-title{align-items:flex-start;flex-direction:column}.photo-workspace img{max-height:none}}
@media (max-width:600px){.photo-identify-toolbar .button{flex:1 1 calc(50% - 8px)}.photo-stats-grid{grid-template-columns:repeat(4,1fr)}.photo-stats-grid>div{padding:9px 4px}.photo-stats-grid strong{font-size:1.15rem}.photo-person-number{min-width:24px;height:24px;font-size:.75rem;top:-13px;right:-10px}}
.person-historical-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.person-historical-photos>a{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center;border:1px solid #dce3dd;border-radius:12px;padding:8px;text-decoration:none;color:inherit;background:#fafcfa}.person-historical-photos img{width:72px;height:60px;object-fit:cover;border-radius:8px}.person-historical-photos strong,.person-historical-photos small{display:block}.person-historical-photos small{margin-top:4px;color:var(--muted,#68736e)}

/* ===== Sarology v17: Windows-style family Tree View ===== */
.family-folder-page{width:min(1500px,calc(100% - 36px));margin:22px auto 64px;display:grid;gap:14px}
.family-folder-intro,.family-folder-toolbar{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:18px}
.family-folder-intro h2,.family-folder-intro p{margin:0}.family-folder-intro p{color:var(--muted);margin-top:4px}.family-folder-tabs{display:flex;gap:7px;flex-wrap:wrap}
.family-folder-toolbar label{margin:0;min-width:min(520px,100%);flex:1}.family-folder-toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.family-folder-toolbar-actions>span{font-size:12px;color:var(--muted);font-weight:700;background:#f4f1ea;border-radius:999px;padding:6px 10px}
.family-folder-panel{padding:18px;overflow:visible;min-height:260px}.family-folder-tree,.family-folder-tree ul{list-style:none;margin:0;padding:0}.family-folder-tree{display:grid;gap:10px}.family-folder-tree ul{margin-right:25px;padding-right:18px;border-right:1px solid #cbd5d0}
.family-folder-person,.family-folder-union{position:relative;margin:5px 0}.family-folder-person::before,.family-folder-union::before,.family-folder-add-row::before{content:"";position:absolute;right:-19px;top:23px;width:18px;border-top:1px solid #cbd5d0}.family-folder-tree>.family-folder-person::before{display:none}
.family-folder-person-row,.family-folder-union-row{min-height:52px;display:grid;grid-template-columns:28px auto minmax(200px,1fr) auto auto auto;align-items:center;gap:8px;border:1px solid #dce3df;border-radius:12px;background:#fff;padding:7px 9px;position:relative;z-index:1}
.family-folder-person.selected>.family-folder-person-row{border-color:var(--accent);box-shadow:0 0 0 3px rgba(138,90,43,.12)}
.family-folder-person-row:hover,.family-folder-union-row:hover{border-color:#9cb8ad;background:#fbfdfc}
.family-folder-caret{width:26px;height:28px;border:0;background:transparent;color:#526a61;font-size:14px;border-radius:7px;padding:0}.family-folder-caret:hover{background:var(--brand-soft);color:var(--brand)}.family-folder-caret.empty{display:block}
.family-folder-kind{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800}.family-folder-kind.person{background:#e7f0ec;color:var(--brand)}.family-folder-kind.marriage{background:#f5eadb;color:#765026}
.family-folder-person-main,.family-folder-union-main{min-width:0;display:flex;flex-direction:column}.family-folder-person-main strong,.family-folder-union-main strong{font-size:14px;line-height:1.5}.family-folder-person-main small,.family-folder-union-main small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.family-folder-person-main:hover strong{color:var(--brand);text-decoration:underline}
.family-folder-count{font-size:10px;color:var(--muted);background:#f3f1ec;border-radius:999px;padding:4px 8px;white-space:nowrap}.family-folder-root-note{display:inline-block;margin:4px 58px 0 0;font-size:9px;color:var(--accent);font-weight:700}
.family-folder-icon-action,.family-folder-login{width:31px;height:31px;border:1px solid var(--line);background:#fff;color:var(--brand);border-radius:9px;display:grid;place-items:center;font-weight:900}.family-folder-icon-action:hover,.family-folder-login:hover{background:var(--brand-soft)}
.family-folder-add-menu{position:relative;z-index:10}.family-folder-add-menu>summary{list-style:none;width:32px;height:32px;border-radius:9px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:500;cursor:pointer;user-select:none}.family-folder-add-menu>summary::-webkit-details-marker{display:none}.family-folder-add-menu[open]>summary{background:var(--accent)}
.family-folder-add-popover{position:absolute;left:0;top:38px;width:235px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:8px;display:grid;gap:5px;z-index:30}.family-folder-add-popover strong{font-size:11px;color:var(--muted);padding:4px 6px}.family-folder-add-popover button{border:0;background:#f7f8f6;text-align:right;border-radius:8px;padding:8px 9px;color:var(--ink)}.family-folder-add-popover button:hover{background:var(--brand-soft);color:var(--brand)}
.family-folder-union-row{grid-template-columns:28px auto minmax(180px,1fr) auto auto auto;background:#fffcf7;border-style:dashed}.family-folder-union.confirmed>.family-folder-union-row{border-style:solid}.family-folder-union.disputed>.family-folder-union-row{border-color:#bd776a;background:#fff7f5}
.family-folder-inline-add{border:1px solid #b8c9c1;background:#fff;color:var(--brand);border-radius:9px;padding:5px 8px;font-size:11px;font-weight:800;white-space:nowrap}.family-folder-inline-add:hover{background:var(--brand-soft)}
.family-folder-add-row{position:relative;margin:5px 0;min-height:36px;display:flex;align-items:center}.family-folder-add-row button{border:1px dashed #9bb3a9;background:#f7fbf9;color:var(--brand);border-radius:10px;padding:6px 12px;font-size:11px;font-weight:800}.family-folder-add-row button:hover{background:var(--brand-soft)}.family-folder-add-row.spouse button{border-color:#c2a77d;background:#fffaf1;color:#73522d}
.family-folder-cycle{color:var(--danger);font-size:11px;padding:8px}.family-folder-help h2,.family-folder-help p{margin:0}.family-folder-help{display:grid;gap:7px}.family-folder-help p{color:var(--muted);font-size:12px}
@media(max-width:860px){.family-folder-intro,.family-folder-toolbar{align-items:stretch;flex-direction:column}.family-folder-tabs,.family-folder-toolbar-actions{width:100%}.family-folder-person-row,.family-folder-union-row{grid-template-columns:28px auto minmax(0,1fr) auto}.family-folder-person-row>.badge,.family-folder-count{display:none}.family-folder-icon-action{display:none}.family-folder-tree ul{margin-right:13px;padding-right:10px}.family-folder-person::before,.family-folder-union::before,.family-folder-add-row::before{right:-11px;width:10px}.family-folder-add-popover{left:0;right:auto}}
@media(max-width:560px){.family-folder-page{width:calc(100% - 18px);margin-top:12px}.family-folder-panel{padding:9px}.family-folder-kind{min-width:44px;padding-inline:5px}.family-folder-person-main small,.family-folder-union-main small{white-space:normal}.family-folder-inline-add{grid-column:3 / -1;justify-self:start}.family-folder-add-menu>summary,.family-folder-login{width:30px}.family-folder-tabs .button{flex:1}}
.family-folder-union-row.selected{border-color:var(--accent);box-shadow:0 0 0 3px rgba(138,90,43,.12)}

/* ===== Sarology v18: structured document reading entry points ===== */
.archive-scan-reader-link{position:relative;display:grid;place-items:center;width:100%;height:280px;border:0;background:#28231e;overflow:hidden}
.archive-scan-reader-link img{width:100%;height:100%;object-fit:contain;transition:transform .18s ease}
.archive-scan-reader-link>span{position:absolute;inset:auto 12px 12px;background:rgba(24,57,48,.9);color:#fff;border-radius:9px;padding:7px 10px;font-size:9px;font-weight:900}
.archive-scan-reader-link:hover img{transform:scale(1.015)}
.archive-reader-status{display:grid;gap:3px;border-right:3px solid #b98748;background:#fbf5ea;border-radius:9px;padding:8px 9px;margin:9px 0}
.archive-reader-status.ready{border-color:#2d7d5e;background:#edf7f1}.archive-reader-status b{font-size:9px}.archive-reader-status span{font-size:8px;color:var(--muted)}
.scan-file-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.scan-file-actions .button{font-size:8px;padding:7px 9px}
.structured-reading-intro{background:linear-gradient(135deg,#fffaf1,#eff8f4)}
.structured-reading-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.structured-reading-steps>div{display:grid;grid-template-columns:32px 1fr;gap:3px 8px;border:1px solid #ded5c8;border-radius:11px;background:rgba(255,255,255,.8);padding:10px}
.structured-reading-steps span{grid-row:1/3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#276f59;color:#fff;font-weight:900}
.structured-reading-steps b{font-size:10px}.structured-reading-steps small{font-size:8px;color:var(--muted)}
@media(max-width:680px){.structured-reading-steps{grid-template-columns:1fr}}

/* v18: اصلاح برگشت‌پذیر درخت و شمارنده بازدید */
.family-folder-actions-menu{position:relative;z-index:12}.family-folder-actions-menu>summary{list-style:none;width:31px;height:31px;border:1px solid var(--line);background:#fff;color:var(--brand);border-radius:9px;display:grid;place-items:center;font-size:20px;font-weight:900;cursor:pointer;line-height:1}.family-folder-actions-menu>summary::-webkit-details-marker{display:none}.family-folder-actions-menu[open]>summary{background:var(--brand-soft)}
.family-folder-actions-popover{position:absolute;left:0;top:37px;width:245px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:8px;display:grid;gap:5px;z-index:45}.family-folder-actions-popover strong{font-size:11px;color:var(--muted);padding:4px 7px}.family-folder-actions-popover button{border:0;background:#f7f8f6;text-align:right;border-radius:8px;padding:9px 10px;color:var(--ink);font:inherit;cursor:pointer}.family-folder-actions-popover button:hover{background:var(--brand-soft);color:var(--brand)}.family-folder-actions-popover .danger-text{color:var(--danger);background:#fff7f6}.family-folder-actions-popover .menu-note{font-size:10px;color:var(--accent);padding:6px 8px;background:#fff8ed;border-radius:8px}
.move-person-dialog{width:min(650px,94vw)}.move-person-dialog form{display:grid;gap:14px}.move-warning,.move-current-parents,.safe-correction-zone{border:1px solid #bdd5ca;background:#f3faf7;border-radius:12px;padding:11px 13px;color:#365b4d;font-size:12px;line-height:1.8}.safe-correction-zone{display:grid;gap:7px;margin-bottom:12px}.safe-correction-zone p{margin:0}.move-current-parents strong{margin-left:5px}
.visitor-counter{display:block;margin-top:5px;font-size:10px;color:#d6e5df;line-height:1.8}.visitor-counter b{color:#fff}.site-footer .visitor-counter{max-width:580px}
@media(max-width:860px){.family-folder-actions-menu{display:block}.family-folder-actions-popover{left:0;right:auto}.family-folder-person-row,.family-folder-union-row{grid-template-columns:28px auto minmax(0,1fr) auto auto}.family-folder-icon-action{display:none}}
.family-folder-person-row{grid-template-columns:28px auto minmax(200px,1fr) auto auto auto auto}
@media(max-width:860px){.family-folder-person-row{grid-template-columns:28px auto minmax(0,1fr) auto auto}}
.family-folder-delete-action{width:31px;height:31px;border:1px solid #e6c4bf;background:#fff8f7;color:var(--danger);border-radius:9px;display:grid;place-items:center;cursor:pointer}.family-folder-delete-action:hover{background:#fbe7e4}
.family-folder-person-row{grid-template-columns:28px auto minmax(200px,1fr) auto auto auto auto auto}.family-folder-union-row{grid-template-columns:28px auto minmax(180px,1fr) auto auto auto auto}
@media(max-width:860px){.family-folder-person-row,.family-folder-union-row{grid-template-columns:28px auto minmax(0,1fr) auto auto auto}}


/* v19: منوی عملیات در Portal سراسری؛ از overflow و stacking context شاخه‌ها مستقل است. */
.family-folder-actions-trigger{width:31px;height:31px;border:1px solid var(--line);background:#fff;color:var(--brand);border-radius:9px;display:grid;place-items:center;font-size:20px;font-weight:900;cursor:pointer;line-height:1}
.family-folder-actions-trigger:hover,.family-folder-actions-trigger.active{background:var(--brand-soft);border-color:#9cb8ad}
.family-action-portal{position:fixed;z-index:2147483000;width:245px;max-width:calc(100vw - 16px);background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 18px 50px rgba(20,35,30,.24);padding:8px;display:grid;gap:5px;direction:rtl}
.family-action-portal strong{font-size:11px;color:var(--muted);padding:4px 7px}.family-action-portal button{border:0;background:#f7f8f6;text-align:right;border-radius:8px;padding:9px 10px;color:var(--ink);font:inherit;cursor:pointer}.family-action-portal button:hover{background:var(--brand-soft);color:var(--brand)}.family-action-portal .danger-text{color:var(--danger);background:#fff7f6}.family-action-portal .menu-note{font-size:10px;color:var(--accent);padding:6px 8px;background:#fff8ed;border-radius:8px}
.family-sort-control{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);margin:0}.family-sort-control select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 8px;font:inherit;color:var(--ink)}
.text-tree-union{margin:6px 36px 7px 0;padding:7px 10px;border-right:3px solid #d8b47b;background:#fffbf4;border-radius:9px}.text-tree-union>span{display:block;font-size:11px;color:#6d5032;margin-bottom:5px}.text-tree-union.unknown{border-right-color:#a8b5af;background:#f7f9f8}.text-tree-union.incomplete{border-style:dashed;opacity:.85}.text-tree-union>ul{margin-right:8px!important}
.text-compact-union{margin:7px 12px 0 0;padding-right:10px;border-right:2px solid #d8b47b}.text-compact-union>em{display:block;font-size:11px;color:#74512e;margin-bottom:5px}
@media(max-width:560px){.family-sort-control{width:100%;justify-content:space-between}.family-sort-control select{flex:1}.family-action-portal{width:min(245px,calc(100vw - 16px))}}

/* Sarology v20 — link an existing person instead of duplicating data */
.existing-person-panel{border:1px solid var(--line);border-radius:14px;background:#f8fbf9;padding:12px;margin:10px 0}.existing-person-results{display:grid;gap:7px;max-height:280px;overflow:auto}.existing-person-result{display:grid;gap:4px;width:100%;text-align:right;border:1px solid #d8e4dd;border-radius:11px;background:#fff;padding:10px}.existing-person-result:hover{border-color:#2c7762;background:#f0f8f4}.existing-person-result strong{font-size:12px}.existing-person-result span{font-size:9px;color:var(--ink)}.existing-person-result small{font-size:8px;color:var(--muted)}.existing-person-result.already-linked{opacity:.62;cursor:not-allowed}.existing-person-help{font-size:9px;color:var(--muted);line-height:1.8;margin:4px 0}.existing-person-selected{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #8ec3aa;border-radius:11px;background:#eaf5ef;padding:10px}.existing-person-selected>div{display:grid;gap:3px}.existing-person-selected b{font-size:8px;color:#2c7762}.existing-person-selected strong{font-size:13px}.existing-person-selected span,.existing-person-selected small{font-size:8px;color:var(--muted)}.existing-person-selected button{border:1px solid #8ec3aa;border-radius:8px;background:#fff;padding:7px 9px;font-size:8px;color:#2c7762}.reference-person-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:#e8f1fb;color:#245c8f;padding:3px 7px;font-size:8px;font-weight:800}

/* v23 — independent gravestone research sources */
.gravestone-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.gravestone-summary>div{background:#173f36;color:#fff;border-radius:16px;padding:18px;display:grid;gap:4px}.gravestone-summary strong{font-size:1.8rem}.gravestone-summary span{opacity:.82}
.gravestone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}.gravestone-card{background:#fff;border:1px solid #ded6c8;border-radius:18px;overflow:hidden;display:grid;grid-template-columns:140px 1fr;min-height:220px;box-shadow:0 8px 24px rgba(55,43,22,.06)}.gravestone-card-image{background:#262821;min-height:220px;display:grid;place-items:center;color:#e8dfca;font-weight:800}.gravestone-card-image img{width:100%;height:100%;object-fit:cover}.gravestone-card>div{padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.gravestone-card h2{font-size:1.05rem;margin:0}.gravestone-card h2 a{color:inherit}.gravestone-card p{margin:0;color:#6d675c}.gravestone-card-code{font-family:monospace;font-weight:800;color:#6a4c25}.gravestone-card-stats{display:flex;gap:6px;flex-wrap:wrap}.gravestone-card-stats span{font-size:.76rem;padding:4px 8px;background:#f3eee3;border-radius:999px}
.gravestone-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.gravestone-detail-main{display:grid;gap:20px}.gravestone-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.gravestone-images button{padding:0;border:1px solid #ded5c5;border-radius:13px;overflow:hidden;background:#fff;cursor:pointer;text-align:right}.gravestone-images img{display:block;width:100%;height:180px;object-fit:cover}.gravestone-images span{display:block;padding:9px 11px}.gravestone-reading{display:grid;gap:15px}.gravestone-text-block{border-right:4px solid #76603b;background:#faf6ec;border-radius:12px;padding:14px}.gravestone-text-block.interpretation{border-color:#356857;background:#f1f7f3}.gravestone-text-block span{display:block;font-size:.78rem;color:#6b6253;margin-bottom:7px}.gravestone-text-block p{white-space:pre-wrap;line-height:2;margin:0}.gravestone-facts{position:sticky;top:90px}.gravestone-facts dl{display:grid;gap:0}.gravestone-facts dl>div{padding:10px 0;border-bottom:1px solid #eee5d6}.gravestone-facts dt{font-size:.76rem;color:#7d7465}.gravestone-facts dd{margin:4px 0 0;font-weight:700}.gravestone-facts .button{margin-top:12px}.legacy-source-note{margin-top:14px;padding:10px;border-radius:10px;background:#fff7df;color:#6f5223;font-size:.83rem}
.gravestone-mentions{display:grid;gap:12px}.gravestone-mention-card{border:1px solid #ded5c6;border-right:5px solid #a77b33;border-radius:14px;padding:14px;display:grid;gap:10px;background:#fff}.gravestone-mention-card.resolved{border-right-color:#3f7a57}.gravestone-mention-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.gravestone-mention-card header>div{display:grid;gap:3px}.gravestone-mention-card header span:first-child{font-size:.74rem;color:#706757}.gravestone-mention-card h3{margin:0}.gravestone-mention-card blockquote{margin:0;padding:10px 12px;background:#f7f1e5;border-radius:10px;color:#544b3f}.gravestone-mention-card dl{display:flex;gap:15px;flex-wrap:wrap;margin:0}.gravestone-mention-card dl div{display:grid}.gravestone-mention-card dt{font-size:.7rem;color:#7a7165}.gravestone-mention-card dd{margin:2px 0 0}.gravestone-mention-card footer{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid #eee5d6;padding-top:10px}.gravestone-linked{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:9px 10px;background:#edf7ef;border-radius:10px}.gravestone-linked span,.gravestone-linked small{font-size:.78rem;color:#55705e}.gravestone-linked a{font-weight:800}.gravestone-unresolved{padding:9px 10px;background:#fff4e7;color:#805224;border-radius:10px}.gravestone-resolve-dialog .search-results button{width:100%;display:flex;justify-content:space-between;gap:12px;text-align:right}.converted-grave-note{font-size:.72rem;color:#3f7654;background:#edf7ef;padding:5px 8px;border-radius:999px}
.unplaced-person-card{border-style:dashed;border-color:#b77c31;background:#fffaf0}.unplaced-person-badge{display:inline-flex;width:max-content;background:#fff0d5;color:#80501d;border:1px solid #dfbd82;border-radius:999px;padding:5px 10px;font-size:.78rem;margin:4px 0}.people-card.unplaced-person-card>b{color:#85551e}
@media(max-width:900px){.gravestone-detail-layout{grid-template-columns:1fr}.gravestone-facts{position:static}.gravestone-summary{grid-template-columns:1fr 1fr}.gravestone-card{grid-template-columns:110px 1fr}.gravestone-card-image{min-height:190px}}
@media(max-width:600px){.gravestone-summary{grid-template-columns:1fr}.gravestone-card{grid-template-columns:1fr}.gravestone-card-image{height:210px;min-height:0}.gravestone-mention-card header{align-items:flex-start}.gravestone-mention-card footer .button{flex:1 1 45%}}

/* Sarology v26 — workshop-first archive evidence and central person resolver */
.archive-data-warning{margin-top:8px;padding:6px 9px;border-radius:9px;background:#fff1dc;color:#7c4d18;font-size:.72rem;font-weight:700}
.archive-source-comparison{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:12px;border:1px solid #e5c98e;background:#fff9e9;border-radius:12px}.archive-source-comparison b{width:100%;color:#715020}.archive-source-comparison span{background:#fff;border:1px solid #eadbbd;border-radius:999px;padding:5px 9px}.archive-source-comparison small{width:100%;color:#746957}
.archive-all-marks{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.archive-all-marks summary{cursor:pointer;font-weight:800}.archive-all-marks p{margin:7px 0;padding:7px 9px;background:#f7f7f4;border-radius:8px}
.mini-person-results{display:grid;gap:6px;margin-top:6px;max-height:220px;overflow:auto}.mini-person-results>button{display:grid;gap:3px;text-align:right;border:1px solid #d5e2db;background:#fff;border-radius:9px;padding:8px;cursor:pointer}.mini-person-results>button:hover{border-color:#3c846e;background:#f1f8f4}.mini-person-results small{color:var(--muted)}.mini-person-selected{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center;border:1px solid #8ec3aa;background:#eef8f2;padding:8px;border-radius:9px}.mini-person-selected b,.mini-person-selected small{grid-column:1}.mini-person-selected button{grid-column:2;grid-row:1/3;border:1px solid #8ec3aa;background:#fff;border-radius:7px;padding:6px 8px;cursor:pointer}
.new-person-matches,.duplicate-warning{display:grid;gap:7px;margin:8px 0}.duplicate-warning{padding:10px;border:1px solid #e4bd79;background:#fff7e6;border-radius:11px}.duplicate-override{padding:10px;border:1px dashed #c88735;background:#fffaf0;border-radius:11px;margin:8px 0}.duplicate-override.hidden{display:none}
.person-resolver-dialog{width:min(760px,calc(100vw - 24px))}.person-resolver-dialog .search-results{display:grid;gap:7px;max-height:310px;overflow:auto;margin:10px 0}.resolver-create-panel{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fafbf9}.resolver-create-panel summary{cursor:pointer;font-weight:800;margin-bottom:10px}
.reader-mark-review-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;padding:10px;border:1px solid #d9e4dd;background:#f5faf7;border-radius:11px}.reader-mark-review-state b{color:#2d6e58}.reader-mark-review-state .button{margin-right:auto}

/* ===== Sarology v31: archive navigation and live work statistics ===== */
.archive-browser-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;grid-template-areas:"main sidebar";gap:18px;align-items:start;direction:ltr}.archive-browser-main{grid-area:main;direction:rtl;min-width:0}.archive-document-sidebar{grid-area:sidebar;direction:rtl;position:sticky;top:82px;max-height:calc(100vh - 100px);display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);gap:9px;padding:13px;border:1px solid #d9cfbf;border-radius:16px;background:#fffdf9;box-shadow:0 8px 24px rgba(56,41,23,.07);overflow:hidden}.archive-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.archive-sidebar-head h2{margin:0;font-size:16px}.archive-sidebar-toggle{width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--brand);cursor:pointer}.archive-document-sidebar input,.archive-document-sidebar select{width:100%;min-width:0;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px;font:inherit;color:var(--ink)}.archive-side-list{display:grid;gap:7px;overflow:auto;padding-left:3px}.archive-side-item{display:grid;gap:4px;padding:10px;border:1px solid #e4dccf;border-radius:11px;background:#fff;color:inherit;text-decoration:none}.archive-side-item:hover{border-color:#9eb8ac;background:#f5faf7}.archive-side-item>div{display:flex;justify-content:space-between;align-items:center;gap:8px}.archive-side-item>div strong{font-family:ui-monospace,monospace;color:#805a2e}.archive-side-item>div span{font-size:9px;font-weight:900;color:#276f59;background:#e9f4ee;border-radius:999px;padding:3px 7px}.archive-side-item>b{font-size:10px;line-height:1.65}.archive-side-item small{font-size:8px;color:var(--muted)}.archive-side-item em{font-size:8px;color:#806b50;font-style:normal}.archive-browser-layout.sidebar-collapsed{grid-template-columns:minmax(0,1fr) 48px}.archive-browser-layout.sidebar-collapsed .archive-document-sidebar{grid-template-rows:auto;padding:8px}.archive-browser-layout.sidebar-collapsed .archive-document-sidebar>:not(.archive-sidebar-head){display:none}.archive-browser-layout.sidebar-collapsed .archive-sidebar-head h2{display:none}
.archive-work-progress{display:grid;gap:7px;margin-top:11px}.archive-work-progress-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.archive-work-progress-head b{font-size:9px;color:#2d6654}.archive-work-progress-head span{font-size:9px;font-weight:900;color:#6c5538}.archive-progress-track{height:7px;border-radius:999px;background:#ece5da;overflow:hidden}.archive-progress-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2f7d63,#80b39c)}.archive-work-chips{display:flex;gap:5px;flex-wrap:wrap}.archive-work-chips span{font-size:8px;border:1px solid #d9e4dd;background:#f3f8f5;color:#4c665b;border-radius:999px;padding:4px 6px}.archive-work-progress.compact{margin:0}.archive-last-activity{display:block;margin-top:7px;color:#7c705f;font-size:8px}.archive-work-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.archive-work-metrics>div{display:grid;gap:2px;text-align:center;padding:9px;border:1px solid #dce5df;border-radius:10px;background:#f6faf7}.archive-work-metrics strong{font-size:18px;color:#276f59}.archive-work-metrics span{font-size:8px;color:var(--muted)}.archive-work-overview h3{font-size:11px;margin:14px 0 8px}.archive-activity-timeline{display:grid;gap:8px}.archive-activity-timeline>div{display:grid;grid-template-columns:10px 1fr;gap:8px;align-items:start}.archive-activity-timeline>div>span{width:9px;height:9px;border-radius:50%;margin-top:5px;background:#9b8c75}.archive-activity-timeline>div>span.work{background:#2d7d5e}.archive-activity-timeline p{margin:0;display:grid;gap:2px}.archive-activity-timeline b{font-size:9px}.archive-activity-timeline small{font-size:8px;color:var(--muted)}
@media(max-width:1150px){.archive-browser-layout{grid-template-columns:minmax(0,1fr) 270px}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.archive-browser-layout{display:flex;flex-direction:column}.archive-document-sidebar{position:static;max-height:none;width:100%;order:-1}.archive-side-list{max-height:300px}.archive-browser-layout.sidebar-collapsed{display:flex}.archive-browser-layout.sidebar-collapsed .archive-document-sidebar{width:100%}.archive-browser-layout.sidebar-collapsed .archive-document-sidebar>:not(.archive-sidebar-head){display:none}.archive-grid{grid-template-columns:1fr}}

.archive-owner-required {
  border: 1px solid rgba(14, 122, 99, 0.18);
  background: rgba(14, 122, 99, 0.06);
  border-radius: 18px;
  padding: 14px;
  margin-bottom: 12px;
}
.archive-owner-required h3 { margin: 0 0 4px; }
.archive-owner-required p { margin: 0 0 12px; color: var(--muted); }
.inline-field-button { display: flex; gap: 8px; align-items: center; }
.inline-field-button input { flex: 1; }
.archive-binder-line { display: block; color: var(--muted); margin: 8px 0; line-height: 1.7; }

/* v33 archive collection management */
.archive-manager-panel{margin:18px 0;padding:18px;border:1px solid var(--border);border-radius:22px;background:#fffdf8;box-shadow:0 16px 40px rgba(86,63,31,.08)}
.archive-manager-panel.hidden{display:none}.archive-workspace-manager{display:grid;grid-template-columns:minmax(290px,.9fr) minmax(520px,2fr);gap:16px;align-items:start}.archive-panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.archive-panel-title h3,.archive-panel-title h4{margin:0}.archive-panel-title span{font-size:.82rem;color:var(--muted)}.archive-inline-form{border:1px dashed var(--border);border-radius:16px;padding:12px;margin:0 0 12px;background:#fff}.archive-inline-form h4{margin:0 0 8px}.archive-inline-form label,.archive-assignment-workspace label{display:flex;flex-direction:column;gap:6px;margin:8px 0}.archive-inline-form input,.archive-inline-form select,.archive-inline-form textarea,.archive-assignment-workspace input,.archive-assignment-workspace select{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fff}.archive-assignment-workspace{display:grid;grid-template-columns:minmax(360px,1fr) minmax(260px,.55fr);gap:16px;margin:0}.archive-tree-list{display:grid;gap:10px}.archive-tree-node{border:1px solid var(--border);border-radius:16px;background:#fff;padding:10px}.archive-tree-main{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.archive-tree-title{border:0;background:transparent;text-align:right;padding:0;cursor:pointer;color:inherit}.archive-tree-title strong,.archive-tree-title small{display:block}.archive-tree-title small,.archive-tree-empty{color:var(--muted);font-size:.82rem}.archive-tree-actions{display:flex;gap:6px;flex-wrap:wrap}.button.tiny{padding:5px 9px;font-size:.78rem;border-radius:9px}.archive-tree-children{display:grid;gap:6px;margin-top:10px;padding-right:14px;border-right:2px solid #e6dccb}.archive-tree-container{display:flex;justify-content:space-between;align-items:center;border:1px solid #eadfcb;background:#fbf7ef;border-radius:12px;padding:8px 10px;cursor:pointer;color:#2f2f28}.archive-tree-container:hover,.archive-tree-title:hover strong{color:var(--green)}.archive-doc-filters{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px}.archive-assign-doc-list{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:16px;background:#fff;padding:10px}.archive-select-all-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding:8px 6px 12px;margin:0 0 8px!important}.archive-assign-doc-rows{display:grid;gap:8px}.archive-assign-doc-row{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:10px;border:1px solid #efe5d4;border-radius:14px;padding:9px 10px;margin:0!important;background:#fffdf8}.archive-assign-doc-row.selected{border-color:#0f4f43;background:#eef7f2}.archive-assign-doc-row strong{display:inline-block;min-width:70px;color:#8a4a1b}.archive-assign-doc-row b{display:block}.archive-assign-doc-row small{display:block;color:var(--muted);margin-top:3px}.archive-action-panel{position:sticky;top:92px}.archive-action-panel .bulk-summary{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:12px 0}.archive-action-panel .bulk-summary small{color:var(--muted)}@media(max-width:1100px){.archive-workspace-manager,.archive-assignment-workspace{grid-template-columns:1fr}.archive-action-panel{position:static}.archive-doc-filters{grid-template-columns:1fr}}

/* v39 clean archive manager */
.v39-archive-manager{display:grid;grid-template-columns:minmax(250px,1fr) minmax(420px,1.7fr) minmax(250px,.9fr);gap:18px;align-items:start}
.v39-tree-pane,.v39-assign-pane{position:sticky;top:86px;max-height:calc(100vh - 110px);overflow:auto}
.v39-pane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.v39-pane-head h2{margin:0 0 4px}.v39-pane-head small{color:var(--muted)}
.v39-archive-node{border:1px solid var(--border);border-radius:14px;padding:10px;margin-bottom:10px;background:var(--surface)}
.v39-archive-node.selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 12%,transparent)}
.v39-archive-node-main{display:block;width:100%;text-align:right;border:0;background:transparent;padding:4px;cursor:pointer}
.v39-archive-node-main strong,.v39-archive-node-main small{display:block}.v39-archive-node-main small{margin-top:5px;color:var(--muted)}
.v39-node-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border);margin-top:8px;padding-top:8px}
.v39-container-list{display:grid;gap:6px;margin-top:10px}
.v39-container-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;border-radius:10px;background:var(--surface-soft);padding:7px}
.v39-container-row.selected{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent)}
.v39-container-row>button{display:flex;justify-content:space-between;gap:8px;border:0;background:transparent;text-align:right;cursor:pointer;padding:4px}
.v39-container-row>button small{color:var(--muted)}.v39-container-row>div{display:flex;gap:4px}.v39-no-container{color:var(--muted);padding:6px}
.v39-doc-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.v39-doc-actions{display:flex;gap:8px;flex-wrap:wrap}
.v39-document-rows{display:grid;gap:7px;max-height:68vh;overflow:auto;padding-left:3px}
.v39-document-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--border);border-radius:11px;padding:10px;background:var(--surface)}
.v39-document-row.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,var(--surface))}
.v39-document-row input{width:19px;height:19px;cursor:pointer}.v39-document-row label{display:grid;grid-template-columns:auto 1fr;column-gap:9px;row-gap:3px;cursor:pointer}
.v39-document-row label small{grid-column:1/-1;color:var(--muted)}.v39-document-row>a{white-space:nowrap}
.v39-assign-pane label{display:block;margin-bottom:12px}.v39-target-summary{display:grid;gap:5px;border:1px dashed var(--border);border-radius:12px;padding:12px;margin:15px 0}.v39-target-summary span{color:var(--muted)}
.button.full{width:100%}.archive-source-card{border-top:4px solid var(--primary)}
@media(max-width:1100px){.v39-archive-manager{grid-template-columns:1fr 1.5fr}.v39-assign-pane{position:static;grid-column:1/-1}.v39-tree-pane{position:static;max-height:none}}
@media(max-width:760px){.v39-archive-manager{grid-template-columns:1fr}.v39-tree-pane,.v39-assign-pane{position:static;max-height:none}.v39-doc-filters{grid-template-columns:1fr}.v39-document-row{grid-template-columns:auto 1fr}.v39-document-row>a{grid-column:2}.v39-doc-actions{width:100%}}

/* v40 official old-documents Excel catalogue */
.archive-excel-format-note{margin:0 0 18px;padding:14px 16px;border:1px solid var(--line,#d8d1c4);border-radius:14px;background:#f8f5ee;display:grid;gap:8px}
.archive-excel-format-note code{direction:ltr;text-align:left;display:block;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e5ded2;overflow:auto;white-space:nowrap}
.archive-excel-format-note p{margin:0;color:var(--muted,#6f6a60);line-height:1.9}
.excel-import-warning{margin:12px 0;padding:12px 14px;border:1px solid #d9ad67;border-radius:12px;background:#fff8e8}
.excel-import-warning>strong{display:block;margin-bottom:8px}
.excel-import-warning p{display:grid;gap:2px;margin:6px 0;padding-bottom:6px;border-bottom:1px dashed #e8d3a9}
.excel-import-warning p:last-child{border-bottom:0}
.excel-import-warning small{color:var(--muted,#6f6a60)}

/* v41 — gravestone, burial and memorial workspace */
.g41-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}.g41-place-tree{padding:14px;position:sticky;top:84px}.g41-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.g41-panel-head h2{font-size:1rem;margin:0}.g41-panel-head a{font-size:.75rem}.g41-place{width:100%;border:0;border-bottom:1px solid #eee5d6;background:transparent;padding:11px 8px;display:flex;justify-content:space-between;gap:8px;text-align:right;cursor:pointer}.g41-place.active{background:#eef6f1;color:#215b49;border-radius:9px}.g41-list-column{display:grid;gap:12px}.g41-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.g41-summary>div{background:#173f36;color:white;padding:15px;border-radius:14px;display:grid}.g41-summary strong{font-size:1.6rem}.g41-summary span{font-size:.78rem;opacity:.82}.g41-toolbar{padding:12px;display:grid;grid-template-columns:2fr repeat(3,1fr);gap:10px}.g41-toolbar input,.g41-toolbar select{min-width:0}.g41-selection-bar{padding:10px 14px;display:flex;align-items:center;gap:16px}.g41-selection-bar span{margin-right:auto}.g41-card-list{display:grid;gap:10px}.g41-card{background:#fff;border:1px solid #ded6c8;border-radius:15px;padding:10px;display:grid;grid-template-columns:34px 105px minmax(0,1fr) auto;gap:12px;align-items:center}.g41-check{align-self:start;padding-top:6px}.g41-thumb{height:92px;background:#282a23;border-radius:10px;overflow:hidden;display:grid;place-items:center;color:#eee}.g41-thumb img{width:100%;height:100%;object-fit:cover}.g41-card-body{min-width:0}.g41-card-top{display:flex;gap:8px;align-items:center}.g41-card h2{font-size:1rem;margin:5px 0}.g41-card p{margin:0;color:#6f675b}.g41-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.g41-chips span{font-size:.72rem;background:#f2eee5;padding:4px 7px;border-radius:999px}.g41-reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.g41-reader-main{display:grid;gap:18px}.g41-facts{position:sticky;top:84px}.g41-facts dl>div{padding:10px 0;border-bottom:1px solid #eee}.g41-facts dt{font-size:.74rem;color:#766f64}.g41-facts dd{margin:3px 0 0;font-weight:700}.g41-reader-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.g41-reader-controls button,.g41-tag-toolbar button{border:1px solid #d9d0c1;background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer}.g41-reader-controls label{font-size:.72rem;display:flex;align-items:center;gap:5px}.g41-zoom-badge{display:inline-grid;place-items:center;min-width:62px;padding:6px 8px;border:1px solid #d9d0c1;border-radius:8px;background:#f7f4ec;font-size:.8rem;font-weight:800;direction:ltr}.g41-image-stage{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:10px}.g41-image-stage #g41ImageFrame{height:560px;background:#20211e;border-radius:12px;overflow:hidden;display:grid;place-items:center;position:relative;touch-action:none;user-select:none}.g41-image-stage #g41ImageFrame.is-zoomed{outline:2px solid rgba(255,255,255,.12)}.g41-image-stage #g41ReaderImage{max-width:95%;max-height:95%;transition:transform .15s ease, filter .15s ease;transform-origin:center center;will-change:transform;cursor:zoom-in}.g41-image-strip{display:grid;align-content:start;gap:8px;max-height:560px;overflow:auto}.g41-image-strip button{border:1px solid #ddd3c3;background:#fff;border-radius:9px;overflow:hidden;padding:0;text-align:right}.g41-image-strip button.active{outline:3px solid #4b7868}.g41-image-strip img{width:100%;height:90px;object-fit:cover;display:block}.g41-image-strip span{display:block;padding:6px;font-size:.72rem}.g41-transcription textarea{width:100%;line-height:2}.g41-tag-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.g41-tag-toolbar details{display:flex}.g41-tag-toolbar details[open]{width:100%;display:flex;gap:6px;flex-wrap:wrap}.g41-tags{display:grid;gap:8px}.g41-tag{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px;background:#f8f4eb;border-radius:9px}.g41-tag>span{font-size:.75rem;font-weight:800}.g41-tag q{white-space:pre-wrap}.g41-dialog{max-width:880px}.g41-bulk-files{display:grid;gap:6px;max-height:320px;overflow:auto}.g41-bulk-files>div{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:8px;align-items:center;padding:8px;background:#f6f2ea;border-radius:8px}.g41-excel-actions{display:grid;gap:12px}.g41-excel-actions .button{justify-self:start}
@media(max-width:1000px){.g41-workspace{grid-template-columns:1fr}.g41-place-tree,.g41-facts{position:static}.g41-place-tree{display:flex;overflow:auto;gap:8px}.g41-place{min-width:180px;border:1px solid #ddd;border-radius:9px}.g41-panel-head{min-width:180px}.g41-reader-layout{grid-template-columns:1fr}}
@media(max-width:700px){.g41-summary{grid-template-columns:1fr 1fr}.g41-toolbar{grid-template-columns:1fr}.g41-card{grid-template-columns:32px 82px minmax(0,1fr)}.g41-card>.button{grid-column:2/4}.g41-image-stage{grid-template-columns:1fr}.g41-image-stage #g41ImageFrame{height:420px}.g41-image-strip{grid-template-columns:repeat(3,1fr);max-height:none}.g41-tag{grid-template-columns:1fr}.g41-reader-controls label{width:100%}}

/* v41.1 — observable and resumable gravestone bulk upload */
.g41-upload-file{display:grid!important;grid-template-columns:minmax(0,1fr) 130px!important;gap:8px 12px!important;align-items:center!important;padding:10px!important;border:1px solid #e1d8ca;border-radius:10px;background:#faf7f1!important}.g41-upload-file-head{min-width:0;display:grid;gap:2px}.g41-upload-file-head span{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g41-upload-file-head small,.g41-upload-file-foot small{color:var(--muted)}.g41-group-key{font-size:.72rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center}.g41-group-key input{min-width:0;padding:7px}.g41-file-progress{grid-column:1/-1;height:8px;border-radius:999px;background:#e6dfd4;overflow:hidden}.g41-file-progress i,.g41-overall-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2d765e,#75ad94);transition:width .18s ease}.g41-upload-file-foot{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;font-size:.75rem}.g41-upload-file-foot span{font-weight:850}.g41-upload-file-foot small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g41-upload-file[data-state="failed"]{border-color:#d9a49e;background:#fff4f2!important}.g41-upload-file[data-state="failed"] .g41-file-progress i{background:#b94e42}.g41-upload-file[data-state="stalled"]{border-color:#d6b16a;background:#fff9ec!important}.g41-upload-file[data-state="stalled"] .g41-file-progress i{background:#b68225}.g41-upload-file[data-state="done"]{border-color:#9cc8b2;background:#f2faf5!important}.g41-upload-file[data-state="done"] .g41-file-progress i{background:#2b7b5d}.g41-upload-progress{margin-top:12px;padding:12px;border:1px solid #d9d0c1;border-radius:12px;background:#f9f6ef}.g41-upload-progress-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.g41-upload-progress-head>div{display:grid;gap:3px}.g41-upload-progress-head small{color:var(--muted)}.g41-upload-progress-head>b{font-size:1.15rem}.g41-overall-track{height:10px;border-radius:999px;background:#e3dbce;overflow:hidden;margin:10px 0}.g41-network-hint{font-size:.73rem;color:#6e675d;margin:0}.g41-upload-progress[data-mode="slow"],.g41-upload-progress[data-mode="stalled"]{border-color:#d2aa5f;background:#fff8e9}.g41-upload-progress[data-mode="failed"]{border-color:#d49c95;background:#fff3f1}.g41-upload-progress[data-mode="done"]{border-color:#91bea6;background:#f0faf4}.g41-upload-progress[data-mode="failed"] .g41-overall-track i{background:#b94e42}.g41-upload-progress[data-mode="slow"] .g41-overall-track i,.g41-upload-progress[data-mode="stalled"] .g41-overall-track i{background:#b68225}@media(max-width:720px){.g41-upload-file{grid-template-columns:1fr!important}.g41-group-key{grid-template-columns:auto 1fr}.g41-upload-file-foot{grid-template-columns:1fr auto}.g41-upload-file-foot small{grid-column:1/-1}}

/* v42 — مفاخر سار */
.honor-hero{background:linear-gradient(135deg,#f4efe5,#e5f0eb)}
.honor-hero-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.honor-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.2rem}
.honor-category-card{border:1px solid #d9ded8;background:#fff;border-radius:18px;padding:1.05rem;text-align:right;display:grid;gap:.45rem;cursor:pointer;box-shadow:0 8px 24px rgba(27,62,52,.06)}
.honor-category-card:hover,.honor-category-card.active{border-color:#315f51;background:#edf6f1;transform:translateY(-1px)}
.honor-category-card strong{font-size:1rem;color:#173f36}.honor-category-card span{font-weight:800;font-size:1.15rem}.honor-category-card small{color:#69746f;line-height:1.65}
.honor-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) minmax(170px,1fr) auto auto;gap:.8rem;align-items:end;padding:1rem;margin-bottom:1.2rem}
.honor-toolbar label{display:grid;gap:.35rem}.honor-toolbar input,.honor-toolbar select{width:100%}.honor-result-count{font-weight:800;color:#315f51;white-space:nowrap;padding-bottom:.65rem}
.honor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}
.honor-card{display:grid;grid-template-columns:110px 1fr;background:#fff;border:1px solid #e1e5e1;border-radius:20px;overflow:hidden;min-height:210px;box-shadow:0 8px 24px rgba(19,54,45,.06)}
.honor-card.featured{border-color:#bc9d58;box-shadow:0 10px 30px rgba(148,110,28,.13)}
.honor-card-photo{background:#e8efeb;display:flex;align-items:stretch;justify-content:center;min-height:100%}.honor-card-photo img{width:100%;height:100%;object-fit:cover}.honor-card-photo span{margin:auto;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#315f51;color:#fff;font-size:2rem;font-weight:800}
.honor-card-body{padding:1rem;display:flex;flex-direction:column;gap:.45rem}.honor-card-body h3{margin:0;font-size:1.15rem}.honor-card-body h3 a{color:#173f36}.honor-card-body>strong{color:#665325}.honor-card-body p{margin:.2rem 0;line-height:1.75;color:#4f5d57}.honor-card-body small{margin-top:auto;color:#727d78}
.honor-card-meta,.honor-category-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.honor-status,.honor-category-badge,.honor-featured{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .55rem;font-size:.75rem;font-weight:700}
.honor-category-badge{background:#e7f1ec;color:#285348}.honor-featured{background:#f7e8b9;color:#705814}.honor-status-draft{background:#ececec;color:#555}.honor-status-review{background:#fff0c7;color:#805f00}.honor-status-published{background:#dff2e5;color:#245f38}.honor-status-archived{background:#e4e8ed;color:#52606d}
.honor-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.2rem;align-items:start}.honor-profile-layout main{display:grid;gap:1.2rem}.honor-profile-side{position:sticky;top:90px}.honor-profile-side h3{margin-top:1.4rem}.honor-lead{font-size:1.1rem;font-weight:650;line-height:1.95;color:#294d42}.honor-biography{line-height:2;color:#35443f}.honor-significance{margin-top:1rem;padding:1rem;background:#f7f3e7;border-right:4px solid #b58d3d;border-radius:12px}.honor-significance p{margin:.45rem 0 0;line-height:1.8}
.honor-distinction-list,.honor-source-list,.honor-timeline{display:grid;gap:.8rem}.honor-distinction-card{border:1px solid #dde4df;border-radius:16px;padding:1rem;background:#fcfdfc}.honor-distinction-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.honor-distinction-head h3{margin:.45rem 0}.honor-distinction-head>div:last-child{display:flex;gap:.35rem}.honor-detail-list,.honor-side-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem;margin:1rem 0}.honor-detail-list div,.honor-side-facts div{background:#f3f6f4;border-radius:10px;padding:.65rem}.honor-detail-list dt,.honor-side-facts dt{font-size:.75rem;color:#6d7873}.honor-detail-list dd,.honor-side-facts dd{margin:.2rem 0 0;font-weight:700}
.honor-source-card{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid #e0e5e2;border-radius:14px;background:#fff}.honor-source-card>div{display:grid;gap:.3rem}.honor-source-card span{font-size:.75rem;color:#64736d}.honor-source-card p{margin:.2rem 0;line-height:1.7}.honor-source-card small{color:#6c7772}
.honor-event{display:grid;grid-template-columns:130px 1fr auto;gap:1rem;align-items:start;position:relative;padding:.8rem 0;border-bottom:1px solid #e5e8e6}.honor-event-date{font-weight:800;color:#315f51}.honor-event h3{margin:0 0 .35rem}.honor-event p{margin:.2rem 0;line-height:1.7}.honor-place-list{display:flex;flex-wrap:wrap;gap:.45rem}.honor-place-list a{padding:.35rem .6rem;border-radius:999px;background:#edf4f0;color:#315f51;font-size:.82rem}.honor-person-section{border-right:4px solid #b58d3d}.honor-person-section p{line-height:1.8}
.honor-dialog{width:min(860px,94vw)}.honor-dialog fieldset{border:1px solid #dce3df;border-radius:14px;padding:1rem;margin:1rem 0}.honor-dialog legend{font-weight:800;color:#315f51}.honor-category-manager{display:grid;gap:.55rem;margin-bottom:1rem}.honor-category-manager article{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem;border:1px solid #e0e5e2;border-radius:12px}.honor-category-manager article>div{display:grid}.honor-category-manager small{color:#6b7771}
.honor-excel-summary{display:flex;gap:.65rem;flex-wrap:wrap;margin:.8rem 0}.honor-excel-summary>*{padding:.4rem .65rem;background:#edf3ef;border-radius:9px}.honor-excel-rows{max-height:330px;overflow:auto;display:grid;gap:.35rem}.honor-excel-rows>div{display:grid;grid-template-columns:100px 1fr 160px;gap:.6rem;padding:.55rem;border-radius:8px;background:#f4f6f4}.honor-excel-rows>div.error{background:#fde9e7}.honor-excel-rows>div.create{background:#e7f5ea}.honor-excel-rows>div.update{background:#fff4d9}
@media(max-width:900px){.honor-profile-layout{grid-template-columns:1fr}.honor-profile-side{position:static}.honor-toolbar{grid-template-columns:1fr 1fr}.honor-result-count{padding:0}.honor-event{grid-template-columns:1fr}.honor-card{grid-template-columns:90px 1fr}}
@media(max-width:600px){.honor-toolbar{grid-template-columns:1fr}.honor-card{grid-template-columns:1fr}.honor-card-photo{height:190px}.honor-detail-list,.honor-side-facts{grid-template-columns:1fr}.honor-excel-rows>div{grid-template-columns:1fr}.honor-hero-actions{justify-content:flex-start}}

.g41-default-burial-note {
  margin: -0.25rem 0 1rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid rgba(63, 103, 88, 0.2);
  border-radius: 12px;
  background: rgba(236, 245, 241, 0.72);
  color: #315347;
  line-height: 1.75;
}


/* v42.2 — responsive shell, observable gravestone reading and person-first stone cards */
html,body{max-width:100%;overflow-x:hidden}#app,.section-inner,.panel,.page-title>div{min-width:0}img,video,canvas,svg{max-width:100%}.page-title-actions{display:flex;gap:8px;flex-wrap:wrap}.g42-person-card .g41-card-top{flex-wrap:wrap}.g42-stone-number{font-size:.75rem;color:var(--muted);padding-inline-start:2px}.g42-owner-empty{display:grid;gap:3px;margin:7px 0}.g42-owner-empty strong{font-size:1rem;color:#5d554a}.g42-owner-empty small{font-size:.76rem;color:var(--muted)}.g42-owner-row{padding:5px 0}.g42-owner-row+.g42-owner-row{border-top:1px dashed #ddd4c6}.g42-owner-row h2{font-size:1.12rem;margin:0 0 5px}.g42-owner-facts{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:.82rem;color:#4f4a42}.g42-owner-facts b{color:#786d5e;font-weight:700}.g42-more-owners{display:block;color:var(--muted);margin-top:4px}.g42-card-location{font-size:.84rem;margin-top:4px!important}.g42-reading-head{align-items:flex-start}.g42-reading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.g42-reading-state{min-width:235px;display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid #d8e6dd;border-radius:12px;background:#f4faf6}.g42-reading-state i{width:10px;height:10px;border-radius:50%;background:#3f8a69;flex:0 0 auto}.g42-reading-state span{display:grid;gap:1px}.g42-reading-state strong{font-size:.78rem}.g42-reading-state small{font-size:.68rem;color:var(--muted)}.g42-reading-state[data-status="dirty"]{background:#fff9ea;border-color:#ead49b}.g42-reading-state[data-status="dirty"] i{background:#c08b21}.g42-reading-state[data-status="saving"],.g42-reading-state[data-status="slow"]{background:#eef5ff;border-color:#a9c5e7}.g42-reading-state[data-status="saving"] i,.g42-reading-state[data-status="slow"] i{background:#397bb8;animation:g42pulse 1s infinite}.g42-reading-state[data-status="slow"]{background:#fff7e6;border-color:#e3c478}.g42-reading-state[data-status="slow"] i{background:#b47a18}.g42-reading-state[data-status="error"]{background:#fff1ef;border-color:#e1aaa3}.g42-reading-state[data-status="error"] i{background:#b4473d}.g42-reading-state[data-status="saved"]{background:#eff9f2;border-color:#aad0b8}@keyframes g42pulse{50%{opacity:.3;transform:scale(.72)}}[data-g41-save-reading][data-state="saving"]{cursor:wait}.g41-tag-toolbar button:disabled,.g41-tags button:disabled{opacity:.55;cursor:wait}
@media(max-width:900px){.site-header{padding-inline:14px}.section,.page-hero{padding-inline:16px}.page-title-actions{width:100%}.page-title-actions .button{flex:1 1 180px;justify-content:center}.dialog-card,.g41-dialog{width:min(94vw,880px);max-height:90vh;overflow:auto}.g41-reader-layout{grid-template-columns:1fr}.g41-reader-main{min-width:0}.g41-facts{position:static}.g42-reading-head{gap:12px}.g42-reading-actions{width:100%;justify-content:space-between}.g42-reading-state{flex:1 1 260px}.g41-reader-controls{width:100%}}
@media(max-width:700px){.section{padding:24px 10px}.page-hero{padding:22px 12px 18px}.page-title h1{font-size:clamp(1.65rem,7vw,2.15rem)}.page-title p{font-size:.88rem}.page-title-actions{display:grid;grid-template-columns:1fr}.page-title-actions .button{width:100%;min-height:44px}.panel{border-radius:13px}.g41-workspace{gap:10px}.g41-place-tree{display:flex;overflow-x:auto;overscroll-behavior-inline:contain;padding:9px}.g41-panel-head,.g41-place{min-width:155px}.g41-summary{grid-template-columns:1fr 1fr}.g41-summary>div{padding:11px}.g41-toolbar{grid-template-columns:1fr;padding:9px}.g41-toolbar input,.g41-toolbar select{width:100%;min-height:44px}.g41-selection-bar{align-items:flex-start;flex-wrap:wrap;gap:8px}.g41-selection-bar span{margin-right:0}.g41-card{grid-template-columns:30px 88px minmax(0,1fr);padding:9px;gap:9px;align-items:start}.g41-thumb{height:96px}.g42-card-action{grid-column:2/4;width:100%;justify-content:center;min-height:42px}.g42-owner-row h2{font-size:1rem}.g42-owner-facts{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;font-size:.77rem}.g42-owner-facts span:first-child{grid-column:1/-1}.g41-chips{gap:4px}.g41-chips span{font-size:.66rem}.g41-reader-controls{display:grid;grid-template-columns:repeat(4,minmax(0,auto));align-items:center}.g41-reader-controls .g41-zoom-badge{min-width:0}.g41-reader-controls label{grid-column:1/-1;width:100%;display:grid;grid-template-columns:72px 1fr;min-height:38px}.g41-reader-controls input[type="range"]{width:100%}.g41-image-stage{grid-template-columns:1fr}.g41-image-stage #g41ImageFrame{height:min(58vh,470px)}.g41-image-strip{display:flex;overflow-x:auto;max-height:none}.g41-image-strip button{min-width:104px}.g41-image-strip img{height:78px}.g41-transcription{padding:12px}.g41-transcription textarea{font-size:16px;line-height:1.9}.g42-reading-actions{display:grid;grid-template-columns:1fr;width:100%}.g42-reading-state{min-width:0;width:100%}.g42-reading-actions .button{width:100%;min-height:46px}.g41-tag-toolbar{gap:7px}.g41-tag-toolbar button,.g41-tag-toolbar summary{min-height:42px;padding:9px 10px}.g41-tag{grid-template-columns:1fr;gap:5px}.g41-facts{padding:12px}.form-grid.two-col,.form-grid.three-col{grid-template-columns:1fr!important}dialog{max-width:96vw!important}.dialog-actions{position:sticky;bottom:0;background:var(--paper,#fff);padding-block:10px;z-index:2}}
@media(max-width:440px){.brand{min-width:0}.brand small{display:none}.g41-card{grid-template-columns:28px 76px minmax(0,1fr)}.g41-thumb{height:84px}.g42-owner-facts{grid-template-columns:1fr}.g42-owner-facts span:first-child{grid-column:auto}.g42-card-action{grid-column:1/-1}.g41-summary{gap:6px}.g41-summary strong{font-size:1.25rem}.g41-summary span{font-size:.68rem}}
@media(hover:none) and (pointer:coarse){button,.button,a.button,input,select,summary{min-height:44px}.g41-check input,[data-g41-select],#g41SelectAll{width:22px;height:22px}.g41-place{min-height:48px}}


/* v42.3 — simplified person linking from gravestone */
.g423-person-dialog{width:min(760px,calc(100vw - 24px));max-height:min(880px,calc(100vh - 24px));overflow:auto}
.g423-extracted{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:14px 16px;margin:0 0 18px;border:1px solid var(--line,#ddd2c1);border-radius:16px;background:#f7f4ee}
.g423-extracted>div:first-child{display:grid;gap:4px;min-width:190px}.g423-extracted small{color:var(--muted,#6f6b63);line-height:1.7}
.g423-extracted-values{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.g423-extracted-values span{display:grid;gap:2px;min-width:100px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid #ded6ca}.g423-extracted-values span b{font-size:.75rem;color:#6c675f}.g423-extracted-values span.missing{opacity:.62}
.g423-person-section{display:grid;gap:12px}.g423-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.g423-section-head h3{margin:0 0 4px}.g423-section-head p{margin:0;color:var(--muted,#6f6b63)}
.g423-person-dialog .search-results{display:grid;gap:8px;max-height:250px;overflow:auto;padding:2px}.g423-person-dialog .existing-person-result{text-align:right;width:100%}
.g423-or{display:flex;align-items:center;gap:12px;margin:18px 0;color:#7a746b}.g423-or::before,.g423-or::after{content:"";height:1px;flex:1;background:#ddd2c1}.g423-or span{padding:0 8px}
.g423-person-status{min-height:24px;margin-top:10px;font-size:.9rem}.g423-person-status[data-status="saving"],.g423-person-status[data-status="searching"]{color:#755b00}.g423-person-status[data-status="warning"]{color:#8a4b00}.g423-person-status[data-status="error"]{color:#a32222}
@media(max-width:700px){.g423-person-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);margin:6px}.g423-extracted{display:grid}.g423-extracted-values{display:grid;grid-template-columns:1fr 1fr}.g423-section-head{display:grid}.g423-person-dialog .form-grid.two-col{grid-template-columns:1fr}.g423-person-dialog .dialog-actions{position:sticky;bottom:-1px;background:#fff;padding-top:12px}}

/* v42.4 persistent archive scan batches */
.archive-bulk-dialog{width:min(1120px,96vw);max-height:94vh}.archive-bulk-dialog form{display:grid;gap:14px}.archive-bulk-dialog section{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fffdf9}.archive-bulk-dialog section>h3{margin:0 0 10px;color:var(--brand)}.archive-bulk-new-panel{margin-top:12px;padding:12px;border:1px dashed #cbbda8;border-radius:14px;background:#faf7f1}.archive-bulk-new-panel h4{margin:0 0 8px}.archive-bulk-destination-summary{grid-column:1/-1;margin:0;padding:9px 12px;border-radius:10px;background:#edf5f1;text-align:right;color:#274f44}.archive-bulk-progress-panel{position:relative}.archive-bulk-progress-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.archive-bulk-progress-head h3,.archive-bulk-progress-head p{margin:0}.archive-bulk-progress-head p{margin-top:4px;color:var(--muted)}.archive-bulk-progress-head>strong{font-size:1.4rem;color:var(--brand)}.archive-bulk-progress-track,.archive-bulk-file-track{height:12px;background:#e8e2d8;border-radius:999px;overflow:hidden}.archive-bulk-progress-track{margin:12px 0}.archive-bulk-progress-track span,.archive-bulk-file-track span{display:block;height:100%;width:0;background:#2f6b59;transition:width .2s ease}.archive-bulk-progress-stats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.archive-bulk-progress-stats span{padding:6px 9px;border-radius:999px;background:#f1eee8;font-size:.83rem}.archive-bulk-progress-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.archive-bulk-progress-list{display:grid;gap:8px;max-height:320px;overflow:auto}.archive-bulk-progress-file{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(140px,1fr) minmax(180px,.9fr);gap:10px;align-items:center;padding:9px 10px;border:1px solid #e7dfd2;border-radius:12px;background:#fff}.archive-bulk-progress-file strong,.archive-bulk-progress-file small,.archive-bulk-progress-file b{display:block}.archive-bulk-progress-file small{color:var(--muted);margin-top:2px}.archive-bulk-progress-file.status-success{background:#f3faf6;border-color:#b9dbc9}.archive-bulk-progress-file.status-error{background:#fff4f2;border-color:#e7b7ad}.archive-bulk-progress-file.status-duplicate,.archive-bulk-progress-file.status-invalid,.archive-bulk-progress-file.status-conflict{background:#fbf7ef}.archive-bulk-progress-file.status-error .archive-bulk-file-track span{background:#a23f32}.archive-bulk-progress-file.status-success .archive-bulk-file-track span{background:#2c765e}
@media(max-width:760px){.archive-bulk-dialog{width:98vw}.archive-bulk-dialog .form-grid.two-col,.archive-bulk-dialog .form-grid.three-col{grid-template-columns:1fr}.archive-bulk-progress-file{grid-template-columns:1fr}.archive-bulk-progress-head{align-items:center}.archive-bulk-progress-list{max-height:42vh}.archive-bulk-dialog .dialog-actions{position:sticky;bottom:0;background:#fff;padding-top:10px;z-index:5}}

/* v42.5 archive visibility and gravestone source-display refinements */
.g42-owner-facts .g425-age { background: #edf5f0; border-color: #c8ddd0; color: #244f3f; font-weight: 700; }

/* ===== Sarology v44: unified public and management shell ===== */
.public-mode .site-header{position:sticky;top:0}
.public-mode .app-shell{min-height:calc(100vh - 150px)}
.public-app-shell{display:block;padding:0;background:var(--bg)}
.unified-site-header .auth-area{margin-right:auto}
.unified-auth-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
.public-section{padding-top:34px;padding-bottom:54px}
.public-section .section-inner{width:min(1180px,calc(100% - 28px));margin:0 auto}
.public-hero{margin:0;min-height:480px}
.public-hero .hero-inner{width:min(1180px,calc(100% - 40px));max-width:1180px}
.public-stats{width:min(1120px,calc(100% - 28px));margin:-44px auto 30px;position:relative;z-index:3;gap:14px}
.public-stats>div{background:rgba(255,253,250,.96);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);text-align:center}
.public-stats strong{display:block;color:var(--brand);font-size:30px}
.public-stats span{display:block;color:var(--muted);font-size:12px}
.public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.public-card.unified-public-card{display:flex;flex-direction:column;min-height:260px;background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 24px rgba(23,63,54,.05)}
.public-card-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#e7e2d8}
.public-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.public-card-image:hover img{transform:scale(1.02)}
.public-card-body{display:flex;flex-direction:column;flex:1;padding:18px 20px}
.public-card h2{margin:8px 0 8px;font-size:19px;line-height:1.7;color:var(--brand)}
.public-card p{margin:0 0 12px;color:#56635e;font-size:13px}
.public-card small{display:block;margin-top:auto;color:var(--muted);font-size:11px}
.card-link{display:inline-flex;margin-top:12px;color:var(--accent);font-weight:800;font-size:12px}
.breadcrumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:22px;color:var(--muted);font-size:11px}
.breadcrumbs a{color:var(--brand);font-weight:700}
.detail-page.unified-detail-page{padding:clamp(20px,4vw,42px);border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:var(--shadow)}
.detail-page header{padding-bottom:22px;border-bottom:1px solid var(--line)}
.detail-page h1{margin:6px 0;color:var(--brand);font-size:clamp(30px,5vw,52px);line-height:1.35}
.detail-page h2{color:var(--brand);font-size:21px;margin:0 0 12px}
.detail-page section{padding-top:22px}
.detail-hero-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,390px);gap:28px;align-items:start}
.detail-cover{display:block;border-radius:18px;overflow:hidden;background:#eee7dc;box-shadow:0 8px 22px rgba(23,63,54,.08)}
.detail-cover img{display:block;width:100%;height:320px;object-fit:contain;background:#f4efe6}
.fact-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.fact-row span{padding:5px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:11px}
.long-text,.inscription{white-space:pre-wrap}
.inscription{padding:20px;border-right:4px solid var(--accent);border-radius:12px;background:#f8f4ec;font-size:16px}
.public-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.source-image{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#f7f3eb}
.source-image a{display:block}
.source-image img{display:block;width:100%;height:min(58vw,560px);object-fit:contain;background:#ece6db}
.source-image figcaption{padding:8px 12px;text-align:center;color:var(--muted);font-size:11px}
.public-file-link{display:flex;align-items:center;justify-content:center;min-height:90px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--brand);font-weight:800}
.tag-list,.detail-list,.link-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.tag-list li,.detail-list li,.link-list li{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tag-list strong{display:block;color:var(--accent);font-size:11px}.tag-list span{white-space:pre-wrap}
.link-list a{color:var(--brand);font-weight:800}
.public-empty,.not-found{padding:46px;border:1px dashed #bcb4a7;border-radius:20px;background:var(--paper);text-align:center}
.unified-site-footer{margin-top:0}
@media(max-width:980px){.public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-hero-row{grid-template-columns:1fr}.detail-cover{max-width:520px}.public-media-grid{grid-template-columns:1fr}}
@media(max-width:820px){.unified-site-header .auth-area{margin-right:0;margin-left:auto}.public-stats{grid-template-columns:1fr 1fr;margin-top:-28px}.public-section .section-inner{width:min(100% - 20px,1180px)}}
@media(max-width:560px){.public-grid{grid-template-columns:1fr}.public-card.unified-public-card{min-height:0}.public-section{padding-top:20px}.public-hero{min-height:390px}.public-hero .hero-inner{width:calc(100% - 28px)}.public-stats{grid-template-columns:1fr 1fr;margin-top:-20px}.public-stats strong{font-size:24px}.detail-page.unified-detail-page{padding:18px;border-radius:18px}.detail-cover img{height:260px}.source-image img{height:70vw}.unified-site-header .auth-area{width:100%}.unified-auth-link{width:100%}.site-footer .footer-links{flex-wrap:wrap}}

/* ===== Sarology v45: in-reader burial status and duplicate-image linking ===== */
.g45-burial-quick{display:grid;gap:12px}.g45-burial-quick .section-head{align-items:flex-start}.g45-burial-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.g45-burial-summary span{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.g45-burial-summary b{font-size:.72rem;color:var(--muted)}.g45-same-place-note{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:11px 13px;border:1px solid #b9d6c7;border-radius:12px;background:#f0f8f4}.g45-same-place-note span{color:var(--muted);font-size:.84rem}.g45-burial-location{padding:12px;border:1px dashed #c9baa4;border-radius:12px;background:#fbf8f2}.g45-burial-location p{margin:8px 0 0;color:var(--muted);font-size:.78rem}.g45-burial-location[hidden],.g45-same-place-note[hidden]{display:none!important}
.g45-duplicate-dialog{width:min(1060px,96vw);max-height:94vh}.g45-duplicate-dialog form{display:grid;gap:14px}.g45-duplicate-dialog section{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffdf9}.g45-duplicate-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.g45-duplicate-section-head h3,.g45-duplicate-section-head p{margin:0}.g45-duplicate-section-head p{margin-top:3px;color:var(--muted);font-size:.84rem}.g45-duplicate-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}.g45-duplicate-image{position:relative;display:grid;grid-template-rows:105px auto;gap:7px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.g45-duplicate-image.selected{outline:3px solid #5a8b78;background:#f1f8f4}.g45-duplicate-image input{position:absolute;top:10px;right:10px;z-index:2}.g45-duplicate-image>span{display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#282a23;color:#fff}.g45-duplicate-image img{width:100%;height:100%;object-fit:cover}.g45-duplicate-image b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g45-duplicate-results{display:grid;gap:8px;max-height:330px;overflow:auto}.g45-duplicate-result{width:100%;display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:right;cursor:pointer}.g45-duplicate-result.selected{border-color:#4e836f;background:#edf6f1;box-shadow:0 0 0 2px rgba(78,131,111,.18)}.g45-duplicate-result>span:nth-child(2){display:grid;gap:4px}.g45-duplicate-result strong{font-size:.86rem;line-height:1.7}.g45-duplicate-result small{color:var(--muted)}.g45-duplicate-result>b{font-size:.75rem;color:var(--brand)}.g45-duplicate-thumb{height:64px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#2b2d28;color:#fff}.g45-duplicate-thumb img{width:100%;height:100%;object-fit:cover}.g45-duplicate-target-summary{padding:10px 12px;border-radius:10px;background:#edf5f1;color:#294f43}.g45-duplicate-options label{display:flex;align-items:flex-start;gap:8px}.g45-duplicate-options p{margin:0;color:var(--muted);font-size:.82rem}.g45-duplicate-options label:last-child{display:grid;gap:5px}
@media(max-width:760px){.g45-burial-summary{grid-template-columns:1fr}.g45-same-place-note{display:grid}.g45-duplicate-dialog{width:calc(100vw - 10px);max-height:calc(100dvh - 10px);margin:5px}.g45-duplicate-images{grid-template-columns:1fr 1fr}.g45-duplicate-result{grid-template-columns:64px minmax(0,1fr)}.g45-duplicate-result>b{grid-column:2}.g45-duplicate-dialog .dialog-actions{position:sticky;bottom:-1px;background:#fff;padding-top:10px}}

#g41ImageFrame:fullscreen{height:100vh;border-radius:0;padding:20px}#g41ImageFrame:fullscreen #g41ReaderImage{max-width:100%;max-height:100%}


/* v46.1 — verified gravestone reading hotfix: visible image zoom and burial controls at page bottom */
.g461-reading-core{display:grid;gap:8px}
.g461-image-panel{margin:0}
.g461-image-tools{position:absolute;z-index:8;top:10px;left:10px;display:flex;align-items:center;gap:6px;padding:7px;background:rgba(20,27,24,.88);border:1px solid rgba(255,255,255,.24);border-radius:11px;box-shadow:0 5px 18px rgba(0,0,0,.28);direction:ltr}
.g461-image-tools button{min-width:38px;min-height:36px;border:1px solid rgba(255,255,255,.32);border-radius:8px;background:#fff;color:#173f36;padding:6px 10px;font-weight:800;cursor:pointer}
.g461-image-tools button:hover,.g461-image-tools button:focus-visible{background:#eaf4ef;outline:2px solid #fff;outline-offset:1px}
.g461-image-tools .g41-zoom-badge{min-width:64px;background:#173f36;color:#fff;border-color:rgba(255,255,255,.3)}
#g41ImageFrame:fullscreen .g461-image-tools{position:fixed;top:16px;left:16px}
@media(max-width:700px){.g461-reading-core{gap:6px}.g461-image-tools{top:7px;left:7px;max-width:calc(100% - 14px);overflow-x:auto;padding:5px}.g461-image-tools button{min-width:36px;min-height:34px;padding:5px 8px;white-space:nowrap}.g461-image-tools .g41-zoom-badge{min-width:58px}}

/* v48 burial/person/archive collaboration */
.g48-memorial-rule,.g48-person-burial-help{margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-weight:600}.g48-external-burial{margin-top:12px}.g48-provisional-badge{display:inline-flex;padding:3px 8px;border-radius:999px;background:var(--surface-2);font-size:.8rem}.archive-card.provisional-media{border-style:dashed}

/* v50: archive date interpretation, three-calendar conversion, and sorting */
.archive-date-editor{margin:1rem 0;padding:1rem;border:1px solid var(--line,#d7d0c3);border-radius:18px;background:rgba(250,248,243,.72)}
.archive-date-preview{margin-top:.9rem}
.archive-date-preview-head,.archive-date-analysis-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.65rem}
.archive-date-preview-head span,.archive-date-analysis-head span{font-size:.82rem;color:var(--muted,#6d665d);background:#fff;border:1px solid var(--line,#ddd5c8);border-radius:999px;padding:.3rem .6rem}
.archive-date-analysis{display:grid;gap:.65rem}
.archive-date-analysis.compact{margin:.55rem 0 .35rem}
details.archive-date-analysis.compact{border:1px dashed var(--line,#d8d0c3);border-radius:12px;padding:.45rem .6rem;background:rgba(255,255,255,.55)}
details.archive-date-analysis.compact summary{cursor:pointer;font-size:.78rem;font-weight:700;color:var(--ink,#3d352d)}
.archive-date-hypothesis{border:1px solid var(--line,#ddd6ca);border-radius:14px;padding:.7rem;background:#fff}
.archive-date-hypothesis.ambiguous{border-style:dashed;background:#fffaf0}
.archive-date-hypothesis>b{display:block;margin-bottom:.45rem;font-size:.84rem}
.archive-date-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.archive-date-trio span{display:flex;flex-direction:column;gap:.15rem;padding:.45rem .5rem;border-radius:10px;background:var(--surface-soft,#f6f3ed);font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}
.archive-date-trio i{font-style:normal;color:var(--muted,#776f65);font-size:.7rem}
.archive-animal-evidence{display:block;margin-top:.5rem;color:#426444;line-height:1.6}
.archive-animal-evidence.warning{color:#92521d}
.archive-date-recommendation,.archive-date-note{margin:0;padding:.65rem .75rem;border-radius:12px;background:#fff6dc;line-height:1.75;font-size:.82rem}
.archive-date-evidence{margin:0;padding-right:1.2rem;color:var(--muted,#655f57);font-size:.8rem;line-height:1.8}
.archive-date-empty{font-size:.82rem;color:var(--muted,#777);padding:.55rem;border:1px dashed var(--line,#ddd);border-radius:10px}
.archive-date-history{margin-top:.8rem;border-top:1px solid var(--line,#ddd);padding-top:.7rem}
.archive-date-history summary{cursor:pointer;font-weight:700}
.archive-date-history p{display:flex;justify-content:space-between;gap:1rem;margin:.5rem 0;padding:.5rem;border-radius:10px;background:var(--surface-soft,#f6f3ed);font-size:.8rem}
.archive-date-history span{color:var(--muted,#777)}
.archive-card .archive-date-analysis.compact .archive-date-trio{grid-template-columns:1fr}
.archive-card .archive-date-analysis.compact .archive-date-hypothesis{padding:.55rem}
.archive-card .archive-date-analysis.compact .archive-date-trio span{flex-direction:row;justify-content:space-between}
.archive-card .archive-date-analysis.compact .archive-date-trio i{font-weight:700}
.archive-toolbar select#archiveOrder{min-width:220px}
@media(max-width:760px){
  .archive-date-trio{grid-template-columns:1fr}
  .archive-date-preview-head,.archive-date-analysis-head{align-items:flex-start;flex-direction:column}
  .archive-date-history p{flex-direction:column;gap:.25rem}
}

/* v50: dates extracted inside the document reader */
.reader-date-fields{margin:.8rem 0;padding:.85rem;border:1px solid var(--line,#d8d0c4);border-radius:14px;background:rgba(255,250,239,.72)}
.reader-date-fields-title,.reader-date-analysis-head{display:flex;justify-content:space-between;gap:.7rem;align-items:center;flex-wrap:wrap;margin-bottom:.65rem}
.reader-date-fields-title span,.reader-date-analysis-head span{font-size:.78rem;color:var(--muted,#756d63)}
.reader-date-analysis{display:grid;gap:.65rem;margin-top:.75rem}
.reader-date-interpretations{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.65rem}
.reader-date-interpretations article{padding:.7rem;border:1px solid var(--line,#ded7ca);border-radius:12px;background:#fff}
.reader-date-interpretations article>strong{display:block;margin-bottom:.5rem}
.reader-date-interpretations dl{display:grid;gap:.35rem;margin:0}
.reader-date-interpretations dl>div{display:grid;grid-template-columns:90px 1fr;gap:.45rem;font-size:.78rem}
.reader-date-interpretations dt{color:var(--muted,#746d63)}
.reader-date-interpretations dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.reader-date-interpretations small{display:block;margin-top:.55rem;line-height:1.65;color:#426444}
.reader-date-recommendation{padding:.65rem;border-radius:10px;background:#fff3ce;font-size:.8rem;line-height:1.7}
.reader-date-analysis details{font-size:.78rem;color:var(--muted,#70685f)}
.reader-date-analysis ul{margin:.45rem 0 0;padding-right:1.2rem;line-height:1.8}
@media(max-width:700px){.reader-date-interpretations{grid-template-columns:1fr}.reader-date-interpretations dl>div{grid-template-columns:78px 1fr}}

.gravestone-date-editor{margin:.8rem 0;padding:.8rem;border:1px solid var(--line,#d7d0c3);border-radius:14px;background:#faf8f3}.gravestone-date-editor h3{margin:0 0 .6rem;font-size:.95rem}.gravestone-sortbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}.gravestone-sortbar label{display:flex;align-items:center;gap:8px;font-weight:700}.gravestone-sortbar select{min-width:280px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px}.gravestone-card-date{font-size:.75rem;line-height:1.8;color:#5e574d;background:#f6f2e9;border-radius:10px;padding:7px 9px;width:100%}.gravestone-date-values{display:grid;gap:4px;margin-top:5px}.gravestone-date-values span{display:flex;gap:6px;align-items:baseline}.gravestone-date-values i{font-style:normal;color:var(--muted);font-size:.72rem;min-width:58px}.gravestone-date-unresolved{color:#8a5b14;background:#fff6dc;padding:6px 8px;border-radius:8px;font-size:.78rem}@media(max-width:650px){.gravestone-sortbar{align-items:stretch;flex-direction:column}.gravestone-sortbar label{align-items:stretch;flex-direction:column}.gravestone-sortbar select{width:100%;min-width:0}}
/* v53 — structured gravestone name cleanup */
.g41-tag small{display:block;color:var(--muted);margin-top:4px}.g41-tag-descriptors{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.g41-tag-descriptors em{font-style:normal;font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:2px 7px;background:#faf7ef}

/* v56 public identity and membership */
.auth-area{display:flex;gap:.45rem;align-items:center}.auth-button.register{background:#f0e7d5;color:#173f36}.hero-subtitle{font-size:clamp(1.2rem,2.5vw,2rem);margin:.2rem 0 .8rem}.hero-note{font-weight:700;max-width:760px}.about-project h2{margin-top:2rem}.about-callout{margin-top:2rem;padding:1.25rem;border-radius:16px;background:#f3efe4}.about-callout p{margin:.4rem 0 1rem}
.users-list article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,220px) auto;gap:1rem;align-items:center}.user-role-control,.user-active-control{font-size:.82rem}.user-role-control select{display:block;width:100%;margin-top:.25rem}@media(max-width:720px){.users-list article{grid-template-columns:1fr}.auth-area{flex-wrap:wrap}}

/* v57 — جست‌وجوی سراسری */
.home-global-search{width:min(820px,100%);margin:26px 0 20px;padding:12px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 18px 48px rgba(8,28,22,.18)}
.global-search-form{display:flex;align-items:center;gap:9px}.global-search-form input{flex:1;min-width:0;border:0;background:#fff;border-radius:14px;padding:15px 17px;font-size:16px;color:var(--ink);box-shadow:0 5px 18px rgba(0,0,0,.1)}.global-search-form .button{min-height:49px;padding-inline:22px;white-space:nowrap}.home-search-hint{padding:8px 7px 0;color:#e6f0ec;font-size:12px;line-height:1.7}.home-search-section{padding-top:30px;padding-bottom:38px;background:#f5f2eb;border-bottom:1px solid var(--line)}#homeSearchSection:not(.hidden)+.portal-section .portal-grid{margin-top:0}.home-search-section+.portal-section{padding-top:26px}
.global-search-results{display:grid;gap:22px;min-width:0}.search-dialog{width:min(900px,calc(100vw - 24px))}.dialog-search-form{position:sticky;top:0;z-index:4;background:var(--paper);padding-bottom:10px}.search-dialog .global-search-results{max-height:64vh;overflow:auto;padding:2px 4px 12px}.global-search-summary{display:flex;justify-content:space-between;align-items:end;gap:20px}.global-search-summary h2{margin:8px 0 3px;font-size:clamp(22px,3vw,34px)}.global-search-summary p{margin:0;color:var(--muted);font-size:13px}.global-search-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border-block:1px solid var(--line);padding:13px 0}.global-search-chips{display:flex;gap:7px;overflow-x:auto;padding:2px 0;scrollbar-width:thin}.search-chip{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 11px;font-size:12px;font-weight:750;white-space:nowrap}.search-chip span{color:var(--muted);font-size:10px;margin-inline-start:3px}.search-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.search-chip.active span{color:#dce9e4}.global-search-sort{display:flex;align-items:center;gap:7px;margin:0;white-space:nowrap;color:var(--muted);font-size:11px}.global-search-sort select{width:auto;min-width:132px;margin:0;padding:8px 10px;border-radius:10px;font-size:12px}.global-result-group{display:grid;gap:11px}.global-result-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.global-result-group>header>div{display:flex;align-items:baseline;gap:9px}.global-result-group h3{margin:0;font-size:18px}.global-result-group header span{color:var(--muted);font-size:11px}.search-view-all{color:var(--brand);font-weight:800;font-size:12px}.global-result-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.single-group .global-result-list{grid-template-columns:1fr}.global-result-card{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:start;gap:10px;padding:13px;border:1px solid #dcd6ca;border-radius:15px;background:#fff;box-shadow:0 3px 10px rgba(39,52,46,.04);min-width:0;transition:border-color .16s,transform .16s,box-shadow .16s}.global-result-card:hover{border-color:#91ac9f;transform:translateY(-1px);box-shadow:0 8px 20px rgba(39,52,46,.09)}.global-result-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-size:17px;font-weight:900}.global-result-main{display:grid;gap:3px;min-width:0}.global-result-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.global-result-kind{color:var(--brand);font-size:10px;font-weight:850}.global-result-date{font-size:10px;color:var(--muted);direction:rtl}.global-result-main>strong{font-size:15px;line-height:1.55;overflow-wrap:anywhere}.global-result-subtitle{font-size:11px;color:#4f5e57}.global-result-path{font-size:10px;color:#80786d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-result-snippet{font-size:11px;color:#625d55;line-height:1.8;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.global-result-snippet b{color:#49443d}.global-result-arrow{align-self:center;color:#96a69f}.global-result-card mark{background:#fff0ad;color:inherit;padding:0 2px;border-radius:3px}.global-search-loading,.global-search-empty{display:grid;place-items:center;text-align:center;min-height:190px;padding:28px;border:1px dashed #c9c1b5;border-radius:18px;background:rgba(255,255,255,.55)}.global-search-loading span{width:28px;height:28px;border:3px solid #ccd9d4;border-top-color:var(--brand);border-radius:50%;animation:globalSearchSpin .8s linear infinite}.global-search-loading p,.global-search-empty p{color:var(--muted);margin:9px 0 0}.global-search-empty>span{font-size:32px;color:var(--brand)}.global-search-empty h3{margin:8px 0 0}.global-search-empty.compact{min-height:120px}@keyframes globalSearchSpin{to{transform:rotate(360deg)}}
@media(max-width:820px){.global-result-list{grid-template-columns:1fr}.global-search-toolbar{align-items:stretch;flex-direction:column}.global-search-sort{justify-content:space-between}.global-search-sort select{flex:1}.search-dialog .global-search-results{max-height:58vh}}
@media(max-width:560px){.home-global-search{padding:9px;margin-top:20px}.global-search-form{align-items:stretch}.global-search-form input{padding:13px 12px;font-size:14px}.global-search-form .button{padding-inline:13px}.home-search-hint{font-size:10px}.home-search-section{padding:24px 12px}.global-search-summary h2{font-size:23px}.global-result-card{grid-template-columns:31px minmax(0,1fr);padding:11px}.global-result-icon{width:31px;height:31px}.global-result-arrow{display:none}.global-result-snippet{-webkit-line-clamp:3}.dialog-search-form{display:grid;grid-template-columns:1fr auto}.search-dialog{padding:16px}}

/* v61: historical seals gallery */
.historical-seals-hero{background:linear-gradient(135deg,#2d241c,#72583a);color:#fff}.historical-seals-hero .eyebrow,.historical-seals-hero p,.historical-seals-hero .back-link{color:#eadcc8}.historical-seal-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:16px}.historical-seal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.historical-seal-stats div{display:grid;gap:2px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px}.historical-seal-stats strong{font-size:20px}.historical-seal-stats span{font-size:9px;color:var(--muted)}.historical-seal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.historical-seal-card{display:grid;grid-template-rows:210px auto;border:1px solid #d9cdbb;border-radius:15px;background:#fffdf9;overflow:hidden;box-shadow:0 7px 20px rgba(62,44,26,.07)}.historical-seal-image{display:grid;place-items:center;background:#eee7db;overflow:hidden}.historical-seal-image canvas{width:100%;height:100%;object-fit:contain}.historical-seal-image>span{font-size:28px;color:#7c6548}.historical-seal-card>div{padding:13px}.historical-seal-card h2{font-size:14px;margin:5px 0}.historical-seal-card p{font-size:10px;margin:0;color:#4f4538}.historical-seal-card small{display:block;margin-top:7px;color:var(--muted);font-size:8px}.historical-seal-impressions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.historical-impression-card{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1fr);gap:14px;border:1px solid #d9cdbb;border-radius:15px;background:#fff;padding:13px}.historical-impression-card canvas{width:100%;height:230px;border-radius:10px;background:#eee7db}.historical-impression-card h2{font-size:14px;margin:8px 0}.historical-impression-card p,.historical-impression-card small{font-size:9px;color:var(--muted)}
@media(max-width:900px){.historical-seal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.historical-seal-impressions{grid-template-columns:1fr}.historical-impression-card{grid-template-columns:1fr}}@media(max-width:600px){.historical-seal-grid{grid-template-columns:1fr}.historical-seal-search{grid-template-columns:1fr}.historical-seal-stats{grid-template-columns:1fr 1fr}.historical-seal-card{grid-template-rows:190px auto}}

.public-archive-tools{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end;margin-bottom:18px}.public-archive-tools label{display:grid;gap:6px}.public-archive-tools input,.public-archive-tools select{width:100%}.public-archive-tools strong{padding:10px 0;white-space:nowrap}.public-archive-card[hidden]{display:none!important}@media(max-width:900px){.public-archive-tools{grid-template-columns:1fr 1fr}.public-archive-tools strong{grid-column:1/-1}}@media(max-width:560px){.public-archive-tools{grid-template-columns:1fr}}

/* ===== Sarology v66: archive duplicate merge and scan lifecycle ===== */
.archive-merge-dialog,.archive-image-replace-dialog{width:min(1060px,96vw);max-height:94vh}.archive-merge-dialog form,.archive-image-replace-dialog form{display:grid;gap:14px}.archive-merge-dialog section,.archive-image-replace-dialog section{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fffdf9}.archive-merge-results{display:grid;gap:8px;max-height:310px;overflow:auto}.archive-merge-result{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:9px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:right}.archive-merge-result.selected{border-color:#36745e;background:#edf7f2;box-shadow:0 0 0 2px rgba(54,116,94,.16)}.archive-merge-result-thumb{height:68px;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#2d302b;color:#fff}.archive-merge-result-thumb img{width:100%;height:100%;object-fit:cover}.archive-merge-result span:nth-child(2){display:grid;gap:3px}.archive-merge-result small{color:var(--muted)}.archive-merge-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px}.archive-merge-document{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.archive-merge-document strong,.archive-merge-document span,.archive-merge-document small{display:block}.archive-merge-document span{margin:4px 0}.archive-merge-document small{color:var(--muted)}.archive-merge-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.archive-merge-choice label,.archive-image-operation label,.archive-image-ratio-panel label{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.archive-merge-summary{padding:11px 13px;border-radius:11px;background:#edf5f1;line-height:1.9}.archive-scan-origin{display:block;color:var(--muted);font-size:.76rem}.archive-image-current-preview{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.archive-image-current-preview img{width:150px;height:110px;object-fit:contain;background:#252822;border-radius:10px}.archive-image-current-preview strong,.archive-image-current-preview small{display:block}.archive-image-operation{display:grid;grid-template-columns:1fr 1fr;gap:10px}.archive-image-ratio-panel{border-color:#d4a64d!important;background:#fff8e8!important}.archive-image-versions{display:grid;gap:8px;margin-top:10px}.archive-image-version{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:11px;background:#fff}.archive-image-version img{width:90px;height:68px;object-fit:contain;background:#2a2d28;border-radius:8px}.archive-image-version small{display:block;color:var(--muted)}.archive-version-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:#edf5f1;color:#285d4b;font-size:.72rem}.scan-file-actions{flex-wrap:wrap}.archive-merged-source-note{padding:8px 10px;border-radius:10px;background:#f4f0e8;color:#665b4b;font-size:.78rem}
@media(max-width:760px){.archive-merge-dialog,.archive-image-replace-dialog{width:calc(100vw - 10px);max-height:calc(100dvh - 10px);margin:5px}.archive-merge-result{grid-template-columns:64px minmax(0,1fr)}.archive-merge-result>button,.archive-merge-result>b{grid-column:2}.archive-merge-comparison,.archive-merge-choice,.archive-image-operation{grid-template-columns:1fr}.archive-image-current-preview{grid-template-columns:1fr}.archive-image-current-preview img{width:100%;height:180px}.archive-image-version{grid-template-columns:72px minmax(0,1fr)}.archive-image-version button{grid-column:2}}
.archive-deleted-images{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.archive-deleted-images summary{cursor:pointer;font-weight:700}.archive-deleted-images>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}

/* v67 historical seal identity registry */
.historical-seal-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.seal-owner-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:6px 9px;margin:5px 0 8px;text-decoration:none;border:1px solid var(--line);font-size:9px}.seal-owner-badge b{font-size:10px}.seal-owner-badge small{margin:0;font-size:8px}.seal-owner-badge.confirmed{background:#eef7ef;border-color:#b8d6bc}.seal-owner-badge.probable{background:#fff7df;border-color:#dfcb8b}.seal-owner-badge.unknown{background:#f6f3ee;color:var(--muted)}
.seal-identity-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start}.seal-identity-main{display:grid;gap:16px}.seal-identity-side{position:sticky;top:90px}.seal-identity-side p{font-size:10px;color:var(--muted);line-height:1.9}.seal-document-code-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.seal-document-code-list a{padding:5px 8px;border-radius:8px;background:#f4eee4;font-size:9px}.seal-identity-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.seal-identity-facts>div{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fffdf9}.seal-identity-facts span{font-size:8px;color:var(--muted)}.seal-identity-facts strong{font-size:10px}
.seal-attribution-list{display:grid;gap:10px}.seal-attribution-card{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px;border:1px solid #d9cdbb;border-radius:12px;background:#fffdf9}.seal-attribution-card.revoked{opacity:.62;background:#f5f2ed}.seal-attribution-card h3{font-size:12px;margin:5px 0}.seal-attribution-card p,.seal-attribution-card small{font-size:9px;color:var(--muted)}.seal-attribution-card blockquote{font-size:10px;margin:8px 0;padding:8px 10px;border-right:3px solid #a48663;background:#f7f0e6}.seal-attribution-card em{font-size:8px;color:var(--muted)}.seal-evidence-source{display:block;margin-top:8px;font-size:9px}.seal-owner-editor form{display:grid;gap:10px}.seal-owner-person-results{display:grid;gap:5px;max-height:230px;overflow:auto}.seal-owner-person-results button{display:flex;justify-content:space-between;gap:8px;text-align:right;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.seal-owner-person-results small{color:var(--muted)}.seal-selected-owner{margin:0}.historical-impression-owner{padding:6px 8px;border-radius:8px;background:#eef7ef;color:#365d3c!important}.person-seal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.person-seal-card{display:grid;grid-template-rows:130px auto;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fffdf9;text-decoration:none}.person-seal-card canvas{width:100%;height:130px;background:#eee7db}.person-seal-card span{padding:9px;display:grid;gap:4px}.person-seal-card strong{font-size:10px}.person-seal-card small{font-size:8px;color:var(--muted)}
@media(max-width:900px){.seal-identity-layout{grid-template-columns:1fr}.seal-identity-side{position:static}.seal-identity-facts{grid-template-columns:1fr 1fr}.person-seal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.historical-seal-stats{grid-template-columns:1fr 1fr}.seal-identity-facts,.person-seal-grid{grid-template-columns:1fr}.seal-attribution-card{display:grid}}


/* ===== Sarology v68: simple person-centered family editor ===== */
.family-simple-page{max-width:1320px;margin:0 auto;padding:22px 4vw 64px;display:grid;gap:18px}
.family-simple-rollback-note{padding:12px 16px;display:flex;gap:12px;align-items:center;background:#f7f4ed;border-style:dashed}.family-simple-rollback-note strong{color:var(--brand);white-space:nowrap}.family-simple-rollback-note span{color:var(--muted);font-size:12px}
.family-simple-search{padding:14px 16px;position:relative}.family-simple-search label{margin:0}.family-simple-search-results{position:absolute;top:72px;right:16px;left:16px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:15;max-height:320px;overflow:auto}.family-simple-search-results:empty{display:none}.family-simple-search-results a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #eee9e1}.family-simple-search-results a:last-child{border-bottom:0}.family-simple-search-results small{color:var(--muted)}
.family-simple-focus{padding:24px;display:grid;gap:20px;background:linear-gradient(180deg,#fff,#fbfaf7)}.family-simple-parent-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:850px;margin:0 auto;width:100%}.family-simple-center-wrap{display:grid;justify-items:center;gap:12px;position:relative}.family-simple-center-wrap:before{content:'';width:2px;height:20px;background:#b8c3bd;position:absolute;top:-20px}.family-simple-person-card{border:1px solid #d9ded9;border-radius:16px;background:#fff;padding:14px;display:grid;gap:7px;min-width:0;box-shadow:0 5px 16px rgba(27,56,47,.06)}.family-simple-person-card.central{width:min(460px,100%);border:2px solid var(--brand);padding:18px;box-shadow:0 10px 30px rgba(27,56,47,.12)}.family-simple-role{font-size:10px;color:var(--muted);font-weight:800}.family-simple-person-link{display:grid;gap:4px}.family-simple-person-link strong{font-size:17px;color:var(--ink)}.family-simple-person-card.central .family-simple-person-link strong{font-size:22px}.family-simple-person-link small{color:var(--muted);font-size:11px}.family-simple-card-actions{display:flex;gap:10px;font-size:10px}.family-simple-card-actions button{border:0;background:none;color:var(--accent);padding:0}.family-simple-card-actions a{color:var(--brand)}.family-simple-empty-card{border:1px dashed #cfc8bc;border-radius:16px;min-height:92px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);background:#faf8f4}.family-simple-main-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.family-simple-extra-parents{text-align:center;font-size:11px;color:var(--muted)}.family-simple-extra-parents a{color:var(--brand)}
.family-simple-unions-head{display:flex;justify-content:space-between;align-items:end;gap:18px}.family-simple-unions-head h2{margin:3px 0}.family-simple-unions-head p{margin:0;color:var(--muted)}.family-simple-unions{display:grid;gap:16px}.family-simple-union-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:14px;box-shadow:0 6px 20px rgba(64,52,38,.05)}.family-simple-union-head{display:flex;justify-content:space-between;align-items:start;gap:16px;border-bottom:1px solid #eee8df;padding-bottom:12px}.family-simple-union-head h3{margin:3px 0 5px;font-size:18px}.family-simple-union-actions{display:flex;gap:7px;flex-wrap:wrap}.family-simple-partner{max-width:540px}.family-simple-section-label{font-size:11px;font-weight:900;color:var(--muted);margin-bottom:8px}.family-simple-children-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.family-simple-no-child{border:1px dashed #ddd4c7;border-radius:12px;padding:14px;color:var(--muted);font-size:11px}.family-simple-empty-union{padding:24px;text-align:center}.family-simple-help{background:#f8f5ef}.family-simple-help p{color:var(--muted)}
.family-quick-dialog{width:min(620px,calc(100vw - 24px))}.quick-person-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;background:#f3efe8;padding:5px;border-radius:12px}.quick-person-mode button{border:0;border-radius:9px;padding:10px;background:transparent;color:var(--muted);font-weight:800}.quick-person-mode button.active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.06)}.quick-person-note{background:#f8f5ef;border-radius:10px;padding:10px;color:var(--muted);font-size:11px}
@media(max-width:820px){.family-simple-parent-row{grid-template-columns:1fr}.family-simple-union-head,.family-simple-unions-head{flex-direction:column;align-items:stretch}.family-simple-children-grid{grid-template-columns:1fr 1fr}.family-simple-rollback-note{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.family-simple-page{padding:14px 12px 48px}.family-simple-focus{padding:16px}.family-simple-children-grid{grid-template-columns:1fr}.family-simple-main-actions .button{flex:1 1 42%}.family-simple-union-card{padding:14px}}
