:root{color-scheme:light;--ink:#233b34;--green:#234e40;--paper:#f5f7f3;--line:#d9e2da;--muted:#617568;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #be8a31;outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 5%;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font:30px Georgia,serif;white-space:nowrap}.brand span{font:14px system-ui,sans-serif;border-left:1px solid var(--line);padding-left:14px}nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}nav a{text-decoration:none;font-size:14px}nav form{margin:0}main{max-width:1300px;padding:40px 28px 65px;margin:auto;min-height:calc(100dvh - 160px)}footer{padding:22px;text-align:center;border-top:1px solid var(--line);color:var(--muted);font-size:13px}h1,h2,h3{line-height:1.2}h1{font:clamp(32px,4vw,48px)/1.15 Georgia,serif;font-weight:400;margin:10px 0 22px}h2{font:28px/1.25 Georgia,serif;margin:0 0 20px}h3{font-size:19px;font-weight:600}p{margin:12px 0 22px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:var(--muted);margin:0 0 10px}.muted{font-size:14px;color:var(--muted)}.welcome{padding:35px 0 50px}.welcome h1{font-size:clamp(60px,8vw,100px);letter-spacing:-3px}.welcome em{font-weight:400;color:#6c826b}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;margin-bottom:24px}.narrow{max-width:520px;margin:25px auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}.tile{text-decoration:none;display:block;transition:transform .2s}.tile:hover{transform:translateY(-3px)}.tile h2{margin-top:22px}.tile p{color:var(--muted)}.tile>span:last-child{font-size:14px;font-weight:600}.section-head,.tree-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}.tabs{border-bottom:1px solid var(--line);margin:0 0 28px;padding:0 0 15px;gap:12px}.tabs a{padding:8px 14px;border-radius:8px}.tabs a[aria-current]{background:var(--green);color:white}form{margin:0}label{display:block;font-size:14px;font-weight:500;margin:0 0 18px}input,textarea,select{display:block;width:100%;background:#fcfdfb;border:1px solid #bfcdbf;border-radius:9px;padding:11px 12px;margin-top:7px;color:var(--ink);font-weight:400}textarea{resize:vertical;min-height:110px}input[type=checkbox]{width:19px;height:19px;display:inline-block;margin:0;accent-color:var(--green);flex-shrink:0}.check{display:flex;gap:10px;align-items:center;font-weight:400}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.button,button{display:inline-block;border:1px solid transparent;background:var(--green);color:#fff;border-radius:9px;padding:11px 18px;text-decoration:none;font-size:14px;font-weight:500;cursor:pointer}.button:hover,button:hover{background:#346651}.light{background:#fff;color:var(--green);border-color:var(--line)}.light:hover{background:#edf3eb}.small{padding:8px 13px}.quiet{color:var(--green);background:none;padding:0;border:0}.quiet:hover{background:none;text-decoration:underline}.danger{color:#993728;background:#fff4f0;border-color:#e8c6bc}.danger:hover{background:#f5dfd6}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.notice{border-left:4px solid #73956f;background:#e9f0e4;padding:15px 20px;margin-bottom:22px;border-radius:6px}.error{background:#fff0eb;color:#8b3425;padding:14px;border-radius:8px}.pill{display:inline-block;background:#edf2e8;padding:6px 13px;border-radius:30px;font-size:13px}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.cv{max-width:880px;margin:15px auto}.cv h1{font-size:54px}.cv>h2{color:var(--muted);font:22px system-ui}.cv section{border-top:1px solid var(--line);padding-top:28px;margin-top:28px}details{border-top:1px solid var(--line);padding:17px 0}summary{cursor:pointer;font-weight:500;overflow-wrap:anywhere}details>form,details>a{margin-top:18px}details>p{margin-top:18px}.delete-form{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.delete-form .check{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tree-app{height:70dvh;min-height:420px;border:1px solid var(--line);border-radius:18px;position:relative;overflow:hidden;background:#f3f6ef;background-image:radial-gradient(#cad6c5 1px,transparent 1px);background-size:22px 22px}#tree{width:100%;height:100%;display:block;touch-action:none;cursor:grab;user-select:none}#tree.drag{cursor:grabbing}.tree-tools{position:absolute;left:20px;top:20px;z-index:2;display:flex;gap:10px;max-width:calc(100% - 40px)}.tree-tools input{width:245px;margin:0;background:white}.search-results{position:absolute;top:52px;left:0;width:280px;background:white;border-radius:10px;max-height:260px;overflow:auto;box-shadow:0 6px 25px #243b3420}.search-results:empty{display:none}.search-results button{display:block;width:100%;border-radius:0;background:#fff;color:var(--ink);text-align:left}.search-results button:hover{background:#edf3e8}.tree-controls{position:absolute;bottom:20px;left:20px;display:flex;align-items:center;gap:6px;background:white;padding:5px;border:1px solid var(--line);border-radius:12px}.tree-controls button{font-size:20px;padding:5px 13px;background:white;color:var(--ink)}.tree-controls output{font-size:13px;min-width:48px;text-align:center}.tree-status{position:absolute;top:95px;left:25px;right:25px;pointer-events:none;color:var(--muted);font-size:14px}.person-panel{position:absolute;right:15px;top:15px;bottom:15px;width:295px;overflow:auto;background:white;border:1px solid var(--line);border-radius:15px;padding:23px;box-shadow:0 8px 36px #263e3420;z-index:3}.person-panel h2{margin:24px 0 12px}.person-panel h3{font-size:14px;margin-top:23px}.person-panel p{font-size:14px;margin-bottom:12px;overflow-wrap:anywhere}.person-panel .close{float:right;background:#f0f4ed;color:var(--ink);padding:4px 11px;font-size:20px}.person-panel .relative{display:block;width:100%;text-align:left;background:#f3f6ef;color:var(--ink);margin:6px 0}.person-panel .relative small{display:block;color:var(--muted);font-size:12px}.tree-node{cursor:pointer}.tree-node rect{fill:white;stroke:#bccdbb;stroke-width:1.5}.tree-node-male rect{fill:#edf4fb}.tree-node-female rect{fill:#fceff3}.tree-node:hover rect,.tree-node:focus rect,.tree-node.selected rect{stroke:var(--green);stroke-width:3}.tree-node text{fill:var(--ink);font-size:15px;pointer-events:none}.tree-node .dates{fill:var(--muted);font-size:12px}.tree-link{fill:none;stroke:#9daf9b;stroke-width:2}.tree-link.adoptive{stroke-dasharray:6 5}.tree-union{stroke:#b18b58;stroke-width:2;fill:none}.union-label{fill:#8a6b43;font-size:11px}.tree-overview .dates,.tree-overview .union-label{display:none}@media(max-width:700px){header{align-items:flex-start;padding:16px 20px;flex-direction:column;gap:14px}nav{gap:15px}.brand span{font-size:13px}main{padding:25px 16px 45px}.panel{padding:22px}.form-grid{grid-template-columns:1fr}.welcome{padding-top:15px}.cv h1{font-size:40px}.tree-tools{left:12px;top:12px;max-width:calc(100% - 24px)}.tree-tools input{width:min(52vw,220px)}.person-panel{width:min(295px,calc(100% - 24px));top:75px;right:12px;bottom:12px}.tree-heading h1{font-size:32px}.tree-app{height:68dvh}.tabs{gap:4px}.tabs a{padding:8px 10px;font-size:13px}}@media print{header,footer,nav,.notice{display:none}main{padding:0}.panel{border:0;margin:0;padding:0}body{background:white}.cv{max-width:none}.cv h1{font-size:36px}.cv section{break-inside:avoid}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#minimap{position:absolute;right:18px;bottom:18px;width:150px;height:90px;background:#ffffffed;border:1px solid var(--line);border-radius:10px;cursor:crosshair}@media(max-width:500px){#minimap{width:105px;height:68px}}

.person-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 22px}.person-panel .person-actions{display:grid}.person-actions .button{font-size:13px;padding:8px 12px}.person-filter-status{display:block;color:var(--muted);font-size:12px;font-weight:400;margin:5px 0 10px}[data-person-row][hidden]{display:none}.person-search{margin:8px 0 4px}
