:root{font-family:Arial,sans-serif;color:#233b3f;background:#f3f6f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bd8139;outline-offset:3px}button{color:#254b46;border:1px solid #ccd8d2;background:white;border-radius:6px;padding:9px 12px;font-size:14px}button:hover{background:#eaf1ed}header{min-height:64px;background:#fff;border-bottom:1px solid #d4ded9;display:flex;align-items:center;padding:11px 20px;gap:14px;position:relative;z-index:10}.brand{font:23px Georgia;color:#173f42;text-decoration:none;white-space:nowrap;margin-right:auto}.brand span{font:16px Arial;color:#536d64;margin-left:7px}.search-wrap{position:relative;width:280px}#search{width:100%;background:#f7f9f8;border:1px solid #cedad3;padding:10px 13px;border-radius:6px;font-size:14px;color:#233b3f}select{font-size:14px;background:white;color:#23453f;border:1px solid #cedad3;border-radius:6px;padding:10px;max-width:170px}#searchResults{position:absolute;top:46px;left:0;width:360px;max-width:calc(100vw - 24px);border:1px solid #d4ded7;border-radius:8px;background:#fff;box-shadow:0 8px 28px #173f4220;overflow:hidden}.results-meta{font-size:12px;color:#75897d;padding:12px 14px;border-bottom:1px solid #e3eae5}#people{max-height:410px;overflow:auto}.person-row{display:block;border:0;border-radius:0;border-bottom:1px solid #edf1ee;width:100%;padding:12px 14px;text-align:left;font-size:14px}.person-row small{display:block;font-size:12px;color:#74877a;margin-top:5px}.person-row.selected{background:#e5efea}main{height:calc(100dvh - 64px);min-height:350px;position:relative}#canvas{height:100%;width:100%;position:relative;overflow:hidden;touch-action:none;cursor:grab;background-color:#f2f6f3;background-image:radial-gradient(#c8d8ce .8px,transparent .8px);background-size:24px 24px}#canvas.dragging{cursor:grabbing}#world{position:absolute;transform-origin:0 0}#edges{position:absolute;overflow:visible;pointer-events:none}#nodes{position:absolute}.node{position:absolute;width:192px;height:94px;background:#fff;border:1px solid #b8cec1;border-radius:7px;box-shadow:0 2px 4px #173f420a;text-align:left;padding:12px 13px;color:#254844;display:flex;flex-direction:column;justify-content:center;gap:6px}.node strong{font-size:15px;line-height:1.2;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.node small{font-size:12px;line-height:1.25;color:#637e6e}.node .record-flag{position:absolute;right:5px;top:3px;font-size:12px;color:#996424}.node.active{background:#173f42;border-color:#173f42;color:#fff;box-shadow:0 3px 12px #173f4226}.node.active small{color:#d0dfd7}.node.related{border:2px solid #507d65}.node.active .record-flag{color:#ffe0ac}.node:hover{border-color:#bd8139}.family-link{stroke:#9db5a7;stroke-width:1.4;fill:none;transition:stroke .15s}.family-link.related{stroke:#386f55;stroke-width:2.7}.union-line{stroke-dasharray:4 3}.generation-line{stroke:#dce6df;stroke-width:1;stroke-dasharray:3 7}.generation-label{font:12px Arial;fill:#809788}.tree-status{position:absolute;left:20px;top:17px;display:flex;gap:11px;align-items:center;font-size:12px;color:#486859;pointer-events:none;background:#f2f6f3eb;padding:7px 9px;border-radius:5px}.tree-status #viewTitle{color:#748c7d;border-left:1px solid #c5d5cb;padding-left:11px}.tree-tools{position:absolute;left:20px;bottom:20px;display:flex;align-items:center;background:#fff;border:1px solid #cddbd2;box-shadow:0 3px 10px #173f4210;border-radius:8px;padding:3px;gap:2px;cursor:default}.tree-tools button{border:0;background:transparent;padding:9px 11px;font-size:14px}.tree-tools #plus,.tree-tools #minus{font-size:20px;padding:5px 12px}.tree-tools button:hover{background:#eaf1ed}.tree-tools #zoomLevel{font-size:12px;min-width:40px;text-align:center}.divider{height:22px;width:1px;background:#dbe5dd;margin:0 4px}#mapWrap{position:absolute;right:20px;bottom:20px;width:180px;height:116px;background:#fffffff0;border:1px solid #cad9cf;border-radius:7px;box-shadow:0 3px 10px #173f4210;overflow:hidden}#minimap{display:block;width:100%;height:100%;cursor:crosshair}.profile{position:absolute;right:14px;top:14px;bottom:153px;width:325px;padding:21px;background:#fff;border:1px solid #cedbd2;border-radius:9px;box-shadow:0 5px 28px #173f4222;overflow:auto;z-index:6}.profile[hidden]{display:none}.profile-close{float:right;padding:2px 8px;border:0;font-size:24px;margin:-8px -6px 0 8px}.profile h2{font:27px/1.15 Georgia;margin:4px 0 10px;color:#22483e}.lifespan{font-size:14px;color:#6b8273}.focus{background:#173f42;color:#fff;border:0;width:100%;margin:18px 0 0}.focus:hover{background:#27594e}.section-title{font-size:12px;font-weight:600;color:#627e6c;margin:24px 0 11px}.event{font-size:14px;line-height:1.5;border-left:1px solid #cbdccf;padding:0 0 16px 12px}.event strong{font-size:12px;color:#83968a;display:block;font-weight:400}.event span{font-size:13px;display:block;color:#6a8171}.relative{border:0;border-radius:0;border-bottom:1px solid #edf2ee;padding:10px 0;width:100%;text-align:left;font-size:14px;background:transparent}.relative small{display:block;font-size:12px;color:#7b9181;margin-top:4px}details{font-size:13px;margin-top:21px;border-top:1px solid #e0e8e2;padding-top:17px}summary{cursor:pointer}pre{font:12px/1.6 Arial;white-space:pre-wrap;overflow-wrap:anywhere}.note{background:#fff6e8;border:1px solid #ead8bb;border-radius:6px;color:#795b30;padding:11px;font-size:13px;line-height:1.5;margin-top:17px}.empty{font-size:14px;color:#718678;padding:15px}.error{margin:80px 25px;max-width:400px}#detailsToggle[aria-expanded=true]{background:#e5efea;border-color:#8cae99}@media(max-width:760px){header{gap:8px;padding:10px 12px;flex-wrap:wrap;min-height:105px}.brand{font-size:21px}.brand span{font-size:14px}.search-wrap{order:3;width:calc(100% - 151px)}select{order:4;width:143px;max-width:none}#detailsToggle{margin-left:auto}main{height:calc(100dvh - 105px)}#searchResults{width:340px}.tree-status{left:9px;top:9px;font-size:11px;max-width:calc(100% - 18px)}.tree-status #viewTitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-tools{left:10px;bottom:12px;gap:0}.tree-tools button{font-size:12px;padding:9px 8px}.tree-tools #plus,.tree-tools #minus{padding:5px 10px}#mapWrap{width:126px;height:81px;right:10px;bottom:72px}.profile{right:10px;top:43px;bottom:72px;width:min(325px,calc(100vw - 20px))}main:has(.profile:not([hidden])) #mapWrap{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
