.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;touch-action:none}.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{color-scheme:dark;--surface-canvas: #111214;--surface-node: #171717;--surface-panel: #262626;--surface-raised: #303030;--surface-hover: #383838;--surface-active: #404040;--border-subtle: rgba(255, 255, 255, .08);--border-default: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .2);--accent: #5b8cff;--accent-hover: #75a0ff;--accent-soft: rgba(91, 140, 255, .18);--danger: #ff8585;--danger-soft: rgba(255, 94, 94, .12);--radius-control: 6px;--radius-panel: 8px;--canvas-bg: var(--surface-canvas);--canvas-node-bg: var(--surface-node);--canvas-node-border: #363636;--canvas-edge: #747b87;--canvas-selected-outline: var(--accent);--canvas-handle-bg: rgba(29, 31, 36, .94);--canvas-handle-icon: rgba(255, 255, 255, .72);--canvas-button-bg: var(--surface-panel);--canvas-controls-border: var(--border-default);--canvas-controls-text: #f5f7fa;--canvas-controls-hover: var(--surface-hover);--canvas-controls-active: var(--surface-active);--canvas-connection-preview: rgba(91, 140, 255, .52);--text-fg-default: #f5f7fa;--text-fg-muted: #a4aab4;--text-fg-disabled: #6f7682;--bg-panel-background: var(--surface-panel);--border-border-default: var(--border-default);--border-border-muted: var(--border-subtle);--btn-invert-bg: var(--accent);--btn-invert-fg: #ffffff;--btn-ghost-hover: var(--surface-hover);--shadow-panel: 0 20px 56px rgba(0, 0, 0, .48), 0 4px 16px rgba(0, 0, 0, .28);--shadow-prompt: 0 12px 32px rgba(0, 0, 0, .34);--shadow-upload: 0 8px 24px rgba(0, 0, 0, .32), 0 1px 0 rgba(255, 255, 255, .04) inset;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 14px;--text-xl: 16px}.accountMenuRoot{position:relative}.accountButton.isOnline{color:#63d59a}.accountMenu{position:absolute;z-index:170;top:calc(100% + 8px);right:0;width:224px;padding:6px;color:#ededf2;background:#18181dfa;border:1px solid #3b3b44;border-radius:7px;box-shadow:0 12px 34px #0000006b}.accountMenu button{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:0 9px;color:#d8d8df;background:transparent;border:0;border-radius:5px;cursor:pointer}.accountMenu button:hover{color:#fff;background:#303038}.accountIdentity,.accountCloudState{display:grid;gap:4px;padding:8px 9px}.accountIdentity{border-bottom:1px solid #34343b}.accountIdentity strong,.accountIdentity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accountIdentity strong{font-size:var(--text-md)}.accountIdentity small,.accountCloudState small{color:#94949f;font-size:var(--text-xs)}.accountCloudState>span:first-child{display:flex;align-items:center;gap:6px;color:#b9bac3;font-size:var(--text-sm)}.quotaTrack{display:block;width:100%;height:3px;overflow:hidden;background:#3b3b43;border-radius:2px}.quotaTrack>span{display:block;height:100%;background:#56c88b}.authBackdrop{z-index:400}.authDialog{width:min(356px,calc(100vw - 24px));padding:14px;color:#ededf2;background:#1d1d22;border:1px solid #404048;border-radius:8px;box-shadow:0 24px 70px #0000008c}.authDialog header{display:flex;align-items:center;justify-content:space-between;height:30px;margin-bottom:10px}.authDialog header strong{font-size:var(--text-lg)}.authDialog>label{display:grid;gap:5px;margin-top:9px;color:#aaaab4;font-size:var(--text-xs)}.authFieldHint{margin-left:5px;color:#7f7f8a;font-size:inherit;font-weight:400}.authDialog input{width:100%;height:36px;min-width:0;padding:0 10px;color:#f4f4f7;background:#131317;border:1px solid #3b3b43;border-radius:5px;outline:none}.authDialog input:focus{border-color:#777783;box-shadow:0 0 0 2px #8b8b9724}.authCaptchaRow,.authCodeRow{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:7px}.authCaptcha,.authCodeRow button,.authSubmit{display:inline-flex;align-items:center;justify-content:center;height:36px;color:#e7e7ed;background:#303038;border:1px solid #474750;border-radius:5px;cursor:pointer}.authCaptcha{padding:0;overflow:hidden}.authCaptcha img{display:block;width:100%;height:34px;object-fit:cover}.authSubmit{width:100%;margin-top:12px;gap:7px;color:#161619;background:#f0f0f3;border-color:#f0f0f3;font-weight:650}.authDialog button:disabled{cursor:not-allowed;opacity:.55}.authMessage{min-height:16px;margin:8px 0 0;color:#e1b16f;font-size:var(--text-xs)}.cloudMigrationState,.cloudMigrationError,.syncConflictPanel{position:fixed;z-index:260;display:flex;align-items:center;gap:8px;color:#ededf2;background:#1c1c21fa;border:1px solid #44444d;border-radius:7px;box-shadow:0 12px 36px #0000006b}.cloudMigrationState,.cloudMigrationError{right:12px;bottom:12px;min-height:40px;max-width:min(440px,calc(100vw - 24px));padding:7px 10px;font-size:var(--text-sm)}.cloudMigrationState small{color:#9696a0}.cloudMigrationError span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloudMigrationError button,.syncConflictPanel button{flex:0 0 auto;min-height:30px;padding:0 10px;color:#dedee5;background:#33333b;border:1px solid #4a4a54;border-radius:5px;cursor:pointer}.syncConflictPanel{top:68px;left:50%;transform:translate(-50%);max-width:calc(100vw - 24px);min-height:46px;padding:7px 8px 7px 11px}.syncConflictPanel>div{display:grid;min-width:170px}.syncConflictPanel strong{font-size:var(--text-sm)}.syncConflictPanel span{color:#a3a3ad;font-size:var(--text-xs)}@media (max-width: 640px){.syncConflictPanel{right:8px;left:8px;transform:none;flex-wrap:wrap}.syncConflictPanel>div{flex:1}}.appLoading{display:grid;min-height:100dvh;place-items:center;background:var(--surface-canvas);color:var(--text-fg-muted);font:500 var(--text-sm)/1.4 Inter,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden;background:var(--canvas-bg);color:var(--text-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;font-size:var(--text-md);line-height:20px;letter-spacing:0}button,input,textarea,pre{font:inherit}button{cursor:pointer}button:disabled,input:disabled,textarea:disabled{cursor:not-allowed;opacity:.46}button,input,textarea{color:inherit}input,textarea{min-width:0}.canvasSelect{width:100%;min-width:0}.canvasSelectTrigger{display:flex;width:100%;height:30px;min-width:0;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node);padding:0 8px 0 9px;color:var(--text-fg-default);font-size:var(--text-sm);line-height:18px;text-align:left}.canvasSelectTrigger:hover:not(:disabled){border-color:var(--border-default);background:var(--surface-raised)}.canvasSelectTrigger[data-state=open]{border-color:var(--accent);background:var(--surface-raised);box-shadow:0 0 0 2px var(--accent-soft)}.canvasSelectValue{overflow:hidden;min-width:0;flex:1;text-overflow:ellipsis;white-space:nowrap}.canvasSelectChevron{flex:none;color:var(--text-fg-muted);transition:transform .14s ease,color .14s ease}.canvasSelectTrigger[data-state=open] .canvasSelectChevron{color:var(--text-fg-default);transform:rotate(180deg)}.canvasSelect-compact .canvasSelectTrigger{height:24px;gap:4px;padding:0 6px;font-size:var(--text-xs);line-height:16px}.canvasSelectMenu{position:fixed;z-index:70;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-panel);padding:4px;color:var(--text-fg-default);box-shadow:var(--shadow-panel);scrollbar-color:var(--surface-active) transparent;scrollbar-width:thin}.canvasSelectOption{display:flex;min-height:28px;align-items:center;justify-content:space-between;gap:10px;border-radius:calc(var(--radius-control) - 1px);padding:6px 8px;color:var(--text-fg-muted);font-size:var(--text-sm);line-height:18px;cursor:default}.canvasSelectOption>span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.canvasSelectOption[data-active=true]{background:var(--surface-hover);color:var(--text-fg-default)}.canvasSelectOption[aria-selected=true]{color:var(--text-fg-default);font-weight:500}.canvasSelectCheck{flex:none;color:var(--accent-hover);opacity:0}.canvasSelectCheck[data-visible=true]{opacity:1}.canvasShell{position:relative;width:100%;height:100%;min-height:100dvh;overflow:hidden;background:var(--canvas-bg)}.workspace{position:relative;width:100%;height:100%;overflow:hidden;background:var(--canvas-bg)}.workspace .react-flow{background:var(--canvas-bg)}.workspace .react-flow__pane,.workspace .react-flow__renderer,.workspace .react-flow__viewport{background:transparent}.workspace .react-flow__node{color:var(--text-fg-default);will-change:transform}.workspace .react-flow__node.selected,.workspace .react-flow__node:focus,.workspace .react-flow__node:focus-visible{outline:0;box-shadow:none}.workspace .react-flow__node.selected{z-index:50!important}.workspace .react-flow__node:focus-visible .canvasNode{border-color:#aec2ffd1;box-shadow:0 0 0 1px #698bff2e,0 0 18px #567ae633}.workspace .react-flow__node.dragging .canvasNode,.workspace .react-flow__node.dragging .libtvPort{transition:none}.workspace .react-flow__node.dragging .canvasNode{box-shadow:none}.workspace .react-flow__node.dragging .portHitArea{opacity:0}.workspace .react-flow__edge-path{stroke:var(--canvas-edge);stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.workspace .canvasEdgePath{transition:stroke .16s ease,opacity .16s ease}.workspace .canvasEdgePath.is-running{stroke:color-mix(in srgb,var(--canvas-edge) 42%,#ffffff)!important;opacity:.78}.workspace .canvasEdgePath.is-succeeded{stroke:#4ade80!important;opacity:.72}.workspace .canvasEdgePath.is-failed{stroke:#f87171!important;opacity:.86}.workspace .canvasEdgePath.is-skipped{stroke:#fbbf24!important;opacity:.74}.workspace .canvasEdgePulse{fill:none;stroke:#61b7ff;stroke-width:3;stroke-linecap:round;stroke-dasharray:.075 .925;vector-effect:non-scaling-stroke;pointer-events:none;filter:drop-shadow(0 0 2px rgba(84,168,255,.88));animation:canvas-edge-flow 1.35s linear infinite}.workspace .canvasEdgePulse.isDelayed{animation-delay:-675ms}.workspace .canvasEdgePulse.isComplete{stroke-dasharray:.12 .88;animation:canvas-edge-complete .9s cubic-bezier(.2,.8,.2,1) 1 both}@keyframes canvas-edge-flow{to{stroke-dashoffset:-1}}@keyframes canvas-edge-complete{0%{opacity:.94;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-1}}.workspace .react-flow__edge.selected .react-flow__edge-path,.workspace .react-flow__edge:focus .react-flow__edge-path{stroke:var(--text-fg-default)!important;stroke-width:2.5}.workspace .react-flow__connection-path{stroke:var(--canvas-connection-preview)!important;stroke-width:6}.topNav{position:absolute;top:16px;right:16px;left:16px;z-index:30;display:flex;width:auto;height:34px;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}.topNavGroup{display:flex;height:34px;min-width:0;align-items:center;gap:4px;border:1px solid var(--canvas-controls-border);border-radius:var(--radius-panel);background:var(--surface-panel);padding:3px;color:var(--canvas-controls-text);box-shadow:var(--shadow-prompt);pointer-events:auto}.topNav.isPanelOpen{opacity:1;pointer-events:none}.brandNav{position:relative;flex:0 0 auto;gap:3px;padding-inline:4px}.topIconButton,.primaryRunButton,.leftToolRail button,.iconButton{border:0;color:var(--canvas-controls-text);transition:background-color .16s ease,color .16s ease,opacity .16s ease,transform .16s ease}.topIconButton:hover,.leftToolRail button:hover,.iconButton:hover{background:var(--canvas-controls-hover)}.workflowNameField{width:min(164px,38vw);height:28px;border:0;border-radius:var(--radius-control);outline:0;background:transparent;padding:0 8px;color:var(--text-fg-default);font-size:var(--text-md);line-height:20px}.workflowNameField:focus{background:var(--surface-hover)}.canvasManagerButton,.canvasSwitchButton{display:inline-flex;height:28px;align-items:center;justify-content:center;gap:3px;border:0;border-radius:var(--radius-control);background:transparent;padding:0;color:var(--text-fg-muted)}.canvasManagerButton{width:43px}.canvasManagerButton:hover,.canvasSwitchButton:hover,.canvasManagerButton[aria-expanded=true],.canvasSwitchButton[aria-expanded=true]{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.canvasManagerButton svg:last-child,.canvasSwitchButton svg{transition:transform .15s ease}.canvasManagerButton[aria-expanded=true] svg:last-child,.canvasSwitchButton[aria-expanded=true] svg{transform:rotate(180deg)}.canvasManagerDivider{width:1px;height:18px;flex:none;background:var(--border-default)}.canvasSwitchButton{min-width:74px;padding:0 6px;color:var(--text-fg-default);font-size:var(--text-sm);white-space:nowrap}.canvasManagerMenu,.canvasSwitchMenu{position:absolute;top:calc(100% + 8px);left:0;z-index:2;display:grid;width:224px;gap:2px;border:1px solid var(--canvas-controls-border);border-radius:8px;background:var(--surface-panel);padding:5px;box-shadow:var(--shadow-panel);opacity:0;pointer-events:none;transform:translateY(-5px) scale(.985);transform-origin:top left;visibility:hidden;transition:opacity .15s ease,transform .15s cubic-bezier(.2,.8,.2,1),visibility 0s linear .15s}.canvasManagerMenu[data-open=true],.canvasSwitchMenu[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);visibility:visible;transition-delay:0s}.canvasManagerMenu button,.canvasSwitchMenu button{display:flex;width:100%;min-width:0;min-height:34px;align-items:center;gap:9px;border:0;border-radius:6px;background:transparent;padding:5px 8px;color:var(--text-fg-default);font-size:var(--text-md);text-align:left}.canvasManagerMenu button:hover,.canvasSwitchMenu button:hover,.canvasSwitchMenu button.active{background:var(--canvas-controls-hover)}.canvasManagerMenu button.danger{color:#fca5a5}.canvasMenuSeparator{height:1px;margin:3px 2px;background:var(--border-subtle)}.canvasSwitchMenu{right:0;left:auto;width:252px;max-height:min(320px,calc(100dvh - 76px));overflow-y:auto;transform-origin:top right}.canvasSwitchIndex{display:grid;width:22px;height:22px;flex:none;place-items:center;border-radius:5px;background:var(--surface-raised);color:var(--text-fg-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.canvasSwitchName{overflow:hidden;min-width:0;flex:1;text-overflow:ellipsis;white-space:nowrap}.canvasSwitchMenu button.active>svg{flex:none;color:#9ed0aa}.topActions{flex:0 0 auto;gap:5px}.topIconButton{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-raised);padding:0;color:var(--text-fg-default)}.topIconButton:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}.topIconButton.isDirty{border-color:#5b8cff80;background:var(--accent-soft);color:#c6d5ff}.topIconButton.saveState-failed{background:var(--danger-soft);color:var(--danger)}.topIconButton.saveState-saved:not(.isDirty){color:#9ed0aa}.topIconButton svg{width:15px;height:15px;stroke-width:2.2}.workspace .react-flow__selection{border:1px solid rgba(91,140,255,.7);background:#5b8cff17}.workspace .react-flow__nodesselection-rect{border:0;background:transparent}.primaryRunButton{display:inline-flex;height:28px;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-control);background:var(--accent);padding:0 10px;color:#fff;font-size:var(--text-sm);font-weight:600;line-height:18px}.primaryRunButton:hover{background:var(--accent-hover)}.primaryRunButton svg{fill:currentColor}.leftToolRail{position:absolute;top:50%;left:14px;z-index:28;display:flex;flex-direction:column;gap:1px;border:1px solid var(--canvas-controls-border);border-radius:var(--radius-panel);background:var(--surface-panel);padding:3px;box-shadow:var(--shadow-prompt);transform:translateY(-50%)}.leftToolRail>button{position:relative;display:grid;width:28px;height:28px;place-items:center;border-radius:var(--radius-control);background:transparent;padding:0;color:var(--text-fg-muted)}.leftToolRail>button:hover{color:var(--text-fg-default)}.leftToolRail>button.active{background:var(--accent-soft);color:#c6d5ff;box-shadow:inset 0 0 0 1px #5b8cff33}.leftToolRail:not(.isPanelOpen)>button:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);z-index:2;width:max-content;max-width:120px;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-raised);padding:4px 7px;color:var(--text-fg-default);font-size:var(--text-xs);line-height:16px;opacity:0;pointer-events:none;transform:translate(-2px);transition:opacity .12s ease,transform .12s ease}.leftToolRail:not(.isPanelOpen)>button:hover:after,.leftToolRail:not(.isPanelOpen)>button:focus-visible:after{opacity:1;transform:translate(0)}.leftToolRail.isPanelOpen{opacity:1;pointer-events:auto}.toolRailDivider{width:16px;height:1px;align-self:center;margin:2px 0;background:var(--border-subtle)}.toolRailMenu{position:absolute;top:50%;left:calc(100% + 8px);display:grid;width:152px;gap:2px;border:1px solid var(--canvas-controls-border);border-radius:8px;background:var(--surface-panel);padding:5px;box-shadow:var(--shadow-panel);opacity:0;pointer-events:none;transform:translate(-5px,-50%) scale(.985);transform-origin:left center;visibility:hidden;transition:opacity .15s ease,transform .15s cubic-bezier(.2,.8,.2,1),visibility 0s linear .15s}.toolRailMenu[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(-50%) scale(1);visibility:visible;transition-delay:0s}.toolRailMenu button{display:flex;width:100%;min-height:34px;align-items:center;gap:9px;border:0;border-radius:6px;background:transparent;padding:5px 8px;color:var(--text-fg-muted);font-size:var(--text-sm);text-align:left}.toolRailMenu button:hover,.toolRailMenu button.active{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.floatingPanel{--panel-width: 240px;position:absolute;top:60px;left:54px;z-index:24;display:flex;min-width:0;flex-direction:column;width:min(var(--panel-width),calc(100vw - 20px));max-height:calc(100dvh - 76px);overflow:hidden;border:1px solid var(--canvas-controls-border);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-prompt);transform-origin:top left}.floatingPanel.isOpening{animation:floating-panel-open .16s cubic-bezier(.2,.8,.2,1) both}.floatingPanel.isClosing{pointer-events:none;animation:floating-panel-close .15s ease both}@keyframes floating-panel-open{0%{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes floating-panel-close{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.99)}}.floatingPanel.floatingPanel-nodes{--panel-width: 216px}.floatingPanel.floatingPanel-templates{--panel-width: 224px}.floatingPanel.floatingPanel-assets{--panel-width: 248px}.floatingPanel.floatingPanel-workflows{--panel-width: 232px}.floatingPanel.floatingPanel-files{--panel-width: 200px}.floatingPanel.floatingPanel-log{--panel-width: 264px}.floatingPanel-channels{--panel-width: 616px;z-index:40;max-height:min(520px,calc(100dvh - 76px))}.floatingPanel-channels .floatingPanelBody{overflow:hidden;padding:0}.floatingPanelHeader{display:flex;min-height:38px;align-items:center;gap:6px;flex:none;padding:0 5px 0 7px;border-bottom:1px solid var(--border-subtle);background:var(--surface-raised);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.floatingPanelHeader:active{cursor:grabbing}.floatingPanelGrip{flex:none;color:var(--text-fg-disabled)}.floatingPanelHeading{display:flex;min-width:0;flex:1;align-items:baseline;gap:6px;overflow:hidden}.floatingPanelHeading strong{overflow:hidden;flex:none;color:var(--text-fg-default);font-size:var(--text-md);font-weight:600;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.floatingPanelHeading small{overflow:hidden;min-width:0;flex:1;color:var(--text-fg-muted);font-size:var(--text-xs);line-height:16px;text-overflow:ellipsis;white-space:nowrap}.floatingPanelHeader .iconButton{flex:none}.floatingPanelBody{display:flex;flex-direction:column;gap:6px;min-height:0;flex:1;overflow-y:auto;padding:8px;overscroll-behavior:contain}.libtvAddPanel{display:flex;flex-direction:column}.libtvAddSearch{position:sticky;top:-8px;z-index:2;display:flex;height:32px;align-items:center;gap:7px;margin:-8px 0 6px;border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);padding:0 2px;color:var(--text-fg-muted)}.libtvAddSearch input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text-fg-default);font-size:var(--text-sm)}.libtvAddEmpty{margin:0;padding:20px 10px;color:var(--text-fg-disabled);font-size:var(--text-sm);text-align:center}.libtvAddPanel h2{margin:0 0 4px;color:var(--text-fg-muted);font-size:var(--text-xs);font-weight:600;letter-spacing:0;line-height:16px}.libtvAddPanel h2:not(:first-child){margin-top:8px;margin-bottom:4px}.libtvAddGroup+.libtvAddGroup{margin-top:8px}.libtvAddList{display:grid;gap:2px}.libtvResourceList{gap:2px}.libtvAddItem{display:flex;width:100%;min-height:32px;min-width:0;align-items:center;gap:8px;border:0;border-radius:var(--radius-control);background:transparent;padding:3px;color:var(--text-fg-default);text-align:left;transition:background-color .14s ease}.libtvAddItem:hover{color:var(--text-fg-default);background:var(--canvas-controls-hover)}.libtvAddItem:hover .libtvAddIcon{background:var(--accent-soft);color:#b9ccff}.libtvAddIcon{display:grid;width:26px;height:26px;flex:0 0 auto;place-items:center;border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-fg-muted);transition:background-color .14s ease}.libtvAddIcon svg{width:15px;height:15px}.libtvAddText{display:grid;min-width:0}.libtvAddLabel{overflow:hidden;min-width:0;color:var(--text-fg-default);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);font-weight:500;line-height:20px}.libtvAddBadge{flex:0 0 auto;border-radius:5px;background:#ffffff21;padding:2px 6px 3px;color:#bdbdbd;font-size:var(--text-xs);font-weight:600;line-height:1}.libtvAddBadge.isNew{background:#37a9be9e;color:#bff4ff}.paletteGrid,.templateGrid,.assetLibraryList,.runLogList{display:grid;gap:6px}.assetLibraryToolbar{position:sticky;top:-10px;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:6px;margin:-10px 0 2px;background:var(--surface-panel);padding:10px 0 8px}.assetLibraryToolbar label{display:flex;height:34px;min-width:0;align-items:center;gap:6px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node);padding:0 8px;color:var(--text-fg-muted)}.assetLibraryToolbar input{min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-control);outline:0;background:var(--surface-node);padding:7px 8px;color:var(--text-fg-default);font-size:var(--text-sm)}.assetLibraryToolbar label input{width:100%;border:0;background:transparent;padding-inline:0}.paletteItem,.templateItem,.secondaryAction,.workflowItem,.assetLibraryItem,.runLogItem,.assetPreview,.previewBox,.editableList{border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node)}.libraryPresetControls{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:column;grid-auto-columns:28px;gap:4px;align-items:center;min-width:0}.libraryPresetControls>button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:var(--radius-control);background:#ffffff0b;color:var(--text-fg-muted)}.libraryPresetControls>button:hover{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.paletteItem,.templateItem,.secondaryAction{color:var(--text-fg-default)}.paletteItem{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;width:100%;border-color:var(--border-subtle);padding:7px;text-align:left}.paletteItem:hover,.templateItem:hover,.secondaryAction:hover,.workflowItem:hover,.assetLibraryItem:hover,.assetPreview:hover{background:var(--canvas-controls-hover)}.paletteItem>span:first-child{display:grid;width:28px;height:28px;place-items:center;border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-fg-default)}.paletteItem strong,.templateItem strong,.workflowItem strong,.assetLibraryItem strong{display:block;overflow:hidden;color:var(--text-fg-default);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:500;line-height:19px}.paletteItem small,.workflowItem small,.assetLibraryItem small{display:block;overflow:hidden;margin-top:2px;color:var(--text-fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:16px}.templateItem{display:grid;gap:2px;min-height:40px;border-color:var(--border-subtle);padding:6px 8px;text-align:left}.templateItem span{overflow:hidden;color:var(--text-fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:14px}.secondaryAction{display:inline-flex;width:100%;min-height:30px;align-items:center;gap:8px;border-color:var(--border-subtle);padding:5px 8px;font-size:var(--text-sm);line-height:18px}.fileActionList{display:grid;gap:6px}.editableListRow input,.nodeInput,.nodeTextarea{width:100%;min-width:0;border:1px solid var(--border-subtle);border-radius:var(--radius-control);outline:0;background:var(--surface-node);padding:5px 8px;color:var(--text-fg-default);font-size:var(--text-sm);line-height:18px}.editableListRow input:focus,.nodeInput:focus,.nodeTextarea:focus{border-color:var(--accent);background:var(--surface-raised)}.workflowItem,.assetLibraryItem{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:6px;min-width:0;padding:3px 4px}.workflowItem.active{background:var(--canvas-controls-active)}.workflowItem>button:first-child{display:grid;min-width:0;gap:2px;border:0;background:transparent;padding:2px;color:inherit;text-align:left}.assetOpenButton{display:grid;grid-template-columns:32px minmax(0,1fr);min-width:0;width:100%;align-items:center;gap:7px;border:0;background:transparent;padding:3px;color:inherit;text-align:left}.assetOpenButton>span:last-child{min-width:0;overflow:hidden}.assetOpenButton img,.assetOpenButton>span:first-child{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-fg-muted);object-fit:cover;font-size:var(--text-xs);line-height:14px}.iconButton{display:grid;width:26px;height:26px;place-items:center;border-radius:var(--radius-control);background:transparent;padding:0}.emptyText,.importError{margin:0;padding:12px 10px;color:var(--text-fg-muted);font-size:var(--text-sm);line-height:18px;text-align:center}.emptyText{display:grid;min-height:40px;place-items:center}.importError,.runtimeError{border:1px solid rgba(248,113,113,.22);border-radius:var(--radius-control);border-color:#f8717138;background:#7f1d1d47;color:#fecaca}.channelCenter{display:flex;min-height:0;flex:1;flex-direction:column;color:var(--text-fg-default)}.channelToolbar{display:flex;min-height:40px;align-items:center;gap:8px;border-bottom:1px solid var(--border-subtle);padding:5px 8px}.channelFilters button,.primaryButton,.channelDialog footer button{min-height:28px;border:0;border-radius:var(--radius-control);background:transparent;padding:0 8px;color:var(--text-fg-muted);font-size:var(--text-sm)}.channelFilters button.active{background:var(--surface-active);color:var(--text-fg-default)}.primaryButton{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;font-weight:600}.primaryButton:hover:not(:disabled){background:var(--accent-hover)}.channelFilters{display:flex;gap:2px;border-bottom:1px solid var(--border-subtle);padding:5px 8px}.channelError{display:flex;align-items:center;gap:7px;border-bottom:1px solid rgba(255,133,133,.2);background:var(--danger-soft);padding:8px 12px;color:#ffc1c1;font-size:var(--text-sm)}.channelLoading{display:flex;min-height:120px;align-items:center;justify-content:center;gap:8px;color:var(--text-fg-muted);font-size:var(--text-sm)}.channelRouting{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;border-bottom:1px solid var(--border-subtle);padding:8px 10px}.channelRouting>strong{padding-top:7px;color:var(--text-fg-muted);font-size:var(--text-sm);font-weight:600}.channelRoutingGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}.channelRoutingRow{display:grid;min-width:0;grid-template-columns:34px minmax(120px,1fr) auto;align-items:center;gap:6px}.channelRoutingRow>span{color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelRouteFallback{display:inline-flex;align-items:center;gap:4px;color:var(--text-fg-muted);font-size:var(--text-xs);white-space:nowrap}.channelRouteFallback input{width:14px;height:14px;margin:0;accent-color:var(--accent)}.channelTable{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain}.channelEmpty{display:grid;min-height:96px;place-items:center;align-content:center;gap:7px;padding:16px;color:var(--text-fg-disabled);text-align:center}.channelEmpty strong{color:var(--text-fg-default);font-size:var(--text-md);font-weight:600}.channelEmpty .primaryButton{margin-top:5px}.channelTableHeader,.channelTableRow{display:grid;grid-template-columns:minmax(152px,1.5fr) minmax(110px,1fr) 58px 80px 118px;gap:8px;align-items:center;min-width:600px}.channelTableHeader{position:sticky;top:0;z-index:1;min-height:30px;border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);padding:0 10px;color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelTableRow{min-height:50px;border-bottom:1px solid var(--border-subtle);padding:6px 10px;color:var(--text-fg-muted);font-size:var(--text-sm)}.channelTableRow:hover{background:var(--surface-hover)}.channelIdentity{min-width:0}.channelIdentity strong{display:block;overflow:hidden;color:var(--text-fg-default);font-size:var(--text-md);font-weight:600;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.channelIdentity small{display:block;overflow:hidden;margin-top:2px;color:var(--text-fg-disabled);font-size:var(--text-xs);line-height:15px;text-overflow:ellipsis;white-space:nowrap}.channelCapabilities{display:flex;min-width:0;flex-wrap:wrap;gap:4px}.channelCapabilities span{border:1px solid var(--border-subtle);border-radius:4px;background:var(--surface-raised);padding:1px 5px;color:var(--text-fg-muted);font-size:var(--text-xs);line-height:16px}.channelHealth{display:inline-flex;align-items:center;gap:5px;color:var(--text-fg-muted);white-space:nowrap}.health-healthy{color:#65d6a6}.health-failed{color:var(--danger)}.health-configured{color:#e7bf69}.channelActions{display:flex;justify-content:flex-end;gap:2px}.iconButton.danger:hover{background:var(--danger-soft);color:var(--danger)}.channelSyncState{display:flex;min-height:30px;align-items:center;gap:6px;border-top:1px solid var(--border-subtle);padding:0 10px;color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelEnabled{display:flex!important;align-items:center;gap:8px!important;color:var(--text-fg-muted);font-size:var(--text-sm)}.channelEnabled input{width:15px!important;height:15px;margin:0;accent-color:var(--accent)}.channelDialogBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#0000009e;padding:16px}.channelDialog{display:flex;width:min(480px,100%);max-height:min(680px,calc(100vh - 32px));flex-direction:column;overflow:hidden;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel)}.channelSecretDialog{width:min(360px,100%)}.channelDialog>header,.channelDialog>footer{display:flex;flex:none;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border-subtle);padding:8px 10px}.channelDialog>footer{justify-content:flex-end;border-top:1px solid var(--border-subtle);border-bottom:0}.channelSaveHint{min-width:0;flex:1;color:var(--text-fg-disabled);font-size:var(--text-xs);text-align:left}.channelDialog>header strong,.channelDialog>header small{display:block}.channelDialog>header strong{font-size:var(--text-lg)}.channelDialog>header small{margin-top:2px;color:var(--text-fg-muted);font-size:var(--text-xs)}.channelForm,.channelSecretDialog>label,.channelSecretDialog>label+label{display:grid;gap:10px}.channelForm{overflow-y:auto;padding:10px;overscroll-behavior:contain}.channelSecretDialog>label{margin:10px 10px 0}.channelSecretDialog>label+label{margin-top:10px}.channelForm label,.channelSelectField,.channelSecretDialog>label{display:grid;min-width:0;gap:4px}.channelProviderPicker{display:grid;min-width:0;gap:4px}.channelProviderPickerHeader>span,.channelProviderSelected>span{color:var(--text-fg-muted);font-size:var(--text-xs);font-weight:500}.channelProviderPickerHeader{display:flex;align-items:center;justify-content:space-between;gap:8px}.channelProviderPickerHeader small{color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelProviderSearch{position:relative}.channelProviderSearch>svg{position:absolute;top:8px;left:10px;z-index:1;color:var(--text-fg-disabled);pointer-events:none}.channelProviderSearch input{padding-left:32px}.channelProviderList{display:grid;max-height:184px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node);overscroll-behavior:contain}.channelProviderList>button{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:44px;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;padding:5px 8px;color:var(--text-fg-muted);text-align:left}.channelProviderList>button:last-child{border-bottom:0}.channelProviderList>button:hover{background:var(--surface-hover)}.channelProviderList>button.active{background:var(--surface-active);box-shadow:inset 2px 0 var(--accent)}.channelProviderIdentity{min-width:0}.channelProviderIdentity strong,.channelProviderIdentity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channelProviderIdentity strong{color:var(--text-fg-default);font-size:var(--text-sm);font-weight:600}.channelProviderIdentity small{margin-top:2px;color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelProviderCapabilities{display:flex;gap:3px}.channelProviderCapabilities>span{border:1px solid var(--border-subtle);border-radius:3px;padding:1px 4px;color:var(--text-fg-muted);font-size:var(--text-xs)}.channelProviderSelected{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;min-height:30px;border-bottom:1px solid var(--border-subtle)}.channelProviderSelected strong{color:var(--text-fg-default);font-size:var(--text-sm)}.channelProviderSelected small{color:var(--text-fg-disabled);font-size:var(--text-xs)}.channelForm label>span,.channelSelectField>span,.channelCapabilityField>span,.channelSecretDialog label>span{color:var(--text-fg-muted);font-size:var(--text-xs);font-weight:500}.channelForm input,.channelSecretDialog input{width:100%;min-width:0;height:30px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);outline:0;background:var(--surface-node);padding:0 9px;color:var(--text-fg-default);font-size:var(--text-sm)}.channelForm input:focus,.channelSecretDialog input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.channelCapabilityField{display:grid;gap:4px}.channelCapabilityOptions{display:flex;min-height:30px;flex-wrap:wrap;align-items:center;gap:6px 16px}.channelCapabilityOption{display:inline-flex!important;align-items:center;gap:6px!important;color:var(--text-fg-default);font-size:var(--text-sm)}.channelCapabilityOption input{width:15px!important;height:15px;margin:0;accent-color:var(--accent)}.channelFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.channelAdvanced{border-top:1px solid var(--border-subtle);padding-top:4px}.channelAdvanced summary{display:flex;min-height:32px;align-items:center;justify-content:space-between;gap:10px;color:var(--text-fg-default);font-size:var(--text-sm);cursor:pointer;list-style:none}.channelAdvanced summary::-webkit-details-marker{display:none}.channelAdvanced summary:after{content:"+";color:var(--text-fg-muted);font-size:var(--text-lg)}.channelAdvanced[open] summary:after{content:"−"}.channelAdvancedBody{display:grid;gap:8px;padding:4px 0 2px}.runFeedbackPanel{position:absolute;top:60px;left:50%;z-index:70;display:flex;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 84px);flex-direction:column;overflow:hidden;border:1px solid var(--border-default);border-radius:var(--radius-panel);background:#1c1e23fa;box-shadow:var(--shadow-panel);color:var(--text-fg-default);transform:translate(-50%)}.runFeedbackPanel.runFeedback-blocked,.runFeedbackPanel.runFeedback-failed{border-color:#f871716b}.runFeedbackPanel.runFeedback-succeeded{border-color:#4ade8059}.runFeedbackPanel>header{display:flex;min-width:0;align-items:flex-start;gap:9px;padding:8px 8px 8px 10px}.runFeedbackPanel>header>div{min-width:0;flex:1}.runFeedbackPanel>header strong,.runFeedbackPanel>header small{display:block}.runFeedbackPanel>header strong{font-size:var(--text-md);font-weight:600;line-height:19px}.runFeedbackPanel>header small{margin-top:2px;overflow-wrap:anywhere;color:var(--text-fg-muted);font-size:var(--text-xs);line-height:16px}.runFeedbackIcon{display:grid;width:22px;height:22px;flex:none;place-items:center;color:#f3b45f}.runFeedback-succeeded .runFeedbackIcon{color:#65d6a6}.runFeedback-starting .runFeedbackIcon,.runFeedback-running .runFeedbackIcon{color:#8db3ff}.runFeedbackIssues{min-height:0;overflow-y:auto;border-top:1px solid var(--border-subtle)}.runFeedbackIssues>button,.runFeedbackIssues>div{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent;padding:7px 10px;color:var(--text-fg-default);text-align:left}.runFeedbackIssues>button:hover{background:var(--surface-hover)}.runFeedbackIssues>button>span,.runFeedbackIssues>div>span{min-width:0;flex:1}.runFeedbackIssues strong,.runFeedbackIssues small{display:block}.runFeedbackIssues strong{overflow:hidden;font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.runFeedbackIssues small{margin-top:2px;overflow-wrap:anywhere;color:var(--text-fg-muted);font-size:var(--text-xs);line-height:16px}.runFeedbackIssues svg{flex:none;color:var(--text-fg-disabled)}.runFeedbackIssues p{margin:0;padding:8px 12px;color:var(--text-fg-disabled);font-size:var(--text-xs)}.runFeedbackPanel>footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;border-top:1px solid var(--border-subtle);padding:6px 8px}.runFeedbackPanel>footer button{display:inline-flex;min-height:28px;align-items:center;justify-content:center;gap:5px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-raised);padding:0 9px;color:var(--text-fg-muted);font-size:var(--text-sm)}.runFeedbackPanel>footer button:hover{border-color:var(--border-strong);background:var(--surface-hover);color:var(--text-fg-default)}.runFeedbackPanel>footer .primaryButton{border-color:transparent;background:var(--accent);color:#fff}.spin{animation:channelSpin .9s linear infinite}@keyframes channelSpin{to{transform:rotate(360deg)}}.runLogPanel,.runLogList{min-width:0}.runLogItem{display:grid;gap:3px;border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;background:transparent;padding:6px 8px}.runLogItem span{color:var(--text-fg-muted);font-size:var(--text-xs);line-height:14px}.runLogItem strong{min-width:0;color:var(--text-fg-default);font-size:var(--text-sm);font-weight:500;line-height:18px;overflow-wrap:anywhere}.runLogItem.log-warning{border-left:2px solid rgba(245,158,11,.62);background:#f59e0b0b}.runLogItem.log-error{border-left:2px solid rgba(248,113,113,.68);background:#f871710d}.connectionHint{position:absolute;right:20px;bottom:80px;z-index:28;max-width:min(420px,calc(100vw - 40px));border:.5px solid rgba(248,113,113,.22);border-radius:var(--radius-panel);background:#7f1d1d57;padding:8px 10px;color:#fecaca;box-shadow:var(--shadow-prompt);font-size:var(--text-sm);line-height:18px}.canvasNodeShell{position:relative;color:var(--text-fg-default);animation:canvas-node-enter .18s ease-out both}@keyframes canvas-node-enter{0%{opacity:0}to{opacity:1}}.nodeHeader{display:flex;height:36px;min-width:0;align-items:center;gap:7px;border-bottom:1px solid rgba(255,255,255,.065);padding:0 10px;background:#1b1b1b;cursor:grab;-webkit-user-select:none;user-select:none}.nodeHeader:active{cursor:grabbing}.nodeHeaderTitle{overflow:hidden;min-width:0;flex:1;color:#d3d3d3;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;line-height:18px}.nodeHeaderIcon{display:grid;width:16px;height:16px;flex:0 0 auto;place-items:center;color:#8a8a8a}.canvasNode{position:relative;width:100%;overflow:visible;border:1px solid #363636;border-radius:8px;background:#171717;box-shadow:none;transition:border-color .12s ease,box-shadow .12s ease}.canvasNode:before,.canvasNode:after{content:"";position:absolute;z-index:3;pointer-events:none}.canvasNode:before{top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid transparent;border-radius:8px;opacity:0}.canvasNodeShell.runtime-running .canvasNode{border-color:#60a5fa85;box-shadow:0 0 0 1px #60a5fa14,0 0 16px #3b82f61f}.canvasNodeShell.runtime-running .canvasNode:after{top:-1px;left:0;width:34%;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,#7dd3fc 52%,transparent);opacity:.92;transform:translate(-110%);animation:canvas-node-running 1.15s linear infinite}.canvasNodeShell.runtime-succeeded .canvasNode:before{border-color:#4ade80b8;animation:canvas-node-result .52s ease-out both}.canvasNodeShell.runtime-failed .canvasNode:before{border-color:#f87171d1;animation:canvas-node-result .62s ease-out both}@keyframes canvas-node-running{to{transform:translate(294%)}}@keyframes canvas-node-result{0%{opacity:0}28%{opacity:1}to{opacity:0}}.canvasNode.isSelected{outline:0;border-color:#aec2ffd1;box-shadow:0 0 0 1px #698bff2e,0 0 18px #567ae633}.nodeSurface{display:grid;width:100%;height:var(--node-preview-height);min-width:0;min-height:0;overflow:hidden;border-radius:0 0 7px 7px;background:#151515}.nodePortsFrame{position:absolute;top:36px;right:0;left:0;height:var(--node-preview-height);pointer-events:none}.canvasNodeShell[data-lod=overview] .nodeSurface>*{opacity:0}.canvasNodeShell[data-lod=overview] .nodeSurface{background:#1a1a1a}.canvasNodeShell[data-lod=compact] .nodeItemSurface>div:nth-child(n+4),.canvasNodeShell[data-lod=compact] .nodeReferenceSurface img:nth-child(n+3){visibility:hidden}.generatorMediaGrid{display:grid;width:100%;height:100%;min-width:0;min-height:0;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:2px}.nodeTextSurface{width:100%;height:100%;overflow:auto;padding:16px;color:#f7f7f7db;font-size:var(--text-lg);line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.nodeEmptySurface,.nodeAudioSurface{display:grid;width:100%;height:100%;place-items:center;align-content:center;gap:10px;color:#676767}.nodeEmptySurface svg,.nodeAudioSurface svg{stroke-width:1.35}.nodeAudioSurface span{overflow:hidden;max-width:78%;color:#a3a3a3;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg)}.nodeSurfaceMedia{display:block;width:100%;height:100%;background:#0e0e0e;object-fit:contain}.nodeSurfaceUpload{display:grid;width:100%;height:100%;place-items:center;align-content:center;gap:8px;color:#8d8d8d;cursor:pointer;font-size:var(--text-md)}.nodeSurfaceUpload:hover{color:#d4d4d4}.nodeSurfaceUpload input{display:none}.nodeReferenceSurface{display:grid;width:100%;height:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:2px}.nodeReferenceSurface img{width:100%;height:100%;min-width:0;min-height:0;object-fit:cover}.nodeItemSurface{display:grid;width:100%;height:100%;min-height:0;align-content:start;gap:6px;overflow:hidden;padding:14px}.nodeItemSurface>div{display:grid;min-width:0;grid-template-columns:22px minmax(0,1fr);gap:7px;border-radius:7px;background:#ffffff09;padding:8px 9px;color:#f7f7f7c7;font-size:var(--text-md);line-height:18px}.nodeItemSurface>div>span{color:#6f6f6f;text-align:center}.nodeItemSurface.isGrid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}.nodeItemSurface.isGrid>div{grid-template-columns:18px minmax(0,1fr)}.nodeEditor{position:relative;display:grid;min-width:0;gap:9px;border-top:1px solid rgba(255,255,255,.07);border-radius:0 0 7px 7px;background:#202020;padding:10px;transform-origin:top center;animation:node-editor-open .17s cubic-bezier(.2,.8,.2,1) both}@keyframes node-editor-open{0%{opacity:0;transform:translateY(-4px) scaleY(.985)}to{opacity:1;transform:translateY(0) scaleY(1)}}.nodeAssetEditor{display:grid;min-width:0;gap:8px}.nodeAssetEditor .canvasSelect{width:100%}.parameterGrid{display:grid;min-width:0;gap:10px}.parameterGrid.hasPrimaryParameter{gap:10px}.nodeEditorToolbar{display:grid;min-width:0;gap:8px;border-top:1px solid rgba(255,255,255,.07);padding-top:10px}.parameterCompactGrid{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:8px}.parameterField-routeRef{width:min(220px,100%);max-width:100%}.parameterField-generationMode,.parameterField-processingMode,.parameterField-voice,.parameterField-provider,.parameterField-scale,.parameterField-ratio{width:142px;max-width:142px}.nodeAdvanced{position:relative;z-index:24;width:100%;min-width:0}.nodeAdvanced>summary{display:flex;height:32px;max-width:100%;align-items:center;gap:7px;overflow:hidden;border-radius:8px;background:#303030;padding:0 10px;color:#b5b5b5;cursor:pointer;font-size:var(--text-sm);list-style:none}.nodeAdvanced>summary:hover,.nodeAdvanced[open]>summary{background:#383838;color:#f0f0f0}.nodeAdvanced>summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nodeAdvanced>summary::-webkit-details-marker{display:none}.nodeAdvanced>summary:after{content:none}.nodeAdvanced[open]>summary:after{content:none}.nodeAdvancedGrid{display:grid;width:100%;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px;margin-top:8px;border-top:1px solid rgba(255,255,255,.07);padding-top:9px}.nodeAdvancedGrid .parameterFieldBlock:has(textarea){grid-column:1 / -1}.parameterField{display:grid;min-width:0}.parameterFieldInline{width:150px;max-width:220px;gap:4px}.parameterFieldBlock{gap:5px}.parameterField>span:first-child{overflow:hidden;color:var(--text-fg-disabled);text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);font-weight:400;line-height:14px}.nodeEditorToolbar .parameterFieldInline>span:first-child{display:none}.nodeEditorToolbar .canvasSelect-compact .canvasSelectTrigger{height:32px;border-color:transparent;border-radius:8px;background:#303030;padding-inline:9px}.nodeEditorToolbar .canvasSelect-compact .canvasSelectTrigger:hover:not(:disabled),.nodeEditorToolbar .canvasSelect-compact .canvasSelectTrigger[data-state=open]{border-color:transparent;background:#383838}.nodeContentField{display:block;width:100%;min-width:0}.nodeContentEditor{display:block;width:100%;height:68px;min-height:68px;max-height:116px;border:0;outline:0;resize:none;background:transparent;padding:0;color:var(--text-fg-default);font-size:var(--text-lg);line-height:21px}.nodeContentEditor:focus-visible{outline:1px solid #686868;outline-offset:4px}.nodeContentEditor::placeholder,.nodeInput::placeholder,.nodeTextarea::placeholder{color:#ffffff4d}.parameterCheck{display:flex;min-height:32px;align-items:center;gap:6px;border-radius:8px;background:#303030;padding:0 9px;color:#b5b5b5;font-size:var(--text-sm);line-height:16px}.parameterCheck input{width:14px;height:14px;margin:0;accent-color:var(--text-fg-default)}.nodeInput,.nodeTextarea{position:static;width:100%;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#1d1d1d;padding:6px 8px;color:#f7f7f7db;opacity:1;font-size:var(--text-sm);line-height:18px}.nodeInput:focus,.nodeTextarea:focus{border-color:#686868;background:#202020;color:var(--text-fg-default)}.nodeInput{max-width:none;cursor:text}.nodeInput[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.nodeInput[type=number]::-webkit-inner-spin-button,.nodeInput[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.nodeTextarea{min-height:52px;resize:none}.filePicker{display:inline-flex;height:32px;width:fit-content;max-width:100%;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--radius-control);background:var(--surface-raised);padding:0 10px;color:var(--text-fg-default);font-size:var(--text-sm);line-height:18px}.filePicker:hover{background:var(--canvas-controls-hover)}.filePicker input{display:none}.assetPreview{display:flex;width:100%;min-width:0;align-items:center;gap:6px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node);padding:5px;color:var(--text-fg-default);text-align:left}.assetPreview img,.assetPreview svg{width:32px;height:32px;flex:0 0 auto;border-radius:var(--radius-control);object-fit:cover}.assetPreview span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);line-height:18px}.nodeOutput,.previewBox{overflow-wrap:anywhere;color:#f7f7f7b8;font-size:var(--text-md);line-height:19px}.nodeOutput{border-top:.5px solid rgba(255,255,255,.055);padding-top:7px}.previewBox{min-height:80px;padding:0}.runProgress{display:inline-flex;align-items:center;gap:7px;padding:0 6px}.runProgressTrack{position:relative;display:inline-block;width:92px;height:4px;border-radius:999px;background:#ffffff17;overflow:hidden}.runProgressFill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--accent);transition:width .25s ease}.runProgressText{color:var(--text-fg-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.primaryRunButton.isStopping{background:var(--danger-soft);color:var(--danger)}.runLogGroup{display:grid;gap:4px}.runLogToolbar{position:sticky;top:-10px;z-index:2;display:flex;justify-content:flex-end;margin:-10px 0 0;background:var(--surface-panel);padding:10px 0 8px}.runLogToolbar button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-node);padding:5px 7px;color:var(--text-fg-muted);font-size:var(--text-xs)}.runLogGroupHeader{padding:5px 2px;color:var(--text-fg-muted);font-size:var(--text-xs)}.previewMediaList{display:grid;width:100%;height:100%;min-width:0;min-height:0;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:2px;overflow-y:auto}.mediaValueShell{position:relative;width:100%;height:100%;min-width:0;min-height:0}.mediaDownloadButton{position:absolute;top:6px;right:6px;display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-control);background:#0f1116d6;color:var(--text-fg-default);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mediaDownloadButton:hover{background:#23262ef5}.mediaValueImage,.mediaValueVideo{display:block;width:100%;height:100%;max-height:none;border-radius:0;background:#0e0e0e;object-fit:contain}.mediaValueAudio{display:block;width:100%;min-width:0;align-self:center}.mediaValueText{overflow-wrap:anywhere;color:#f7f7f7b8;font-size:var(--text-md);line-height:19px}.statusPill{display:block;width:max-content;border:1px solid #464646;border-radius:999px;background:#262626f0;padding:3px 8px;color:#a3a3a3;font-size:var(--text-xs);line-height:16px;white-space:nowrap;animation:status-pill-enter .16s ease-out both}@keyframes status-pill-enter{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.status-running{border-color:#60a5fa47;color:#bfdbfe}.status-succeeded{border-color:#4ade8047;color:#bbf7d0}.status-failed{border-color:#f8717152;color:#fecaca}.status-skipped{color:var(--text-fg-disabled)}.runtimeError{display:flex;align-items:center;justify-content:space-between;gap:8px;border:.5px solid rgba(248,113,113,.22);border-radius:8px;background:#7f1d1d2e;padding:8px;font-size:var(--text-xs);line-height:16px}.runtimeErrorActions{display:flex;flex:0 0 auto;gap:4px}.runtimeError span{min-width:0;overflow-wrap:anywhere}.runtimeError button{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;border:0;border-radius:7px;background:#ffffff1f;padding:5px 7px;color:var(--text-fg-default);font-size:var(--text-xs)}.nodeActionBar{display:flex;width:100%;align-items:center;justify-content:flex-end;gap:6px}.nodeActionBar button{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:0;border-radius:8px;cursor:pointer}.nodeSecondaryAction{background:#303030;color:#b5b5b5}.nodeRunAction{background:#f2f2f2;color:#171717}.nodeActionBar button:hover:not(:disabled){filter:brightness(1.12)}.nodeActionBar button:disabled{cursor:not-allowed;opacity:.4}.editableList{display:grid;gap:2px;padding:0}.editableListRow{display:grid;grid-template-columns:18px minmax(0,1fr) 28px;gap:5px;align-items:center;min-height:34px;border-radius:var(--radius-control);padding:2px 3px;transition:background .12s ease}.editableListRow:hover{background:#ffffff0b}.editableListRow>span{color:var(--text-fg-disabled);text-align:center;font-size:var(--text-xs)}.editableListRow input{border:0;background:transparent;padding:0;color:#f7f7f7db;font-size:var(--text-md);line-height:19px}.editableListRow input:focus{background:transparent;color:var(--text-fg-default)}.editableListRow button,.addItemButton{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-control);background:transparent;color:var(--text-fg-muted)}.scriptTableEditor{display:grid;gap:0;min-width:0}.scriptTableRow{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:5px 7px;min-width:0;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}.scriptRowIndex{grid-row:1 / span 3;padding-top:5px;color:var(--text-fg-disabled);font-size:var(--text-xs);text-align:center}.scriptTableRow textarea,.scriptDialogue{width:100%;min-width:0;border:0;border-radius:var(--radius-control);background:#ffffff09;color:var(--text-fg-default);font:inherit;letter-spacing:0;outline:none}.scriptTableRow textarea{resize:vertical;min-height:44px;padding:6px 7px;font-size:var(--text-sm);line-height:17px}.scriptDialogue{padding:5px 7px;font-size:var(--text-xs);line-height:16px}.scriptTableRow textarea:focus,.scriptDialogue:focus{background:#fff1;box-shadow:inset 0 0 0 1px #ffffff1c}.scriptRowMeta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 58px 26px;gap:4px;align-items:center;min-width:0}.scriptRowMeta label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;height:26px;border-radius:var(--radius-control);background:#ffffff09;color:var(--text-fg-muted);font-size:var(--text-xs)}.scriptRowMeta input{min-width:0;width:100%;border:0;background:transparent;color:var(--text-fg-default);padding:0 2px 0 6px;font-size:var(--text-xs);letter-spacing:0}.scriptRowMeta label span{padding-right:5px}.scriptRowMeta button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--text-fg-muted)}.scriptRowMeta button:hover{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.editableListRow button{width:28px;height:28px;opacity:0}.editableListRow:hover button,.editableListRow:focus-within button{opacity:1}.editableListRow button:hover,.addItemButton:hover{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.addItemButton{justify-self:start;gap:6px;margin-top:3px;padding:4px 6px;color:var(--text-fg-disabled);font-size:var(--text-xs);line-height:16px}.nodeListEmpty{margin:0;color:var(--text-fg-muted);font-size:var(--text-sm);line-height:18px}.libtvPort{position:absolute;top:50%;z-index:42;width:0;height:0;pointer-events:none}.libtvPortSource{right:0}.libtvPortTarget{left:0}.portHandle{z-index:4;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;border:0!important;background:transparent!important;opacity:0;pointer-events:auto}.portHandleHitZone{position:absolute;top:50%;left:50%;width:48px;height:48px;transform:translate(-50%,-50%) scale(var(--node-ui-scale, 1));transform-origin:center;pointer-events:auto}.libtvPortSource .portHandle{right:0!important;top:0!important;transform:translate(50%,-50%)!important}.libtvPortTarget .portHandle{left:0!important;top:0!important;transform:translate(-50%,-50%)!important}.libtvPort .react-flow__handle{position:absolute}.portHitArea{position:absolute;top:0;z-index:2;display:block;width:0;height:0;opacity:0;pointer-events:none;transition:opacity .1s ease}.canvasNodeShell.isSelected .portHitArea{opacity:1}.canvasNodeShell:hover .portHitArea,.portHandle:hover+.portHitArea,.portHandle:focus+.portHitArea,.react-flow__connectionline+.react-flow__nodes .portHitArea{opacity:1}.libtvPortTarget .portHitArea{left:0}.libtvPortSource .portHitArea{right:0}.portScale{position:absolute;top:0;left:0;display:block;width:48px;height:48px;transform:translate(-50%,-50%) scale(var(--node-ui-scale, 1));transform-origin:center}.portPlus{position:absolute;top:50%;left:50%;display:grid;width:16px;height:16px;place-items:center;border:1px solid #929292;border-radius:999px;background:#262626;color:#e7e7e7;transform:translate(-50%,-50%)}.portPlus svg{width:12px;height:12px}.portBadge{position:absolute;top:50%;max-width:110px;overflow:hidden;border:1px solid #444444;border-radius:999px;background:#262626f7;padding:3px 7px;color:#b5b5b5;opacity:0;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);line-height:14px;transition:opacity .14s ease,transform .14s ease}.libtvPortTarget .portBadge{right:calc(50% + 10px);transform:translate(4px,-50%)}.libtvPortSource .portBadge{left:calc(50% + 10px);transform:translate(-4px,-50%)}.canvasNodeShell.isSelected .portHandle:hover+.portHitArea .portBadge,.portHandle:hover+.portHitArea .portBadge,.portHandle:focus+.portHitArea .portBadge{opacity:1}.libtvPortTarget .portHandle:hover+.portHitArea .portBadge{transform:translateY(-50%)}.libtvPortSource .portHandle:hover+.portHitArea .portBadge{transform:translateY(-50%)}.port-image,.port-video,.port-audio,.port-text,.port-any,.port-subject,.port-json,.port-mask{color:var(--text-fg-muted)}.quickAddMenu{position:fixed;z-index:60;display:flex;flex-direction:column;width:min(200px,calc(100vw - 16px));max-height:min(300px,calc(100dvh - 16px));border:1px solid var(--canvas-controls-border);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel);overflow:hidden}.quickAddSearch{display:flex;align-items:center;gap:7px;border-bottom:.5px solid rgba(255,255,255,.07);padding:7px 9px;color:var(--text-fg-muted)}.quickAddSearch input{flex:1;border:0;background:transparent;color:var(--text-fg-default);font-size:var(--text-sm);outline:none}.quickAddSearch:focus-within{box-shadow:inset 0 -1px #686868}.quickAddList{overflow-y:auto;padding:4px}.quickAddItem{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:var(--radius-control);background:transparent;padding:3px 6px;text-align:left;cursor:pointer}.quickAddItem:hover{background:var(--surface-hover)}.quickAddIcon{display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-fg-muted)}.quickAddText strong{display:block;color:var(--text-fg-default);font-size:var(--text-sm)}.quickAddEmpty{margin:10px;color:var(--text-fg-disabled);font-size:var(--text-sm);text-align:center}.runTaskStrip{position:absolute;bottom:14px;left:50%;z-index:30;display:flex;gap:8px;max-width:70%;overflow-x:auto;border:.5px solid var(--canvas-controls-border);border-radius:999px;background:var(--canvas-button-bg);padding:5px 10px;transform:translate(-50%)}.runTaskItem{display:inline-flex;align-items:center;gap:6px;color:#9fd2ff;font-size:var(--text-sm);white-space:nowrap}.runTaskSpinner{animation:runTaskSpin .9s linear infinite}@keyframes runTaskSpin{to{transform:rotate(360deg)}}.canvasMiniMap{border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:#111214f0!important;overflow:hidden;transition:opacity .12s ease}.workspace:has(.react-flow__node.selected) .canvasMiniMap{opacity:0;pointer-events:none}.canvasViewControls{position:absolute;bottom:14px;left:14px;z-index:28;display:flex;height:32px;align-items:center;gap:2px;border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface-panel);padding:2px;box-shadow:var(--shadow-prompt)}.canvasViewControls button{display:grid;width:26px;height:26px;place-items:center;border:0;border-radius:5px;background:transparent;padding:0;color:var(--text-fg-muted)}.canvasViewControls button:hover,.canvasViewControls button.active{background:var(--surface-hover);color:var(--text-fg-default)}.canvasViewControls button.active{box-shadow:inset 0 0 0 1px #6b8ae657}.canvasViewControls output{width:40px;color:var(--text-fg-muted);text-align:center;font-size:var(--text-xs);font-variant-numeric:tabular-nums}.canvasViewDivider{width:1px;height:16px;margin:0 2px;background:var(--border-subtle)}.react-flow.hideConnections .react-flow__edges{opacity:0;pointer-events:none}.canvasNodeShell[data-lod=compact] .portBadge,.canvasNodeShell[data-lod=overview] .portBadge,.canvasNodeShell[data-lod=overview] .portPlus{display:none}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:#0000009e;padding:24px}.assetModal{display:grid;width:min(760px,calc(100vw - 48px));max-height:calc(100vh - 48px);grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--border-border-default);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel)}.assetModal header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:.5px solid var(--border-border-default);padding:12px 14px}.assetModal header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:600}.assetModal header button{border:0;border-radius:8px;background:transparent;padding:6px 9px;color:var(--text-fg-muted);font-size:var(--text-sm)}.assetModal header button:hover{background:var(--canvas-controls-hover);color:var(--text-fg-default)}.assetModal img,.assetModal video{display:block;max-width:100%;max-height:calc(100vh - 128px);margin:auto;object-fit:contain}.assetModal audio{width:calc(100% - 28px);margin:24px 14px}.assetModal pre{max-height:calc(100vh - 128px);margin:0;overflow:auto;padding:14px;color:var(--text-fg-muted);font-size:var(--text-sm);line-height:18px;white-space:pre-wrap}@media (max-width: 860px){.topNav{top:10px;right:10px;left:10px;width:auto}.brandNav{flex:0 0 auto}.workflowNameField{width:min(144px,34vw)}.floatingPanel{top:54px;left:54px;width:min(var(--panel-width),calc(100vw - 66px));max-height:calc(100dvh - 66px)}.floatingPanel.floatingPanel-channels{width:min(var(--panel-width),calc(100vw - 66px));max-height:min(520px,calc(100dvh - 66px))}.leftToolRail{left:10px}}.referencePicker{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.referencePickerLabel{font-size:var(--text-xs);color:#ffffff8c}.referenceThumbs{display:flex;flex-wrap:wrap;gap:6px}.referenceThumb{position:relative;width:52px;height:52px;border-radius:var(--radius-control);overflow:hidden;border:1px solid var(--border-default);display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised)}.referenceThumb img{width:100%;height:100%;object-fit:cover}.referenceThumb button{position:absolute;top:2px;right:2px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:#08080eb8;color:#ffffffd9;cursor:pointer}.referenceThumb button:hover{background:#dc3c3cd9}.assetModalActions{display:inline-flex;align-items:center;gap:8px}.assetModalActions button{display:inline-flex;align-items:center;gap:5px}.maskEditorModal{display:flex;flex-direction:column;gap:12px;max-width:min(92vw,720px);padding:16px;border-radius:var(--radius-panel);background:var(--surface-panel);border:1px solid var(--canvas-controls-border);box-shadow:var(--shadow-panel)}.maskEditorModal header{display:flex;align-items:center;gap:10px}.maskEditorModal header strong{font-size:var(--text-md)}.maskEditorModal header button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:auto;border:none;border-radius:var(--radius-control);background:var(--surface-raised);color:#ffffffd9;cursor:pointer}.maskEditorStage{position:relative;margin:0 auto;border-radius:var(--radius-panel);overflow:hidden;background:#0c0c10}.maskEditorStage canvas{display:block}.maskEditorImage{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.85}.maskEditorMask{position:relative;opacity:.55;cursor:crosshair;touch-action:none}.maskEditorError{padding:24px 12px;color:#ffb478e6;font-size:var(--text-sm);text-align:center}.maskEditorModal footer{display:flex;align-items:center;gap:10px}.maskBrushControl{flex:1;display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);color:#fff9}.maskBrushControl input{flex:1}.maskEditorModal footer button{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-control);border:1px solid var(--border-default);background:var(--surface-raised);color:#ffffffe0;font-size:var(--text-sm);cursor:pointer}.maskSaveButton{background:var(--accent)!important;border-color:transparent!important;color:#fff!important}.maskEditorModal footer button:disabled{opacity:.45;cursor:not-allowed}@media (max-height: 820px){.floatingPanel{top:54px;max-height:calc(100dvh - 66px)}}@media (max-width: 560px){.runFeedbackPanel{top:54px;right:auto;left:50%;width:min(360px,calc(100vw - 20px));max-height:calc(100dvh - 128px);transform:translate(-50%)}.runFeedbackPanel>footer button{flex:1 1 auto;min-height:32px}.runFeedbackPanel .iconButton{width:32px;height:32px}.topActions .topIconButton,.primaryRunButton span{display:none}.primaryRunButton{width:34px;height:34px;justify-content:center;padding:0}.floatingPanel{top:54px;left:10px;width:min(var(--panel-width),calc(100vw - 20px));max-height:calc(100dvh - 126px)}.floatingPanel.floatingPanel-channels{top:54px;left:10px;width:min(var(--panel-width),calc(100vw - 20px));min-height:0;max-height:calc(100dvh - 126px)}.channelFormGrid,.channelRouting{grid-template-columns:minmax(0,1fr)}.channelRouting>strong{padding-top:0}.channelRoutingGrid{grid-template-columns:minmax(0,1fr)}.channelToolbar{flex-wrap:wrap}.channelTableHeader{display:none}.channelTableRow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"identity health" "capabilities scope" "actions actions";min-width:0;gap:6px 8px;padding:8px 10px}.channelIdentity{grid-area:identity}.channelCapabilities{grid-area:capabilities}.channelTableRow>span:not(.channelHealth){grid-area:scope}.channelHealth{grid-area:health}.channelActions{grid-area:actions;justify-content:flex-start}.channelActions:empty{display:none}.leftToolRail{top:auto;bottom:10px;left:50%;max-width:calc(100% - 20px);flex-direction:row;overflow-x:auto;transform:translate(-50%)}.leftToolRail>button{width:34px;height:34px}.leftToolRail>button:after{display:none}.toolRailDivider{width:1px;height:18px;margin:0 2px}.toolRailMenu{top:auto;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,5px) scale(.985);transform-origin:bottom center}.toolRailMenu[data-open=true]{transform:translate(-50%) scale(1)}.floatingPanelHeader .iconButton{width:32px;height:32px}.libtvAddItem,.quickAddItem,.secondaryAction{min-height:34px}.channelDialog footer button,.channelCenter .primaryButton,.channelFilters button{min-height:32px}.channelToolbar .iconButton{width:32px;height:32px}.canvasMiniMap{display:none}.canvasViewControls{bottom:56px;left:10px;max-width:calc(100% - 20px);overflow-x:auto}}@media (hover: none){.editableListRow button{opacity:1}}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}.nodeInput:focus-visible,.nodeTextarea:focus-visible{outline:0!important;background:#ffffff06;box-shadow:inset 0 -2px var(--accent)}button:active:not(:disabled){transform:translateY(1px)}.floatingPanelBody,.quickAddList{scrollbar-color:var(--surface-active) transparent;scrollbar-width:thin}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.workspace .canvasEdgePulse{display:none}}
