.ai-assistant-border-wrapper{border-radius:1rem;width:100%;padding:2px;position:relative;overflow:hidden}.ai-assistant-border-wrapper:before{content:"";border-radius:inherit;pointer-events:none;opacity:.35;z-index:0;background:linear-gradient(135deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533);position:absolute;inset:0}.ai-assistant-border-wrapper:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;z-index:1;background:linear-gradient(135deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 200%;transition:opacity .2s ease-in-out;position:absolute;inset:0}.ai-assistant-border-surface{background:var(--background);z-index:2;border-radius:calc(1rem - 2px);position:relative}.ai-assistant-border-wrapper:focus-within:after{opacity:1}.ai-assistant-textarea{z-index:2;background-clip:padding-box;border:none;border-radius:calc(1rem - 2px);transition:border-color .3s,box-shadow .3s;position:relative}.ai-assistant-textarea:focus,.ai-assistant-textarea:focus-visible{box-shadow:none;ring:none;--tw-ring-offset-width:0px;--tw-ring-width:0px;border:#0000;outline:none}.ai-header-divider{background:var(--border);opacity:.6;height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.ai-header-divider:before{content:"";opacity:0;background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;transition:opacity .3s ease-in-out;position:absolute;inset:0}.ai-header-divider-active{background:0 0;height:2px}.ai-header-divider-active:before{opacity:1;animation:1.5s linear infinite ai-header-divider-flow}@keyframes ai-header-divider-flow{0%{background-position:200% 0}to{background-position:-200% 0}}.ai-loading-indicator{background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;align-items:center;gap:.5rem;animation:3s linear infinite ai-loading-flow;display:flex}.ai-loading-indicator .ai-loading-dot{background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;border-radius:50%;flex-shrink:0;width:.75rem;height:.75rem;animation:3s linear infinite ai-loading-flow}.ai-loading-indicator .ai-loading-text{color:#0000}.ai-loading-text-gradient{color:#0000;background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite ai-loading-flow}@keyframes ai-loading-flow{0%{background-position:200% 0}to{background-position:-200% 0}}.ai-drawer-content[data-side=right]{--drawer-shadow:-8px 0 30px -5px #00000026}.ai-drawer-content[data-side=right][data-state=open]{box-shadow:var(--drawer-shadow);animation:.4s cubic-bezier(.32,.72,0,1) forwards ai-drawer-slide-in}.ai-drawer-content[data-side=right][data-state=closed]{animation:.3s cubic-bezier(.32,.72,0,1) forwards ai-drawer-slide-out}@keyframes ai-drawer-slide-in{0%{opacity:.8;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ai-drawer-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:.8;transform:translate(100%)}}.prose-ai{color:var(--foreground);word-break:break-word;overflow-wrap:break-word;line-height:1.7}.prose-ai h1,.prose-ai h2,.prose-ai h3,.prose-ai h4,.prose-ai h5,.prose-ai h6{margin-top:1.25em;margin-bottom:.5em;font-weight:600;line-height:1.3}.prose-ai h1{font-size:1.5em}.prose-ai h2{font-size:1.25em}.prose-ai h3{font-size:1.125em}.prose-ai h4,.prose-ai h5,.prose-ai h6{font-size:1em}.prose-ai p{margin-top:.75em;margin-bottom:.75em}.prose-ai p:first-child{margin-top:0}.prose-ai p:last-child{margin-bottom:0}.prose-ai ul,.prose-ai ol{margin-top:.5em;margin-bottom:.5em;padding-left:1.5em}.prose-ai ul{list-style-type:disc}.prose-ai ol{list-style-type:decimal}.prose-ai li,.prose-ai li>ul,.prose-ai li>ol{margin-top:.25em;margin-bottom:.25em}.prose-ai strong{font-weight:600}.prose-ai em{font-style:italic}.prose-ai code{font-family:var(--font-mono),ui-monospace,monospace;background-color:var(--muted);border-radius:.25rem;padding:.15em .4em;font-size:.875em}.prose-ai pre{background-color:var(--muted);border-radius:.5rem;margin-top:.75em;margin-bottom:.75em;padding:.75em 1em;overflow-x:auto}.prose-ai pre code{background-color:#0000;padding:0;font-size:.8125em;line-height:1.6}.prose-ai blockquote{border-left:3px solid var(--border);color:var(--muted-foreground);margin-top:.75em;margin-bottom:.75em;padding-left:1em;font-style:italic}.prose-ai a{color:var(--primary);text-underline-offset:2px;text-decoration:underline}.prose-ai a:hover{opacity:.8}.prose-ai hr{border:none;border-top:1px solid var(--border);margin-top:1em;margin-bottom:1em}.prose-ai table{border-collapse:collapse;width:100%;margin-top:.75em;margin-bottom:.75em;font-size:.875em}.prose-ai th,.prose-ai td{border:1px solid var(--border);text-align:left;padding:.5em .75em}.prose-ai th{background-color:var(--muted);font-weight:600}.prose-ai img{border-radius:.375rem;max-width:100%;height:auto;margin-top:.5em;margin-bottom:.5em}.ai-canvas-divider{background:linear-gradient(180deg,transparent 0%,var(--border)10%,var(--border)90%,transparent 100%);position:relative;overflow:hidden}.ai-canvas-divider:before{content:"";opacity:.5;background:linear-gradient(#0000 0%,#f79533 10%,#f37055 25%,#ef4e7b 40%,#a166ab 55%,#5073b8 70%,#1098ad 85%,#07b39b 95%,#0000 100%);transition:opacity .3s ease-in-out;position:absolute;inset:0}.ai-canvas-divider-active:before{animation:3s ease-in-out infinite ai-divider-shimmer}@keyframes ai-divider-shimmer{0%,to{opacity:.4}50%{opacity:.8}}.ai-assistant-drop-zone-active{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary)20%,transparent),inset 0 0 20px color-mix(in srgb,var(--primary)5%,transparent);border-color:var(--primary)!important}.ai-assistant-drop-zone-active:before{content:"";border-radius:inherit;background:conic-gradient(from var(--ai-drop-border-angle,0deg),#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533);-webkit-mask-composite:xor;pointer-events:none;z-index:-1;padding:2px;animation:1.5s linear infinite ai-drop-border-spin;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@property --ai-drop-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes ai-drop-border-spin{0%{--ai-drop-border-angle:0deg}to{--ai-drop-border-angle:360deg}}.ai-drop-overlay-enter{animation:.2s ease-out forwards ai-drop-overlay-fade-in}@keyframes ai-drop-overlay-fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.ai-file-tag{transition:all .15s;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards ai-file-tag-enter}.ai-file-tag:hover{background:color-mix(in srgb,var(--primary)15%,transparent);border-color:color-mix(in srgb,var(--primary)30%,transparent);transform:translateY(-1px)}@keyframes ai-file-tag-enter{0%{opacity:0;transform:scale(.8)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}.ai-message-file-card{animation:.3s cubic-bezier(.34,1.56,.64,1) forwards ai-message-file-card-enter}.ai-message-file-card:hover{box-shadow:0 2px 8px color-mix(in srgb,var(--primary)15%,transparent)}@keyframes ai-message-file-card-enter{0%{opacity:0;transform:translateY(-8px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}
.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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))}
.canvas-dashed-pattern line{stroke-dasharray:4 4}.canvas-node-base{background-image:linear-gradient(135deg,#fffc 0%,#fffffff2 50%,#ffffffd9 100%);transition:transform .1s cubic-bezier(.22,1,.36,1),box-shadow .1s cubic-bezier(.22,1,.36,1),border-color .1s}.canvas-node-base:hover{box-shadow:0 12px 28px -8px #0000001f,0 6px 12px -6px #0000000f,0 2px 4px -2px #0000000a,inset 0 1px #fff9}.canvas-node-selected{box-shadow:0 0 0 2.5px var(--primary),0 0 24px -4px var(--primary),0 0 40px -8px color-mix(in srgb,var(--primary)40%,transparent),0 10px 30px -8px #0000002e;transform:translateY(-2px)scale(1.005)}.canvas-node-base.canvas-node-selected:hover{box-shadow:0 0 0 2.5px var(--primary),0 0 24px -4px var(--primary),0 0 40px -8px color-mix(in srgb,var(--primary)40%,transparent),0 10px 30px -8px #0000002e}.canvas-node-dragging{box-shadow:0 24px 48px -12px #00000038,0 12px 24px -8px #0000001f,0 0 0 2px var(--primary),0 0 32px -8px var(--primary);z-index:100;transform:scale(1.025)rotate(.5deg)}.canvas-node-highlighted{animation:2.5s cubic-bezier(.4,0,.2,1) infinite canvas-highlight-pulse;box-shadow:0 0 0 3px #0070f373,0 0 16px -2px #0070f340,0 0 32px -4px #0070f326,0 6px 16px #0000001a}@keyframes canvas-highlight-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 3px #0070f373,0 0 16px -2px #0070f340,0 0 32px -4px #0070f326,0 6px 16px #0000001a}50%{transform:scale(1.008);box-shadow:0 0 0 4px #0070f38c,0 0 24px -2px #0070f359,0 0 48px -4px #0070f333,0 8px 20px #0000001f}}.canvas-node-rainbow-highlight{background-clip:padding-box;border:3px solid #0000;animation:3s linear infinite canvas-rainbow-rotate;position:relative}.canvas-node-rainbow-highlight:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;z-index:-1;background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;padding:3px;animation:2s linear infinite canvas-rainbow-flow;position:absolute;inset:-3px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes canvas-rainbow-flow{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes canvas-rainbow-rotate{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}.react-flow__handle{transition:scale .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s cubic-bezier(.22,1,.36,1),opacity .15s ease-out,background-color .15s}.react-flow__handle:hover{scale:1.25;box-shadow:0 0 0 5px #0070f326,0 0 12px #0070f340}.react-flow__handle.connecting{animation:1s cubic-bezier(.4,0,.2,1) infinite handle-pulse}@keyframes handle-pulse{0%,to{scale:1;box-shadow:0 0 #0070f380}50%{scale:1.15;box-shadow:0 0 0 8px #0070f314,0 0 16px #0070f333}}.canvas-node-actions{opacity:0;transition:opacity .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1);transform:translateY(-6px)scale(.95)}.group:hover .canvas-node-actions{opacity:1;transform:translateY(0)scale(1)}.canvas-node-actions:has([data-state=open]){opacity:1;transform:translateY(0)scale(1)}.canvas-action-btn{border-radius:6px;transition:background-color .15s,transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s}.canvas-action-btn:hover{transform:scale(1.12);box-shadow:0 2px 8px #0000001a}.canvas-action-btn:active{box-shadow:none;transform:scale(.92)}.canvas-loading-overlay{background-color:#00000080;animation:.25s cubic-bezier(.22,1,.36,1) forwards canvas-loading-fade-in;overflow:hidden}.canvas-loading-overlay:before{content:"";pointer-events:none;background:linear-gradient(135deg,#0000 0% 40%,#ffffff14 44%,#ffffff26 47%,#ffffff40 50%,#ffffff26 53%,#ffffff14 56%,#0000 60% 100%);width:200%;height:200%;animation:1.5s cubic-bezier(.4,0,.2,1) infinite canvas-wave-sweep;position:absolute;top:-50%;left:-100%}@keyframes canvas-wave-sweep{0%{transform:translate(0)}to{transform:translate(100%,100%)}}@keyframes canvas-loading-fade-in{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.canvas-loading-text{z-index:1;letter-spacing:.02em;color:#0000;filter:drop-shadow(0 0 10px #fff)drop-shadow(0 0 20px #fffc)drop-shadow(0 0 36px #ffffff80);background:linear-gradient(90deg,#f79533,#f37055,#ef4e7b,#a166ab,#5073b8,#1098ad,#07b39b,#f79533) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;font-size:1.575rem;font-weight:500;animation:3s linear infinite canvas-text-rainbow;position:relative}@keyframes canvas-text-rainbow{0%{background-position:200% 0}to{background-position:-200% 0}}.canvas-zoom-btn{border-radius:6px;transition:background-color .15s,transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .15s}.canvas-zoom-btn:hover{background-color:#00000014;box-shadow:0 1px 3px #00000014}.canvas-zoom-btn:active{background-color:#0000001f;transform:scale(.92);box-shadow:inset 0 1px 2px #0000001a}.canvas-zoom-text{font-variant-numeric:tabular-nums;letter-spacing:-.02em;transition:color .15s,transform .15s}.canvas-connection-menu{transform-origin:0 0;background:#fffffffa;animation:.25s cubic-bezier(.34,1.56,.64,1) forwards canvas-menu-appear;box-shadow:0 4px 16px #0000001f,0 2px 4px #00000014,0 0 0 1px #0000000a}@keyframes canvas-menu-appear{0%{opacity:0;transform:scale(.92)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}.canvas-menu-item{transition:background-color .15s,color .15s}.canvas-table-row{transition:background-color .18s,box-shadow .18s}.canvas-table-row:hover{background-color:#14b8a61a;box-shadow:inset 3px 0 #14b8a680}.canvas-ksa-tag{transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s cubic-bezier(.22,1,.36,1),background-color .15s,border-color .15s}.canvas-ksa-tag:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 4px 12px #0000001f,0 2px 4px #00000014}.canvas-ksa-tag:active{transform:translateY(-1px)scale(.98);box-shadow:0 1px 4px #0000001a}.react-flow{background-color:#fafbfc}.react-flow__minimap{box-shadow:0 4px 16px #00000014,0 1px 4px #0000000a}.canvas-node-header-gradient{background-image:linear-gradient(135deg,#fff3 0%,#0000 50%)}.canvas-panel-border-glow{position:relative}.canvas-panel-border-glow:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff80}.canvas-node-header-glass{position:relative;overflow:hidden}.canvas-node-header-glass:before{content:"";pointer-events:none;background:linear-gradient(135deg,#fff6 0%,#ffffff1a 50%,#0000 100%);position:absolute;inset:0}.canvas-node-base:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--ring)50%,transparent),0 8px 20px #0000001f;outline:none}.canvas-node-disabled{opacity:.6;pointer-events:none;filter:grayscale(.3)}.react-flow__edge:hover .react-flow__edge-path{filter:drop-shadow(0 0 4px #0070f366)}.react-flow__edge.selected .react-flow__edge-path{stroke-width:3px;filter:drop-shadow(0 0 6px #0070f380)}.canvas-node-base [data-scrollable]{scrollbar-width:thin;scrollbar-color:#0003 transparent}.canvas-node-base [data-scrollable]::-webkit-scrollbar{width:6px;height:6px}.canvas-node-base [data-scrollable]::-webkit-scrollbar-track{background:0 0;border-radius:3px}.canvas-node-base [data-scrollable]::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px;transition:background .2s}.canvas-node-base [data-scrollable]::-webkit-scrollbar-thumb:hover{background:#00000040}.canvas-empty-add-btn{transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .2s,border-color .2s,background-color .2s}.canvas-empty-add-btn:hover{transform:scale(1.15);box-shadow:0 8px 24px #0000001f,0 4px 8px #00000014}.canvas-empty-add-btn:active{transform:scale(1.05)}.canvas-sync-pulse{animation:1.2s cubic-bezier(.4,0,.6,1) infinite canvas-sync-pulse}@keyframes canvas-sync-pulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #22c55eb3}50%{opacity:.6;transform:scale(.85);box-shadow:0 0 0 4px #22c55e00}}
