@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&display=swap";.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{font-family:DM Sans,system-ui,sans-serif;color:#25332c;background:#f7f7f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #bd8c5f;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Playfair Display,Georgia,serif;font-weight:500}h1{font-size:clamp(2.8rem,5vw,5rem);line-height:1.09;letter-spacing:-.035em}h2{font-size:clamp(1.7rem,3vw,2.4rem)}p{line-height:1.65;color:#67736b}.eyebrow{font-size:.72rem;letter-spacing:.18em;font-weight:700;color:#a47854;text-transform:uppercase}.app{display:flex;min-height:100vh}.sidebar{width:254px;background:#17372e;color:#f8f7f0;display:flex;flex-direction:column;padding:34px 20px;position:sticky;top:0;height:100vh;flex:none}.brand{display:flex;align-items:center;gap:13px;text-align:left;background:none;border:0;color:inherit;font-size:1.08rem;line-height:1.18;letter-spacing:.02em;padding:0 14px 48px}.brand-mark{font-size:2rem;color:#d6a97c}.brand strong{font-weight:700}.sidebar-label{font-size:.63rem;letter-spacing:.2em;color:#95aa9b;padding:0 16px;margin:0 0 16px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{color:#c7d4c8;text-align:left;background:transparent;border:0;border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:14px;font-size:.92rem;min-height:48px}.sidebar nav button span{font-size:1.3rem;width:23px;text-align:center}.sidebar nav button:hover,.sidebar nav button.active{background:#315146;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #4b685b;padding:25px 4px 0;display:flex;align-items:center;gap:10px;font-size:.82rem}.sidebar-bottom small{display:block;color:#9eb4a7;margin-top:3px}.sidebar-avatar{background:#d2a17f;color:#17372e;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-weight:700}.logout{margin-left:auto;background:none;border:0;color:#d6a97c}.main-wrap{min-width:0;flex:1}.topbar{height:76px;border-bottom:1px solid #e7e9e2;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(28px,5vw,80px);color:#7c8880;font-size:.78rem}.mobile-brand{display:none}.main-wrap main{max-width:1440px;margin:auto;padding:40px clamp(28px,5vw,80px) 90px}.hero{background:#e6ebe1;border-radius:18px;display:grid;grid-template-columns:1.1fr .9fr;min-height:430px;overflow:hidden}.hero-copy{padding:clamp(40px,5vw,75px);align-self:center}.hero h1{margin-bottom:22px}.hero h1 em{color:#8d765e;font-weight:400}.hero-copy>p:not(.eyebrow){max-width:430px}.hero-art{background:#c8d6c7;position:relative;display:grid;place-items:center;overflow:hidden}.hero-art:before,.hero-art:after{content:"";position:absolute;border:2px solid #aec4ad;border-radius:50%;width:480px;height:480px;transform:translate(50px,130px)}.hero-art:after{width:600px;height:600px;transform:translate(50px,130px)}.photo-frame{width:60%;aspect-ratio:.82;background:linear-gradient(145deg,#aebfae,#72907d);border:11px solid #f8f6ed;box-shadow:0 20px 45px #37544340;transform:rotate(-7deg);z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff}.photo-frame span{font-size:5rem}.photo-frame p{color:#fff;font:italic 1.4rem Playfair Display,serif;padding:20px}.hero-caption{position:absolute;bottom:24px;right:26px;letter-spacing:.16em;color:#57715e;font-size:.65rem}.primary,.secondary{border:0;border-radius:8px;padding:15px 22px;min-height:48px;font-weight:700}.primary{background:#315e47;color:#fff}.primary:hover{background:#224d38}.secondary{background:#e4eae2;color:#27513c}.primary span{margin-left:20px}.full{width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #e4e7e0;padding:38px 0}.stats div{display:flex;flex-direction:column;padding-left:32px;border-right:1px solid #e1e4dd}.stats div:first-child{padding-left:0}.stats div:last-child{border:0}.stats strong{font:500 2.3rem Playfair Display,serif;color:#315e47}.stats span{font-size:.82rem;color:#748078;margin-top:3px}.section{margin-top:66px}.section-title,.heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-title h2,.heading h1{margin-bottom:0}.heading{align-items:center;margin:25px 0 42px}.heading h1{font-size:3.5rem}.heading p:last-child{margin:12px 0 0}.text-button,.link,.back{border:0;background:none;color:#315e47;font-weight:700;padding:10px 0}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.person-card{border:1px solid #eaede7;background:#fff;border-radius:12px;padding:25px;text-align:left;min-height:225px;display:flex;align-items:flex-start;flex-direction:column;box-shadow:0 4px 20px #183b2806}.person-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #183b2812}.avatar{width:70px;height:70px;border-radius:50%;object-fit:cover;display:grid;place-items:center;flex:none}.fallback{background:#e9dcd0;color:#805f4b;font:500 1.5rem Playfair Display,serif}.person-card:nth-child(3n+2) .fallback{background:#dbe8d8;color:#4d745a}.person-card:nth-child(3n+3) .fallback{background:#e7e4ce;color:#827a4b}.person-card strong{margin-top:22px;font-size:.98rem}.person-card>span:last-child{color:#87918a;margin-top:6px;font-size:.8rem}.story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.story-card{background:#fff;border:1px solid #eaede7;border-radius:12px;overflow:hidden;padding-bottom:24px}.story-visual{height:170px;background:#d9e5d6;display:grid;place-items:center;font-size:4rem;color:#75977b}.story-visual.tone-1{background:#e9d9ce;color:#b88d75}.story-visual.tone-2{background:#e8e4d1;color:#b9a971}.story-card>p,.story-card>h2,.story-card>h3{margin-left:22px;margin-right:22px}.story-card .eyebrow{margin-top:22px}.story-card h3{font-size:1.45rem}.story-card p:last-child{font-size:.87rem}.footer{border-top:1px solid #e5e9e3;padding:24px 5vw;color:#98a29a;font-size:.75rem;text-align:center}.filters{display:flex;gap:18px;margin-bottom:20px}.filters label{flex:1}.filters label:first-child{flex:2}.result-count{font-size:.83rem}.tree-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.tree-toolbar button,.tree-toolbar select{background:#fff;border:1px solid #dbe2d9;border-radius:8px;padding:10px 14px;color:#315e47;min-height:44px}.tree-toolbar label{display:flex;align-items:center;gap:10px;color:#697b6d;font-size:.84rem}.tree-canvas{height:560px;background:#fcfcf8;border:1px solid #e6eae1;border-radius:14px;overflow:hidden}.tree-node{width:176px;height:126px;border:1px solid #d8e4d6;border-radius:12px;background:#fff;box-shadow:0 5px 20px #15372918;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#263b2d}.tree-node .avatar{width:44px;height:44px;font-size:1rem}.tree-node strong{font-size:.82rem}.tree-node span:last-of-type{font-size:.72rem;color:#789081}.text-alternative{margin-top:16px;color:#315e47}.text-alternative li{margin:8px}.back{margin-bottom:24px}.profile-hero{display:flex;gap:35px;align-items:center;background:#e9eee6;border-radius:15px;padding:40px}.avatar.large{width:160px;height:160px;font-size:3rem}.profile-hero h1{font-size:3.2rem;margin:7px 0}.profile-hero p{margin-bottom:5px}.button-row{display:flex;gap:12px;margin-top:20px}.profile-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:45px}.compact{border-bottom:1px solid #e3e7e1;padding-bottom:35px;margin-top:42px}.compact h2{margin-bottom:15px}.family-links{display:grid;gap:9px}.family-links button{display:flex;align-items:center;gap:13px;border:1px solid #e7ece5;background:#fff;border-radius:10px;padding:10px 15px;text-align:left;width:100%;color:#315e47}.family-links .avatar{width:42px;height:42px;font-size:.95rem}.family-links button span:nth-child(2){flex:1}.family-links small{display:block;color:#829087;margin-top:3px}blockquote{margin:15px 0;background:#fff;border-left:3px solid #bdab86;padding:22px;font:italic 1.1rem Playfair Display,serif}blockquote footer{font: .76rem DM Sans,sans-serif;color:#8d9b8e;margin-top:15px}.empty-state{text-align:center;background:#e9eee7;border-radius:14px;padding:80px 25px}.empty-state>span{font-size:5rem;color:#829e85}.empty-state p{max-width:460px;margin:0 auto 25px}.family-overview{display:grid;grid-template-columns:2fr 1fr;gap:20px}.family-overview article{background:#e8eee7;padding:45px;border-radius:14px}.family-overview article span{font-size:3rem;color:#86a48c}.bottom-nav{display:none}.overlay{position:fixed;inset:0;background:#10251b99;z-index:20;display:grid;place-items:center;padding:15px}.dialog{position:relative;background:#fff;border-radius:16px;padding:35px;width:min(580px,100%);max-height:92vh;overflow:auto;box-shadow:0 20px 70px #0003}.dialog h2{font-size:2rem;margin-bottom:10px}.dialog .close{position:absolute;top:14px;right:18px;background:none;border:0;font-size:2rem;color:#597162}.dialog details{padding:15px 0}.dialog summary{cursor:pointer;color:#315e47;font-weight:700}.dialog .primary{margin-top:15px}label{font-size:.85rem;font-weight:700;color:#405347;display:block;margin-bottom:16px}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #cad5c9;border-radius:8px;padding:12px 13px;min-height:47px;color:#213b29;background:#fff}textarea{resize:vertical}.field-row{display:flex;gap:12px}.field-row label{flex:1}.notice,.error{padding:13px 16px;background:#f6eadf;color:#684a33;border-radius:8px}.notice button{float:right;border:0;background:none}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-visual{background:#17372e;color:#fff;padding:10vw;display:flex;flex-direction:column;justify-content:center}.login-visual h1{font-size:clamp(3rem,6vw,6rem)}.login-visual p:not(.eyebrow){color:#bed0c1;max-width:450px}.login-card{max-width:430px;width:80%;margin:auto}.login-card h2{font-size:2.6rem}.login-card small{display:block;text-align:center;color:#87978a;margin:22px}.loading{padding:20vh;text-align:center}.mobile-brand{border:0;background:none;color:#315e47;font-weight:700}@media(max-width:1000px){.sidebar{width:210px}.people-grid{grid-template-columns:repeat(3,1fr)}.hero{min-height:380px}.hero-copy{padding:35px}}@media(max-width:720px){.sidebar{display:none}.topbar{height:58px;padding:0 20px}.mobile-brand{display:block}.topbar .today{display:none}.main-wrap main{padding:25px 18px 100px}.hero{grid-template-columns:1fr}.hero-copy{padding:35px 30px}.hero h1{font-size:3.2rem}.hero-art{min-height:230px}.photo-frame{width:180px;height:200px}.photo-frame span{font-size:3rem}.photo-frame p{font-size:1rem}.hero-caption{font-size:.55rem}.stats{grid-template-columns:repeat(2,1fr);row-gap:20px}.stats div:nth-child(3){padding-left:0}.stats div:nth-child(2){border:0}.section{margin-top:45px}.section-title,.heading{align-items:flex-start}.heading{flex-direction:column;margin:12px 0 28px}.heading h1{font-size:2.7rem}.people-grid{grid-template-columns:repeat(2,1fr);gap:10px}.person-card{min-height:190px;padding:16px}.person-card .avatar{width:55px;height:55px}.person-card strong{margin-top:17px}.story-grid{grid-template-columns:1fr}.story-visual{height:135px}.filters{flex-direction:column;gap:0}.profile-hero{padding:25px;gap:20px}.avatar.large{width:95px;height:95px;font-size:2rem}.profile-hero h1{font-size:2rem}.profile-columns{grid-template-columns:1fr;gap:0}.family-overview{grid-template-columns:1fr}.tree-canvas{height:490px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;z-index:10;box-shadow:0 -3px 20px #0001;justify-content:space-around;padding:7px 3px max(7px,env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:none;color:#78877b;font-size:.62rem;min-width:58px;min-height:52px}.bottom-nav span{display:block;font-size:1.35rem}.bottom-nav .active{color:#315e47;font-weight:700}.footer{display:none}.login{grid-template-columns:1fr}.login-visual{padding:45px 30px}.login-visual h1{font-size:2.7rem}.login-card{padding:45px 0}.section-title{gap:12px}.section-title .text-button{font-size:.78rem;white-space:nowrap}}@media(max-width:420px){.profile-hero{align-items:flex-start;flex-direction:column}.button-row{flex-wrap:wrap}.field-row{display:block}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.kin-fields{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.kin-fields label{flex:1;min-width:160px;margin:0}.kin-result{background:#e6eee5;border-radius:10px;padding:20px;margin-top:20px}.kin-result p{margin:7px 0 0}@media(max-width:720px){.kin-fields{display:grid}.kin-fields label{width:100%}}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.photo-grid figure{margin:0;background:#fff;border-radius:10px;overflow:hidden}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover}.photo-grid figcaption{padding:15px;color:#4a6151}@media(max-width:720px){.photo-grid{grid-template-columns:repeat(2,1fr)}}.demo-banner{background:#f2e8d9;color:#654f37;padding:12px 18px;border-radius:8px;font-size:.85rem;margin-bottom:20px}.invite-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;max-width:750px}.invite-form label{margin:0}.invite-form button{align-self:end}.members-list{padding-left:20px;color:#52695a;line-height:2}@media(max-width:720px){.invite-form{grid-template-columns:1fr}}.review-card{background:#fff;border:1px solid #dce5da;border-radius:12px;padding:20px;margin:16px 0}.review-card .button-row{flex-wrap:wrap}.review-card .button-row button{font-size:.83rem}.discovery-choice{padding:22px 4px}.discovery-choice label{display:flex;align-items:center;gap:12px;margin:0}.discovery-choice input{width:22px;min-height:22px;margin:0}.discovery-choice small{color:#66766b;margin-left:34px}.family-switch{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin:15px 0 22px}.family-switch label{min-width:240px;margin:0}.family-switch button{margin-bottom:0}.map-heading{margin-bottom:26px}.map-heading h1{font-size:clamp(2.4rem,4vw,4.2rem)}.map-heading p:last-child{max-width:620px}.family-map{background:#e7eee5;border:1px solid #d9e5d9;border-radius:22px;padding:28px 34px;box-shadow:0 16px 45px #2146310c}.map-level{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:18px;min-height:104px}.map-level:first-child{border-bottom:2px solid #c8d8c8;padding-bottom:18px}.map-level:last-child{border-top:2px solid #c8d8c8;padding-top:18px}.map-level-label{font-size:.76rem;color:#4f6b54;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.map-relatives{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.map-relatives p{font-size:.85rem;margin:0}.map-middle{display:grid;grid-template-columns:minmax(180px,1fr) minmax(300px,1.7fr) minmax(180px,1fr);gap:18px;align-items:center;padding:28px 0}.map-siblings,.map-partners{display:grid;gap:14px}.map-focus{background:#fff;border-radius:18px;border:2px solid #8aa98a;box-shadow:0 12px 30px #2d5c3c1b;padding:25px;display:flex;align-items:center;gap:22px;min-height:192px}.map-focus .avatar.large{width:105px;height:105px;font-size:2rem}.map-focus h2{font-size:clamp(1.5rem,2.5vw,2.2rem);margin:5px 0 7px}.map-focus p{margin-bottom:15px}.map-focus .eyebrow{font-family:DM Sans,sans-serif}.map-add{border:1px dashed #98b19a;border-radius:11px;color:#315e47;background:#f9fcf6;padding:13px 15px;font-weight:700;min-height:48px;text-align:left}.map-add:hover{background:#dcebdc}.relative-card{border:1px solid #dbe6d9;background:#fff;border-radius:12px;display:flex;align-items:center;gap:9px;min-height:62px;padding:7px 10px;color:#314b38;text-align:left;max-width:250px}.relative-card:hover{border-color:#82a885}.relative-card .avatar{width:40px;height:40px;font-size:.9rem}.relative-card span:nth-child(2){font-size:.82rem;font-weight:700}.relative-card small{display:block;color:#78897b;font-weight:400}.tree-toolbar{margin-top:28px}.tree-toolbar strong{font-size:.84rem;color:#466650;margin-right:auto}.tree-node.selected{border:2px solid #488b5b;box-shadow:0 0 0 5px #9fc7a843}.tree-node .life-mark{position:absolute;right:8px;top:8px}.life-mark{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex:none}.life-mark.living{width:11px;height:11px;border-radius:50%;background:#35aa63;box-shadow:0 0 0 3px #40ad6740,0 0 12px #4fca7b;animation:living-glow 2.8s ease-in-out infinite}.life-mark.memorial{font-size:1.1rem;filter:grayscale(.55);opacity:.78;line-height:1}.profile-hero h1 .life-mark{margin-left:10px}.profile-photo{display:grid;justify-items:center;gap:8px}.photo-upload{font-size:.8rem;background:#fff;border-radius:8px;padding:9px 14px;cursor:pointer;margin:0;color:#315e47;min-height:40px}.photo-upload input{position:absolute;width:1px;height:1px;opacity:0}.photo-upload:focus-within{outline:3px solid #bd8c5f}.inline-check{display:flex;align-items:center;gap:10px}.inline-check input{width:22px;min-height:22px;margin:0}.tree-node .avatar{width:44px;height:44px}.person-card .life-mark{margin-top:8px}@keyframes living-glow{0%,to{opacity:.65;box-shadow:0 0 0 3px #40ad6730,0 0 5px #4fca7b}50%{opacity:1;box-shadow:0 0 0 7px #40ad6738,0 0 17px #4fca7b}}@media(prefers-reduced-motion:reduce){.life-mark.living{animation:none}}@media(max-width:1100px){.map-middle{grid-template-columns:1fr 1.5fr}.map-partners{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap}.map-focus{grid-column:2;grid-row:1}.map-siblings{grid-column:1;grid-row:1}}@media(max-width:720px){.family-map{padding:20px 16px;border-radius:16px}.map-level{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:17px 0}.map-middle{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:20px 0}.map-focus{order:-1;padding:20px;min-height:0}.map-focus .avatar.large{width:78px;height:78px;font-size:1.7rem}.map-focus h2{font-size:1.65rem}.map-siblings .map-relatives{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}.map-siblings .relative-card{min-width:180px}.map-siblings .map-add{min-width:160px}.map-level .map-add{width:100%}.relative-card{max-width:none}.map-heading .primary{width:100%}.tree-canvas{height:400px}}@media(max-width:420px){.map-focus{display:block}.map-focus .avatar{margin-bottom:12px}}.surname-explore{margin:32px 0 15px;padding:30px;border-radius:17px;background:linear-gradient(110deg,#f4eee2,#e5ede0);display:grid;grid-template-columns:1fr 1fr;gap:20px 35px}.surname-explore h2{margin-bottom:8px}.surname-explore p{margin-bottom:0}.surname-explore form{display:flex;align-items:end;gap:12px}.surname-explore form label{flex:1;margin:0}.surname-explore .primary{white-space:nowrap}.discovery-results{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.discovery-results article,.empty-discovery{border-radius:12px;background:#fff;padding:18px}.discovery-results p{font-size:.85rem;margin:7px 0 15px}@media(max-width:850px){.surname-explore{grid-template-columns:1fr}.surname-explore form{display:grid}.discovery-results{grid-column:1}}.map-photo-upload{display:inline-block;margin:8px 0 0 12px;border:1px solid #cbdccd}.map-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.share-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:48px}.login-share{display:block;text-align:center;color:#315e47;font-size:.86rem;font-weight:700;margin-top:12px}@media(max-width:720px){.map-heading-actions{width:100%;display:grid}.map-heading-actions .primary,.map-heading-actions .share-link{width:100%}}.orbit-map{background:radial-gradient(circle at 50% 45%,#f7f8ee 0,#e5eee4 72%);border:1px solid #d3e1d3;border-radius:28px;padding:22px 20px 34px;overflow:hidden;box-shadow:0 18px 45px #2146310c}.orbit-hint{text-align:center;font-size:.88rem;margin:0 0 18px;color:#566e5d}.orbit-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px minmax(0,1fr);grid-template-rows:minmax(150px,auto) 300px minmax(150px,auto);align-items:center;position:relative;gap:12px}.orbit-grid:before,.orbit-grid:after{content:"";position:absolute;z-index:0;background:#adc7af}.orbit-grid:before{width:2px;top:85px;bottom:85px;left:50%}.orbit-grid:after{height:2px;left:11%;right:11%;top:50%}.orbit-arm,.orbit-center{z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-width:0}.orbit-north{grid-column:1/-1;grid-row:1}.orbit-west{grid-column:1;grid-row:2}.orbit-center{grid-column:2;grid-row:2;position:relative;gap:3px}.orbit-east{grid-column:3;grid-row:2}.orbit-south{grid-column:1/-1;grid-row:3}.orbit-label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#466c50;background:#e5eee4;padding:5px 9px;border-radius:20px}.orbit-people{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;max-width:100%}.orbit-person{width:102px;min-height:102px;aspect-ratio:1;border-radius:50%;border:2px solid #b9d0b9;background:#fff;box-shadow:0 5px 18px #244d3220;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:9px;color:#254431;position:relative;transition:transform .18s,border-color .18s}.orbit-person:hover{transform:scale(1.06);border-color:#4e9062}.orbit-person .avatar{width:40px;height:40px;font-size:.9rem}.orbit-person strong,.orbit-person>span:not(.avatar):not(.life-mark){font-size:.7rem;line-height:1.1;max-width:90%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.orbit-person>span:not(.avatar):not(.life-mark){font-size:.63rem;color:#607568}.orbit-person .life-mark{position:absolute;right:9px;top:9px}.orbit-add{border:2px dashed #9bb99d;border-radius:24px;background:#f9fcf7;color:#28553b;font-size:.81rem;font-weight:700;min-height:44px;padding:8px 12px;white-space:normal}.orbit-add:hover{background:#dcebdc}.orbit-center:before{content:"";position:absolute;width:260px;height:260px;border:2px solid #96b79a;border-radius:50%;pointer-events:none;top:4px}.center-person{width:226px;height:226px;border:3px solid #4e8a5b;border-radius:50%;background:#fff;box-shadow:0 12px 35px #20402c27;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;padding:18px;color:#24422f;position:relative;transition:transform .18s}.center-person:hover{transform:scale(1.025)}.center-person .avatar{width:90px;height:90px;font-size:2rem}.center-person strong{font:600 1.17rem Playfair Display,Georgia,serif;line-height:1.1}.center-surnames{font-size:.85rem;line-height:1.2;max-width:190px;overflow-wrap:anywhere}.center-person .life-mark{position:absolute;right:31px;top:29px}.center-profile-link{background:none;border:0;color:#28563b;font-weight:700;min-height:36px}.center-photo-upload{background:#eaf2e8;border:1px solid #cbdccd;font-size:.74rem;padding:5px 10px;min-height:35px}.tree-node{width:174px;height:174px;border-radius:50%;gap:5px;padding:14px}.tree-node .avatar{width:58px;height:58px}.tree-node strong{font-size:.87rem}.tree-node .node-surnames{font-size:.72rem;line-height:1.1;max-width:140px;color:#607568;overflow-wrap:anywhere}.tree-node .life-mark{right:24px;top:20px}.tree-node .react-flow__handle{width:8px;height:8px;background:#7da687}@media(max-width:850px){.orbit-grid{grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);grid-template-rows:minmax(145px,auto) 250px minmax(145px,auto);gap:4px}.orbit-center:before{width:210px;height:210px;top:0}.center-person{width:188px;height:188px}.center-person .avatar{width:68px;height:68px}.orbit-person{width:88px;min-height:88px}.orbit-person .avatar{width:32px;height:32px}.orbit-people{gap:5px}.orbit-add{font-size:.72rem;padding:7px 8px}}@media(max-width:600px){.orbit-map{padding:17px 7px 22px;border-radius:18px}.orbit-hint{font-size:.76rem;padding:0 8px}.orbit-grid{grid-template-columns:minmax(76px,1fr) 150px minmax(76px,1fr);grid-template-rows:minmax(128px,auto) 202px minmax(128px,auto);gap:2px}.orbit-grid:before{top:65px;bottom:65px}.orbit-grid:after{left:9%;right:9%}.orbit-center:before{width:153px;height:153px;top:0}.center-person{width:145px;height:145px;padding:9px;gap:3px}.center-person .avatar{width:54px;height:54px;font-size:1.2rem}.center-person strong{font-size:.93rem}.center-surnames{font-size:.7rem}.center-person .life-mark{right:17px;top:16px}.orbit-label{font-size:.62rem;letter-spacing:0;padding:4px}.orbit-person{width:75px;min-height:75px;padding:5px}.orbit-person .avatar{width:28px;height:28px;font-size:.65rem}.orbit-person strong,.orbit-person>span:not(.avatar):not(.life-mark){font-size:.59rem}.orbit-person .life-mark{right:3px;top:2px}.orbit-add{max-width:94px;min-height:44px;font-size:.68rem;line-height:1.1;border-radius:16px}.center-profile-link{font-size:.7rem;min-height:28px}.center-photo-upload{font-size:.68rem}.orbit-west .orbit-people,.orbit-east .orbit-people{max-height:160px;overflow-y:auto}.orbit-north .orbit-people,.orbit-south .orbit-people{max-height:84px;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;max-width:100%}}@media(prefers-reduced-motion:reduce){.orbit-person,.center-person{transition:none}}.generation-lines{display:grid;gap:12px;margin:24px auto 0;max-width:850px}.generation-line{display:grid;grid-template-columns:185px minmax(0,1fr);align-items:center;gap:16px;border-top:1px solid #c5d7c6;padding:13px 0}.generation-line>strong{font-size:.86rem;color:#355941}.generation-line small{display:block;font-size:.68rem;font-weight:400;color:#647a69;margin-top:3px}.generation-line>div{display:flex;align-items:center;gap:12px;overflow-x:auto;padding:7px 4px;scrollbar-width:thin}.generation-line .orbit-person{flex:none}.generation-line .line-self{border-radius:50%;box-shadow:0 0 0 4px #609369;flex:none}.line-empty{color:#718678;font-size:.78rem}@media(max-width:600px){.generation-lines{gap:0;margin:18px 10px 0}.generation-line{grid-template-columns:1fr;gap:5px}.generation-line .orbit-person{width:86px;height:86px}}.orbit-grid{grid-template-rows:minmax(140px,auto) 285px minmax(125px,auto)}.orbit-center:before{display:none}.center-person:before{content:"";position:absolute;inset:-14px;border:2px solid #96b79a;border-radius:50%;pointer-events:none}.orbit-center{gap:14px}.center-profile-link,.center-photo-upload{position:relative;z-index:2;background:#e5eee4;border-radius:8px;padding:5px 10px}.orbit-grid:before{top:95px;bottom:70px}.orbit-west .orbit-people,.orbit-east .orbit-people{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding:6px}.orbit-east.has-partner:before{content:"⚭";position:absolute;transform:translate(-50%);left:0;top:50%;background:#f8faf5;border:1px solid #9bb99d;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:1.55rem;color:#507b56;z-index:2}.orbit-east{position:relative}.orbit-east.has-partner .orbit-label{margin-left:16px}@media(max-width:850px){.orbit-grid{grid-template-rows:minmax(130px,auto) 245px minmax(125px,auto)}.center-person:before{inset:-11px}}@media(max-width:600px){.orbit-grid{grid-template-rows:minmax(120px,auto) 200px minmax(120px,auto)}.orbit-center{gap:6px}.center-person:before{inset:-7px}.orbit-grid:before{top:75px;bottom:62px}.orbit-east.has-partner:before{left:0;width:26px;height:26px;font-size:1rem}}.avatar.fallback svg{width:60%;height:60%;color:#967761}.legal-checks{border-top:1px solid #dbe3d9;margin:17px 0;padding-top:15px}.legal-checks label{display:flex;align-items:flex-start;gap:9px;font-weight:500;line-height:1.4;margin:0 0 10px}.legal-checks input{width:20px;height:20px;min-height:20px;margin:0;flex:none}.legal-checks a,.legal-page a{color:#285a3d;text-decoration:underline}.legal-checks p{font-size:.76rem;margin:5px 0 0}.legal-page{max-width:850px;margin:0 auto;padding:50px 25px 100px}.legal-page h1{margin-top:30px}.legal-page h2{margin:35px 0 10px;font-size:1.6rem}.legal-note{border-top:1px solid #d8e2d7;padding-top:18px}.public-portal{min-height:100vh;background:#f7f4ee;color:#29392f}.public-header{display:flex;align-items:center;gap:1rem;padding:1rem clamp(1rem,5vw,4rem);background:#fffdf9}.public-header strong{flex:1}.public-portal main{max-width:1150px;margin:auto;padding:clamp(1rem,4vw,3rem)}.public-intro{max-width:750px;margin:1rem 0 2rem}.public-intro h1{font-size:clamp(2.3rem,6vw,5rem);line-height:1.08}.public-intro p{font-size:1.1rem;line-height:1.6}.public-search{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.public-search label{flex:1;min-width:240px}.public-search input{width:100%}.public-map{background:radial-gradient(circle at center,#e8f0e7,#f3eee3);border-radius:2rem;min-height:350px;padding:clamp(1.2rem,3vw,2.5rem)}.public-map-head{max-width:550px}.public-nodes{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin:3rem auto}.public-node{width:160px;height:160px;border-radius:50%;border:2px solid #aec9b4;background:#fffdf8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-align:center;padding:1rem;cursor:pointer;box-shadow:0 12px 25px #243f2d19}.public-node .avatar{width:50px;height:50px}.public-node strong,.public-node span{max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-node small{font-size:.72rem}.public-empty{text-align:center;max-width:450px;margin:2rem auto}.public-empty .brand-mark{font-size:3rem}.public-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;padding:2rem}.public-auth{max-width:520px;margin:1rem auto}.public-auth form{display:grid;gap:1rem}.public-auth .recovery-note{font-size:.9rem;line-height:1.5}.public-portal button:focus-visible,.public-portal input:focus-visible{outline:3px solid #246b49;outline-offset:3px}@media(max-width:600px){.public-header{flex-wrap:wrap}.public-header strong{font-size:.9rem}.public-map{border-radius:1.25rem}.public-node{width:140px;height:140px}.public-nodes{gap:.7rem}}.own-surname-results{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem 0}.own-surname-results h3{width:100%;margin:0}.own-surname-results button{text-align:left}.public-search-status{padding:.9rem 1.1rem;border-radius:1rem;background:#e8f0e7;color:#203a29;font-weight:600;margin:0 0 1rem}.public-empty button{margin:.4rem}.public-auth a{color:#245a3b;text-decoration:underline}.visibility-choice{border:1px solid #b4c8b6;border-radius:1rem;padding:1rem;display:grid;gap:.8rem}.visibility-choice legend{font-weight:700;padding:0 .35rem}.visibility-choice label{display:flex;align-items:flex-start;gap:.65rem;line-height:1.35;cursor:pointer}.visibility-choice input{width:1.3rem;height:1.3rem;flex:none;margin:.1rem 0}.visibility-choice small{line-height:1.5}.public-intro{margin:0 0 1.5rem}.public-intro h1{font-size:clamp(2.3rem,5vw,4.4rem);max-width:850px}.public-intro p{max-width:680px}.hero-action{margin-top:.5rem}.public-map{min-height:0}.demo-family{max-width:850px;margin:1.5rem auto 0;text-align:center}.demo-key{margin-bottom:1.3rem}.demo-key>span{display:inline-block;border-radius:100px;padding:.4rem .85rem;background:#fffaf1;color:#744c33;font-size:.75rem;letter-spacing:.08em;font-weight:800}.demo-key p{margin:.5rem 0;color:#536658}.demo-label{display:block;color:#4b6252;font-weight:750;font-size:.78rem;letter-spacing:.055em;text-transform:uppercase;margin-bottom:.65rem}.demo-people{display:flex;justify-content:center;align-items:center;gap:.75rem;min-height:118px}.demo-person{appearance:none;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;flex:none;width:118px;height:118px;padding:.65rem;border-radius:50%;border:2px solid #a5bea8;background:#fffcf6;color:#203b2b;box-shadow:0 9px 20px #2c513018;text-align:center;cursor:pointer;transition:transform .18s,box-shadow .18s}.demo-person:hover{transform:translateY(-3px);box-shadow:0 12px 25px #2c51302a}.demo-person .avatar{height:41px;width:41px;flex:none}.demo-person strong,.demo-person>span:not(.avatar):not(.life-mark){display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.demo-person>span:not(.avatar):not(.life-mark){font-size:.71rem}.demo-person .life-mark{position:absolute;right:7px;top:9px}.demo-person.selected{height:154px;width:154px;border:3px solid #35724d;cursor:default;box-shadow:0 0 0 7px #b7d1b978,0 14px 28px #2c51302b}.demo-person.selected .avatar{width:53px;height:53px}.demo-person.selected strong{font-size:1rem}.demo-person:focus-visible{outline:3px solid #245e3d;outline-offset:4px}.demo-parents{position:relative;padding-bottom:1.1rem}.demo-parents:after,.demo-children:before{content:"";display:block;width:2px;height:22px;background:#91ae99;margin:auto}.demo-middle{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);align-items:center;gap:1rem}.demo-middle .demo-relatives{min-width:0}.demo-middle .demo-people{flex-wrap:wrap}.demo-siblings,.demo-partners{position:relative}.demo-siblings:after,.demo-partners:before{content:"";position:absolute;top:52%;height:2px;width:28px;background:#91ae99}.demo-siblings:after{right:-21px}.demo-partners:before{left:-21px}.demo-children{padding-top:1rem}.demo-children:before{margin:0 auto 1rem}.demo-unknown{color:#6d7b70;font-size:.8rem;font-style:italic}.demo-caption{margin:1.6rem auto 0;color:#536658;font-size:.85rem}.public-portal .footer a{color:#245e3d;font-size:.95rem;text-decoration:underline}.public-portal .public-search{margin-top:1.6rem}@media(max-width:720px){.public-portal main{padding:1.15rem}.public-header{padding:.8rem 1rem}.public-header .brand-mark{font-size:1.3rem}.public-header .secondary{padding:.65rem .8rem;font-size:.82rem}.public-intro h1{font-size:clamp(2.2rem,9vw,3.5rem);line-height:1.08}.public-intro p{font-size:1rem;line-height:1.5}.hero-action{width:100%;min-height:50px}.public-map{padding:1.1rem .45rem;border-radius:1.2rem}.public-map-head{padding:0 .8rem}.public-map-head h2{font-size:1.65rem}.public-search{display:grid;gap:.6rem}.public-search label,.public-search button{width:100%;min-width:0}.public-search button{min-height:48px}.demo-key{margin:1rem .5rem}.demo-key p{font-size:.85rem}.demo-middle{grid-template-columns:minmax(0,1fr) 126px minmax(0,1fr);gap:.15rem}.demo-person{width:86px;height:86px;padding:.25rem}.demo-person .avatar{width:30px;height:30px}.demo-person strong{font-size:.72rem}.demo-person>span:not(.avatar):not(.life-mark){font-size:.62rem}.demo-person.selected{width:120px;height:120px}.demo-person.selected .avatar{width:42px;height:42px}.demo-person.selected strong{font-size:.88rem}.demo-middle .demo-people{min-height:90px;max-height:195px;overflow:auto;gap:.3rem}.demo-parents .demo-people,.demo-children .demo-people{min-height:90px}.demo-label{font-size:.62rem;letter-spacing:0}.demo-siblings:after,.demo-partners:before{display:none}.demo-unknown{font-size:.67rem}.demo-caption{padding:0 .6rem}}@media(max-width:370px){.demo-middle{grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr)}.demo-person{width:76px;height:76px}.demo-person.selected{width:106px;height:106px}.demo-person .avatar{width:27px;height:27px}.demo-person.selected .avatar{width:36px;height:36px}}@media(prefers-reduced-motion:reduce){.demo-person{transition:none}.demo-person:hover{transform:none}}.public-discovery{padding:clamp(1.2rem,3vw,2.5rem) 0}.public-discovery h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:0 0 .5rem}.public-discovery>p{max-width:620px;color:#52645a}.public-discovery .public-nodes{margin:1rem auto}.public-portal .public-search{margin-top:1rem}.public-map-head h2{margin:0 0 .35rem}.public-map-head p{margin:0}.public-map .demo-family{margin-top:.75rem}@media(max-width:720px){.public-portal main{padding:.75rem}.public-intro{padding:.2rem .45rem;margin:0 0 .9rem}.public-intro .eyebrow{font-size:.72rem;margin:.4rem 0}.public-intro h1{font-size:clamp(2rem,8vw,2.75rem);margin:.25rem 0 .6rem}.public-intro p{font-size:.94rem;margin:.45rem 0}.hero-action{margin-top:.25rem}.public-map-head h2{font-size:1.45rem}.public-map-head p{font-size:.86rem}.demo-key{margin:.6rem}.demo-family{margin-top:.3rem}.public-discovery{padding:1.5rem .45rem}}.assisted-publication{max-width:720px;background:#eef3eb;border-radius:16px;padding:24px;margin:24px 0}.assisted-publication h2{font-size:1.5rem}.assisted-publication form{max-width:560px}.assisted-publication .assisted-check{display:flex;align-items:flex-start;gap:12px;line-height:1.5}.assisted-publication .assisted-check input{width:24px;min-width:24px;min-height:24px;margin:0}.assisted-publication small{display:block;margin:14px 0 0;color:#66766b}@media(max-width:720px){.assisted-publication{padding:22px 18px}.assisted-publication .primary,.assisted-publication .secondary{width:100%;min-height:48px}}.pending-access{background:#eef3eb;border-radius:12px;padding:15px 18px;margin:16px 0}.pending-access p{margin:5px 0;color:#4e6153}.pending-access .text-button{padding:7px 0}.kin-map{background:#f8f3ed;border-radius:26px;padding:28px clamp(15px,3vw,42px);color:#353a35;overflow:hidden}.kin-map-intro{text-align:center}.kin-map-intro p{margin:7px auto 22px;max-width:650px}.kin-map h3{font:700 .78rem DM Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#746c60;text-align:center;margin:0 0 13px}.kin-ancestors,.kin-descendants{position:relative;display:flex;flex-direction:column;align-items:center;gap:15px}.kin-ancestors:after,.kin-descendants:before{content:"";display:block;width:2px;height:28px;background:#9c9b8e}.kin-rail,.kin-sibling-rail{display:flex;align-items:flex-start;justify-content:center;gap:16px;min-width:max-content;padding:5px 18px 16px}.kin-row{max-width:100%;overflow-x:auto;scrollbar-width:thin;text-align:center}.kin-row .kin-rail{min-width:100%}.kin-card{border:0;background:transparent;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:104px;max-width:128px;width:clamp(104px,11vw,128px);padding:8px 2px 12px;color:#343e34;text-align:center}.kin-card .avatar{width:clamp(70px,8vw,94px);height:clamp(70px,8vw,94px);border:4px solid #fff;border-radius:50%;box-shadow:0 6px 20px #36433b30;object-fit:cover}.kin-card strong,.kin-card span:not(.avatar):not(.life-mark){display:block;max-width:100%;overflow-wrap:anywhere;line-height:1.15}.kin-card strong{font-size:1rem;margin-top:6px}.kin-card span:not(.avatar):not(.life-mark){font-size:.82rem}.kin-card small{font-size:.66rem;color:#786b5e;margin-top:3px}.kin-card .life-mark{position:absolute;top:68px;right:8px}.kin-card:hover .avatar,.kin-card:focus-visible .avatar{box-shadow:0 0 0 3px #537f5e}.kin-empty{color:#817a70;font-size:.85rem;padding:12px}.kin-generation-wrap{border-top:2px solid #aaa99a;border-bottom:2px solid #aaa99a;padding:18px 0 8px;position:relative}.kin-generation{max-width:100%;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity}.kin-sibling-rail{margin:auto;width:max-content;max-width:none;gap:8px}.kin-person-wrap{display:flex;align-items:flex-start;scroll-snap-align:center}.kin-current{border:2px solid #729777;background:#e8efe4;border-radius:66px;min-width:126px;width:132px;padding:10px 8px}.kin-current .avatar{width:86px;height:86px}.kin-current strong{font-size:1.1rem}.kin-partner{display:flex;align-items:flex-start}.kin-marriage{display:grid;place-items:center;align-self:flex-start;margin:43px 0 0;width:35px;height:35px;border-radius:50%;background:#f1e1d1;color:#805d44;font-size:1.35rem;border:1px solid #d8b99e}.kin-generation-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:5px}.kin-add{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bacbbb;border-radius:22px;padding:7px 13px;min-height:40px;background:#fff;color:#2f6940;font-weight:700;font-size:.78rem;cursor:pointer}.kin-add:hover{background:#e5efe2}.kin-upload{margin:0}.kin-upload input{display:none}.kin-branches{border-top:1px solid #d5d1c8;margin-top:25px;padding-top:22px}.kin-branch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kin-branch-grid .kin-row{background:#fff9;border-radius:15px;padding:15px 4px}.kin-branch-grid .kin-rail{justify-content:flex-start}.kin-advanced{margin-top:24px}.kin-advanced>summary{cursor:pointer;padding:14px 18px;background:#e8eee7;border-radius:12px;color:#315c40;font-weight:700}.kin-advanced .tree-toolbar{margin-top:22px}.phone-pair{display:grid;grid-template-columns:minmax(140px,40%) minmax(0,1fr);gap:10px}.phone-pair label{min-width:0}.phone-pair select{width:100%;padding:10px 7px}.phone-pair input{width:100%}@media(max-width:720px){.kin-map{margin:0 -8px;padding:20px 11px;border-radius:18px}.kin-map-intro p{font-size:.85rem}.kin-card{min-width:90px;width:98px}.kin-card .avatar{width:66px;height:66px}.kin-card .life-mark{top:51px}.kin-current{min-width:112px;width:112px}.kin-current .avatar{width:74px;height:74px}.kin-marriage{margin-top:34px}.kin-branch-grid{grid-template-columns:1fr}.kin-branch-grid .kin-row{overflow-x:auto}.kin-generation-actions .kin-add{min-height:46px}.phone-pair{grid-template-columns:minmax(130px,42%) minmax(0,1fr)}}.kin-sibling-rail{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;min-width:680px}.kin-siblings-before,.kin-siblings-after{display:flex;align-items:flex-start;gap:8px}.kin-siblings-before{justify-content:flex-end}.kin-siblings-after{justify-content:flex-start}.kin-focus-wrap{justify-self:center}.public-intro{max-width:none;margin:0 0 1rem}.public-intro h1{font-size:clamp(2.25rem,4vw,3.55rem);max-width:760px;margin-bottom:.5rem}.public-intro p{font-size:1rem;line-height:1.4;margin-bottom:.6rem}.public-map{padding:clamp(1rem,2vw,1.7rem)}@media(max-width:720px){.kin-sibling-rail{min-width:580px}.public-intro h1{font-size:clamp(2rem,8vw,2.75rem)}}.kin-current{width:160px;min-width:160px;max-width:160px;height:160px;min-height:160px;border-radius:50%;padding:9px 12px;justify-content:center;flex:none}.kin-current .avatar{width:76px;height:76px;flex:none}.kin-current strong{margin-top:2px}.kin-current small{position:absolute;bottom:-20px;width:190px;left:50%;transform:translate(-50%)}.kin-current .life-mark{top:66px;right:18px}@media(max-width:720px){.kin-current{width:140px;min-width:140px;max-width:140px;height:140px;min-height:140px}.kin-current .avatar{width:68px;height:68px}.kin-current .life-mark{top:55px;right:12px}}.public-intro{position:relative;isolation:isolate;overflow:hidden;min-height:330px;padding:clamp(1.5rem,4vw,3.2rem);border-radius:26px;background:#e7dac8 url(/images/family-gathering.png) center 48%/cover no-repeat;box-shadow:0 20px 50px #4b392223}.public-intro:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#faf5ebf5,#faf5ebdb 34%,#faf5eb24 75%)}.public-intro h1{max-width:660px;font-family:Georgia,serif;letter-spacing:-.035em;text-wrap:balance}.public-intro>p:not(.eyebrow){max-width:490px;color:#34483c;font-size:1.06rem}.public-map{margin-top:1.25rem}.public-map-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap}.public-map-head h2{font-family:Georgia,serif}.kin-demo{background:radial-gradient(circle at 52% 40%,#fff9ed 0,#f0e8d9 75%);border:1px solid #e0d3c0;box-shadow:0 18px 40px #46382212}.kin-demo .kin-row .kin-rail{align-items:center}.kin-demo .kin-card .avatar{border-color:#fff9ed}.demo-portrait{display:inline-block;flex:none;background-image:url(/images/demo-portraits.png);background-size:400% 400%;background-repeat:no-repeat;background-color:#c2aa88;object-fit:cover}.kin-parent-link{position:relative;flex:none;margin:16px -5px 0;align-self:center}.kin-parent-link:before,.kin-parent-link:after{content:"";position:absolute;top:50%;width:15px;height:2px;background:#b68b67}.kin-parent-link:before{right:100%}.kin-parent-link:after{left:100%}.admin-family-picker{display:flex;align-items:center;gap:.6rem;color:#35543e;font-weight:700;font-size:.84rem}.admin-family-picker select{max-width:min(330px,40vw);min-height:44px;border:1px solid #b4c7b5;border-radius:10px;background:#fff;padding:.45rem .7rem;font:inherit;color:#263c2d}.admin-global-directory{padding:clamp(1rem,3vw,2rem);margin:0 0 1.5rem;background:#f3eee5;border-radius:22px}.admin-global-directory h2{font-family:Georgia,serif;margin:.2rem 0}.admin-global-directory>p{max-width:650px}.admin-global-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;margin-top:1.2rem}.admin-global-person{display:flex;align-items:center;gap:.8rem;text-align:left;border:1px solid #d9d9cd;border-radius:15px;background:#fffdf9;padding:.7rem;min-height:72px;cursor:pointer;color:#263d30}.admin-global-person:hover,.admin-global-person:focus-visible{border-color:#4b835c;box-shadow:0 3px 12px #304d2b18}.admin-global-person .avatar{width:46px;height:46px;flex:none}.admin-global-person span:nth-child(2){flex:1;min-width:0}.admin-global-person strong,.admin-global-person small{display:block;overflow-wrap:anywhere}.admin-global-person small{color:#657266;margin-top:.2rem}@media(max-width:720px){.public-intro{min-height:320px;padding:1.3rem;border-radius:18px;background-position:65% center}.public-intro:before{background:linear-gradient(90deg,#faf5ebf2,#faf5ebc2 60%,#faf5eb47)}.public-intro h1{font-size:clamp(2rem,8vw,3rem)}.public-map-head{padding:0 .4rem}.admin-family-picker{margin-left:auto}.admin-family-picker select{max-width:55vw;font-size:.78rem}.admin-global-grid{grid-template-columns:1fr}.admin-global-person{min-height:64px}}.birth-place-fields{border:1px solid #cfddd0;border-radius:14px;padding:14px;margin:12px 0}.birth-place-fields legend{padding:0 6px;font-weight:700;color:#2d5038}.birth-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.birth-place-fields small{display:block;color:#63756a;margin-top:8px}.public-auth .birth-place-grid{grid-template-columns:1fr}.assisted-publication{max-width:760px}.assisted-publication summary{cursor:pointer;font-size:1.3rem;font-family:Georgia,serif;font-weight:700;color:#243b2f}.assisted-body{padding-top:12px}.assisted-publication form>label{display:block;margin:14px 0}.assisted-publication input:not([type=checkbox]),.assisted-publication select{width:100%;min-width:0;min-height:48px;margin-top:7px;padding:12px 13px}.assisted-publication .assisted-check{display:flex}.assisted-publication .form-error{padding:12px;border-radius:9px;background:#fff0e9;color:#7f2e20;font-weight:700}.discovery-spotlight{background:#f0f4eb;border-radius:18px;padding:22px!important;border:1px solid #d2e3cc}.kinship-group{margin:18px 0}.kinship-group h3{font-size:.96rem;margin:0 0 8px;color:#365d43}.admin-self-profile{background:#eef3eb;border-radius:15px;padding:18px;margin:12px 0 20px}.admin-self-profile .secondary{margin:5px 7px 5px 0;white-space:normal;text-align:left}@media(max-width:720px){.birth-place-grid{grid-template-columns:1fr}.assisted-publication{max-width:100%}.assisted-publication summary{font-size:1.15rem}}.sidebar-bottom .my-profile-link{border:1px solid #86a590;border-radius:9px;background:transparent;color:#f6f3e9;padding:8px 10px;min-height:42px;font-weight:700;cursor:pointer}.sidebar-bottom .my-profile-link:hover,.sidebar-bottom .my-profile-link:focus-visible{background:#305e45}.relation-review{margin:20px 0 8px;border-top:1px solid #d5dfd3;padding-top:14px}.relation-review summary{cursor:pointer;color:#315e47;font-weight:700}.relation-review-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #e4e9e1;padding:8px 0}.relation-review-item .text-button{white-space:nowrap;color:#834a31}@media(max-width:720px){.relation-review-item{align-items:flex-start;flex-direction:column}.relation-review-item .text-button{min-height:44px}}.cross-tree-matches{padding:12px 0}.cross-tree-matches h3{font-size:1rem;margin:.4rem 0}.cross-tree-matches .secondary{margin:4px 6px 4px 0;white-space:normal;text-align:left}.cross-tree-matches small{display:block;color:#596a5d;margin-top:8px}.hint-grid{display:grid;gap:1rem;margin:1.2rem 0}.hint-card{padding:1rem;border:1px solid #dce5d8;border-radius:18px;background:#fffdf8;display:grid;gap:.9rem}.hint-person{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;background:transparent;border:0;cursor:pointer;color:inherit;min-height:54px}.hint-person span:nth-child(2){flex:1}.hint-person small{display:block}.hint-card label{display:grid;gap:.4rem;font-weight:600}.hint-card select{width:100%;min-height:48px;border-radius:10px;padding:.6rem;background:#fff}.hint-actions{display:flex;flex-wrap:wrap;gap:.55rem}.hint-actions button{min-height:44px}.hint-dismissed>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0}.kin-advanced{display:block;margin-top:1rem;padding:clamp(1rem,2.5vw,1.6rem);background:#eaf0e8;border-radius:22px}.kin-advanced>h2{margin:.2rem 0 .4rem}.kin-advanced>p{margin:0 0 1rem}.map-link-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#0f241f9e;padding:1rem}.map-link-dialog{background:#fffdf8;border-radius:20px;padding:clamp(1rem,3vw,2rem);width:min(100%,500px);max-height:90vh;overflow:auto;display:grid;gap:1rem;box-shadow:0 25px 70px #10231d55}.map-link-dialog label{display:grid;gap:.4rem;font-weight:600}.map-link-dialog select{width:100%;min-height:48px;padding:.7rem;border-radius:10px}.map-link-dialog .button-row button{min-height:46px}@media(max-width:720px){.tree-canvas{height:430px}.kin-advanced .tree-toolbar{display:flex;flex-wrap:wrap;gap:.5rem}.map-link-dialog{align-self:end;border-radius:20px 20px 0 0}}#mapa-completo{scroll-margin-top:1.5rem}.kin-advanced .react-flow__edge{cursor:pointer}.kin-advanced .react-flow__edge:hover path{stroke:#216a54;stroke-width:4}.hint-pending{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin:.7rem 0;padding:.8rem 1rem;border-radius:12px;background:#e5eee8}.hint-pending button{min-height:44px}.people-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.people-filters label:first-child{grid-column:span 2}.people-filters label{min-width:0}.people-filters input,.people-filters select{width:100%;min-height:46px}.bulk-toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;background:#eaf0e8;border-radius:16px;padding:1rem;margin-bottom:1rem}.bulk-toolbar small{flex-basis:100%}.bulk-toolbar button{min-height:44px}.person-card-wrap{min-width:0}.person-card-wrap .person-card{width:100%;height:calc(100% - 36px)}.person-select{display:flex;gap:.45rem;align-items:center;min-height:36px;font-weight:600;font-size:.85rem}.person-select input{width:20px;height:20px}.person-card small{display:block;margin-top:.5rem;color:#356852}.person-card-wrap .person-card{display:flex;flex-direction:column}.person-edit-grid .field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.person-edit-grid .field-row label{min-width:0}.person-edit-grid input,.person-edit-grid select,.person-edit-grid textarea{width:100%;min-height:48px}.person-edit-grid .inline-check input{width:20px;min-height:20px}.person-edit-grid .birth-place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:900px){.people-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.people-filters label:first-child{grid-column:span 2}.person-edit-grid .birth-place-grid{grid-template-columns:1fr}}@media(max-width:520px){.people-filters{grid-template-columns:1fr}.people-filters label:first-child{grid-column:auto}.person-edit-grid .field-row{grid-template-columns:1fr}.bulk-toolbar .primary{width:100%}}.person-edit-grid details{margin:1rem 0;display:grid;gap:1rem}.person-edit-grid details summary{display:list-item;cursor:pointer;margin-bottom:1rem;padding:.65rem .8rem;border-radius:10px;background:#eaf0e8;font-weight:700}.person-edit-grid details>label{display:block;margin-bottom:1rem}.person-edit-grid .birth-place-fields{margin:1.1rem 0}.person-edit-grid .birth-place-grid label{display:grid;gap:.4rem}.person-edit-grid .field-row{margin:.7rem 0}.person-edit-grid>small{display:block;margin:-.6rem 0 1rem;color:#63756a}.sidebar-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 4px 0;align-items:stretch}.sidebar-identity{grid-column:1/-1;display:flex;align-items:center;gap:11px;min-width:0;padding-bottom:7px}.sidebar-person{min-width:0;overflow-wrap:anywhere;line-height:1.25;font-weight:700}.sidebar-bottom .my-profile-link,.sidebar-bottom .logout{margin:0;min-width:0;min-height:44px;white-space:nowrap;text-align:center;font-size:.82rem}.sidebar-bottom .logout{border:1px solid #86a590;border-radius:9px;padding:8px 10px}.topbar{gap:14px}.view-as-control{position:relative;margin-left:auto;flex:none;z-index:15}.view-as-toggle{border:1px solid #b5c8b8;border-radius:9px;background:#fff;color:#26543d;padding:9px 13px;min-height:44px;font-weight:700}.view-as-menu{position:absolute;right:0;top:calc(100% + 8px);width:min(330px,calc(100vw - 32px));padding:16px;background:#fff;border:1px solid #d5e0d5;border-radius:14px;box-shadow:0 14px 35px #17372e33}.view-as-menu label{margin-bottom:8px}.view-as-results{max-height:320px;overflow:auto}.view-as-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #e9eee8;background:#fff;color:#263d30;padding:12px;min-height:52px}.view-as-results button:hover,.view-as-results button[aria-selected=true]{background:#eaf1e8}.view-as-results small{display:block;color:#64796b}.view-as-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f2e8ce;border-radius:10px;color:#4b3a20;padding:12px 16px;margin-bottom:20px}.view-as-banner button{border:1px solid #8c7246;background:#fff9ec;border-radius:8px;color:#4b3a20;padding:9px 12px;min-height:44px;font-weight:700}@media(max-width:720px){.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:10px 16px}.topbar .privacy,.topbar .today{display:none}.view-as-control{margin-left:auto}.view-as-toggle{max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-as-banner{align-items:flex-start;flex-direction:column}.view-as-banner button{width:100%}}.bulk-toolbar label{flex:1 1 190px;margin:0}.bulk-toolbar label:nth-of-type(2){flex:2 1 260px}.bulk-toolbar input{width:100%}@media(max-width:720px){.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar label,.bulk-toolbar label:nth-of-type(2){flex:auto;width:100%}.bulk-toolbar button{width:100%}}.tree-node{position:relative;overflow:visible}.tree-node-main{border:0;background:transparent;color:inherit;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:0;cursor:grab;text-align:center}.tree-node-main:active{cursor:grabbing}.tree-node-main .avatar{flex:none}.tree-node .react-flow__handle{width:28px;height:28px;border:3px solid #fff;background:#39795b;box-shadow:0 2px 7px #17372e66;z-index:5;touch-action:none}.tree-node .react-flow__handle:after{color:#fff;position:absolute;inset:0;display:grid;place-items:center;font-size:17px;font-weight:700;line-height:1}.tree-node .handle-top:after{content:"↑"}.tree-node .handle-bottom:after{content:"↓"}.tree-node .handle-left:after{content:"↔"}.tree-node .handle-right:after{content:"♡"}.tree-node .handle-top{top:-2px}.tree-node .handle-bottom{bottom:-2px}.tree-node .handle-left{left:-2px}.tree-node .handle-right{right:-2px}.tree-node .life-mark{right:20px;top:20px}.map-instructions{background:#fff9eb;border-left:4px solid #b5844e;border-radius:10px;padding:14px 17px;margin:0 0 16px}.map-instructions p{margin:5px 0 0;color:#476052}.map-tap-help{background:#dcece0;color:#173e2b;padding:12px;border-radius:10px;margin-bottom:12px;font-weight:700}.map-tap-help button{border:0;background:#fff;border-radius:8px;padding:9px 12px;min-height:44px;margin-left:12px}.map-link-note{font-size:.85rem;margin:0}.hint-inbox{background:#e8f1e8;border-radius:14px;padding:16px;margin:18px 0}.hint-inbox h3,.hint-confirmed h3{font-size:1.25rem}.hint-inbox .hint-card{margin-bottom:8px}.hint-confirmed{margin-top:20px;padding:15px;border-left:3px solid #b5844e;background:#f7f4e9}.map-link-dialog .button-row{flex-wrap:wrap}.map-link-dialog .button-row button{flex:1 1 135px}@media(max-width:720px){.tree-node .react-flow__handle{width:42px;height:42px}.tree-node .react-flow__handle:after{font-size:24px}.map-instructions{font-size:.86rem}.map-tap-help button{display:block;width:100%;margin:8px 0 0}.tree-node-main{touch-action:none}}.map-onboarding{margin-top:12px!important;padding:12px 15px;border-radius:10px;background:#fff5df;color:#4f563f!important;font-weight:600;font-size:.9rem}.provisional-notice{background:#fff3df;color:#744e20;padding:12px 16px;border-radius:10px;margin:14px 0;font-weight:700}.kin-advanced .react-flow__edge:has(text){opacity:.95}.kin-card.kin-provisional{border-style:dashed;border-color:#b57b32;box-shadow:0 0 0 3px #eacb9140}.portrait-with-mark{display:inline-block;position:relative;line-height:0;flex:none;isolation:isolate}.portrait-with-mark .avatar{display:block}.portrait-with-mark .life-mark,.kin-card .portrait-with-mark .life-mark,.tree-node .portrait-with-mark .life-mark{position:absolute;top:auto;right:-9px;bottom:-4px;z-index:3;margin:0}.portrait-with-mark .life-mark.memorial{width:36px;height:36px;display:grid;place-items:center;font-size:1.55rem;line-height:1;background:#fff8eb;border:2px solid #fff;border-radius:50%;box-shadow:0 3px 8px #3f392b4d}.portrait-with-mark .life-mark.living{width:19px;height:19px;border:3px solid #fff;box-shadow:0 1px 7px #26583b66}.profile-hero .portrait-with-mark .life-mark.memorial{width:44px;height:44px;font-size:1.8rem}.profile-hero .portrait-with-mark .life-mark.living{width:23px;height:23px}.tree-node .portrait-with-mark .life-mark.memorial{width:34px;height:34px;font-size:1.45rem}.tree-node .portrait-with-mark .life-mark.living{width:18px;height:18px}.merge-entry{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}.merge-entry small{color:#6d665e}.merge-dialog{width:min(920px,calc(100vw - 24px));max-height:92dvh;overflow:auto}.merge-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.merge-selectors label{display:grid;gap:.4rem}.merge-table-wrap{overflow:auto;max-height:48dvh;margin:1rem 0;border:1px solid #d7cab8;border-radius:16px}.merge-table{width:100%;border-collapse:collapse;text-align:left}.merge-table th,.merge-table td{padding:.7rem;border-bottom:1px solid #e8dfd4;vertical-align:top;min-width:145px}.merge-table thead{position:sticky;top:0;background:#f8f3e9;z-index:1}.merge-table th:first-child{min-width:175px}.merge-choice{display:flex;align-items:flex-start;gap:.65rem;overflow-wrap:anywhere;cursor:pointer}.merge-choice input{flex:none;width:22px;height:22px;margin:0}.merge-dialog .inline-check{margin:1rem 0;display:flex;gap:.7rem;align-items:flex-start}.merge-dialog .inline-check input{flex:none;width:22px;height:22px}@media(max-width:650px){.merge-selectors{grid-template-columns:1fr}.merge-table th,.merge-table td{min-width:135px;padding:.6rem}.merge-table th:first-child{min-width:125px}.merge-dialog{padding:1rem}}.person-card-wrap{display:flex;flex-direction:column;min-width:0}.person-card-wrap .person-select{align-items:center;gap:10px;min-height:54px;padding:9px 12px;background:#edf2ea;border:1px solid #d9e5d9;border-bottom:0;border-radius:14px 14px 0 0;font-size:.82rem;line-height:1.35;cursor:pointer}.person-card-wrap .person-select input{width:22px;height:22px;flex:none;accent-color:#2c684c}.person-card-wrap .person-select span{overflow-wrap:anywhere}.person-card-wrap .person-card{height:auto;flex:1;border-radius:0 0 14px 14px}.person-card-wrap:has(.person-select input:checked) .person-select{background:#d3e7d4;border-color:#5c9a6f}.person-card-wrap:has(.person-select input:checked) .person-card{outline:2px solid #5c9a6f;outline-offset:-2px}.merge-same{color:#59665c}.merge-choice:has(input:checked){background:#e6f2e5;border-radius:8px;box-shadow:0 0 0 6px #e6f2e5}.merge-dialog .error .secondary{margin-top:.35rem;min-height:44px}@media(max-width:600px){.person-card-wrap .person-select{min-height:60px;padding:8px;font-size:.76rem}.person-card-wrap .person-card{min-height:190px}}
