.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}
.canvas-screen{color:#171816;background:#f7f7f3;flex-direction:column;height:100dvh;min-height:520px;display:flex;overflow:hidden}.canvas-toolbar{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f7f3f5;border-bottom:1px solid #dedfd8;flex:none;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:8px 12px;display:flex;position:relative}.canvas-toolbar__primary,.canvas-toolbar__actions,.canvas-tool-group{align-items:center;min-width:0;display:flex}.canvas-toolbar__primary{flex:auto;gap:8px}.canvas-toolbar__actions{flex:none;gap:10px}.canvas-tool-group{gap:3px}.canvas-tool-group+.canvas-tool-group{border-left:1px solid #dedfd8;padding-left:10px}.canvas-icon-button,.canvas-action-button{color:#454844;background:0 0;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;height:34px;transition:background-color .14s,color .14s,border-color .14s;display:inline-flex}.canvas-icon-button{width:34px}.canvas-icon-button:focus-visible,.canvas-action-button:focus-visible,.canvas-name-input:focus-visible{outline-offset:2px;outline:2px solid #315c47}.canvas-icon-button:disabled,.canvas-action-button:disabled{cursor:not-allowed;opacity:.35}.canvas-brand-mark{color:#fff;background:#171816;border-radius:5px;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.canvas-name-input{color:#171816;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:min(260px,34vw);min-width:100px;height:34px;padding:0 7px;font-size:14px;font-weight:600}.canvas-save-status{color:#6b6e68;flex:none;align-items:center;gap:5px;min-width:74px;font-size:11px;display:inline-flex}.canvas-action-button{background:#fff;border:1px solid #d8dad3;gap:7px;padding:0 11px;font-size:12px;font-weight:600}.canvas-stage{--canvas-pointer-x:50%;--canvas-pointer-y:50%;--canvas-pointer-opacity:0;background:#080a0b;flex:auto;min-height:0;position:relative;overflow:hidden}.canvas-generation-dock{z-index:25;pointer-events:none;opacity:0;visibility:hidden;width:min(1320px,100% - 48px);transition:opacity .16s,transform .18s,visibility .18s;position:absolute;bottom:16px;left:50%;right:0;transform:translate(-50%,calc(100% + 24px))}.canvas-generation-dock.is-visible{pointer-events:none;opacity:1;visibility:visible;transform:translate(-50%)}.canvas-generation-dock>div{width:100%}.canvas-generation-dock .generation-node-editor{box-sizing:border-box;pointer-events:auto;border:1px solid #3a4644;border-radius:10px;width:100%;max-width:none;box-shadow:0 18px 42px #00000075}.vibecanvas-flow{background:#080a0b}.canvas-stage:after{z-index:1;pointer-events:none;background:radial-gradient(220px circle at var(--canvas-pointer-x) var(--canvas-pointer-y), #6ead971f, #6ead9709 34%, transparent 72%);content:"";opacity:var(--canvas-pointer-opacity);transition:opacity .18s;position:absolute;inset:0}.canvas-file-drop-overlay{z-index:35;pointer-events:none;color:#eef7f1;background:#080a0bd1;border:2px dashed #79a993;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:14px;display:flex;position:absolute;inset:14px}.canvas-empty-hint{z-index:3;pointer-events:none;color:#eef7f194;letter-spacing:0;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.canvas-file-drop-overlay strong{font-weight:650}.vibecanvas-flow .react-flow__renderer,.vibecanvas-flow .react-flow__viewport{z-index:2}.vibecanvas-flow .react-flow__background pattern circle{fill:#34403b}.vibecanvas-flow .react-flow__pane{cursor:default}.vibecanvas-flow .react-flow__pane.dragging{cursor:grabbing}.vibecanvas-flow .react-flow__node{font-family:Segoe UI,Noto Sans SC,Microsoft YaHei,sans-serif}.vibecanvas-flow .react-flow__node.dragging{cursor:grabbing}.canvas-node{color:#171816;background:#fff;border:1px solid #d7d9d2;border-radius:6px;transition:border-color .14s,box-shadow .14s;position:relative;overflow:visible;box-shadow:0 8px 24px #22262214}.canvas-node__heading{border-bottom:1px solid #e6e7e2;justify-content:space-between;align-items:center;gap:10px;height:37px;padding:0 10px;display:flex}.canvas-node__kind{align-items:center;gap:6px;min-width:0;font-size:11px;font-weight:650;display:inline-flex}.canvas-node__source{color:#858881;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.image-canvas-node{width:240px}.image-canvas-node__preview{aspect-ratio:16/9;background:#e7e7e1;width:100%;height:auto;position:relative;overflow:hidden}.image-preview-state{color:#73776f;background:#eef0eb;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:100%;font-size:10px;display:flex}.image-preview-state button,.image-preview-state a{color:#81483d;background:#fff;border:1px solid #d7c7c2;border-radius:4px;align-items:center;gap:4px;height:26px;padding:0 8px;font-size:10px;font-weight:600;display:inline-flex}.canvas-field--name{padding:8px 9px 3px;display:block}.canvas-field--name input{color:#252723;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;height:30px;padding:0 6px;font-size:12px;font-weight:600}.canvas-node__asset-id{color:#9a9d96;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:1px 15px 10px;font-family:Consolas,monospace;font-size:9px;overflow:hidden}.image-canvas-node__actions{justify-content:flex-end;padding:0 10px 10px;display:flex}.image-canvas-node__preview-link{color:#a5cbb4;background:#202627;border:1px solid #3a4444;border-radius:5px;align-items:center;gap:5px;height:26px;padding:0 8px;font-size:10px;font-weight:600;text-decoration:none;display:inline-flex}.image-canvas-node__preview-link:hover{color:#e6eeea;background:#283332;border-color:#7db99a}.generation-canvas-node{width:min(498px, calc(280px * var(--generation-preview-ratio,1.7778)), calc(100vw - 28px));box-sizing:border-box}.generation-canvas-node__preview{color:#929a96;background:#1b1f20;border-bottom:1px solid #2d3232;width:100%;font-size:11px;display:block;position:relative;overflow:hidden}.generation-canvas-node__preview-frame{box-sizing:border-box;color:#a8b2ad;text-align:center;background:#242a2b;flex-direction:column;justify-content:flex-start;align-items:center;width:100%;height:100%;padding-top:26%;display:flex;position:relative;overflow:hidden}.generation-canvas-node__quick-actions{color:#9aa49f;text-align:left;flex-direction:column;align-items:flex-start;gap:9px;font-size:10px;display:flex;position:absolute;bottom:18px;left:18px;right:18px}.generation-canvas-node__quick-actions button{color:#e1e8e3;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;min-width:0;padding:0;font-size:10px;font-weight:650;display:inline-flex}.generation-canvas-node__quick-actions button:hover,.generation-canvas-node__quick-actions button:focus-visible{color:#9ee0bb;outline:none}.generation-canvas-node__quick-badge{border:1px solid;border-radius:2px;justify-content:center;align-items:center;min-width:15px;height:13px;font-size:7px;line-height:1;display:inline-flex}.generation-node-editor{color:#e6eeea;scrollbar-color:#4d5954 transparent;scrollbar-width:thin;background:#1b1f20;border-top:1px solid #2d3232;flex-direction:column;height:390px;min-height:390px;display:flex;overflow-y:auto}.generation-node-editor.is-expanded{height:540px;min-height:540px}.generation-node-editor__topline{border-bottom:1px solid #303838;flex:none;justify-content:flex-start;align-items:center;gap:8px;min-height:38px;padding:5px 9px;display:flex}.generation-node-editor__topline>strong{color:#eef5f0;font-size:11px;font-weight:650}.generation-node-editor__tools{justify-content:flex-start;align-items:center;gap:4px;width:100%;min-width:0;display:flex}.generation-editor__select,.generation-editor__tool,.generation-node-editor__expand{color:#b8c5be;background:#242b2b;border:1px solid #3a4644;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:4px;height:28px;font-size:10px;font-weight:600;display:inline-flex}.generation-editor__select{width:68px;position:relative}.generation-editor__select select{cursor:pointer;opacity:0;position:absolute;inset:0}.generation-editor__tool{min-width:58px;padding:0 7px}.generation-editor__tool:hover,.generation-editor__tool.is-active,.generation-node-editor__expand:hover{color:#eff7f2;background:#2b3934;border-color:#78b997}.generation-editor__menu-wrap{flex:none;position:relative}.generation-editor__menu{z-index:40;background:#202627;border:1px solid #3a4644;border-radius:4px;gap:2px;min-width:96px;padding:4px;display:grid;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 12px 28px #00000061}.generation-editor__menu button{color:#c7d2cc;text-align:left;background:0 0;border:0;border-radius:3px;height:26px;padding:0 7px;font-size:10px}.generation-editor__menu button:hover,.generation-editor__menu button:focus-visible{background:#2d3935;outline:none}.generation-node-editor__count{color:#85938b;font-variant-numeric:tabular-nums;text-align:center;min-width:26px;font-size:9px;display:none}.generation-node-editor__expand{width:28px;margin-left:auto;padding:0}.generation-node-editor .generation-options{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:8px 9px}.generation-node-editor .canvas-field>span{height:16px;font-size:9px}.generation-node-editor .canvas-field select{height:28px;padding:0 5px;font-size:10px}.generation-node-editor .reference-section{flex:none;min-height:68px;padding:6px 9px}.generation-node-editor .reference-list{max-height:62px}.generation-node-editor.is-expanded .reference-list{max-height:126px}.generation-node-editor .prompt-field{flex:none;padding:7px 9px 8px}.generation-node-editor .prompt-field textarea{resize:none;height:104px;min-height:104px}.generation-node-editor.is-expanded .prompt-field textarea{height:170px;min-height:170px}.generation-node-editor .mock-run-row{flex:none;min-height:43px;padding:6px 9px}.generation-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:10px;display:grid}.generation-options__model{grid-column:1/-1}.canvas-field{min-width:0}.canvas-field>span,.prompt-field__label{color:#767970;align-items:center;gap:3px;height:18px;font-size:10px;font-weight:600;display:flex}.canvas-field select{color:#2e302d;background:#f9faf7;border:1px solid #dadcd5;border-radius:4px;outline:none;width:100%;height:31px;padding:0 7px;font-size:11px}.canvas-field select:disabled{cursor:not-allowed;color:#777a73;background:#eef0eb}.reference-section{border-top:1px solid #ecece8;border-bottom:1px solid #ecece8;min-height:76px;padding:8px 10px}.reference-section__title{color:#74776f;justify-content:space-between;align-items:center;height:18px;font-size:10px;font-weight:600;display:flex}.reference-section__empty{color:#a0a39c;margin:9px 0 0;font-size:10px;line-height:18px}.reference-list{scrollbar-color:#c7cac2 transparent;scrollbar-width:thin;gap:4px;max-height:96px;padding-top:4px;display:grid;overflow-y:auto}.reference-chip{background:#f8f9f6;border:1px solid #e0e2dc;border-radius:4px;grid-template-columns:18px 24px minmax(0,1fr) 24px 32px;align-items:center;gap:5px;min-width:0;height:30px;padding:2px 3px 2px 5px;display:grid}.reference-chip__order{color:#315c47;font-family:Consolas,monospace;font-size:9px;font-weight:700}.reference-chip__thumb,.mention-menu img{object-fit:cover;border-radius:3px;width:24px;height:24px}.mention-menu__preview-placeholder{color:#73776f;background:#e8ebe5;border-radius:3px;flex:none;place-items:center;width:30px;height:30px;display:grid}.reference-chip__missing{color:#b44e3d;background:#f4e5e1;border-radius:3px;place-items:center;width:24px;height:24px;display:grid}.reference-chip__label{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.reference-chip button{color:#8c8f88;background:0 0;border:0;border-radius:3px;place-items:center;width:24px;height:24px;display:grid}.reference-chip__reorder{align-items:center;gap:1px;display:inline-flex}.reference-chip__reorder button{width:15px;height:22px}.reference-chip button:disabled{cursor:not-allowed;opacity:.28}.prompt-field{padding:9px 10px 10px;display:block;position:relative}.prompt-field textarea{resize:none;color:#262825;background:#fcfcfa;border:1px solid #d8dad3;border-radius:4px;outline:none;width:100%;height:104px;padding:8px 9px;font-size:11px;line-height:18px;display:block}.mention-menu{z-index:30;scrollbar-color:#c7cac2 transparent;scrollbar-width:thin;background:#fff;border:1px solid #cfd2ca;border-radius:5px;max-height:218px;position:absolute;top:142px;left:10px;right:10px;overflow-y:auto;box-shadow:0 14px 34px #20242029}.mention-menu__header{color:#7c7f78;background:#f8f9f6;border-bottom:1px solid #ecece8;justify-content:space-between;align-items:center;height:29px;padding:0 9px;font-size:9px;display:flex;position:sticky;top:0}.mention-menu>button{text-align:left;background:#fff;border:0;border-bottom:1px solid #f0f1ed;align-items:center;gap:8px;width:100%;min-width:0;padding:6px 8px;display:flex}.mention-menu>button:hover,.mention-menu>button:focus-visible{background:#f0f4f1;outline:none}.mention-menu img{flex:none;width:30px;height:30px}.mention-menu>button>span{min-width:0}.mention-menu strong,.mention-menu small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.mention-menu strong{color:#292b28;font-size:10px;font-weight:650}.mention-menu small{color:#93968f;margin-top:2px;font-family:Consolas,monospace;font-size:8px}.mention-menu__empty{color:#8e918a;text-align:center;margin:0;padding:15px 10px;font-size:10px}.mock-run-row{border-top:1px solid #ecece8;justify-content:space-between;align-items:center;gap:10px;min-height:49px;padding:7px 10px;display:flex}.mock-status{color:#858881;flex:auto;align-items:center;gap:5px;min-width:0;font-size:9px;line-height:14px;display:flex}.mock-status span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mock-status__dot{background:#9ca098;border-radius:50%;flex:none;width:6px;height:6px}.mock-status__spinner,.canvas-upload-spinner,.image-preview-state__spinner{flex:none;animation:.9s linear infinite canvas-spin}.mock-run-button{color:#fff;background:#315c47;border:1px solid #315c47;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:10px;font-weight:650;display:inline-flex}.mock-run-button:disabled{cursor:wait;opacity:.62}.canvas-handle.react-flow__handle{z-index:4;background:#315c47;border:2px solid #fff;width:11px;height:11px;box-shadow:0 0 0 1px #315c47}.react-flow__edge.selected .react-flow__edge-path{stroke:#d96b4a!important;stroke-width:2.2px!important}.react-flow__selection,.react-flow__nodesselection-rect{background:#315c470f;border:1px solid #315c47}.react-flow__controls,.react-flow__minimap{background:#fffffff0;border:1px solid #d8dad3;border-radius:6px;overflow:hidden;box-shadow:0 6px 18px #22262214}.canvas-feedback-stack{z-index:40;pointer-events:none;gap:8px;width:min(500px,100vw - 32px);display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%)}.canvas-notice{color:#454844;text-align:center;pointer-events:auto;background:#fffffff5;border:1px solid #d8dad3;border-radius:5px;padding:8px 11px;font-size:11px;box-shadow:0 8px 24px #2226221a}.canvas-upload-status{pointer-events:auto;background:#fffffff7;border:1px solid #d6d9d1;border-radius:6px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:9px 9px 9px 10px;display:grid;box-shadow:0 9px 26px #2226221f}.canvas-upload-status--error{border-color:#dfc5be}.canvas-upload-status__icon{color:#946125;place-items:center;width:24px;height:24px;display:grid}.canvas-upload-status--error .canvas-upload-status__icon{color:#b44e3d}.canvas-upload-status__copy{min-width:0;display:block}.canvas-upload-status__copy strong,.canvas-upload-status__copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.canvas-upload-status__copy strong{color:#292b28;font-size:11px;font-weight:650}.canvas-upload-status__copy small{color:#787b74;margin-top:2px;font-size:10px}.canvas-upload-status__actions{align-items:center;gap:4px;display:flex}.canvas-upload-status__action,.canvas-upload-status__dismiss{color:#4f534d;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;height:28px;font-size:10px;font-weight:650;display:inline-flex}.canvas-upload-status__action{background:#f8f9f6;border:1px solid #d6d9d1;gap:4px;padding:0 8px}.canvas-upload-status__dismiss{width:28px}.canvas-upload-status__action:hover,.canvas-upload-status__dismiss:hover{color:#171816;background:#e9ebe5}.canvas-sync-status{pointer-events:auto;background:#fffffffa;border:1px solid #dfc5be;border-radius:5px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:9px 9px 9px 10px;display:grid;box-shadow:0 9px 26px #2226221f}.canvas-sync-status--unavailable{border-color:#ddcfb8}.canvas-sync-status__icon{color:#b44e3d;place-items:center;width:24px;height:24px;display:grid}.canvas-sync-status--unavailable .canvas-sync-status__icon{color:#946125}.canvas-sync-status__copy{min-width:0;display:block}.canvas-sync-status__copy strong,.canvas-sync-status__copy small{overflow-wrap:anywhere;display:block}.canvas-sync-status__copy strong{color:#292b28;font-size:11px;font-weight:650}.canvas-sync-status__copy small{color:#787b74;margin-top:2px;font-size:10px;line-height:15px}.canvas-sync-status__actions{align-items:center;gap:4px;display:flex}.canvas-sync-status__action{color:#4f534d;text-align:center;background:#f8f9f6;border:1px solid #d6d9d1;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:4px;min-height:28px;padding:4px 8px;font-size:10px;font-weight:650;display:inline-flex}.canvas-sync-status__action:hover{color:#171816;background:#e9ebe5}.canvas-loading{background:#f7f7f3;flex-direction:column;height:100dvh;min-height:520px;display:flex}.canvas-loading__toolbar{border-bottom:1px solid #dedfd8;flex:none;align-items:center;gap:10px;height:56px;padding:0 12px;display:flex}.canvas-loading__toolbar span{background:#e2e4dd;border-radius:4px;width:34px;height:32px;animation:1.5s ease-in-out infinite canvas-pulse}.canvas-loading__toolbar span:nth-child(2){width:180px}.canvas-loading__stage{background-color:#f7f7f3;flex:auto;min-height:0;position:relative}.canvas-loading__node{background:#e8e9e4;border:1px solid #dadcd5;border-radius:6px;animation:1.5s ease-in-out infinite canvas-pulse;position:absolute;top:18%}.canvas-loading__node--image{width:240px;height:272px;left:15%}.canvas-loading__node--generation{width:min(498px,100vw - 28px);height:317px;left:46%}.canvas-route-error{color:#171816;text-align:center;background:#f7f7f3;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:28px;display:flex}.canvas-route-error>svg{color:#d96b4a}.canvas-route-error h1{margin:15px 0 0;font-size:19px}.canvas-route-error p{color:#6d7069;max-width:420px;margin:8px 0 0;font-size:13px;line-height:21px}.canvas-route-error>div{gap:8px;margin-top:20px;display:flex}.canvas-route-error a,.canvas-route-error button{color:#30322f;background:#fff;border:1px solid #d5d7d0;border-radius:5px;align-items:center;gap:6px;height:36px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.canvas-route-error button{color:#fff;background:#171816;border-color:#171816}.canvas-route-state{color:#171816;text-align:center;background:#f7f7f3;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:28px;display:flex}.canvas-route-state>svg{color:#d96b4a}.canvas-route-state h1{letter-spacing:0;margin:15px 0 0;font-size:19px}.canvas-route-state p{color:#6d7069;max-width:460px;margin:8px 0 0;font-size:13px;line-height:21px}.canvas-route-state__actions{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;margin-top:20px;display:flex}.canvas-command-button{color:#fff;background:#171816;border:1px solid #171816;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:7px 12px;font-size:12px;font-weight:600;display:inline-flex}.canvas-command-button--quiet{color:#30322f;background:#fff;border-color:#d5d7d0}.canvas-command-button--quiet:hover{background:#eceee8}@keyframes canvas-spin{to{transform:rotate(360deg)}}@keyframes canvas-pulse{0%,to{opacity:.48}50%{opacity:.82}}@media (max-width:720px){.canvas-generation-dock{width:auto;bottom:8px;left:8px;right:8px;transform:translateY(calc(100% + 16px))}.canvas-generation-dock.is-visible{transform:translateY(0)}.canvas-screen,.canvas-loading{min-height:580px}.canvas-toolbar{flex-direction:column;align-items:stretch;gap:5px;min-height:101px;padding:7px 8px}.canvas-toolbar__primary{min-height:38px}.canvas-toolbar__actions{scrollbar-width:none;justify-content:space-between;width:100%;min-height:38px;overflow-x:auto}.canvas-toolbar__actions::-webkit-scrollbar{display:none}.canvas-name-input{width:min(42vw,220px)}.canvas-save-status{min-width:26px}.canvas-save-status span{display:none}.canvas-tool-group--create{margin-left:auto}.react-flow__minimap{width:118px!important;height:76px!important}.canvas-loading__toolbar{height:101px}.canvas-loading__node--image{left:8%}.canvas-loading__node--generation{width:min(498px,100vw - 28px);height:317px;top:36%;left:18%}.canvas-sync-status{grid-template-columns:22px minmax(0,1fr);align-items:start}.canvas-sync-status__actions{flex-wrap:wrap;grid-column:2}}@media (max-width:420px){.canvas-brand-mark{display:none}.canvas-name-input{width:min(46vw,170px)}.canvas-action-button{padding:0 9px}.canvas-feedback-stack{width:calc(100vw - 16px);top:8px}.canvas-upload-status{grid-template-columns:22px minmax(0,1fr) auto;gap:5px;padding:8px 6px 8px 8px}.canvas-upload-status__action{width:28px;padding:0;font-size:0}.react-flow__minimap{grid-column:1/-1;margin-left:0}}@media (prefers-reduced-motion:reduce){.mock-status__spinner,.canvas-upload-spinner,.image-preview-state__spinner,.canvas-loading__toolbar span,.canvas-loading__node{animation:none}}.canvas-screen{color:#eef2ef;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0b0d0e}.canvas-toolbar{color:#eef2ef;background:#111415f7;border-bottom-color:#2a3031}.canvas-tool-group+.canvas-tool-group{border-left-color:#303637}.canvas-icon-button,.canvas-action-button{color:#aeb7b2}.canvas-icon-button:hover:not(:disabled),.canvas-action-button:hover:not(:disabled){color:#f2f6f3;background:#252b2c}.canvas-icon-button:focus-visible,.canvas-action-button:focus-visible,.canvas-name-input:focus-visible{outline-color:#8ac6a8}.canvas-brand-mark{color:#101514;background:#dce9e1}.canvas-name-input{color:#edf2ef}.canvas-name-input:hover,.canvas-name-input:focus{background:#1b2021;border-color:#3a4444}.canvas-save-status{color:#89948f}.canvas-save-status--saved{color:#8ac6a8}.canvas-save-status--error,.canvas-save-status--conflict{color:#f09a7d}.canvas-action-button{color:#d5ded9;background:#202526;border-color:#3a4444}.canvas-action-button--primary{color:#111716;background:#b6d8c4;border-color:#b6d8c4}.canvas-action-button--primary:hover:not(:disabled){color:#111716;background:#d5ebe0;border-color:#d5ebe0}.canvas-toolbar__account{border-left:1px solid #303637;align-items:center;gap:8px;min-width:0;padding-left:10px;display:flex}.credit-link--canvas{color:#e7efe9;font-variant-numeric:tabular-nums;background:#202526;border:1px solid #3a4444;border-radius:5px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:72px;height:34px;padding:0 10px;font-size:12px;font-weight:650;transition:border-color .14s,background-color .14s,color .14s;display:inline-flex}.credit-link--canvas:hover{color:#fff;background:#2a3232;border-color:#61736b}.credit-link--canvas svg{color:#e5b37a}.session-control--canvas{flex:none;min-width:0;position:relative}.session-control--loading{color:#78847f;place-items:center;width:34px;height:34px;display:grid}.session-control--signed-out{color:#b6c1bb;border:1px solid #3a4444;border-radius:5px;place-items:center;width:34px;height:34px;display:grid}.session-control--signed-out:hover{color:#f2f6f3;background:#252b2c}.session-control__trigger--canvas{color:#e7efe9;background:#202526;border:1px solid #3a4444;border-radius:5px;justify-content:flex-end;align-items:center;gap:8px;min-width:84px;max-width:min(190px,22vw);height:34px;padding:0 5px 0 10px;font-size:12px;font-weight:600;transition:border-color .14s,background-color .14s;display:inline-flex}.session-control__trigger--canvas:hover{background:#2a3232;border-color:#61736b}.session-control__trigger--canvas:focus-visible,.session-control--signed-out:focus-visible{outline-offset:2px;outline:2px solid #8ac6a8}.session-control__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-control__avatar{color:#152019;background:#d5e5dc;border-radius:4px;flex:none;place-items:center;width:24px;height:24px;font-size:10px;font-weight:750;display:grid}.session-control__menu--canvas{z-index:60;background:#181d1e;border:1px solid #3a4444;border-radius:6px;width:min(18rem,100vw - 2rem);padding:8px;position:absolute;top:42px;right:0;box-shadow:0 18px 48px #0000006b}.session-control__menu--canvas .border-b{border-color:#30393a}.session-control__menu--canvas .text-ink{color:#edf2ef}.session-control__menu--canvas .text-neutral-500{color:#8e9b95}.session-control__menu--canvas button{color:#bac5bf}.session-control__menu--canvas button:hover{color:#f1f5f2;background:#252d2d}.session-control__menu-credit{color:#8e9b95;margin:8px 0 0;font-size:11px}.session-control__menu-credit strong{color:#e5b37a;font-variant-numeric:tabular-nums;font-weight:700}.canvas-node{color:#edf2ef;background:#1a1f20;border-color:#343d3e;box-shadow:0 12px 30px #0000005c}.canvas-node.is-selected{border-color:#7db99a;box-shadow:0 0 0 2px #7db99a3d,0 14px 34px #00000070}.canvas-node__heading{border-bottom-color:#30393a}.canvas-node__source{color:#89958f}.image-canvas-node__preview{background:#242a2b}.image-preview-state{color:#9aa59f;background:#222829}.image-preview-state--error{color:#f09a7d;background:#302321}.image-preview-state button,.image-preview-state a{color:#f3b39c;background:#3a2926;border-color:#725247}.canvas-field--name input{color:#e8efeb}.canvas-field--name input:hover,.canvas-field--name input:focus{background:#202627;border-color:#3b4645}.canvas-node__asset-id{color:#737f79}.generation-canvas-node.is-drop-target{border-color:#8ac6a8;box-shadow:0 0 0 3px #8ac6a833,0 14px 36px #00000070}.canvas-field>span,.prompt-field__label,.reference-section__title{color:#8c9892}.canvas-field select{color:#e6eeea;background:#202627;border-color:#3a4444}.canvas-field select:hover{background:#252d2d;border-color:#56645e}.canvas-field select:focus,.prompt-field textarea:focus{border-color:#7db99a;box-shadow:0 0 0 2px #7db99a2e}.reference-section{border-top-color:#30393a;border-bottom-color:#30393a}.reference-section__empty{color:#75817b}.reference-list{scrollbar-color:#4d5954 transparent}.reference-chip{background:#202627;border-color:#35403f}.reference-chip__order{color:#8ac6a8}.mention-menu__preview-placeholder{color:#98a49e;background:#2b3333}.reference-chip__missing{color:#f09a7d;background:#3a2825}.reference-chip button{color:#89958f}.reference-chip button:hover{color:#edf2ef;background:#303939}.prompt-field textarea{color:#e6eeea;background:#202627;border-color:#3a4444}.prompt-field textarea::placeholder{color:#718079}.mention-menu{scrollbar-color:#4d5954 transparent;background:#181d1e;border-color:#3a4444;box-shadow:0 14px 34px #00000070}.mention-menu__header{color:#8e9b95;background:#202627;border-bottom-color:#30393a}.mention-menu>button{background:#181d1e;border-bottom-color:#2d3636}.mention-menu>button:hover,.mention-menu>button:focus-visible{background:#283030}.mention-menu strong{color:#e6eeea}.mention-menu small,.mention-menu__empty{color:#7f8b85}.mock-run-row{border-top-color:#30393a}.mock-status{color:#89958f}.mock-status--queued,.mock-status--generating{color:#e5b37a}.mock-status--succeeded{color:#8ac6a8}.mock-status--error{color:#f09a7d}.mock-status__dot{background:#66736d}.mock-run-button{color:#111716;background:#8fc8a7;border-color:#8fc8a7}.mock-run-button:hover:not(:disabled){background:#b6d8c4;border-color:#b6d8c4}.canvas-handle.react-flow__handle{background:#8ac6a8;border-color:#1a1f20;box-shadow:0 0 0 1px #8ac6a8}.canvas-handle--muted.react-flow__handle{background:#66736d;box-shadow:0 0 0 1px #4d5954}.react-flow__edge.selected .react-flow__edge-path{stroke:#e5b37a!important}.react-flow__selection,.react-flow__nodesselection-rect{background:#8ac6a814;border-color:#8ac6a8}.react-flow__controls,.react-flow__minimap{background:#181d1ef2;border-color:#3a4444;box-shadow:0 8px 24px #0000005c}.react-flow__controls-button{color:#b5c0ba;background:0 0;border-bottom-color:#30393a}.react-flow__controls-button:hover{background:#2a3232}.canvas-notice,.canvas-upload-status,.canvas-sync-status{color:#c6d0ca;background:#181d1ef7;border-color:#3a4444;box-shadow:0 10px 28px #0006}.canvas-upload-status--error,.canvas-sync-status{border-color:#6a4841}.canvas-upload-status--success{border-color:#486957}.canvas-upload-status__icon{color:#e5b37a}.canvas-upload-status--error .canvas-upload-status__icon,.canvas-sync-status__icon{color:#f09a7d}.canvas-upload-status--success .canvas-upload-status__icon{color:#8ac6a8}.canvas-upload-status__copy strong,.canvas-sync-status__copy strong{color:#e6eeea}.canvas-upload-status__copy small,.canvas-sync-status__copy small{color:#89958f}.canvas-upload-status__action,.canvas-sync-status__action{color:#bac5bf;background:#202627;border-color:#3a4444}.canvas-upload-status__dismiss{color:#89958f}.canvas-upload-status__action:hover,.canvas-upload-status__dismiss:hover,.canvas-sync-status__action:hover{color:#f1f5f2;background:#2a3232}.canvas-loading{background:#0b0d0e}.canvas-loading__toolbar{border-bottom-color:#2a3031}.canvas-loading__toolbar span{background:#252b2c}.canvas-loading__stage{background-color:#080a0b}.canvas-loading__node{background:#1a1f20;border-color:#343d3e}.canvas-route-error,.canvas-route-state{color:#edf2ef;background:#0b0d0e}.canvas-route-error p,.canvas-route-state p{color:#89958f}.canvas-route-error a,.canvas-route-error button,.canvas-command-button--quiet{color:#d5ded9;background:#202627;border-color:#3a4444}.canvas-route-error button,.canvas-command-button{color:#111716;background:#8fc8a7;border-color:#8fc8a7}.canvas-command-button:hover{background:#b6d8c4}.canvas-command-button--quiet:hover,.canvas-route-error a:hover{color:#f1f5f2;background:#2a3232}@media (max-width:720px){.canvas-toolbar__primary{padding-right:108px}.canvas-toolbar__account{background:#111415f7;border-left:0;padding-left:4px;position:absolute;top:7px;right:8px;box-shadow:-12px 0 16px #111415f7}.generation-options{grid-template-columns:repeat(2,minmax(0,1fr))}.session-control__trigger--canvas{max-width:150px}}@media (max-width:420px){.session-control__name{display:none}.session-control__trigger--canvas{justify-content:center;width:34px;min-width:34px;padding:0}.credit-link--canvas{min-width:62px;padding:0 7px}}.canvas-stage,.vibecanvas-flow{background:#111313}.canvas-generation-dock{width:min(1320px,100% - 48px);bottom:64px}.canvas-generation-dock .generation-node-editor{box-sizing:border-box;background:#252525;border:1px solid #3a3b3b;border-radius:28px;height:384px;min-height:384px;overflow:hidden;box-shadow:0 22px 52px #0000006b}.canvas-generation-dock .generation-node-editor.is-expanded{height:540px;min-height:540px}.generation-canvas-node{width:min(440px, calc(248px * var(--generation-preview-ratio,1.7778)), calc(100vw - 32px));box-shadow:none;background:0 0;border:0;border-radius:0}.generation-canvas-node.is-selected{box-shadow:none;border:0}.generation-canvas-node__heading{box-sizing:border-box;color:#969b9b;border-bottom:0;justify-content:flex-start;align-items:flex-start;height:36px;padding:0 0 6px}.generation-canvas-node__heading .canvas-node__kind{color:#a5a8a8;gap:7px;font-size:15px;font-weight:500}.generation-canvas-node__heading .canvas-node__kind svg{color:#8c9292}.canvas-node.image-canvas-node{width:clamp(160px, calc(240px * var(--image-preview-ratio,1.7778)), 400px);box-shadow:none;background:0 0;border:0;border-radius:0}.canvas-node.image-canvas-node.is-selected{box-shadow:none;border:0}.image-canvas-node .canvas-node__heading{color:#d9dddb;border:0;justify-content:flex-start;gap:6px;height:30px;padding:0 2px 6px}.image-canvas-node .canvas-node__heading>svg{color:#c7cdca;flex:none}.image-canvas-node .canvas-field--name{flex:auto;min-width:0;padding:0}.image-canvas-node .canvas-field--name input{color:#e6e9e7;border:0;width:100%;height:24px;padding:0;font-size:14px;font-weight:600}.image-canvas-node .canvas-field--name input:hover,.image-canvas-node .canvas-field--name input:focus{background:#242727;border:0;box-shadow:0 0 0 4px #242727}.image-canvas-node__preview{width:100%;aspect-ratio:var(--image-preview-ratio,1.7778);background:#202323;border:1px solid #4d5251;border-radius:8px}.image-canvas-node__preview img{object-fit:contain}.image-canvas-node.is-selected .image-canvas-node__preview{border-color:#9da0a0;box-shadow:0 0 0 2px #7db99a33}.generation-canvas-node__preview{box-sizing:border-box;background:#262626;border:1px solid #6a6c6c;border-radius:12px}.generation-canvas-node.is-selected .generation-canvas-node__preview{border-color:#9da0a0;box-shadow:0 0 0 1px #ffffff0d}.generation-canvas-node .canvas-handle.react-flow__handle{background:#8d9292;border-color:#1a1f20;box-shadow:0 0 0 1px #6f7474}.generation-canvas-node__preview-frame{color:#666868;background:#272727;padding-top:15%}.generation-canvas-node__quick-actions{color:#858989;gap:15px;font-size:12px;bottom:44px;left:24px;right:24px}.generation-canvas-node__quick-actions button{color:#e3e6e5;gap:6px;font-size:12px}.generation-canvas-node__quick-actions button:hover,.generation-canvas-node__quick-actions button:focus-visible{color:#b8e2ca}.generation-canvas-node__quick-badge{border-radius:3px;width:15px;min-width:15px;height:15px;font-size:8px}.canvas-generation-dock .generation-node-editor__topline{box-sizing:border-box;border-bottom:0;order:1;min-height:78px;padding:24px 26px 8px}.canvas-generation-dock .generation-node-editor__topline>strong{display:none}.canvas-generation-dock .generation-node-editor__tools{gap:10px;width:100%}.canvas-generation-dock .generation-editor__select,.canvas-generation-dock .generation-editor__tool,.canvas-generation-dock .generation-node-editor__expand{box-sizing:border-box;color:#a9acad;background:#303030;border:0;border-radius:26px;height:52px;font-size:19px;font-weight:500}.canvas-generation-dock .generation-editor__select{width:104px}.canvas-generation-dock .generation-editor__tool{min-width:104px;padding:0 16px}.canvas-generation-dock .generation-editor__select:hover,.canvas-generation-dock .generation-editor__tool:hover,.canvas-generation-dock .generation-editor__tool.is-active,.canvas-generation-dock .generation-node-editor__expand:hover{color:#e7e9e8;background:#393939;border-color:#0000}.canvas-generation-dock .generation-editor__tool:disabled{cursor:not-allowed;opacity:.42}.canvas-generation-dock .generation-editor__select svg,.canvas-generation-dock .generation-editor__tool svg{color:#a1a6a5}.canvas-generation-dock .generation-editor__menu{background:#292929;border-color:#474747;border-radius:10px;padding:6px;inset:calc(100% + 8px) auto auto 0}.canvas-generation-dock .generation-editor__menu button{color:#d3d5d4;border-radius:6px;height:32px;font-size:13px}.canvas-generation-dock .generation-editor__menu button:hover,.canvas-generation-dock .generation-editor__menu button:focus-visible{background:#3a3a3a}.canvas-generation-dock .generation-node-editor__count{justify-content:center;align-items:center;display:inline-flex}.canvas-generation-dock .generation-node-editor__expand{color:#a9acad;background:0 0;width:50px;min-width:50px;margin-left:auto;padding:0}.canvas-generation-dock .generation-node-editor__expand:hover{background:#303030}.canvas-generation-dock .generation-node-editor .reference-section{box-sizing:border-box;border:0;order:2;min-height:0;padding:0 28px 8px}.canvas-generation-dock .generation-node-editor .reference-section:has(.reference-section__empty){display:none}.canvas-generation-dock .generation-node-editor .reference-section__title{color:#929797;font-size:12px}.canvas-generation-dock .generation-node-editor .reference-list{max-height:54px;padding-top:3px}.canvas-generation-dock .generation-node-editor .prompt-field{box-sizing:border-box;flex:auto;order:3;min-height:0;padding:0 32px 12px}.canvas-generation-dock .generation-node-editor .prompt-field__label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.canvas-generation-dock .generation-node-editor .prompt-field textarea{box-sizing:border-box;resize:none;color:#e5e6e6;background:0 0;border:0;width:100%;height:100%;min-height:0;padding:20px 2px 8px;font-size:25px;line-height:1.45}.canvas-generation-dock .generation-node-editor .prompt-field textarea::placeholder{color:#656b6d}.canvas-generation-dock .generation-node-editor .prompt-field textarea:focus{box-shadow:none;border:0;outline:0}.canvas-generation-dock .generation-node-editor .mention-menu{border-radius:12px;top:74px;left:32px;right:32px}.canvas-generation-dock .generation-node-editor .mention-menu>button.is-active{background:#303535}.canvas-generation-dock .generation-node-editor .generation-options{box-sizing:border-box;scrollbar-width:none;flex:0 0 58px;order:4;align-items:center;gap:2px;min-height:58px;padding:0 24px;display:flex;overflow-x:auto}.canvas-generation-dock .generation-node-editor .generation-options::-webkit-scrollbar{display:none}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field{flex:none;position:relative}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field>span{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.canvas-generation-dock .generation-node-editor .generation-options__model{width:260px}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field:not(.generation-options__model){width:112px}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field+.canvas-field{border-left:1px solid #454646;padding-left:10px}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field select{color:#e3e6e5;background:0 0;border:0;border-radius:12px;outline:0;height:48px;padding:0 7px;font-size:18px}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field select:hover{background:#2e2e2e}.canvas-generation-dock .generation-node-editor .mock-run-row{box-sizing:border-box;border-top:0;flex:0 0 64px;order:5;min-height:64px;padding:0 28px 14px}.canvas-generation-dock .generation-node-editor .mock-status{color:#87908f;font-size:11px}.canvas-generation-dock .generation-node-editor .mock-run-button{color:#171818;background:#b8b8b8;border:0;border-radius:50%;width:64px;height:64px;padding:0;font-size:0}.canvas-generation-dock .generation-node-editor .mock-run-button svg{stroke-width:2px;width:26px;height:26px}.canvas-generation-dock .generation-node-editor .mock-run-button:hover:not(:disabled){color:#111212;background:#d5d5d5;border:0}@media (max-width:720px){.canvas-generation-dock{width:auto;bottom:16px;left:8px;right:8px}.canvas-generation-dock .generation-node-editor{border-radius:22px;height:360px;min-height:360px}.canvas-generation-dock .generation-node-editor.is-expanded{height:500px;min-height:500px}.canvas-generation-dock .generation-node-editor__topline{min-height:64px;padding:12px 14px 8px}.canvas-generation-dock .generation-node-editor__tools{scrollbar-width:none;gap:6px;overflow-x:auto}.canvas-generation-dock .generation-node-editor__tools::-webkit-scrollbar{display:none}.canvas-generation-dock .generation-editor__select,.canvas-generation-dock .generation-editor__tool,.canvas-generation-dock .generation-node-editor__expand{border-radius:21px;height:42px;font-size:14px}.canvas-generation-dock .generation-editor__select{width:88px}.canvas-generation-dock .generation-editor__tool{min-width:78px;padding:0 11px}.canvas-generation-dock .generation-node-editor__expand{width:42px;min-width:42px}.canvas-generation-dock .generation-node-editor .reference-section{padding:0 16px 6px}.canvas-generation-dock .generation-node-editor .prompt-field{padding:0 18px 8px}.canvas-generation-dock .generation-node-editor .prompt-field textarea{padding:14px 1px 6px;font-size:20px}.canvas-generation-dock .generation-node-editor .mention-menu{top:58px;left:18px;right:18px}.canvas-generation-dock .generation-node-editor .generation-options{flex:0 0 72px;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;min-height:72px;padding:0 14px 4px;display:grid;overflow:hidden}.canvas-generation-dock .generation-node-editor .generation-options__model{grid-column:1/-1;width:auto}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field:not(.generation-options__model){width:auto}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field+.canvas-field{padding-left:3px}.canvas-generation-dock .generation-node-editor .generation-options .canvas-field select{height:30px;font-size:12px}.canvas-generation-dock .generation-node-editor .mock-run-row{flex-basis:56px;min-height:56px;padding:0 16px 8px}.canvas-generation-dock .generation-node-editor .mock-run-button{width:46px;height:46px}.canvas-generation-dock .generation-node-editor .mock-run-button svg{width:20px;height:20px}.generation-canvas-node__heading .canvas-node__kind{font-size:14px}}@media (max-width:420px){.canvas-generation-dock .generation-node-editor__topline{padding-left:10px;padding-right:10px}.canvas-generation-dock .generation-editor__select{width:76px}.canvas-generation-dock .generation-editor__tool{min-width:64px;padding:0 7px}.canvas-generation-dock .generation-node-editor .mock-status{max-width:108px}}.canvas-generation-dock.canvas-generation-dock--node{opacity:1;visibility:visible;width:min(820px,100vw - 40px);transition:none;inset:calc(100% + 12px) auto auto 50%;transform:translate(-50%)}.canvas-generation-dock--node .generation-node-editor{border-radius:20px;height:320px;min-height:320px}.canvas-generation-dock--node .generation-node-editor.is-expanded{height:460px;min-height:460px}.canvas-generation-dock--node .generation-node-editor__topline{min-height:56px;padding:12px 18px 6px}.canvas-generation-dock--node .generation-node-editor__tools{gap:8px}.canvas-generation-dock--node .generation-editor__select,.canvas-generation-dock--node .generation-editor__tool,.canvas-generation-dock--node .generation-node-editor__expand{border-radius:19px;height:38px;font-size:14px}.canvas-generation-dock--node .generation-editor__select{width:86px}.canvas-generation-dock--node .generation-editor__tool{min-width:86px;padding:0 12px}.canvas-generation-dock--node .generation-node-editor__expand{width:38px;min-width:38px}.canvas-generation-dock--node .generation-node-editor .reference-section{padding:0 18px 6px}.canvas-generation-dock--node .generation-node-editor .prompt-field{padding:0 20px 8px}.canvas-generation-dock--node .generation-node-editor .prompt-field textarea{padding:12px 2px 6px;font-size:18px}.canvas-generation-dock--node .generation-node-editor .mention-menu{top:58px;left:20px;right:20px}.canvas-generation-dock--node .generation-node-editor .generation-options{flex-basis:48px;min-height:48px;padding:0 16px}.canvas-generation-dock--node .generation-node-editor .generation-options__model{width:200px}.canvas-generation-dock--node .generation-node-editor .generation-options .canvas-field:not(.generation-options__model){width:92px}.canvas-generation-dock--node .generation-node-editor .generation-options .canvas-field select{height:38px;font-size:14px}.canvas-generation-dock--node .generation-node-editor .mock-run-row{flex-basis:52px;min-height:52px;padding:0 18px 10px}.canvas-generation-dock--node .generation-node-editor .mock-run-button{width:48px;height:48px}.canvas-generation-dock--node .generation-node-editor .mock-run-button svg{width:21px;height:21px}@media (max-width:720px){.canvas-generation-dock.canvas-generation-dock--node{width:calc(100vw - 24px);inset:calc(100% + 10px) auto auto 50%;transform:translate(-50%)}.canvas-generation-dock--node .generation-node-editor{border-radius:18px;height:300px;min-height:300px}.canvas-generation-dock--node .generation-node-editor.is-expanded{height:420px;min-height:420px}.canvas-generation-dock--node .generation-node-editor__topline{min-height:52px;padding:8px 10px 6px}.canvas-generation-dock--node .generation-node-editor__tools{gap:4px}.canvas-generation-dock--node .generation-editor__select,.canvas-generation-dock--node .generation-editor__tool,.canvas-generation-dock--node .generation-node-editor__expand{border-radius:18px;height:36px;font-size:12px}.canvas-generation-dock--node .generation-editor__select{width:72px}.canvas-generation-dock--node .generation-editor__tool{min-width:62px;padding:0 7px}.canvas-generation-dock--node .generation-node-editor__expand{width:36px;min-width:36px}.canvas-generation-dock--node .generation-node-editor .prompt-field textarea{padding-top:10px;font-size:16px}.canvas-generation-dock--node .generation-node-editor .mock-run-button{width:42px;height:42px}}.mention-menu>button:disabled{cursor:default;opacity:.66}.mention-menu>button:disabled:hover,.mention-menu>button:disabled:focus-visible{background:#202525}.mention-menu__copy{flex:auto}.mention-menu__state{color:#aeb8b4;white-space:nowrap;border:1px solid #46514d;border-radius:4px;flex:none;padding:2px 6px;font-size:10px;line-height:16px}.mention-menu>button:not(:disabled) .mention-menu__state{color:#b8e2ca;border-color:#47705d}.canvas-batch-reference-handle{z-index:35;color:#173c2b;cursor:grab;background:#d8eee2;border:1px solid #89bca2;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:absolute;transform:translateY(-50%);box-shadow:0 5px 16px #0000004d}.canvas-batch-reference-handle:hover,.canvas-batch-reference-handle:focus-visible{background:#e5f6ec;border-color:#b5e1ca;outline:none}.canvas-batch-reference-handle:active{cursor:grabbing}.canvas-batch-reference-handle>span{box-sizing:border-box;color:#fff;background:#315c47;border:2px solid #131717;border-radius:10px;place-items:center;min-width:19px;height:19px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-7px}
