.memorial{filter:saturate(.35);border-color:#c3c5c8!important}.memorial-note{padding:10px 13px;margin-bottom:22px;color:#8d8f92;background:#f3f1ef;border-left:2px solid #a6a8ab;font:15px Georgia,serif}
.tree-tools{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 13px}.tree-tools>span{font-size:11px;color:#9a8354}.relative-add{position:absolute;width:32px;height:29px;border-radius:8px;background:#ebe9e7;color:#7b7d80;border:1px solid #d7d5d3;display:flex;align-items:center;justify-content:center;gap:0;z-index:2;box-shadow:0 3px 9px #42444715;transition:transform .2s}.relative-add svg:first-child{width:17px;height:17px}.relative-add svg:last-child{width:11px;height:11px}.relative-add:hover{transform:scale(1.12);background:#dfdddb}.person-card.kinship-focus{border-color:#9a824e;background:#fffaf0;box-shadow:0 0 0 3px #b39a5f20}.kin-result{background:#f5f3f1;border:1px solid #e5e3e1;padding:23px;border-radius:10px}.kin-result h3{font:24px/1.5 Georgia,serif;color:#525457;margin:8px 0}.kin-result p{font-size:12px;color:#898b8e;line-height:1.9;margin-top:9px}.kin-chain{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:20px 0}.kin-chain>span{background:white;border:1px solid #e2e0de;border-radius:6px;padding:10px;font-size:11px;color:#67696c}.kin-chain svg{width:16px;height:16px;color:#a5a7aa}.relative-choices{display:flex;flex-direction:column;gap:10px}.relative-choices button{display:flex;align-items:center;gap:12px;padding:17px 18px;background:#f7f5f3;border:1px solid #e5e3e1;border-radius:9px;text-align:left}.relative-choices button>span{flex:1}.relative-choices strong{display:block;font:18px Georgia,serif;color:#56585b}.relative-choices small{display:block;font-size:10px;color:#989a9d;margin-top:6px}.relative-choices svg{color:#a2a4a7}
.connections .parent-line.adoptive{stroke:#8c9aaf;stroke-dasharray:6 3;animation:fade-in .4s}.connections .parent-line.step{stroke:#a49a86;stroke-dasharray:2 4;animation:fade-in .4s}.connections .spouse-line.former{stroke:#a5a09c;stroke-dasharray:8 5}
:root{--bg:#f5f5f7;--paper:#ffffff;--accent:#262832;--accent-soft:#ededf3;--muted:#848689;--ink:#282a35;--line:#e6e6ec;--gold:#af8f59;--shadow:0 10px 35px #30323510;--serif:Georgia,'Times New Roman',serif;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{color:inherit}a{color:inherit}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.tree-viewport:focus-visible{outline:3px solid #a7a9ac;outline-offset:3px}svg{width:21px;height:21px;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3,p{margin:0}button{border:none}button:hover{filter:brightness(.98)}.shell{min-height:100vh;display:flex}.sidebar{width:246px;flex-shrink:0;background:#252730;border-right:1px solid var(--line);padding:35px 20px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:10}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;margin:0 10px 49px}.brand-mark{display:grid;place-items:center;width:49px;height:56px;color:var(--accent)}.brand-mark svg{width:43px;height:48px}.brand>span:last-child{font-family:var(--serif);font-size:36px;color:var(--accent);letter-spacing:-1.4px}.brand small{display:block;font:10px 'Segoe UI',sans-serif;letter-spacing:1.5px;color:#7e8083;margin-top:5px}.space-label{font-size:10px;letter-spacing:1.7px;color:#8c8e91;padding:0 15px;margin-bottom:17px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 14px;background:transparent;border-radius:9px;font-size:12px;min-height:45px;color:#77797c;transition:background .2s,color .2s}.nav-item svg{width:19px;height:19px}.nav-item.active{background:#e6e4e2;color:var(--accent);font-weight:600}.nav-item:hover{background:#e8e6e4}.nav-item b{margin-left:auto;background:var(--accent);color:white;padding:2px 6px;border-radius:6px;font-size:10px}.sidebar-note{margin-top:auto;padding:40px 15px 27px}.sidebar-note>svg{width:34px;height:42px;color:#96989b;margin-bottom:12px}.sidebar-note p{font:18px/1.5 var(--serif);color:#6c6e71}.sidebar-note>span{display:block;font-size:11px;line-height:1.7;color:#97999c;margin-top:10px}.account{border-top:1px solid #dedcda;display:flex;align-items:center;gap:10px;text-align:left;background:none;padding:20px 0 0}.account>span:nth-child(2){font-size:12px;flex:1;min-width:0}.account small{display:block;font-size:9px;margin-top:4px;color:var(--muted)}.account>svg{width:16px;color:#8c8e91}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#eceae8;color:#797b7e;font-family:var(--serif);font-size:15px;flex-shrink:0;border:2px solid #ffffffb0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.small{width:33px;height:33px;font-size:12px}.avatar.large{width:83px;height:83px;font-size:30px;margin:auto;border:4px solid #fff;box-shadow:0 3px 20px #36383b10}.tone-1{background:#e9dfd6;color:#927860}.tone-2{background:#e4e2e0;color:#66686b}.tone-3{background:#e1e2ed;color:#757794}main{margin-left:246px;min-width:0;flex:1;padding:0 40px 20px}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.breadcrumb{font-size:11px;color:#8b8d90}.breadcrumb span{margin:0 12px;color:#b7b9bc}.top-actions{display:flex;align-items:center;gap:18px}.connection{display:flex;align-items:center;gap:7px;font-size:10px;color:#7b7d80}.connection svg{width:15px;height:15px}.connection.offline{color:#a1814e}.icon-button{display:grid;place-items:center;width:34px;height:34px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:14px;color:#85878a;flex-shrink:0}.icon-button:hover{background:var(--accent-soft)}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:37px 0 27px}.eyebrow{font-size:10px;letter-spacing:1.1px;line-height:1.6;color:#8c8e91}.heading .eyebrow{margin-bottom:10px}h1{font:36px/1.2 var(--serif);letter-spacing:-.8px;color:var(--accent);display:flex;align-items:center;gap:17px}.title-leaf svg{width:29px;height:33px;color:#adafb2;transform:rotate(15deg)}.subtitle{font-size:12px;line-height:1.8;color:#8a8c8f;margin-top:11px}.heading-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;padding:11px 17px;border:1px solid transparent;border-radius:7px;font-size:11px;font-weight:600;min-height:40px;transition:transform .2s,background .2s,box-shadow .2s}.button svg{width:16px;height:16px}.button:hover{transform:translateY(-1px);box-shadow:0 4px 14px #26283210}.button.primary{color:#fff;background:var(--accent);border-color:var(--accent)}.button.secondary{background:#ffffff;border-color:#e0dedc;color:#6c6e71}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:28px}.stats>div{border:1px solid var(--line);border-radius:9px;background:#fdfbf9;display:flex;align-items:center;padding:17px 18px;gap:11px;min-width:0}.stats svg{color:#96989b;width:18px;height:18px}.stats strong{font:25px var(--serif);color:#525457}.stats span{font-size:10px;color:#919396}.workspace{animation:fade-in .35s ease}.panel{border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.panel-toolbar{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #f0eeec}.search{display:flex;align-items:center;gap:9px;width:230px;color:#9fa1a4}.search svg{width:17px;height:17px}.search input{border:0;background:transparent;width:100%;font-size:11px;min-height:28px;padding:4px}.tree-filters{display:flex;gap:7px}.tree-filters select{background:#f8f6f4;border:1px solid #e7e5e3;border-radius:6px;color:#818386;padding:8px;max-width:180px;font-size:10px}.tree-caption{display:flex;align-items:center;gap:8px;padding:17px 20px 0;font-size:10px;color:#717376}.tree-caption>span:last-child{margin-left:auto;color:#a4a6a9;font-size:9px}.live-dot{width:5px;height:5px;border-radius:50%;background:#a2a4a7}.tree-viewport{height:530px;overflow:auto;cursor:grab;scrollbar-width:thin;scrollbar-color:#d4d2d0 transparent;touch-action:pan-x pan-y;overscroll-behavior:contain;background:radial-gradient(#dedcda85 .7px,transparent .7px);background-size:22px 22px}.tree-viewport.dragging{cursor:grabbing}.tree-space{position:relative;min-width:100%;margin:auto}.tree-canvas{position:relative;transform-origin:top left;margin:auto}.connections{position:absolute;inset:0;pointer-events:none}.connections path{stroke:#c6c8cb;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-dasharray:2000;stroke-dashoffset:0;animation:branch-grow 1.3s ease-out}.connections .spouse-line{stroke:#b8babd;stroke-dasharray:4 4;animation:fade-in 1s ease}.generation-label{position:absolute;left:22px;font-size:9px;letter-spacing:1px;color:#b4b6b9}.person-card{position:absolute;width:200px;height:104px;text-align:left;display:flex;align-items:center;gap:11px;background:#fffefb;border:1px solid #e5e3e1;border-radius:10px;padding:16px 13px;box-shadow:0 4px 15px #34363909;transition:box-shadow .25s,border-color .25s,opacity .2s,transform .25s;animation:person-grow .55s both}.person-card:nth-of-type(3n){animation-delay:.08s}.person-card:nth-of-type(3n+1){animation-delay:.15s}.person-card:hover{border-color:#aaacaf;box-shadow:0 7px 20px #26283215;transform:translateY(-3px)}.person-card.chosen{border-color:var(--accent);box-shadow:0 0 0 2px #26283210}.person-card .avatar{width:39px;height:39px}.person-copy{min-width:0;flex:1}.person-copy strong{display:block;font:13px/1.35 var(--serif);color:#484a4d;overflow:hidden;text-overflow:ellipsis}.person-copy small{display:block;font-size:9px;margin-top:6px;color:#939598}.person-copy>span{display:block;font-size:8px;margin-top:7px;color:#a5a7aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-card.dimmed{opacity:.25}.tree-bottom{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid #f0eeec;gap:10px}.tree-bottom>span{display:flex;align-items:center;gap:8px;font-size:9px;color:#999b9e}.legend-line{display:block;width:22px;border-top:1px solid #bec0c3}.legend-line.dotted{border-top-style:dashed;margin-left:15px}.zoom-controls{display:flex;border:1px solid #e5e3e1;border-radius:6px;overflow:hidden}.zoom-controls button{background:#fdfbf9;padding:5px 9px;font-size:11px;min-width:30px;height:29px}.zoom-controls button+button{border-left:1px solid #e5e3e1}.below-tree{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:19px}.below-tree>div{display:flex;align-items:center;gap:12px;padding:17px 18px;border-radius:9px;background:#efedeb;border:1px solid #e8e6e4}.below-tree>div>svg{color:#919396;width:23px;height:23px}.below-tree strong{display:block;font:13px var(--serif);color:#787a7d}.below-tree small{display:block;font-size:9px;margin-top:6px;color:#95979a}.below-tree button{background:none;display:flex;gap:6px;align-items:center;margin-left:auto;font-size:9px;color:#797b7e}.below-tree button svg{width:14px;height:14px}footer{font-size:9px;color:#a5a7aa;padding:24px 0 0}footer>span{padding:0 10px}.footer-right{float:right}.notice{margin-top:16px;padding:11px 16px;border:1px solid #e6dcc7;background:#f5efe3;border-radius:7px;font-size:11px;color:#8c754d;display:flex;justify-content:space-between;align-items:center;gap:10px}.notice button{background:none;display:flex;align-items:center;gap:6px;color:inherit;font-size:11px;font-weight:600}.notice button svg{width:15px;height:15px}.demo-notice{background:#efedeb;border-color:#e1dfdd;color:#808285}.empty{padding:68px 28px;text-align:center;max-width:600px;margin:auto}.empty>svg{width:55px;height:62px;color:#a8aaad;margin-bottom:20px}.empty h2{font:26px var(--serif);color:var(--accent)}.empty p{font-size:13px;line-height:1.9;color:#919396;margin:15px auto 24px;max-width:410px}.starter-note{display:flex;gap:8px;align-items:center;justify-content:center;font-size:11px;color:#9ea0a3;margin-bottom:29px}.starter-note svg{width:15px;height:15px}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.record-card{display:block;text-align:left;padding:25px;background:var(--paper);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);animation:person-grow .45s ease;transition:transform .2s,border-color .2s;overflow:hidden}.record-card:hover{transform:translateY(-3px);border-color:#b8babd}.record-icon{display:grid;place-items:center;width:40px;height:40px;background:var(--accent-soft);border-radius:10px;color:#7a7c7f;margin-bottom:20px}.record-card .eyebrow{font-size:9px}.record-card h3{font:21px/1.35 var(--serif);color:var(--accent);margin-top:7px}.record-card p{font-size:12px;color:#8d8f92;line-height:1.7;margin-top:10px;overflow-wrap:anywhere}.record-meta{font-size:10px;color:#9ea0a3;margin:17px 0}.record-card .owners{font-size:10px;margin-bottom:14px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:9px;border:1px solid #e5dfcd;border-radius:5px;padding:5px 8px;background:#f7f1e4;color:#aa8a52}.badge i{width:4px;height:4px;border-radius:50%;background:currentColor}.badge.documented{background:#f0eeec;border-color:#e3e1df;color:#7a7c7f}.badge.hypothesis{background:#eef0f7;border-color:#dfe2ed;color:#7c829e}.badge.disputed{background:#f8eae4;border-color:#eedbd1;color:#af785f}.timeline{max-width:900px;margin:8px auto}.timeline-item{display:grid;grid-template-columns:110px 30px 1fr;position:relative}.time-date{font:17px var(--serif);color:#8e9093;padding-top:26px;text-align:right;padding-right:20px}.time-dot{position:relative}.time-dot:before{content:'';position:absolute;top:32px;width:7px;height:7px;border:2px solid #a5a7aa;border-radius:50%;background:var(--bg);z-index:1}.time-dot:after{content:'';position:absolute;left:4px;top:0;bottom:0;width:1px;background:#dddbd9}.timeline-item:first-child .time-dot:after{top:35px}.timeline-item:last-child .time-dot:after{bottom:calc(100% - 35px)}.timeline-card{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px 25px;margin:0 0 18px;box-shadow:var(--shadow);animation:fade-in .4s}.timeline-card h3{font:20px var(--serif);color:var(--accent);margin:6px 0 10px}.timeline-card p{font-size:12px;line-height:1.8;color:#8f9194;margin-bottom:12px}.place-map{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin-bottom:23px;background:#f2f0ee}.place-map>div{padding:26px}.place-map h2{font:22px/1.4 var(--serif);color:var(--accent);margin:9px 0}.place-map p:last-child{font-size:11px;line-height:1.8;color:#909295}.place-map>svg{width:100%;height:200px;background:#edebe9}.review-list{display:flex;flex-direction:column;gap:15px}.review-card{padding:22px;display:flex;align-items:center;gap:20px}.review-card>div:first-child{flex:1}.review-card h3{font:21px var(--serif);color:var(--accent);margin:5px 0 10px}.review-actions{display:flex;gap:8px}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.access-card{padding:27px}.access-card>svg{color:#9b9da0;width:30px;height:30px;margin-bottom:16px}.access-card h2{font:24px var(--serif);color:var(--accent)}.access-card p{font-size:12px;line-height:1.9;margin:12px 0 20px;color:#909295}.hint{font-size:12px!important;line-height:1.8;color:var(--muted)!important}.member-row{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid #f0eeec;font-size:12px}.member-row strong,.member-row>span:first-child{flex:1;overflow-wrap:anywhere}.member-row select{max-width:140px;font-size:10px}.inspector{position:fixed;inset:0 0 0 auto;width:375px;z-index:30;background:#ffffff;border-left:1px solid #e2e0de;box-shadow:-20px 0 60px #2a2c2f18;display:flex;flex-direction:column;animation:slide-in .35s ease}.inspector-scrim{position:fixed;inset:0;background:#2b2d3024;z-index:25;backdrop-filter:blur(1px)}.inspector-top{display:flex;justify-content:space-between;align-items:center;padding:20px 22px}.inspector-top .eyebrow{font-size:9px}.profile-head{text-align:center;padding:7px 23px 22px;background:radial-gradient(ellipse at 50% 10%,#f1efed,transparent 70%)}.profile-head h2{font:27px/1.25 var(--serif);color:var(--accent);margin-top:15px;overflow-wrap:anywhere}.profile-head>p{font-size:11px;color:#989a9d;margin-top:8px}.profile-head .badge{margin-top:10px}.pane-tabs{display:flex;border-bottom:1px solid #e9e7e5;padding:0 13px;justify-content:space-between}.pane-tabs button{padding:12px 8px;color:#95979a;background:none;font-size:10px;border-bottom:2px solid transparent}.pane-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.pane-body{overflow-y:auto;flex:1;padding:25px}.detail{margin-bottom:22px}.detail>span{font-size:10px;color:#a2a4a7;display:block;margin-bottom:7px}.detail>p{font-size:12px;line-height:1.9;color:#6b6d70;overflow-wrap:anywhere}.unknown{font-style:italic;color:#7c6957;font-size:12px}.section-title{font:19px var(--serif);color:var(--accent);padding:13px 0 21px;border-top:1px solid #ebe9e7}.relation{display:flex;align-items:center;gap:9px;width:100%;background:#f7f5f3;border:1px solid #eceae8;border-radius:7px;padding:9px;margin:5px 0;text-align:left;font-size:11px}.relation>span:nth-child(2){flex:1}.relation>svg{width:14px;height:14px;color:#9b9da0}.source-link{display:flex;align-items:center;gap:8px;text-align:left;background:none;color:#75777a;font-size:11px;padding:7px 0}.source-link svg{width:16px;height:16px}.pane-footer{border-top:1px solid #eae8e6;padding:15px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px}.danger{color:#b58678}.danger-button{background:#9b685b;color:#fff}.pane-body .record-grid{grid-template-columns:1fr}.pane-body .record-card{padding:20px}.pane-body .empty{padding:25px 5px}.pane-body .empty>svg{width:32px;height:38px}.pane-body .empty h2{font-size:21px}.pane-body .empty p{font-size:11px}.timeline.compact .timeline-item{grid-template-columns:65px 20px 1fr}.timeline.compact .time-date{font-size:12px;padding-right:8px}.timeline.compact .timeline-card{padding:13px}.timeline.compact .timeline-card h3{font-size:16px}.timeline.compact .timeline-card p{font-size:10px}dialog{width:min(580px,calc(100vw - 30px));max-height:90dvh;border:1px solid #e3e1df;border-radius:15px;background:#ffffff;color:var(--ink);padding:28px;box-shadow:0 20px 80px #2a2c2f30;animation:dialog-enter .25s ease}dialog::backdrop{background:#2a2c2f4d;backdrop-filter:blur(4px)}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.dialog-header h2{font:27px var(--serif);color:var(--accent)}.dialog-header p{font-size:12px;line-height:1.8;color:#8e9093;margin-top:9px}.dialog-text{font-size:13px;line-height:1.9;color:#888a8d}.dialog-text p{margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;margin-top:14px;border-top:1px solid #eceae8}label{display:block;font-size:11px;color:#808285;margin-bottom:16px}input,textarea,select{display:block;width:100%;border:1px solid #e2e0de;background:#fefcfa;border-radius:7px;padding:11px 12px;margin-top:7px;color:#55575a;font-size:12px;min-width:0}input::placeholder,textarea::placeholder{color:#b1b3b6}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-error{color:#ad6655;font-size:12px;line-height:1.8}.multi{border:1px solid #e8e6e4;border-radius:8px;padding:13px 14px;margin:0 0 17px;max-height:185px;overflow-y:auto}.multi legend{font-size:11px;color:#8b8d90;padding:0 6px}.checkbox{display:flex;gap:9px;align-items:center;margin-bottom:8px;font-size:12px;line-height:1.6}.checkbox input{width:15px;height:15px;margin:0;accent-color:var(--accent);flex-shrink:0}.old-value{text-decoration:line-through;color:#71634f!important}#invite-result{margin-top:18px}#invite-link{font-size:10px}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);padding:14px 22px;background:var(--accent);color:white;border-radius:9px;z-index:100;font-size:12px;line-height:1.7;box-shadow:0 8px 25px #292b2e20;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:calc(100vw - 30px)}#toast.show{opacity:1;transform:translate(-50%,0)}.owner-toggle{padding:7px 10px;border-radius:6px;border:1px solid #dddbd9;color:#7c7e81;background:transparent;font-size:10px;display:flex;align-items:center;gap:6px}.owner-toggle svg{width:14px;height:14px}.owner-toggle.active{background:var(--accent);color:white;border-color:var(--accent)}.owner-banner{background:#eceae8;border:1px solid #dad8d6;color:#75777a}.person-card.pending-person{border-style:dashed;border-color:#b79a63;background:#fffaf0}.person-card.pending-person:after{content:'На проверке';position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);padding:2px 7px;border-radius:4px;background:#f3e6c9;color:#9d7e40;font-size:8px;white-space:nowrap}.pending-panel{padding:17px;background:#f7f0df;border:1px solid #e9dcc0;border-radius:9px;margin-bottom:20px}.pending-panel p{font-size:11px;line-height:1.8;color:#9e885e;margin-bottom:12px}.pending-panel .button{font-size:10px;padding:8px 12px}.draft-list{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.draft-card{border:1px solid #e5dbc3;background:#fff9ed;border-radius:9px;padding:18px;margin-bottom:12px}.draft-card h3{font:19px var(--serif);color:#887248}.draft-card p{font-size:11px;color:#9d906f;line-height:1.8;margin:10px 0}.draft-card .button{margin:5px}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes person-grow{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes branch-grow{from{stroke-dashoffset:2000;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes slide-in{from{transform:translateX(35px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes dialog-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(min-width:1600px){main{padding-left:58px;padding-right:58px}.tree-viewport{height:620px}.person-card{box-shadow:0 6px 20px #2628320a}.heading{padding-top:45px}.stats>div{padding:22px}.sidebar{width:260px}main{margin-left:260px}}
@media(max-width:1200px){.sidebar{width:210px;padding-left:12px;padding-right:12px}main{margin-left:210px;padding-left:25px;padding-right:25px}.heading{align-items:flex-start;flex-direction:column;gap:16px}h1{font-size:33px}.stats>div{padding:15px 11px;gap:7px;flex-wrap:wrap}.stats span{flex-basis:100%;font-size:9px}.tree-caption>span:last-child{display:none}.below-tree{grid-template-columns:1fr}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-card{flex-wrap:wrap}.review-actions{width:100%}}
@media(max-width:800px){.sidebar{width:74px;padding:23px 9px}.brand{margin:0 0 30px;justify-content:center}.brand>span:last-child,.space-label,.nav-item span,.nav-item b,.sidebar-note,.account>span:nth-child(2),.account>svg{display:none}.brand-mark{width:40px}.nav-item{justify-content:center;padding:13px 0}.nav-item svg{width:21px;height:21px}.account{justify-content:center;margin-top:auto;padding-bottom:5px}.sidebar nav{gap:10px}main{margin-left:74px;padding:0 20px 18px}.topbar{height:65px}.heading{padding-top:28px}.stats{gap:8px}.stats strong{font-size:22px}.tree-filters{max-width:240px}.tree-filters select{max-width:120px}.search{width:180px}.panel-toolbar{padding:12px}.tree-viewport{height:490px}.access-grid{grid-template-columns:1fr}.place-map{grid-template-columns:1fr}.place-map>svg{height:140px}.inspector{width:360px}}
@media(max-width:540px){.shell{display:block}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:68px;padding:4px 5px 7px;display:block;background:#f4f2f0f5;border:0;border-top:1px solid #e4e2e0;backdrop-filter:blur(15px);z-index:20}.brand,.sidebar .account{display:none}.sidebar nav{flex-direction:row;gap:2px;height:100%;align-items:center;justify-content:space-around}.nav-item{padding:9px 7px;min-height:43px;flex:1;border-radius:9px}.nav-item svg{width:20px;height:20px}main{margin:0;padding:0 15px 85px}.topbar{height:56px}.breadcrumb{font-size:9px}.breadcrumb span{margin:0 6px}.top-actions{gap:7px}.connection{font-size:0;gap:0}.connection svg{width:17px;height:17px}.icon-button{width:29px;height:29px}.owner-toggle{font-size:8px;padding:6px 7px}.heading{padding:25px 0 20px;gap:16px}.heading .eyebrow{font-size:9px}h1{font-size:30px}.title-leaf svg{width:25px}.subtitle{font-size:11px;margin-top:10px}.heading-actions{width:100%;justify-content:space-between;gap:7px}.button{padding:10px 13px;font-size:10px}.stats{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:19px}.stats>div{flex-wrap:nowrap;padding:12px 11px}.stats span{font-size:8px;line-height:1.5;flex-basis:auto;flex:1}.stats strong{font-size:24px}.stats svg{width:16px;height:16px}.panel-toolbar{flex-direction:column;align-items:stretch;gap:9px}.search{width:100%}.tree-filters{max-width:none;width:100%}.tree-filters select{width:50%;max-width:none;margin-top:0}.tree-caption{padding:12px 15px 0;font-size:9px}.tree-viewport{height:410px}.tree-bottom{padding:10px;gap:4px}.tree-bottom>span{font-size:7px;gap:5px}.legend-line{width:13px}.legend-line.dotted{margin-left:2px}.zoom-controls button{padding:4px 6px;min-width:24px;font-size:9px}.below-tree{gap:10px;margin-top:13px}.below-tree>div{padding:15px 12px}.below-tree strong{font-size:12px}.below-tree small{font-size:8px}.below-tree button{font-size:8px}footer{font-size:8px;line-height:1.8}.footer-right{display:none}.record-grid{grid-template-columns:1fr}.record-card{padding:22px}.timeline-item{grid-template-columns:65px 20px 1fr}.time-date{font-size:13px;padding-right:8px}.timeline-card{padding:17px}.timeline-card h3{font-size:18px}.timeline-card p{font-size:11px}.notice{font-size:9px;padding:10px}.notice button{font-size:9px}.inspector{width:100%;max-width:430px;inset:0 0 0 auto}.inspector-top{padding:16px}.pane-body{padding:22px}.profile-head{padding-bottom:17px}.profile-head h2{font-size:26px}.pane-footer{padding-bottom:max(17px,env(safe-area-inset-bottom))}.access-card{padding:23px}.access-card h2{font-size:22px}.review-card{padding:20px;gap:12px}.review-card>div:first-child{flex-basis:100%}.review-actions{flex-wrap:wrap}.form-row{grid-template-columns:1fr;gap:0}dialog{padding:23px;max-height:94dvh}.dialog-header h2{font-size:24px}.dialog-header p{font-size:11px}.member-row{flex-wrap:wrap}.member-row select{margin-top:0}.inspector .record-card{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Interactive map: camera padding is calculated from the visible viewport. */
.tree-viewport{touch-action:none;user-select:none;-webkit-user-select:none}
.tree-viewport.dragging,.tree-viewport.dragging *{cursor:grabbing}
.tree-space{min-width:0;margin:0}
.tree-canvas{position:absolute;margin:0}
.connections{width:100%;height:100%;overflow:visible}
.person-card{width:240px;height:124px;padding:14px;gap:12px}
.person-card .avatar{width:44px;height:44px;flex-shrink:0}
.person-copy strong{font-size:14px;line-height:1.35;overflow:visible;overflow-wrap:anywhere}
.person-copy small{font-size:10px;line-height:1.4;margin-top:5px}
.person-copy>span{font-size:9px;margin-top:5px}
.person-card.my-person{border:2px solid #5d6182;background:#f5f5fa;box-shadow:0 0 0 4px #5d618212,0 6px 22px #26283212}
.self-label{position:absolute;top:-11px;left:14px;background:#5d6182;color:white;padding:3px 9px;border-radius:8px;font:10px/1.3 var(--sans);letter-spacing:.2px}
.personal-home{background:#efeff6;border:1px solid #dedfe9;color:#515774}
.tree-caption{padding-bottom:13px;line-height:1.5;flex-wrap:wrap}
.tree-caption>span:nth-child(2){max-width:75%;overflow-wrap:anywhere}
.private-preview{margin-top:12px}
.member-main{min-width:0;flex:1}
.member-main strong{display:block;overflow-wrap:anywhere}
.member-main label{font-size:10px;margin:8px 0 0;color:#818386}
.member-main select{width:100%;max-width:none;font-size:11px}
.member-row{align-items:flex-start}
@media(max-width:540px){.tree-caption>span:nth-child(2){max-width:calc(100% - 18px)}.tree-tools{gap:7px}.member-main{flex-basis:calc(100% - 50px)}.member-row>select{margin-left:44px;max-width:none}.person-copy strong{font-size:14px}}
@media(max-width:540px){main.map-page{display:flex;flex-direction:column}.map-page>.heading{order:1}.map-page>.workspace{order:2}.map-page>.stats{order:3;margin-top:18px;margin-bottom:0}.map-page>footer{order:4}}

/* Premium family archive. Local fonts also work from the offline shell. */
@font-face{font-family:Manrope;src:url('/fonts/Manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/fonts/CormorantGaramond.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{--background:#F4F0E7;--surface:#FAF8F3;--surface-secondary:#E9DFCE;--sidebar:#252C30;--sidebar-hover:#343B3E;--text-primary:#24231F;--text-secondary:#746D61;--gold:#B88A42;--gold-active:#C99A4A;--tree-line:#75613E;--border:#D6CBBB;--bg:var(--background);--paper:var(--surface);--accent:var(--text-primary);--accent-soft:#EFE7D9;--muted:var(--text-secondary);--ink:var(--text-primary);--line:var(--border);--shadow:0 4px 22px #332B1D05;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,'Segoe UI',sans-serif;font-family:var(--sans);color:var(--ink);background:var(--bg)}
body{background:var(--background);font-size:13px;line-height:1.5}
button{transition:background .18s,color .18s,box-shadow .18s;filter:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.tree-viewport:focus-visible{outline:2px solid #8C672B;outline-offset:3px}
.sidebar{width:236px;padding:32px 18px 20px;background:var(--sidebar);border:0;color:#EAE7E0;transition:width .2s}
.brand{margin:0 12px 44px;gap:11px}.brand-mark{width:34px;height:44px;color:#C99A4A}.brand-mark svg{width:33px;height:40px}
.brand>span:last-child{font-size:40px;line-height:1;color:#F4F0E7;letter-spacing:-1px}.brand small{font:9px/1.5 var(--sans);letter-spacing:1px;color:#B9B8B1;margin-top:9px}
.space-label{color:#A6AAA9;font-size:9px;letter-spacing:1.8px;padding:0 14px;margin-bottom:15px}
.sidebar nav{gap:4px}.nav-item{position:relative;color:#C8CCCA;min-height:48px;padding:12px 14px;border-radius:9px;font-size:12px;font-weight:500;gap:12px}
.nav-item:hover{background:var(--sidebar-hover);color:#FFF}.nav-item.active{background:var(--sidebar-hover);color:#F4F0E7;font-weight:600}
.nav-item.active:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:var(--gold-active);border-radius:2px}.nav-item.active svg{color:var(--gold-active)}
.nav-item b{background:#514634;color:#F4E8CE}.sidebar-note{padding:32px 14px 24px;color:#B5B8B3}.sidebar-note>svg{width:25px;height:30px;color:#AD9570;margin-bottom:10px}
.sidebar-note p{font:21px/1.35 var(--serif);color:#CBCDC5}.sidebar-note>span{font-size:10px;color:#A7ADA9;line-height:1.8;margin-top:9px}
.account{color:#E4E5DF;border-color:#41484A;padding-top:18px;min-height:62px}.account small{color:#AEB4AF;font-size:9px}.account>svg{color:#B2B7B2}.account>span:nth-child(2){font-size:11px}
.avatar,.tone-1,.tone-2,.tone-3{background:#E9E3D7;color:#6E6557;border:1px solid #D9CEBC;font:600 14px var(--sans)}
.account .avatar{background:#3B4244;color:#DFDDD6;border-color:#545B5B}.avatar.small{width:34px;height:34px;font-size:11px}.avatar.large{width:78px;height:78px;font-size:25px;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--border)}
.memorial{filter:grayscale(.8);opacity:.8;border-color:#D1C9BC!important}.memorial-note{background:#EFECE5;color:#6E685D;border-color:#A89B86;font:18px var(--serif)}
main{margin-left:236px;padding:0 clamp(24px,3vw,56px) 22px;transition:margin-left .2s}
.topbar{height:72px;border-color:#DED5C7;justify-content:flex-start;gap:14px}.breadcrumb{font-size:10px;color:var(--muted);flex:1}.breadcrumb span{color:#998D78}
.top-actions{gap:14px}.connection{font-size:10px;color:#686E65}.connection.offline{color:#806535}.icon-button{width:44px;height:44px;border-radius:12px;color:#6D665B;border-color:var(--border);font-size:13px}
.sidebar-toggle{width:38px;height:38px;border:0;border-radius:8px}.sidebar-toggle svg{width:19px;height:19px}.owner-toggle{min-height:44px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:9px;padding:8px 12px;font-size:10px}
.owner-toggle.active{background:#EBDFC9;color:#5C4827;border-color:#BFA47B}.heading{padding:28px 0 22px;align-items:center}.eyebrow{color:var(--muted);font:500 10px/1.6 var(--sans);letter-spacing:1.3px}.heading .eyebrow{margin-bottom:7px}
h1{font:500 clamp(36px,3vw,46px)/1.08 var(--serif);color:var(--text-primary);letter-spacing:-.5px;gap:15px}.title-leaf svg{color:#AA9065;width:28px;height:30px;transform:none}
.subtitle{font-size:12px;line-height:1.8;color:var(--text-secondary);margin-top:9px}.heading-actions{gap:9px}.button{min-height:44px;padding:10px 15px;border-radius:9px;font-size:11px;line-height:1.5;font-weight:600;transition:background .18s,box-shadow .18s,transform .18s}
.button.primary{background:var(--gold);border-color:var(--gold);color:#221D14;box-shadow:0 3px 10px #9A6E2F12}.button.primary:hover{background:var(--gold-active);border-color:var(--gold-active);box-shadow:0 4px 14px #9A6E2F1A}
.button.secondary,.personal-home{background:var(--surface);color:#514B40;border:1px solid var(--border)}.button.secondary:hover,.personal-home:hover{background:#EEE7D9;border-color:#BFAF94}.button svg{width:17px;height:17px}
.stats{gap:12px;margin-bottom:20px}.stats>div{background:var(--surface);border:1px solid #E0D7C9;border-radius:12px;padding:12px 16px;min-height:60px;gap:11px;box-shadow:none}
.stats strong{font:500 27px/1 var(--serif);color:var(--text-primary)}.stats span{font-size:10px;color:var(--text-secondary)}.stats svg{width:18px;height:18px;color:#99825B}
.tree-tools{gap:8px;margin-bottom:14px}.tree-tools .button{font-size:10px;min-height:44px;padding:9px 13px}.tree-tools .personal-home{color:#59492F;border-color:#C9B596;background:#F3ECDF}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.tree-panel{overflow:visible}
.panel-toolbar{padding:14px 18px;gap:16px;border-bottom:1px solid #E4DCCF;flex-direction:row;align-items:center}
.person-search{position:relative;flex:1;max-width:390px;min-width:160px}.search{margin:0;width:100%;color:#877862;gap:9px}.search input{font-size:11px;color:var(--text-primary);min-height:44px;margin:0;background:transparent;padding:8px 4px;border-radius:5px}
input::placeholder,textarea::placeholder{color:#807869}.search-results[hidden]{display:none}.search-results{position:absolute;top:calc(100% + 8px);left:-8px;right:0;min-width:300px;max-height:330px;overflow-y:auto;z-index:16;border:1px solid var(--border);background:var(--surface);box-shadow:0 12px 32px #31291C18;border-radius:12px;padding:6px}
.search-results button{display:flex;align-items:center;width:100%;text-align:left;gap:10px;background:transparent;border-radius:8px;padding:10px;min-height:58px}.search-results button:hover,.search-results button[aria-selected=true]{background:#EEE5D6}.search-results button>span:nth-child(2){flex:1;min-width:0}.search-results strong{font-size:11px;display:block;font-weight:600;overflow-wrap:anywhere}.search-results small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.search-results svg{width:15px;color:#978464}.search-results p{font-size:11px;color:var(--muted);padding:12px}
.map-tabs{display:flex;align-items:center;gap:3px;background:#F0EBE1;border:1px solid #E1D7C7;border-radius:10px;padding:3px;flex-shrink:0}.map-tabs button{background:transparent;border-radius:7px;font-size:10px;min-height:38px;padding:8px 12px;color:#746B5A;white-space:nowrap}.map-tabs button[aria-pressed=true]{background:var(--surface);color:#3D3425;box-shadow:0 1px 6px #30271910}.map-tabs button:hover{color:var(--text-primary);background:#E9DFCE}
.tree-filter-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px;border-bottom:1px solid #E6DDD0}.tree-caption{padding:0;font-size:10px;gap:8px;min-width:0;flex:1;line-height:1.6}.tree-caption>span:nth-child(2),.tree-caption>span:last-child{font-size:10px;color:var(--text-secondary);max-width:none;margin-left:0;overflow-wrap:anywhere}.live-dot{width:5px;height:5px;background:#839079;flex-shrink:0}
.tree-filters{max-width:380px;flex-shrink:0;gap:8px;width:auto}.tree-filters select{margin:0;min-height:44px;padding:8px 10px;font-size:10px;background:var(--surface);border:1px solid #DED3C1;color:#655A48;max-width:220px;border-radius:8px;width:auto}
.map-stage{position:relative;overflow:hidden;background:#F8F5EE}.tree-viewport{height:clamp(430px,51vh,620px);background-color:#F8F5EE;background-image:radial-gradient(#BDB09C42 .7px,transparent .7px);background-size:24px 24px;overflow:hidden;overscroll-behavior:auto;touch-action:none;scrollbar-width:none;outline-offset:-4px!important}
.tree-space{margin:0;min-width:0}.tree-canvas{position:absolute;margin:0;transform-origin:top left}.generation-label{color:#8B7D68;font:500 10px var(--sans);letter-spacing:1px;left:24px}
.connections path{stroke:var(--tree-line);stroke-width:1.2;fill:none;stroke-linecap:round;stroke-dasharray:none;animation:branch-grow .6s ease-out}
.connections .parent-line.adoptive{stroke:#6D7B82;stroke-dasharray:6 4}.connections .parent-line.step{stroke:#8D816A;stroke-dasharray:2 4}.connections .spouse-line{stroke:#AD8850;stroke-dasharray:3 4;stroke-width:1.2;animation:fade-in .3s ease}.connections .spouse-line.former{stroke:#94846D;stroke-dasharray:7 5}.connections .selected-edge{stroke-width:2!important}.connections path.arrow-head{fill:#75613E;stroke:none;animation:none}
.person-card{width:256px;height:152px;padding:17px 16px;gap:12px;border-radius:16px;background:var(--surface);border:1px solid #D8CFBF;box-shadow:0 3px 12px #3A302009;text-align:left;animation:person-grow .3s both;animation-delay:var(--arrival,0ms)!important;transition:box-shadow .18s,border-color .18s,opacity .18s,transform .18s}
.person-card:hover{border-color:#B9A580;box-shadow:0 7px 20px #5B452517;transform:translateY(-2px)}.person-card .avatar{width:50px;height:50px;font-size:15px;align-self:center}
.person-copy{min-width:0}.person-copy strong{font:600 13px/1.45 var(--sans);color:var(--text-primary);white-space:normal;text-overflow:clip;overflow:visible;overflow-wrap:anywhere}.person-copy small{font:400 10px/1.5 var(--sans);color:#776F62;margin-top:7px}.person-copy>span{font:500 10px/1.5 var(--sans);color:#78643F;margin-top:6px;white-space:normal;overflow:visible}
.person-card.my-person{background:var(--surface);border:1px solid #B88A42;box-shadow:0 0 0 3px #B88A420D,0 4px 18px #A0783711}.person-card.chosen,.person-card.kinship-focus{background:var(--surface);border:1px solid #B88A42;box-shadow:0 0 0 3px #B88A4220,0 6px 22px #7F603119}
.self-label{position:absolute;top:-10px;left:15px;font:600 9px/1.4 var(--sans);padding:3px 8px;color:#71552B;background:#F2E5CE;border:1px solid #D7BC8C;border-radius:6px;letter-spacing:0}
.gender-marker{position:absolute;right:12px;top:12px;width:5px;height:5px;border-radius:50%;background:#6D7B82}.gender-marker.female{background:#866D6B}
.person-card.dimmed{opacity:.22}.person-hint{position:absolute;bottom:calc(100% + 15px);left:50%;transform:translateX(-50%);min-width:190px;max-width:260px;padding:11px 13px;background:#293034;color:#F4F0E7;border:0;border-radius:10px;box-shadow:0 5px 20px #2D251A20;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s;z-index:6}
.person-hint small{display:block;font:500 8px/1.5 var(--sans);letter-spacing:1px;color:#CBC6BA}.person-hint b{display:block;margin-top:5px;font:500 11px/1.5 var(--sans)}.person-card:hover .person-hint,.person-card:focus-visible .person-hint{opacity:1;visibility:visible}
.relative-add{width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid #CDBB9B;color:#8C6C37;box-shadow:0 3px 10px #46351C12;opacity:0;pointer-events:none;transform:scale(.9);transition:opacity .15s,transform .15s;z-index:4}.relative-add svg:first-child,.relative-add svg:last-child{width:19px;height:19px}.person-card:hover+.relative-add,.person-card:focus-visible+.relative-add,.person-card.chosen+.relative-add,.relative-add:hover,.relative-add:focus-visible{opacity:1;pointer-events:auto;transform:scale(1)}.relative-add:hover{background:#EFE4D0;transform:scale(1.03)}
.relation-label{position:absolute;transform:translate(-50%,-50%);padding:2px 7px;border:0;background:#F8F5EEDD;box-shadow:none;border-radius:4px;font:500 10px/1.4 var(--sans);color:#796849;white-space:nowrap;z-index:1;animation:fade-in .25s ease}.relation-label .pair-symbol{font-size:13px;margin-right:4px;color:#A2824F}.relation-label.child{color:#76603B}.relation-label.parent{font-size:9px;color:#827358}.relation-label.child.adoptive,.relation-label.child.step{color:#6F7370}.relation-label.pair:hover{background:#EEE4D3}
.tree-bottom{padding:9px 16px;border-top:1px solid #E4DCCF;gap:12px;background:var(--surface);border-radius:0 0 16px 16px;flex-wrap:wrap}.tree-bottom>span{font-size:9px;color:var(--text-secondary);gap:7px}.tree-bottom .map-help{margin-left:auto;font-size:9px;color:#746D61}.legend-line{width:20px;border-color:#75613E}.legend-line.dotted{border-color:#AD8850;margin-left:10px}.zoom-controls{border:1px solid #D8CCB8;border-radius:9px;flex-shrink:0;background:var(--surface)}.zoom-controls button{width:44px;height:44px;background:transparent;font-size:19px;padding:0;color:#6F5A38}.zoom-controls output{display:grid;place-items:center;min-width:54px;font:500 10px var(--sans);color:#66583F;border-left:1px solid #E2D7C5;border-right:1px solid #E2D7C5}.zoom-controls button:hover{background:#ECE2D1}
.minimap{position:absolute;right:15px;bottom:15px;width:178px;min-height:112px;border:1px solid #CFC3AE;border-radius:10px;background:#FAF8F3EB;box-shadow:0 3px 15px #2F251712;padding:0;overflow:hidden;z-index:5;backdrop-filter:blur(6px)}.minimap svg{display:block;width:176px;height:96px}.minimap rect{fill:#B7AA91}.minimap .mini-self{fill:#B88A42}.minimap .mini-window{fill:#B88A4214;stroke:#967138;stroke-width:1.3;vector-effect:non-scaling-stroke}.minimap span{display:block;font-size:8px;color:#7B6C53;padding:0 0 5px}
.generation-list{padding:22px;background:#F8F5EE;border-radius:0 0 16px 16px}.generation-list>section+section{margin-top:28px}.generation-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-size:11px;font-weight:600;color:#786541}.generation-heading small{font-size:10px;color:#877D6E;font-weight:400}.generation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(256px,1fr));gap:22px}.generation-person{position:relative}.generation-person .person-card{position:relative;width:100%}.generation-person .relative-add{right:-10px;bottom:-10px}
.below-tree{gap:16px;margin-top:18px}.below-tree>div{background:transparent;border:1px solid #DED4C3;border-radius:12px;padding:15px 17px;gap:11px}.below-tree>div>svg{color:#A28B63;width:22px;height:22px}.below-tree strong{font:600 11px var(--sans);color:#695C47}.below-tree small{font:400 10px/1.6 var(--sans);color:#746D61;margin-top:5px}.below-tree button{min-height:44px;font-size:10px;color:#80622F}
footer{font-size:9px;color:#7B7365;padding-top:22px}.notice{background:#EEE4D0;border-color:#D9C9A9;color:#6F5732;border-radius:10px;font-size:11px}.notice button{min-height:44px;color:#6D5127}.demo-notice{background:#EEE9DF;border-color:#DCD3C4;color:#746D61}.owner-banner{background:#EAE1CF;color:#66512F}.pending-person{border-style:dashed}.pending-panel{background:#F2EAD9;border:1px solid #D9C6A4;color:#6C593C;border-radius:10px;padding:14px}.pending-panel p{font-size:12px;line-height:1.7;margin-bottom:12px}
.tree-empty{background:#F8F5EE}.tree-empty .empty{padding:56px 24px 34px;max-width:640px}.empty-branches{display:grid;place-items:center;margin:0 auto 23px;width:160px;height:98px;background:radial-gradient(#EDE4D3,transparent 70%)}.empty-branches svg{width:102px;height:88px;stroke-width:.8;color:#B8A17A;opacity:.7}.tree-empty .empty .eyebrow{font-size:9px;margin:0 0 14px;color:#8A7758;letter-spacing:1.8px}.empty h2{font:500 35px/1.15 var(--serif);color:var(--text-primary)}.empty p{font-size:12px;color:var(--text-secondary);line-height:1.9}.empty .button{margin:0 5px 10px}.starter-note{font-size:10px;color:#80735E;margin:0 15px 27px}.starter-note svg{color:#9B835A}
.record-card,.timeline-card,.access-card,.review-card{background:var(--surface);border-color:var(--border);border-radius:14px;box-shadow:var(--shadow)}.record-card h3,.timeline-card h3,.review-card h3{font:500 26px/1.2 var(--serif);color:var(--text-primary)}.record-card p,.timeline-card p,.access-card p,.place-map p:last-child{color:var(--text-secondary);font-size:12px}.record-meta,.record-card .owners{color:#7C705D;font-size:11px}.record-icon{background:#EEE5D5;color:#8C7346}.record-card .eyebrow{color:#807056}.record-card:hover{border-color:#BDA983}.badge{font-size:10px;color:#70572D;border-color:#D8C7A6;background:#EEE3CF}.badge.documented{color:#59624E;border-color:#C9CEBC;background:#E9ECDD}.badge.hypothesis{color:#606D75;border-color:#CDD3D5;background:#E8ECEC}.badge.disputed{color:#815F55;border-color:#D9C7BB;background:#F0E7DE}
.time-date{font:500 21px var(--serif);color:#85714B}.time-dot:before{border-color:#B89B65;background:var(--background)}.time-dot:after{background:var(--border)}.place-map{background:#EEE6D8}.place-map>svg{background:#E8E1D4}.place-map h2,.access-card h2{font:500 28px/1.2 var(--serif);color:var(--text-primary)}.access-card>svg{color:#A28C66}.access-card p{color:#746D61}.member-row{border-color:#E2D8C7}.member-main label{color:#746D61}.member-main select{font-size:11px}.hint{color:var(--muted)!important}.review-card .eyebrow{color:var(--muted)}
.inspector{width:390px;background:var(--surface);border-color:var(--border);box-shadow:-12px 0 40px #30281918;animation:slide-in .2s ease}.inspector-scrim{background:#252C3020;backdrop-filter:blur(2px)}.inspector-top{padding:18px 22px}.profile-head{background:radial-gradient(ellipse at 50% 10%,#EDE4D3,transparent 72%);padding:5px 24px 20px}.profile-head h2{font:500 29px/1.15 var(--serif);color:var(--text-primary)}.profile-head>p{color:var(--muted);font-size:11px}.pane-tabs{border-color:var(--border);gap:2px}.pane-tabs button{min-height:44px;color:#746D61;font-size:10px;padding:12px 8px}.pane-tabs button.active{color:#77572B;border-color:var(--gold)}.pane-body{padding:24px}.detail>span{color:#857660;font-size:10px}.detail>p{color:#4A453B;font-size:12px}.unknown{color:#857A68}.section-title{font:500 24px var(--serif);color:var(--text-primary);border-color:var(--border)}.relation{background:#F0EADF;border-color:#DED2BE;min-height:52px;color:#4B463B}.relation small{display:block;margin-top:4px;font-size:10px;color:#7D6C4F}.source-link{color:#7C6135;min-height:44px}.pane-footer{padding:15px 18px;border-color:var(--border);flex-wrap:wrap}.pane-footer .button{font-size:10px;padding:9px 11px}.pane-footer .icon-button{margin-left:auto}.danger{color:#89685B}.danger-button{background:#8B6558;color:#FFF}
dialog{background:var(--surface);border-color:var(--border);border-radius:18px;padding:28px;box-shadow:0 18px 65px #2E261D25;animation:dialog-enter .18s ease}dialog::backdrop{background:#252C3048;backdrop-filter:blur(4px)}.dialog-header h2{font:500 32px/1.15 var(--serif);color:var(--text-primary)}.dialog-header p,.dialog-text{color:var(--text-secondary);font-size:12px}.dialog-actions{border-color:var(--border)}label{color:#6F6452;font-size:11px}input,textarea,select{background:#FDFBF7;border-color:#D8CCB9;color:#383329;border-radius:9px;font-size:12px;min-height:44px;padding:10px 12px}.multi{border-color:#DCD0BD}.multi legend{color:#76664D}.checkbox{color:#625A4D;min-height:36px;display:flex;align-items:center;gap:8px}.checkbox input{min-height:18px;width:18px;height:18px;margin:0;accent-color:#B88A42}.form-error{color:#8B5143}details{color:#6A604E}summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:#76613F;font-size:11px}.relative-choices{gap:7px}.relative-choices button{min-height:65px;background:#F3EEE4;border-color:#DDD1BD;border-radius:10px;padding:13px 15px}.relative-choices button:hover{background:#EBE0CD}.relative-choices strong{font:600 12px var(--sans);color:#514531}.relative-choices small{font-size:10px;color:#80735F}.relative-choices svg{color:#A08659}.kin-result{background:#F1E9DA;border-color:#DCCBAD}.kin-result h3{font:500 27px var(--serif);color:#65512D}.kin-result p{color:#746D61}.kin-chain>span{background:var(--surface);border-color:var(--border);color:#665A47}.old-value{color:#857866}#toast{background:#293034;color:#F4F0E7;border-radius:12px;font-size:12px}
.sidebar-collapsed .sidebar{width:76px;padding:28px 12px}.sidebar-collapsed main{margin-left:76px}.sidebar-collapsed .brand{margin:0 auto 32px;justify-content:center}.sidebar-collapsed .brand>span:last-child,.sidebar-collapsed .space-label,.sidebar-collapsed .nav-item>span,.sidebar-collapsed .nav-item b,.sidebar-collapsed .sidebar-note,.sidebar-collapsed .account>span:nth-child(2),.sidebar-collapsed .account>svg{display:none}.sidebar-collapsed .nav-item{justify-content:center;padding:12px}.sidebar-collapsed .account{justify-content:center;margin-top:auto}
@media(min-width:1750px){main{padding-left:56px;padding-right:56px}.heading{padding-top:34px;padding-bottom:26px}.stats>div{min-height:64px}.tree-viewport{height:570px}}
@media(max-width:1200px){main{padding:0 24px 20px}.sidebar{width:210px;padding-left:13px;padding-right:13px}main{margin-left:210px}.heading{align-items:flex-start;gap:15px}.heading-actions{flex-direction:column;align-items:stretch}.stats>div{padding:11px 12px;gap:8px}.stats span{font-size:9px}.panel-toolbar{gap:10px}.map-tabs button{padding:8px 9px}.tree-filter-row{gap:10px}.tree-filters select{max-width:190px}.below-tree button{font-size:9px}}
@media(max-width:1000px){.sidebar{width:76px;padding:24px 12px}.brand{margin:0 auto 32px;justify-content:center}.brand>span:last-child,.space-label,.nav-item>span,.nav-item b,.sidebar-note,.account>span:nth-child(2),.account>svg{display:none}.nav-item{justify-content:center;padding:12px}.account{justify-content:center;margin-top:auto}.sidebar nav{flex-direction:column}main{margin-left:76px;padding:0 22px 20px}.top-actions{gap:8px}.heading-actions{flex-direction:row}.heading{flex-wrap:wrap}.heading-actions{width:auto}.panel-toolbar{align-items:stretch;flex-wrap:wrap}.person-search{max-width:none;min-width:230px}.tree-filter-row{flex-wrap:wrap}.tree-filters{max-width:none}.below-tree{grid-template-columns:1fr}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-grid{grid-template-columns:1fr}.sidebar-toggle{display:none}.tree-viewport{height:500px}.tree-bottom .map-help{display:none}}
@media(max-width:650px){.sidebar,.sidebar-collapsed .sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;padding:5px 5px max(5px,env(safe-area-inset-bottom));border:0;border-top:1px solid #454C4D;z-index:20}.sidebar .brand,.sidebar .account{display:none}.sidebar nav{flex-direction:row;gap:2px;width:100%;justify-content:space-around}.nav-item{flex:1;min-height:49px;max-width:60px;padding:10px 6px;border-radius:8px}.nav-item svg{width:20px;height:20px}.nav-item.active:before{inset:2px 15px auto;width:auto;height:2px}.sidebar-collapsed .nav-item{padding:10px 6px}main,.sidebar-collapsed main{margin:0;padding:0 15px 86px}.topbar{height:62px;gap:6px}.breadcrumb{font-size:9px}.breadcrumb span{margin:0 6px}.connection{font-size:0}.connection svg{width:16px;height:16px}.owner-toggle{font-size:9px;min-height:44px;padding:7px 9px;gap:5px}.owner-toggle svg{width:15px;height:15px}.top-actions{gap:5px}.top-actions .icon-button{width:40px;height:44px}.heading{padding:24px 0 19px;gap:18px}.heading .eyebrow{font-size:9px}h1{font-size:37px}.subtitle{font-size:11px;max-width:310px}.heading-actions{width:100%;gap:9px;justify-content:space-between;flex-direction:row}.heading-actions .button{font-size:10px;padding:10px 12px}.map-page>.heading{order:1}.map-page>.stats{order:2;margin:0 0 17px}.map-page>.workspace{order:3}.stats{grid-template-columns:repeat(2,1fr);gap:9px}.stats>div{padding:11px 12px;min-height:58px;gap:8px}.stats strong{font-size:25px}.stats span{font-size:9px;line-height:1.6}.stats svg{width:16px;height:16px}.tree-tools{gap:6px}.tree-tools .button{font-size:9px;min-height:44px;padding:8px 10px}.panel-toolbar{padding:10px 12px;flex-direction:column;gap:9px}.person-search{min-width:0;width:100%}.map-tabs{width:100%;justify-content:space-between;gap:0}.map-tabs button{font-size:9px;padding:9px 10px;min-height:38px;flex:1}.search-results{min-width:0;left:0;right:0}.tree-filter-row{padding:11px 12px;gap:9px}.tree-caption{font-size:9px}.tree-caption>span:nth-child(2){font-size:9px}.tree-filters{width:100%;gap:7px}.tree-filters select{width:50%;max-width:none;font-size:9px;padding:8px}.tree-viewport{height:440px}.tree-bottom{padding:9px 10px;gap:5px;flex-wrap:nowrap}.tree-bottom>span{font-size:8px;gap:4px}.legend-line{width:13px}.legend-line.dotted{margin-left:5px}.zoom-controls button{width:38px;height:44px;font-size:18px}.zoom-controls output{min-width:44px;font-size:9px}.below-tree{gap:10px;margin-top:14px}.below-tree>div{padding:14px 12px}.below-tree strong{font-size:10px}.below-tree small{font-size:9px}.below-tree button{font-size:9px;max-width:100px}.below-tree>div>svg{width:19px}.tree-empty .empty{padding:42px 18px 27px}.empty h2{font-size:31px}.empty p{font-size:11px}.empty .button{display:flex;width:100%;margin:0 0 10px}.starter-note{font-size:9px;line-height:1.6;text-align:center}.record-grid{grid-template-columns:1fr}.record-card h3{font-size:25px}.place-map{grid-template-columns:1fr}.inspector{width:100%;max-width:430px}.inspector .icon-button{width:44px;height:44px}.inspector-top{padding:15px 19px}.pane-body{padding:21px}.pane-footer{padding-bottom:max(17px,env(safe-area-inset-bottom))}.notice{font-size:10px;line-height:1.7;flex-wrap:wrap}.notice button{font-size:10px}.form-row{grid-template-columns:1fr;gap:0}dialog{padding:22px;max-height:94dvh}.dialog-header h2{font-size:28px}.generation-list{padding:21px 16px}.generation-grid{grid-template-columns:1fr;gap:23px}.minimap{width:142px;min-height:90px;right:9px;bottom:9px}.minimap svg{width:140px;height:76px}.minimap span{font-size:8px}footer{font-size:9px;line-height:1.7}.member-row{flex-wrap:wrap}}
.tree-caption>span:nth-child(2){display:inline}

.map-tabs button{min-height:44px}.sidebar-toggle{width:44px;height:44px}.checkbox{min-height:44px}.tree-bottom .map-legend{flex:1;flex-wrap:wrap}.relation-label.pair:after,.relation-label.pair-former:after{content:'';position:absolute;inset:-15px -6px}
@media(max-width:650px){.zoom-controls button{width:44px}.map-tabs button{min-height:44px}.map-page>.workspace{order:2}.map-page>.stats{order:3;margin-top:18px;margin-bottom:0}.heading{padding:21px 0 17px;gap:12px}}
@media(hover:none){.person-hint{display:none}.person-card.chosen+.relative-add{opacity:1;pointer-events:auto;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Readable controls and family features; keep the established parchment palette. */
body{font-size:16px}label,input,textarea,select,.dialog-text,.dialog-header p{font-size:16px;line-height:1.6}.button,.tree-tools .button,.owner-toggle{font-size:15px}.nav-item>span{font-size:15px}.brand>span:last-child{font-size:27px}.subtitle,.hint,.notice,.detail p,.review-card p{font-size:15px;line-height:1.7}.person-copy strong{font-size:15px}.person-copy small,.person-copy>span{font-size:12px}.search input,.tree-filters select{font-size:15px}.search-results strong{font-size:15px}.search-results small{font-size:13px}.detail .relation{display:flex;width:100%;margin:8px 0;align-items:center;gap:10px;text-align:left}.detail .relation>span:nth-child(2){flex:1;display:block;min-width:0;line-height:1.6}.detail .relation small{display:block}.detail>p:has(.relation){display:flex;flex-direction:column;gap:7px}.kinship-summary{display:flex;flex-direction:column;gap:8px}.kinship-summary strong{line-height:1.6}.pane-tabs{overflow-x:auto}.pane-tabs button{font-size:14px;white-space:nowrap;min-height:48px}.pane-footer .button{font-size:14px}.stats span,.account small{font-size:12px}.breadcrumb{font-size:13px}.map-tabs button{font-size:13px}.admin-grid{display:grid;gap:22px}.admin-section{padding:24px}.admin-request{padding:18px 0;border-bottom:1px solid var(--border)}.admin-request:last-child{border-bottom:0}.admin-request h3{font-size:21px;margin:10px 0}.admin-request p{overflow-wrap:anywhere;line-height:1.7}.comparison{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed;margin:16px 0}.comparison th,.comparison td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:10px;overflow-wrap:anywhere}.comparison thead{background:#f3ecdf}.conflict-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.conflict-columns pre{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:400px;overflow:auto}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.gallery-tile{display:flex;flex-direction:column;gap:8px;text-align:left;background:#f8f5ee;border:1px solid var(--border);border-radius:12px;padding:10px;overflow-wrap:anywhere}.gallery-tile img{width:100%;height:150px;object-fit:cover;border-radius:8px}.gallery-tile strong{font-size:14px}.gallery-tile small{font-size:13px}.video-placeholder{display:grid;place-items:center;height:110px;background:#2f3841;color:white;border-radius:8px}.media-viewer img,.media-viewer video{width:100%;max-height:65vh;object-fit:contain;background:#212629;border-radius:10px}.chat-panel{padding:24px;max-width:1000px}.chat-message{padding:16px;margin:14px 0;border:1px solid var(--border);border-radius:12px;background:#f8f5ee}.chat-message.own{background:#f4e8ce}.chat-message>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.chat-message p{white-space:normal;overflow-wrap:anywhere;margin:12px 0;line-height:1.7}.chat-message time{font-size:13px;color:var(--muted)}#chat-messages{max-height:55vh;overflow:auto;overscroll-behavior:contain}.text-button{min-height:44px;background:transparent;color:#725231;text-decoration:underline;font-size:14px}.login-funnel{position:fixed;inset:0;z-index:90;pointer-events:none;display:grid;place-items:center;background:radial-gradient(ellipse,transparent 15%,#2f384188 60%,#9f6f36aa);animation:funnel-pass .9s ease-in forwards}.login-funnel>div{font:180px var(--serif);color:#bd8739}.login-funnel button{pointer-events:auto;position:absolute;bottom:20px}.registration-status p{margin:6px 0}
@keyframes funnel-pass{0%{transform:scale(1);opacity:.7}100%{transform:scale(3);opacity:0}}
@media(max-width:650px){label,input,select,textarea{font-size:16px}.button,.heading-actions .button,.tree-tools .button,.owner-toggle{font-size:14px}.subtitle,.hint,.notice{font-size:14px}.search input,.tree-filters select{font-size:15px}.nav-item{display:flex;flex-direction:column;gap:4px;max-width:none}.nav-item>span{display:block;font-size:10px;line-height:1.2}.nav-item b{position:absolute;top:2px;right:2px;display:block}.stats span{font-size:11px}.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:8px 0}.breadcrumb{font-size:12px}.top-actions{margin-left:auto}.admin-section,.chat-panel{padding:16px}.comparison{font-size:12px}.comparison td,.comparison th{padding:6px}.conflict-columns{grid-template-columns:1fr}.gallery-grid{gap:8px}.pane-body{padding:18px}.connection{font-size:0}}

.connections .sibling-line{stroke:#6D7B82;stroke-dasharray:4 3}.relation-label.siblings{background:#f7f5ef;color:#46565e;border:1px solid #bec8cb;padding:4px 7px;border-radius:6px;font-size:12px}

.detail-value{margin-top:8px;font-size:15px;line-height:1.7;color:var(--text-secondary)}.detail-value:has(.relation){display:flex;flex-direction:column;gap:8px}.mobile-filter-toggle{display:none}.person-hint{z-index:3}
@media(max-width:650px){.tree-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tree-tools .button{font-size:13px;padding:8px;line-height:1.4;min-width:0}.tree-tools .button svg{width:16px}.map-page .heading{gap:10px}.map-page .subtitle{display:none}.mobile-filter-toggle{display:block;background:#f7f2e9;border-top:1px solid var(--border);padding:10px 14px;min-height:44px;width:100%;text-align:left;font-size:14px}.tree-filter-row{display:none}.tree-filter-row.show-filters{display:flex}.map-tabs button{font-size:12px}.person-hint{display:none}.tree-viewport{height:460px}.nav-item>span{max-width:60px;overflow-wrap:break-word}}
.archive-preview dt{font-weight:700;margin-top:14px}.archive-preview dd{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.unlinked-label{position:absolute;color:var(--muted);font-size:16px;font-weight:600}
/* Family map: relationship colours and selection are independent of the camera. */
.family-scopes{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border)}.family-scopes .button{min-height:44px;padding:8px 13px;font-size:13px}.family-scopes .active{background:#e9efe9;border-color:#6c8674;color:#335244}.map-selection{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 16px;background:#f3f0e8;border-top:1px solid var(--border)}.map-selection>div:first-child{min-width:0}.map-selection strong{font-size:16px}.map-selection p{font-size:12px;line-height:1.6;color:var(--muted);margin:5px 0 0;max-width:950px;overflow-wrap:anywhere}.selection-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}.selection-actions .button{font-size:13px;min-height:44px}.empty-selection{font-size:14px;color:var(--muted)}.tree-viewport{height:600px}.connections path.parent-line{stroke-width:2.7}.connections path.spouse-line{stroke-width:2}.connections path.current{stroke-dasharray:none}.connections path.former{stroke-dasharray:7 5}.connections path.sibling-line{stroke-width:2;stroke-dasharray:3 5}.connections .edge-halo{stroke:#f8f5ee;stroke-width:8;fill:none}.connections .family-junction{stroke:#f8f5ee;stroke-width:2}.connections .selected-edge{stroke-width:4!important;opacity:1}.connections .muted-edge{opacity:.14}.connections .family-junction.muted-edge{opacity:.2}.person-card.family-related{border-color:#729080;box-shadow:0 0 0 2px #72908022}.person-card.family-muted{opacity:.6}.person-card.chosen{border:2px solid #507963;box-shadow:0 0 0 4px #50796322}.relation-label{display:none;font-size:12px;pointer-events:none;z-index:2}.relation-label.visible-label{display:block}.relation-label.pair{pointer-events:auto;padding:3px 8px;max-width:250px;white-space:normal;text-align:center}.relation-label.siblings{white-space:normal;max-width:280px;text-align:center}.collapsed-boundary{position:absolute;min-height:32px;padding:4px 10px;border:1px solid #b9cbbb;background:#edf3ed;color:#335b45;border-radius:7px;font-size:12px;z-index:4}.overview-details .relation-label{display:none!important}.overview-details .person-card .avatar,.compact-details .person-copy>span,.overview-details .person-copy small,.overview-details .gender-marker,.overview-details .self-label{display:none}.overview-details .person-copy strong{font-size:24px;line-height:1.18}.overview-details .person-hint{display:none}.person-hint{display:none}.person-card:hover{transform:none}.map-legend .family-color{border-color:#46795b}.legend-line.dotted{border-color:#7d776b; border-top-style:dashed}.tree-tools:empty{display:none}
@media(max-width:650px){.family-scopes{flex-wrap:nowrap;overflow-x:auto;padding:8px 10px;scrollbar-width:thin}.family-scopes .button{white-space:nowrap;flex-shrink:0;padding:8px 10px;font-size:12px}.map-selection{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.map-selection p{max-height:66px;overflow:auto}.selection-actions .button{font-size:12px;flex:1}.selection-actions{gap:6px}.tree-viewport{height:520px}.tree-bottom{flex-wrap:wrap}.tree-bottom .map-legend{font-size:10px}.tree-bottom .zoom-controls{margin-left:auto}.map-selection strong{font-size:14px}.minimap{width:116px;min-height:76px}.minimap svg{width:114px;height:62px}.tree-tools{display:flex;margin-bottom:10px}.tree-tools .button{font-size:12px}}

.connections path.parent-line,.connections path.spouse-line,.connections path.sibling-line,.connections .edge-halo{vector-effect:non-scaling-stroke}.overview-details .connections path.parent-line{stroke-width:1.3}.overview-details .connections path.spouse-line,.overview-details .connections path.sibling-line{stroke-width:1}.overview-details .connections .edge-halo{stroke-width:3}.connections .edge-halo{stroke-width:5;animation:none}.connections g:has(.muted-edge) .edge-halo{opacity:.12}

.relation-label.child{display:none!important}.relation-label.parents{background:#f8f5ee;padding:2px 6px;border-radius:4px}.map-legend .legend-line:not(.family-color){border-color:#7d776b}

.connections .muted-edge{opacity:.35}.person-card.family-muted{opacity:.72}.relation-label.pair{padding:3px 4px;line-height:1.25;overflow-wrap:normal}

.tree-canvas .person-copy strong{font-size:17px;line-height:1.25}.compact-details .person-card .avatar{display:none}.compact-details .person-copy strong{font-size:20px;line-height:1.2}.overview-details .person-copy strong{font-size:24px;line-height:1.18}

@media(max-width:700px){.map-stage .minimap{position:relative;right:auto;bottom:auto;display:block;margin:8px 16px 8px auto;width:114px;height:62px}.map-stage{display:flex;flex-direction:column}}

.connections path.parent-line,.connections path.spouse-line,.connections path.sibling-line,.connections .edge-halo{vector-effect:none}.connections path.parent-line{stroke-width:calc(2.4px * var(--map-stroke,1))}.connections path.spouse-line,.connections path.sibling-line{stroke-width:calc(1.5px * var(--map-stroke,1))}.connections .edge-halo{stroke-width:calc(4.2px * var(--map-stroke,1))}.connections .selected-edge{stroke-width:calc(3.4px * var(--map-stroke,1))!important}.overview-details .connections path.parent-line{stroke-width:calc(1px * var(--map-stroke,1))}.overview-details .connections path.spouse-line,.overview-details .connections path.sibling-line{stroke-width:calc(.8px * var(--map-stroke,1))}.overview-details .connections .edge-halo{stroke-width:calc(1.6px * var(--map-stroke,1))}.overview-details .connections .selected-edge{stroke-width:calc(1.4px * var(--map-stroke,1))!important}

/* Public guide uses the existing colours and locally bundled fonts. */
.guide-page{font:16px/1.75 var(--sans);color:var(--text-primary);background:var(--background)}
.guide-page [hidden]{display:none!important}
.guide-page a:focus-visible,.guide-page button:focus-visible,.guide-page textarea:focus-visible{outline:3px solid #7b622e;outline-offset:4px}
.guide-skip{position:absolute;left:16px;top:-100px;z-index:50;padding:12px 18px;background:var(--surface);border:1px solid var(--border)}
.guide-skip:focus{top:10px}
.guide-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px max(24px,calc((100vw - 1000px)/2));border-bottom:1px solid var(--border);background:var(--surface)}
.guide-brand{display:flex;align-items:center;gap:12px;color:var(--text-primary);text-decoration:none;flex-shrink:0}
.guide-brand>span{font:28px/1 var(--serif)}
.guide-brand small{display:block;font:9px/1.4 var(--sans);letter-spacing:1px;margin-top:6px;color:var(--text-secondary)}
.guide-page .guide-main{margin:0 auto;padding:48px 24px 32px;max-width:1000px;width:100%}
.guide-intro{max-width:800px;margin-bottom:28px}
.guide-page .eyebrow{font:600 11px/1.5 var(--sans);letter-spacing:1.8px;color:#76551f;margin-bottom:12px}
.guide-page h1{font:500 54px/1.08 var(--serif);letter-spacing:-.5px;max-width:760px;color:var(--text-primary);margin:0 0 22px;overflow-wrap:normal}
.guide-intro>p:last-child{font-size:18px;line-height:1.8;color:var(--text-secondary)}
.guide-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:36px}
.guide-options>a{display:flex;align-items:center;gap:16px;text-decoration:none;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;min-height:110px}
.guide-options>a:hover{background:#f0e8d9;border-color:#b6a27e}
.guide-number{display:grid;place-items:center;background:#eee1c9;color:#725016;border-radius:50%;width:40px;height:40px;flex-shrink:0;font:500 26px var(--serif)}
.guide-options strong{display:block;font-size:16px;line-height:1.5}
.guide-options small{display:block;font-size:12px;line-height:1.6;color:var(--text-secondary);margin-top:5px}
.guide-options>a>span:nth-child(2){flex:1}
.guide-section{padding:36px 44px;margin-bottom:24px;border-radius:14px;scroll-margin-top:20px;overflow-wrap:break-word}
.guide-page h2{font:500 38px/1.15 var(--serif);color:var(--text-primary);margin:0 0 24px}
.guide-page h3{font:500 30px/1.2 var(--serif);color:var(--text-primary);margin:36px 0 18px}
.guide-section p{font-size:16px;line-height:1.8;margin:0 0 16px;max-width:76ch}
.guide-steps{padding-left:26px;margin:0 0 22px;list-style:decimal}
.guide-steps>li{padding-left:10px;margin-bottom:24px;font-size:16px;line-height:1.7}
.guide-steps>li::marker{color:#76551f;font-weight:600}
.guide-steps strong{font-weight:650}
.guide-steps p{margin:7px 0 10px}
.guide-note{padding:18px 22px;background:#f1ebdf;border-left:3px solid var(--gold);border-radius:0 8px 8px 0;margin:24px 0}
.guide-note strong{font-size:15px}
.guide-note .badge{font-size:12px;margin-left:5px}
.guide-note p{font-size:15px;margin:6px 0 0}
.guide-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.guide-page .button{font-size:14px;line-height:1.6;min-height:48px;padding:11px 18px;text-decoration:none;white-space:normal;text-align:center}
.guide-telegram{background:#f0e8d8;border-color:#c9b891}
.guide-contact{display:inline-block;color:#6f4e1e;font:500 34px/1.4 var(--serif);text-decoration:underline;text-underline-offset:6px;margin:0 0 18px}
.guide-text-link{display:block;width:fit-content;color:#76551f;margin-top:18px;text-underline-offset:4px;font-size:14px;padding:6px 0}
.guide-checklist{list-style:disc;padding-left:24px;margin-bottom:24px}
.guide-checklist li{padding-left:5px;margin-bottom:12px;font-size:16px;line-height:1.7}
.guide-checklist li::marker{color:#967039}
.guide-template-label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}
.guide-page .guide-template{display:block;width:100%;max-width:100%;background:#f6f2e9;color:var(--text-primary);font:15px/1.75 var(--sans);padding:18px 20px;border:1px solid var(--border);border-radius:8px;resize:vertical;min-height:300px;white-space:pre-wrap}
.guide-section .guide-copy-status{font-size:14px;line-height:1.7;color:#355743;margin:14px 0 0}
.guide-copy-status:empty{display:none}
.guide-section .guide-small{font-size:13px;color:var(--text-secondary);margin:14px 0 0}
.guide-footer{max-width:952px;margin:0 auto;padding:22px 24px 36px;border-top:1px solid var(--border);font:13px/1.6 var(--sans)}
.guide-footer nav{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-bottom:16px}
.guide-footer strong{color:var(--text-primary)}
.guide-footer a{color:#76551f;text-underline-offset:4px;padding:8px 0;min-height:44px}
.guide-footer p{font-size:12px;color:var(--text-secondary)}
@media(max-width:650px){
 .guide-header{padding:15px 16px;gap:12px;flex-wrap:wrap}
 .guide-brand>span{font-size:26px}.guide-brand img{width:32px;height:32px}
 .guide-header .button{padding:8px 12px;font-size:12px;min-height:44px}
 .guide-page .guide-main{padding:32px 16px 12px}
 .guide-page h1{font-size:39px;line-height:1.12;margin-bottom:18px}
 .guide-intro>p:last-child{font-size:16px}
 .guide-options{grid-template-columns:1fr;gap:12px;margin-bottom:26px}
 .guide-options>a{padding:18px;min-height:96px;gap:12px}
 .guide-options strong{font-size:15px}
 .guide-section{padding:26px 20px;margin-bottom:18px;border-radius:12px}
 .guide-page h2{font-size:32px;line-height:1.2;margin-bottom:20px}
 .guide-page h3{font-size:28px;line-height:1.25}
 .guide-section p,.guide-steps>li,.guide-checklist li{font-size:16px;line-height:1.75}
 .guide-steps{padding-left:22px}.guide-steps>li{padding-left:4px;margin-bottom:22px}
 .guide-note{padding:16px;margin:22px 0}.guide-note p{font-size:15px}
 .guide-actions{flex-direction:column;align-items:stretch;gap:10px}
 .guide-page .guide-template{font-size:16px;padding:14px;min-height:370px}
 .guide-footer{margin:0 16px;padding:20px 4px 26px}.guide-footer nav{flex-direction:column;align-items:flex-start;gap:4px}
}
/* Family spaces: keep the invitation clear and the map controls compact. */
.family-invitation{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 18px;padding:22px 26px;border:1px solid #d9c9ac;border-radius:18px;background:linear-gradient(110deg,#f1e6ce,#faf7ef);box-shadow:0 5px 20px #6a512609}
.family-invitation h2{margin:0 0 7px;font:600 29px/1.12 var(--serif);color:#393b2e}
.family-invitation p{margin:0;font-size:14px;line-height:1.55;color:#625b4d;max-width:530px}
.invitation-actions{display:flex;gap:9px;flex-wrap:wrap;flex-shrink:0}.invitation-actions .button{min-height:46px;font-size:13px;text-decoration:none}
.brand>span:last-child{font:600 34px/1.05 var(--serif)}.brand small{font:10px/1.5 var(--sans)}.sidebar-note p{font:500 24px/1.25 var(--serif)}.sidebar-note span{font-size:13px;line-height:1.65}
.map-page .heading{padding:22px 0 18px}.map-page>.stats{margin:0 0 16px}.map-page .stats>div{min-height:54px;padding:10px 14px}.map-page .stats strong{font-size:27px}
.tree-panel{overflow:visible}.tree-panel .panel-toolbar{padding:12px 14px;gap:12px;display:flex;align-items:center;flex-wrap:wrap}.tree-panel .person-search{flex:1 1 245px;max-width:none;min-width:180px}.tree-panel .search{min-height:46px}.primary-map-actions{display:flex;flex-wrap:wrap;gap:7px}.primary-map-actions .button{font-size:13px;min-height:44px;padding:8px 12px}.primary-map-actions .active{background:#e4ece1;border-color:#7b9274;color:#33533c}
.map-options{padding:12px 14px;background:#f4f0e6;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.map-options[hidden]{display:none}.map-options .family-scopes{border:0;padding:0}.map-options .tree-tools{margin:0}.map-options .map-tabs{width:auto}.map-selection{padding:9px 15px;min-height:54px}.map-selection p{font-size:12px;margin-top:3px}.map-selection.empty-selection{min-height:40px;font-size:13px;padding:9px 15px}.selection-actions .button{min-height:40px;font-size:12px}.map-selection strong{font-size:14px}.map-stage{min-height:0}.tree-viewport{height:clamp(620px,calc(66vh + 100px),900px);background-color:#fbf8f0}.tree-bottom{padding:6px 12px}.tree-bottom .map-legend{font-size:11px;line-height:1.5}.map-legend .family-color{height:3px;border:0;border-radius:3px;background:linear-gradient(90deg,#007d55 25%,#1d5fd2 25% 50%,#bd2876 50% 75%,#c45800 75%);width:30px}
.person-card{border-radius:15px;box-shadow:0 4px 12px #3d35200d;transition:border-color .16s ease,box-shadow .16s ease,opacity .16s ease}.person-card:hover{transform:none;box-shadow:0 5px 18px #3d352021}.person-card.chosen{border-color:#2c7454;box-shadow:0 0 0 5px #2c745424}.person-card.family-related{border-color:#698b71}.person-card.family-muted{opacity:.45}.connections .muted-edge{opacity:.18}.connections path.parent-line{stroke-width:calc(2.8px * var(--map-stroke,1))}.relation-label.parents{color:#514d44;font-size:11px}.relation-label.pair{background:#fbf8f0;color:#615b50}.connections .edge-halo,.connections .family-junction{stroke:#fbf8f0}
.overview-details .person-copy strong{font-size:26px;line-height:1.2;max-height:3.6em;overflow:hidden}.overview-details .person-card{padding:18px}.overview-details .person-copy{width:100%}.tree-canvas.distant-details .person-copy strong{display:none}.tree-canvas.distant-details .person-card{background:#e6e1d5;border:2px solid #a69d8b}.tree-canvas.distant-details .person-card.chosen,.tree-canvas.distant-details .person-card.family-related{background:#c5d8bd;border-color:#52744b}
.relationship-group{margin:0 0 21px;padding-bottom:18px;border-bottom:1px solid #e6dfd1}.relationship-group h3{display:flex;align-items:center;gap:9px;margin:0 0 10px;font:600 16px/1.4 var(--sans);color:#45493c}.relationship-group h3>span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:8px;background:#e9e8da;font-size:12px;color:#636652}.relationship-group>div{display:flex;flex-direction:column;gap:8px}.relationship-chip{display:block;text-align:left;width:100%;min-height:46px;padding:11px 13px;background:#f4f0e7;border:1px solid #dcd4c4;border-radius:11px;font:500 14px/1.5 var(--sans);color:#414739;transition:background .16s,border-color .16s}.relationship-chip:hover{background:#e9eedf;border-color:#9eaf8c}.relationship-chip small{display:block;color:#716f62;font-size:12px;margin-top:3px}.relationship-former .relationship-chip{border-style:dashed}.relationship-group .unknown{font-size:13px;line-height:1.5;color:#777163}
.button{transition:background-color .16s,border-color .16s,box-shadow .16s}.button:hover{transform:none}.button:focus-visible,.person-card:focus-visible,.relationship-chip:focus-visible,.tree-viewport:focus-visible{outline:3px solid #196e95;outline-offset:3px}
.map-fullscreen{position:fixed;inset:10px;z-index:45;margin:0!important;display:flex;flex-direction:column;box-shadow:0 0 0 20px #f2eee4}.map-fullscreen .map-stage{flex:1;display:flex;flex-direction:column}.map-fullscreen .tree-viewport{flex:1;height:auto;min-height:0}.map-fullscreen .tree-bottom{flex-shrink:0}.map-fullscreen .generation-list{overflow:auto}.map-fullscreen .map-options{max-height:25vh;overflow:auto}
.mobile-brand{display:none}
@media(max-width:1200px){.family-invitation{align-items:flex-start;flex-direction:column;gap:14px}.family-invitation h2{font-size:28px}}
@media(max-width:700px){.family-invitation{padding:18px;margin-bottom:13px;gap:14px}.family-invitation h2{font-size:28px;max-width:320px}.family-invitation p{font-size:14px}.invitation-actions{display:grid;grid-template-columns:1fr;width:100%;gap:8px}.invitation-actions .button{width:100%;justify-content:center;font-size:14px}.map-page>.family-invitation{order:2}.map-page>.stats{order:3;margin:0 0 12px}.map-page>.workspace{order:4}.map-page>footer{order:5}.map-page .stats{grid-template-columns:repeat(2,1fr);gap:8px}.map-page .stats>div{min-height:50px;padding:8px 10px}.map-page .stats span{font-size:10px}.tree-panel .panel-toolbar{padding:10px;gap:9px;flex-direction:column;align-items:stretch}.tree-panel .person-search{flex:auto;width:100%;min-width:0}.primary-map-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.primary-map-actions .button{font-size:12px;padding:8px;min-height:44px}.tree-viewport{height:clamp(280px,60svh,520px);min-height:0;flex-shrink:0}.map-selection{gap:7px;align-items:stretch;flex-direction:column}.map-selection.empty-selection{font-size:12px}.selection-actions{flex-wrap:nowrap}.selection-actions .button{flex:1}.map-stage .minimap{position:absolute;right:10px;bottom:10px;margin:0;width:100px;height:55px;min-height:0;opacity:.94}.map-stage .minimap svg{width:98px;height:53px}.map-stage .minimap span{display:none}.tree-bottom{gap:5px}.tree-bottom .map-legend{font-size:10px}.map-fullscreen{inset:0;border-radius:0}.map-fullscreen .tree-viewport{height:auto}.map-fullscreen .map-selection p{display:none}.map-fullscreen .panel-toolbar{padding:8px}.mobile-brand{display:inline;font:600 27px/1.2 var(--serif);color:#45493c}.map-page .topbar .breadcrumb{display:none}.map-page .heading h1{font-size:37px}.map-page .heading{padding:16px 0}.map-page .heading .eyebrow{display:none}}
@media(prefers-reduced-motion:reduce){.person-card,.button,.relationship-chip,.relation-label,.inspector{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.map-page>.workspace{animation:none}.map-page:has(.map-fullscreen)>.workspace{position:relative;z-index:40}.shell:has(.map-fullscreen)>.sidebar{visibility:hidden}.shell:has(.map-fullscreen)>.inspector{z-index:60}.shell:has(.map-fullscreen)>.inspector-scrim{z-index:59}.map-fullscreen{background:#fbf8f0}.map-page .stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:700px){.map-page .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The first-visit guide is readable and dismissible on a phone, including landscape. */
dialog:has(.map-help){width:min(680px,calc(100% - 24px));padding:0;max-height:calc(100dvh - 24px);overflow:auto;border-radius:20px}
.map-help{padding:26px 26px 0}.map-help .dialog-header{margin-bottom:18px}.map-help .dialog-header h2{font-size:33px;line-height:1.15}.map-help .dialog-header p{font-size:15px;line-height:1.5;margin-top:10px}
.map-help-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px}.map-help-sections section{padding:18px;background:#f2efe4;border:1px solid #ddd7c7;border-radius:14px}.map-help h3{font:600 17px/1.3 var(--sans);margin:9px 0 14px;color:#364a3c}.help-device{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dfe8d7;color:#345d40;font:24px/1 var(--sans)}.map-help ul{padding-left:18px;margin:0}.map-help li{font-size:14px;line-height:1.6;margin:0 0 10px}.map-help li:last-child{margin-bottom:0}.map-help-tip{font-size:14px;line-height:1.6;color:#666454;margin:18px 0}.map-help-close{position:sticky;bottom:0;background:#fffdf7;padding:12px 0 20px}.map-help-close .button{width:100%;min-height:56px;font-size:16px;justify-content:center}.map-help .icon-button{flex-shrink:0;min-width:44px;min-height:44px}
@media(max-width:700px){.tree-panel .search input{font-size:16px}.map-help{padding:20px 18px 0}.map-help .dialog-header h2{font-size:29px}.map-help-sections{grid-template-columns:1fr;gap:12px}.map-help-sections section{padding:14px 16px}.help-device{display:none}.map-help h3{margin:0 0 10px}.map-help li{font-size:15px;line-height:1.5;margin-bottom:8px}.map-help-tip{font-size:13px;margin:14px 0}.map-help-close{padding:10px 0 max(14px,env(safe-area-inset-bottom))}.map-fullscreen{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}

.connections .family-junction,.connections .family-junction.selected-edge{stroke:none!important}

@media(max-width:700px){.shell:has(.sidebar nav>.nav-item:only-child) .sidebar{display:none}.shell:has(.sidebar nav>.nav-item:only-child) main{padding-bottom:20px}}

.app-loading{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:24px;text-align:center}.app-loading strong{font:600 38px/1.2 var(--serif);color:#3d5442}.app-loading p{font-size:16px;color:#706b5e}

.kinship-summary{margin:0 20px 14px;padding:12px 14px;background:#f1f0e5;border:1px solid #dedccc;border-radius:12px}.kinship-summary span,.kinship-summary small{display:block;font-size:12px;line-height:1.5;color:#706d5e}.kinship-summary strong{display:block;margin:4px 0;font-size:14px;line-height:1.5;color:#3e4c3f}

/* Approved tree statistics. Highlighting never changes map geometry. */
.map-page>.map-statistics{order:3;width:100%}.tree-canvas>.relative-add{z-index:4}
.map-statistics{margin:0 0 14px;min-width:0}.statistic-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.statistic-item{position:relative;min-width:0;--stat-color:#4d6655;--stat-tint:#eaf0e7}.stat-generations{--stat-color:#556886;--stat-tint:#e9edf4}.stat-families{--stat-color:#906334;--stat-tint:#f5eadb}.stat-alive{--stat-color:#356d50;--stat-tint:#e4f0e6}.stat-deceased{--stat-color:#795d7b;--stat-tint:#f0e9f0}.stat-unknown{--stat-color:#716743;--stat-tint:#f0ecdf}
.statistic-card{position:relative;display:grid;grid-template-columns:1fr auto;align-content:start;gap:8px;width:100%;height:100%;min-height:112px;padding:16px;text-align:left;border:1px solid #ded9c9;border-radius:14px;background:#fffdf7;color:#3c4036;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.statistic-card:hover{background:var(--stat-tint);border-color:var(--stat-color);box-shadow:0 5px 16px #4d473015}.statistic-card:active{transform:translateY(1px)}.statistic-card[aria-pressed=true]{background:var(--stat-tint);border-color:var(--stat-color);box-shadow:inset 0 0 0 1px var(--stat-color)}.statistic-icon{grid-column:2;grid-row:1;align-self:center;color:var(--stat-color);display:flex}.statistic-icon svg{width:24px;height:24px}.statistic-card strong{grid-column:1;grid-row:1;font:600 34px/1 var(--sans);letter-spacing:-1.2px;color:var(--stat-color);font-variant-numeric:tabular-nums}.statistic-name{grid-column:1/-1;font-size:12px;line-height:1.4;font-weight:600;max-width:100%;overflow-wrap:break-word}.statistic-check{display:none;position:absolute;right:8px;bottom:6px;color:var(--stat-color)}.statistic-check svg{width:12px;height:12px}.statistic-card[aria-pressed=true] .statistic-check{display:block}.stat-families .statistic-icon{visibility:hidden}
.statistic-info{position:absolute;right:5px;top:5px}.statistic-info>button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;border-radius:10px;color:var(--stat-color);background:transparent}.statistic-info>button svg{width:21px;height:21px}.statistic-info>button:hover{background:#90633416}.statistic-tooltip{position:absolute;top:44px;right:0;z-index:45;display:none;width:320px;max-width:calc(100vw - 32px);padding:16px;border-radius:12px;border:1px solid #cfc5af;background:#fffdf6;color:#514a3b;font:13px/1.6 var(--sans);box-shadow:0 8px 24px #43381924}.statistic-info:hover .statistic-tooltip,.statistic-info:focus-within .statistic-tooltip{display:block}.statistic-status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:5px 2px}.statistic-status p{margin:0;color:#625f50;font-size:12px;line-height:1.5}.statistic-reset{display:flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;min-height:44px;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:transparent;font-size:12px;color:#53644e}.statistic-reset svg{width:14px;height:14px}.statistic-reset:hover:not(:disabled){background:#e9ecdf;border-color:#c7ceb9}.statistic-reset:disabled{opacity:.48;cursor:default}.statistic-card:focus-visible,.statistic-info>button:focus-visible,.statistic-reset:focus-visible{outline:3px solid #315b83;outline-offset:3px}
.person-card.statistic-muted{opacity:.58}.person-card.statistic-match{border-color:#53775b;box-shadow:0 0 0 3px #53775b33}.person-card[data-statistic-mode=deceased].statistic-match{border-color:#795d7b;box-shadow:0 0 0 3px #795d7b33}.person-card[data-statistic-mode=unknown].statistic-match{border-color:#887435;box-shadow:0 0 0 3px #88743533}.person-card[data-statistic-mode=families].statistic-match{border-color:#906334;box-shadow:0 0 0 3px #90633428}.person-card[data-statistic-mode=generations].statistic-match{border-color:var(--generation-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--generation-color) 20%,transparent)}
.statistic-person-tag{position:absolute;left:10px;bottom:-13px;max-width:calc(100% - 20px);border-radius:7px;padding:3px 7px;background:#f5f5e9;border:1px solid currentColor;color:#4b674f;font-size:11px;line-height:1.3;font-weight:600;white-space:normal;pointer-events:none}.statistic-person-tag[hidden]{display:none}.person-card[data-statistic-mode=generations] .statistic-person-tag{color:var(--generation-color)}.person-card[data-statistic-mode=deceased] .statistic-person-tag{color:#795d7b}.person-card[data-statistic-mode=unknown] .statistic-person-tag{color:#766126}.person-card[data-statistic-mode=families] .statistic-person-tag{color:#906334}.connections .statistic-line-muted{opacity:.55}.connections .statistic-edge{opacity:1;stroke-width:calc(4px * var(--map-stroke,1))}.connections path,.family-junction{transition:opacity .18s}.relation-label[data-statistic-label]::after{content:attr(data-statistic-label);font-weight:700;color:#805728}
.generation-bands{position:absolute;inset:0;pointer-events:none;z-index:0}.generation-bands[hidden]{display:none}.generation-band{position:absolute;border-left:3px solid var(--generation-color);border-radius:12px;background:color-mix(in srgb,var(--generation-color) 6%,transparent)}.generation-band>span{position:absolute;top:8px;left:10px;font-size:14px;font-weight:700;color:var(--generation-color)}.tree-canvas:has(.generation-bands:not([hidden]))>.connections{z-index:1}.tree-canvas>.person-card{z-index:3}
@media(max-width:1150px){.statistic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.statistic-card{min-height:104px}.statistic-tooltip{right:auto;left:0;transform:translateX(-75%)}}
@media(max-width:600px){.statistic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.statistic-card{padding:12px 14px;min-height:94px;gap:6px}.statistic-card strong{font-size:30px}.statistic-name{font-size:12px}.statistic-icon svg{width:22px;height:22px}.statistic-status{flex-direction:column;align-items:stretch;gap:2px;padding-top:10px}.statistic-status p{min-height:36px}.statistic-reset{align-self:flex-end}.statistic-tooltip{left:-5px;right:auto;transform:translateX(-35%);width:280px}.statistic-info{right:4px;top:3px}.statistic-person-tag{font-size:12px}}

/* Keep wheel and pinch zoom independent of browser scroll anchoring. */
.tree-viewport{overflow-anchor:none;scroll-behavior:auto}.tree-viewport.map-moving .tree-canvas{will-change:transform}.tree-viewport.map-moving .person-hint{visibility:hidden;opacity:0}

/* The family story is one continuous, readable document. */
html{scrollbar-gutter:stable}body:has(.inspector){overflow:hidden}
.inspector{width:clamp(440px,35vw,520px);max-width:100vw;height:100dvh;overflow:hidden;animation:none}
.inspector-top{flex:none;padding:16px 22px;gap:16px;background:var(--surface);border-bottom:1px solid var(--border)}
.inspector-top .eyebrow{font:600 23px/1.2 var(--serif);letter-spacing:0;color:#4d5b49}
.pane-close{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;border:1px solid var(--border);background:#fffdf7;border-radius:10px;font-size:13px;flex-shrink:0}
.pane-close svg{width:18px;height:18px}
.pane-tabs{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:6px;padding:12px 20px;overflow:visible;border-bottom:1px solid var(--border);background:#f3eee4}
.pane-tabs button{min-height:44px;padding:9px 12px;border:1px solid #d8cdbb;border-radius:9px;font-size:13px;line-height:1.35;white-space:normal;background:#fffdf8;color:#625b4b}
.pane-tabs button.active{background:#e3eadc;border-color:#748668;color:#334d36;font-weight:700}
.pane-tabs button:focus-visible,.pane-close:focus-visible,.nav-item:focus-visible,.navigation-hint button:focus-visible{outline:3px solid #b78835;outline-offset:2px}
.pane-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:24px;scrollbar-gutter:stable;overflow-wrap:anywhere;line-height:1.7;font-size:15px}
.pane-body .profile-head{padding:0 0 24px;background:none}
.pane-body .profile-head h2{font:600 32px/1.15 var(--serif);margin-top:15px;overflow-wrap:anywhere}
.pane-body .kinship-summary{margin:0 0 24px;padding:14px 16px}
.person-section{padding:0 0 28px;margin-bottom:24px;border-bottom:1px solid var(--border);min-width:0;scroll-margin-top:12px}
.person-section-title{font:600 28px/1.2 var(--serif);color:#3e5442;margin:0 0 20px}
.person-section .detail{margin:0 0 18px}.person-section .detail>span{font-size:13px;font-weight:600;color:#70634f}.person-section .detail-value{margin-top:4px;font-size:15px;line-height:1.75;color:#4c493f}
.person-section .section-title{font-size:25px;margin-top:26px}
.pane-body .hint,.pane-body .empty p{font-size:13px;line-height:1.65}.pane-body .empty{padding:12px 0;text-align:left}.pane-body .empty h2{font-size:24px}
.pane-body .record-grid{grid-template-columns:minmax(0,1fr)}.pane-body .record-card p{display:block;-webkit-line-clamp:unset;max-height:none;overflow:visible;font-size:14px;line-height:1.7}
.pane-body .record-card h3{font-size:25px}.pane-body .record-card{min-width:0;max-width:100%;text-align:left}
.pane-body .timeline-item{grid-template-columns:68px 14px minmax(0,1fr);gap:7px}.pane-body .timeline-card{padding:14px}.pane-body .timeline-card h3{font-size:23px}.pane-body .time-date{font-size:13px;padding-right:0;overflow-wrap:anywhere}
.pane-body .gallery-grid{grid-template-columns:minmax(0,1fr);gap:18px}.pane-body .gallery-tile{width:100%;padding:10px;gap:9px}.pane-body .gallery-tile img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;background:#eee8dc}.pane-body .gallery-tile small:empty{display:none}
.pane-body img,.pane-body video{max-width:100%;height:auto}.pane-body .pane-footer{padding:0 0 max(14px,env(safe-area-inset-bottom));border:0;justify-content:flex-start}.pane-footer:empty{display:none}
.relationship-chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(min-width:651px) and (max-width:1100px){.inspector{width:440px;max-width:70vw}}
@media(max-width:650px){
 html{scrollbar-gutter:auto}
 .inspector{width:100vw;max-width:none;inset:0;height:100dvh;border:0}
 .inspector-top{padding:max(10px,env(safe-area-inset-top)) 16px 10px}.inspector-top .eyebrow{font-size:24px}
 .pane-tabs{padding:10px 14px;gap:6px}.pane-tabs button{padding:9px 11px;font-size:13px;min-height:44px}
 .pane-body{padding:22px 18px max(22px,env(safe-area-inset-bottom));scrollbar-gutter:auto}.pane-body .profile-head h2{font-size:31px}.pane-body .detail-value{font-size:16px}
}

/* Supplied brand artwork and labelled, touch-friendly archive navigation. */
.brand{display:block;margin:0 0 20px;padding:0}.brand-logo{display:block;width:100%;height:auto;max-height:116px;object-fit:contain}.brand-symbol{display:none;border-radius:10px}
.space-label{display:block;text-align:center;padding:0 0 20px;margin:0 0 14px;font:600 29px/1.12 var(--serif);letter-spacing:0;color:#ece5d2;position:relative}
.space-label:after{content:'';display:block;width:40px;height:2px;background:#b78a42;margin:16px auto 0}
.nav-item .nav-short{display:none}.mobile-brand{display:none}
.navigation-hint{position:fixed;z-index:80;width:290px;max-width:calc(100vw - 24px);padding:17px;border:1px solid #c9b88f;border-radius:14px;background:#fffdf6;color:#353c31;box-shadow:0 8px 28px #232c3030;overflow-wrap:anywhere}
.navigation-hint>strong{display:block;font:600 24px/1.2 var(--serif)}.navigation-hint p{margin:9px 0 14px;font:14px/1.6 var(--sans);color:#65604f}.navigation-hint-actions{display:flex;gap:8px}.navigation-hint .button{min-height:44px;font-size:13px;flex:1}
.sidebar-collapsed .brand-logo{display:none}.sidebar-collapsed .brand-symbol{display:block;width:48px;height:48px}.sidebar-collapsed .space-label{display:none}
.guide-brand{background:var(--sidebar);padding:8px 14px;border-radius:12px}.guide-brand img{width:170px;height:auto}
@media(min-width:651px) and (max-width:1000px){.brand-logo{display:none}.brand-symbol{display:block;width:48px;height:48px}.space-label{display:none}}
@media(max-width:650px){
 .topbar{display:flex;flex-wrap:wrap;gap:10px;min-height:80px;padding:12px 0}.mobile-brand{display:block;width:138px;flex-shrink:0;padding:7px 10px;background:var(--sidebar);border-radius:11px;text-decoration:none;line-height:0}.mobile-brand img{display:block;width:100%;height:auto}.breadcrumb{display:none}
 .top-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;flex:1;min-width:145px}.top-actions .owner-toggle{order:2;flex-basis:100%;min-height:34px;font-size:11px;padding:6px 8px}.top-actions .connection{display:none}
 .sidebar .space-label{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}.sidebar:has([data-view="admin"]) nav{grid-template-columns:repeat(4,minmax(0,1fr))}
 .sidebar .nav-item,.sidebar-collapsed .nav-item{min-width:0;max-width:none;min-height:58px;padding:7px 2px;gap:5px;flex-direction:column}.sidebar .nav-item .nav-label{display:none}.sidebar .nav-item .nav-short{display:block;font-size:9px;line-height:1.2;overflow-wrap:anywhere}
 .sidebar nav>.nav-item:only-child{grid-column:1/-1}.sidebar .nav-item svg{width:21px;height:21px}.sidebar .nav-item b{top:2px;right:2px}.shell:has(.sidebar [data-view="admin"]) main{padding-bottom:150px}
 .guide-brand img{width:125px;height:auto}.guide-header{gap:10px}
}
.privacy-notice{margin:12px 0;font-size:13px;line-height:1.6}
.privacy-review{border-top:1px solid var(--line);padding:20px 0;display:grid;gap:12px;min-width:0}
.privacy-review h3,.privacy-original{overflow-wrap:anywhere;white-space:pre-wrap}
.privacy-review textarea{width:100%;min-height:120px;box-sizing:border-box}
.privacy-confirm{display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.privacy-confirm input{width:20px;height:20px;flex-shrink:0}
