.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))}
.toolbar-chip,.toolbar-segment,.plain-tool,.bottom-mini,.zoom-pill,.dock-button,.dock-add{justify-content:center;align-items:center;transition:background .16s,color .16s,border-color .16s,transform .16s;display:inline-flex}.toolbar-chip{width:42px;height:40px;color:var(--text-strong)}.toolbar-chip-strong{background:#ffffff09}.canvas-home-button{border:1px solid var(--border-soft);background:var(--surface-chrome);width:40px;height:40px;color:var(--text-muted);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:12px;justify-content:center;align-items:center;text-decoration:none;transition:background .16s,color .16s,border-color .16s,transform .16s;display:inline-flex}.canvas-home-button:hover{border-color:var(--border-strong);background:var(--surface-hover);color:var(--text-strong);transform:translateY(-1px)}.canvas-home-button svg{width:18px;height:18px}.canvas-project-hub{background:radial-gradient(circle at 18% 8%, rgba(var(--accent-cyan-rgb), .1), transparent 30%), linear-gradient(180deg, #ffffff09, transparent 280px), var(--surface-canvas);min-height:100vh;padding:34px;position:relative;overflow:hidden}.canvas-project-hub-backdrop{pointer-events:none;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000d9,#0000 70%);mask-image:linear-gradient(#000000d9,#0000 70%)}.canvas-project-hub-header,.canvas-project-hub-panel{z-index:1;position:relative}.canvas-project-hub-header{justify-content:space-between;align-items:flex-start;gap:22px;max-width:1320px;margin:0 auto 26px;display:flex}.canvas-project-hub-header p{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:12px;font-weight:750}.canvas-project-hub-header h1{color:var(--text-strong);letter-spacing:0;margin:0;font-size:30px;font-weight:760}.canvas-project-hub-header span{max-width:560px;color:var(--text-muted);margin-top:10px;font-size:14px;line-height:1.65;display:block}.canvas-project-hub-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.canvas-project-hub-primary,.canvas-project-hub-ghost{border-radius:10px;justify-content:center;align-items:center;height:38px;padding:0 14px;font-size:13px;font-weight:750;text-decoration:none;transition:background .16s,color .16s,border-color .16s,transform .16s;display:inline-flex}.canvas-project-hub-primary{color:#111;background:#f5f5f5}.canvas-project-hub-primary:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.canvas-project-hub-primary:disabled{cursor:wait;opacity:.6}.canvas-project-hub-ghost{border:1px solid var(--border-soft);background:var(--surface-chrome);color:var(--text-main)}.canvas-project-hub-ghost:hover{border-color:var(--border-strong);color:var(--text-strong)}.canvas-project-hub-panel{border:1px solid var(--border-soft);max-width:1320px;min-height:calc(100vh - 190px);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#181818c7;border-radius:18px;margin:0 auto;padding:18px}.canvas-project-hub-notice{border:1px solid rgba(var(--accent-cyan-rgb), .22);background:rgba(var(--accent-cyan-rgb), .08);color:var(--text-main);border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:700;line-height:1.5}.canvas-project-hub-toolbar{border-bottom:1px solid var(--border-soft);grid-template-columns:minmax(240px,1fr) 180px auto;align-items:end;gap:12px;padding-bottom:18px;display:grid}.canvas-project-hub-toolbar label{color:var(--text-muted);gap:7px;font-size:12px;font-weight:700;display:grid}.canvas-project-hub-toolbar input,.canvas-project-name-input{border:1px solid var(--border-soft);height:38px;color:var(--text-strong);background:#ffffff0b;border-radius:10px;outline:0;padding:0 12px}.canvas-project-hub-toolbar input:focus,.canvas-project-name-input:focus{border-color:rgba(var(--accent-cyan-rgb), .62);box-shadow:0 0 0 3px rgba(var(--accent-cyan-rgb), .12)}.canvas-project-sort-control,.canvas-project-sort-wrap{position:relative}.canvas-project-sort-trigger{border:1px solid var(--border-soft);width:100%;height:38px;color:var(--text-strong);background:#ffffff0b;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;font-size:13px;font-weight:720;transition:border-color .16s,background .16s,box-shadow .16s;display:flex}.canvas-project-sort-trigger:hover,.canvas-project-sort-trigger.is-open{border-color:rgba(var(--accent-cyan-rgb), .62);box-shadow:0 0 0 3px rgba(var(--accent-cyan-rgb), .1);background:#ffffff12}.canvas-project-sort-trigger svg{width:14px;height:14px;color:var(--text-muted);transition:transform .16s}.canvas-project-sort-trigger.is-open svg{transform:rotate(180deg)}.canvas-project-sort-menu{z-index:20;border:1px solid rgba(var(--accent-cyan-rgb), .34);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#161718fa;border-radius:10px;width:100%;padding:5px;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 18px 44px #0000006b}.canvas-project-sort-menu button{width:100%;height:32px;color:var(--text-main);text-align:left;background:0 0;border-radius:7px;align-items:center;padding:0 10px;font-size:13px;font-weight:680;display:flex}.canvas-project-sort-menu button:hover{color:var(--text-strong);background:#ffffff14}.canvas-project-sort-menu button.is-active{background:rgba(var(--accent-cyan-rgb), .16);color:var(--text-strong)}.canvas-project-hub-toolbar strong{color:var(--text-muted);justify-self:end;padding-bottom:10px;font-size:13px}.canvas-project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding-top:18px;display:grid}.canvas-project-card{border:1px solid var(--border-soft);background:#ffffff0a;border-radius:14px;transition:border-color .16s,background .16s,transform .16s;overflow:hidden}.canvas-project-card:hover,.canvas-project-card.is-active{border-color:rgba(var(--accent-cyan-rgb), .55);background:#fff1}.canvas-project-card:hover{transform:translateY(-2px)}.canvas-project-card-preview{aspect-ratio:16/9;background:#ffffff09;width:100%;display:block;overflow:hidden}.canvas-project-cover-image{background-position:50%;background-size:cover;width:100%;height:100%}.canvas-project-thumbnail-image{-webkit-user-select:none;user-select:none;background-position:50%;background-size:cover;width:100%;height:100%}.canvas-project-minimap{background-color:#08090ab8;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:22px 22px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:100%;height:100%;position:relative;overflow:hidden}.canvas-project-minimap:after{background:radial-gradient(circle at 50% 46%, rgba(var(--accent-cyan-rgb), .13), transparent 54%);content:"";pointer-events:none;position:absolute;inset:0}.canvas-project-minimap-edges{z-index:1;position:absolute;inset:0;overflow:visible}.canvas-project-minimap-edges path{fill:none;stroke:#ffffff38;stroke-linecap:round;stroke-width:.55px;vector-effect:non-scaling-stroke}.canvas-project-minimap-node{z-index:2;background:#ffffff1a;border:1px solid #ffffff29;border-radius:6px;min-width:14px;min-height:10px;display:block;position:absolute;overflow:hidden;box-shadow:0 8px 18px #00000038}.canvas-project-minimap-node.is-text{background:linear-gradient(#ffffff29,#ffffff14)}.canvas-project-minimap-node.is-image{border-color:rgba(var(--accent-cyan-rgb), .28);background:rgba(var(--accent-cyan-rgb), .12)}.canvas-project-minimap-node.is-group{z-index:0;border-color:rgba(var(--accent-cyan-rgb), .18);background:rgba(var(--accent-cyan-rgb), .035);box-shadow:none}.canvas-project-minimap-image{background-position:50%;background-size:cover;width:100%;height:100%;display:block}.canvas-project-preview-empty{grid-template-columns:repeat(3,1fr);gap:10px;height:100%;padding:26px;display:grid}.canvas-project-preview-empty span{background:#ffffff14;border-radius:10px}.canvas-project-card-body{padding:14px}.canvas-project-name{max-width:100%;color:var(--text-strong);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;font-size:16px;font-weight:760;display:block;overflow:hidden}.canvas-project-name-input{width:100%;font-size:15px;font-weight:720}.canvas-project-meta{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.canvas-project-meta span{color:var(--text-muted);background:#ffffff12;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.canvas-project-card-footer{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:12px;display:flex}.canvas-project-card-footer div{gap:6px;display:flex}.canvas-project-card-footer button{height:28px;color:var(--text-main);background:#ffffff12;border-radius:8px;padding:0 9px;font-size:12px;font-weight:720}.canvas-project-card-footer button:hover:not(:disabled){color:var(--text-strong);background:#ffffff1f}.canvas-project-card-footer button:disabled{cursor:not-allowed;opacity:.38}.canvas-project-empty{text-align:center;place-content:center;min-height:300px;display:grid}.canvas-project-empty strong{color:var(--text-strong);font-size:17px}.canvas-project-empty span{color:var(--text-muted);margin-top:8px;font-size:13px}@media (max-width:760px){.canvas-project-hub{padding:22px}.canvas-project-hub-header{flex-direction:column}.canvas-project-hub-actions{justify-content:flex-start}.canvas-project-hub-toolbar{grid-template-columns:1fr}.canvas-project-hub-toolbar strong{justify-self:start;padding-bottom:0}}.topbar-control-group{border:1px solid var(--border-soft);background:var(--surface-chrome);height:40px;box-shadow:var(--shadow-panel);border-radius:12px;align-items:center;display:inline-flex;overflow:visible}.toolbar-segment{height:40px;color:var(--text-strong);background:0 0;gap:7px;padding:0 12px;font-size:13px;font-weight:650}.toolbar-segment:hover,.toolbar-chip:hover,.dock-button:hover,.plain-tool:hover,.bottom-mini:hover{background:var(--surface-hover)}.toolbar-segment.is-active{background:rgba(var(--accent-cyan-rgb), .12);color:var(--text-strong)}.topbar-menu-wrap{position:relative}.topbar-dropdown{border:1px solid var(--border-soft);width:332px;box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1d1d1dfa;border-radius:13px;padding:12px;position:absolute;top:calc(100% + 10px);left:0}.topbar-dropdown-title{color:var(--text-strong);font-size:13px;font-weight:700}.topbar-list{flex-direction:column;gap:6px;max-height:260px;margin-top:10px;display:flex;overflow-y:auto}.topbar-list-row{text-align:left;background:#ffffff06;border-radius:9px;align-items:center;gap:6px;min-height:40px;padding:4px;display:flex}.topbar-list-row:hover,.topbar-list-row.is-active{background:rgba(var(--accent-cyan-rgb), .12)}.topbar-list-main{text-align:left;background:0 0;border-radius:7px;flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:6px 7px;display:flex}.topbar-list span{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}.topbar-list small{color:var(--text-muted);flex:none;font-size:11px}.topbar-rename-button{height:28px;color:var(--text-muted);background:#ffffff14;border-radius:7px;flex:none;padding:0 8px;font-size:11px;font-weight:700}.topbar-rename-button:hover{color:var(--text-strong);background:#ffffff24}.topbar-delete-button{color:#ffa096db;background:#ff5f5f14;border-radius:7px;flex:none;height:28px;padding:0 8px;font-size:11px;font-weight:700}.topbar-delete-button:hover:not(:disabled){color:#ffb3a9;background:#ff5f5f29}.topbar-delete-button:disabled{cursor:not-allowed;opacity:.35}.topbar-inline-input{border:1px solid rgba(var(--accent-cyan-rgb), .52);min-width:0;height:32px;color:var(--text-strong);background:#ffffff0f;border-radius:7px;outline:0;flex:1;padding:0 9px;font-size:13px;font-weight:650}.topbar-create-button{width:100%;height:36px;color:var(--text-strong);background:#ffffff1a;border-radius:9px;justify-content:center;align-items:center;margin-top:10px;font-size:12px;font-weight:700;display:inline-flex}.topbar-create-button:hover{background:rgba(var(--accent-cyan-rgb), .18)}.bottom-mini svg,.dock-button svg,.dock-add svg,.plain-tool svg{width:18px;height:18px}.plain-tool{color:var(--text-muted);background:0 0;gap:5px;font-size:12px}.plain-tool.is-active,.bottom-mini.is-active,.dock-button.is-active{background:rgba(var(--accent-cyan-rgb), .14);color:var(--text-strong)}.plain-tool svg,.bottom-mini svg{width:16px;height:16px}.bottom-mini{width:27px;height:27px;color:var(--text-muted);background:0 0;border-radius:8px}.zoom-pill{height:28px;color:var(--text-strong);background:#ffffff14;border-radius:9px;padding:0 9px;font-size:12px;font-weight:650}.bottom-dock{justify-content:center;gap:12px;min-width:204px;padding:0 14px}.dock-add{color:#151515;background:#f4f4f2;border-radius:10px;width:34px;height:34px}.dock-button{width:34px;height:34px;color:var(--text-muted);background:0 0;border-radius:9px;position:relative}.canvas-status-pill{justify-content:center;gap:8px;min-width:176px;padding:0 14px}.canvas-status-pill span:last-child{white-space:nowrap}.canvas-status-pill.is-warning{color:#ffdc96eb;border-color:#ffc35c5c}.canvas-status-pill.is-warning span:first-child{background:#ffc35c}.has-tooltip{position:relative}.has-tooltip:before,.has-tooltip:after{z-index:80;opacity:0;pointer-events:none;transition:opacity .14s,transform .14s;position:absolute;left:50%;transform:translate(-50%,4px)}.has-tooltip:before{color:#151515;content:attr(data-tooltip);white-space:nowrap;background:#f2f2ef;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:700;line-height:1;bottom:calc(100% + 9px);box-shadow:0 10px 30px #00000047}.has-tooltip:after{content:"";background:#f2f2ef;width:8px;height:8px;bottom:calc(100% + 4px);rotate:45deg}.has-tooltip:hover:before,.has-tooltip:hover:after,.has-tooltip:focus-visible:before,.has-tooltip:focus-visible:after{opacity:1;transform:translate(-50%)}.dock-button.marked:after{content:"";background:var(--accent-cyan);border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:6px}.empty-state-panel{pointer-events:auto;flex-direction:column;align-items:center;gap:28px;width:min(760px,100vw - 48px);display:flex;transform:translateY(-50%);top:42%!important}.empty-hint{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.empty-hint svg{width:22px;height:22px;color:var(--text-strong)}.starter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(560px,100%);display:grid}.starter-card{border:1px solid var(--border-soft);background:linear-gradient(90deg, #232323eb, #232323b8), radial-gradient(circle at 82% 50%, rgba(var(--accent-cyan-rgb), .18), transparent 35%);height:54px;color:var(--text-strong);text-align:left;border-radius:8px;align-items:center;gap:10px;padding:0 16px;font-size:13px;font-weight:650;display:flex;position:relative;overflow:hidden}.starter-card:after{content:"";opacity:0;background:linear-gradient(110deg,#0000 50%,#ffffff14);transition:opacity .16s;position:absolute;inset:0}.starter-card:hover:after{opacity:1}.starter-card:hover{border-color:var(--border-medium);transform:translateY(-1px)}.starter-icon{z-index:1;width:22px;height:22px;color:var(--text-strong);background:#ffffff1f;border-radius:5px;place-items:center;display:grid}.node-composer{z-index:40;border:1px solid var(--border-soft);background:var(--surface-panel);width:min(660px,100vw - 80px);min-height:136px;box-shadow:var(--shadow-panel);border-radius:12px;padding:12px 14px 10px;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%)}.node-composer-text{width:540px}.node-composer-tools{flex-wrap:wrap;gap:8px;display:flex}.node-composer-tools button{border:1px solid var(--border-soft);min-width:44px;height:38px;color:var(--text-muted);background:#ffffff08;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:650;display:inline-flex}.node-composer-tools button:hover{border-color:var(--border-medium);color:var(--text-main)}.node-composer-tools button.is-active{border-color:rgba(var(--accent-cyan-rgb), .48);background:rgba(var(--accent-cyan-rgb), .11);color:var(--text-strong)}.node-composer-tools svg{width:17px;height:17px}.node-composer-input{background:0 0;border:0;margin-top:10px;padding:0;display:block;position:relative}.node-composer-input:focus-within{background:0 0}.node-composer-input-editor{cursor:text;min-height:68px;position:relative}.node-composer textarea{z-index:2;resize:none;width:100%;min-height:68px;color:var(--text-strong);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;cursor:text;background:0 0;border:0;outline:0;padding:2px 0 0;font-size:14px;font-weight:600;line-height:1.75;position:relative;overflow:hidden auto}.node-composer-token-editor{width:100%;min-height:68px;max-height:132px;color:var(--text-strong);caret-color:var(--text-strong);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;cursor:text;outline:0;padding:2px 0 0;font-size:14px;font-weight:600;line-height:1.75;overflow:hidden auto}.node-composer-token-editor:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}.manual-text-toolbar,.node-composer-image-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.manual-text-toolbar button{border:1px solid var(--border-soft);height:30px;color:var(--text-main);background:#ffffff09;border-radius:8px;align-items:center;padding:0 9px;font-size:11px;font-weight:650;display:inline-flex}.node-composer-image-row{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:10px;line-height:1.4;display:flex}.node-composer-image-row span{color:var(--text-muted);align-items:center;display:inline-flex}.node-composer-image-row span+span:before{content:"·";color:var(--text-subtle);margin-right:6px}.manual-text-toolbar button:hover{border-color:var(--border-medium);color:var(--text-strong)}.node-composer-image-row span.has-reference{color:var(--accent-cyan)}.node-composer-image-row small{color:var(--accent-warm);font-size:11px}.node-composer-reference-picker{border:1px solid var(--border-soft);height:22px;color:var(--text-main);background:#ffffff0b;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:10px;font-weight:700;display:inline-flex}.node-composer-reference-picker:hover,.node-composer-reference-picker.is-active{border-color:rgba(var(--accent-cyan-rgb), .52);color:var(--text-strong)}.node-composer-reference-picker.is-active{background:rgba(var(--accent-cyan-rgb), .12)}.node-composer-reference-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.node-composer-reference-chip{width:36px;height:36px;color:var(--text-main);cursor:zoom-in;background:#ffffff0a;border:1px solid #ffffff38;border-radius:10px;place-items:center;padding:0;transition:border-color .14s,transform .14s;display:grid;position:relative;overflow:hidden;box-shadow:0 5px 14px #00000038}.node-composer-reference-chip:hover{border-color:rgba(var(--accent-cyan-rgb), .65);transform:translateY(-1px)}.node-composer-reference-chip>img,.node-composer-reference-chip>.node-composer-reference-dot{object-fit:cover;border-radius:9px;flex:0 0 100%;width:100%;height:100%;display:block}.node-composer-reference-dot{background:rgba(var(--accent-cyan-rgb), .28)}.node-composer-reference-index{color:#fffffff0;letter-spacing:0;background:#121212c7;border:1px solid #ffffff57;border-radius:999px;justify-content:center;align-items:center;width:12px;height:12px;font-size:8px;font-weight:760;line-height:1;display:inline-flex;position:absolute;top:4px;left:4px}.node-composer-reference-chip button{color:#ffffffc2;opacity:0;background:#121212bd;border-radius:999px;justify-content:center;align-items:center;width:13px;height:13px;font-size:9px;font-weight:700;line-height:1;transition:opacity .14s,background .14s;display:inline-flex;position:absolute;top:3px;right:3px}.node-composer-reference-chip:hover button{opacity:1}.node-composer-reference-chip button:hover{color:var(--text-strong);background:#1c1c1cf2}.node-composer-reference-preview{z-index:20;opacity:0;pointer-events:none;transform-origin:bottom;background:#0c0c0cf5;border:1px solid #ffffff38;border-radius:10px;width:156px;max-width:42vw;transition:opacity .12s,transform .12s;display:block;position:absolute;bottom:calc(100% + 9px);left:50%;overflow:hidden;transform:translate(-50%,5px)scale(.98);box-shadow:0 18px 44px #00000080}.node-composer-reference-preview img{object-fit:contain;width:100%;height:auto;max-height:190px;display:block}.node-composer-reference-chip:hover .node-composer-reference-preview{opacity:1;transform:translate(-50%)scale(1)}.node-composer-inline-reference-token{box-sizing:border-box;vertical-align:middle;border:1px solid rgba(var(--accent-cyan-rgb), .58);background:rgba(var(--accent-cyan-rgb), .18);color:#f0fcfffa;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:4px;max-width:calc(100% - 4px);height:24px;margin:0 2px;padding:2px 7px 2px 3px;font-size:12px;font-weight:760;line-height:1;display:inline-flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14}.node-composer-inline-reference-token>img,.node-composer-inline-reference-token>i{object-fit:cover;border-radius:4px;flex:0 0 18px;align-self:center;width:18px;height:18px;display:block}.node-composer-inline-reference-token>i{background:rgba(var(--accent-cyan-rgb), .28)}.node-composer textarea::placeholder{color:var(--text-muted)}.node-composer-reference-menu{z-index:8;border:1px solid var(--border-soft);max-width:min(360px,100%);box-shadow:var(--shadow-panel);background:#1a1a19fa;border-radius:10px;flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.node-composer-reference-menu button{min-width:240px;color:var(--text-main);text-align:left;border-radius:7px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:6px 8px;font-size:12px;font-weight:650;display:grid}.node-composer-reference-menu button:hover{background:rgba(var(--accent-cyan-rgb), .12);color:var(--text-strong)}.node-composer-reference-menu img{object-fit:cover;border-radius:5px;width:34px;height:34px}.node-composer-reference-menu span{flex-direction:column;gap:3px;min-width:0;display:flex}.node-composer-reference-menu strong,.node-composer-reference-menu small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.node-composer-reference-menu strong{color:var(--text-strong);font-size:12px;font-weight:700}.node-composer-reference-menu small{color:var(--text-muted);font-size:10px;font-weight:500}.node-composer-error{color:#ff9a8c;margin-top:8px;font-size:11px;line-height:1.5}.node-composer-footer{z-index:4;color:var(--text-muted);align-items:center;gap:10px;margin-top:10px;font-size:12px;display:flex;position:relative}.composer-settings-wrap{z-index:20;min-width:0;position:relative}.canvas-v2-root .canvas-flow-edge-path{stroke:#cad3e06b;stroke-width:1.65px;stroke-linecap:round;transition:stroke .16s,stroke-width .16s,filter .16s,opacity .16s;stroke-dasharray:none!important;animation:none!important}.canvas-v2-root .react-flow__edges,.canvas-v2-root .react-flow__edge,.canvas-v2-root .react-flow__edge.selected{z-index:1!important}.canvas-v2-root .canvas-flow-edge-path.is-active{stroke:#e2ebf69e;stroke-width:1.75px;filter:drop-shadow(0 0 3px #ffffff14)}.canvas-v2-root .canvas-flow-edge-path.is-selected{stroke:#f5faffdb;stroke-width:2px;filter:drop-shadow(0 0 4px #ffffff1f) drop-shadow(0 0 7px rgba(var(--accent-cyan-rgb), .12))}.canvas-v2-root .canvas-flow-edge-glow,.canvas-v2-root .canvas-flow-edge-runner{fill:none;pointer-events:none;stroke-linecap:round}.canvas-v2-root .canvas-flow-edge-glow{stroke:#ffffff2e;stroke-width:3px;opacity:.12;filter:blur(.6px)}.canvas-v2-root .canvas-flow-edge-runner{stroke:rgba(var(--accent-cyan-rgb), .78);stroke-width:2.2px;stroke-dasharray:24 168;opacity:.7;filter:drop-shadow(0 0 5px rgba(var(--accent-cyan-rgb), .36));animation:1.9s linear infinite canvas-edge-runner}.canvas-v2-root .canvas-flow-edge-runner.runner-two{opacity:.42;animation-delay:-.95s}.canvas-v2-root .react-flow__edge.animated .canvas-flow-edge-path,.canvas-v2-root .react-flow__edge.animated .canvas-flow-edge-path{stroke-dasharray:none!important;animation:none!important}.canvas-v2-root .react-flow__edge.selected .react-flow__edge-interaction{stroke-width:14px}.canvas-v2-root .react-flow__selection{border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff05;background:rgba(var(--accent-cyan-rgb), .035)!important;border:1px dashed #d2e2f48f!important}.canvas-v2-root .react-flow__nodesselection-rect{box-sizing:border-box;box-shadow:none;border:0;border-radius:11px;background:0 0!important}.canvas-v2-root .react-flow__nodesselection-rect:before{content:"";pointer-events:none;border:1px solid #ebf1f885;border-radius:15px;position:absolute;inset:-12px}.canvas-v2-root .has-selected-group .react-flow__nodesselection-rect:before,.canvas-v2-root .has-selected-group .react-flow__nodesselection-rect{box-shadow:none!important;pointer-events:none!important;border-color:#0000!important}.canvas-v2-root .has-selected-group .react-flow__nodesselection-rect:before{display:none}.canvas-v2-root .has-selected-group .react-flow__nodesselection{pointer-events:none!important}.canvas-reference-picker-banner{border:1px solid rgba(var(--accent-cyan-rgb), .34);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121314f0;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;display:inline-flex;box-shadow:0 16px 34px #0000004d}.canvas-reference-picker-banner strong{color:var(--text-strong);order:-1;margin-right:2px;font-size:11px;font-weight:760}.canvas-reference-picker-banner span{display:none}.canvas-reference-picker-banner button{border:1px solid var(--border-soft);height:28px;color:var(--text-main);background:#ffffff0b;border-radius:9px;justify-content:center;align-items:center;padding:0 10px;font-size:11px;font-weight:700;display:inline-flex}.canvas-reference-picker-banner button:hover{border-color:var(--border-strong);color:var(--text-strong);background:#ffffff14}.is-reference-picking{cursor:crosshair}.is-reference-picking .canvas-handle{opacity:0;pointer-events:none}.is-reference-picking .react-flow__node-image.is-reference-selectable .node-card{border-color:rgba(var(--accent-cyan-rgb), .34);box-shadow:0 0 0 1px rgba(var(--accent-cyan-rgb), .14)}.is-reference-picking .react-flow__node-image.is-reference-selectable:hover .node-card{border-color:rgba(var(--accent-cyan-rgb), .58);box-shadow:0 0 0 1px rgba(var(--accent-cyan-rgb), .22), 0 0 0 8px rgba(var(--accent-cyan-rgb), .05)}.is-reference-picking .react-flow__node-image.is-reference-selection-target .node-card{border-color:#ffffff80;box-shadow:0 0 0 1px #ffffff29}.is-reference-picking .react-flow__node-image.is-reference-linked .node-card{opacity:.52;border-color:#ffffff1f}.is-reference-picking .react-flow__node-image.is-reference-linked:hover .node-card{opacity:.82;border-color:#ffffff52}.selection-action-bar{z-index:80;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;background:#212121eb;border:1px solid #ffffff1c;border-radius:14px;align-items:center;gap:6px;padding:6px;animation:.22s cubic-bezier(.18,.9,.2,1) forwards selection-action-pop;display:inline-flex;position:absolute;transform:translate(-50%,-100%)scale(.94);box-shadow:0 14px 36px #00000052}.selection-action-bar button{height:32px;color:var(--text-strong);border-radius:10px;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.selection-action-bar button:hover{background:#ffffff14}.selection-action-bar button.selection-action-danger{color:#ffc1c1}.selection-action-bar button.selection-action-danger .selection-action-icon{color:#ff9d9d}.selection-action-bar button.selection-action-danger:hover{background:#ff69691f}.selection-action-bar button:disabled{cursor:default;opacity:.62}.selection-action-icon{color:#8bd8ff;stroke-width:2px;flex:none;width:14px;height:14px}.selection-action-status{max-width:220px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.selection-action-execution{max-width:260px;height:30px;color:var(--text-muted);white-space:nowrap;background:#ffffff0b;border:1px solid #ffffff17;border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-size:12px;display:inline-flex}.selection-action-execution .selection-action-icon{width:13px;height:13px}.selection-action-execution span{color:var(--text-strong);font-weight:800}.selection-action-execution b{max-width:150px;color:var(--text-muted);text-overflow:ellipsis;font-weight:600;overflow:hidden}.selection-action-execution.is-running{border-color:rgba(var(--accent-cyan-rgb), .18);background:rgba(var(--accent-cyan-rgb), .075)}.selection-action-execution.is-running .selection-action-icon{color:#8bd8ff;animation:1.2s ease-in-out infinite group-execution-dot}.selection-action-execution.is-success{background:#7ee8b412;border-color:#7ee8b438}.selection-action-execution.is-success .selection-action-icon{color:#95efc3}.selection-action-execution.is-failed,.selection-action-execution.is-stopped{background:#ff787812;border-color:#ffaaaa38}.selection-action-execution.is-failed .selection-action-icon,.selection-action-execution.is-stopped .selection-action-icon{color:#ffb0b0}.canvas-group-node{pointer-events:auto;background:linear-gradient(#ffffff08,#ffffff06),#3030309e;border:1px solid #ffffff13;border-radius:13px;position:relative;box-shadow:0 18px 50px #00000029}.canvas-v2-root .react-flow__node-canvas-group{box-shadow:none!important;pointer-events:auto!important;z-index:0!important;background:0 0!important;border:0!important;outline:none!important;padding:0!important}.canvas-v2-root .react-flow__node-canvas-group.selected{box-shadow:none!important;pointer-events:auto!important;background:0 0!important;border:0!important;outline:none!important;padding:0!important}.canvas-v2-root .react-flow__node-canvas-group:focus,.canvas-v2-root .react-flow__node-canvas-group:focus-visible,.canvas-v2-root .react-flow__node-canvas-group.selectable:focus,.canvas-v2-root .react-flow__node-canvas-group.selectable:focus-visible{box-shadow:none!important;border:0!important;outline:none!important}.canvas-v2-root .react-flow__node-text,.canvas-v2-root .react-flow__node-image{z-index:2!important}.canvas-v2-root .react-flow__node-text.selected,.canvas-v2-root .react-flow__node-image.selected{z-index:4!important}.canvas-group-node.is-selected{background:linear-gradient(#ffffff0a,#ffffff07),#323232a8;border-style:solid;border-color:#ffffff13;box-shadow:0 18px 50px #00000029}.canvas-group-title{color:#dae2ebd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;pointer-events:auto;background:#121212b8;border:1px solid #ffffff17;border-radius:8px;max-width:calc(100% - 16px);padding:4px 9px;font-size:12px;font-weight:700;line-height:1;position:absolute;top:-34px;left:22px;overflow:hidden;box-shadow:0 8px 22px #0000002e}.canvas-group-title.is-editing{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;padding:0}.canvas-group-title-input{border:1px solid rgba(var(--accent-cyan-rgb), .38);width:148px;height:24px;color:var(--text-strong);background:#141414db;border-radius:7px;outline:none;padding:0 8px;font-size:12px;font-weight:700}.canvas-group-corner{opacity:0;pointer-events:auto;background:#eef4f9d1;border-radius:2px;width:8px;height:8px;position:absolute;box-shadow:0 0 0 1px #00000073}.canvas-group-node.is-selected .canvas-group-corner{opacity:0}.canvas-group-corner-tl{top:-4px;left:-4px}.canvas-group-corner-tr{top:-4px;right:-4px}.canvas-group-corner-bl{bottom:-4px;left:-4px}.canvas-group-corner-br{bottom:-4px;right:-4px}@keyframes canvas-edge-runner{0%{stroke-dashoffset:214px}to{stroke-dashoffset:0}}@keyframes selection-action-pop{to{opacity:1;transform:translate(-50%,-100%)scale(1)}}@keyframes group-execution-pulse{0%,to{opacity:.45;transform:scale(.996)}50%{opacity:1;transform:scale(1.006)}}@keyframes group-execution-dot{0%,to{opacity:.55}50%{opacity:1}}.composer-settings-button{z-index:1;border:1px solid var(--border-soft);max-width:min(260px,46vw);height:30px;color:var(--text-main);white-space:nowrap;background:#ffffff0e;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-size:12px;font-weight:650;display:inline-flex;position:relative}.composer-settings-button:hover,.composer-settings-button:focus-visible{border-color:rgba(var(--accent-cyan-rgb), .42);color:var(--text-strong)}.composer-settings-button svg{width:14px;height:14px;color:var(--text-muted)}.composer-settings-panel{z-index:80;border:1px solid var(--border-soft);background:#242424;border-radius:14px;width:342px;padding:14px;position:absolute;bottom:calc(100% + 12px);left:0;box-shadow:0 18px 50px #0000006b}.composer-settings-group+.composer-settings-group{margin-top:12px}.composer-settings-group>span{color:var(--text-muted);margin-bottom:7px;font-size:12px;font-weight:650;display:block}.composer-ratio-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.composer-ratio-grid button{border:1px solid var(--border-soft);min-width:0;height:62px;color:var(--text-muted);background:#ffffff06;border-radius:8px;place-items:center;gap:6px;font-size:11px;font-weight:650;display:grid}.composer-ratio-grid button:hover{border-color:var(--border-medium);color:var(--text-main)}.composer-ratio-grid button.is-active{color:var(--text-strong);background:#ffffff12;border-color:#fffc}.ratio-glyph{border:1.6px solid;border-radius:2px;width:12px;height:12px;display:inline-block}.ratio-glyph-auto{position:relative}.ratio-glyph-auto:after{content:"";border:1.4px solid;border-radius:1px;position:absolute;inset:3px}.ratio-glyph-wide{width:18px;height:9px}.ratio-glyph-tall{width:9px;height:18px}.ratio-glyph-square{width:13px;height:13px}.model-select,.composer-output{color:var(--text-main);font-weight:650}.model-select:before{content:">";color:var(--text-muted);margin-right:5px}.send-button{border-radius:9px;place-items:center;width:30px;height:30px;margin-left:auto;display:grid;color:#171717!important;background:#ececea!important}.send-button svg{width:17px;height:17px}.send-button:disabled{cursor:not-allowed;opacity:.4}.send-spinner{border:2px solid #00000047;border-top-color:#000000d1;border-radius:999px;width:15px;height:15px;animation:.8s linear infinite spin}.composer-cost{color:var(--text-muted);font-size:11px}.composer-operation-toggle{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:1px;padding:1px;display:inline-flex}.composer-operation-toggle button{min-width:38px;height:18px;color:var(--text-muted);background:0 0;border:0;border-radius:999px;padding:0 6px;font-size:10px;line-height:1}.composer-operation-toggle button.is-active{color:#171717;background:#ececeaeb;font-weight:650}.composer-mode-pill{color:var(--text-muted);font-size:11px}.node-composer-meta{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.5}.canvas-node{position:relative}.node-title-row{min-height:22px;color:var(--text-muted);align-items:center;gap:5px;font-size:13px;line-height:1;display:flex;transform:translateY(-5px)}.node-title-row svg{width:15px;height:15px}.node-title-spread{justify-content:space-between}.node-title-main{align-items:center;gap:5px;min-width:0;display:inline-flex}.node-title-input{width:min(240px,100%);min-width:42px;max-width:240px;color:inherit;font:inherit;text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:4px;outline:0;padding:2px 4px;font-weight:650;line-height:1.2}.image-size-badge{white-space:nowrap;color:var(--text-subtle);flex:none;font-size:11px;font-weight:650}.node-title-input:hover{background:#ffffff0a;border-color:#ffffff29}.node-title-input:focus{border-color:rgba(var(--accent-cyan-rgb), .58);color:var(--text-strong);background:#ffffff0f}.node-card{border:1px solid var(--border-soft);background:var(--surface-node);box-shadow:var(--shadow-node);border-radius:8px;transition:border-color .16s,box-shadow .16s,background .16s;position:relative;overflow:visible}.node-card.is-selected{border-color:var(--border-strong);box-shadow:0 0 0 1px #ffffff14, 0 0 18px rgba(var(--accent-cyan-rgb), .15), var(--shadow-node)}.react-flow__node.is-group-execution-current .node-card{border-color:rgba(var(--accent-cyan-rgb), .72);box-shadow:0 0 0 1px rgba(var(--accent-cyan-rgb), .2), 0 0 18px rgba(var(--accent-cyan-rgb), .18), var(--shadow-node)}.react-flow__node.is-group-execution-current .node-card:after{content:"";border:1px solid rgba(var(--accent-cyan-rgb), .28);pointer-events:none;border-radius:11px;animation:1.8s ease-in-out infinite group-execution-pulse;position:absolute;inset:-4px}.text-node-wrap{width:264px}.text-node-wrap.is-manual-editing{width:min(460px,100vw - 80px)}.text-node-wrap.is-result{width:320px}.text-node-card{background:var(--surface-node-deep);min-height:152px}.text-node-card.is-result{min-height:190px}.text-node-card.is-manual-editing{min-height:230px;box-shadow:0 0 0 3px #ffffff29, var(--shadow-node);border-color:#ffffffb8}.text-node-body{min-height:150px;padding:14px}.text-node-card.is-result .text-node-body{min-height:188px;padding:14px 14px 8px}.text-node-card.is-manual-editing .text-node-body{min-height:230px;padding:18px 20px}.text-node-empty{min-height:108px;color:var(--text-subtle);flex-direction:column;justify-content:center;align-items:center;font-size:11px;display:flex}.text-node-empty svg{width:44px;height:44px;margin-bottom:14px}.text-node-empty span{align-self:flex-start;margin-top:2px}.node-empty-summary{color:var(--text-muted);align-self:flex-start;margin-top:6px;font-size:11px;line-height:1.55}.text-node-empty ul{align-self:flex-start;margin-top:8px;list-style:none}.text-node-empty li{color:var(--text-main);margin-top:8px;font-size:11px;font-weight:650}.node-attempt-button{color:var(--text-strong);text-align:left;background:0 0;font-size:11px;font-weight:650}.node-attempt-button:before{content:"+";color:var(--text-muted);margin-right:8px;font-size:10px}.node-attempt-button:hover{color:var(--text-strong)}.node-textarea{resize:none;width:100%;min-height:24px;color:var(--text-strong);background:0 0;border:0;outline:0;font-size:13px;font-weight:650;line-height:1.65}.node-textarea.is-manual-editing{min-height:178px;color:var(--text-strong);font-size:17px;font-weight:600;line-height:1.6}.node-textarea::placeholder{color:#0000}.node-textarea.is-manual-editing::placeholder{color:#ffffff61}.node-text-preview{max-height:112px;color:var(--text-strong);white-space:pre-wrap;-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:13px;font-weight:650;line-height:1.65;display:-webkit-box;overflow:hidden}.text-generating-state{flex-direction:column;justify-content:space-between;gap:16px;min-height:160px;display:flex}.text-skeleton-lines{flex-direction:column;gap:9px;padding:2px 2px 0;display:flex}.text-skeleton-lines span{background:linear-gradient(90deg,#ffffff1c,#ffffff30,#ffffff1c) 0 0/220% 100%;border-radius:999px;height:10px;animation:1.3s ease-in-out infinite skeleton-wave}.text-skeleton-lines span:first-child{width:82%}.text-skeleton-lines span:nth-child(2),.text-skeleton-lines span:nth-child(3),.text-skeleton-lines span:nth-child(5),.text-skeleton-lines span:nth-child(7){width:96%}.text-skeleton-lines span:nth-child(4){width:86%}.text-skeleton-lines span:nth-child(6){width:70%}.text-skeleton-lines span:nth-child(8){width:62%}.text-skeleton-lines span:nth-child(9){width:46%}.text-generating-state strong{color:var(--text-strong);background:#00000038;border:1px solid #ffffff59;border-radius:7px;align-self:center;padding:7px 13px;font-size:12px;font-weight:700}.node-text-result{resize:none;width:100%;height:162px;color:var(--text-strong);cursor:text;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:#ffffff14;border:0;border-radius:4px;outline:0;padding:12px 14px 14px;font-family:Inter,Microsoft YaHei,PingFang SC,Noto Sans SC,system-ui,sans-serif;font-size:13px;font-weight:500;line-height:1.72;overflow:hidden auto}.node-text-result:focus{box-shadow:inset 0 0 0 1px rgba(var(--accent-cyan-rgb), .55)}.node-text-result::-webkit-scrollbar{width:7px}.node-text-result::-webkit-scrollbar-thumb{background:#ffffff57;border-radius:999px}.node-text-result::-webkit-scrollbar-track{background:0 0}.api-diagnostics{z-index:12;justify-content:flex-start;width:max-content;padding:0 14px 10px;display:flex;position:relative}.image-node-card .api-diagnostics{padding:0;position:absolute;bottom:8px;left:8px}.text-node-card .api-diagnostics{margin-left:14px;padding:0 0 10px;position:relative}.api-diagnostics-button{color:#ffffffad;background:#00000057;border:1px solid #ffffff29;border-radius:7px;height:24px;padding:0 8px;font-size:11px;font-weight:650}.api-diagnostics-button:hover{border-color:rgba(var(--accent-cyan-rgb), .42);color:var(--text-strong)}.api-diagnostics-button.has-error{color:#ffb2a8;border-color:#ff9a8c5c}.api-diagnostics-panel{overscroll-behavior:contain;border:1px solid var(--border-soft);width:min(560px,100vw - 40px);max-height:min(560px,68vh);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#181817fa;border-radius:12px;padding:12px;position:absolute;bottom:calc(100% + 8px);left:0;overflow:auto}.api-diagnostics-title{color:var(--text-strong);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.api-diagnostics-title strong{font-weight:700}.api-diagnostics-title div{flex:none;align-items:center;gap:6px;display:flex}.api-diagnostics-title span{color:#ffb2a8;background:#ff9a8c1f;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700}.api-diagnostics-title button{height:24px;color:var(--text-main);background:#ffffff14;border-radius:7px;padding:0 8px;font-size:10px;font-weight:700}.api-diagnostics-title button:hover{background:rgba(var(--accent-cyan-rgb), .18);color:var(--text-strong)}.api-diagnostics-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.api-diagnostics-summary-grid div{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;min-width:0;padding:7px 8px}.api-diagnostics-summary-grid span,.api-diagnostics-summary-grid strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.api-diagnostics-summary-grid span{color:var(--text-muted);font-size:9px;font-weight:750}.api-diagnostics-summary-grid strong{color:#ffffffd6;margin-top:3px;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:650}.api-diagnostics-block{margin-top:10px}.api-diagnostics-block span{color:var(--text-muted);margin-bottom:5px;font-size:10px;font-weight:700;display:block}.api-diagnostics-block pre{color:#ffffffc7;white-space:pre-wrap;word-break:break-word;background:#ffffff0a;border:1px solid #ffffff17;border-radius:8px;max-height:180px;padding:9px;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.5;overflow:auto}.api-diagnostics-block pre.is-compact{max-height:none}.api-diagnostics-token-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.api-diagnostics-token-group{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;min-width:0;padding:7px}.api-diagnostics-token-group em{color:var(--text-muted);font-size:9px;font-style:normal;font-weight:750;display:block}.api-diagnostics-token-group div{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.api-diagnostics-token-group b,.api-diagnostics-token-group small{background:rgba(var(--accent-cyan-rgb), .16);color:#d3f6ffeb;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:750}.api-diagnostics-token-group small{color:var(--text-muted);background:#ffffff0f}.api-diagnostics-token-group.is-warn b{color:#ffd18a;background:#ffc87024}.api-diagnostics-token-group.is-bad b{color:#ffaaa3;background:#ff787824}.api-diagnostics-issues{gap:5px;margin:8px 0 0;padding:0;list-style:none;display:grid}.api-diagnostics-issues li{border-radius:8px;padding:7px 8px;font-size:10px;line-height:1.45}.api-diagnostics-issues.is-warn li{color:#ffd18a;background:#ffc8701a}.api-diagnostics-issues.is-bad li{color:#ffaaa3;background:#ff78781a}.api-diagnostics-reference-list{gap:8px;display:grid}.api-diagnostics-reference-item{background:#ffffff0a;border:1px solid #ffffff17;border-radius:10px;padding:8px}.api-diagnostics-reference-head{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.api-diagnostics-reference-head b{background:rgba(var(--accent-cyan-rgb), .16);color:#d3f6fff0;border-radius:999px;padding:2px 7px;font-size:10px}.api-diagnostics-reference-head strong{min-width:0;max-width:130px;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.api-diagnostics-reference-head i{border-radius:999px;padding:2px 6px;font-size:9px;font-style:normal;font-weight:750}.api-diagnostics-reference-head i.is-ok{color:#95e8b6;background:#5ed6961f}.api-diagnostics-reference-head i.is-bad{color:#ffaaa3;background:#ff78781f}.api-diagnostics-reference-item dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin:8px 0 0;display:grid}.api-diagnostics-reference-item dl div{min-width:0}.api-diagnostics-reference-item dt,.api-diagnostics-reference-item dd{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-diagnostics-reference-item dt{color:var(--text-muted);font-size:9px;font-weight:750}.api-diagnostics-reference-item dd{color:#ffffffb8;margin:2px 0 0;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:9px}.api-diagnostics-url-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.api-diagnostics-url-grid div{min-width:0}.api-diagnostics-url-grid b{color:#ffffffbd;margin-bottom:5px;font-size:10px;display:block}.api-diagnostics-url-grid pre{max-height:120px;margin:0}.image-node-wrap{width:var(--image-node-width,292px);transition:width .18s}.image-node-wrap:has(.image-result-tray.is-expanded){width:var(--image-result-expanded-width,588px)}.send-button.is-saved{color:#07130d;background:#5ed696eb}.image-node-card{aspect-ratio:var(--image-node-ratio,1 / 1);min-height:180px;max-height:520px;transition:aspect-ratio .18s}.image-node-card:has(.image-result-tray.is-expanded){aspect-ratio:var(--image-result-expanded-ratio,2 / 1);max-height:none}.image-stage{background:#2b2b2b;border-radius:7px;position:absolute;inset:0;overflow:hidden}.image-stage.is-reference-linked:after{content:"";pointer-events:none;background:#0000004d;position:absolute;inset:0}.image-stage img{object-fit:contain;width:100%;height:100%}.image-preview-trigger{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.image-preview-trigger img{display:block}.image-load-error{z-index:4;color:#ffffffb8;pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0c0c0cc7;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:8px;padding:7px 9px 7px 12px;font-size:11px;font-weight:650;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.image-load-error button{color:#ffffffe6;font:inherit;cursor:pointer;background:#ffffff1f;border:0;border-radius:999px;padding:4px 8px}.image-load-error button:hover{background:#ffffff2e}.image-node-actions{z-index:3;opacity:0;gap:6px;transition:opacity .14s,transform .14s;display:flex;position:absolute;bottom:8px;right:8px;transform:translateY(4px)}.image-stage:hover .image-node-actions,.image-node-card.is-selected .image-node-actions{opacity:1;transform:translateY(0)}.composer-output-count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.composer-output-count-grid button{border:1px solid var(--border-soft);height:34px;color:var(--text-muted);background:#ffffff06;border-radius:7px;font-size:11px;font-weight:650}.composer-output-count-grid button:hover{border-color:var(--border-medium);color:var(--text-main)}.composer-output-count-grid button.is-active{border-color:rgba(var(--accent-cyan-rgb), .72);background:rgba(var(--accent-cyan-rgb), .1);color:var(--text-strong)}.composer-output-count-hint{color:var(--text-muted);opacity:.72;margin-top:7px;font-size:10px;display:block}.image-node-card.has-result-stack:before,.image-node-card.has-result-stack:after{content:"";z-index:0;pointer-events:none;background:#242424;border:1px solid #ffffff1f;border-radius:8px;transition:opacity .14s,transform .14s;position:absolute;inset:4px -4px -4px 4px}.image-node-card.has-result-stack:after{background:#1d1d1d;border-color:#ffffff14;inset:8px -8px -8px 8px}.image-node-card.has-result-stack .image-stage{z-index:1}.image-node-card.has-result-stack:has(.image-result-tray.is-expanded):before{opacity:0;transform:scale(.98)}.image-node-card.has-result-stack:has(.image-result-tray.is-expanded):after{opacity:0;transform:scale(.98)}.image-result-tray{z-index:7;opacity:0;pointer-events:none;transition:opacity .14s;position:absolute;inset:0}.image-stage:hover .image-result-tray,.image-node-card.is-selected .image-result-tray,.image-result-tray.is-expanded{opacity:1}.image-stage:has(.image-upload-tag) .image-result-toggle{top:36px}.image-result-toggle{z-index:4;color:#ffffffbd;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d0d0dc7;border:1px solid #ffffff1f;border-radius:7px;align-items:center;gap:4px;height:28px;padding:0 7px;font-size:10px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex;position:absolute;top:8px;right:8px}.image-result-tray.is-expanded .image-result-toggle{top:8px;left:auto;right:8px;transform:none}.image-result-toggle:hover,.image-result-tray.is-expanded .image-result-toggle{color:#fff;background:#181818eb;border-color:#fff3}.image-result-toggle svg{width:13px;height:13px}.image-result-popover{z-index:1;pointer-events:auto;background:#121212;border-radius:7px;padding:4px;animation:.14s ease-out image-result-popover-in;position:absolute;inset:0;overflow:hidden}@keyframes image-result-popover-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.image-result-tray-scroll{scrollbar-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%;min-width:0;height:100%;min-height:0;display:grid;overflow:auto}.image-result-tray-scroll.result-count-2{grid-template-rows:minmax(0,1fr)}.image-result-tray-scroll.result-count-3,.image-result-tray-scroll.result-count-4{grid-template-rows:repeat(2,minmax(0,1fr))}.image-result-tray-scroll::-webkit-scrollbar{display:none}.image-result-thumb-wrap{min-width:0;min-height:0;position:relative}.image-result-thumb{cursor:pointer;background:#1b1b1b;border:1px solid #ffffff24;border-radius:6px;width:100%;height:100%;padding:0;transition:border-color .12s,box-shadow .12s,opacity .12s;display:block;position:relative;overflow:hidden}.image-result-thumb:active{cursor:pointer}.image-result-thumb-wrap.is-selected .image-result-thumb{border-color:rgba(var(--accent-cyan-rgb), .86);box-shadow:0 0 0 1px rgba(var(--accent-cyan-rgb), .3)}.image-result-thumb-wrap:not(.is-selected) .image-result-thumb:hover{border-color:#ffffff57}.image-result-thumb img{object-fit:contain;width:100%;height:100%}.image-result-main-action{color:#ffffffd1;opacity:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0abd;border-radius:5px;align-items:center;gap:3px;height:20px;padding:0 6px;font-size:9px;font-weight:700;transition:opacity .12s,background .12s;display:inline-flex;position:absolute;top:5px;right:5px}.image-result-thumb:hover .image-result-main-action,.image-result-main-action.is-main{opacity:1}.image-result-main-action.is-main{background:rgba(var(--accent-cyan-rgb), .86);color:#071117}.image-result-main-action svg{stroke-width:2.8px;width:10px;height:10px}.image-result-remove{z-index:2;color:#ffffffad;opacity:0;background:#141414f0;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:16px;height:16px;transition:opacity .12s,color .12s,background .12s;display:grid;position:absolute;bottom:5px;left:5px}.image-result-thumb-wrap:hover .image-result-remove{opacity:1}.image-result-remove:hover{color:#fff;background:#7e3030f5}.image-result-remove svg,.image-result-compare-button svg{width:10px;height:10px}.image-result-compare-button{z-index:3;color:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0ab8;border-radius:5px;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:9px;left:9px}.image-result-compare-button:hover{color:#fff;background:#ffffff24}.image-action-button{color:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000009e;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:650}.image-action-button:hover{background:rgba(var(--accent-cyan-rgb), .72);color:#071112}.image-reference-cancel-button{z-index:4;color:#ffffffeb;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#111c;border-radius:999px;justify-content:center;align-items:center;height:28px;padding:0 10px;font-size:11px;font-weight:700;transition:opacity .16s,transform .16s,background .16s;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.96)}.image-stage.is-reference-linked:hover .image-reference-cancel-button{opacity:1;transform:translate(-50%,-50%)scale(1)}.image-reference-cancel-button:hover{background:#1c1c1cf0}.image-empty-state,.generating-state{color:var(--text-subtle);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:46px 34px 38px;display:flex;position:absolute;inset:0}.image-empty-state svg{color:#ffffff38;width:48px;height:48px}.image-empty-state.has-attempts{text-align:left;padding:0;display:block}.image-empty-state.has-attempts svg{position:absolute;top:55px;left:50%;transform:translate(-50%)}.image-empty-state span{color:var(--text-main);margin-top:9px;font-size:12px;font-weight:700}.image-empty-state small{max-width:220px;color:var(--text-subtle);margin-top:5px;font-size:10px;line-height:1.45}.image-attempt-list{text-align:left;flex-direction:column;gap:13px;width:calc(100% - 64px);margin-top:0;display:flex;position:absolute;top:152px;left:32px}.image-attempt-list>span{color:var(--text-subtle);margin-top:0;font-size:11px;line-height:1}.image-attempt-list ul{flex-direction:column;align-items:flex-start;gap:11px;margin-top:0;list-style:none;display:flex}.image-attempt-list li{margin-top:0}.image-attempt-button{min-width:0;color:var(--text-strong);text-align:left;box-shadow:none;background:0 0;border:0;border-radius:6px;justify-content:flex-start;align-items:center;padding:0;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.image-attempt-button:before{content:"+";width:14px;color:var(--text-muted);justify-content:center;margin-right:7px;font-size:10px;line-height:1;display:inline-flex}.image-attempt-button:hover{color:#fff;background:0 0}.image-empty-state .image-node-error{color:#ff9a8c;text-align:center;max-width:220px;line-height:1.55}.generating-state{justify-content:center;gap:10px;padding:16px;font-size:11px}.generating-state strong{color:var(--text-strong);background:#00000038;border:1px solid #ffffff59;border-radius:7px;padding:6px 11px;font-size:12px;font-weight:700}.generating-state small{color:var(--text-muted);text-align:center;font-size:10px;line-height:1.5}.progress-ring{border:2px solid #ffffff24;border-top-color:var(--accent-cyan);border-radius:50%;width:38px;height:38px;animation:.9s linear infinite spin}.image-source-tag{color:#ffffffb8;background:#00000080;border-radius:6px;align-items:center;gap:5px;padding:4px 7px;font-size:10px;display:inline-flex;position:absolute;top:8px;left:8px}.image-source-tag span{border-radius:50%;width:5px;height:5px}.image-source-tag-ai span{background:var(--accent-cyan)}.image-source-tag-upload span{background:#ffffff9e}.image-skeleton-grid{aspect-ratio:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(176px,78%);display:grid}.image-skeleton-grid span{background:linear-gradient(115deg,#ffffff14,#ffffff2e,#ffffff14) 0 0/220% 100%;border-radius:7px;animation:1.3s ease-in-out infinite skeleton-wave}.image-skeleton-grid span:nth-child(2){animation-delay:.12s}.image-skeleton-grid span:nth-child(3){animation-delay:.24s}.image-skeleton-grid span:nth-child(4){animation-delay:.36s}.image-upload-tag,.image-upload-error{background:#0000008f;border-radius:6px;padding:4px 7px;font-size:10px;line-height:1.35;position:absolute;right:8px}.image-upload-tag{color:#ffffffb8;top:8px}.image-upload-tag-uploaded{color:#8bd8ff}.image-upload-tag-failed,.image-upload-error{color:#ff9a8c}.image-upload-error{text-align:center;bottom:8px;left:8px;right:8px}.image-preview-modal{z-index:80;background:#000000b8;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.image-preview-panel{flex-direction:column;gap:12px;max-width:min(1120px,92vw);max-height:min(820px,88vh);display:flex}.image-preview-header{color:var(--text-strong);justify-content:space-between;align-items:center;gap:14px;font-size:13px;display:flex}.image-preview-header div{gap:8px;display:flex}.image-preview-header button{color:var(--text-main);background:#ffffff1a;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:650}.image-preview-header button:hover{color:var(--text-strong);background:#ffffff2e}.image-preview-panel img{object-fit:contain;border-radius:8px;max-width:100%;max-height:calc(88vh - 48px);box-shadow:0 24px 80px #0000006b}.image-result-compare-modal{z-index:90;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000c2;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.image-result-compare-panel{background:#171717;border:1px solid #ffffff1f;border-radius:8px;width:min(1120px,100vw - 56px);max-height:calc(100vh - 56px);overflow:hidden;box-shadow:0 28px 90px #00000080}.image-result-compare-panel>header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;height:52px;padding:0 14px 0 16px;display:flex}.image-result-compare-panel>header div{align-items:baseline;gap:10px;display:flex}.image-result-compare-panel>header strong{color:#ffffffeb;font-size:13px}.image-result-compare-panel>header span{color:#ffffff75;font-size:11px}.image-result-compare-panel>header button{color:#ffffffad;border-radius:6px;place-items:center;width:30px;height:30px;display:grid}.image-result-compare-panel>header button:hover{color:#fff;background:#ffffff14}.image-result-compare-panel>header svg{width:15px;height:15px}.image-result-compare-grid{background:#ffffff14;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.image-result-compare-grid section{background:#171717;grid-template-rows:44px minmax(260px,1fr) 48px;min-width:0;display:grid}.image-result-compare-control,.image-result-compare-grid footer{justify-content:space-between;align-items:center;gap:10px;padding:0 12px;display:flex}.image-result-compare-control span,.image-result-compare-grid footer>span{color:#ffffff80;font-size:11px}.image-result-compare-control select{color:#ffffffd1;background:#222;border:1px solid #ffffff1a;border-radius:6px;height:28px;padding:0 24px 0 8px;font-size:11px}.image-result-compare-image{background:#101010;place-items:center;min-height:0;display:grid;overflow:hidden}.image-result-compare-image img{object-fit:contain;width:100%;height:min(68vh,680px)}.image-result-compare-grid footer{border-top:1px solid #ffffff12}@media (max-width:760px){.image-result-compare-grid{grid-template-columns:1fr;max-height:calc(100vh - 108px);overflow-y:auto}.image-result-compare-image img{height:42vh}}.canvas-auth-overlay{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#090e189e;place-items:center;display:grid;position:fixed;inset:0}.canvas-auth-panel{border:1px solid var(--border-soft);background:var(--surface-chrome);width:min(420px,100vw - 40px);box-shadow:var(--shadow-panel);color:var(--text-main);border-radius:18px;padding:24px}.canvas-auth-panel span{background:rgba(var(--accent-cyan-rgb), .14);height:24px;color:var(--accent-cyan);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.canvas-auth-panel strong{margin-top:14px;font-size:20px;line-height:1.35;display:block}.canvas-auth-panel p{color:var(--text-muted);margin:10px 0 18px;font-size:14px;line-height:1.7}.canvas-auth-panel a{background:var(--accent-cyan);color:#08111f;border-radius:10px;justify-content:center;align-items:center;height:38px;padding:0 16px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.node-attempt-panel{margin-top:10px}.node-attempt-title{color:var(--text-muted);font-size:11px;font-weight:650}.node-attempt-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.node-attempt-chip{border:1px solid var(--border-soft);color:var(--text-main);background:#ffffff08;border-radius:999px;padding:7px 10px;font-size:11px;line-height:1.3}.node-attempt-chip:hover{border-color:var(--border-medium);background:rgba(var(--accent-cyan-rgb), .09);color:var(--text-strong)}.node-structured-summary{flex-direction:column;gap:8px;margin-top:12px;display:flex}.node-structured-summary-image{margin-top:8px}.node-structured-row{border:1px solid var(--border-soft);background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.node-structured-row span{color:var(--text-muted);font-size:11px}.node-structured-row strong{max-width:60%;color:var(--text-strong);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;overflow:hidden}.canvas-handle{opacity:0;pointer-events:auto;transition:opacity .12s,transform .12s,border-color .12s,background .12s,box-shadow .12s;transform:scale(.76);border:1px solid var(--border-strong)!important;background:#202020!important;width:14px!important;height:14px!important}.canvas-handle:before{content:"";position:absolute;inset:-12px}.canvas-handle-left{left:-22px!important}.canvas-handle-right{right:-22px!important}.canvas-handle:after{content:"+";color:#ffffffb8;place-items:center;font-size:10px;line-height:1;display:grid;position:absolute;inset:-1px}.canvas-v2-root .react-flow__node:hover .canvas-handle,.canvas-v2-root .react-flow__node.selected .canvas-handle,.canvas-v2-root .react-flow__node.dragging .canvas-handle,.canvas-v2-root .canvas-handle:hover{opacity:1;transform:scale(1)}.canvas-handle:hover,.react-flow__node.selected .canvas-handle{box-shadow:0 0 12px rgba(var(--accent-cyan-rgb), .4);border-color:var(--accent-cyan)!important;background:rgba(var(--accent-cyan-rgb), .18)!important}.node-menu-panel{z-index:50;border:1px solid var(--border-soft);background:var(--surface-panel);width:196px;box-shadow:var(--shadow-panel);border-radius:13px;padding:12px;position:fixed;overflow:hidden}.node-menu-title{color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:650}.node-menu-item{width:100%;height:36px;color:var(--text-main);text-align:left;background:0 0;border-radius:8px;align-items:center;gap:10px;padding:0 8px;font-size:14px;font-weight:650;display:flex}.node-menu-item:hover:not(:disabled){background:var(--surface-hover)}.node-menu-item:disabled{cursor:not-allowed;color:#ffffff3d}.node-menu-item svg{width:16px;height:16px}.node-menu-item em{background:rgba(var(--accent-cyan-rgb), .14);color:rgba(var(--accent-cyan-rgb), .72);border-radius:5px;padding:1px 5px;font-size:10px;font-style:normal}.node-menu-item strong{color:var(--text-muted);margin-left:auto;font-size:18px;font-weight:400}.node-menu-chevron{width:22px;height:22px;color:var(--text-muted);border-radius:7px;place-items:center;margin-left:auto;transition:background .16s,color .16s,transform .16s;display:grid}.node-menu-chevron svg{width:14px;height:14px}.node-menu-group:hover .node-menu-chevron{color:var(--text-main);background:#ffffff14}.node-menu-chevron.is-open{transform:rotate(90deg)}.node-menu-group{margin-top:4px}.node-menu-children{border-left:1px solid var(--border-soft);margin:2px 0 4px 18px;padding-left:8px}.node-menu-divider{background:var(--border-soft);height:1px;margin:10px 0}.node-menu-resource-hint{color:var(--text-muted);padding:6px 0 2px;font-size:11px;line-height:1.6}.node-menu-child{height:32px;color:var(--text-muted);font-size:13px}.node-menu-child svg{width:14px;height:14px}.floating-panel{z-index:45;border:1px solid var(--border-soft);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#1d1d1df5;border-radius:14px;position:fixed}.floating-panel-title{color:var(--text-strong);font-size:13px;font-weight:650}.floating-panel-subtitle{color:var(--text-muted);margin-top:4px;font-size:11px;line-height:1.5}.template-panel{flex-direction:column;gap:10px;width:min(640px,100vw - 40px);max-height:min(450px,100vh - 120px);padding:14px;display:flex;bottom:74px;left:50%;overflow:hidden;transform:translate(-50%)}.template-panel-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.template-save-trigger{border:1px solid var(--border-soft);height:32px;color:var(--text-strong);background:#ffffff0d;border-radius:9px;flex:none;justify-content:center;align-items:center;gap:7px;padding:0 11px;font-size:11px;font-weight:700;display:inline-flex}.template-save-trigger:hover:not(:disabled){border-color:rgba(var(--accent-cyan-rgb), .4);background:rgba(var(--accent-cyan-rgb), .1)}.template-save-trigger:disabled{cursor:default;opacity:.38}.template-save-row{grid-template-columns:minmax(0,1fr) 34px 34px;gap:7px;display:grid}.template-save-row input{border:1px solid rgba(var(--accent-cyan-rgb), .34);min-width:0;height:34px;color:var(--text-strong);background:#0c0d0eb8;border-radius:9px;outline:none;padding:0 10px;font-size:12px}.template-save-row button{border:1px solid var(--border-soft);color:var(--text-main);border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.template-save-row button:hover{border-color:var(--border-strong);color:var(--text-strong);background:#ffffff14}.template-panel-scroll{overscroll-behavior:contain;min-height:0;max-height:172px;padding-right:3px;overflow-y:auto}.template-panel-scroll::-webkit-scrollbar{width:6px}.template-panel-scroll::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.template-section-label{color:var(--text-muted);margin:8px 0 7px;font-size:10px;font-weight:750}.template-section-label:first-child{margin-top:0}.template-builtins{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.template-panel-section-title{color:var(--text-muted);margin:10px 0 7px;font-size:10px;font-weight:750}.saved-template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.saved-template-card{border:1px solid var(--border-soft);background:#ffffff08;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:6px;min-height:82px;padding:8px;display:grid}.saved-template-card:hover{border-color:var(--border-medium);background:rgba(var(--accent-cyan-rgb), .06)}.saved-template-main{text-align:left;border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-width:0;padding:4px 6px;display:flex}.saved-template-main:hover{background:#ffffff0f}.saved-template-main strong{max-width:100%;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.saved-template-main span{color:var(--text-muted);font-size:11px}.saved-template-meta-row{align-items:center;gap:5px;width:100%;min-width:0;display:flex;overflow:hidden}.saved-template-meta-row em,.saved-template-meta-row small{max-width:76px;height:18px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;background:#ffffff0b;border:1px solid #ffffff14;border-radius:999px;align-items:center;padding:0 6px;font-size:10px;font-style:normal;line-height:1;display:inline-flex;overflow:hidden}.saved-template-meta-row em{border-color:rgba(var(--accent-cyan-rgb), .16);background:rgba(var(--accent-cyan-rgb), .055);color:#bfedffdb}.saved-template-meta-row small{margin-left:auto}.saved-template-actions{flex:none;align-items:center;gap:4px;display:inline-flex}.saved-template-actions button{min-width:0;height:28px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.saved-template-actions button:hover:not(:disabled){color:var(--text-strong);background:#ffffff14}.saved-template-actions button:disabled{cursor:default;opacity:.45}.saved-template-actions svg{width:14px;height:14px}.saved-template-rename{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;display:grid}.saved-template-rename input{border:1px solid rgba(var(--accent-cyan-rgb), .34);min-width:0;height:32px;color:var(--text-strong);background:#0c0d0eb8;border-radius:8px;outline:none;padding:0 10px;font-size:12px}.template-confirm-modal{--accent-cyan-rgb:102, 217, 255;--border-medium:#ffffff2e;--border-soft:#ffffff1f;--text-main:#ffffffd1;--text-muted:#ffffff85;--text-strong:#fffffff0;z-index:90;background:radial-gradient(circle at 50% 45%, rgba(var(--accent-cyan-rgb), .08), transparent 34%), #0000006b;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.template-confirm-panel{background:#1c1c1cf0;border:1px solid #ffffff1f;border-radius:16px;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(360px,100vw - 48px);padding:18px;animation:.18s cubic-bezier(.18,.9,.2,1) both template-confirm-pop;display:grid;box-shadow:0 26px 80px #0000006b}@keyframes template-confirm-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.template-confirm-icon{color:#ff9a9a;background:#ff747414;border:1px solid #ff74743d;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.template-confirm-icon svg{width:16px;height:16px}.template-confirm-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.template-confirm-copy strong{color:var(--text-strong);font-size:14px}.template-confirm-copy span{color:var(--text-muted);font-size:12px;line-height:1.55}.template-confirm-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.template-confirm-actions button{border:1px solid var(--border-soft);height:32px;color:var(--text-main);border-radius:10px;justify-content:center;align-items:center;padding:0 14px;font-size:12px;font-weight:750;display:inline-flex}.template-confirm-actions button:hover:not(:disabled){border-color:var(--border-medium);color:var(--text-strong);background:#ffffff14}.template-confirm-actions button.is-danger{color:#ffd1d1;background:#ff74741a;border-color:#ff747457}.template-confirm-actions button.is-danger:hover:not(:disabled){background:#ff747429;border-color:#ff747494}.template-confirm-actions button:disabled{cursor:default;opacity:.55}.floating-template-card{border:1px solid var(--border-soft);text-align:left;background:#ffffff08;border-radius:10px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-height:64px;padding:12px 14px;display:flex}.floating-template-card:hover{border-color:var(--border-medium);background:rgba(var(--accent-cyan-rgb), .08)}.floating-template-card strong{color:var(--text-strong);font-size:13px}.floating-template-card span{color:var(--text-muted);font-size:11px;line-height:1.5}.side-panel{flex-direction:column;width:300px;min-height:0;padding:14px;display:flex;top:84px;bottom:112px;overflow:hidden}.side-panel-left{left:16px}.side-panel-head{flex:none}.side-panel-scroll{overscroll-behavior:contain;min-height:0;padding-right:4px;overflow-y:auto}.side-panel-scroll::-webkit-scrollbar{width:7px}.side-panel-scroll::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.outline-list{flex-direction:column;gap:8px;margin-top:14px;display:flex}.panel-toolbar{gap:8px;margin-top:12px;display:flex}.panel-search,.panel-select{border:1px solid var(--border-soft);height:36px;color:var(--text-main);background:#ffffff08;border-radius:10px;outline:0;padding:0 12px;font-size:12px}.panel-search{flex:1}.panel-search::placeholder{color:var(--text-subtle)}.panel-select{width:100px}.outline-summary{color:var(--text-muted);margin-top:10px;font-size:11px}.outline-item{border:1px solid var(--border-soft);text-align:left;background:#ffffff08;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.outline-item:hover{border-color:var(--border-medium);background:#ffffff0f}.outline-item span{color:var(--text-main);font-size:12px;font-weight:600}.outline-item small{color:var(--text-muted);font-size:11px}.outline-item-copy{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.outline-item-copy span,.outline-item-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-inline-state{border:1px dashed var(--border-soft);color:var(--text-muted);border-radius:12px;margin-top:14px;padding:14px;font-size:12px;line-height:1.65}.history-gallery-modal{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000ad;place-items:center;padding:42px;display:grid;position:fixed;inset:0}.history-gallery-panel{color:#ffffffd6;background:#1e1f20fa;border:1px solid #ffffff21;border-radius:12px;flex-direction:column;width:min(1280px,100vw - 84px);height:min(820px,100vh - 84px);min-height:0;display:flex;overflow:hidden;box-shadow:0 28px 80px #00000094}.history-gallery-header{border-bottom:1px solid #ffffff17;flex:none;justify-content:space-between;align-items:center;min-height:62px;padding:0 18px 0 20px;display:flex}.history-gallery-header>div{align-items:baseline;gap:12px;display:flex}.history-gallery-header strong{color:#fffffff0;font-size:15px}.history-gallery-header span{color:#ffffff73;font-size:12px}.history-gallery-header>button{color:#ffffff8f;background:0 0;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.history-gallery-header>button:hover{color:#ffffffeb;background:#ffffff14}.history-gallery-header svg{width:18px;height:18px}.history-gallery-error{color:#ffb0a8;background:#ff5c5c14;border:1px solid #ff5c5c47;border-radius:8px;margin:14px 20px 0;padding:9px 11px;font-size:12px}.history-gallery-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:18px 20px 26px;overflow-y:auto}.history-gallery-scroll::-webkit-scrollbar{width:8px}.history-gallery-scroll::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.history-date-group+.history-date-group{margin-top:24px}.history-date-group h3{color:#ffffffb8;margin:0 0 10px;font-size:12px;font-weight:700}.history-image-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;display:grid}.history-image-card{aspect-ratio:1;background:#ffffff0d;border-radius:7px;position:relative;overflow:hidden}.history-image-card>img{object-fit:cover;width:100%;height:100%;transition:transform .18s,filter .18s}.history-image-card:hover>img,.history-image-card:focus-within>img{filter:brightness(.55);transform:scale(1.025)}.history-image-actions{opacity:0;justify-content:center;align-items:center;gap:14px;transition:opacity .16s;display:flex;position:absolute;inset:0}.history-image-card:hover .history-image-actions,.history-image-card:focus-within .history-image-actions{opacity:1}.history-image-actions button{color:#fffffff0;background:0 0;padding:4px 0;font-size:12px;font-weight:700}.history-image-actions button:hover{color:#8ce3ff}.history-image-delete{z-index:2;color:#ffffffb8;opacity:0;background:#0000008f;border-radius:7px;place-items:center;width:26px;height:26px;transition:opacity .16s,background .16s,color .16s;display:grid;position:absolute;top:7px;right:7px}.history-image-card:hover .history-image-delete,.history-image-card:focus-within .history-image-delete{opacity:1}.history-image-delete:hover{color:#ffaaa0;background:#ff5c5c33}.history-image-delete svg{width:14px;height:14px}.history-gallery-empty{color:#ffffff73;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:280px;display:flex}.history-gallery-empty strong{color:#ffffffc2;font-size:14px}.history-gallery-empty span{font-size:12px}.character-panel{width:min(460px,100vw - 32px)}.character-create-box{border:1px solid var(--border-soft);background:#ffffff09;border-radius:12px;flex-direction:column;gap:8px;margin-top:12px;padding:10px;display:flex}.character-description-input{resize:vertical;border:1px solid var(--border-soft);min-height:72px;color:var(--text-main);background:#ffffff08;border-radius:10px;outline:0;padding:10px 12px;font-size:12px;line-height:1.55}.character-description-input::placeholder{color:var(--text-subtle)}.character-create-actions{gap:8px;display:flex}.character-create-actions button,.panel-refresh-button{height:32px;color:var(--text-main);background:#ffffff14;border-radius:9px;padding:0 10px;font-size:12px;font-weight:650}.character-create-actions button:first-child{background:rgba(var(--accent-cyan-rgb), .16);color:var(--text-strong)}.character-create-actions button:disabled{cursor:not-allowed;opacity:.42}.character-error{color:#ffaaa0;background:#ff5c5c1f;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.5}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:10px;margin-top:14px;display:grid}.character-card{border:1px solid var(--border-soft);background:#ffffff08;border-radius:12px;flex-direction:column;gap:8px;min-width:0;padding:8px;display:flex}.character-card:hover,.character-card:focus-within{border-color:rgba(var(--accent-cyan-rgb), .36);background:#ffffff0f}.character-preview-button{text-align:left;background:0 0;border:0;gap:9px;min-width:0;padding:0;display:flex}.character-thumb{background:#ffffff0a;border-radius:10px;flex:0 0 74px;width:74px;height:86px;overflow:hidden}.character-thumb img{object-fit:cover;width:100%;height:100%}.character-copy{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.character-copy strong,.character-copy small,.character-copy span{text-overflow:ellipsis;overflow:hidden}.character-copy strong{color:var(--text-strong);white-space:nowrap;font-size:12px;font-weight:700}.character-copy small{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11px;line-height:1.45;display:-webkit-box}.character-copy span{color:#8bd8ff;white-space:nowrap;font-size:10px}.character-library-modal,.character-upload-modal{z-index:70;background:#00000061;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.character-library-panel{background:#1c1c1cfa;border:1px solid #ffffff1f;border-radius:16px;flex-direction:column;width:min(96vw,1480px);max-height:min(88vh,820px);display:flex;overflow:hidden;box-shadow:0 28px 80px #0000008a}.character-library-header{height:54px;color:var(--text-strong);justify-content:space-between;align-items:center;padding:0 16px;font-size:15px;font-weight:800;display:flex}.character-library-header button{width:32px;height:32px;color:var(--text-muted);border-radius:999px;place-items:center;font-size:24px;line-height:1;display:grid}.character-library-header button:hover{color:var(--text-strong);background:#ffffff14}.character-feature{background:#ffffff0e;border-radius:12px;height:clamp(340px,45vh,430px);margin:0 16px 16px;padding:18px 18px 64px;position:relative}.character-feature-info{align-items:center;gap:14px;min-height:28px;margin-bottom:14px;display:flex}.character-feature-title{align-items:center;gap:8px;min-width:0;display:flex}.character-feature-title strong{color:var(--text-strong);font-size:13px;font-weight:800}.character-feature-title span{color:var(--text-muted);background:#ffffff14;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.character-feature-gallery{gap:10px;height:calc(100% - 42px);min-height:0;padding:2px 2px 8px;display:flex;overflow:auto hidden}.character-feature-card{cursor:pointer;background:#ffffffe6;border:1px solid #ffffff24;border-radius:8px;flex:none;height:100%;transition:border-color .16s;position:relative;overflow:hidden}.character-feature-card.is-active{border-color:#ffffff94}.character-feature-card.is-active:after{border:3px solid rgba(var(--accent-cyan-rgb), .98);box-shadow:inset 0 0 0 2px #fffffff5, inset 0 0 18px rgba(var(--accent-cyan-rgb), .22);content:"";pointer-events:none;border-radius:7px;position:absolute;inset:0}.character-feature-card img{object-fit:contain;width:100%;height:100%}.character-feature-card span{color:#ffffffe6;background:#00000094;border-radius:999px;place-items:center;min-width:22px;height:22px;font-size:11px;font-weight:800;display:grid;position:absolute;bottom:7px;right:7px}.character-feature-delete{color:#fffffff0;opacity:0;background:#000000a3;border-radius:999px;height:24px;padding:0 9px;font-size:11px;font-weight:800;transition:opacity .16s,background .16s;position:absolute;top:8px;right:8px}.character-feature-card:hover .character-feature-delete,.character-feature-card.is-active .character-feature-delete{opacity:1}.character-feature-delete:hover{background:#ff5c5cdb}.character-apply-button{color:#1a1a1a;background:#ffffffeb;border-radius:10px;height:34px;padding:0 14px;font-size:13px;font-weight:800;position:absolute;bottom:16px;right:16px}.character-feature-empty{min-height:240px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.character-feature-empty strong{color:var(--text-strong);font-size:15px}.character-library-toolbar{border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.character-filter-label,.character-secondary-button,.character-upload-button{height:30px;color:var(--text-main);background:#ffffff14;border-radius:8px;align-items:center;padding:0 10px;font-size:12px;font-weight:750;display:inline-flex}.character-upload-button{color:#151515;background:#ffffffeb}.character-library-search{border:1px solid var(--border-soft);min-width:220px;height:30px;color:var(--text-main);background:#ffffff0b;border-radius:8px;outline:0;flex:1;padding:0 10px;font-size:12px}.character-strip{grid-auto-columns:118px;grid-auto-flow:column;gap:14px;padding:8px 56px 18px;display:grid;overflow:auto hidden}.character-strip-card{cursor:grab;width:118px;min-width:0;color:var(--text-muted);flex-direction:column;gap:6px;display:flex;position:relative}.character-strip-card.is-active .character-strip-thumb{box-shadow:0 0 0 2px #ffffffeb, 0 0 0 4px rgba(var(--accent-cyan-rgb), .24)}.character-strip-thumb{aspect-ratio:1/1.34;background:#ffffff0f;border-radius:8px;width:118px;overflow:hidden}.character-strip-thumb img{object-fit:cover;width:100%;height:100%}.character-strip-card span{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.character-strip-card button{color:#ffffffe0;opacity:0;background:#0000008f;border-radius:999px;height:22px;padding:0 8px;font-size:10px;font-weight:800;transition:opacity .16s;position:absolute;top:6px;right:6px}.character-strip-card:hover button{opacity:1}.character-strip-empty{min-height:144px;color:var(--text-muted);grid-column:1/-1;justify-content:center;align-items:center;font-size:13px;display:flex}.character-upload-panel{background:#1c1c1cfa;border:1px solid #ffffff1f;border-radius:16px;flex-direction:column;gap:10px;width:min(420px,100vw - 32px);padding:0 14px 14px;display:flex;box-shadow:0 28px 80px #0000008a}@media (max-width:900px){.character-feature{height:360px}}.asset-drag-preview{z-index:-1;width:192px;color:var(--text-strong);pointer-events:none;background:#202020f5;border:1px solid #fff3;border-radius:12px;position:fixed;top:-1000px;left:-1000px;overflow:hidden;box-shadow:0 18px 44px #0000006b,0 0 0 1px #52d2ff33}.asset-drag-preview-header{min-width:0;height:26px;color:var(--text-muted);align-items:center;padding:0 9px;font-size:10px;font-weight:700;display:flex}.asset-drag-preview-image{aspect-ratio:16/10;background:#ffffff0d;border-radius:8px;margin:0 8px;overflow:hidden}.asset-drag-preview-image img{object-fit:cover;width:100%;height:100%}.asset-drag-preview-footer{color:#8bd8ff;padding:7px 9px 9px;font-size:10px;font-weight:700}.asset-preview-modal{z-index:10030;background:#000000b8;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.asset-preview-panel{flex-direction:column;gap:12px;width:min(980px,92vw);max-height:min(820px,88vh);display:flex}.asset-preview-header{color:var(--text-strong);justify-content:space-between;align-items:center;gap:16px;display:flex}.asset-preview-header>div:first-child{flex-direction:column;gap:4px;min-width:0;display:flex}.asset-preview-header strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.asset-preview-header small{color:var(--text-muted);font-size:12px}.asset-preview-actions{flex:none;gap:8px;display:flex}.asset-preview-actions button{height:32px;color:var(--text-main);background:#ffffff1a;border-radius:8px;padding:0 11px;font-size:12px;font-weight:650}.asset-preview-actions button:hover{color:var(--text-strong);background:#ffffff2e}.asset-preview-actions button:first-child{background:rgba(var(--accent-cyan-rgb), .18);color:var(--text-strong)}.asset-preview-actions button:nth-child(2):hover{color:#ffaaa0;background:#ff5c5c29}.asset-preview-panel img{object-fit:contain;background:#ffffff0a;border-radius:10px;max-width:100%;max-height:calc(88vh - 52px);box-shadow:0 24px 80px #0000006b}.shortcut-panel,.zoom-panel{width:min(360px,100vw - 32px);padding:14px;bottom:74px;right:16px}.shortcut-grid{flex-direction:column;gap:9px;margin-top:12px;display:flex}.shortcut-row{border:1px solid var(--border-soft);color:var(--text-main);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:flex}.shortcut-row strong{color:var(--text-strong);font-size:11px;font-weight:650}.zoom-panel-value{color:var(--text-strong);margin:12px 0;font-size:28px;font-weight:700}.floating-action-button{background:rgba(var(--accent-cyan-rgb), .14);min-width:96px;height:36px;color:var(--text-strong);border-radius:10px;justify-content:center;align-items:center;font-size:12px;font-weight:650;display:inline-flex}.floating-action-button:hover{background:rgba(var(--accent-cyan-rgb), .22)}.zoom-hint{color:var(--text-muted);margin-top:10px;font-size:11px;line-height:1.5}@keyframes edge-flow{to{stroke-dashoffset:-22px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton-wave{0%{background-position:120% 0}to{background-position:-120% 0}}@media (max-width:760px){.starter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.node-composer{width:min(620px,100vw - 40px);top:calc(100% + 12px);left:50%}.node-composer-footer{flex-wrap:wrap}.side-panel{width:auto;max-height:46vh;inset:auto 16px 92px}.history-gallery-modal{padding:12px}.history-gallery-panel{width:calc(100vw - 24px);height:calc(100vh - 24px)}.history-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.canvas-v2-root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--surface-canvas);-webkit-user-select:none;user-select:none}.canvas-v2-root input,.canvas-v2-root textarea,.canvas-v2-root select,.canvas-v2-root [contenteditable=true]{-webkit-user-select:text;user-select:text}.canvas-v2-root .react-flow,.canvas-v2-root .react-flow__renderer,.canvas-v2-root .react-flow__pane,.canvas-v2-root .react-flow__viewport{background:var(--surface-canvas)}.canvas-v2-root,.canvas-v2-root .react-flow,.canvas-v2-root .react-flow__renderer,.canvas-v2-root .react-flow__pane,.canvas-v2-root .react-flow__viewport{cursor:default!important}.canvas-v2-root .react-flow__node{cursor:grab!important}.canvas-v2-root .react-flow__node:active,.canvas-v2-root .react-flow__node.dragging{cursor:grabbing!important}.canvas-v2-root button,.canvas-v2-root a,.canvas-v2-root .canvas-handle,.canvas-v2-root [role=button]{cursor:pointer}.template-custom-list{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:112px;padding-right:3px;display:grid;overflow-y:auto}.template-custom-list::-webkit-scrollbar{width:5px}.template-custom-list::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.template-custom-row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:6px;display:grid}.template-custom-card{min-width:0;position:relative}.template-custom-main{border:1px solid var(--border-soft);text-align:left;background:#ffffff07;border-radius:9px;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;width:100%;min-width:0;min-height:48px;padding:9px 82px 9px 11px;display:flex;overflow:hidden}.template-custom-main:hover{border-color:rgba(var(--accent-cyan-rgb), .36);background:rgba(var(--accent-cyan-rgb), .075)}.template-custom-main strong,.template-custom-main span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.template-custom-main strong{color:var(--text-strong);font-size:12px}.template-custom-main span{color:var(--text-muted);font-size:10px}.template-row-actions{opacity:.58;grid-template-columns:repeat(3,26px);justify-content:end;align-items:center;gap:2px;transition:opacity .14s;display:grid;position:absolute;top:8px;right:8px}.template-custom-card:hover .template-row-actions,.template-row-actions:focus-within{opacity:1}.template-icon-button{color:#ffffff57;opacity:.78;background:#0c0d0e6b;border:0;border-radius:7px;justify-content:center;align-self:center;align-items:center;width:26px;height:26px;transition:background .14s,color .14s,opacity .14s;display:inline-flex}.template-icon-button:hover:not(:disabled){color:var(--text-strong);opacity:1;background:#ffffff14}.template-delete-button:hover:not(:disabled){color:#ff9288f2;opacity:1;background:#ff60601a}.template-icon-button:disabled{cursor:not-allowed;opacity:.28}.template-rename-row{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 30px 30px;gap:6px;display:grid}.template-rename-row input{border:1px solid rgba(var(--accent-cyan-rgb), .34);min-width:0;height:32px;color:var(--text-strong);background:#0c0d0eb8;border-radius:8px;outline:none;padding:0 10px;font-size:12px}.template-rename-row button{border:1px solid var(--border-soft);color:var(--text-main);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.template-rename-row button:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-strong);background:#ffffff14}.template-empty,.template-error{border:1px dashed var(--border-soft);color:var(--text-muted);text-align:center;border-radius:9px;padding:14px;font-size:11px}@media (max-width:720px){.template-builtins,.template-custom-list{grid-template-columns:1fr}.template-save-trigger span{display:none}}.template-error{color:#ffa6a6e6;border-style:solid;border-color:#ff76763d}.canvas-v2-root .node-composer-input-editor,.canvas-v2-root .node-composer textarea,.canvas-v2-root .node-composer-token-editor,.canvas-v2-root .node-composer-token-editor *,.canvas-v2-root .node-composer textarea *{cursor:text!important}.canvas-v2-root .react-flow__background{background-color:var(--surface-canvas)}
