.vue-flow{direction:ltr;height:100%;overflow:hidden;position:relative;width:100%;z-index:0}.vue-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{pointer-events:none;transform-origin:0 0;z-index:2}.vue-flow__viewport{overflow:clip;z-index:4}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{overflow:visible;pointer-events:none}.vue-flow__connection-path,.vue-flow__edge-path{fill:none;stroke:#b1b1b7;stroke-width:1}.vue-flow__edge{cursor:pointer;pointer-events:visibleStroke}.vue-flow__edge.animated path{animation:dashdraw .5s linear infinite;stroke-dasharray:5}.vue-flow__edge.animated path.vue-flow__edge-interaction{animation:none;stroke-dasharray:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-textbg{fill:#fff}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{animation:dashdraw .5s linear infinite;stroke-dasharray:5}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.vue-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{min-height:5px;min-width:5px;pointer-events:none;position:absolute}.vue-flow__handle.connectable{cursor:crosshair;pointer-events:all}.vue-flow__handle-bottom{bottom:0;left:50%;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.vue-flow__handle-right{right:0;top:50%;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{margin:15px;position:absolute;z-index:5}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}body{margin:0;padding:0}:root{--handle-purple-main:#8b5cf6;--handle-purple-dark:#7c3aed;--handle-purple-light:#a78bfa;--handle-purple-bg:#f5f3ff;--handle-purple-glow:rgba(139,92,246,.3);--handle-green:#10b981;--handle-green-dark:#059669;--handle-green-glow:rgba(16,185,129,.3);--handle-red:#ef4444;--handle-red-dark:#dc2626;--handle-red-glow:rgba(239,68,68,.3)}.vue-flow .vue-flow__handle{background-color:#fff!important;border-radius:50%!important;cursor:crosshair!important;transition:all .2s ease!important;z-index:10!important}.vue-flow .vue-flow__handle,.vue-flow .vue-flow__handle:hover{border:2px solid var(--handle-purple-main)!important;height:12px!important;width:12px!important}.vue-flow .vue-flow__handle:hover{background-color:var(--handle-purple-bg)!important;border-color:var(--handle-purple-dark)!important;box-shadow:0 0 0 3px var(--handle-purple-glow)!important}.vue-flow .vue-flow__handle.valid{animation:pulse-handle 1.5s ease-in-out infinite!important;background-color:var(--handle-purple-light)!important;border-color:var(--handle-purple-dark)!important;border-width:2px!important;box-shadow:0 0 0 3px var(--handle-purple-glow),0 4px 8px #0003!important;height:12px!important;width:12px!important}.vue-flow__handle-top{top:-8px!important}.vue-flow__handle-bottom{bottom:-8px!important}.vue-flow__handle-left{left:-8px!important}.vue-flow__handle-right{right:-8px!important}
