.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{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{cursor:pointer;pointer-events:visibleStroke}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation: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-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{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.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}}:root{--vf-node-bg:#fff;--vf-node-text:#222;--vf-connection-path:#b1b1b7;--vf-handle:#555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{background-color:var(--vf-node-bg);border-color:var(--vf-node-color);border-radius:3px;border-style:solid;border-width:1px;color:var(--vf-node-text);font-size:12px;padding:10px;text-align:center;width:150px}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid #555;outline:none}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color:var(--vf-node-color,#0041d0);--vf-handle:var(--vf-node-color,#0041d0);--vf-box-shadow:var(--vf-node-color,#0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color,#0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{border:1px solid var(--vf-node-color,#0041d0);outline:none}.vue-flow__node-default{--vf-handle:var(--vf-node-color,#1a192b);--vf-box-shadow:var(--vf-node-color,#1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color,#1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{border:1px solid var(--vf-node-color,#1a192b);outline:none}.vue-flow__node-output{--vf-handle:var(--vf-node-color,#ff0072);--vf-box-shadow:var(--vf-node-color,#ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color,#ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid var(--vf-node-color,#ff0072);outline:none}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{background:var(--vf-handle);border:1px solid #fff;border-radius:100%;height:6px;width:6px}:root{--canvas-node-max-size:4000px;--canvas-bg-primary:#000;--canvas-bg-secondary:#1a1a1c;--canvas-bg-tertiary:#1a1a1c;--canvas-bg-elevated:#1f1f1f;--canvas-border-subtle:#2a2a2a;--canvas-border-default:#3a3a3a;--canvas-border-active:#4a4a4a;--canvas-text-primary:#fff;--canvas-text-secondary:#a0a0a0;--canvas-text-tertiary:#666;--canvas-text-placeholder:#9ca3af;--canvas-accent-primary:#6e6e6e;--canvas-accent-success:#22c55e;--canvas-accent-warning:#f59e0b;--canvas-accent-error:#ef4444;--canvas-accent-banana:#fbbf24;--canvas-edge-default:#3a3a3a;--canvas-edge-active:#fff;--canvas-edge-hover:#7a7a7a;--canvas-edge-card-active:#909090;--canvas-edge-success:#22c55e;--canvas-shadow-sm:0 1px 2px rgba(0,0,0,.3);--canvas-shadow-md:0 4px 6px rgba(0,0,0,.4);--canvas-shadow-lg:0 10px 15px rgba(0,0,0,.5);--canvas-shadow-glow:0 0 20px rgba(59,130,246,.3);--canvas-radius-sm:6px;--canvas-radius-md:10px;--canvas-radius-lg:16px;--canvas-radius-xl:20px;--card:#1a1a1c;--popover-foreground:#ccc;--accent:#404040;--muted-foreground:#7a7a7a;--xy-selection-background-color-default:rgba(0,89,220,.08);--xy-selection-background-color:#ffffff20}:root.canvas-theme-light{--canvas-bg-primary:#f6f7f9;--canvas-bg-secondary:#fafaf9;--canvas-bg-tertiary:#fff;--canvas-bg-elevated:#fff;--canvas-border-subtle:#e7e5e4;--canvas-border-default:#d6d3d1;--canvas-border-active:#a8a29e;--canvas-text-primary:#1c1917;--canvas-text-secondary:#57534e;--canvas-text-tertiary:#78716c;--canvas-text-placeholder:#a8a29e;--canvas-accent-primary:#3b82f6;--canvas-accent-success:#22c55e;--canvas-accent-warning:#f59e0b;--canvas-accent-error:#ef4444;--canvas-accent-banana:#f59e0b;--canvas-edge-default:#a8a29e;--canvas-edge-active:#3b82f6;--canvas-edge-hover:#78716c;--canvas-edge-success:#22c55e;--canvas-shadow-sm:0 1px 2px rgba(0,0,0,.06);--canvas-shadow-md:0 4px 6px rgba(0,0,0,.08);--canvas-shadow-lg:0 10px 15px rgba(0,0,0,.1);--canvas-shadow-glow:0 0 20px rgba(59,130,246,.15)}.canvas-container{height:100vh;overflow:hidden;position:relative;width:100%}.canvas-container,.canvas-container .vue-flow,.canvas-container .vue-flow__background{background:var(--canvas-bg-primary)}.canvas-board.pan-mode .vue-flow__pane{cursor:grab!important}.canvas-board.panning .vue-flow__pane{cursor:grabbing!important}.canvas-container .vue-flow__background pattern circle{fill:var(--canvas-border-subtle)}.canvas-toolbar{display:flex;flex-direction:column;gap:8px;left:12px;position:absolute;top:50%;transform:translateY(-50%);z-index:10}.canvas-toolbar-btn{align-items:center;background:transparent;border:none;border-radius:var(--canvas-radius-md);color:var(--canvas-text-secondary);cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;padding:9px 0;transition:all .2s ease;width:40px}.canvas-toolbar-btn:hover{background:var(--canvas-bg-elevated);color:var(--canvas-text-primary)}.canvas-toolbar-btn.active{background:var(--canvas-accent-primary);color:#fff}.canvas-toolbar-btn.primary{background:#fff;border-radius:50%;box-shadow:var(--canvas-shadow-md);color:var(--canvas-bg-primary);font-size:24px;font-weight:300;height:44px;width:44px}.canvas-toolbar-btn.primary:hover{box-shadow:var(--canvas-shadow-lg);transform:scale(1.05)}.canvas-toolbar-divider{background:var(--canvas-border-subtle);height:1px;margin:4px auto;width:24px}.canvas-bottom-panel{background:var(--canvas-bg-secondary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-lg);bottom:24px;box-shadow:var(--canvas-shadow-lg);left:50%;max-width:800px;padding:16px;position:absolute;transform:translate(-50%);width:90%;z-index:10}.canvas-bottom-panel-hint{color:var(--canvas-text-tertiary);font-size:12px;margin-bottom:12px}.canvas-input-wrapper{background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-md);margin-bottom:12px;padding:12px 16px}.canvas-input-wrapper:focus-within{border-color:var(--canvas-accent-primary)}.canvas-input{background:transparent;border:none;color:var(--canvas-text-primary);font-size:14px;max-height:150px;min-height:60px;outline:none;resize:none;width:100%}.canvas-input::-moz-placeholder{color:var(--canvas-text-placeholder)}.canvas-input::placeholder{color:var(--canvas-text-placeholder)}.canvas-bottom-controls{align-items:center;display:flex;gap:12px;justify-content:space-between}.canvas-controls-left{align-items:center;display:flex;gap:8px}.canvas-controls-right{align-items:center;display:flex;gap:12px}.canvas-select{background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);color:var(--canvas-text-primary);cursor:pointer;font-size:13px;outline:none;padding:8px 12px}.canvas-select:hover{border-color:var(--canvas-border-active)}.canvas-generate-btn{align-items:center;background:var(--canvas-accent-primary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.canvas-generate-btn:hover{box-shadow:var(--canvas-shadow-glow);transform:scale(1.05)}.canvas-generate-btn:disabled{background:var(--canvas-border-default);box-shadow:none;cursor:not-allowed;transform:none}.canvas-empty-state{left:50%;min-width:480px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);transition:left .25s ease,transform .25s ease;z-index:5}.canvas-container.ai-panel-open .canvas-empty-state{left:calc(50% - var(--ai-panel-offset, 210px))}.canvas-empty-icon{color:var(--canvas-accent-primary);font-size:24px;margin-bottom:8px}.canvas-empty-title{color:var(--canvas-text-secondary);font-size:14px;margin-bottom:24px}.canvas-empty-title strong{color:var(--canvas-text-primary)}.canvas-quick-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:16px}.canvas-quick-btn{align-items:center;background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);color:var(--canvas-text-secondary);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:10px 16px;transition:all .2s ease}.canvas-quick-btn:hover{background:var(--canvas-bg-elevated);border-color:var(--canvas-border-active);color:var(--canvas-text-primary)}.canvas-quick-btn .icon{font-size:16px}.node-selector{backdrop-filter:blur(20px);background:radial-gradient(73% 73% at 117% 86%,rgba(2,219,163,.13) 0,transparent 100%),#1a1a1c;border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 12px 48px #00000080;padding:12px 10px;position:fixed;width:300px;z-index:1000}.node-selector .node-panel-title{color:#ffffff80;font-size:12px;letter-spacing:.5px;margin-bottom:8px;padding:0 12px;text-transform:uppercase}.node-selector .node-panel-divider{background:#ffffff1a;height:1px;margin:4px auto 12px}.node-selector .node-list{display:flex;flex-direction:column}.node-selector .node-item{align-items:center;border-radius:16px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .15s ease}.node-selector .node-item:hover{background:#ffffff0d}.node-selector .node-item.selected{background:#3b82f61a}.node-selector .node-icon-container{background:#ffffff0f;border-radius:10px;flex-shrink:0;height:40px;width:40px}.node-selector .node-icon,.node-selector .node-icon-container{align-items:center;display:flex;font-size:16px;font-weight:600;justify-content:center}.node-selector .node-icon{color:#ffffffe6;height:20px;width:20px}.node-selector .node-item.selected .node-icon-container{background:#3b82f633}.node-selector .node-info{display:flex;flex:1;flex-direction:column;justify-content:center;min-width:0}.node-selector .node-header{align-items:center;display:flex;gap:8px;margin-bottom:2px}.node-selector .node-label{color:#ffffffe6;font-size:14px;font-weight:500}.node-selector .node-desc{color:#fff6;display:-webkit-box;font-size:12px;line-height:1.4;max-height:0;opacity:0;overflow:hidden;text-overflow:ellipsis;transition:max-height .4s ease-out,opacity .5s ease-out;-webkit-line-clamp:1;-webkit-box-orient:vertical}.node-selector .node-item:hover .node-desc{max-height:80px;opacity:1}.canvas-node{background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-md);box-shadow:var(--canvas-shadow-md);max-height:var(--canvas-node-max-size,4000px);max-width:var(--canvas-node-max-size,4000px);min-width:150px;transition:border-color .2s ease,box-shadow .2s ease}.canvas-node:hover{border-color:var(--canvas-border-active)}.canvas-node.selected{border-color:var(--canvas-accent-primary);box-shadow:var(--canvas-shadow-glow)}.canvas-node-header{align-items:center;border-bottom:1px solid var(--canvas-border-subtle);display:flex;justify-content:space-between;padding:10px 14px}.canvas-node-title{align-items:center;color:var(--canvas-text-primary);display:flex;font-size:13px;font-weight:500;gap:8px}.canvas-node-title .icon{font-size:16px}.canvas-node-actions{align-items:center;display:flex;gap:4px}.canvas-node-action-btn{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--canvas-text-tertiary);cursor:pointer;display:flex;font-size:14px;height:24px;justify-content:center;transition:all .15s ease;width:24px}.canvas-node-action-btn:hover{background:var(--canvas-bg-elevated);color:var(--canvas-text-primary)}.canvas-node-content{padding:14px}.canvas-node-footer{align-items:center;border-top:1px solid var(--canvas-border-subtle);display:flex;justify-content:space-between;padding:10px 14px}.canvas-node-input{background:var(--canvas-bg-secondary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);color:var(--canvas-text-primary);font-size:13px;min-height:80px;outline:none;padding:10px 12px;resize:none;width:100%}.canvas-node-input:focus{border-color:var(--canvas-accent-primary)}.canvas-node-input::-moz-placeholder{color:var(--canvas-text-placeholder)}.canvas-node-input::placeholder{color:var(--canvas-text-placeholder)}.canvas-node-preview{align-items:center;background:var(--canvas-bg-secondary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);display:flex;justify-content:center;min-height:120px;overflow:hidden}.canvas-node-preview img{max-height:200px;max-width:100%;-o-object-fit:contain;object-fit:contain}.canvas-node-preview-empty{color:var(--canvas-text-placeholder);font-size:13px;padding:20px;text-align:center}.canvas-node.processing{border-color:var(--canvas-accent-warning)}.canvas-node.success{border-color:var(--canvas-accent-success)}.canvas-node.error{border-color:var(--canvas-accent-error)}.canvas-node-btn{align-items:center;background:var(--canvas-accent-primary);border:none;border-radius:var(--canvas-radius-sm);color:#fff;cursor:pointer;display:flex;font-size:13px;gap:6px;padding:8px 16px;transition:all .2s ease}.canvas-node-btn:hover{filter:brightness(1.1)}.canvas-node-btn:disabled{background:var(--canvas-border-default);cursor:not-allowed}.canvas-node-btn.secondary{background:var(--canvas-bg-elevated);color:var(--canvas-text-secondary)}.canvas-node-btn.secondary:hover{color:var(--canvas-text-primary)}.vue-flow__node{background:transparent!important;border:none!important;box-shadow:none!important;outline:none!important}.vue-flow__node,.vue-flow__node>div{overflow:visible!important}.vue-flow__node.vue-flow__node-group,.vue-flow__node[data-type='"group"']{z-index:-1000}.vue-flow__node:not([data-type='"group"']):not(.vue-flow__node-group){z-index:1}.vue-flow__node.selected{border:none!important;box-shadow:none!important;outline:none!important}.vue-flow__node.selected>div:first-child{outline:none!important}.vue-flow__node .vue-flow__node-default{background:transparent!important;border:none!important;box-shadow:none!important;outline:none!important}.vue-flow__selection{background:#3b82f61a!important;border:1px dashed var(--canvas-accent-primary)!important}.vue-flow__node.selectable.selected{box-shadow:none!important;outline:none!important}.vue-flow__handle{background:var(--canvas-bg-secondary);border:2px solid var(--canvas-border-default);border-radius:50%;height:10px;transition:all .2s ease;width:10px}.vue-flow__handle:hover{transform:scale(1.2)}.vue-flow__handle.connecting,.vue-flow__handle:hover{background:var(--canvas-accent-primary);border-color:var(--canvas-accent-primary)}.vue-flow__handle.connecting{box-shadow:0 0 0 4px #3b82f633}.vue-flow__handle-left{left:0}.vue-flow__handle-right{right:0}.vue-flow__edge-path{stroke:#5a5a5a;stroke-width:2;fill:none}.vue-flow__edge.adjacent-to-selected .vue-flow__edge-path,.vue-flow__edge:hover .vue-flow__edge-path{stroke:var(--canvas-edge-hover,#7a7a7a);stroke-width:3}.vue-flow__edge.selected .vue-flow__edge-path{stroke:var(--canvas-accent-primary,#3b82f6);stroke-width:3}.vue-flow__edge-smoothstep{pointer-events:visibleStroke}.vue-flow__edge-interaction{stroke-width:20;stroke:transparent;fill:none}.vue-flow__edge.animated .vue-flow__edge-path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}@keyframes dashdraw{0%{stroke-dashoffset:10}to{stroke-dashoffset:0}}.canvas-zoom-controls{align-items:center;background:var(--canvas-bg-secondary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-md);bottom:24px;display:flex;gap:8px;left:24px;padding:6px 12px;pointer-events:auto;position:absolute;z-index:100}.canvas-zoom-btn{align-items:center;background:transparent;border:none;border-radius:var(--canvas-radius-sm);color:var(--canvas-text-secondary);cursor:pointer;display:flex;font-size:16px;height:28px;justify-content:center;transition:all .15s ease;width:28px}.canvas-zoom-btn:hover{background:var(--canvas-bg-elevated);color:var(--canvas-text-primary)}.canvas-zoom-value{color:var(--canvas-text-secondary);cursor:pointer;font-size:12px;min-width:40px;text-align:center;transition:color .15s ease}.canvas-zoom-value:hover{color:var(--canvas-text-primary)}.canvas-zoom-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--canvas-border-default,#3a3a3a);border-radius:2px;cursor:pointer;height:4px;margin:0 4px;outline:none;pointer-events:auto;position:relative;touch-action:none;width:100px;z-index:1}.canvas-zoom-slider::-webkit-slider-runnable-track{background:var(--canvas-border-default,#3a3a3a);border-radius:2px;height:4px;width:100%}.canvas-zoom-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border-radius:50%;box-shadow:0 1px 4px #0000004d;cursor:grab;height:14px;margin-top:-5px;-webkit-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease;width:14px}.canvas-zoom-slider::-webkit-slider-thumb:hover{box-shadow:0 2px 6px #0006;transform:scale(1.15)}.canvas-zoom-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.canvas-zoom-slider::-moz-range-track{background:var(--canvas-border-default,#3a3a3a);border-radius:2px;height:4px;width:100%}.canvas-zoom-slider::-moz-range-thumb{background:#fff;border:none;border-radius:50%;box-shadow:0 1px 4px #0000004d;cursor:grab;height:14px;-moz-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease;width:14px}.canvas-zoom-slider::-moz-range-thumb:hover{box-shadow:0 2px 6px #0006;transform:scale(1.15)}.canvas-zoom-slider::-moz-range-thumb:active{cursor:grabbing}.canvas-help-btn{align-items:center;backdrop-filter:blur(10px);background:#282828e6;border:1px solid hsla(0,0%,100%,.1);border-radius:50%;bottom:24px;box-shadow:0 4px 12px #0006;color:#ffffffb3;cursor:pointer;display:flex;font-size:16px;font-weight:500;height:36px;justify-content:center;position:absolute;right:24px;transition:all .2s ease;width:36px;z-index:10}.canvas-help-btn:hover{background:#3c3c3cf2;border-color:#fff3;color:#fff;transform:scale(1.05)}.canvas-context-menu{background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-md);box-shadow:var(--canvas-shadow-lg);min-width:180px;padding:8px;position:fixed;z-index:1000}.canvas-context-menu-title{color:var(--canvas-text-secondary);font-size:11px;font-weight:500;letter-spacing:.5px;padding:6px 10px;text-transform:uppercase}.canvas-context-menu-item{align-items:center;border-radius:var(--canvas-radius-sm);color:var(--canvas-text-primary);cursor:pointer;display:flex;font-size:13px;gap:10px;height:44px;padding:8px 10px;transition:all .15s ease}.canvas-context-menu-item:hover{background:#ffffff0f}.canvas-context-menu-item .icon{font-size:16px;text-align:center;width:20px}.canvas-context-menu-divider{background:var(--canvas-border-subtle);height:1px;margin:6px 0}.canvas-points-display{align-items:center;background:var(--canvas-bg-tertiary);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);display:flex;font-size:12px;gap:6px;padding:6px 10px}.canvas-points-cost{color:var(--canvas-accent-banana);font-weight:500}.canvas-points-remaining{color:var(--canvas-text-tertiary)}.canvas-loading{align-items:center;color:var(--canvas-text-secondary);display:flex;font-size:13px;gap:8px;justify-content:center}.canvas-loading-spinner{animation:spin .8s linear infinite;border:2px solid var(--canvas-border-default);border-radius:50%;border-top-color:var(--canvas-accent-primary);height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.canvas-tooltip{background:var(--canvas-bg-elevated);border:1px solid var(--canvas-border-subtle);border-radius:var(--canvas-radius-sm);box-shadow:var(--canvas-shadow-md);color:var(--canvas-text-primary);font-size:12px;padding:6px 10px;pointer-events:none;position:absolute;white-space:nowrap;z-index:1000}@media (max-width:768px){.canvas-bottom-panel{bottom:12px;padding:12px;width:95%}.canvas-toolbar{left:8px}.canvas-zoom-controls{display:none}.canvas-quick-actions{flex-direction:column}.canvas-quick-btn{justify-content:center;width:100%}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scale-in .2s ease-out}:root.canvas-theme-light .canvas-toolbar-btn{background:#ffffffe6;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #00000014;color:var(--canvas-text-secondary)}:root.canvas-theme-light .canvas-toolbar-btn:hover{background:#fff;border-color:#0000001f;box-shadow:0 2px 6px #0000001a;color:var(--canvas-text-primary)}:root.canvas-theme-light .canvas-toolbar-btn.primary{background:var(--canvas-text-primary);border:none;color:#fff}:root.canvas-theme-light .canvas-zoom-controls{background:#fffffff2;border-color:#00000014;box-shadow:0 2px 8px #00000014}:root.canvas-theme-light .canvas-zoom-btn{color:var(--canvas-text-secondary)}:root.canvas-theme-light .canvas-zoom-btn:hover{background:#0000000d;color:var(--canvas-text-primary)}:root.canvas-theme-light .canvas-zoom-value{color:var(--canvas-text-secondary)}:root.canvas-theme-light .canvas-zoom-slider{background:#0000001a}:root.canvas-theme-light .canvas-zoom-slider::-webkit-slider-runnable-track{background:#0000001a}:root.canvas-theme-light .canvas-zoom-slider::-webkit-slider-thumb{background:var(--canvas-text-primary);box-shadow:0 1px 4px #0003}:root.canvas-theme-light .canvas-zoom-slider::-moz-range-track{background:#0000001a}:root.canvas-theme-light .canvas-zoom-slider::-moz-range-thumb{background:var(--canvas-text-primary)}:root.canvas-theme-light .canvas-help-btn{background:#fffffff2;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px #00000014;color:var(--canvas-text-secondary)}:root.canvas-theme-light .canvas-help-btn:hover{background:#fff;border-color:#00000026;color:var(--canvas-text-primary)}:root.canvas-theme-light .canvas-node{background:#fff;border-color:#0000001a;box-shadow:0 2px 8px #0000000f}:root.canvas-theme-light .canvas-node:hover{border-color:#00000026;box-shadow:0 4px 12px #0000001a}:root.canvas-theme-light .canvas-node.selected{border-color:var(--canvas-accent-primary);box-shadow:0 0 0 2px #3b82f633,0 4px 12px #0000001a}:root.canvas-theme-light .canvas-node-header{border-bottom-color:#0000000f}:root.canvas-theme-light .canvas-node-footer{border-top-color:#0000000f}:root.canvas-theme-light .canvas-node-input{background:#00000005;border-color:#0000001a;color:var(--canvas-text-primary)}:root.canvas-theme-light .canvas-node-input:focus{background:#fff;border-color:var(--canvas-accent-primary)}:root.canvas-theme-light .canvas-context-menu{background:#fff;border-color:#0000001a;box-shadow:0 4px 16px #0000001f}:root.canvas-theme-light .canvas-context-menu-item:hover{background:#0000000a}:root.canvas-theme-light .node-selector{background:#fffffffa;border-color:#0000001a;box-shadow:0 8px 32px #0000001f}:root.canvas-theme-light .node-selector .node-panel-title{color:#00000080}:root.canvas-theme-light .node-selector .node-panel-divider{background:#0000000f}:root.canvas-theme-light .node-selector .node-icon-container,:root.canvas-theme-light .node-selector .node-item:hover{background:#0000000a}:root.canvas-theme-light .node-selector .node-icon{color:#0009}:root.canvas-theme-light .node-selector .node-label{color:#1c1917}:root.canvas-theme-light .node-selector .node-desc{color:#00000073}:root.canvas-theme-light .vue-flow__edge-path{stroke:#a8a29e}:root.canvas-theme-light .vue-flow__edge.adjacent-to-selected .vue-flow__edge-path,:root.canvas-theme-light .vue-flow__edge:hover .vue-flow__edge-path{stroke:var(--canvas-edge-hover,#78716c)}:root.canvas-theme-light .vue-flow__handle{background:#fff;border-color:#0003}:root.canvas-theme-light .vue-flow__handle:hover{background:var(--canvas-accent-primary);border-color:var(--canvas-accent-primary)}:root.canvas-theme-light .node-add-btn{background:#fffffff2;border:1px solid rgba(0,0,0,.15);box-shadow:0 2px 6px #00000014;color:#00000080}:root.canvas-theme-light .node-add-btn:hover{background:#fff;border-color:#00000040;box-shadow:0 3px 10px #0000001f;color:#000c}:root.canvas-theme-light .audio-node.selected .node-add-btn,:root.canvas-theme-light .canvas-node:hover .node-add-btn,:root.canvas-theme-light .image-gen-node.selected .node-add-btn,:root.canvas-theme-light .image-node.selected .node-add-btn,:root.canvas-theme-light .llm-node.selected .node-add-btn,:root.canvas-theme-light .node-wrapper:hover .node-add-btn,:root.canvas-theme-light .text-node-card-wrapper:hover .node-add-btn,:root.canvas-theme-light .text-node.selected .node-add-btn,:root.canvas-theme-light .video-gen-node.selected .node-add-btn,:root.canvas-theme-light .video-node.selected .node-add-btn{opacity:1}.vue-flow__node-rh-ai .ai-input-handle.handle-image{border-color:#22c55e!important}.vue-flow__node-rh-ai .ai-input-handle.handle-image:hover{background:#22c55e!important}.vue-flow__node-rh-ai .ai-input-handle.handle-text{border-color:#3b82f6!important}.vue-flow__node-rh-ai .ai-input-handle.handle-text:hover{background:#3b82f6!important}.vue-flow__node-rh-ai .ai-input-handle.handle-video{border-color:#f59e0b!important}.vue-flow__node-rh-ai .ai-input-handle.handle-video:hover{background:#f59e0b!important}.vue-flow__node-rh-ai .ai-output-handle{border-color:#7c5cfc!important}.vue-flow__node-rh-ai .ai-output-handle:hover{background:#7c5cfc!important}:root.canvas-theme-light .vue-flow__node-rh-ai .ai-app-card{background:#fffffff2;border-color:#0000001a}:root.canvas-theme-light .vue-flow__node-rh-ai .ai-app-title{color:#000000d9}:root.canvas-theme-light .vue-flow__node-rh-ai .ai-input-handle,:root.canvas-theme-light .vue-flow__node-rh-ai .ai-output-handle{background:#fffffff2!important}.canvas-board.is-read .grid-preview-node .grid-preview-grid,.canvas-board.is-read .quick-action,.canvas-board.is-read .text-node-action{pointer-events:none}.canvas-board.is-read .grid-preview-node .grid-preview-hint{display:none}.canvas-slider.ant-slider .ant-slider-handle:after{background-color:var(--rh-green);border-color:var(--rh-green);box-shadow:0 0 0 2px var(--rh-green)}.ce-toolbar-btn{transition-duration:2s;transition-property:all;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.toolbar-btn-spinner{animation:ce-toolbar-btn-spin .85s linear infinite;border:1.5px solid hsla(0,0%,100%,.18);border-radius:50%;border-top-color:#b9a8ff;display:inline-block;flex-shrink:0;height:12px;width:12px}.ce-toolbar-btn.icon-only .toolbar-btn-spinner,.toolbar-btn.icon-only .toolbar-btn-spinner{display:inline-block!important;height:14px;width:14px}@keyframes ce-toolbar-btn-spin{to{transform:rotate(1turn)}}.ce-popover-overlay{background:transparent;border:none;border-radius:16px;box-shadow:none!important;box-sizing:border-box;padding:0;z-index:999}.ce-popover-overlay *{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.ce-popover-overlay .ant-popover-arrow{display:none}.ce-popover-overlay .ant-popover-inner{background:radial-gradient(73% 73% at 117% 86%,rgba(2,219,163,.13) 0,transparent 100%),#1a1a1c;border:1px solid hsla(0,0%,100%,.1);border-radius:16px;box-shadow:0 4.8px 12px #0000001a;box-sizing:border-box;margin-left:9px;padding:24px 0 16px 16px!important}.ce-popover-overlay.assets-panel .ant-popover-inner{padding:0!important}.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}.glass-dropdown-overlay .ant-dropdown-menu{backdrop-filter:blur(12px);background:#1a1a1c;border:1px solid hsla(0,0%,100%,.1);border-radius:10px;box-shadow:0 10px 40px #00000080;max-height:400px;overflow-x:hidden;overflow-y:auto;padding:4px;width:400px}.glass-dropdown-overlay .ant-dropdown-menu .ant-dropdown-menu-item{border-radius:10px;line-height:normal;margin:0;padding:0}.glass-dropdown-overlay .ant-dropdown-menu .ant-dropdown-menu-item:hover{background:transparent}.glass-dropdown-overlay .ant-dropdown-menu::-webkit-scrollbar{width:6px}.glass-dropdown-overlay .ant-dropdown-menu::-webkit-scrollbar-track{background:transparent}.glass-dropdown-overlay .ant-dropdown-menu::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.glass-dropdown-overlay .ant-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#ffffff26}.glass-dropdown-trigger{align-items:center;background:transparent;border:none;border-radius:6px;color:inherit;cursor:pointer;display:inline-flex;font-size:14px;font-weight:400;gap:6px;height:auto;height:32px;justify-content:center;padding:4px 8px;transition:all .2s cubic-bezier(.25,.8,.25,1);white-space:nowrap}.glass-dropdown-trigger:focus-visible{outline:1px solid hsla(0,0%,100%,.1);outline-offset:2px}.glass-dropdown-trigger:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.glass-dropdown-trigger:hover:not(:disabled){background:#ffffff0d}.glass-dropdown-trigger__icon{font-size:16px}.glass-dropdown-trigger__image{flex-shrink:0;height:16px;width:16px}.glass-dropdown-trigger__label{flex:1;line-height:1}.glass-dropdown-trigger__label--placeholder{color:#ffffff80}.glass-dropdown-trigger__icon{font-size:8px}.glass-dropdown-trigger__arrow{flex-shrink:0;height:12px;width:12px}.glass-dropdown-item{align-items:center;background:transparent;border-radius:10px;color:#ccc;cursor:pointer;display:flex;gap:8px;height:52px;padding:8px;position:relative;transition:all .2s cubic-bezier(.25,.8,.25,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.glass-dropdown-item:hover:not(.glass-dropdown-item--disabled){background:#ffffff0d}.glass-dropdown-item.glass-dropdown-item--selected{background:#2b2b2d}.glass-dropdown-item.glass-dropdown-item--disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.glass-dropdown-item.glass-dropdown-item--compact .glass-dropdown-item__content{justify-content:center}.glass-dropdown-item.glass-dropdown-item--compact .glass-dropdown-item__title{transform:none;transition:none}.glass-dropdown-item__icon{align-items:center;aspect-ratio:1;background:#ffffff0d;border-radius:6px;display:flex;flex-shrink:0;height:100%;justify-content:center;transition:all .2s cubic-bezier(.25,.8,.25,1)}.glass-dropdown-item__icon span{font-size:18px}.glass-dropdown-item__icon img,.glass-dropdown-item__icon svg{flex-shrink:0;height:20px;width:20px}.glass-dropdown-item__content{display:flex;flex:1;flex-direction:column;height:100%;justify-content:space-between;overflow:hidden}.glass-dropdown-item__title{align-items:center;color:var(--popover-foreground,#ccc);display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:space-between;line-height:1;transition:transform .2s cubic-bezier(.25,.8,.25,1);width:100%}.glass-dropdown-item__title-main{align-items:center;display:flex;flex:1;gap:8px;min-width:0}.glass-dropdown-item__label{color:#f5f5f7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-dropdown-item__time{align-items:center;display:flex;flex-shrink:0;gap:4px}.glass-dropdown-item__time span{background:#ffffff14;border-radius:4px;color:#9ca3af;font-size:12px;padding:2px 6px;white-space:nowrap}.glass-dropdown-item__tag{background:#4ade800d;border:1px solid rgba(74,222,128,.2);border-radius:4px;color:#4ade80;flex-shrink:0;font-size:10px;font-weight:600;padding:2px 6px;white-space:nowrap}.glass-dropdown-item__recovery{background:#ffffff14;border-radius:999px;color:#9ca3af;flex-shrink:0;font-size:12px;font-weight:400;padding:4px 8px;white-space:nowrap}.glass-dropdown-item__description{color:#9a9a9e;font-size:12px;line-height:1;margin:0;opacity:0;overflow:hidden;padding:0;text-overflow:ellipsis;transition:opacity .2s cubic-bezier(.25,.8,.25,1);white-space:nowrap}.glass-dropdown-item--selected .glass-dropdown-item__description,.glass-dropdown-item:hover .glass-dropdown-item__description{opacity:1}.glass-dropdown-item__arrow{color:#9a9a9e}.glass-dropdown-item:not(.glass-dropdown-item--selected):not(.glass-dropdown-item--compact) .glass-dropdown-item__title{transform:translateY(10px)}.glass-dropdown-item:not(.glass-dropdown-item--compact).glass-dropdown-item--selected .glass-dropdown-item__title,.glass-dropdown-item:not(.glass-dropdown-item--compact):hover .glass-dropdown-item__title{transform:translateY(0)}.llm-token-billing-trigger[data-v-47bc6c6d]{align-items:center;background:transparent;border:none;color:#e6eaee;cursor:pointer;display:inline-flex;gap:6px;padding:0}.llm-token-billing-trigger__icon[data-v-47bc6c6d]{color:#9da2a8;flex-shrink:0;height:14px;width:14px}.llm-token-billing-trigger__text[data-v-47bc6c6d]{color:#e6eaee;font-size:14px;font-weight:500;line-height:14px;white-space:nowrap}.llm-token-billing-popover.ant-popover .ant-popover-inner{background:#2b2d31;border:1px solid hsla(0,0%,100%,.08);border-radius:12px;box-shadow:0 12px 32px #0000006b;padding:14px}.llm-token-billing-popover.ant-popover .ant-popover-inner-content{color:#9499a1}.llm-token-billing-popover.ant-popover .ant-popover-arrow:after,.llm-token-billing-popover.ant-popover .ant-popover-arrow:before{background:#2b2d31}.llm-token-billing-popover__content{color:#9499a1;width:320px}.llm-token-billing-popover__unit{color:#7f858c;font-size:12px;line-height:16px;margin-bottom:12px}.llm-token-billing-popover__grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.llm-token-billing-popover__panel{background:#ffffff0b;border:1px solid hsla(0,0%,100%,.08);border-radius:8px;display:flex;flex-direction:column;gap:10px;min-height:108px;padding:10px 12px}.llm-token-billing-popover__head{color:#9da2a8;font-size:12px;font-weight:500;line-height:18px}.llm-token-billing-popover__tier{display:flex;flex:1;flex-direction:column;gap:8px;justify-content:space-between}.llm-token-billing-popover__tier+.llm-token-billing-popover__tier{border-top:1px solid hsla(0,0%,100%,.06);padding-top:8px}.llm-token-billing-popover__meta{align-items:center;display:flex;gap:8px;justify-content:space-between}.llm-token-billing-popover__range{color:#6d7175;font-size:12px;line-height:16px}.llm-token-billing-popover__original{color:#7f858c;font-size:12px;line-height:16px;text-decoration:line-through;white-space:nowrap}.llm-token-billing-popover__effective{color:#e6eaee;font-size:18px;font-weight:700;line-height:1.2;text-align:right;white-space:nowrap}.llm-token-billing-popover__effective.is-discount{color:#f4c95d}:root.canvas-theme-light .llm-token-billing-trigger,:root.canvas-theme-light .llm-token-billing-trigger__text{color:#1c1917}:root.canvas-theme-light .llm-token-billing-trigger__icon{color:#6d7175}.canvas-toast[data-v-0b5f1a0b]{align-items:center;backdrop-filter:blur(16px);background:#1e1e22f2;border:1px solid hsla(0,0%,100%,.1);border-radius:12px;box-shadow:0 12px 40px #00000080,inset 0 0 0 1px #ffffff0d;display:flex;gap:12px;left:50%;opacity:0;padding:14px 24px;pointer-events:none;position:fixed;top:80px;transform:translate(-50%) translateY(-20px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100000}.canvas-toast.is-visible[data-v-0b5f1a0b]{opacity:1;transform:translate(-50%) translateY(0)}.canvas-toast.is-leaving[data-v-0b5f1a0b]{opacity:0;transform:translate(-50%) translateY(-20px)}.toast-icon[data-v-0b5f1a0b]{align-items:center;border-radius:50%;display:flex;font-size:14px;font-weight:600;height:24px;justify-content:center;width:24px}.toast-success .toast-icon[data-v-0b5f1a0b]{background:#22c55e33;color:#22c55e}.toast-success[data-v-0b5f1a0b]{border-color:#22c55e4d}.toast-error .toast-icon[data-v-0b5f1a0b]{background:#ef444433;color:#ef4444}.toast-error[data-v-0b5f1a0b]{border-color:#ef44444d}.toast-info .toast-icon[data-v-0b5f1a0b]{background:#3b82f633;color:#3b82f6}.toast-info[data-v-0b5f1a0b]{border-color:#3b82f64d}.toast-warning .toast-icon[data-v-0b5f1a0b]{background:#eab30833;color:#eab308}.toast-warning[data-v-0b5f1a0b]{border-color:#eab3084d}.toast-message[data-v-0b5f1a0b]{color:#fff;font-size:14px;font-weight:500;white-space:nowrap}:root.canvas-theme-light .canvas-toast{background:#fffffff2;border-color:#0000001a;box-shadow:0 12px 40px #00000026,inset 0 0 0 1px #0000000d}:root.canvas-theme-light .toast-message{color:#1c1917}:root.canvas-theme-light .toast-success{border-color:#22c55e4d}:root.canvas-theme-light .toast-success .toast-icon{background:#22c55e26;color:#16a34a}:root.canvas-theme-light .toast-error{border-color:#ef44444d}:root.canvas-theme-light .toast-error .toast-icon{background:#ef444426;color:#dc2626}:root.canvas-theme-light .toast-info{border-color:#3b82f64d}:root.canvas-theme-light .toast-info .toast-icon{background:#3b82f626;color:#2563eb}:root.canvas-theme-light .toast-warning{border-color:#eab3084d}:root.canvas-theme-light .toast-warning .toast-icon{background:#eab30826;color:#ca8a04}
