@keyframes pulseNeonSource{0%{box-shadow:0 0 4px var(--handle-output-border-color),0 0 8px color-mix(in srgb,var(--handle-output-border-color) 90%,transparent),0 0 16px color-mix(in srgb,var(--handle-output-border-color) 80%,transparent),0 0 32px color-mix(in srgb,var(--handle-output-color) 60%,transparent),0 0 48px color-mix(in srgb,var(--handle-output-color) 50%,transparent),0 0 64px color-mix(in srgb,var(--handle-output-color) 40%,transparent),0 0 80px color-mix(in srgb,var(--handle-output-color) 30%,transparent)}to{box-shadow:0 0 4px color-mix(in srgb,var(--handle-output-border-color) 60%,transparent),0 0 8px color-mix(in srgb,var(--handle-output-border-color) 50%,transparent),0 0 16px color-mix(in srgb,var(--handle-output-border-color) 40%,transparent),0 0 32px color-mix(in srgb,var(--handle-output-color) 30%,transparent),0 0 48px color-mix(in srgb,var(--handle-output-color) 20%,transparent),0 0 64px color-mix(in srgb,var(--handle-output-color) 10%,transparent),0 0 80px color-mix(in srgb,var(--handle-output-color) 5%,transparent)}}@keyframes pulseNeonTarget{0%{box-shadow:0 0 4px var(--handle-input-border-color),0 0 8px color-mix(in srgb,var(--handle-input-border-color) 90%,transparent),0 0 16px color-mix(in srgb,var(--handle-input-border-color) 80%,transparent),0 0 32px color-mix(in srgb,var(--handle-input-color) 60%,transparent),0 0 48px color-mix(in srgb,var(--handle-input-color) 50%,transparent),0 0 64px color-mix(in srgb,var(--handle-input-color) 40%,transparent),0 0 80px color-mix(in srgb,var(--handle-input-color) 30%,transparent)}to{box-shadow:0 0 4px color-mix(in srgb,var(--handle-input-border-color) 60%,transparent),0 0 8px color-mix(in srgb,var(--handle-input-border-color) 50%,transparent),0 0 16px color-mix(in srgb,var(--handle-input-border-color) 40%,transparent),0 0 32px color-mix(in srgb,var(--handle-input-color) 30%,transparent),0 0 48px color-mix(in srgb,var(--handle-input-color) 20%,transparent),0 0 64px color-mix(in srgb,var(--handle-input-color) 10%,transparent),0 0 80px color-mix(in srgb,var(--handle-input-color) 5%,transparent)}}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(-1turn)}}.custom-editor.react-flow{--node-border-radius:10px;--node-box-shadow:none;--bg-color:hsl(var(--card));--text-color:hsl(var(--foreground));--handle-input-color:var(--composer-input-handle-color,#a686ca);--handle-input-border-color:var(
    --composer-input-handle-border-color,#63319b
  );--handle-output-color:var(--composer-output-handle-color,#9aaeff);--handle-output-border-color:var(
    --composer-output-handle-border-color,#2d2dff
  );--edge-input-color:var(--composer-input-edge-color,#ae53ba);--edge-output-color:var(--composer-output-edge-color,#2a8af6);color:var(--text-color);&.dark{--bg-color:hsl(var(--sidebar-background));--text-color:#f3f4f6;--xy-background-color-default:hsl(var(--background));--xy-minimap-background-color-default:hsl(var(--background));--xy-controls-button-background-color-default:hsl(var(--sidebar-background));--xy-controls-button-background-color-hover-default:hsl(var(--sidebar-accent));--xy-controls-button-color-default:hsl(var(--sidebar-foreground));--xy-controls-button-color-hover-default:hsl(var(--sidebar-accent-foreground));--xy-controls-button-border-color-default:hsl(var(--sidebar-border))}.react-flow__node{border-radius:var(--node-border-radius);display:flex;font-family:Fira Mono,Monospace;font-weight:500;letter-spacing:-.2px;box-shadow:var(--node-box-shadow);.react-flow__handle{width:15px;height:15px;pointer-events:all;&.target{left:0;background-color:var(--handle-input-color);border:3px solid var(--handle-input-border-color);&.is-active,&:hover{animation:pulseNeonTarget 1.2s ease-in-out infinite;border-color:#fff}}&.source{right:0;background-color:var(--handle-output-color);border:3px solid var(--handle-output-border-color);&.is-active,&:hover{animation:pulseNeonSource 1.2s ease-in-out infinite;border-color:#fff}}&[data-handlepos=bottom]{bottom:0;right:unset}&.source.react-flow__handle-left{left:0;right:auto}}&.react-flow__node-container{z-index:10002;.node-body{overflow:visible}}&.react-flow__node-resource{z-index:10001!important;transition:opacity .15s ease;&.node-dimmed{opacity:.3}&.dragging,&.selected{z-index:10004!important}.node-body{overflow:visible}}&.react-flow__node-connector{width:48px;height:48px;border-radius:100%;background:transparent;box-shadow:none;.connector-no-glow{box-shadow:none!important}.react-flow__handle{z-index:1;&.target{left:5px}&.source{right:5px}}}&.react-flow__node-connectorGroup{.node-body{overflow:visible}.react-flow__handle.spec-handle{background-color:var(--handle-output-color);border-color:var(--handle-output-border-color);&.is-active,&:hover{animation:pulseNeonSource 1.2s ease-in-out infinite;border-color:#fff}}.react-flow__handle.status-handle{background-color:var(--handle-input-color);border-color:var(--handle-input-border-color);&.is-active,&:hover{animation:pulseNeonTarget 1.2s ease-in-out infinite;border-color:#fff}}.react-flow__handle.connector-hidden-handle{opacity:0;pointer-events:none;&.react-flow__handle-left{left:0;right:auto}&.react-flow__handle-right{left:auto;right:0}&.is-armed{opacity:1;pointer-events:all}}.node-body.connector-group-body{position:relative;background:transparent;outline:none;border-radius:0;&:before{content:"";position:absolute;top:var(--connector-group-header-height);bottom:0;width:12px;border:2px solid hsl(var(--muted-foreground));pointer-events:none}}.node-body.connector-group-body-faces-right:before{right:0;border-left:none;border-radius:0 var(--node-border-radius) var(--node-border-radius) 0}.node-body.connector-group-body-faces-left:before{left:0;border-right:none;border-radius:var(--node-border-radius) 0 0 var(--node-border-radius)}&.selected .node-body.connector-group-body:before{border-color:#8b5cf6}}&.react-flow__node-pipelineGroup{z-index:-1!important;box-shadow:none;&.selected .pipeline-group{border-color:hsl(var(--sidebar-primary)/.7)}.pipeline-group{width:100%;height:100%;border-radius:var(--node-border-radius);border:1px solid hsl(var(--muted-foreground)/.45);background:hsl(var(--muted-foreground)/.12);display:flex;flex-direction:column}.pipeline-group-header{display:flex;align-items:center;gap:6px;padding:0 10px;border-bottom:1px solid hsl(var(--muted-foreground)/.3);border-radius:var(--node-border-radius) var(--node-border-radius) 0 0;background:hsl(var(--muted-foreground)/.1)}.pipeline-group-empty{margin:auto;padding:0 16px;font-size:10px;text-align:center;color:hsl(var(--muted-foreground))}.pipeline-group-resize-line{border-color:hsl(var(--sidebar-primary)/.7)}.pipeline-group-resize-handle{width:8px;height:8px;border-radius:2px;border:1px solid hsl(var(--background));background:hsl(var(--sidebar-primary))}.react-flow__handle.pipeline-group-handle{width:9px;height:9px;border:2px solid hsl(var(--muted-foreground)/.7);background:hsl(var(--background));cursor:crosshair;animation:none;&:hover{animation:none;border-color:hsl(var(--muted-foreground)/.7)}}}.node-body{background:var(--bg-color);outline:2px solid hsl(var(--muted-foreground)/.3);border-radius:var(--node-border-radius);overflow:hidden;display:flex;flex-direction:column;flex-grow:1;height:100%;width:100%}&.selected{.node-body{outline-color:#8b5cf6}}&:focus{outline:none}}.react-flow__edge.react-flow__edge-customEdge{pointer-events:none}.react-flow__edge.pipeline-step-edge{pointer-events:none;.react-flow__edge-path{stroke:hsl(var(--muted-foreground)/.85);stroke-width:1.5;stroke-dasharray:5 4}}.pipeline-edge-unlink{position:absolute;top:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:1px solid hsl(var(--muted-foreground)/.6);border-radius:100%;background:hsl(var(--background));color:hsl(var(--muted-foreground));pointer-events:all;cursor:pointer;svg{width:10px;height:10px}&:hover{color:#f87171;border-color:#f87171}}.transformer-wrapper{z-index:10000;position:absolute;.transformer{overflow:hidden;position:relative;display:flex;padding:2px;border-radius:100%;width:15px;height:15px;background-color:var(--text-color);pointer-events:all;cursor:pointer;&:before{content:"";height:100%;width:100%;background:conic-gradient(from -160deg at 50% 50%,#e92a67 0deg,#a853ba 120deg,#2a8af6 240deg,#e92a67 1turn);position:absolute;top:0;left:0}.inner{background:var(--bg-color);border-radius:100%;display:flex;justify-content:center;align-items:center;height:100%;width:100%;z-index:1;svg{width:9px;height:9px}}}}.edge-menu-point{--edge-point-color:color-mix(in srgb,var(--edge-input-color),var(--edge-output-color));position:absolute;top:0;left:0;z-index:10000;display:flex;width:10px;height:10px;padding:2px;border:none;border-radius:100%;background:var(--edge-point-color);pointer-events:all;cursor:pointer;&:after{content:"";width:100%;height:100%;border-radius:100%;background:var(--edge-point-color);transition:background-color .15s ease}&.is-active:after,&:hover:after{background:hsl(var(--background))}}}.react-flow__edges{z-index:10000;.react-flow__edge .react-flow__edge-path{stroke:url(#edge-gradient);stroke-width:2;stroke-opacity:.75}.react-flow__edge .react-flow__edge-path.edge-flow-animated{stroke-dasharray:8 4;animation:edgeDashFlow .8s linear infinite}}.edge-inactive{transition:opacity .15s ease}.custom-editor.edges-focused .edge-inactive{opacity:.3}@keyframes edgeDashFlow{to{stroke-dashoffset:-24}}.react-flow__attribution{background:hsla(0,0%,78%,.2)}.react-flow__attribution a{color:#95679e}.rct-node-icon{display:none}.rct-title{font-size:14px}.rct-text{padding-top:2px;padding-bottom:2px}.rct-checkbox *,.rct-checkbox .lucide *{width:18px;height:18px}