.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.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:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;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:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.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.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@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}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.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:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform: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:#3367d9;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%}:root{font-family:Aptos,Segoe UI,sans-serif;color:#1e2722;background:#e7ece2;font-synthesis:none;text-rendering:optimizeLegibility;--glass-surface: rgba(255, 255, 255, .38);--glass-surface-strong: rgba(250, 252, 247, .5);--glass-border: rgba(255, 255, 255, .58);--glass-shadow: 0 12px 30px rgba(30, 39, 34, .1);--flowers-edge-horizontal-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20'%3E%3Cpath d='M0 10 Q15 6 30 11 T60 8 T85 12 T100 10' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M2 10 C-3 6, 1 4, 5 8 Z' fill='%2384cc16'/%3E%3Cpath d='M14 9 C9 5, 13 3, 17 7 Z' fill='%2322c55e'/%3E%3Cpath d='M26 10 C31 14, 27 16, 23 12 Z' fill='%2384cc16'/%3E%3Cpath d='M38 11 C43 15, 39 17, 35 13 Z' fill='%2322c55e'/%3E%3Cpath d='M50 9 C45 5, 49 3, 53 7 Z' fill='%2384cc16'/%3E%3Cpath d='M62 9 C57 5, 61 3, 65 7 Z' fill='%2322c55e'/%3E%3Cpath d='M74 11 C79 15, 75 17, 71 13 Z' fill='%2384cc16'/%3E%3Cpath d='M86 12 C91 16, 87 18, 83 14 Z' fill='%2322c55e'/%3E%3Cpath d='M98 10 C93 6, 97 4, 101 8 Z' fill='%2384cc16'/%3E%3Ccircle cx='8' cy='8.5' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='5.5' cy='6.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='10.5' cy='6.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='5.5' cy='10.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='10.5' cy='10.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='8' cy='8.5' r='1.4' fill='%23fde047'/%3E%3Ccircle cx='20' cy='9.5' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='17.5' cy='7.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='22.5' cy='7.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='17.5' cy='11.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='22.5' cy='11.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='20' cy='9.5' r='1.2' fill='%23f97316'/%3E%3Ccircle cx='32' cy='11.2' r='2.8' fill='%23cbd5e1'/%3E%3Ccircle cx='30' cy='9.5' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='34' cy='9.5' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='30' cy='12.9' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='34' cy='12.9' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='32' cy='11.2' r='1' fill='%23eab308'/%3E%3Ccircle cx='44' cy='10.2' r='3' fill='%23a855f7'/%3E%3Ccircle cx='42' cy='8.5' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='46' cy='8.5' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='42' cy='11.9' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='46' cy='11.9' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='44' cy='10.2' r='1' fill='%23e9d5ff'/%3E%3Ccircle cx='56' cy='8.5' r='3' fill='%230891b2'/%3E%3Ccircle cx='54' cy='6.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='58' cy='6.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='54' cy='10.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='58' cy='10.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='56' cy='8.5' r='1' fill='%23cffafe'/%3E%3Ccircle cx='68' cy='9.5' r='2.8' fill='%23dc2626'/%3E%3Ccircle cx='65.5' cy='7.8' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='70.5' cy='7.8' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='65.5' cy='11.2' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='70.5' cy='11.2' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='68' cy='9.5' r='1' fill='%23fef08a'/%3E%3Ccircle cx='80' cy='11.5' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='77.5' cy='9.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='82.5' cy='9.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='77.5' cy='13.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='82.5' cy='13.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='80' cy='11.5' r='1.2' fill='%23f97316'/%3E%3Ccircle cx='92' cy='10.5' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='89.5' cy='8.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='94.5' cy='8.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='89.5' cy='12.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='94.5' cy='12.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='92' cy='10.5' r='1.4' fill='%23fde047'/%3E%3C/svg%3E");--flowers-edge-vertical-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 100'%3E%3Cpath d='M10 0 Q6 15 11 30 T8 60 T12 85 T10 100' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M10 2 C6 -3, 4 1, 8 5 Z' fill='%2384cc16'/%3E%3Cpath d='M9 14 C5 9, 3 13, 7 17 Z' fill='%2322c55e'/%3E%3Cpath d='M10 26 C14 31, 16 27, 12 23 Z' fill='%2384cc16'/%3E%3Cpath d='M11 38 C15 43, 17 39, 13 35 Z' fill='%2322c55e'/%3E%3Cpath d='M9 50 C5 45, 3 49, 7 53 Z' fill='%2384cc16'/%3E%3Cpath d='M9 62 C5 57, 3 61, 7 65 Z' fill='%2322c55e'/%3E%3Cpath d='M11 74 C15 79, 17 75, 13 71 Z' fill='%2384cc16'/%3E%3Cpath d='M12 86 C16 91, 18 87, 14 83 Z' fill='%2322c55e'/%3E%3Cpath d='M10 98 C6 93, 4 97, 8 101 Z' fill='%2384cc16'/%3E%3Ccircle cx='8.5' cy='8' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='6.5' cy='5.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='6.5' cy='10.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='10.5' cy='5.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='10.5' cy='10.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='8.5' cy='8' r='1.4' fill='%23fde047'/%3E%3Ccircle cx='9.5' cy='20' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='7.5' cy='17.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='7.5' cy='22.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='11.5' cy='17.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='11.5' cy='22.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='9.5' cy='20' r='1.2' fill='%23f97316'/%3E%3Ccircle cx='11.2' cy='32' r='2.8' fill='%23cbd5e1'/%3E%3Ccircle cx='9.5' cy='30' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='9.5' cy='34' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='12.9' cy='30' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='12.9' cy='34' r='1.5' fill='%23f8fafc'/%3E%3Ccircle cx='11.2' cy='32' r='1' fill='%23eab308'/%3E%3Ccircle cx='10.2' cy='44' r='3' fill='%23a855f7'/%3E%3Ccircle cx='8.5' cy='42' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='8.5' cy='46' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='11.9' cy='42' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='11.9' cy='46' r='1.8' fill='%23c084fc'/%3E%3Ccircle cx='10.2' cy='44' r='1' fill='%23e9d5ff'/%3E%3Ccircle cx='8.5' cy='56' r='3' fill='%230891b2'/%3E%3Ccircle cx='6.5' cy='56' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='6.5' cy='60' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='10.5' cy='56' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='10.5' cy='60' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='8.5' cy='56' r='1' fill='%23cffafe'/%3E%3Ccircle cx='9.5' cy='68' r='2.8' fill='%23dc2626'/%3E%3Ccircle cx='7.8' cy='65.5' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='7.8' cy='70.5' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='11.2' cy='65.5' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='11.2' cy='70.5' r='1.6' fill='%23f87171'/%3E%3Ccircle cx='9.5' cy='68' r='1' fill='%23fef08a'/%3E%3Ccircle cx='11.5' cy='80' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='9.5' cy='77.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='9.5' cy='82.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='13.5' cy='77.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='13.5' cy='82.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='11.5' cy='80' r='1.2' fill='%23f97316'/%3E%3Ccircle cx='10.5' cy='92' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='8.5' cy='89.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='8.5' cy='94.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='12.5' cy='89.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='12.5' cy='94.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='10.5' cy='92' r='1.4' fill='%23fde047'/%3E%3C/svg%3E");--flowers-corner-tl-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M10 22 A12 12 0 0 1 22 10' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M13.5 13.5 C8.5 8.5, 10.5 6.5, 14.5 10.5 Z' fill='%2384cc16'/%3E%3Ccircle cx='11.5' cy='17.5' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='9' cy='15.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='14' cy='15.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='9' cy='19.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='14' cy='19.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='11.5' cy='17.5' r='1.2' fill='%23f97316'/%3E%3Ccircle cx='17.5' cy='11.5' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='15' cy='9.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='20' cy='9.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='15' cy='13.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='20' cy='13.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='17.5' cy='11.5' r='1.4' fill='%23fde047'/%3E%3C/svg%3E");--flowers-corner-tr-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M0 10 A12 12 0 0 1 12 22' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M8.5 13.5 C13.5 8.5, 11.5 6.5, 7.5 10.5 Z' fill='%2322c55e'/%3E%3Ccircle cx='4.5' cy='11.5' r='3.8' fill='%23ec4899'/%3E%3Ccircle cx='2' cy='9.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='7' cy='9.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='2' cy='13.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='7' cy='13.5' r='2.4' fill='%23f472b6'/%3E%3Ccircle cx='4.5' cy='11.5' r='1.4' fill='%23fde047'/%3E%3Ccircle cx='10.5' cy='17.5' r='3.2' fill='%23eab308'/%3E%3Ccircle cx='8' cy='15.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='13' cy='15.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='8' cy='19.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='13' cy='19.5' r='1.8' fill='%23facc15'/%3E%3Ccircle cx='10.5' cy='17.5' r='1.2' fill='%23f97316'/%3E%3C/svg%3E");--flowers-corner-bl-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M10 0 A12 12 0 0 0 22 12' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M13.5 8.5 C8.5 13.5, 10.5 15.5, 14.5 11.5 Z' fill='%2322c55e'/%3E%3Ccircle cx='11.5' cy='4.5' r='3' fill='%23a855f7'/%3E%3Ccircle cx='9.5' cy='2.5' r='2' fill='%23c084fc'/%3E%3Ccircle cx='13.5' cy='2.5' r='2' fill='%23c084fc'/%3E%3Ccircle cx='9.5' cy='6.5' r='2' fill='%23c084fc'/%3E%3Ccircle cx='13.5' cy='6.5' r='2' fill='%23c084fc'/%3E%3Ccircle cx='11.5' cy='4.5' r='1' fill='%23e9d5ff'/%3E%3Ccircle cx='17.5' cy='10.5' r='3' fill='%230891b2'/%3E%3Ccircle cx='15.5' cy='8.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='19.5' cy='8.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='15.5' cy='12.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='19.5' cy='12.5' r='1.8' fill='%2322d3ee'/%3E%3Ccircle cx='17.5' cy='10.5' r='1' fill='%23cffafe'/%3E%3C/svg%3E");--flowers-corner-br-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M0 12 A12 12 0 0 0 12 0' stroke='%236b5e40' fill='none' stroke-width='0.9' stroke-linecap='round'/%3E%3Cpath d='M8.5 8.5 C13.5 13.5, 11.5 15.5, 7.5 11.5 Z' fill='%2384cc16'/%3E%3Ccircle cx='4.5' cy='10.5' r='2.8' fill='%23dc2626'/%3E%3Ccircle cx='2.5' cy='8.5' r='1.8' fill='%23f87171'/%3E%3Ccircle cx='6.5' cy='8.5' r='1.8' fill='%23f87171'/%3E%3Ccircle cx='2.5' cy='12.5' r='1.8' fill='%23f87171'/%3E%3Ccircle cx='6.5' cy='12.5' r='1.8' fill='%23f87171'/%3E%3Ccircle cx='4.5' cy='10.5' r='1' fill='%23fef08a'/%3E%3Ccircle cx='10.5' cy='4.5' r='2.8' fill='%23cbd5e1'/%3E%3Ccircle cx='8.5' cy='2.8' r='1.8' fill='%23f8fafc'/%3E%3Ccircle cx='12.5' cy='2.8' r='1.8' fill='%23f8fafc'/%3E%3Ccircle cx='8.5' cy='6.2' r='1.8' fill='%23f8fafc'/%3E%3Ccircle cx='12.5' cy='6.2' r='1.8' fill='%23f8fafc'/%3E%3Ccircle cx='10.5' cy='4.5' r='1' fill='%23eab308'/%3E%3C/svg%3E");--laurel-edge-horizontal-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 18'%3E%3Cellipse cx='6.8' cy='6.3' rx='4.45' ry='2.24' transform='rotate(-31 6.8 6.3)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='11.8' cy='11.4' rx='4.05' ry='2.05' transform='rotate(29 11.8 11.4)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='17.4' cy='7.1' rx='4.65' ry='2.32' transform='rotate(-19 17.4 7.1)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='22.6' cy='10.7' rx='3.95' ry='1.98' transform='rotate(34 22.6 10.7)' fill='%236a8f57' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='28.1' cy='6.4' rx='4.5' ry='2.28' transform='rotate(-27 28.1 6.4)' fill='%2388ad66' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='33.9' cy='11.6' rx='4.2' ry='2.08' transform='rotate(23 33.9 11.6)' fill='%235d8650' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='39.5' cy='7.4' rx='4.6' ry='2.3' transform='rotate(-21 39.5 7.4)' fill='%2397bd73' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='44.8' cy='11.1' rx='3.9' ry='1.95' transform='rotate(30 44.8 11.1)' fill='%23648354' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='50.1' cy='6.7' rx='4.4' ry='2.18' transform='rotate(-25 50.1 6.7)' fill='%2382a260' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='54.5' cy='10.8' rx='3.75' ry='1.88' transform='rotate(27 54.5 10.8)' fill='%235b7f4f' stroke='%23364f2c' stroke-width='0.64'/%3E%3C/svg%3E");--laurel-edge-vertical-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 60'%3E%3Cellipse cx='6.3' cy='6.8' rx='2.24' ry='4.45' transform='rotate(-31 6.3 6.8)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='11.4' cy='11.8' rx='2.05' ry='4.05' transform='rotate(29 11.4 11.8)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='7.1' cy='17.4' rx='2.32' ry='4.65' transform='rotate(-19 7.1 17.4)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='10.7' cy='22.6' rx='1.98' ry='3.95' transform='rotate(34 10.7 22.6)' fill='%236a8f57' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='6.4' cy='28.1' rx='2.28' ry='4.5' transform='rotate(-27 6.4 28.1)' fill='%2388ad66' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='11.6' cy='33.9' rx='2.08' ry='4.2' transform='rotate(23 11.6 33.9)' fill='%235d8650' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='7.4' cy='39.5' rx='2.3' ry='4.6' transform='rotate(-21 7.4 39.5)' fill='%2397bd73' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='11.1' cy='44.8' rx='1.95' ry='3.9' transform='rotate(30 11.1 44.8)' fill='%23648354' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='6.7' cy='50.1' rx='2.18' ry='4.4' transform='rotate(-25 6.7 50.1)' fill='%2382a260' stroke='%23364f2c' stroke-width='0.64'/%3E%3Cellipse cx='10.8' cy='54.5' rx='1.88' ry='3.75' transform='rotate(27 10.8 54.5)' fill='%235b7f4f' stroke='%23364f2c' stroke-width='0.64'/%3E%3C/svg%3E");--laurel-corner-tl-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cellipse cx='16' cy='5.5' rx='4.5' ry='2.3' transform='rotate(-28 16 5.5)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='12.6' cy='9.1' rx='4.7' ry='2.4' transform='rotate(-42 12.6 9.1)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='9.1' cy='12.6' rx='4.7' ry='2.4' transform='rotate(-56 9.1 12.6)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='5.5' cy='16' rx='4.5' ry='2.3' transform='rotate(-70 5.5 16)' fill='%236f965d' stroke='%23364f2c' stroke-width='0.7'/%3E%3Ccircle cx='15.8' cy='10.8' r='1.1' fill='%23991b1b'/%3E%3Ccircle cx='10.8' cy='15.8' r='1.1' fill='%23991b1b'/%3E%3C/svg%3E");--laurel-corner-tr-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cellipse cx='6' cy='5.5' rx='4.5' ry='2.3' transform='rotate(28 6 5.5)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='9.4' cy='9.1' rx='4.7' ry='2.4' transform='rotate(42 9.4 9.1)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='12.9' cy='12.6' rx='4.7' ry='2.4' transform='rotate(56 12.9 12.6)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='16.5' cy='16' rx='4.5' ry='2.3' transform='rotate(70 16.5 16)' fill='%236f965d' stroke='%23364f2c' stroke-width='0.7'/%3E%3Ccircle cx='6.2' cy='10.8' r='1.1' fill='%23991b1b'/%3E%3Ccircle cx='11.2' cy='15.8' r='1.1' fill='%23991b1b'/%3E%3C/svg%3E");--laurel-corner-bl-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cellipse cx='16' cy='16.5' rx='4.5' ry='2.3' transform='rotate(28 16 16.5)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='12.6' cy='12.9' rx='4.7' ry='2.4' transform='rotate(42 12.6 12.9)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='9.1' cy='9.4' rx='4.7' ry='2.4' transform='rotate(56 9.1 9.4)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='5.5' cy='6' rx='4.5' ry='2.3' transform='rotate(70 5.5 6)' fill='%236f965d' stroke='%23364f2c' stroke-width='0.7'/%3E%3Ccircle cx='15.8' cy='11.2' r='1.1' fill='%23991b1b'/%3E%3Ccircle cx='10.8' cy='6.2' r='1.1' fill='%23991b1b'/%3E%3C/svg%3E");--laurel-corner-br-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cellipse cx='6' cy='16.5' rx='4.5' ry='2.3' transform='rotate(-28 6 16.5)' fill='%237d9a6b' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='9.4' cy='12.9' rx='4.7' ry='2.4' transform='rotate(-42 9.4 12.9)' fill='%235a8250' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='12.9' cy='9.4' rx='4.7' ry='2.4' transform='rotate(-56 12.9 9.4)' fill='%2393b96f' stroke='%23364f2c' stroke-width='0.7'/%3E%3Cellipse cx='16.5' cy='6' rx='4.5' ry='2.3' transform='rotate(-70 16.5 6)' fill='%236f965d' stroke='%23364f2c' stroke-width='0.7'/%3E%3Ccircle cx='6.2' cy='11.2' r='1.1' fill='%23991b1b'/%3E%3Ccircle cx='11.2' cy='6.2' r='1.1' fill='%23991b1b'/%3E%3C/svg%3E")}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(173,96,79,.28) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#ad604f38;border-radius:999px;border:1.5px solid transparent;background-clip:padding-box;transition:background-color .2s ease}*::-webkit-scrollbar-thumb:hover{background:#ad604f70;background-clip:padding-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}.app-shell{display:flex;width:100vw;height:100vh;overflow:hidden;position:relative;background:linear-gradient(135deg,rgba(55,95,84,.13),transparent 38%),linear-gradient(315deg,rgba(154,93,59,.16),transparent 42%),#e7ece2}.left-rail{position:absolute;inset:0 auto 0 0;width:310px;min-width:310px;max-width:310px;height:100%;padding:20px;background:linear-gradient(145deg,#ffffff6e,#eaf2e742),#f6f8f24d;-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%);border-right:1px solid var(--glass-border);box-shadow:12px 0 34px #1e27220d;display:flex;flex-direction:column;overflow:hidden;transform:translate(0);transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .2s ease-out;will-change:transform,opacity;z-index:30;box-sizing:border-box;flex-shrink:0}.left-rail.is-closed{transform:translate(calc(-100% - 12px));opacity:0;pointer-events:none}.brand-block{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.brand-info{display:flex;align-items:center;gap:12px;min-width:0}.brand-logo-img{width:46px;height:46px;border-radius:50%;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(16,30,24,.22));flex-shrink:0}.brand-info strong{display:block;font-size:17px;color:#1e2722;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-info span{display:block;color:#647267;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.close-sidebar-btn{color:#647267;padding:6px;border-radius:6px;background:transparent;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s,border-color .15s;flex-shrink:0}.close-sidebar-btn:hover{background:#375f541a;border-color:#375f5433;color:#375f54}.brand-block span,.panel-kicker,.person-list-item small,dt{color:#647267;font-size:12px;letter-spacing:0;text-transform:uppercase}.search-box{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fff;border:1px solid #c9d2c4;border-radius:8px}.search-box input{width:100%;border:0;outline:0;background:transparent}.person-list-header{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:11px;color:#647267;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.person-list-header .filtered-count{text-transform:none;font-weight:400;color:#9a5d3b}.person-list{display:grid;grid-auto-rows:max-content;gap:8px;margin-top:8px;flex:1;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(255,248,240,.28) transparent}.person-list::-webkit-scrollbar{width:5px}.person-list::-webkit-scrollbar-track{background:transparent}.person-list::-webkit-scrollbar-thumb{background:#fff8f038;border-radius:999px;border:1px solid transparent;background-clip:padding-box;transition:background-color .2s ease}.person-list::-webkit-scrollbar-thumb:hover{background:#fff8f073;background-clip:padding-box}.person-list-item{display:grid;gap:5px;width:100%;padding:12px;text-align:left;color:inherit;background:#ffffffb3;border:1px solid transparent;border-radius:8px;cursor:pointer}.person-list-item.is-active{border-color:#375f54;background:#f8fff4}.admin-sidebar-nav{display:grid;align-content:start;gap:10px;flex:1;margin-top:2px}.admin-sidebar-nav strong{margin:1px 0 8px;color:#fff8f0;font-size:18px}.admin-sidebar-nav-item{display:flex;align-items:center;width:100%;min-height:42px;gap:10px;padding:0 12px;color:#fff8f0;background:#7b4039;border:1px solid #7b4039;cursor:pointer;text-align:left;transition:background-color .16s ease,border-color .16s ease}.admin-sidebar-nav-item:hover,.admin-sidebar-nav-item:focus-visible{background:#6a342f;border-color:#fff1e8}.admin-sidebar-nav-item.is-active{background:#6a342f}.canvas-stage{position:relative;flex:1;min-width:0;height:100%;width:100%;overflow:hidden;display:flex;flex-direction:column}.react-flow{flex:1;width:100%!important;height:100%!important}.admin-stage{position:absolute;inset:84px 20px 20px;display:flex;flex-direction:column;gap:16px;padding:20px 24px;overflow:auto;background:#fffcf8f0;border:1px solid rgba(173,96,79,.2);border-radius:16px;box-shadow:0 16px 40px #30292a14,0 2px 6px #30292a0a;-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.admin-stage-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid rgba(173,96,79,.14)}.admin-header-title-group h2{font-size:1.45rem;font-weight:700;color:#1a202c;letter-spacing:-.02em;margin:4px 0 2px}.admin-header-title-group p{max-width:620px;margin:0;font-size:.88rem;color:#64748b}.admin-stats-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-stat-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:84px;padding:6px 12px;background:#fff;border:1px solid rgba(173,96,79,.18);border-radius:10px;box-shadow:0 2px 6px #30292a08}.admin-stat-chip .stat-value{font-size:1.2rem;font-weight:700;color:#81483f;line-height:1.1}.admin-stat-chip .stat-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:600;margin-top:2px}.admin-stage-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;min-height:0;flex:1}.admin-users-panel,.admin-card{display:flex;flex-direction:column;gap:14px;padding:18px 20px;background:#fff;border:1px solid rgba(173,96,79,.16);border-radius:14px;box-shadow:0 2px 10px #30292a0a;min-width:0;min-height:0;box-sizing:border-box}.admin-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(173,96,79,.12)}.admin-panel-header h3{font-size:1.1rem;font-weight:600;color:#1a202c;letter-spacing:-.01em;margin:2px 0 0}.admin-create-user-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;font-size:12.5px;font-weight:600;border-radius:8px}.admin-user-list{display:flex;flex-direction:column;gap:9px;overflow-y:auto;padding-right:4px;flex:1;min-height:0}.admin-user-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fcf9f5;border:1.5px solid rgba(173,96,79,.18);border-radius:12px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease;min-width:0;box-sizing:border-box;outline:none!important;box-shadow:none!important}.admin-user-card:hover{background:#fff5ee;border-color:#ad604f73;box-shadow:none!important}.admin-user-card.is-selected{background:#fff3ea;border-color:#ad604f;border-width:2px;box-shadow:none!important}.admin-user-avatar{width:36px;height:36px;border-radius:50%;background:#ad604f;color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.03em;box-shadow:none}.admin-user-card-main{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:1;min-width:0}.admin-user-identity{display:flex;flex-direction:column;min-width:0}.admin-user-name{font-size:14px;color:#1a202c;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.admin-role-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;font-size:10.5px;font-weight:600;letter-spacing:.03em}.admin-role-badge.is-admin{background:#e6f4ea;color:#137333;border:1px solid rgba(19,115,51,.2)}.admin-role-badge.is-user{background:#fef3e9;color:#b0572b;border:1px solid rgba(176,87,43,.2)}.admin-access-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#64748b;font-weight:500}.admin-user-last-seen{display:flex;align-items:center;gap:5px;font-size:11.5px;color:#64748b;white-space:nowrap}.admin-user-card-actions,.admin-form-actions{display:flex;gap:8px;align-items:center}.admin-side-column{display:flex;flex-direction:column;gap:16px;min-height:0;min-width:0;overflow-y:auto}.admin-user-form-card{flex-shrink:0}.admin-user-form-card label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:#334155;width:100%;box-sizing:border-box}.admin-user-form-card input,.admin-user-form-card select{width:100%;max-width:100%;min-height:38px;padding:0 12px;background:#fdfbf7;border:1px solid #d9d2cb;border-radius:8px;font-size:13.5px;color:#1a202c;font-family:inherit;box-sizing:border-box;transition:all .15s ease}.admin-user-form-card input:focus,.admin-user-form-card select:focus{background:#fff;border-color:#ad604f;outline:none;box-shadow:0 0 0 3px #ad604f24}.admin-access-log-card{flex:1;min-height:0}.admin-access-log-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:4px;flex:1;min-height:0}.admin-access-log-item{display:flex;flex-direction:column;gap:4px;padding:9px 12px;background:#fcf9f5;border:1px solid rgba(173,96,79,.12);border-radius:9px;transition:background-color .15s ease;min-width:0;box-sizing:border-box}.admin-access-log-item:hover{background:#fff4ed;border-color:#ad604f40}.admin-access-log-item .log-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-access-log-item .log-time-indicator{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#1a202c}.admin-access-log-item .log-dot{width:6px;height:6px;border-radius:50%;background:#137333;flex-shrink:0}.admin-access-log-item .log-ip-badge{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;padding:2px 6px;background:#64748b1a;border-radius:4px;color:#475569;font-weight:600}.admin-access-log-item .log-user-agent{font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-topbar-title{display:grid;gap:2px;padding:8px 14px;background:var(--glass-surface);border:1px solid var(--glass-border);border-radius:10px;-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%);box-shadow:0 8px 22px #1e272212}.sidebar-preface-banner{padding:0;margin-bottom:8px}.preface-open-btn{display:flex;align-items:center;gap:10px;width:100%;height:42px;min-height:42px;padding:0 14px;box-sizing:border-box;background:#ffffff21;border:1px solid rgba(255,248,240,.24);border-radius:9px;color:#fff9f3;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .16s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.preface-open-btn:hover{background:#ffffff38;border-color:#fff8f073;transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.left-rail .search-box{display:flex;align-items:center;gap:10px;width:100%;height:42px;min-height:42px;padding:0 14px;box-sizing:border-box;background:#fff;border:1px solid #d9cec5;border-radius:9px;box-shadow:0 1px 3px #0000000a;transition:border-color .15s ease,box-shadow .15s ease}.left-rail .search-box:focus-within{border-color:#baa99c;box-shadow:0 0 0 3px #fff8f033}.left-rail .search-box input{font-size:13.5px;font-weight:500;color:#1e2722;font-family:inherit;width:100%;border:0;outline:0;background:transparent}.left-rail .search-box input::placeholder{color:#889696;font-size:13px}.preface-topbar-btn{gap:7px;font-weight:600}.preface-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:#0f121647;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease-out}.preface-dialog-card{position:relative;width:100%;max-width:690px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:#ffffffa6;background:linear-gradient(135deg,#ffffffbd,#ffffff8a);border:none!important;outline:none!important;border-radius:22px;box-shadow:0 32px 80px -8px #0000003d,0 16px 36px -4px #0000001f;-webkit-backdrop-filter:blur(36px) saturate(190%) contrast(102%);backdrop-filter:blur(36px) saturate(190%) contrast(102%);overflow:hidden;animation:scaleIn .22s cubic-bezier(.16,1,.3,1)}.preface-dialog-glow{position:absolute;top:-100px;left:50%;transform:translate(-50%);width:440px;height:220px;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.65) 0%,rgba(220,130,105,.18) 40%,transparent 70%);pointer-events:none}.preface-dialog-header{position:relative;display:flex;align-items:flex-start;gap:14px;padding:22px 28px 18px;background:linear-gradient(180deg,#ffffff59,#ffffff26);border-bottom:none!important}.preface-dialog-badge{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#ad604f,#81483f);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #81483f47}.preface-dialog-titles{flex:1;min-width:0}.preface-dialog-titles h2{font-family:Georgia,Times New Roman,serif;font-size:1.65rem;color:#1e2722;margin:2px 0 3px;letter-spacing:-.015em;font-weight:700}.preface-dialog-subtitle{margin:0;font-size:.92rem;color:#64748b;font-weight:500}.preface-close-btn{width:32px;height:32px;border-radius:50%;background:#0000000d;border:1px solid rgba(255,255,255,.6);color:#4b5563;display:flex;align-items:center;justify-content:center;transition:all .15s cubic-bezier(.16,1,.3,1);cursor:pointer;padding:0;margin-top:2px}.preface-close-btn:hover{background:#0000001a;color:#111827;transform:scale(1.06)}.preface-dialog-body{position:relative;flex:1;overflow-y:auto;padding:24px 30px;display:flex;flex-direction:column;gap:18px;background:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.preface-dialog-text{font-size:1.02rem;line-height:1.75;color:#2c332e;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;gap:14px}.preface-dialog-text p{margin:0}.preface-quote{margin:8px 0;padding:12px 18px;background:#ad604f14;border-left:3.5px solid #ad604f;border-radius:0 10px 10px 0;font-style:italic;color:#4a3835;font-size:.98rem;line-height:1.65}.preface-quote p{margin:0}.preface-dialog-signature{display:flex;align-items:center;gap:12px;margin-top:10px;justify-content:flex-end}.signature-line{height:1px;width:40px;background:#ad604f59}.signature-author{font-family:Georgia,serif;font-style:italic;font-size:1.05rem;font-weight:600;color:#81483f}.preface-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 28px 18px;border-top:none!important;background:linear-gradient(180deg,#ffffff26,#ffffff4d)}.preface-edit-action{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;background:#ffffff73;border:1px solid rgba(255,255,255,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;padding:8px 16px;color:#374151;box-shadow:0 1px 4px #0000000a;transition:all .15s ease;cursor:pointer}.preface-edit-action:hover{background:#ffffffbf;color:#ad604f;border-color:#ad604f4d}.rich-text-content{color:#2c332e;transition:all .2s ease}.rich-text-content.font-family-serif,.rich-editor-textarea.font-family-serif{font-family:Georgia,Times New Roman,Playfair Display,serif}.rich-text-content.font-family-sans,.rich-editor-textarea.font-family-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.rich-text-content.font-family-classic,.rich-editor-textarea.font-family-classic{font-family:Garamond,Baskerville,Palatino Linotype,Times New Roman,serif}.rich-text-content.font-family-calligraphic,.rich-editor-textarea.font-family-calligraphic{font-family:Caveat,Segoe Script,Brush Script MT,Lucida Handwriting,cursive,Georgia,serif}.rich-text-content.font-size-4xs{font-size:.625rem}.rich-text-content.font-size-3xs{font-size:.6875rem}.rich-text-content.font-size-2xs{font-size:.75rem}.rich-text-content.font-size-xs{font-size:.82rem}.rich-text-content.font-size-sm{font-size:.92rem}.rich-text-content.font-size-md{font-size:1.04rem}.rich-text-content.font-size-lg{font-size:1.16rem}.rich-text-content.font-size-xl{font-size:1.28rem}.rich-text-content.font-size-2xl{font-size:1.44rem}.rich-text-content.font-size-3xl{font-size:1.62rem}.rich-text-content.line-height-ultratight{line-height:1}.rich-text-content.line-height-extratight{line-height:1.15}.rich-text-content.line-height-tight{line-height:1.3}.rich-text-content.line-height-compact{line-height:1.45}.rich-text-content.line-height-moderate{line-height:1.6}.rich-text-content.line-height-normal{line-height:1.75}.rich-text-content.line-height-loose{line-height:1.9}.rich-text-content.line-height-relaxed{line-height:2.05}.rich-text-content.line-height-spacious{line-height:2.25}.rich-text-content.text-align-left{text-align:left}.rich-text-content.text-align-center{text-align:center}.rich-text-content.text-align-justify{text-align:justify;text-justify:inter-word}.theme-accent-terracotta{--accent-color: #ad604f;--accent-soft: rgba(173, 96, 79, .08)}.theme-accent-forest{--accent-color: #264e43;--accent-soft: rgba(38, 78, 67, .08)}.theme-accent-gold{--accent-color: #aa7c11;--accent-soft: rgba(170, 124, 17, .09)}.theme-accent-slate{--accent-color: #475569;--accent-soft: rgba(71, 85, 105, .08)}.rich-p{margin:0 0 14px}.rich-h1{font-size:1.55em;font-weight:700;margin:20px 0 10px;color:var(--accent-color, #ad604f);letter-spacing:-.015em}.rich-h2{font-size:1.32em;font-weight:700;margin:18px 0 8px;color:var(--accent-color, #ad604f);letter-spacing:-.01em}.rich-h3{font-size:1.15em;font-weight:600;margin:14px 0 6px;color:var(--accent-color, #ad604f)}.rich-quote{margin:14px 0;padding:12px 20px;background:var(--accent-soft, rgba(173, 96, 79, .08));border-left:4px solid var(--accent-color, #ad604f);border-radius:0 12px 12px 0;font-style:italic;color:#3b2c2a}.rich-quote p{margin:0}.rich-list{margin:10px 0 14px 24px;padding:0}.rich-list li{margin-bottom:6px}.rich-divider{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--accent-color, #ad604f),transparent);margin:24px 0;opacity:.5}.rich-highlight{background:#fff3b0;color:#1e2722;padding:1px 6px;border-radius:4px}.rich-color-terracotta{color:#ad604f;font-weight:600}.rich-color-forest{color:#264e43;font-weight:600}.rich-color-gold{color:#aa7c11;font-weight:600}.rich-text-content.with-drop-cap .rich-p:first-of-type:first-letter,.rich-p.has-drop-cap .rich-drop-cap{float:left;font-size:3.3em;line-height:.82;padding:4px 8px 0 0;font-family:Georgia,serif;font-weight:700;color:var(--accent-color, #ad604f);text-shadow:1px 1px 0 rgba(0,0,0,.05)}.admin-preface-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start;min-height:min-content;flex:1 0 auto}.admin-preface-form-card{display:flex;flex-direction:column;gap:16px;padding:20px 24px 28px;height:auto;min-height:min-content;box-sizing:border-box;overflow:visible}.admin-preface-form-card .admin-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px;padding-top:16px;border-top:1px solid rgba(173,96,79,.12)}.admin-preface-preview-modal-btn{padding:7px 15px!important;font-size:13px!important;font-weight:600!important;gap:7px!important;box-shadow:0 2px 8px #ad604f40!important}.admin-preface-meta-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:8px;padding:16px 18px;background:#fbf9f6;border:1px solid #e5ddd4;border-radius:14px}.admin-meta-field{display:flex;flex-direction:column;gap:6px}.admin-meta-label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.admin-meta-input{width:100%;height:42px;box-sizing:border-box;padding:0 14px;background:#fff;border:1.5px solid #dcd3c9;border-radius:10px;font-size:13.5px;font-weight:500;color:#1e2722;font-family:inherit;box-shadow:0 1px 2px #00000008;transition:all .18s cubic-bezier(.16,1,.3,1)}.admin-meta-input:hover{border-color:#baa99c}.admin-meta-input:focus{background:#fff;border-color:#ad604f;outline:none;box-shadow:0 0 0 3.5px #ad604f24,0 2px 8px #ad604f0f}.admin-meta-input::placeholder{color:#94a3b8;font-weight:400;font-style:italic;font-size:13px}.admin-rich-editor-section{display:flex;flex-direction:column;gap:8px}.rich-section-label{font-size:13px;font-weight:700;color:#334155;text-transform:uppercase;letter-spacing:.04em}.rich-editor-wrapper{display:flex;flex-direction:column;gap:10px;background:#fdfbf7;border:1.5px solid #d9d2cb;border-radius:12px;padding:12px 14px}.rich-presets-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid rgba(173,96,79,.12)}.rich-bar-label{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#81483f}.rich-presets-buttons{display:flex;gap:6px;flex-wrap:wrap}.rich-preset-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;background:#fff;border:1px solid #d9d2cb;border-radius:6px;color:#334155;cursor:pointer;transition:all .15s ease}.rich-preset-btn:hover{background:#fff4ed;border-color:#ad604f;color:#81483f;transform:translateY(-1px)}.rich-formatting-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;background:#fff;border:1px solid #e2d9d0;border-radius:8px}.rich-tool-group{display:flex;align-items:center;gap:3px}.rich-tool-divider{width:1px;height:20px;background:#e2d9d0;margin:0 4px}.rich-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:transparent;border:1px solid transparent;color:#475569;cursor:pointer;transition:all .12s ease}.rich-tool-btn:hover{background:#f1ede8;border-color:#d9cec5;color:#1e2722}.rich-color-group{gap:6px;margin-left:2px}.rich-color-pill{width:18px;height:18px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 1px 3px #0003;cursor:pointer;transition:transform .12s ease}.rich-color-pill:hover{transform:scale(1.2)}.rich-color-pill.color-terracotta{background:#ad604f}.rich-color-pill.color-forest{background:#264e43}.rich-color-pill.color-gold{background:#aa7c11}.rich-typography-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 14px;background:#fbf9f6;border:1px solid #e5ddd4;border-radius:10px}.rich-control-item{display:flex;flex-direction:column;gap:5px;flex:0 0 auto}.rich-control-item.control-font{flex:1 1 180px;min-width:170px}.rich-control-item.control-size,.rich-control-item.control-line-height{width:96px;min-width:90px}.rich-control-item.control-align{width:116px}.rich-control-item.control-theme{flex:1 1 160px;min-width:155px}.rich-control-item.control-dropcap{flex:0 0 auto}.rich-control-item label,.rich-control-item .rich-control-label{font-size:11px;font-weight:700;text-transform:uppercase;color:#64748b;letter-spacing:.05em;white-space:nowrap}.rich-control-item select{height:34px;width:100%;padding:0 8px;font-size:13px;font-weight:500;background:#fff;border:1.5px solid #dcd3c9;border-radius:8px;color:#1e2722;transition:all .15s ease;box-sizing:border-box}.rich-control-item select:focus{border-color:#ad604f;outline:none;box-shadow:0 0 0 3px #ad604f1f}.rich-toggle-group{display:inline-flex;align-items:center;height:34px;width:116px;background:#ede6df;padding:3px;border-radius:8px;gap:2px;box-sizing:border-box}.rich-toggle-btn{width:34px;height:28px;padding:0;border-radius:6px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#64748b;cursor:pointer;transition:all .15s cubic-bezier(.16,1,.3,1)}.rich-toggle-btn:hover{background:#fff9;color:#1e2722}.rich-toggle-btn.is-active{background:#fff;color:#ad604f;box-shadow:0 1px 3px #0000001a}.rich-checkbox-label{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;cursor:pointer;font-size:12.5px!important;color:#334155!important;font-weight:600!important;height:34px;padding:0 12px;background:#fff;border:1.5px solid #dcd3c9;border-radius:8px;box-sizing:border-box;white-space:nowrap!important;transition:all .15s ease}.rich-checkbox-label span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap!important}.rich-checkbox-label:hover{border-color:#baa99c}.rich-checkbox-label input{width:15px;height:15px;margin:0;cursor:pointer;accent-color:#ad604f;flex-shrink:0}.rich-textarea-container{display:flex;flex-direction:column;gap:6px}.rich-editor-textarea{width:100%;box-sizing:border-box;padding:14px 16px;font-size:14.5px;line-height:1.7;color:#1e2722;background:#fff;border:1px solid #d9d2cb;border-radius:8px;resize:vertical;min-height:220px;transition:border-color .15s ease,box-shadow .15s ease}.rich-editor-textarea:focus{border-color:#ad604f;outline:none;box-shadow:0 0 0 3px #ad604f24}.rich-textarea-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11.5px;color:#718096}.rich-char-count{font-weight:600;white-space:nowrap}.admin-preface-preview-card{display:flex;flex-direction:column;background:radial-gradient(circle at 100% 0%,rgba(173,96,79,.15) 0%,transparent 60%),radial-gradient(circle at 0% 100%,rgba(38,78,67,.12) 0%,transparent 60%),#f7f3ed;border:1px solid rgba(173,96,79,.25);border-radius:18px;overflow:hidden;box-shadow:0 4px 20px #0000000a}.preface-preview-box{display:flex;flex-direction:column;gap:12px;padding:24px 28px;background:#ffffff94;border:none!important;outline:none!important;border-radius:18px;box-shadow:0 16px 40px -8px #1c120e1f;-webkit-backdrop-filter:blur(36px) saturate(200%) contrast(104%);backdrop-filter:blur(36px) saturate(200%) contrast(104%);margin-top:4px;flex:1}.preface-preview-badge{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#ad604f,#81483f);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #81483f40}.preface-preview-title{font-family:Georgia,serif;font-size:1.45rem;color:#1e2722;margin:0;font-weight:700}.preface-preview-subtitle{margin:-4px 0 0;font-size:.9rem;color:#64748b;font-weight:500}.preface-preview-body{margin-top:6px;flex:1}.topbar{position:absolute;z-index:25;top:16px;left:16px;right:16px;display:grid;grid-template-columns:max-content max-content minmax(0,1fr);justify-content:start;align-items:center;gap:12px;pointer-events:none;transition:left .32s cubic-bezier(.22,1,.36,1),right .32s cubic-bezier(.22,1,.36,1)}.app-shell:not(.is-left-collapsed) .topbar{left:326px}.app-shell:not(.is-right-collapsed) .topbar{right:366px}.topbar-left,.topbar-center,.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-actions{justify-self:end}.topbar-left>*,.topbar-center>*,.topbar-actions>*{pointer-events:auto}.topbar-brand-badge{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;background:var(--glass-surface);-webkit-backdrop-filter:blur(14px) saturate(135%);backdrop-filter:blur(14px) saturate(135%);border:1px solid var(--glass-border);border-radius:8px;font-weight:600;font-size:13px;color:#375f54;box-shadow:0 8px 22px #1e272214;white-space:nowrap;animation:fadeIn .2s ease}.topbar-logo-img{width:22px;height:22px;border-radius:50%;object-fit:contain;filter:drop-shadow(0 1px 3px rgba(16,30,24,.2));flex-shrink:0}.sidebar-toggle-btn{display:inline-flex;align-items:center;gap:8px;font-weight:500;box-shadow:0 4px 12px #1e27220f}.sidebar-toggle-btn:hover{background:#ffffffd1;border-color:#375f5466}.sidebar-btn-label{font-size:13px}.mode-switch{display:inline-flex;height:36px;align-items:center;padding:3px;background:#ffffff4d;-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%);border:1px solid var(--glass-border);border-radius:8px;box-shadow:0 8px 22px #1e272212}.mode-switch button,.primary-action{height:36px;min-height:36px;border:0;border-radius:6px;cursor:pointer}.mode-switch button{height:30px;min-height:30px;line-height:1;padding:0 15px;color:#4c5b50;background:transparent}.mode-switch button.is-selected{color:#fff;background:linear-gradient(135deg,#305b4fe6,#375f54c2);box-shadow:inset 0 1px #ffffff2e,0 4px 10px #1e3f352e}.primary-action{display:inline-flex;align-items:center;gap:8px;padding:0 14px;color:#fff;background:linear-gradient(135deg,#ab6843eb,#854a30d1);border:1px solid rgba(255,237,223,.38);box-shadow:0 8px 20px #6439252e,inset 0 1px #fff3;-webkit-backdrop-filter:blur(12px) saturate(130%);backdrop-filter:blur(12px) saturate(130%)}.secondary-toolbar-action{align-items:center;gap:8px;padding:0 14px;color:#375f54;background:var(--glass-surface);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(14px) saturate(135%);backdrop-filter:blur(14px) saturate(135%);box-shadow:0 8px 20px #1e272212,inset 0 1px #ffffff47}.secondary-toolbar-action.is-active{color:#fff;background:linear-gradient(135deg,#305b4fe6,#375f54c2);border-color:#ffffff57}.selection-mode-active .react-flow__pane{cursor:crosshair!important}.primary-action:disabled,.secondary-toolbar-action:disabled{cursor:not-allowed;opacity:.55}.primary-action:not(:disabled),.secondary-toolbar-action:not(:disabled){transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.primary-action:hover:not(:disabled),.secondary-toolbar-action:hover:not(:disabled){transform:translateY(-1px)}.primary-action:hover:not(:disabled){box-shadow:0 12px 24px #6439253b,inset 0 1px #ffffff42}.person-node{min-width:190px;padding:0;color:#243129}.person-node .react-flow__node-default{border:0}.edge-parent_child path{stroke:#375f54}.edge-spouse path,.edge-partner path{stroke:#9a5d3b}.detail-panel{position:absolute;top:0;right:0;bottom:0;width:360px;min-width:360px;max-width:360px;height:100%;padding:20px 20px 24px;background:#914c43;border-left:1px solid rgba(255,248,240,.22);box-shadow:-14px 0 40px #301e1c3d,0 0 1px #0000001a;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;transform:translateZ(0);opacity:1;visibility:visible;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .24s ease-out,visibility .35s;will-change:transform,opacity;z-index:35;box-sizing:border-box;flex-shrink:0}.detail-panel.is-closed{transform:translate3d(calc(100% + 24px),0,0);opacity:0;visibility:hidden;pointer-events:none;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .2s ease-in,visibility .26s}.detail-panel-body{display:flex;flex-direction:column;gap:0;width:100%;opacity:1;transition:opacity .28s cubic-bezier(.16,1,.3,1);will-change:opacity}.detail-panel-body.is-fading{opacity:0;transition:opacity .18s ease-in}.detail-panel-top-bar{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(55,95,84,.12)}.detail-panel-top-bar .close-sidebar-btn{order:-1}.detail-panel-title{display:block;color:#fff8f0;font-family:Aptos,Segoe UI,sans-serif;font-size:17px;font-weight:700;letter-spacing:0;line-height:1.2;text-transform:none}.detail-panel{scrollbar-width:thin;scrollbar-color:rgba(255,248,240,.28) transparent}.detail-panel::-webkit-scrollbar{width:5px}.detail-panel::-webkit-scrollbar-track{background:transparent}.detail-panel::-webkit-scrollbar-thumb{min-height:40px;border:1px solid transparent;border-radius:999px;background:#fff8f038;background-clip:padding-box;transition:background-color .2s ease}.detail-panel::-webkit-scrollbar-thumb:hover{background:#fff8f073;background-clip:padding-box}.portrait{position:relative;display:grid;flex:0 0 auto;width:100%;aspect-ratio:1 / 1;margin-bottom:20px;place-items:center;overflow:hidden;color:#375f54;background:linear-gradient(135deg,#dfe8d8f2,#faf8f2f2);border:1px solid #c1cfbc;border-radius:12px}.portrait-media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.portrait-badge{position:absolute;right:10px;bottom:10px;display:inline-flex;min-width:28px;height:28px;align-items:center;justify-content:center;padding:0 8px;color:#fff;background:#375f54eb;border-radius:999px;font-size:12px;font-weight:700}.portrait-edit-button{position:absolute;top:10px;left:10px;z-index:1;display:grid;width:36px;height:36px;place-items:center;color:#375f54;background:#fffdf7eb;border:1px solid rgba(55,95,84,.24);border-radius:6px;box-shadow:0 8px 24px #1e272224;cursor:pointer}.portrait-edit-button:hover,.portrait-edit-button:focus-visible{color:#fff;background:#375f54;outline:0}.profile-focus-dialog{width:min(460px,100%)}.profile-focus-editor{position:relative;width:100%;aspect-ratio:1 / 1;overflow:hidden;background:#eef3ea;border:1px solid #c1cfbc;border-radius:8px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.profile-focus-editor:active{cursor:grabbing}.profile-focus-editor img{width:100%;height:100%;object-fit:cover;pointer-events:none}.profile-focus-target{position:absolute;width:28px;height:28px;border:2px solid #ffffff;border-radius:999px;box-shadow:0 0 0 1px #375f54b3,0 6px 18px #1e272247;transform:translate(-50%,-50%);pointer-events:none}.profile-focus-target:before,.profile-focus-target:after{content:"";position:absolute;background:#ffffffe6}.profile-focus-target:before{top:50%;left:-9px;right:-9px;height:2px;transform:translateY(-50%)}.profile-focus-target:after{top:-9px;bottom:-9px;left:50%;width:2px;transform:translate(-50%)}.detail-panel h1{margin:8px 0 22px;font-family:Aptos,Segoe UI,sans-serif;font-weight:700;font-size:30px;line-height:1.1}dl{display:grid;gap:18px;margin:0}dt{margin-bottom:5px}dd{margin:0;line-height:1.5}.sidebar-backdrop{display:none}@media(max-width:980px){.app-shell{display:block;position:relative}.canvas-stage{width:100vw;height:100vh}.app-shell:not(.is-left-collapsed) .topbar{left:16px}.app-shell:not(.is-right-collapsed) .topbar{right:16px}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#121c1873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;animation:fadeIn .2s ease}.left-rail{position:fixed;top:0;left:0;bottom:0;width:min(340px,86vw)!important;min-width:unset!important;max-width:min(340px,86vw)!important;z-index:100;box-shadow:8px 0 36px #1e272238;transform:translate(0);transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .2s ease-out;opacity:1!important;pointer-events:auto!important;padding:20px!important;border-right:1px solid rgba(55,95,84,.16)!important}.left-rail.is-closed{transform:translate(calc(-100% - 12px))!important;opacity:0!important;pointer-events:none!important}.detail-panel{position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw)!important;min-width:unset!important;max-width:min(380px,92vw)!important;z-index:100;box-shadow:-8px 0 36px #1e272238;transform:translate(0);transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .2s ease-out;opacity:1!important;pointer-events:auto!important;padding:20px 18px 20px 20px!important;border-left:1px solid rgba(55,95,84,.16)!important}.detail-panel.is-closed{transform:translate(calc(100% + 12px))!important;opacity:0!important;pointer-events:none!important}.person-list{grid-template-columns:1fr}}@media(max-width:768px){.sidebar-btn-label,.btn-text,.topbar-brand-badge span{display:none}.topbar{top:10px;left:10px;right:10px;gap:6px}.app-shell:not(.is-left-collapsed) .topbar{left:10px}.app-shell:not(.is-right-collapsed) .topbar{right:10px}.topbar-left,.topbar-center,.topbar-actions{gap:6px}}.status-message{margin:14px 0 0;padding:10px 12px;color:#375f54;background:#dfe8d8d1;border:1px solid #c1cfbc;border-radius:8px;font-size:13px;line-height:1.4}.dialog-backdrop{position:fixed;z-index:20;inset:0;display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:40px 20px;background:#1e27225c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.person-dialog{margin:auto;display:grid;gap:16px;width:min(480px,100%);padding:22px;color:#1e2722;background:#fffdf7;border:1px solid #c9d2c4;border-radius:8px;box-shadow:0 26px 80px #1e27223d}.person-dialog header,.person-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:14px}.person-dialog h2{margin:4px 0 0;font-size:24px;line-height:1.15}.person-dialog label{display:grid;gap:7px;color:#4c5b50;font-size:13px;font-weight:700}.person-dialog input,.person-dialog textarea{width:100%;padding:11px 12px;color:#1e2722;background:#fff;border:1px solid #c9d2c4;border-radius:8px;outline:0}.person-dialog textarea{resize:vertical}.media-upload-section{display:grid;gap:12px;padding:12px;background:#dfe8d847;border:1px solid #c1cfbc;border-radius:8px}.media-upload-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.media-upload-trigger{position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;color:#fff;background:#375f54;border-radius:6px;cursor:pointer;overflow:hidden}.media-upload-trigger input{position:absolute;inset:0;opacity:0;cursor:pointer}.pending-media-list{display:grid;gap:10px}.pending-media-card{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:start;min-width:0;max-width:100%;padding:10px;overflow:hidden;background:#fffc;border:1px solid #c9d2c4;border-radius:12px}.pending-media-card img{width:96px;height:96px;object-fit:cover;border-radius:6px;background:#eef3ea}.pending-media-fields{display:grid;gap:8px;min-width:0}.pending-media-fields label{display:grid;gap:4px;color:#4c5b50;font-size:12px;font-weight:700}.pending-media-fields input,.pending-media-fields select{width:100%;padding:8px 10px;color:#1e2722;background:#fff;border:1px solid #c9d2c4;border-radius:6px;outline:0}.pending-media-name{display:block;min-width:0;overflow:hidden;color:#375f54;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.pending-media-remove{align-self:start}.person-dialog .checkbox-row{display:flex;min-height:44px;align-items:center;gap:10px;padding:10px 12px;color:#375f54;background:#dfe8d880;border:1px solid #c1cfbc;border-radius:8px}.person-dialog .checkbox-row input{width:auto}.icon-button,.secondary-action{border:1px solid #c9d2c4;border-radius:6px;color:#375f54;background:#fff;cursor:pointer}.icon-button{display:grid;width:36px;height:36px;place-items:center}.secondary-action{min-height:36px;padding:0 14px}.media-summary{display:grid;gap:10px;margin-top:28px}.media-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.media-card{position:relative;display:grid;gap:8px;padding:10px;min-width:0;overflow:hidden;background:#ffffffb8;border:1px solid #c9d2c4;border-radius:12px}.media-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:6px;background:#eef3ea}.media-card-body{display:grid;gap:3px;min-width:0}.media-card-body strong{color:#375f54;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.media-card-body span{display:block;min-width:0;overflow:hidden;color:#647267;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.media-card-delete{position:absolute;top:10px;right:10px}.relationship-summary{display:grid;gap:10px;margin-top:28px}.relationship-list{display:grid;gap:8px}.relationship-chip{display:grid;gap:4px;width:100%;padding:10px 11px;text-align:left;color:#1e2722;background:#ffffffb8;border:1px solid #c9d2c4;border-radius:8px;cursor:pointer}.relationship-chip span,.empty-note{color:#647267;font-size:12px}.relationship-chip strong{font-size:14px}.empty-note{margin:0;line-height:1.4}button,input,select,textarea{font:inherit}.topbar-actions{display:flex;gap:8px;align-items:center}.secondary-toolbar-action{display:inline-flex;height:36px;min-height:36px;align-items:center;gap:8px;padding:0 14px;color:#375f54;background:#ffffffe6;border:1px solid #c9d2c4;border-radius:6px;cursor:pointer}.person-dialog select,.person-dialog textarea{width:100%;padding:11px 12px;color:#1e2722;background:#fff;border:1px solid #c9d2c4;border-radius:8px;outline:0}.layout-status{display:inline-flex;height:36px;min-height:36px;align-items:center;padding:0 12px;color:#4c5b50;background:var(--glass-surface);border:1px solid var(--glass-border);border-radius:6px;font-size:13px;font-weight:700;-webkit-backdrop-filter:blur(14px) saturate(135%);backdrop-filter:blur(14px) saturate(135%);box-shadow:0 8px 20px #1e27220f}.layout-status.is-saving{color:#8a5a25;border-color:#d7b37b;background:#fff7e8}.layout-status.is-saved{color:#375f54;border-color:#adc1b0;background:#f8fff4}.layout-status.is-error{color:#8e3f33;border-color:#d9aaa2;background:#fff1ef}.context-menu{position:fixed;z-index:30;display:grid;min-width:190px;padding:6px;color:#1e2722;background:#fffdf780;border:1px solid var(--glass-border);border-radius:8px;box-shadow:0 18px 54px #1e272238;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%);transform-origin:top left;animation:context-menu-in .15s cubic-bezier(.16,1,.3,1)}.context-menu button{display:flex;min-height:38px;align-items:center;gap:10px;padding:0 10px;color:#243129;text-align:left;background:transparent;border:0;border-radius:6px;cursor:pointer}.context-menu button:hover:not(:disabled),.context-menu button:focus-visible:not(:disabled){color:#1e2722;background:#edf4e9;outline:0}.context-menu button.danger{color:#8e3f33}.context-menu button.danger:hover:not(:disabled),.context-menu button.danger:focus-visible:not(:disabled){background:#fff1ef}.context-menu button:disabled{cursor:not-allowed;opacity:.45}@keyframes context-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.person-card-node{position:relative;display:grid;gap:5px;min-width:190px;min-height:82px;padding:10px;text-align:left;color:#243129;background:#fffdf7;border:1px solid #adc1b0;border-radius:8px;box-shadow:0 16px 40px #2f443a24;transition:transform .12s ease-out,filter .18s ease-out}.person-card-node[class*=card-frame-]{border-color:transparent!important}.flow-mode-view .person-node,.flow-mode-view .person-card-node{cursor:pointer}.flow-mode-view .person-card-node:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(105deg,#fff0 38%,#ffffff57 46%,#fff9 51%,#fff8d652 55%,#fff0 64%);background-repeat:no-repeat;background-size:260% 100%;background-position:-220% 0}.flow-mode-view .person-node:hover{z-index:5}.flow-mode-view .person-node:hover .person-card-node{transform:translateY(-1px) scale(1.012);box-shadow:0 20px 46px #2f443a2e;filter:saturate(1.03)}.flow-mode-view .person-node:hover .person-card-node:after{animation:card-light-sweep 1.18s cubic-bezier(.22,.61,.36,1) both}.person-card-detail-content{display:grid;gap:5px;min-width:0;opacity:1;visibility:visible;transition:opacity .14s ease-out,visibility 0s linear}.react-flow__edge-text,.react-flow__edge-textbg,.react-flow__background,.react-flow__minimap{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease-out,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear}.person-card-name-overview{position:absolute;inset:10px;z-index:3;display:grid;place-items:center;padding-right:0;text-align:center;opacity:0;visibility:hidden;transform:translateY(4px) scale(.98);transition:opacity .18s ease-out,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s}.person-card-node.has-info-icon .person-card-name.person-card-name-overview{padding-right:0}.flow-overview-mode .person-card-node,.flow-overview-mode .person-card-node.card-frame-flowers,.flow-overview-mode .person-card-node.card-frame-laurel{box-shadow:none}.flow-overview-mode .person-card-detail-content{opacity:0;visibility:hidden;transition:opacity .14s ease-out,visibility 0s linear .14s}.flow-overview-mode .react-flow__edge-text,.flow-overview-mode .react-flow__edge-textbg,.flow-overview-mode .react-flow__background,.flow-overview-mode .react-flow__minimap{opacity:0;visibility:hidden;transform:translateY(-3px) scale(.98);transition:opacity .18s ease-out,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear .24s}.flow-overview-mode .person-card-name-overview{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease-out .03s,transform .24s cubic-bezier(.22,1,.36,1),visibility 0s linear}.flow-overview-mode .person-card-node:after{animation:none;opacity:0;visibility:hidden}.flow-overview-mode.flow-mode-view .person-node:hover .person-card-node{transform:none;box-shadow:none;filter:none}.flow-overview-mode .react-flow__edge-path{stroke-width:1.4}@keyframes card-light-sweep{0%{opacity:0;background-position:-220% 0}18%,62%{opacity:.96}to{opacity:0;background-position:220% 0}}@media(prefers-reduced-motion:reduce){.flow-mode-view .person-card-node{transition:box-shadow .18s ease,filter .18s ease}.flow-mode-view .person-node:hover .person-card-node{transform:none}.flow-mode-view .person-node:hover .person-card-node:after{animation:none;opacity:0}}.decorative-frame{position:absolute;inset:calc(var(--frame-inset, 10px) * -1);border-radius:var(--frame-radius, 12px);pointer-events:none;z-index:1}.decorative-frame>div{position:absolute}.decorative-frame-edge-top,.decorative-frame-edge-bottom{left:var(--frame-edge-offset, 12px);right:var(--frame-edge-offset, 12px);height:var(--frame-edge-thickness, 20px);background-image:var(--frame-edge-horizontal-svg);background-repeat:repeat-x;background-size:var(--frame-edge-horizontal-size, 100px 20px)}.decorative-frame-edge-top{top:0;background-position:left top}.decorative-frame-edge-bottom{bottom:0;background-position:left bottom}.decorative-frame-edge-left,.decorative-frame-edge-right{top:var(--frame-edge-offset, 12px);bottom:var(--frame-edge-offset, 12px);width:var(--frame-edge-thickness, 20px);background-image:var(--frame-edge-vertical-svg);background-repeat:repeat-y;background-size:var(--frame-edge-vertical-size, 20px 100px)}.decorative-frame-edge-left{left:0;background-position:left top}.decorative-frame-edge-right{right:0;background-position:right top}.decorative-frame-corner{width:var(--frame-corner-size, 22px);height:var(--frame-corner-size, 22px);background-repeat:no-repeat;background-position:center;background-size:var(--frame-corner-size, 22px) var(--frame-corner-size, 22px)}.decorative-frame-corner-tl{top:0;left:0;background-image:var(--frame-corner-tl-svg)}.decorative-frame-corner-tr{top:0;right:0;background-image:var(--frame-corner-tr-svg)}.decorative-frame-corner-bl{bottom:0;left:0;background-image:var(--frame-corner-bl-svg)}.decorative-frame-corner-br{bottom:0;right:0;background-image:var(--frame-corner-br-svg)}.person-card-node.card-frame-flowers{--frame-inset: 10px;--frame-radius: 12px;--frame-edge-offset: 12px;--frame-edge-thickness: 20px;--frame-corner-size: 22px;--frame-edge-horizontal-svg: var(--flowers-edge-horizontal-svg);--frame-edge-horizontal-size: 100px 20px;--frame-edge-vertical-svg: var(--flowers-edge-vertical-svg);--frame-edge-vertical-size: 20px 100px;--frame-corner-tl-svg: var(--flowers-corner-tl-svg);--frame-corner-tr-svg: var(--flowers-corner-tr-svg);--frame-corner-bl-svg: var(--flowers-corner-bl-svg);--frame-corner-br-svg: var(--flowers-corner-br-svg);box-shadow:0 16px 40px #b4788c38}.person-card-node.card-frame-laurel{--frame-inset: 8px;--frame-radius: 14px;--frame-edge-offset: 14px;--frame-edge-thickness: 18px;--frame-corner-size: 24px;--frame-edge-horizontal-svg: var(--laurel-edge-horizontal-svg);--frame-edge-horizontal-size: 60px 18px;--frame-edge-vertical-svg: var(--laurel-edge-vertical-svg);--frame-edge-vertical-size: 18px 60px;--frame-corner-tl-svg: var(--laurel-corner-tl-svg);--frame-corner-tr-svg: var(--laurel-corner-tr-svg);--frame-corner-bl-svg: var(--laurel-corner-bl-svg);--frame-corner-br-svg: var(--laurel-corner-br-svg);box-shadow:0 16px 40px #5a825038}.person-card-node.has-profile-preview{padding-right:54px}.person-card-node.has-erik-logo{padding-right:58px}.person-card-node.has-info-icon .person-card-name{padding-right:28px}.card-info-icon{position:absolute;top:10px;right:10px;color:#7d8f71;opacity:.8;transition:opacity .2s,color .2s}.person-node:hover .card-info-icon{color:#375f54;opacity:1}.person-card-node strong{font-size:15px;line-height:1.2}.person-card-name{max-width:100%;overflow-wrap:anywhere}.person-card-node span,.person-card-node small{color:#647267;font-size:12px}.person-card-node .life-span{width:fit-content;margin-top:2px;padding:2px 6px;color:#375f54;background:#dfe8d8b8;border-radius:999px;font-weight:700}.person-card-profile-preview{position:absolute;right:10px;bottom:10px;width:40px;height:40px;object-fit:cover;background:#eef3ea;border:1px solid #adc1b0;border-radius:6px;box-shadow:0 8px 18px #2f443a29;pointer-events:none}.person-card-node.has-erik-logo .person-card-profile-preview{right:56px}.person-card-erik-logo{position:absolute;right:10px;bottom:10px;z-index:3;width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 7px 12px rgba(30,39,34,.2));pointer-events:none}.detail-heading{position:relative}.detail-actions{position:absolute;top:-10px;right:0;display:flex;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:560px){.form-grid{grid-template-columns:1fr}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.pending-media-card{grid-template-columns:1fr}.pending-media-card img{width:100%;height:auto;aspect-ratio:1 / 1}}.relationship-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px}.relationship-actions{display:flex;gap:6px;align-items:center}.icon-button.danger{color:#8e3f33;border-color:#d9aaa2;background:#fff8f6}@media(max-width:980px){.relationship-card{grid-template-columns:1fr}.relationship-actions{justify-content:flex-end}}.person-handle{box-sizing:border-box;width:9px;height:9px;background:#375f54;border:2px solid #fffdf7}.person-handle.top{top:0}.person-handle.bottom{bottom:0}.person-handle.side.react-flow__handle-left{left:0}.person-handle.side.react-flow__handle-right{right:0}.person-handle.side{background:#9a5d3b}.person-handle.top,.person-handle.bottom{background:#375f54}.flow-mode-view .person-handle{opacity:0;pointer-events:none}.children-group-handle{opacity:0;visibility:hidden;pointer-events:none!important}.react-flow__edge.edge-parent_child path.react-flow__edge-path{stroke:#375f54;stroke-width:2.4;stroke-dasharray:none}.react-flow__edge.edge-spouse path.react-flow__edge-path,.react-flow__edge.edge-partner path.react-flow__edge-path{stroke:#9a5d3b;stroke-width:2.4;stroke-dasharray:8 7}.react-flow__edge.edge-sibling path.react-flow__edge-path{stroke:#4f6f85;stroke-width:2.3;stroke-dasharray:10 5 2 5;stroke-linecap:round}.react-flow__edge-textbg{fill:#fffdf7e6}.react-flow__edge-text{fill:#243129;font-size:11px;font-weight:700}.children-group-handle{box-sizing:border-box;width:8px;height:8px;background:#7d8f71;border:2px solid #fffdf7}.children-group-handle.top{top:0}.children-group-handle.bottom{bottom:0}.children-group-handle.side.react-flow__handle-left{left:0}.children-group-handle.side.react-flow__handle-right{right:0}.children-group-handle.side{background:#9a5d3b}.children-group-handle.top,.children-group-handle.bottom{background:#375f54}.children-group-node{position:relative;display:flex;align-items:center;justify-content:center;padding:5px 16px;background:#fffdf7;border:1.5px solid #375f54;border-radius:999px;box-shadow:0 4px 12px #2f443a1a;color:#375f54;font-weight:700;font-size:12px;line-height:1.2;text-align:center}.children-group-node strong{font-weight:700}.date-input-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.date-input-label{font-size:13px;font-weight:600;color:#243129}.date-fields-grid{display:grid;grid-template-columns:1fr 1.5fr 1.2fr;gap:8px}.date-field{display:flex;flex-direction:column;gap:4px}.date-field span{font-size:11px;color:#647267}.date-field select,.date-field input{padding:8px;border:1px solid #c9d2c4;border-radius:6px;background:#fffdf7;color:#243129;font-size:13px;outline:none;transition:border-color .2s}.date-field select:focus,.date-field input:focus{border-color:#375f54}.searchable-select-container{position:relative;width:100%}.searchable-select-trigger{width:100%;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#1e2722;background:#fff;border:1px solid #c9d2c4;border-radius:8px;outline:0;cursor:pointer;text-align:left;font:inherit;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.searchable-select-trigger:focus{border-color:#375f54;box-shadow:0 0 0 2px #375f5426}.searchable-select-chevron{flex-shrink:0;color:#647267;transition:transform .2s ease}.searchable-select-chevron.rotated{transform:rotate(180deg)}.searchable-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;width:100%;background:#fffdf7;border:1px solid #c9d2c4;border-radius:8px;box-shadow:0 8px 30px #1e272226;z-index:100;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.searchable-select-search-wrapper{position:relative;display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid #e1e8df;background:#faf8f2}.searchable-select-search-icon{position:absolute;left:20px;color:#647267;pointer-events:none}.searchable-select-search-wrapper .searchable-select-search-input{width:100%;padding:8px 8px 8px 32px;font-size:13px;color:#1e2722;background:#fff;border:1px solid #c9d2c4;border-radius:6px;outline:0;transition:border-color .2s;box-sizing:border-box}.searchable-select-search-wrapper .searchable-select-search-input:focus{border-color:#375f54}.searchable-select-options{list-style:none;margin:0;padding:4px 0;max-height:200px;overflow-y:auto}.searchable-select-option{padding:8px 12px;font-size:13px;color:#1e2722;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background-color .15s,color .15s}.searchable-select-option:hover{background-color:#375f5414;color:#1e2722}.searchable-select-option.selected{background-color:#375f541f;color:#375f54;font-weight:600}.searchable-select-check-icon{color:#375f54;flex-shrink:0}.searchable-select-no-results{padding:12px;font-size:13px;color:#647267;text-align:center;font-style:italic}.searchable-select-container.disabled .searchable-select-trigger{background-color:#f5f5f5;color:#a0a0a0;cursor:not-allowed;border-color:#dcdcdc}.connecting-source .react-flow__handle.source,.connecting-target .react-flow__handle.target{pointer-events:none}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,rgba(55,95,84,.15),transparent 45%),linear-gradient(315deg,rgba(154,93,59,.18),transparent 45%),#e7ece2;padding:1.5rem}.login-card{background:#f6f8f2e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(55,95,84,.2);border-radius:16px;box-shadow:0 8px 32px #1f268714;padding:3rem 2.5rem;width:100%;max-width:440px;text-align:center}.login-header{margin-bottom:2rem;text-align:center}.login-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;background-color:#375f541a;color:#375f54;border-radius:50%;margin-bottom:1.25rem}.login-brand-badge{display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.15rem;position:relative}.login-brand-logo{width:132px;height:132px;border-radius:50%;object-fit:contain;opacity:.88;filter:drop-shadow(0 8px 24px rgba(16,30,24,.16));transition:opacity .25s ease,transform .25s cubic-bezier(.34,1.56,.64,1),filter .25s ease}.login-brand-logo:hover{opacity:1;transform:scale(1.04);filter:drop-shadow(0 10px 28px rgba(16,30,24,.24))}.login-eyebrow{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#375f54;opacity:.85;margin-bottom:.35rem}.login-header h1{font-size:1.55rem;font-weight:700;color:#1e2722;margin:0 0 .45rem;letter-spacing:-.02em}.login-header p{color:#647267;font-size:.92rem;margin:0 auto;max-width:320px;line-height:1.45}.login-error{background-color:#fee2e2;color:#b91c1c;padding:.85rem;border-radius:8px;font-size:.9rem;margin-bottom:1.5rem;text-align:center;border:1px solid #fecaca;font-weight:500}.login-form{display:flex;flex-direction:column;gap:1.5rem;text-align:left}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form label{font-size:.85rem;font-weight:600;color:#4a544e;text-transform:uppercase;letter-spacing:.05em}.input-with-icon{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:14px;color:#647267;pointer-events:none}.input-with-icon input{width:100%;padding:12px 12px 12px 42px;font-size:.95rem;color:#1e2722;background:#fff;border:1px solid rgba(55,95,84,.25);border-radius:8px;outline:0;transition:border-color .2s,box-shadow .2s}.input-with-icon input:focus{border-color:#375f54;box-shadow:0 0 0 3px #375f5426}.login-button{background-color:#375f54;color:#fff;border:none;padding:12px;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:background-color .2s,transform .1s;margin-top:.5rem}.login-button:hover:not(:disabled){background-color:#2c4c43}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.7;cursor:not-allowed}.user-panel{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:8px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,241,232,.34)}.user-menu-container{position:relative;order:3;width:100%}.user-menu-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 16px;background:var(--glass-surface-strong);-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%);border:1px solid var(--glass-border);border-radius:20px;color:#1e2722;font-weight:500;font-size:.9rem;cursor:pointer;box-shadow:var(--glass-shadow),inset 0 1px #ffffff52;transition:transform .16s ease,background-color .2s,border-color .2s,box-shadow .2s}.user-menu-trigger:hover{transform:translateY(-1px);background:#ffffffdb;border-color:#375f5461;box-shadow:0 12px 24px #375f541f,inset 0 1px #ffffff6b}.user-dropdown-menu{position:absolute;bottom:calc(100% + 8px);left:0;width:100%;min-width:100%;border:0}.logs-toggle-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#eef8ef57;border:1px solid var(--glass-border);border-radius:20px;color:#375f54;font-weight:600;font-size:.9rem;cursor:pointer;-webkit-backdrop-filter:blur(16px) saturate(135%);backdrop-filter:blur(16px) saturate(135%);box-shadow:var(--glass-shadow),inset 0 1px #ffffff4d;transition:transform .16s ease,background-color .2s,border-color .2s,color .2s,box-shadow .2s}.user-panel>.logs-toggle-button{width:100%;justify-content:center;padding-inline:10px}.logs-toggle-button:hover{transform:translateY(-1px);background:linear-gradient(135deg,#305b4fe6,#375f54c2);border-color:#ffffff57;color:#fff;box-shadow:0 4px 16px #375f5433}.logs-toggle-button.is-active{background:linear-gradient(135deg,#305b4fe6,#375f54c2);border-color:#ffffff57;color:#fff;box-shadow:0 4px 16px #375f5433}.logs-table{width:100%;border-collapse:collapse;font-size:13px;color:#243129}.logs-table th,.logs-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(55,95,84,.1)}.logs-table th{background:#dfe8d866;color:#375f54;font-weight:700;position:sticky;top:0;z-index:1}.logs-table tr:hover{background:#375f5408}.log-date{color:#647267;white-space:nowrap;width:140px}.log-user{font-weight:600;color:#375f54;width:110px}.log-details{word-break:break-word}.person-node.is-dimmed,.children-group-node-shell.is-dimmed,.react-flow__edge.is-dimmed{opacity:.25!important;transition:opacity .25s ease-in-out}.zoom-slider-container{display:flex!important;align-items:center;gap:12px;margin-top:8px;color:#4c5b50;font-size:13px;font-weight:700}.zoom-slider-container input[type=range]{flex:1;cursor:pointer;accent-color:#375f54}.zoom-value{min-width:44px;text-align:right;font-variant-numeric:tabular-nums;color:#1e2722}.media-archive-stack{display:flex;flex-direction:column;min-width:0;padding-top:10px;margin-bottom:8px;gap:8px;box-sizing:border-box}.media-archive-card{position:relative;height:56px;display:flex;align-items:center;min-width:0;max-width:100%;border-radius:12px;border:1px solid #c9d2c4;background:#fffdf7;padding:6px 12px;cursor:pointer;overflow:hidden;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;z-index:1;box-shadow:0 2px 6px #1e27220a;box-sizing:border-box;width:100%}.media-archive-card:hover{background:#fbfbf6;border-color:#375f54;box-shadow:0 4px 12px #1e272214}.media-archive-thumbnail{width:42px;height:42px;object-fit:cover;border-radius:8px;border:1px solid #c9d2c4;margin-right:10px;flex-shrink:0}.media-archive-body{flex:1 1 0;overflow:hidden;display:flex;flex-direction:column;min-width:0;max-width:100%}.media-archive-caption{display:block;min-width:0;max-width:100%;font-size:13px;font-weight:500;color:#375f54;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-archive-actions{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;gap:6px;opacity:0;pointer-events:none;transition:opacity .2s ease;padding:0 12px;background:linear-gradient(90deg,#fffdf700,#fffdf7 25% 100%);border-top-right-radius:12px;border-bottom-right-radius:12px}.media-archive-card:hover .media-archive-actions{opacity:1;pointer-events:auto}.media-archive-card.has-edit-actions .media-archive-body{padding-right:96px}.media-archive-card.has-view-actions .media-archive-body{padding-right:52px}.open-archive-button{margin-top:12px;width:100%;display:flex;justify-content:center;align-items:center;gap:8px}.all-media-card:hover .all-media-card-hover-actions{opacity:1!important}.all-media-card-hover-actions{position:absolute;inset:0;background:#1e27228c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;gap:12px;opacity:0;transition:opacity .2s ease}.all-media-card .icon-button{background:#fff!important;border:0!important;border-radius:50%!important;padding:8px!important;cursor:pointer;box-shadow:0 4px 10px #00000026;display:flex;align-items:center;justify-content:center;transition:transform .2s,background-color .2s}.all-media-card .icon-button:hover{transform:scale(1.1)}.all-media-card .icon-button.promote-btn{color:#375f54!important}.all-media-card .icon-button.danger{color:#d93838!important}.all-media-card.is-profile{border:2px solid #375f54!important}.lightbox-backdrop{position:fixed;inset:0;background:#0f1714f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;cursor:zoom-out;animation:fadeIn .25s ease}.lightbox-image{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 50px #00000080;cursor:default;animation:scaleIn .25s cubic-bezier(.25,.8,.25,1)}.lightbox-close{position:absolute;top:24px;right:24px;width:44px;height:44px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .2s;z-index:10001}.lightbox-close:hover{background:#fff3;transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.masked-password-input{-webkit-text-security:disc!important}@media(max-width:1180px){.admin-stage-grid{grid-template-columns:1fr}}:root{color:#2b2a2d;background:#e8dfd6;--warm-ink: #2b2a2d;--warm-ink-soft: #4f4a4b;--warm-muted: #4f4342;--warm-pine: #5f514f;--warm-pine-deep: #514544;--warm-clay: #ad5744;--warm-clay-deep: #9f4d3e;--warm-border: #cdbeb5;--warm-card-border: #835852;--warm-surface: #fff8f0;--warm-surface-soft: #f2e7df}body{color:var(--warm-ink);background:#e8dfd6}.app-shell{color:var(--warm-ink);background:radial-gradient(circle at 8% 12%,rgba(173,92,73,.14),transparent 32%),radial-gradient(circle at 92% 84%,rgba(95,81,79,.15),transparent 36%),linear-gradient(135deg,rgba(255,248,240,.5),transparent 46%),#e8dfd6}.left-rail,.detail-panel{color:var(--warm-ink);background:#914c43;border-color:#fff8f0a8;-webkit-backdrop-filter:none;backdrop-filter:none}.detail-panel{background:#914c43}.brand-info strong,.detail-panel h1,.person-card-node,.person-list-item,.search-box,.admin-stage,.admin-users-panel,.admin-card,.admin-user-card,.admin-access-log-item{color:var(--warm-ink)}.brand-info span,.brand-block span,.panel-kicker,.person-list-item small,dt,.admin-stage-header p,.layout-status,.status-message{color:var(--warm-muted)}.search-box,.person-list-item{border-color:#cdbeb5b8}.search-box,.person-list-item{background:#fff8f07a}.person-list-item:hover,.person-list-item.is-active{color:var(--warm-pine-deep);border-color:#ad5c496b;background:#fff0e7ad}.secondary-toolbar-action,.sidebar-toggle-btn,.user-menu-trigger,.logs-toggle-button{color:var(--warm-pine-deep)}.user-menu-trigger,.logs-toggle-button{border:0;height:36px;min-height:36px;padding:0 14px;border-radius:6px}.primary-action,.primary-action:hover:not(:disabled){background:linear-gradient(135deg,#b5604bf0,#914b3ed6)}.secondary-toolbar-action.is-active,.logs-toggle-button.is-active,.logs-toggle-button:hover{background:linear-gradient(135deg,#5f514ff0,#514544db);border-color:#fff8f061}.mode-switch button.is-selected{background:linear-gradient(135deg,#5f514ff0,#514544db)}.edge-parent_child path{stroke:var(--warm-pine)}.edge-spouse path,.edge-partner path{stroke:var(--warm-clay)}.person-card-node{background:#fffaf4e6;border-color:#c6b3aa}.person-card-name,.relationship-card strong,.log-user{color:var(--warm-pine-deep)}.react-flow__controls{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;padding:6px 8px!important;overflow:visible!important;background:#fffaf3f0!important;border:1px solid rgba(139,97,90,.28)!important;border-radius:14px!important;box-shadow:0 8px 24px #30292a24,0 2px 6px #30292a14!important;margin-bottom:16px!important}.react-flow__controls button{width:38px!important;height:38px!important;border-radius:10px!important;background:#fffaf3!important;border:1px solid rgba(173,96,79,.24)!important;color:#30292a!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;box-shadow:0 2px 5px #30292a0f!important;transition:all .2s cubic-bezier(.34,1.56,.64,1)!important;padding:0!important}.react-flow__controls button:hover{background:#fff1e8!important;border-color:#ad604f85!important;color:#81483f!important;transform:translateY(-2px)!important;box-shadow:0 5px 12px #30292a24!important}.react-flow__controls button:active{transform:translateY(0) scale(.96)!important;background:#f8ded0!important;box-shadow:0 1px 3px #30292a1a!important}.react-flow__controls button svg{width:17px!important;height:17px!important;fill:currentColor!important;transition:transform .2s ease!important}.react-flow__controls button:hover svg{transform:scale(1.12)!important}.canvas-stage{background:linear-gradient(135deg,#e4b3a3,#dca99a 48%,#d8ada0)}.person-card-node,.person-card-node[class*=card-frame-],.flow-mode-view .person-node:hover .person-card-node{background:#fff8f0;border-color:var(--warm-card-border)!important;box-shadow:none}.person-card-node{color:#302d33;transition:transform .12s ease-out,filter .18s ease-out}.flow-mode-view .person-node:hover .person-card-node{box-shadow:none;filter:saturate(1.04) brightness(1.015)}.search-box,.person-list-item,.topbar-brand-badge,.mode-switch,.secondary-toolbar-action,.layout-status,.user-menu-trigger,.logs-toggle-button{background:#f0dfd7}.person-list-item:hover,.person-list-item.is-active{background:#f8e2d8}.context-menu,.user-dropdown-menu{background:#f2e3dc}.primary-action,.primary-action:hover:not(:disabled){background:var(--warm-clay)}.primary-action:hover:not(:disabled){background:var(--warm-clay-deep)}.secondary-toolbar-action.is-active,.logs-toggle-button.is-active,.logs-toggle-button:hover,.mode-switch button.is-selected{background:#5f514f}.portrait,.portrait-edit-button,.person-dialog,.login-card{background:#f2e7df}.user-menu-trigger:hover,.sidebar-toggle-btn:hover,.close-sidebar-btn:hover{background:#f8e2d8}.portrait{background:#f0dfd7}.portrait-badge{background:#5f514f}.status-message{background:#e1d0c8}.portrait-edit-button,.media-upload-section,.pending-media-card,.media-card,.relationship-chip,.person-card-node .life-span,.person-dialog .checkbox-row{background:#f0dfd7}.logs-table th{background:#e4d3cb}.left-rail .brand-info strong,.left-rail .brand-info span,.left-rail .person-list-header,.left-rail .person-list-header .filtered-count,.left-rail .close-sidebar-btn,.left-rail .admin-sidebar-nav .panel-kicker,.detail-panel{color:#fff8f0}.detail-panel .detail-panel-title,.detail-panel .panel-kicker,.detail-panel .summary-section-header .panel-kicker,.detail-panel .media-summary .panel-kicker,.detail-panel .relationship-summary .panel-kicker,.detail-panel .notes-summary .panel-kicker{color:#ffe9de!important;font-weight:700;letter-spacing:.04em}.detail-panel h1,.detail-panel .detail-heading h1{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.2)}.detail-panel dt{color:#f7dcd0!important;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.detail-panel dd{color:#fff!important;font-size:14.5px}.detail-panel .empty-note{color:#f4d8cb!important;font-style:italic;opacity:.95}.detail-panel .portrait.has-no-image{color:#ffe9de!important;background:#00000029!important;border-color:#fff8f04d!important}.detail-panel .close-sidebar-btn{color:#fff8f0!important;background:#0000002e!important;border-color:#fff8f040!important}.detail-panel .close-sidebar-btn:hover{background:#0000004d!important;color:#fff!important}.detail-panel .relationship-card{background:#fffcf7f2;border:1px solid rgba(255,248,240,.4);border-radius:9px;overflow:hidden}.detail-panel .relationship-chip{color:#2b2a2d}.detail-panel .relationship-chip span{color:#81483f;font-weight:600}.detail-panel .relationship-chip strong{color:#1e2722}.detail-panel .relationship-chip small{color:#64748b}.detail-panel .person-note-card{background:#fffcf7f2;border:1px solid rgba(255,248,240,.4);border-radius:9px;color:#2b2a2d}.detail-panel .person-note-card strong{color:#1e2722}.detail-panel .person-note-card p{color:#3b3a3d}.detail-panel .open-archive-button{background:#fffcf724!important;color:#fff!important;border:1px solid rgba(255,248,240,.35)!important}.detail-panel .open-archive-button:hover{background:#fffcf73d!important;border-color:#fff!important}.left-rail .search-box,.left-rail .search-box input,.left-rail .person-list-item,.left-rail .person-list-item small{color:#2b2a2d}button{border-radius:8px!important}.person-editor-dialog{width:min(680px,100%);max-height:calc(100dvh - 32px);padding:18px;gap:12px;overflow-y:auto;align-content:start}.person-editor-dialog .form-grid{gap:10px}.person-editor-dialog label{gap:5px}.person-editor-dialog input,.person-editor-dialog select,.person-editor-dialog textarea{padding:9px 10px}.person-date-living-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:end}.person-editor-dialog .date-input-group{margin-bottom:0}.person-editor-dialog .checkbox-row{min-height:38px;padding:8px 10px}.person-editor-dialog .media-upload-section{gap:8px;padding:10px}@media(max-width:560px){.person-editor-dialog{width:100%;padding:16px}.person-date-living-row{grid-template-columns:1fr}}@media(max-height:760px){.dialog-backdrop{padding:16px}.person-editor-dialog{max-height:calc(100dvh - 16px);padding:14px;gap:10px}}@media(min-width:981px){.left-rail.is-closed{transform:translate(0);opacity:1;pointer-events:auto}.left-rail .close-sidebar-btn{display:none}}@media(max-width:980px){.left-rail .close-sidebar-btn{display:grid}}.left-rail .person-list,.detail-panel{scrollbar-color:rgba(255,248,240,.28) transparent}.left-rail .person-list::-webkit-scrollbar-track,.detail-panel::-webkit-scrollbar-track{background:transparent}.left-rail .person-list::-webkit-scrollbar-thumb,.detail-panel::-webkit-scrollbar-thumb{background:#fff8f038}.left-rail .person-list::-webkit-scrollbar-thumb:hover,.detail-panel::-webkit-scrollbar-thumb:hover{background:#fff8f073}.left-rail .close-sidebar-btn{color:#fff8f0;background:#7b4039;border-color:#7b4039}.left-rail .close-sidebar-btn:hover,.left-rail .close-sidebar-btn:focus-visible{color:#fff;background:#6a342f;border-color:#fff1e8}.detail-panel .close-sidebar-btn{color:#fff8f0;background:#7b4039;border-color:#7b4039}.detail-panel .close-sidebar-btn:hover,.detail-panel .close-sidebar-btn:focus-visible{color:#fff;background:#6a342f;border-color:#fff1e8}.detail-panel .icon-button,.detail-panel .portrait-edit-button,.detail-panel .secondary-action{color:#fff8f0;background:#7b4039;border-color:#7b4039}.detail-panel .icon-button:hover:not(:disabled),.detail-panel .icon-button:focus-visible:not(:disabled),.detail-panel .portrait-edit-button:hover,.detail-panel .portrait-edit-button:focus-visible,.detail-panel .secondary-action:hover:not(:disabled),.detail-panel .secondary-action:focus-visible:not(:disabled){color:#fff;background:#6a342f;border-color:#fff1e8}.admin-role-badge.is-admin,.portrait-badge{color:#fff;background:var(--warm-pine)}.admin-user-form-card label,.person-dialog label,.pending-media-fields label,.pending-media-name,.media-card-body strong,.media-archive-caption,.log-user,.zoom-slider-container,.date-input-label{color:var(--warm-pine-deep)}.person-card-node span,.person-card-node small,.media-card-body span,.relationship-chip span,.empty-note,.date-field span,.searchable-select-chevron,.searchable-select-search-icon,.searchable-select-no-results,.login-header p,.input-icon,.log-date{color:var(--warm-muted)}.icon-button,.secondary-action{color:var(--warm-pine-deep);border-color:var(--warm-border)}.person-dialog .media-upload-trigger,.media-upload-trigger,.login-button{color:#fff!important;background:var(--warm-clay)}.person-dialog .media-upload-trigger:hover,.person-dialog .media-upload-trigger:focus-visible,.media-upload-trigger:hover,.media-upload-trigger:focus-visible,.login-button:hover:not(:disabled){background:var(--warm-clay-deep);color:#fff!important}.login-container{background:linear-gradient(135deg,#e4b3a3,#dca99a 48%,#d8ada0)}.login-card{color:var(--warm-ink);background:var(--warm-surface);border-color:var(--warm-border)}.login-icon{color:var(--warm-clay-deep);background:#f0dfd7}.login-header h1,.logs-table{color:var(--warm-ink)}.login-eyebrow{color:var(--warm-pine-deep, #375f54)}.logs-table th{color:var(--warm-pine-deep)}.profile-focus-editor,.pending-media-card img,.searchable-select-search-wrapper{background:var(--warm-surface-soft);border-color:var(--warm-border)}.person-dialog input,.person-dialog textarea,.pending-media-fields input,.pending-media-fields select,.date-field select,.date-field input,.searchable-select-trigger,.searchable-select-search-wrapper .searchable-select-search-input,.input-with-icon input,.admin-user-form-card input,.admin-user-form-card select{color:var(--warm-ink);border-color:var(--warm-border)}.searchable-select-trigger:focus,.searchable-select-search-wrapper .searchable-select-search-input:focus,.date-field select:focus,.date-field input:focus,.input-with-icon input:focus,.person-dialog input:focus,.person-dialog textarea:focus,.admin-user-form-card input:focus,.admin-user-form-card select:focus{border-color:var(--warm-clay);box-shadow:0 0 0 3px #ad574429}.searchable-select-option:hover,.searchable-select-option.selected{color:var(--warm-pine-deep);background:#f0dfd7}.searchable-select-check-icon,.card-info-icon,.all-media-card .icon-button.promote-btn{color:var(--warm-clay-deep)!important}.media-archive-card:hover,.all-media-card.is-profile{border-color:var(--warm-clay)!important}.zoom-slider-container input[type=range],.person-dialog input[type=checkbox]{accent-color:var(--warm-clay)}.person-handle.top,.person-handle.bottom,.children-group-handle.top,.children-group-handle.bottom{background:var(--warm-pine)}.person-handle.side,.children-group-handle.side{background:var(--warm-clay)}.children-group-node{color:var(--warm-pine-deep);border-color:var(--warm-pine)}.react-flow__edge.edge-parent_child path.react-flow__edge-path{stroke:var(--warm-pine)}.react-flow__edge.edge-spouse path.react-flow__edge-path,.react-flow__edge.edge-partner path.react-flow__edge-path{stroke:var(--warm-clay)}button:focus-visible{outline:2px solid var(--warm-pine);outline-offset:2px}.left-rail button:focus-visible,.detail-panel button:focus-visible{outline-color:#fff1e8}.app-shell.is-admin-view .canvas-stage{box-sizing:border-box;padding:0;overflow:hidden;display:flex;flex-direction:column}.app-shell.is-admin-view .admin-stage{position:relative;inset:auto;flex:1;height:100%;min-height:0;padding:24px 28px 32px;gap:20px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;background:transparent;border:0;border-radius:0;box-shadow:none;box-sizing:border-box}.app-shell.is-admin-view .admin-stage-header{padding:2px 2px 0}.app-shell.is-admin-view .admin-stage-grid{padding-bottom:2px}@media(max-width:980px){.app-shell.is-admin-view .admin-stage{padding:16px 16px 24px}}:root{--heritage-ink: #30292a;--heritage-muted: #625253;--heritage-brick: #81483f;--heritage-brick-deep: #673932;--heritage-clay: #ad604f;--heritage-ivory: #fffaf3;--heritage-paper: #f5e9df;--heritage-canvas: #eac8bb;--heritage-border: #cdb6aa;--heritage-focus: #315f57;--heritage-shadow: 0 12px 28px rgb(71 42 37 / 12%)}.canvas-stage{background:radial-gradient(circle at 20% 10%,rgb(255 250 243 / 34%),transparent 34%),linear-gradient(145deg,#edcfc3,var(--heritage-canvas))}.left-rail,.detail-panel{background:var(--heritage-brick)}.left-rail .person-list-item.is-active{padding-left:9px;background:#fff1e8;border-left:4px solid var(--heritage-clay)}.brand-info strong,.detail-panel h1,.person-card-name{font-family:Georgia,Times New Roman,serif;letter-spacing:-.018em}.person-card-node{background:var(--heritage-ivory);border-color:#8b615a!important}.person-card-node.is-selected,.react-flow__node.selected .person-card-node{outline:3px solid rgb(173 96 79 / 75%);outline-offset:3px;box-shadow:0 0 0 3px #ad604f38}.decorative-frame{opacity:.76;filter:saturate(.86)}.portrait.has-no-image{min-height:116px;aspect-ratio:auto;margin-bottom:16px}.react-flow__controls{display:flex;flex-direction:row;align-items:center;gap:8px;padding:6px 8px;overflow:visible;background:#fffaf3eb;border:1px solid rgb(111 77 70 / 28%);border-radius:14px;box-shadow:0 8px 24px #472a2524,0 2px 6px #472a2514;margin-bottom:16px}.react-flow__controls button{width:38px;height:38px;border-radius:10px;background:var(--heritage-ivory);border:1px solid rgb(173 96 79 / 24%);color:var(--heritage-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 5px #472a250f;transition:all .2s cubic-bezier(.34,1.56,.64,1);padding:0}.react-flow__controls button:hover{background:#fff1e8;border-color:#ad604f7a;color:var(--heritage-brick);transform:translateY(-2px);box-shadow:0 5px 12px #472a2524}.react-flow__controls button:active{transform:translateY(0) scale(.96);background:#f8ded0;box-shadow:0 1px 3px #472a251a}.react-flow__controls button svg{width:17px;height:17px;fill:currentColor;transition:transform .2s ease}.react-flow__controls button:hover svg{transform:scale(1.12)}.dialog-focus-shell{width:min(480px,100%);margin:auto;outline:none}.dialog-focus-shell .person-dialog{width:100%}.person-dialog .media-upload-trigger,.media-upload-trigger{color:#fff!important}.person-dialog .media-upload-trigger span,.media-upload-trigger span,.person-dialog .media-upload-trigger svg,.media-upload-trigger svg{color:#fff!important}.person-dialog .media-upload-trigger:hover,.person-dialog .media-upload-trigger:focus-visible,.media-upload-trigger:hover,.media-upload-trigger:focus-visible{color:#fff!important}.dialog-success,.dialog-error,.dialog-loading,.dialog-empty{padding:14px;border-radius:8px;text-align:center}.dialog-success{color:#315f57;background:#e8f1e9;border:1px solid #afc7b5}.dialog-error{color:#8e3f33;background:#fff1ef;border:1px solid #d9aaa2}.dialog-loading,.dialog-empty{padding-block:40px;color:var(--heritage-muted)}.dialog-empty{font-style:italic}.logs-dialog,.all-media-dialog{width:min(720px,100%);max-height:85dvh;display:flex;flex-direction:column}.dialog-icon-title{display:flex;align-items:center;gap:8px}.dialog-icon-title svg{color:var(--heritage-clay)}.logs-dialog-content,.all-media-grid-container{flex:1;min-height:200px;min-width:0;max-width:100%;margin:16px 0 0;padding-right:4px;overflow-x:hidden;overflow-y:auto}.logs-load-more{margin:16px auto 0}.logs-close-button{margin-left:auto}.all-media-grid{display:grid;min-width:0;max-width:100%;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.all-media-card{position:relative;display:flex;min-width:0;height:190px;overflow:hidden;flex-direction:column;background:var(--heritage-ivory);border:1px solid var(--heritage-border);border-radius:12px}.detail-panel .media-summary,.detail-panel .media-summary>div,.detail-panel .media-archive-stack{width:100%;min-width:0;max-width:100%}.detail-panel .media-archive-stack{overflow-x:hidden}.detail-panel .media-archive-card{flex:0 0 auto;width:100%;min-width:0;max-width:100%}.all-media-card-img-wrapper{position:relative;min-width:0;flex:1;overflow:hidden;background:var(--heritage-paper)}.all-media-card-img-wrapper>img{width:100%;height:100%;object-fit:cover}.profile-label-badge{position:absolute;top:8px;left:8px;padding:3px 7px;color:#fff;background:var(--heritage-brick-deep);border-radius:5px;box-shadow:0 2px 6px #00000029;font-size:10px;font-weight:700}.all-media-caption{display:block;min-width:0;max-width:100%;overflow:hidden;padding:8px 10px;color:var(--heritage-muted);border-top:1px solid var(--heritage-border);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.all-media-footer{display:flex;justify-content:flex-end;margin-top:18px}.focus-position-controls{display:grid;gap:8px}.notes-summary{display:grid;gap:10px;margin-top:24px}.detail-panel .notes-summary .panel-kicker{color:var(--heritage-ivory)}.summary-section-header{display:flex;align-items:center;justify-content:space-between}.person-note-list{display:grid;gap:8px}.person-note-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:11px 12px;color:var(--heritage-ink);background:var(--heritage-paper);border:1px solid rgb(255 250 243 / 48%);border-radius:9px}.person-note-card p{margin:5px 0 0;font-size:13px;line-height:1.45;white-space:pre-wrap}.person-note-actions{display:flex;gap:5px;align-items:start}.searchable-select-option.is-active{color:var(--heritage-ink);background:#ead7ce}.admin-user-card:focus-visible,.media-archive-card:focus-visible{outline:3px solid var(--heritage-focus);outline-offset:2px}@media(min-width:981px){.app-shell{display:flex;position:relative;width:100vw;height:100vh;overflow:hidden}.left-rail{position:relative;width:310px;min-width:310px;max-width:310px;flex-shrink:0;z-index:20}.canvas-stage{position:relative;flex:1;min-width:0;height:100%;overflow:hidden}.detail-panel{position:absolute;top:0;right:0;bottom:0;width:360px;min-width:360px;max-width:360px;z-index:35;transform:translateZ(0);opacity:1;visibility:visible;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .22s ease-out,visibility .35s;will-change:transform,opacity}.detail-panel.is-closed{transform:translate3d(calc(100% + 24px),0,0);opacity:0;visibility:hidden;pointer-events:none;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .18s ease-in,visibility .26s}.left-rail .close-sidebar-btn{display:none}.topbar,.app-shell:not(.is-left-collapsed) .topbar{left:16px;right:16px}}@media(max-width:768px){.detail-panel{position:fixed;inset:auto 0 0;width:100%!important;min-width:100%!important;max-width:none!important;height:min(75dvh,660px);padding:18px!important;border:0;border-radius:20px 20px 0 0;box-shadow:0 -18px 50px #301e1c59;transform:translateZ(0);opacity:1;visibility:visible;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .22s ease-out,visibility .35s;will-change:transform,opacity;z-index:50}.detail-panel.is-closed{transform:translate3d(0,calc(100% + 24px),0)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .18s ease-in,visibility .26s!important}.detail-panel .portrait.has-image{max-height:220px;aspect-ratio:16 / 9}.mode-switch button{padding-inline:11px}.person-dialog{border-radius:14px}}@media(max-width:980px){.app-shell.is-admin-view .admin-users-panel{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(48dvh,420px);overflow:hidden}.app-shell.is-admin-view .admin-user-list{min-height:0;max-height:none;overflow-y:auto!important;overscroll-behavior:contain}.detail-panel .relationship-card{grid-template-columns:minmax(0,1fr) auto;align-items:stretch}.detail-panel .relationship-actions{justify-content:flex-end;align-items:center}}@media(max-width:768px){.detail-panel .portrait.has-image{max-height:none;aspect-ratio:1 / 1}.detail-panel,.detail-panel-body,.detail-panel .portrait,.detail-panel .media-summary,.detail-panel .media-archive-stack,.detail-panel .media-archive-card{min-width:0;max-width:100%}.detail-panel-body{overflow-x:clip}.detail-panel .portrait{width:100%;inline-size:100%}.detail-panel img,.all-media-dialog img{max-inline-size:100%}.detail-panel .portrait-media img{width:100%;height:100%}}@media(max-width:480px){.dialog-backdrop{padding:10px}.all-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.app-shell.is-admin-view .admin-users-panel{gap:10px}.app-shell.is-admin-view .admin-user-list{max-height:min(34dvh,260px);overflow-y:auto;padding-right:2px}.app-shell.is-admin-view .admin-user-card{grid-template-columns:32px minmax(0,1fr) 76px;gap:8px;padding:9px;border-radius:10px}.app-shell.is-admin-view .admin-user-avatar{width:32px;height:32px;font-size:.72rem}.app-shell.is-admin-view .admin-user-name{font-size:13px;line-height:1.15}.app-shell.is-admin-view .admin-user-meta{gap:5px;margin-top:2px}.app-shell.is-admin-view .admin-role-badge,.app-shell.is-admin-view .admin-access-badge{font-size:9px}.app-shell.is-admin-view .admin-user-last-seen{display:none}.app-shell.is-admin-view .admin-user-card-actions{flex-direction:row;gap:4px}.app-shell.is-admin-view .admin-user-card-actions .icon-button{width:36px;min-width:36px;height:36px;min-height:36px;padding:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mobile-sidebar-toggle,.mobile-detail-close-icon{display:none}.dialog-backdrop{z-index:200}@media(max-width:980px){html,body,#root,.app-shell,.canvas-stage{width:100%;height:100dvh;min-height:100dvh;overflow:hidden}body{overscroll-behavior:none}.react-flow__controls{display:none!important}.mobile-sidebar-toggle{display:inline-flex;width:44px;min-width:44px;height:44px;min-height:44px;align-items:center;justify-content:center;padding:0;background:var(--heritage-ivory);border:1px solid var(--heritage-border);box-shadow:var(--heritage-shadow);touch-action:manipulation}.left-rail{width:min(340px,88vw)!important;max-width:min(340px,88vw)!important;height:100dvh;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))!important;z-index:110;touch-action:pan-y}.left-rail .close-sidebar-btn{display:inline-flex;width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.left-rail .brand-block{min-height:44px;margin-bottom:14px}.left-rail .person-list-item,.left-rail .preface-open-btn,.left-rail .search-box,.left-rail .user-menu-trigger,.left-rail .logs-toggle-button,.left-rail .admin-sidebar-nav-item{min-height:44px;touch-action:manipulation}.sidebar-backdrop{position:fixed;inset:0;z-index:100;display:block;width:100%;height:100%;padding:0;background:#2014127a;border:0;border-radius:0!important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.detail-panel{z-index:110;overscroll-behavior:contain;touch-action:pan-y}.admin-mobile-menu-button{width:fit-content;padding-inline:12px;gap:8px;box-shadow:none}.app-shell.is-admin-view .admin-stage{overscroll-behavior:contain;scrollbar-gutter:auto}}@media(max-width:768px){.left-rail{width:min(292px,80vw)!important;max-width:min(292px,80vw)!important;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))!important}.left-rail .brand-block{min-height:40px;margin-bottom:8px}.left-rail .brand-info strong{font-size:15px}.left-rail .brand-info span{font-size:9px}.left-rail .close-sidebar-btn{width:40px;height:40px;min-width:40px;min-height:40px}.left-rail .sidebar-preface-banner{margin-bottom:5px}.left-rail .preface-open-btn,.left-rail .search-box,.left-rail .user-menu-trigger,.left-rail .logs-toggle-button,.left-rail .admin-sidebar-nav-item{height:40px;min-height:40px;padding-inline:10px;gap:7px;font-size:12px}.left-rail .search-box input,.left-rail .search-box input::placeholder{font-size:12px}.left-rail .person-list-header{margin-top:10px;font-size:9px}.left-rail .person-list{gap:5px;margin-top:5px;padding-right:2px}.left-rail .person-list-item{min-height:44px;gap:2px;padding:7px 9px;border-radius:7px!important}.left-rail .person-list-item>span{font-size:13px;line-height:1.15}.left-rail .person-list-item small{font-size:9px;line-height:1.1}.left-rail .user-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px;padding-top:8px}.left-rail .user-menu-container{grid-column:1 / -1}.left-rail .user-menu-trigger,.left-rail .logs-toggle-button{justify-content:center;padding-inline:6px;white-space:nowrap}.left-rail .admin-sidebar-nav{gap:6px}.left-rail .admin-sidebar-nav strong{margin-bottom:4px;font-size:16px}.topbar{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));left:max(10px,env(safe-area-inset-left));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.app-shell:not(.is-left-collapsed) .topbar,.app-shell:not(.is-right-collapsed) .topbar{right:max(10px,env(safe-area-inset-right));left:max(10px,env(safe-area-inset-left))}.topbar-left{display:flex;align-items:center;gap:6px;flex:0 0 auto}.topbar-center{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;margin-left:auto;max-width:100%;flex-wrap:wrap}.topbar .layout-status{display:none}.topbar .primary-action,.topbar .secondary-toolbar-action{height:44px;min-height:44px;min-width:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.topbar .mode-switch{height:44px;min-height:44px;padding:4px;gap:2px;display:inline-flex;align-items:center;box-sizing:border-box;border-radius:10px}.topbar .mode-switch button{height:36px;min-height:0!important;max-height:36px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font-size:13px;font-weight:500;line-height:1;border:none}.topbar .preface-topbar-btn{width:44px;min-width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.detail-panel{height:min(82dvh,720px);padding:18px max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))!important}.detail-panel .close-sidebar-btn,.detail-panel .icon-button,.detail-panel .portrait-edit-button{min-width:44px;min-height:44px}.detail-panel-top-bar{position:sticky;top:-18px;z-index:4;margin-inline:-4px;padding:18px 4px 8px;background:var(--heritage-brick);touch-action:none}.detail-panel-top-bar:before{position:absolute;top:5px;left:50%;width:42px;height:4px;border-radius:999px;background:#fff8f094;content:"";transform:translate(-50%)}.desktop-detail-close-icon{display:none}.mobile-detail-close-icon{display:block}.detail-panel h1{margin-bottom:16px;font-size:clamp(24px,8vw,30px)}.app-shell.is-admin-view .admin-stage{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));gap:14px}.app-shell.is-admin-view .admin-stage,.app-shell.is-admin-view .admin-stage>*,.app-shell.is-admin-view .admin-stage-grid,.app-shell.is-admin-view .admin-stage-grid>*,.app-shell.is-admin-view .admin-side-column,.app-shell.is-admin-view .admin-card,.app-shell.is-admin-view .admin-users-panel,.app-shell.is-admin-view .admin-preface-grid>*{min-width:0;max-width:100%}.app-shell.is-admin-view .admin-stage-grid,.app-shell.is-admin-view .admin-preface-grid{display:grid;width:100%;grid-template-columns:minmax(0,1fr)!important;align-items:start}.app-shell.is-admin-view .admin-users-panel,.app-shell.is-admin-view .admin-card,.app-shell.is-admin-view .admin-side-column{width:100%}.admin-stage-header{align-items:stretch}.admin-header-title-group h2{font-size:1.25rem}.admin-stats-bar{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.admin-stat-chip{min-width:0;padding-inline:5px;text-align:center}.admin-users-panel,.admin-card,.admin-preface-form-card{padding:14px}.admin-side-column,.admin-user-list,.admin-access-log-list{overflow:visible}.admin-panel-header{flex-direction:column;align-items:flex-start;flex-wrap:wrap}.admin-panel-header>.primary-action,.admin-panel-header>.secondary-action{align-self:flex-start;max-width:100%}.admin-user-card-main{align-items:flex-start;flex-direction:column}.admin-user-meta{flex-wrap:wrap}.admin-user-last-seen{white-space:normal}.admin-user-card-actions{flex-direction:column}.admin-user-card{display:grid;grid-template-columns:36px minmax(0,1fr) 44px;align-items:start;gap:10px}.admin-user-card-main{min-width:0}.admin-user-card-actions{grid-column:3;grid-row:1 / span 2}.admin-access-log-item .log-item-header,.admin-access-log-item .log-time-indicator,.admin-form-actions,.admin-preface-form-card .admin-form-actions{flex-wrap:wrap}.admin-access-log-item .log-time-indicator,.admin-access-log-item .log-user-agent,.admin-user-name{overflow-wrap:anywhere;white-space:normal}.admin-form-actions>button,.admin-preface-form-card .admin-form-actions>button{flex:1 1 128px;max-width:100%}.admin-user-card-actions .icon-button,.admin-form-actions button{min-width:44px;min-height:44px}.admin-preface-grid,.admin-stage-grid{gap:12px}.rich-editor-wrapper,.rich-typography-controls,.admin-preface-meta-fields{padding:10px}.admin-preface-meta-fields{grid-template-columns:minmax(0,1fr)}.rich-formatting-toolbar,.rich-tool-group,.rich-presets-buttons{max-width:100%;flex-wrap:wrap}.rich-tool-divider{display:none}.rich-checkbox-label{width:100%;min-height:40px;height:auto;padding-block:8px;white-space:normal!important}.rich-control-item,.rich-control-item.control-font,.rich-control-item.control-size,.rich-control-item.control-line-height,.rich-control-item.control-align,.rich-control-item.control-theme{width:100%;min-width:0;flex-basis:100%}.rich-toggle-group{width:100%;justify-content:space-around}.rich-tool-btn,.rich-toggle-btn,.rich-preset-btn{min-width:40px;min-height:40px}}@media(max-width:480px){.login-container{min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.login-card{padding:24px 20px}.login-brand-logo{width:96px;height:96px}.login-header{margin-bottom:1.5rem}.login-form{gap:1.1rem}.dialog-backdrop,.preface-modal-backdrop{align-items:stretch;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.person-dialog,.dialog-focus-shell,.preface-dialog-card{width:100%;max-height:calc(100dvh - 16px);margin:auto}.person-dialog{padding:16px;overflow-y:auto}.person-dialog header,.person-dialog footer{align-items:flex-start;flex-wrap:wrap}.person-dialog h2{font-size:21px}.person-dialog input,.person-dialog select,.person-dialog textarea,.searchable-select-trigger{min-height:44px;font-size:16px}.person-dialog footer button,.preface-dialog-footer button{min-height:44px}.logs-table{min-width:560px}.preface-dialog-header,.preface-dialog-body,.preface-dialog-footer{padding-inline:18px}.preface-dialog-header{padding-block:18px 12px}.preface-dialog-body{padding-block:16px}.preface-dialog-footer{padding-block:12px max(14px,env(safe-area-inset-bottom));flex-wrap:wrap}.preface-dialog-titles h2{font-size:1.4rem}.admin-panel-header .primary-action,.admin-form-actions .primary-action,.admin-form-actions .secondary-action{height:auto;white-space:normal}}
