:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--bg: #f8f9fa;--card: #ffffff;--ink: #0f172a;--ink-light: #334155;--muted: #64748b;--muted-light: #94a3b8;--line: #e2e8f0;--line-dark: #cbd5e1;--accent: #6366f1;--accent-dark: #4f46e5;--accent-light: #818cf8;--accent-ink: #ffffff;--accent-bg: #c5d0f3;--warn: #ef4444;--success: #10b981;--surface-a: #f0f9ff;--surface-b: #fef3c7;--surface-c: #f3e8ff;--hero-a: #1e1b4b;--hero-b: #4338ca;--hero-c: #7c3aed;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-hero: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--gradient-accent: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .04);--shadow-md: 0 2px 4px -1px rgb(0 0 0 / .06), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-lg: 0 4px 6px -2px rgb(0 0 0 / .08), 0 2px 4px -2px rgb(0 0 0 / .04);--shadow-xl: 0 8px 12px -4px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .06);--font-sans: "SF Pro Text", "Segoe UI Variable Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "SF Pro Display", "Avenir Next", "Segoe UI Variable Display", "Trebuchet MS", sans-serif;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--input-bg: #ffffff;--input-border: #e2e8f0;--input-focus: #6366f1;font-family:var(--font-sans)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-sans);line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);font-size:15px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.03em;font-weight:600;color:var(--ink)}h1{font-size:3.5rem;line-height:1.1}h2{font-size:2rem;line-height:1.2}h3{font-size:1.5rem;line-height:1.3}a{color:var(--accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-dark)}button,input,select,textarea{font:inherit}.btn,.ui-btn{--btn-bg: #fff;--btn-border: var(--input-border);--btn-ink: var(--ink);--btn-hover-bg: var(--bg);--btn-hover-border: var(--line-dark);--btn-focus-ring: 0 0 0 3px rgb(99 102 241 / .32);--btn-focus-ring-offset: 0 0 0 1px rgb(255 255 255 / .7);border:1px solid var(--btn-border);border-radius:10px;background:var(--btn-bg);color:var(--btn-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-weight:600;font-size:.88rem;letter-spacing:-.01em;line-height:1;min-height:40px;padding:.56rem .96rem;text-decoration:none;transition:border-color .12s ease,background-color .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.btn:hover:not(:disabled):not([aria-disabled=true]),.ui-btn:hover:not(:disabled):not([aria-disabled=true]){background:var(--btn-hover-bg);border-color:var(--btn-hover-border);transform:translateY(-1px)}.btn:active:not(:disabled):not([aria-disabled=true]),.ui-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(0)}.btn:focus-visible,.ui-btn:focus-visible{outline:none;box-shadow:var(--btn-focus-ring),var(--btn-focus-ring-offset)}.btn:disabled,.btn[aria-disabled=true],.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.56;cursor:not-allowed;pointer-events:none}.btn-content{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.btn-spinner{width:.9rem;height:.9rem;border-radius:999px;border:2px solid currentColor;border-right-color:transparent;animation:btn-spin .72s linear infinite}.btn-sm,.btn-small,.ui-btn-sm{min-height:34px;padding:.4rem .72rem;font-size:.78rem}.btn-md,.ui-btn-md{min-height:40px;padding:.56rem .96rem;font-size:.88rem}.btn-lg,.ui-btn-lg{min-height:46px;padding:.7rem 1.12rem;font-size:.95rem}.btn-primary,.ui-btn-primary{--btn-bg: var(--accent);--btn-border: var(--accent);--btn-ink: #fff;--btn-hover-bg: var(--accent-dark);--btn-hover-border: var(--accent-dark)}.btn-secondary,.btn-outline,.ui-btn-neutral,.ui-btn-outline{--btn-bg: #fff;--btn-border: var(--line);--btn-ink: var(--ink);--btn-hover-bg: #f8fafc;--btn-hover-border: #cbd5e1}.btn-tertiary{--btn-bg: #f8fafc;--btn-border: #e2e8f0;--btn-ink: #334155;--btn-hover-bg: #eff6ff;--btn-hover-border: #cbd5e1}.btn-destructive,.btn-danger,.ui-btn-dangerGhost{--btn-bg: #fff1f2;--btn-border: #fecdd3;--btn-ink: #be123c;--btn-hover-bg: #ffe4e6;--btn-hover-border: #fda4af}.btn-ghost,.ui-btn-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-ink: #475569;--btn-hover-bg: #f1f5f9;--btn-hover-border: transparent}.btn-link{--btn-bg: transparent;--btn-border: transparent;--btn-ink: var(--accent);--btn-hover-bg: transparent;--btn-hover-border: transparent;min-height:auto;padding:0;text-decoration:underline;text-underline-offset:3px}.btn-link:hover:not(:disabled):not([aria-disabled=true]){color:var(--accent-dark);transform:none}.btn-link:focus-visible{box-shadow:none;outline:2px solid rgb(99 102 241 / .6);outline-offset:2px}.btn-icon-only{aspect-ratio:1;padding:0}.btn-icon-only.btn-sm{width:34px;min-width:34px}.btn-icon-only.btn-md{width:40px;min-width:40px}.btn-icon-only.btn-lg{width:46px;min-width:46px}.icon-btn svg{width:1.15rem;height:1.15rem}.icon-btn.btn-sm svg{width:1rem;height:1rem}.icon-btn.btn-lg svg{width:1.28rem;height:1.28rem}.tree-toolbar .icon-btn{border-radius:8px;width:36px;min-width:36px;height:36px;border:1px solid rgba(15,23,42,.12);background:#fff;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.tree-toolbar .icon-btn:hover{border-color:#0f172a33;box-shadow:0 2px 4px #00000014}.tree-toolbar .icon-btn svg{width:18px;height:18px;color:#334155}.app-header-settings-btn{width:2.5rem;min-width:2.5rem;height:2.5rem;padding:0}@keyframes btn-spin{to{transform:rotate(360deg)}}.session-loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:radial-gradient(circle at 18% 24%,rgba(59,130,246,.1),transparent 44%),radial-gradient(circle at 82% 78%,rgba(34,197,94,.08),transparent 42%),var(--bg)}.session-loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem}.session-loading-spinner{width:2.25rem;height:2.25rem;border-radius:999px;border:3px solid rgba(51,65,85,.18);border-top-color:#334155;animation:btn-spin .8s linear infinite}.session-loading-screen p{margin:0;font-size:.95rem;font-weight:600;letter-spacing:.01em;color:#334155}.ui-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .56rem;font-size:.73rem;font-weight:700;letter-spacing:.02em;border:1px solid transparent}.ui-badge-neutral{background:#f1f5f9;border-color:#e2e8f0;color:#475569}.ui-badge-warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}.ui-badge-success{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.ui-badge-info{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.ui-badge-accent{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.back-link{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.38rem .72rem;font-size:.88rem}.error-banner{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b;padding:.875rem 1rem;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.9375rem}.notice-banner{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46;padding:.875rem 1rem;border-radius:12px;font-size:.9375rem}.app-shell{height:100vh;min-height:100vh;padding:1rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--card);overflow:hidden}.app-header{padding:0 .5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.app-header-brand{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.app-logo{height:4rem;width:auto;object-fit:contain}.app-logo-button{border:0;background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center}.app-tagline{font-size:.75rem;color:#64748b;margin:0;font-weight:500}.app-header-actions{display:flex;align-items:center;gap:.75rem}.app-header-actions .btn,.app-header-actions .btn.btn-small{height:2.5rem}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;padding-right:.75rem;border-right:1px solid #e2e8f0}.user-name{font-size:.875rem;font-weight:600;color:#1e293b}.user-plan{font-size:.75rem;color:#64748b}.header-right{display:flex;align-items:center;gap:.8rem;margin-left:auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end}.header-stats{display:flex;gap:.75rem}.header-stats div{background:var(--accent-bg);border:1px solid rgba(99,102,241,.2);border-radius:12px;min-width:100px;padding:.75rem 1rem;text-align:center;display:grid;gap:.25rem;transition:all .2s ease}.header-stats div:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}.header-stats strong{font-size:1.5rem;font-weight:700;color:var(--accent);font-family:var(--font-display)}.header-stats span{color:var(--muted);font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.user-chip{display:flex;align-items:center;gap:.625rem;border:1px solid var(--line);border-radius:999px;background:var(--card);padding:.5rem .625rem .5rem 1rem;max-width:100%;box-shadow:var(--shadow-sm);transition:all .2s ease}.user-chip:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.user-chip span{font-size:.9375rem;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.user-chip-meta{display:grid;gap:.1rem}.user-chip-meta small{color:var(--muted);font-size:.76rem;line-height:1.2}.billing-banner{border-radius:18px;border:1px solid rgba(15,118,110,.22);background:linear-gradient(135deg,#f0fdfa,#ecfeff 45%,#eef2ff);padding:1rem 1.1rem;display:grid;gap:.8rem}.billing-banner-header h3{margin:0;font-size:1.12rem}.billing-banner-header p{margin:.2rem 0 0;color:#0f766e;font-size:.88rem}.billing-plan-grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.billing-plan-card{border:1px solid rgba(99,102,241,.24);border-radius:14px;background:#fff;padding:.8rem;display:grid;gap:.42rem}.billing-plan-card h4{margin:0;font-size:1rem}.billing-plan-card p{margin:0;color:var(--muted);font-size:.84rem}.billing-plan-card ul{margin:0;padding-left:1rem;color:#334155;font-size:.82rem}.billing-buttons{display:flex;gap:.45rem}.layout-grid{flex:1;min-height:0;display:grid;column-gap:1.5rem;row-gap:0;grid-template-columns:21.25rem minmax(0,1fr) 21.25rem;transition:grid-template-columns .6s cubic-bezier(.68,-.55,.265,1.55),column-gap .6s cubic-bezier(.68,-.55,.265,1.55);overflow:hidden}.layout-grid.detail-panel-collapsed{grid-template-columns:21.25rem minmax(0,1fr) 0;column-gap:1rem}.layout-grid.lineages-panel-collapsed{grid-template-columns:0 minmax(0,1fr) 21.25rem;column-gap:1rem}.layout-grid.detail-panel-collapsed.lineages-panel-collapsed{grid-template-columns:0 minmax(0,1fr) 0;column-gap:0}.sidebar,.detail-panel,.canvas-wrap{min-height:0}.canvas-wrap{background:var(--card)}.sidebar{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.sidebar-header{padding-bottom:.75rem;border-bottom:2px solid var(--bg)}.sidebar-header h2{margin:0;font-size:1.125rem;font-weight:600;color:var(--ink)}.sidebar-actions{display:flex;gap:.625rem;width:100%}.sidebar-actions .btn{flex:1;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.search-input{width:100%;border:1px solid var(--line);border-radius:.75rem;padding:.625rem .875rem;font-size:.9375rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.person-list{display:flex;flex-direction:column;gap:.625rem;overflow:auto;padding-right:.25rem}.person-list-item{padding:.875rem 1rem;border-radius:.75rem;border:1px solid var(--line);background:var(--card);cursor:pointer;display:grid;gap:.5rem;transition:all .2s ease}.person-list-item:hover{border-color:var(--accent-light);box-shadow:var(--shadow-sm);transform:translate(.25rem)}.person-list-item h4{margin:0;font-size:.9375rem;font-weight:600;color:var(--ink)}.person-list-item p{margin:.25rem 0 0;font-size:.8125rem;color:var(--muted)}.person-list-item.active{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow-md);transform:translate(.25rem)}.row-actions{display:flex;gap:.4rem}.state-pill{display:inline-flex;margin-top:.45rem;padding:.2rem .5rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.state-none{background:#f1f5f9;color:#475569}.state-pending{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}.state-viewer{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}.state-collaborator{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}.state-muted{background:#f8fafc;color:#94a3b8;border:1px solid #e2e8f0}.relationship-summary{margin-top:auto;border-top:1px solid var(--line);padding-top:.6rem}.relationship-summary h3{margin:0;font-size:.95rem}.relationship-summary ul{margin:.5rem 0 0;padding-left:1.1rem;color:var(--muted)}.canvas-wrap{overflow:hidden;position:relative;display:flex;flex-direction:column}.lineages-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;opacity:1;transform:translate(0);visibility:visible;transition:opacity .5s cubic-bezier(.68,-.55,.265,1.55),transform .6s cubic-bezier(.68,-.55,.265,1.55),visibility 0s 0s}.lineages-panel.collapsed{opacity:0;transform:translate(-1rem);pointer-events:none;visibility:hidden;transition:opacity .5s cubic-bezier(.68,-.55,.265,1.55),transform .6s cubic-bezier(.68,-.55,.265,1.55),visibility 0s .6s}.lineages-panel-header{padding:.875rem 1rem;border-bottom:1px solid var(--line)}.lineages-panel-header-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.lineages-panel-header h2{margin:0;font-size:.9375rem;font-weight:600;color:#0f172a}.lineages-detail-toggle{border:1px solid #cbd5e1!important;background:#fff!important;color:#334155!important;width:1.75rem!important;height:1.75rem!important;min-width:1.75rem!important;min-height:1.75rem!important;border-radius:999px!important;display:inline-grid!important;place-items:center!important;cursor:pointer;font-size:1.05rem!important;line-height:1!important;padding:0!important}.lineages-detail-toggle:hover{border-color:#94a3b8!important;background:#f8fafc!important}.lineages-detail-toggle .btn-content{display:contents}.lineages-panel-toggle{border:1px solid #cbd5e1!important;background:#fff!important;color:#334155!important;width:1.75rem!important;height:1.75rem!important;min-width:1.75rem!important;border-radius:999px!important;display:inline-grid!important;place-items:center!important;cursor:pointer;font-size:1.05rem!important;line-height:1!important;padding:0!important}.lineages-panel-toggle:hover{border-color:#94a3b8!important;background:#f8fafc!important}.lineages-panel-toggle .btn-content{display:contents}.lineages-panel-header p{margin:.2rem 0 0;font-size:.75rem;color:#64748b;line-height:1.4}.lineages-directory{overflow:auto;padding:.75rem;display:grid;gap:.5rem}.lineages-pinned-zone,.lineages-unpinned-zone{display:grid;gap:.4rem}.lineages-unpinned-zone{margin-top:1rem}.lineages-pinned-zone.drag-active{border-color:#14b8a6;background:#f0fdfa}.lineages-pinned-zone-header{display:flex;align-items:center;gap:.45rem}.lineages-pinned-zone-header h3{margin:0;font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.025em}.lineages-pinned-empty{margin:0;font-size:.75rem;color:#64748b}.lineages-filter-wrap{position:relative;margin-top:.5rem}.lineages-filter-input{width:100%;border:1px solid #e2e8f0;border-radius:.5rem;background:#f7fbfe;color:#0f172a;font-size:.8125rem;padding:.5rem 2.25rem .5rem .75rem;outline:none;transition:all .15s ease}.lineages-filter-input::placeholder{color:#94a3b8}.lineages-filter-input:hover{background:#fff;border-color:#cbd5e1}.lineages-filter-input:focus{background:#fff;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.lineages-filter-clear{position:absolute;right:.38rem;top:50%;transform:translateY(-50%);width:1.25rem;height:1.25rem;border:0;background:transparent;color:#64748b;border-radius:999px;display:inline-grid;place-items:center;cursor:pointer}.lineages-filter-clear:hover{background:#f1f5f9;color:#334155}.lineages-filter-clear svg{width:.75rem;height:.75rem}.lineages-empty{margin:0;color:var(--muted);font-size:.85rem}.lineages-item{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;transition:all .15s ease}.lineages-item:hover{border-color:#cbd5e1;box-shadow:0 1px 3px #0000000d;background:#f7fbfe}.lineages-item-pinned{cursor:grab}.lineages-item-row,.lineages-subfolder-row,.lineages-tree-row{display:flex;align-items:center}.lineages-item-row{padding:.25rem .625rem}.lineages-item-expand,.lineages-tree-expand{border:0;background:transparent;color:#475569;padding:0;line-height:0;cursor:pointer;font-size:1rem}.lineages-tree-spacer{display:inline-block;width:8px;height:18px;flex:0 0 18px}.lineages-tree-expand[disabled]{color:#94a3b8;cursor:default}.lineages-item-name{flex:1;min-width:0;font-size:.8125rem;font-weight:500;color:#0f172a}.lineages-item-name-btn{border:0;background:transparent;text-align:left;font-size:.84rem;font-weight:600;color:#0f172a;cursor:pointer;padding:.1rem .2rem;border-radius:6px;flex:1}.lineages-item-name-btn.hidden-node,.lineages-link-btn.hidden-node{color:#64748b;opacity:.62}.lineages-eye-toggle{border:1px solid transparent;background:transparent;color:#000;display:inline-grid;place-items:center;cursor:pointer;margin-left:auto}.lineages-eye-toggle.off{color:#6f6f6f}.lineages-eye-toggle svg{width:16px;height:16px}.lineages-subtree{--lineages-indent-step: calc(18px + .4rem) ;border-top:1px solid #dbe3ee;padding:.5rem;display:grid;gap:.45rem}.lineages-subfolder{border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:.45rem}.lineages-subfolder-flat{border:0;border-radius:0;background:transparent;padding:0}.lineages-subfolder-name{font-size:.78rem;font-weight:700;color:#334155}.lineages-subfolder-name-btn{border:0;background:transparent;text-align:left;padding:.12rem .2rem;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center}.lineages-subfolder-name-btn:hover .lineages-subfolder-name{text-decoration:underline}.lineages-subfolder-empty{margin-left:auto;font-size:.74rem;color:#94a3b8}.lineages-subfolder-list{margin-top:.3rem;display:grid;gap:.2rem}.lineages-subfolder-flat .lineages-subfolder-list{margin-left:var(--lineages-indent-step)}.lineages-link-btn,.lineages-tree-name{border:0;background:transparent;text-align:left;font-size:.79rem;color:#0f172a;cursor:pointer;padding:.12rem .2rem;border-radius:6px}.lineages-link-btn:hover,.lineages-tree-name:hover{text-decoration:underline}.lineages-tree-name-label{font-size:.79rem;color:#334155;font-weight:600;flex:1}.lineages-tree-count{font-size:.7rem;color:#64748b;border:1px solid #cbd5e1;border-radius:999px;padding:.06rem .38rem;line-height:1.2}.lineages-tree-item{margin-left:calc(var(--lineages-depth, 0) * var(--lineages-indent-step))}.lineages-member-list{margin-left:var(--lineages-indent-step);display:grid;gap:.15rem;padding:.15rem 0 .25rem}.lineages-partner-row{display:flex;align-items:center;gap:.35rem}.lineages-panel-footer{display:flex;justify-content:space-between;z-index:10;padding:.75rem .75rem 2rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.6rem}.lineages-drop-pin-target{grid-column:1;justify-self:stretch;width:100%;border:1px dashed #bfc1bf;border-radius:10px;padding:.4rem .7rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;color:#475569;font-size:.78rem;font-weight:600;transition:transform .14s ease,border-color .14s ease,color .14s ease,background-color .14s ease}.lineages-reset-btn{grid-column:2;justify-self:end}.lineages-drop-pin-target svg{width:16px;height:16px}.lineages-drop-pin-target.drag-active{color:#0f766e;border-color:#14b8a6}.lineages-drop-pin-target.over{background:#ecfeff;transform:translateY(-1px) scale(1.01)}.lineages-drop-pin-target.success{animation:lineagesPinDropPulse .45s ease}@keyframes lineagesPinDropPulse{0%{background:#ecfeff;border-color:#14b8a6;transform:scale(.98)}55%{background:#ccfbf1;border-color:#0f766e;transform:scale(1.03)}to{background:#fff;border-color:#14b8a6;transform:scale(1)}}.tree-toolbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0rem}.tree-toolbar-left,.tree-toolbar-right{display:flex;gap:.6rem;align-items:center;transition:opacity .3s ease-in-out}.tree-toolbar-left.fade-out,.tree-toolbar-right.fade-out{opacity:0;pointer-events:none}.tree-toolbar-left.fade-in,.tree-toolbar-right.fade-in{opacity:1;pointer-events:auto}.canvas-branch-controls{display:inline-flex;align-items:center;gap:.45rem}.canvas-branch-selector{height:38px;border:1px solid #cbd5e1;border-radius:10px;padding:0 .65rem;font-size:.84rem;color:#334155;background:#fff;min-width:168px}.canvas-branch-create-btn{min-width:auto!important;width:38px;height:38px;padding:0!important}.tree-toolbar-group-actions{display:inline-flex;align-items:center;gap:.45rem}.tree-toolbar-tools{display:inline-flex;align-items:center;gap:.4rem;margin-right:.2rem}.tree-toolbar-tool-btn{min-width:auto!important;width:36px;height:36px;padding:0;display:inline-grid;place-items:center}.tree-toolbar-tool-btn.active{border-color:#334155;background:#f8fafc;color:#0f172a}.tree-toolbar-tool-btn svg{width:20px;height:20px;stroke:currentColor}.tree-toolbar-group-btn{min-width:auto!important;padding-left:.75rem;padding-right:.75rem}.tree-toolbar .btn{min-width:132px}.tree-toolbar .btn.toolbar-icon-action{min-width:auto;width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:.2rem}.toolbar-plus{font-size:1.05rem;font-weight:700;line-height:1}.toolbar-icon-action svg{width:18px;height:18px}.tree-toolbar .btn span.mobile-short{display:none}.tree-toolbar .btn span.desktop-long{display:inline}.theme-swatch-wrap{position:relative}.theme-selector-btn{border:1px solid rgba(15,23,42,.15);border-radius:8px;width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.theme-selector-btn:hover{border-color:#0f172a40;box-shadow:0 2px 4px #00000014}.theme-selector-btn svg{width:16px;height:16px;color:#0f172a99}.theme-selector-btn.dark-theme svg{color:#fffc}.theme-swatch-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:190px;padding:.35rem;border:1px solid #dbe3ee;background:#fff;border-radius:12px;box-shadow:var(--shadow-md);display:grid;gap:.2rem;z-index:25}.theme-swatch-option{border:0;background:transparent;border-radius:9px;display:inline-flex;align-items:center;gap:.55rem;padding:.42rem .5rem;cursor:pointer;text-align:left;font-size:.83rem;color:#334155}.theme-swatch-option:hover,.theme-swatch-option.active{background:#eef2ff}.theme-swatch-option-dot{width:16px;height:16px;border-radius:999px;border:1px solid rgba(15,23,42,.2);flex:0 0 auto}.branch-settings-note{margin:-.15rem 0 0;font-size:.8rem;color:#64748b}.branch-settings-theme-block{display:grid;gap:.5rem}.branch-settings-theme-block>p{margin:0;font-size:.82rem;color:#334155;font-weight:600}.branch-settings-theme-grid{display:grid;gap:.4rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.branch-settings-theme-option{border:1px solid #dbe3ee;background:#fff;border-radius:10px;padding:.45rem .55rem;display:inline-flex;align-items:center;justify-content:flex-start;gap:.55rem;font-size:.82rem;color:#334155;cursor:pointer}.branch-settings-theme-option:hover{border-color:#94a3b8;background:#f8fafc}.branch-settings-theme-option.active{border-color:#4f46e5;background:#eef2ff;color:#1e1b4b}.branch-settings-theme-option-dot{width:16px;height:16px;border-radius:999px;border:1px solid rgba(15,23,42,.2);flex:0 0 auto}.mobile-panel-switcher{display:none}@media(max-width:768px){.mobile-panel-switcher{display:flex;justify-content:space-between;gap:.25rem;padding:1rem .75rem;background:#fff;border-bottom:1px solid #e2e8f0;position:fixed;right:0;left:0;bottom:0;z-index:100;margin:0}.mobile-panel-btn{flex:1;max-width:7rem;display:flex;flex-direction:column;align-items:center;gap:.0625rem;padding:.25rem .375rem;border:1px solid #e2e8f0;border-radius:.375rem;background:#f8fafc;color:#64748b;font-size:.6875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.mobile-panel-btn svg{stroke:currentColor}.mobile-panel-btn.active{background:#14b8a6;color:#fff;border-color:#14b8a6;box-shadow:0 2px 4px #14b8a633}.mobile-panel-btn:active{transform:scale(.95)}}.map-view-toggle{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);font-weight:700;font-size:.88rem;letter-spacing:.01em}.map-view-switch{position:relative;width:46px;height:26px;display:inline-block}.map-view-switch input{position:absolute;opacity:0;width:0;height:0}.map-view-slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#cbd5e1;transition:background .2s ease;cursor:pointer}.map-view-slider:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 2px 8px #0f172a4d;transition:transform .2s ease}.map-view-switch input:checked+.map-view-slider{background:#0f766e}.map-view-switch input:checked+.map-view-slider:after{transform:translate(20px)}.tree-workspace{flex:1;min-height:0;position:relative;overflow:hidden}.workspace-canvas-view,.workspace-map-view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1)}.workspace-canvas-view{transform:translate(0)}.workspace-map-view{transform:translate(100%)}.tree-workspace.map-active .workspace-canvas-view{transform:translate(-100%)}.tree-workspace.map-active .workspace-map-view{transform:translate(0)}.family-map-canvas{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.family-map-map-layer{width:100%;height:100%;z-index:1}.family-map-map-layer .leaflet-control-container{z-index:400}.family-map-div-icon{background:transparent;border:none!important;width:48px!important;height:64px!important}.family-map-div-icon *{box-sizing:border-box}.family-map-marker-pin{position:relative;display:block;width:48px;height:64px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3))}.family-map-marker-head{position:absolute;left:4px;top:0;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#16a34a;border:3px solid #ffffff;overflow:hidden;box-shadow:inset 0 -2px 4px #0000001a}.family-map-marker-tip{position:absolute;left:50%;top:32px;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:32px solid #16a34a;transform:translate(-50%)}.family-map-marker-pin-birth .family-map-marker-head{background:#16a34a}.family-map-marker-pin-birth .family-map-marker-tip{border-top-color:#16a34a}.family-map-marker-pin-death .family-map-marker-head{background:#1f2937}.family-map-marker-pin-death .family-map-marker-tip{border-top-color:#1f2937}.family-map-marker-photo{width:32px;height:32px;object-fit:cover;border-radius:50%;display:block;background:#f8fafc}.family-map-marker-fallback{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fffffff2;color:#334155;font-size:.7rem;font-weight:800;letter-spacing:.03em}.family-map-empty{width:100%;height:100%;display:grid;place-items:center;padding:2rem;color:var(--muted);text-align:center;font-weight:600}.family-map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto 1fr;align-content:start;gap:.6rem;padding:1rem;pointer-events:none}.family-map-overlay-header{width:min(420px,100%);padding:.75rem .9rem;border:1px solid rgba(148,163,184,.5);border-radius:12px;background:#ffffffe6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:var(--shadow-md);pointer-events:auto}.family-map-overlay-header h3{margin:0;font-size:1rem}.family-map-overlay-header p{margin:.3rem 0 0;font-size:.8125rem;color:var(--muted)}.family-map-overlay-list{margin:0;padding:0;list-style:none;display:grid;gap:.5rem;max-height:min(420px,60%);overflow:auto;width:min(460px,100%);pointer-events:auto}.family-map-person-card{width:100%;border:1px solid rgba(148,163,184,.48);border-radius:12px;background:#ffffffe6;text-align:left;padding:.7rem;display:grid;gap:.3rem;box-shadow:var(--shadow-sm);cursor:pointer}.family-map-person-card:hover{border-color:#0f766e73;background:#f0fdfaeb}.family-map-person-card.active{border-color:#0f766e;background:#ccfbf1eb}.family-map-chip{display:inline-flex;width:fit-content;font-size:.75rem;font-weight:600;border-radius:999px;padding:.15rem .5rem}.family-map-chip-birth{color:#166534;background:#bbf7d0e6}.family-map-chip-death{color:#991b1b;background:#fecacae6}.family-map-events{display:flex;flex-wrap:wrap;gap:.35rem}.family-map-events span{font-size:.72rem;font-weight:600;color:#334155;background:#f1f5f9f2;border:1px solid rgba(203,213,225,.8);border-radius:999px;padding:.12rem .45rem}.family-map-point-count{color:var(--muted);font-size:.75rem;font-weight:600}.react-flow__attribution{display:none!important}.tree-canvas{width:100%;height:100%;position:relative;opacity:0;transition:opacity .3s ease-in}.tree-canvas.loaded{opacity:1}.tree-canvas .react-flow{position:relative;z-index:1}.tree-canvas.tool-hand .react-flow__pane{cursor:grab}.tree-canvas.tool-hand .react-flow__pane:active{cursor:grabbing}.tree-canvas.tool-crosshair .react-flow__pane{cursor:crosshair;touch-action:none}.tree-canvas.tool-crosshair{touch-action:none;overscroll-behavior:contain}.react-flow__controls{flex-direction:column!important;left:12px!important;bottom:12px!important;top:auto!important;box-shadow:0 2px 8px #0000001a!important;border-radius:6px!important;overflow:hidden!important;gap:0!important;transform:none!important}.react-flow__controls-button{width:36px!important;height:36px!important;font-size:1.1rem!important;border-radius:0!important;border:none!important;border-bottom:1px solid #e2e8f0!important}.react-flow__controls-button:last-child{border-bottom:none!important}.react-flow__controls-button:first-child{border-top-left-radius:6px!important;border-top-right-radius:6px!important;border-bottom-left-radius:0!important}.react-flow__controls-button:last-child{border-top-right-radius:0!important;border-bottom-left-radius:6px!important;border-bottom-right-radius:6px!important}.react-flow__controls-button svg{width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important}.react-flow__controls-button.pan-control svg{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important}.react-flow__controls-button.active{background:#e2e8f0!important;border-bottom:1px solid #e2e8f0!important}.tree-lock-control{font-size:1rem;line-height:1}.tree-lock-control.active{background:#e2e8f0}.tree-node-context-menu{position:fixed;transform:translate(8px,8px);z-index:25;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:var(--shadow-lg);min-width:140px;padding:.4rem}.tree-node-context-menu-btn{width:100%;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#0f172a;min-height:38px;font-weight:700;cursor:pointer}.detail-panel{padding:0;overflow:hidden;min-width:21.25rem;opacity:1;transform:translate(0);visibility:visible;transition:opacity .5s cubic-bezier(.68,-.55,.265,1.55),transform .6s cubic-bezier(.68,-.55,.265,1.55),padding .5s cubic-bezier(.68,-.55,.265,1.55),border-color .5s cubic-bezier(.68,-.55,.265,1.55),visibility 0s 0s;display:flex;flex-direction:column;min-height:0}.detail-panel.collapsed{opacity:0;transform:translate(1rem);pointer-events:none;overflow:hidden;padding-left:0;padding-right:0;border-color:transparent;visibility:hidden;transition:opacity .5s cubic-bezier(.68,-.55,.265,1.55),transform .6s cubic-bezier(.68,-.55,.265,1.55),padding .5s cubic-bezier(.68,-.55,.265,1.55),border-color .5s cubic-bezier(.68,-.55,.265,1.55),visibility 0s .6s}.detail-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;font-size:.875rem;color:var(--muted);text-align:center}.detail-panel-empty p{margin:0}.detail-person-content{flex:1;overflow:auto;padding:1.5rem;display:flex;flex-direction:column}.detail-panel h2{font-size:1.5rem;margin-bottom:.5rem}.detail-panel h3{font-size:1.125rem;margin-top:1.5rem;margin-bottom:.75rem;color:var(--ink);padding-bottom:.5rem;border-bottom:2px solid var(--bg)}.detail-panel img{width:100%;max-height:250px;object-fit:cover;object-position:center;border-radius:12px}.detail-panel h2{margin:.8rem 0 .2rem}.detail-panel p{color:var(--muted)}.detail-person-actions{margin-top:1rem;padding-top:0;display:flex;gap:.6rem}.detail-panel-footer-actions{flex-shrink:0;padding:.75rem .75rem 2rem;display:flex;align-items:center;justify-content:space-between;z-index:10}.tag-wrap{display:flex;gap:.5rem;flex-wrap:wrap}.tag-wrap span{background:var(--accent-bg);color:var(--accent);padding:.375rem .75rem;border-radius:999px;font-size:.8125rem;font-weight:500;border:1px solid rgba(99,102,241,.2);transition:all .2s ease}.tag-wrap span:hover{background:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.timeline-list{list-style:none;margin:0;padding:0;display:grid;gap:.875rem}.timeline-list li{border-left:3px solid var(--accent);padding-left:1rem;position:relative;transition:all .2s ease}.timeline-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem}.timeline-list li:before{content:"";position:absolute;left:-6px;top:.25rem;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--card)}.timeline-list li:hover{border-left-color:var(--accent-dark)}.timeline-list li:hover:before{background:var(--accent-dark);transform:scale(1.2)}.timeline-list span{margin-left:.5rem;color:var(--muted);font-size:.8125rem;font-weight:500}.detail-notes{margin-top:1rem;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.detail-notes p,.detail-notes li,.detail-notes code,.detail-notes pre{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.detail-notes a{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word;text-decoration-break:anywhere}.detail-notes a[href^=http]{word-break:break-all}.loading-state{height:100%;display:grid;place-items:center;color:var(--muted);font-size:1rem;font-weight:500}.person-node{width:240px;height:140px;min-height:140px;max-height:140px;border:5px solid var(--line);border-radius:16px;background:var(--card);padding:1rem;position:relative;box-shadow:var(--shadow-md);transition:all .2s ease;cursor:pointer;display:flex;flex-direction:column;box-sizing:border-box;overflow:visible}@media(hover:hover)and (pointer:fine){.person-node:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:#ff128c}}.react-flow__node.dragging .person-node{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 30px #0f172a47;border-color:var(--accent);z-index:9}.person-node-handle-hidden{width:6px!important;height:6px!important;opacity:0!important;border:0!important;background:transparent!important;pointer-events:none!important}.react-flow__edge.lineage-edge-couple .react-flow__edge-path{stroke:#2563eb;stroke-width:2.4;stroke-dasharray:none}.react-flow__edge.lineage-edge-sibling-bus .react-flow__edge-path,.react-flow__edge.lineage-edge-sibling-drop .react-flow__edge-path{stroke:#64748b;stroke-dasharray:none}.person-node-selected{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 4px #6366f138,0 0 0 10px #6366f114,var(--shadow-lg)}.react-flow__selection,.react-flow__nodesselection-rect{border:1.5px dashed rgba(59,130,246,.7)!important;border-radius:12px!important;background:#3b82f60f!important;box-shadow:0 0 0 10px #3b82f614!important}.person-node-possible{border-style:solid}.person-node-possible-mark{position:absolute;left:50%;top:-13px;transform:translate(-50%);width:24px;height:24px;border-radius:999px;border:2px solid #334155;background:#fff;color:#111827;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:800;line-height:1;pointer-events:none;box-shadow:var(--shadow-sm)}.person-node-top{display:grid;grid-template-columns:80px 1fr;gap:.75rem;align-items:start;flex:1;min-height:0}.person-node h4{margin:0;font-size:1rem;font-weight:600;color:var(--ink)}.person-node p{margin:.375rem 0 0;color:var(--muted);font-size:.8125rem;line-height:1.4}.person-node-former-names{margin-top:.25rem!important;font-size:.72rem!important;font-style:italic;color:#475569!important}.node-access{display:inline-flex;margin-top:.4rem;padding:.18rem .5rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.node-access-pending{background:#fff7ed;color:#9a3412;border:1px solid #fdba74}.node-access-viewer{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe}.node-access-collaborator{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}.person-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}.person-avatar-placeholder{width:80px;height:80px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff}.person-avatar-placeholder.female{background:linear-gradient(135deg,#ec4899,#f472b6)}.person-avatar-placeholder.male{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.person-avatar-placeholder.neutral{background:linear-gradient(135deg,#64748b,#94a3b8)}.person-avatar-placeholder svg{width:48px;height:48px}.person-tags{margin-top:.75rem;display:flex;gap:.375rem;flex-wrap:wrap}.person-tags span{font-size:.6875rem;background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:.25rem .5rem;font-weight:500;border:1px solid rgba(99,102,241,.2)}.hover-card{display:none;position:absolute;top:calc(100% + 10px);left:0;width:220px;border-radius:10px;background:#0f172a;color:#f8fafc;padding:.6rem;z-index:5}.hover-card p{margin:.35rem 0 0;color:#cbd5e1}@media(hover:hover)and (pointer:fine){.person-node:hover .hover-card{display:block}}.drawer-overlay,.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:20;padding:1rem}.drawer{width:min(720px,96vw);max-height:94vh;background:var(--card);border-radius:var(--radius-lg);overflow:auto;padding:1.75rem;box-shadow:var(--shadow-lg);border:1px solid var(--input-border)}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--input-border);margin-bottom:1.25rem}.drawer-header h2,.drawer-header h3{font-size:1.5rem;margin:0}.drawer-form{display:flex;flex-direction:column;gap:1.5rem}.drawer-form>section{padding-top:1.5rem;border-top:1px solid var(--input-border)}.drawer-form>section:first-child{padding-top:0;border-top:none}.drawer-tabs{display:flex;gap:0;margin-bottom:1.5rem;padding:0;border-bottom:1px solid var(--input-border);background:transparent}.drawer-tab{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:600;padding:.75rem 1rem;cursor:pointer;transition:all .15s ease}.drawer-tab.active{background:transparent;border-bottom-color:var(--accent);color:var(--ink)}.place-field{position:relative}.place-suggestions-list{margin:0;padding:.35rem;list-style:none;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-md);display:grid;gap:.2rem;max-height:220px;overflow-y:auto}.place-suggestion-btn{width:100%;border:none;border-radius:10px;background:transparent;text-align:left;display:grid;gap:.1rem;padding:.55rem .6rem;cursor:pointer;color:var(--ink)}.place-suggestion-btn:hover,.place-suggestion-btn.active{background:var(--bg)}.place-suggestion-btn small{color:var(--muted);font-size:.78rem}.place-field-actions{margin-top:-.15rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}.place-field-actions small{color:var(--muted);font-size:.78rem}.place-map-link{color:#334155;font-weight:600;font-size:.78rem;text-decoration:underline;text-underline-offset:2px}.drawer-form label,.modal-form label{display:grid;gap:.5rem;color:var(--ink);font-weight:500;font-size:.9375rem;min-width:0}.checkbox-row{display:flex!important;align-items:center;gap:.5rem;font-weight:600!important}.checkbox-row input[type=checkbox]{width:16px;height:16px;margin:0}.drawer-form input,.drawer-form textarea,.drawer-form select,.modal-form input,.modal-form select{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.625rem .875rem;font-size:.9375rem;transition:border-color .15s ease,box-shadow .15s ease;background:var(--input-bg);width:100%;max-width:100%;min-width:0;color:var(--ink)}.drawer-form input:focus,.drawer-form textarea:focus,.drawer-form select:focus,.modal-form input:focus,.modal-form select:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 3px #6366f11a}.drawer-form input::placeholder,.drawer-form textarea::placeholder{color:var(--muted-light)}.two-col{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}.markdown-preview{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:1rem;background:var(--bg)}.markdown-preview h4,.events-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.events-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--ink)}.event-markdown-preview{padding:.8rem;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.event-markdown-preview p,.event-markdown-preview li,.event-markdown-preview code,.event-markdown-preview pre,.event-markdown-preview a{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}.event-markdown-preview a[href^=http]{word-break:break-all}.events-editor,.form-section-flat{border:none;border-radius:0;padding:0;background:transparent}.date-grid{display:grid;gap:1rem;grid-template-columns:100px 1fr 120px}.date-field-editor{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.875rem;background:var(--bg);display:grid;gap:.75rem}.date-field-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.9rem}.date-approx-toggle{display:inline-flex!important;align-items:center;gap:.35rem;font-size:.78rem!important;font-weight:600!important;color:#475569!important}.guidance-card{border:1px solid var(--input-border);background:var(--bg);border-radius:var(--radius-md);padding:.625rem .75rem;margin-top:.5rem}.guidance-card p{margin:0;color:#64748b;font-size:.8125rem;line-height:1.4}.guidance-card strong{color:#475569;font-weight:600}.name-guidance-card{border:1px solid var(--input-border);background:var(--bg);border-radius:var(--radius-md);padding:.875rem}.name-guidance-card h4{margin:0;font-size:.95rem}.name-guidance-card p{margin:.35rem 0 0;color:#475569;font-size:.82rem}.name-change-editor{border:none;border-radius:0;background:transparent;padding:0;display:grid;gap:.75rem}.name-change-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.name-change-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--ink)}.name-change-empty{margin:0;color:var(--muted);font-size:.82rem}.name-change-row{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.875rem;background:var(--card);display:grid;gap:.75rem}.limit-hint{color:#64748b;font-size:.8rem;font-weight:600}.tag-input-shell{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:.625rem;display:grid;gap:.5rem;background:var(--input-bg)}.tag-chip-list{display:flex;flex-wrap:wrap;gap:.35rem}.tag-chip{display:inline-flex;align-items:center;gap:.2rem;background:#e2e8f0;color:#0f172a;padding:.18rem .42rem;border-radius:999px;font-size:.78rem;font-weight:600}.tag-chip-remove{border:none;background:transparent;color:#334155;cursor:pointer;font-size:.78rem;font-weight:700;padding:0;line-height:1}.tag-input-shell input{border:0;padding:.2rem .35rem;font-size:.88rem;background:transparent}.tag-input-shell input:focus{outline:none;box-shadow:none}.profile-photo-picker{border:1px solid var(--line);border-radius:12px;padding:.55rem;background:#f8fafc;display:flex;align-items:center;gap:.55rem;min-width:0}.profile-photo-native-input{display:none}.profile-photo-file-name{flex:1;min-width:0;font-size:.82rem;color:#0f172a;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-photo-file-name.empty{color:#64748b;font-weight:500}.invite-pill{border-radius:999px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .52rem;font-weight:700;border:1px solid transparent}.invite-none{background:#f1f5f9;color:#475569}.invite-pending{background:#fff7ed;color:#9a3412;border-color:#fdba74}.invite-accepted{background:#ecfdf5;color:#065f46;border-color:#6ee7b7}.invite-access-pill{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.collaboration-role-row{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem}.access-tab-grid{display:grid;gap:1rem}.access-section{border:1px solid var(--line);border-radius:12px;padding:.85rem;background:#fff;display:grid;gap:.75rem}.access-section h4{margin:0;font-size:.95rem}.upgrade-gate-note{margin:0;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:10px;padding:.55rem .65rem;font-size:.82rem}.upgrade-gate-note a{color:#9a3412;text-decoration:underline}.access-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.access-summary-item{border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;display:grid;gap:.3rem;background:#fff}.access-summary-item span{color:#475569;font-size:.78rem;font-weight:600}.access-summary-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.access-pills-row{display:flex;gap:.5rem;flex-wrap:wrap}.collaborator-cap{border-radius:8px;padding:.4rem .6rem;background:#f8fafc;font-size:.82rem;color:#475569;font-weight:600}.access-action-row{display:flex;flex-wrap:wrap;gap:.6rem}.access-action-row .btn{min-width:140px;border-radius:10px;box-shadow:none}.access-action-row .btn-secondary{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.access-action-row .btn-secondary:hover:not(:disabled):not([aria-disabled=true]){background:#e0e7ff;border-color:#a5b4fc;box-shadow:none}.access-action-row .btn-destructive{background:#fff1f2;border-color:#fecdd3;color:#be123c}.access-action-row .btn-destructive:hover:not(:disabled):not([aria-disabled=true]){background:#ffe4e6;border-color:#fda4af;box-shadow:none}.pending-invites-list-wrap{margin-top:.4rem;padding-top:.65rem;border-top:1px solid var(--line)}.pending-invites-list-wrap h4{margin:0 0 .45rem;font-size:.95rem}.pending-invites-list-wrap p{margin:0;color:var(--muted);font-size:.85rem}.pending-invites-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.pending-invites-list li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem}.pending-invites-list strong{font-size:.88rem}.pending-invites-list span{display:block;color:var(--muted);font-size:.78rem;margin-top:.1rem}.linked-user-note{color:#0f766e;font-size:.78rem}.detail-subline{color:var(--muted);font-size:.82rem;margin-top:-.2rem}.events-header{display:flex;justify-content:space-between;align-items:center}.event-row{border-top:1px solid var(--line);margin-top:.7rem;padding-top:.7rem;display:grid;gap:.5rem}.event-row textarea{max-width:100%;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.event-accordion-item{border:1px solid var(--input-border);border-radius:var(--radius-md);padding:0;margin-top:.75rem;background:var(--card)}.event-accordion-header{width:100%;border:0;background:transparent;border-radius:0;padding:.875rem 1rem;display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;text-align:left;cursor:pointer;transition:background .15s ease}.event-accordion-header:hover{background:var(--bg)}.event-accordion-header span{font-weight:600;color:var(--ink)}.event-accordion-header small{color:var(--muted);font-size:.8125rem;font-weight:500;white-space:nowrap}.event-accordion-body{padding:0 1rem 1rem;border-top:1px solid var(--input-border);display:grid;gap:.75rem}.modal{width:min(520px,95vw);background:var(--card);border-radius:var(--radius-lg);padding:1.75rem;border:1px solid var(--input-border);box-shadow:var(--shadow-lg)}.settings-modal{width:min(820px,96vw);max-height:min(90vh,980px);overflow:auto;padding:1.2rem;background:linear-gradient(180deg,#fff,#f8fafc)}.notes-modal{width:min(900px,95vw)}.modal header{padding-bottom:1rem;border-bottom:1px solid var(--input-border);margin-bottom:1.25rem}.modal header h3{margin:0;font-size:1.5rem}.modal header p{margin:.5rem 0 0;color:var(--muted);font-size:.9375rem}.modal-form{display:grid;gap:1.25rem}.info-note{display:grid;gap:.7rem;padding:.9rem 1rem;margin-bottom:1.5rem;border:1px solid #dbe3f0;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#f4f7fc);color:#1f2a37}.info-note p{margin:0;font-size:.9rem;line-height:1.5}.info-note strong{font-weight:600}.checkbox-field{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--ink)}.checkbox-field input[type=checkbox]{width:16px;height:16px;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:2px solid var(--bg)}.placement-queue-bar{display:grid;gap:.5rem;padding:.55rem .75rem .65rem;border-top:1px solid var(--input-border);border-bottom:1px solid var(--input-border);background:#f8fafcf5}.placement-queue-meta{display:flex;align-items:baseline;gap:.5rem}.placement-queue-meta strong{font-size:.86rem;color:var(--ink)}.placement-queue-meta span{font-size:.76rem;color:var(--muted);font-weight:600}.placement-queue-notice{margin:0;color:#b45309;font-size:.78rem;font-weight:600}.placement-queue-list{display:flex;gap:.65rem;overflow-x:auto;padding:.15rem .1rem .3rem}.placement-queue-item{border:0;background:transparent;padding:0;width:149px;height:87px;flex:0 0 auto;cursor:grab;touch-action:none}.placement-queue-item .place-person-preview-node{transform:scale(.62);transform-origin:top left;box-shadow:var(--shadow-sm)}.placement-queue-empty{margin:0;color:var(--muted);font-size:.82rem}.place-person-drag-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:24}.place-person-draggable{position:fixed;pointer-events:none;-webkit-user-select:none;user-select:none}.place-person-draggable .place-person-preview-node{box-shadow:0 16px 32px #0f172a38}.settings-section{padding:1rem;border:1px solid #dbe3ee;border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.settings-section:first-of-type{border-top:1px solid #dbe3ee;padding-top:1rem}.settings-section h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--ink)}.subscription-info{display:grid;gap:.75rem}.subscription-info p{margin:0;font-size:.9375rem;color:var(--muted)}.subscription-info strong{color:var(--ink);font-weight:600}.confirm-cancel{margin-top:1rem;padding:1rem;background:#fef2f2;border-radius:12px;display:grid;gap:1rem}.warning-text{margin:0;color:var(--warn);font-size:.9375rem;font-weight:500}.button-group{display:flex;gap:.75rem;flex-wrap:wrap}.error-message{margin:.5rem 0;padding:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:var(--warn);font-size:.875rem}.notice-message{margin:.5rem 0;padding:.75rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;color:#065f46;font-size:.875rem}.settings-inline-help{margin:0 0 .85rem;color:var(--muted);font-size:.9rem}.settings-form-grid{display:grid;grid-template-columns:minmax(150px,180px) 1fr;align-items:center;gap:.65rem .9rem}.settings-form-grid label{margin:0;font-size:.85rem;color:#334155}.settings-form-grid input,.settings-form-grid select,.settings-form-grid textarea{margin:0}.settings-form-grid .button-group,.settings-form-grid .error-message,.settings-form-grid .notice-message,.settings-form-grid .warning-text,.settings-form-grid p{grid-column:1 / -1}.settings-delete-zone{background:linear-gradient(180deg,#fff7f7,#fffefe);border:1px solid #ffd6d6;border-radius:12px;padding:1rem}.settings-delete-zone h4{color:#b91c1c}.settings-delete-zone .warning-text{color:#b91c1c;background:#ef444414;border:1px solid rgba(239,68,68,.22);border-radius:10px;padding:.6rem .7rem}@media(max-width:768px){.settings-form-grid{grid-template-columns:1fr}.layout-grid{display:flex!important;flex-direction:column;gap:0!important;padding:0!important}.canvas-wrap,.lineages-panel,.detail-panel{display:none;width:100%!important;min-width:100%!important;max-width:100%!important;border-radius:0!important;border-left:0!important;border-right:0!important;min-height:calc(100vh - 12rem + 50px);animation:mobileSlideIn .3s cubic-bezier(.68,-.55,.265,1.55)}.layout-grid.mobile-panel-canvas .canvas-wrap,.layout-grid.mobile-panel-lineages .lineages-panel,.layout-grid.mobile-panel-detail .detail-panel{display:flex}@keyframes mobileSlideIn{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}.lineages-detail-toggle{display:none!important}.tree-toolbar{flex-wrap:nowrap;gap:.25rem;padding:.5rem;overflow-x:auto;margin-top:0}.tree-toolbar-left,.tree-toolbar-right{width:auto;flex-wrap:nowrap;gap:.25rem}.canvas-branch-controls{gap:.3rem}.canvas-branch-selector{min-width:132px;height:34px;font-size:.75rem;padding:0 .45rem}.canvas-branch-create-btn{height:34px;width:34px;padding:0!important}.tree-toolbar .btn{min-width:auto;flex:0 0 auto;font-size:.75rem;padding:.375rem .5rem;white-space:nowrap}.tree-toolbar-right .tree-toolbar-tools{position:fixed!important;left:.5rem!important;top:50%!important;transform:translateY(-50%)!important;flex-direction:column!important;display:flex!important;gap:.5rem!important;margin-right:0!important;z-index:50}.tree-toolbar-right .tree-toolbar-tool-btn{width:2rem!important;height:2rem!important}.tree-toolbar-right .tree-toolbar-tool-btn svg{width:1rem!important;height:1rem!important}.react-flow__controls{flex-direction:column!important;left:.5rem!important;bottom:.5rem!important;top:auto!important;transform:none!important;gap:.25rem!important}.react-flow__controls-button{width:2rem!important;height:2rem!important;border-right:none!important;border-bottom:1px solid #e2e8f0!important}.react-flow__controls-button:first-child{border-top-left-radius:6px!important;border-top-right-radius:6px!important;border-bottom-left-radius:0!important}.react-flow__controls-button:last-child{border-top-right-radius:0!important;border-bottom-left-radius:6px!important;border-bottom-right-radius:6px!important;border-bottom:none!important}.react-flow__controls-button svg{width:1rem!important;height:1rem!important;max-width:1rem!important;max-height:1rem!important}.react-flow__minimap{width:100px!important;height:75px!important}.tree-toolbar .btn span.mobile-short{display:inline}.tree-toolbar .btn span.desktop-long{display:none}}.auth-shell{min-height:100vh;padding:2rem 1rem;display:grid;grid-template-rows:auto 1fr auto;gap:2rem;background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.1),transparent 50%),radial-gradient(circle at 80% 80%,rgba(139,92,246,.1),transparent 50%),var(--bg)}.auth-logo-header{text-align:center;padding:1.5rem 0}.auth-logo{max-height:6rem;width:auto;object-fit:contain}.auth-layout{margin:auto;width:min(1200px,100%);display:grid;gap:2.5rem;grid-template-columns:1.1fr 1fr;align-items:stretch}.auth-hero{border-radius:24px;padding:3.5rem;color:#fff;border:none;background:var(--gradient-hero);display:flex;flex-direction:column;gap:2rem;box-shadow:var(--shadow-xl);position:relative;overflow:hidden;min-height:600px}.auth-hero:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.1),transparent 40%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.05),transparent 40%);pointer-events:none}.auth-badge{display:inline-flex;width:fit-content;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#ffffff2e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.625rem 1.25rem;font-size:.875rem;letter-spacing:.025em;font-weight:600;position:relative;z-index:1;box-shadow:0 2px 8px #0000001a}.auth-hero h1{margin:0;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1.15;position:relative;z-index:1;color:#fff;font-weight:700;letter-spacing:-.02em}.auth-hero p{margin:0;color:#fffffff2;font-size:1.15rem;line-height:1.75;position:relative;z-index:1;font-weight:400}.hero-points{margin:0;padding-left:1.5rem;display:grid;gap:.75rem;color:#fffffff2;font-size:1rem;position:relative;z-index:1}.hero-highlights{list-style:none;padding:2rem;margin:0;border-radius:18px;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:1;display:flex;flex-direction:column;gap:1rem}.hero-highlights li{display:flex;align-items:flex-start;gap:.75rem;font-size:1rem;line-height:1.6}.hero-highlights li:before{content:"✓";flex-shrink:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:50%;font-size:.75rem;font-weight:700}.auth-card{width:100%;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:3rem 2.5rem;display:flex;flex-direction:column;gap:1.5rem;box-shadow:var(--shadow-lg);text-align:center;min-height:600px}.auth-card h1{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.01em}.auth-card h2{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.01em}.auth-card p{margin:0;color:var(--muted);font-size:1rem;line-height:1.6}@media(max-width:768px){.auth-shell{padding:1rem;display:flex;align-items:center;justify-content:center}.auth-card{max-width:90%;padding:2rem 1.5rem;border-radius:16px}.auth-card h1{font-size:2rem}.auth-card p{font-size:.9375rem}}.auth-tabs{display:flex;gap:.5rem;padding:.25rem;background:var(--bg);border-radius:12px}.auth-tabs .btn{flex:1;border-radius:10px}.auth-form{display:grid;gap:1rem}.auth-form label{display:grid;gap:.5rem;font-weight:500;font-size:.9375rem;color:var(--ink)}.auth-form input{border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem;font-size:.9375rem;transition:all .2s ease}.auth-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.auth-error,.auth-notice{margin-top:.2rem}.auth-terms{font-size:.84rem;color:var(--muted)}.auth-terms a{color:var(--accent);font-weight:500}.auth-terms a:hover{color:var(--accent-dark);text-decoration:underline}.oauth-divider{text-align:center;color:var(--muted);font-size:.875rem;font-weight:500;position:relative;margin:.5rem 0}.oauth-divider:before,.oauth-divider:after{content:"";position:absolute;top:50%;width:38%;height:1px;background:var(--line)}.oauth-divider:before{left:0}.oauth-divider:after{right:0}.oauth-actions{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.oauth-actions a{text-align:center;text-decoration:none}.btn-oauth{background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:500;justify-content:center}.btn-oauth:hover:not(:disabled){background:var(--bg);border-color:var(--line-dark)}.btn-oauth svg{flex-shrink:0}.btn-google:hover:not(:disabled){background:#f8faff;border-color:#4285f4}.btn-facebook:hover:not(:disabled){background:#f0f5ff;border-color:#1877f2}.auth-footnote{color:var(--muted-light);text-align:center;font-size:.8125rem}.legal-shell{min-height:100vh;padding:1rem;display:grid;grid-template-rows:auto 1fr auto;gap:1rem}.legal-header{max-width:980px;margin:0 auto;width:100%;border:1px solid var(--line);border-radius:16px;background:linear-gradient(112deg,#fff,#f8fafc);padding:1rem 1.2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.legal-header h1{margin:0;font-size:1.35rem}.link-back{color:#0f4c75;text-decoration:none;font-size:.9rem;font-weight:600}.link-back:hover{text-decoration:underline}.legal-meta{color:var(--muted);margin-top:.22rem;font-size:.9rem}.legal-content{max-width:980px;margin:0 auto;width:100%;border:1px solid var(--line);border-radius:16px;background:var(--card);padding:1.2rem;overflow:auto}.legal-section{margin-bottom:1.1rem}.legal-section h2{margin:0 0 .45rem;font-size:1.04rem}.legal-section p,.legal-section li{color:#334155;line-height:1.6}.legal-section ul,.legal-section ol{margin:.35rem 0 0;padding-left:1.2rem}.faq-list{display:grid;gap:.95rem}.faq-item{border:1px solid var(--line);border-radius:12px;padding:.75rem;background:#fcfdff}.faq-item h3{margin:0 0 .35rem;font-size:.98rem}.faq-item p{margin:0}.site-footer{width:100%}.site-footer-inner{max-width:1100px;margin:0 auto;width:100%;padding:.1rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.site-footer-legal{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:flex-start}.site-footer a{color:#0f4c75;text-decoration:none;font-size:.88rem;font-weight:600;transition:color .14s ease}.site-footer a:hover{color:#0b6b88;text-decoration:underline}.site-footer-note{color:var(--muted);font-size:.86rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.app-footer .site-footer-inner,.legal-shell .site-footer-inner,.styleguide-shell .site-footer-inner{max-width:980px}.styleguide-content h1,.styleguide-content h2,.styleguide-content h3,.styleguide-content h4{margin-top:0}.styleguide-section{margin-bottom:1.2rem}.styleguide-section:last-child{margin-bottom:0}.styleguide-intro-copy{color:var(--muted);margin:0 0 .9rem}.styleguide-grid-2{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.styleguide-grid-3{display:grid;gap:.7rem;grid-template-columns:repeat(3,minmax(0,1fr))}.styleguide-card{border:1px solid var(--line);border-radius:12px;padding:.8rem;background:#fcfdff}.styleguide-card h3{margin:0 0 .45rem;font-size:.95rem}.styleguide-card p{margin:0;color:#334155}.styleguide-row{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.styleguide-code{margin:.85rem 0 0;border:1px solid var(--line);border-radius:12px;padding:.8rem;background:#0f172a;color:#e2e8f0;font-size:.8rem;line-height:1.45;overflow-x:auto}.styleguide-code code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.styleguide-state-card{display:grid;gap:.65rem}.styleguide-checklist{margin:0;padding-left:1.15rem;color:#334155;display:grid;gap:.45rem}.styleguide-force-hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-border);transform:translateY(-1px)}.styleguide-force-focus{box-shadow:var(--btn-focus-ring),var(--btn-focus-ring-offset)}.styleguide-form-demo{display:grid;gap:.7rem}.styleguide-form-demo label{display:grid;gap:.35rem}.styleguide-form-demo input,.styleguide-form-demo select,.styleguide-form-demo textarea{border:1px solid var(--line);border-radius:9px;padding:.52rem}.profile-photo-preview{width:min(100%,280px);max-height:220px;object-fit:cover;border:1px solid var(--line);border-radius:12px}.photo-upload-error{color:#b91c1c}.tw-flex{display:flex}.tw-grid{display:grid}.tw-items-center{align-items:center}.tw-justify-between{justify-content:space-between}.tw-gap-2{gap:.5rem}.tw-gap-3{gap:.75rem}.tw-rounded-xl{border-radius:.75rem}.tw-rounded-full{border-radius:999px}.tw-border{border:1px solid #d1deed}.tw-bg-card{background:#fff}.tw-bg-soft{background:#f8fbff}.tw-p-3{padding:.75rem}.tw-text-sm{font-size:.875rem}.tw-font-semibold{font-weight:600}.tw-shadow-soft{box-shadow:0 10px 24px #0f172a14}@media(max-width:1300px){.layout-grid{grid-template-columns:18rem minmax(0,1fr) 18rem;column-gap:1.25rem}.layout-grid.detail-panel-collapsed{grid-template-columns:18rem minmax(0,1fr) 0;column-gap:1rem}.layout-grid.lineages-panel-collapsed{grid-template-columns:0 minmax(0,1fr) 18rem;column-gap:1rem}}@media(max-width:1000px){.auth-layout{grid-template-columns:1fr;gap:2rem}.auth-hero{min-height:auto;padding:2.5rem}.auth-card{min-height:auto;padding:2.5rem 2rem}.layout-grid,.layout-grid.detail-panel-collapsed{grid-template-columns:minmax(0,1fr) 280px}.detail-panel{display:none}}@media(max-width:900px){.layout-grid{grid-template-columns:1fr}.detail-person-actions{align-items:flex-start;flex-direction:column}.detail-panel-footer-actions{align-items:center;flex-direction:unset;grid-template-columns:1fr auto}.app-shell{padding:0;gap:0}.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:.75rem .5rem;gap:.5rem;min-height:2.5rem;margin-bottom:0}.app-header-logo,.app-logo{height:2.5rem}.app-header-settings-btn{width:2.25rem!important;min-width:2.25rem!important;height:2.25rem!important}.app-header-settings-btn svg{width:1.25rem!important;height:1.25rem!important}.app-header .user-info{display:none}.app-header-actions .btn:not(.app-header-settings-btn){display:none}.app-header-actions{width:auto}.header-right{width:100%;justify-content:flex-start}.two-col,.date-grid,.oauth-actions,.styleguide-grid-2,.styleguide-grid-3{grid-template-columns:1fr}.legal-header{flex-direction:column-reverse;align-items:flex-start}.site-footer{line-height:1.2}.site-footer-inner{flex-direction:column;align-items:flex-start}.site-footer a,.site-footer-note{line-height:1.2}.site-footer-legal{justify-content:flex-start}.site-footer .styleguide-link{display:none}.family-map-overlay-list,.family-map-overlay-header{width:100%}.access-summary-grid{grid-template-columns:1fr}.profile-photo-picker{flex-wrap:wrap}.profile-photo-file-name{width:100%}}.subscriptions-page{min-height:100vh;background:linear-gradient(135deg,#f8f9fc,#f1f5f9);padding:4rem 1.5rem}.subscriptions-container{max-width:1200px;margin:0 auto}.subscriptions-back{display:inline-flex;align-items:center;gap:.5rem;color:#64748b;text-decoration:none;font-weight:500;font-size:.9375rem;margin-bottom:2rem;transition:color .2s ease}.subscriptions-back:hover{color:#6366f1}.subscriptions-back svg{transition:transform .2s ease}.subscriptions-back:hover svg{transform:translate(-2px)}.subscriptions-header{text-align:center;margin-bottom:3rem}.subscriptions-header h1{font-size:3rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 1rem}.subscriptions-header p{font-size:1.25rem;color:#64748b;margin:0}.subscriptions-sync-banner{margin:1rem auto 0;width:min(720px,100%);border-radius:12px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;padding:.72rem .9rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.92rem;font-weight:600}.subscriptions-sync-banner.success{border-color:#86efac;background:#f0fdf4;color:#166534}.subscriptions-sync-banner.cancelled{border-color:#fecdd3;background:#fff1f2;color:#9f1239}.subscriptions-sync-banner.pending{border-color:#fcd34d;background:#fffbeb;color:#92400e}.subscriptions-sync-spinner{width:14px;height:14px;border-radius:999px;border:2px solid #94a3b8;border-top-color:transparent;animation:subscriptions-spin .8s linear infinite}@keyframes subscriptions-spin{to{transform:rotate(360deg)}}.billing-cycle-toggle{display:flex;gap:.5rem;justify-content:center;margin-bottom:3rem;padding:.5rem;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;max-width:400px;margin-left:auto;margin-right:auto}.cycle-btn{flex:1;padding:.875rem 1.5rem;border:none;background:transparent;border-radius:12px;font-weight:600;font-size:1rem;color:#64748b;cursor:pointer;transition:all .2s ease;position:relative}.cycle-btn:hover{color:#334155}.cycle-btn.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 12px #6366f14d}.save-badge{display:inline-block;margin-left:.5rem;padding:.25rem .5rem;background:#fff3;border-radius:6px;font-size:.75rem;font-weight:700}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-bottom:3rem}.plan-card{background:#fff;border:2px solid #e2e8f0;border-radius:24px;padding:2.5rem;position:relative;transition:all .3s ease;display:flex;flex-direction:column}.plan-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.plan-card.featured{border-color:#6366f1;box-shadow:0 8px 24px #6366f133}.plan-card.current{border-color:#10b981;background:linear-gradient(135deg,#fff,#f0fdf4)}.featured-badge,.current-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:.5rem 1.25rem;border-radius:20px;font-size:.875rem;font-weight:700;letter-spacing:.02em}.featured-badge{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.current-badge{background:#10b981;color:#fff}.plan-header{margin-bottom:2rem}.plan-header h3{font-size:1.75rem;font-weight:700;color:#1e293b;margin:0 0 .5rem}.plan-description{font-size:1rem;color:#64748b;margin:0;line-height:1.6}.plan-pricing{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.price-main{display:flex;align-items:baseline;gap:.25rem}.currency{font-size:1.5rem;font-weight:600;color:#64748b}.amount{font-size:3.5rem;font-weight:700;color:#1e293b;line-height:1}.period{font-size:1.25rem;color:#64748b;font-weight:500}.price-breakdown{margin-top:.5rem;font-size:.875rem;color:#64748b}.plan-features{list-style:none;padding:0;margin:0 0 2rem;flex-grow:1}.plan-features li{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;font-size:1rem;color:#334155;line-height:1.6}.feature-copy{display:grid;gap:.12rem}.feature-note{font-size:.73rem;font-weight:600;color:#64748b}.check-icon{width:1.25rem;height:1.25rem;color:#10b981;flex-shrink:0;margin-top:.125rem}.plan-cta{width:100%;padding:1rem 2rem;font-size:1.125rem;font-weight:600;border-radius:12px;transition:all .2s ease}.plan-cta:disabled{opacity:.6;cursor:not-allowed}.subscriptions-footer{text-align:center;padding-top:2rem;border-top:1px solid #e2e8f0}.subscriptions-footer p{color:#64748b;font-size:.9375rem;margin:.5rem 0}.subscriptions-footer a{color:#6366f1;text-decoration:none;font-weight:600}.subscriptions-footer a:hover{text-decoration:underline}.subscriptions-loading{text-align:center;padding:4rem 2rem}@media(max-width:768px){.subscriptions-page{padding:2rem 1rem}.subscriptions-header h1{font-size:2rem}.subscriptions-header p{font-size:1rem}.plans-grid{grid-template-columns:1fr;gap:1.5rem}.plan-card{padding:2rem 1.5rem}}.detail-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.detail-document-thumb{border:1px solid #d5dfea;border-radius:10px;background:#fff;padding:.35rem;display:grid;gap:.25rem;text-align:left;cursor:pointer}.detail-document-thumb img{width:100%;height:84px;object-fit:cover;border-radius:8px;background:#f1f5f9}.detail-document-thumb-file{width:100%;height:84px;border-radius:8px;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#334155;font-weight:700;font-size:.88rem;display:grid;place-items:center}.detail-document-thumb span{font-size:.72rem;font-weight:600;color:#334155;line-height:1.2}.documents-main{display:grid;gap:1.5rem}.documents-add-section{border:1px solid var(--input-border);border-radius:var(--radius-lg);padding:1.25rem;background:var(--card);box-shadow:var(--shadow-sm)}.documents-section-header{margin-bottom:1rem}.documents-section-header h4{margin:0 0 .25rem;font-size:1.125rem;font-weight:600;color:var(--ink)}.documents-section-header p{margin:0;font-size:.875rem;color:var(--muted);line-height:1.5}.documents-list-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:2px solid var(--bg)}.documents-count{font-size:.8125rem;font-weight:600;color:var(--muted);background:var(--bg);padding:.25rem .625rem;border-radius:999px}.documents-form-grid{display:grid;gap:1rem}.documents-quick-labels{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:-.25rem}.documents-quick-label-btn{border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink-light);font-size:.75rem;font-weight:600;padding:.25rem .625rem;cursor:pointer;transition:all .15s ease}.documents-quick-label-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);transform:translateY(-1px)}.char-count{display:block;margin-top:.25rem;font-size:.75rem;color:var(--muted);text-align:right}.documents-upload-zone{border:2px dashed var(--line);border-radius:var(--radius-lg);min-height:140px;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem;gap:.75rem;cursor:pointer;transition:all .2s ease}.documents-upload-zone:hover{border-color:var(--accent-light);background:var(--accent-bg)}.documents-upload-zone.drag-active{border-color:var(--accent);background:var(--accent-bg);transform:scale(1.01)}.documents-upload-zone.has-file{border-color:#10b981;background:#ecfdf5}.documents-upload-zone-compact{min-height:100px;padding:1rem}.documents-upload-icon{width:40px;height:40px;color:var(--accent);flex-shrink:0}.documents-upload-zone.drag-active .documents-upload-icon,.documents-upload-zone:hover .documents-upload-icon{color:var(--accent-dark)}.documents-upload-zone.has-file .documents-upload-icon{color:#10b981}.documents-upload-prompt{display:grid;gap:.25rem}.documents-upload-prompt strong{font-size:.9375rem;font-weight:600;color:var(--ink)}.documents-upload-prompt span{font-size:.8125rem;color:var(--muted)}.documents-upload-file-info{display:grid;gap:.25rem}.documents-upload-file-info strong{font-size:.9375rem;font-weight:600;color:#10b981}.documents-upload-file-info span{font-size:.8125rem;color:var(--muted)}.documents-add-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.documents-entry-list{display:grid;gap:.75rem}.documents-preview-card{border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--bg);padding:.75rem;display:grid;gap:.75rem;position:relative}.documents-preview-image{width:100%;max-height:320px;object-fit:contain;border-radius:var(--radius-md);background:#fff;border:1px solid var(--line)}.documents-preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.documents-preview-fallback svg{width:48px;height:48px;color:var(--muted)}.documents-preview-fallback a{color:var(--accent);font-weight:600;font-size:.9375rem;text-decoration:none}.documents-preview-fallback a:hover{text-decoration:underline}.documents-preview-remove-btn{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;border:1px solid #fecaca;border-radius:999px;background:#fef2f2;color:var(--warn);display:inline-grid;place-items:center;cursor:pointer;transition:all .15s ease;z-index:2}.documents-preview-remove-btn:hover{background:#fee2e2;border-color:#fca5a5;transform:scale(1.05)}.documents-preview-remove-btn svg{width:16px;height:16px}.documents-replace-btn{width:100%}.documents-entry-body{padding-top:.75rem}.documents-entry-footer{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid var(--input-border)}.document-viewer-modal{max-width:860px}.document-modal-tabs{margin-top:.35rem}.document-modal-tab-static{cursor:default}.document-viewer-toolbar{display:flex;justify-content:space-between;gap:.75rem;align-items:center;flex-wrap:wrap;margin:.6rem 0 .65rem}.document-viewer-zoom-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.document-viewer-zoom-label{font-size:.78rem;font-weight:700;color:#334155;min-width:52px}.document-viewer-file-actions{display:flex;gap:.6rem;flex-wrap:wrap}.document-viewer-file-actions a{font-size:.82rem;font-weight:600;color:var(--accent);text-decoration:none}.document-viewer-file-actions a:hover{text-decoration:underline}.document-viewer-content{border:1px solid #dbe3ee;border-radius:12px;min-height:320px;max-height:70vh;background:#f1f5f9;overflow:hidden;padding:.6rem;cursor:grab;touch-action:none}.document-viewer-content.dragging{cursor:grabbing}.document-viewer-stage{width:fit-content;max-width:none;transform-origin:top left;will-change:transform}.document-viewer-image{width:auto;max-width:min(96vw,1200px);max-height:1100px;height:auto;border-radius:10px;display:block;background:#fff;border:1px solid #dbe3ee}.document-viewer-iframe{width:min(96vw,1050px);height:min(70vh,920px);border:0;border-radius:10px;background:#fff;display:block}.document-viewer-pdf-document{display:flex;justify-content:center;align-items:flex-start}.document-viewer-pdf-page{border-radius:10px;box-shadow:0 2px 8px #0000001a}.document-viewer-pdf-page canvas{display:block;border-radius:10px}
