.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-card: #1a1f2b;--bg-elevated: #252b36;--border-color: #30363d;--border-active: #58a6ff;--text-primary: #e6edf3;--text-secondary: #8b949e;--text-tertiary: #6e7681;--accent-blue: #58a6ff;--accent-green: #3fb950;--accent-purple: #8b8b8b;--accent-orange: #d29922;--accent-red: #f85149;--accent-pink: #db61a2;--accent-cyan: #39d2c0;--shadow: 0 2px 8px rgba(0,0,0,.3);--shadow-lg: 0 4px 16px rgba(0,0,0,.4);--radius: 8px;--radius-lg: 12px;--node-bg: #1c1c1e;--node-border: #2c2c30;--node-border-hover: #3a3a42;--node-border-active: #4a4a52;--node-header-bg: #161618;--dialog-bg: #1a1a1d;--input-bg: #18181b;--input-border: #333;--input-border-focus: #555;--input-text: #f0f0f0;--input-placeholder: #666;--btn-secondary-bg: #2a2a2e;--btn-secondary-border: #444;--btn-secondary-hover-bg: #4a4a50;--btn-secondary-hover-border: #666;--btn-send-color: #ddd;--btn-send-hover-color: #fff;--tag-bg: #222228;--tag-border: #333;--tag-hover-bg: #2a2a32;--tag-text: #ccc;--tag-hover-text: #fff;--tooltip-bg: #2a2a32;--tooltip-border: #444;--tooltip-header-text: #888;--tooltip-divider: #3a3a42;--price-label: #999;--price-value: #f0b040;--dropdown-bg: #1e1e24;--dropdown-border: #3a3a42;--dropdown-text: #ccc;--divider-color: #2a2a32;--icon-color: #ddd;--label-secondary: #aaa;--text-dim: #888;--text-dim2: #777;--text-muted: #666;--text-bright: #eee;--text-brightest: #fff;--handle-bg: rgba(30,30,50,.85);--handle-border: rgba(255,255,255,.25);--handle-color: rgba(255,255,255,.4);--handle-hover-bg: rgba(40,45,70,.95);--handle-hover-border: rgba(255,255,255,.6);--handle-hover-color: rgba(255,255,255,.9);--op-btn-border: rgba(255,255,255,.08);--op-btn-hover-bg: rgba(255,255,255,.06);--op-btn-hover-border: rgba(255,255,255,.2);--node-selected-glow: rgba(255,255,255,.08);--image-placeholder-grad-start: #1a1a20;--image-placeholder-grad-mid: #1e1e26;--credits-bg: rgba(255,193,7,.1);--credits-border: rgba(255,193,7,.25);--credits-text: #ffc107;--edit-panel-bg: #1a1a2e;--edit-panel-border: #2a2a40;--gen-btn-gradient: linear-gradient(135deg, #6b6b6b, #9a9a9a);--history-item-bg: #0f0f1a;--history-item-border: #252540;--nav-active-bg: rgba(88,166,255,.1);--error-bg: rgba(248,81,73,.1);--minimap-mask: rgba(0,0,0,.5)}[data-theme=light]{--bg-primary: #f0f2f5;--bg-secondary: #ffffff;--bg-tertiary: #e8eaed;--bg-card: #ffffff;--bg-elevated: #ffffff;--border-color: #d9d9d9;--border-active: #1677ff;--text-primary: #1a1a2e;--text-secondary: #595959;--text-tertiary: #8c8c8c;--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 4px 16px rgba(0,0,0,.12);--node-bg: #ffffff;--node-border: #e8e8e8;--node-border-hover: #b3b3b3;--node-border-active: #1677ff;--node-header-bg: #f7f7f8;--dialog-bg: #fafafa;--input-bg: #f5f5f5;--input-border: #d9d9d9;--input-border-focus: #1677ff;--input-text: #1a1a2e;--input-placeholder: #bfbfbf;--btn-secondary-bg: #f0f0f0;--btn-secondary-border: #d9d9d9;--btn-secondary-hover-bg: #e6e6e6;--btn-secondary-hover-border: #b3b3b3;--btn-send-color: #8c8c8c;--btn-send-hover-color: #1677ff;--tag-bg: #f5f5f5;--tag-border: #d9d9d9;--tag-hover-bg: #e8e8e8;--tag-text: #595959;--tag-hover-text: #1a1a2e;--tooltip-bg: #404040;--tooltip-border: #595959;--tooltip-header-text: #bbb;--tooltip-divider: #555;--price-label: #bbb;--price-value: #d48806;--dropdown-bg: #ffffff;--dropdown-border: #e8e8e8;--dropdown-text: #595959;--divider-color: #e8e8e8;--icon-color: #595959;--label-secondary: #8c8c8c;--text-dim: #bfbfbf;--text-dim2: #b3b3b3;--text-muted: #a3a3a3;--text-bright: #1a1a2e;--text-brightest: #1a1a2e;--handle-bg: rgba(255,255,255,.85);--handle-border: rgba(0,0,0,.2);--handle-color: rgba(0,0,0,.4);--handle-hover-bg: rgba(255,255,255,.95);--handle-hover-border: rgba(0,0,0,.5);--handle-hover-color: rgba(0,0,0,.7);--op-btn-border: rgba(0,0,0,.08);--op-btn-hover-bg: rgba(0,0,0,.04);--op-btn-hover-border: rgba(0,0,0,.15);--node-selected-glow: rgba(22,119,255,.15);--image-placeholder-grad-start: #f0f0f0;--image-placeholder-grad-mid: #f5f5f5;--credits-bg: rgba(250,173,20,.1);--credits-border: rgba(250,173,20,.3);--credits-text: #d48806;--edit-panel-bg: #ffffff;--edit-panel-border: #e8e8e8;--gen-btn-gradient: linear-gradient(135deg, #8c8c8c, #b0b0b0);--history-item-bg: #fafafa;--history-item-border: #e8e8e8;--nav-active-bg: rgba(22,119,255,.08);--error-bg: rgba(248,81,73,.08);--minimap-mask: rgba(0,0,0,.12)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}input,select,textarea,button{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}.react-flow__node{font-size:14px}.react-flow__controls{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden}.react-flow__controls-button{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);fill:var(--text-primary);width:28px;height:28px}.react-flow__controls-button:hover{background:var(--bg-tertiary)}.react-flow__minimap{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius)}.react-flow__attribution{display:none}.react-flow__edge-path{stroke:var(--text-tertiary);stroke-width:2}.react-flow__handle{width:20px;height:20px;background:var(--handle-bg);border:1.5px solid var(--handle-border);border-radius:50%;color:var(--handle-color)}.react-flow__handle:hover{background:var(--handle-hover-bg);border-color:var(--handle-hover-border);color:var(--handle-hover-color)}.react-flow__handle.connecting{background:#323c64f2;border-color:#8ca0ffcc;color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.canvas-node{min-width:220px;max-width:320px;background:var(--node-bg);border:1px solid var(--node-border);border-radius:10px;box-shadow:var(--shadow);transition:all .2s;overflow:visible;cursor:default;position:relative}.canvas-node:hover{cursor:default;border-color:var(--node-border-hover)}.canvas-node.selected{cursor:default;border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.node-delete-btn{position:absolute;top:-8px;right:-8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--node-bg);border:1px solid var(--node-border);border-radius:50%;color:var(--text-muted);cursor:pointer;padding:0;opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s;z-index:10}.canvas-node:hover .node-delete-btn,.canvas-node.selected .node-delete-btn{opacity:1}.node-delete-btn:hover{color:#ef4444;border-color:#ef4444;background:#ef44441a}.node-header{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--node-header-bg);border-bottom:1px solid var(--divider-color);border-radius:10px 10px 0 0}.node-icon{width:24px;height:24px;border-radius:5px;background:#7f7f7f1a;color:var(--icon-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-type-label{font-size:11px;color:var(--label-secondary);letter-spacing:.5px;font-weight:500}.node-title{font-size:13px;font-weight:600;color:var(--text-brightest);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-body{padding:0;min-height:20px}.text-preview{margin:0;padding:10px 14px;font-size:13px;color:var(--text-bright);line-height:1.6;max-height:100px;overflow:hidden;text-overflow:ellipsis}.empty-preview{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;color:var(--text-dim);font-size:12px}.generator-preview{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;color:var(--text-bright)}.node-footer{display:flex;gap:8px;padding:6px 14px;border-top:1px solid var(--divider-color)}.node-meta{font-size:11px;color:var(--label-secondary);background:var(--node-header-bg);padding:1px 6px;border-radius:3px}.node-handle{width:24px!important;height:24px!important;background:var(--handle-bg)!important;border:1.5px solid var(--handle-border)!important;border-radius:50%!important;color:var(--handle-color);display:flex!important;align-items:center!important;justify-content:center!important;cursor:crosshair!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;padding:0;opacity:0;pointer-events:all;transition:opacity .2s ease,width .2s ease,height .2s ease,background .2s,border-color .2s,box-shadow .2s,transform .2s ease}.node-handle>svg,.node-handle>line{pointer-events:none}.canvas-node:hover .node-handle,.canvas-node.selected .node-handle,.canvas-node.connect-target .node-handle{opacity:1}.canvas-node:hover .node-handle:hover,.canvas-node.selected .node-handle:hover,.canvas-node.connect-target .node-handle:hover{width:28px!important;height:28px!important;background:var(--handle-hover-bg)!important;border-color:var(--handle-hover-border)!important;color:var(--handle-hover-color);box-shadow:0 0 14px #7f7f7f33}.canvas-node:hover .left-handle:hover,.canvas-node.selected .left-handle:hover,.canvas-node.connect-target .left-handle:hover{transform:translate(-14px)}.canvas-node:hover .right-handle:hover,.canvas-node.selected .right-handle:hover,.canvas-node.connect-target .right-handle:hover{transform:translate(14px)}.left-handle{left:-12px!important;transform:translate(-12px)}.right-handle{right:-12px!important;transform:translate(12px)}.canvas-node.connect-target,.canvas-node.text-node.connect-target .text-node-card,.canvas-node.image-node.connect-target{border-color:var(--accent-blue)!important;box-shadow:0 0 0 2px var(--node-selected-glow),0 0 16px #3b82f64d!important}.canvas-node.text-node{min-width:280px;max-width:520px;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible}.canvas-node.text-node:hover{cursor:default;border-color:transparent}.canvas-node.text-node.selected{cursor:default;border-color:transparent;box-shadow:none}.text-node-card{position:relative;background:var(--node-bg);border:1px solid var(--node-border);border-radius:10px;box-shadow:var(--shadow);transition:all .2s;overflow:visible}.canvas-node.text-node:hover .text-node-card{border-color:var(--node-border-hover)}.canvas-node.text-node.selected .text-node-card{border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.text-node-actions{display:flex;flex-direction:column;gap:2px;padding:8px 14px 12px}.text-node-hint{font-size:11px;color:var(--label-secondary);padding:2px 0 6px;letter-spacing:.5px}.text-node-op-btn{display:flex;align-items:center;gap:10px;padding:9px 14px;background:transparent;border:1px solid var(--op-btn-border);color:var(--text-bright);cursor:pointer;font-family:inherit;font-size:13px;text-align:left;border-radius:7px;transition:all .12s;outline:none;width:100%;white-space:nowrap}.text-node-op-btn:hover{background:var(--op-btn-hover-bg);color:var(--text-brightest);border-color:var(--op-btn-hover-border)}.text-node-content-preview{margin:0;padding:0 14px 12px;font-size:13px;color:var(--tag-text);line-height:1.6;max-height:180px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.text-node-cancel-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-dim);cursor:pointer;padding:0;transition:all .12s}.text-node-cancel-btn:hover{background:var(--op-btn-hover-bg);color:var(--tag-text);border-color:var(--op-btn-border)}.text-node-compact{display:flex;flex-direction:column;min-height:80px}.text-node-compact-content{flex:1;padding:8px 14px 4px;font-size:13px;color:var(--text-primary, #e8e8e8);line-height:1.7;max-height:280px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.text-node-compact-toolbar{display:flex;align-items:center;gap:6px;padding:0 12px 10px}.text-node-edit-btn{display:flex;align-items:center;justify-content:center;padding:3px 10px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:var(--text-dim, #999);font-size:12px;cursor:pointer;transition:all .15s}.text-node-edit-btn:hover{background:#ffffff14;border-color:#ffffff40;color:var(--text-primary, #e8e8e8)}.text-node-ai-btn{display:flex;align-items:center;gap:5px;padding:3px 10px;background:transparent;border:1px solid rgba(99,153,255,.3);border-radius:6px;color:var(--accent-blue, #6399ff);font-size:12px;cursor:pointer;transition:all .15s;margin-left:auto}.text-node-ai-btn:hover{background:#6399ff1f;border-color:#6399ff8c;color:var(--accent-blue-hover, #7aadff)}.image-node-compact-card{display:flex;flex-direction:column}.image-node-compact-body{display:flex;flex-direction:column;gap:0}.image-node-compact-img{width:100%;max-height:360px;object-fit:contain;border-radius:0 0 8px 8px;cursor:pointer;background:#0d0d0d}.image-node-compact-toolbar{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-top:1px solid rgba(255,255,255,.06)}.image-node-compact-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-dim, #999);font-size:12px;cursor:pointer;transition:all .15s}.image-node-compact-btn:hover{background:#ffffff14;border-color:#ffffff40;color:var(--text-primary, #e8e8e8)}.image-node-compact-edit{border-color:#4da3ff4d;color:var(--accent-blue, #4da3ff)}.image-node-compact-edit:hover{background:#4da3ff26;border-color:#4da3ff99;color:#fff}.text-node-selfwrite-input{width:100%;min-height:140px;max-height:300px;overflow-y:auto;background:var(--input-bg);border:none;border-top:1px solid var(--divider-color);border-radius:0 0 8px 8px;padding:36px 14px 10px;color:var(--input-text);font-size:13px;line-height:1.7;resize:vertical;outline:none;font-family:inherit}.text-node-selfwrite-input::placeholder{color:var(--input-placeholder)}.text-node-lower{position:absolute;top:100%;left:50%;transform:translate(-50%) scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:center top;margin-top:8px;width:500px;z-index:10;animation:nodeDialogIn .2s ease-out}.text-node-dialog{background:var(--dialog-bg);border:1px solid var(--node-border);border-radius:10px;padding:12px 16px 14px;box-shadow:var(--shadow-lg)}.text-node-input{width:100%;min-height:80px;max-height:180px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;padding:8px 10px;color:var(--input-text);font-size:13px;line-height:1.5;resize:vertical;outline:none;font-family:inherit}.text-node-input:focus{border-color:var(--input-border-focus)}.text-node-input::placeholder{color:var(--input-placeholder)}.text-node-mode-toggle{position:relative;flex-shrink:0}.mode-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s;font-family:inherit}.mode-btn-main{gap:5px}.mode-btn-main:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mode-btn-arrow{flex-shrink:0;opacity:.5;transition:opacity .15s}.mode-btn-main:hover .mode-btn-arrow{opacity:.8}.mode-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.mode-menu{position:absolute;bottom:calc(100% + 4px);left:0;z-index:100;min-width:100%;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 16px #0000002e;overflow:hidden;animation:modeMenuIn .15s ease-out}@keyframes modeMenuIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.mode-menu-item{display:flex;align-items:center;gap:6px;width:100%;padding:7px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .12s;font-family:inherit}.mode-menu-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mode-menu-item-active{background:var(--bg-tertiary);color:var(--text-primary);font-weight:500}.text-node-toolbar{display:flex;align-items:center;gap:8px;margin-top:8px}.text-node-model-dropdown-wrap{position:relative;display:inline-flex;flex-shrink:0}.text-node-model-dropdown-btn{display:flex;align-items:center;gap:5px;padding:5px 9px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-bright);font-size:11px;cursor:pointer;transition:all .12s;font-family:inherit;white-space:nowrap}.text-node-model-dropdown-btn:hover{border-color:var(--input-border-focus)}.text-node-model-dropdown-menu{position:absolute;bottom:calc(100% + 4px);left:0;min-width:max-content;max-height:280px;overflow-y:auto;background:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:8px;padding:5px;z-index:200;box-shadow:var(--shadow-lg)}.text-node-model-dropdown-item{display:flex;align-items:center;gap:7px;padding:7px 12px;font-size:11.5px;color:var(--dropdown-text);border-radius:5px;cursor:pointer;white-space:nowrap;transition:all .1s}.text-node-model-dropdown-item:hover{background:var(--op-btn-hover-bg);color:var(--tag-hover-text)}.text-node-model-dropdown-item.active{background:#ffffff14;color:var(--text-brightest)}.text-node-model-dropdown-group-label{padding:4px 12px 2px;font-size:10px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.text-node-price-info{position:relative;display:flex;align-items:center;gap:4px;font-size:11px;color:var(--label-secondary);white-space:nowrap;flex-shrink:0;margin-left:auto;cursor:help;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.text-node-price-info:hover{color:var(--tag-text);background:var(--op-btn-hover-bg)}.text-node-price-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;background:var(--tooltip-bg);border:1px solid var(--tooltip-border);border-radius:8px;padding:10px 14px;font-size:12px;white-space:nowrap;z-index:1000;box-shadow:var(--shadow-lg);min-width:210px}.price-tooltip-header{color:var(--tooltip-header-text);font-size:11px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--tooltip-divider)}.price-tooltip-line{display:flex;align-items:center;gap:6px;padding:2px 0}.price-tooltip-line+.price-tooltip-line{margin-top:2px}.price-label{color:var(--price-label);flex-shrink:0}.price-value{color:var(--price-value);font-weight:600}.price-unit{color:var(--text-muted);font-size:11px}.text-node-send-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:50%;color:var(--btn-send-color);cursor:pointer;transition:all .15s;flex-shrink:0;padding:0}.text-node-send-btn:hover{background:var(--btn-secondary-hover-bg);color:var(--btn-send-hover-color);border-color:var(--btn-secondary-hover-border)}.text-node-send-btn:disabled,.text-node-send-btn.sending{opacity:.4;cursor:not-allowed}.text-node-generating{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 14px 16px}.text-node-generating-icon{animation:pulse-glow 1.5s ease-in-out infinite;color:var(--accent-blue, #6399ff)}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.text-node-generating-text{font-size:13px;color:var(--text-dim, #999)}.text-node-generating-bar{width:100%;height:3px;background:#ffffff0f;border-radius:2px;overflow:hidden}.text-node-generating-bar-fill{height:100%;width:30%;background:linear-gradient(90deg,var(--accent-blue, #6399ff),#a78bfa,var(--accent-blue, #6399ff));background-size:200% 100%;border-radius:2px;animation:generating-slide 1.5s ease-in-out infinite}@keyframes generating-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.text-node-input-sending{opacity:.5;pointer-events:none}.canvas-node.image-node{min-width:280px;max-width:520px;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible}.canvas-node.image-node:hover{cursor:default;border-color:transparent}.canvas-node.image-node.selected{cursor:default;border-color:transparent;box-shadow:none}.image-node-card{position:relative;background:var(--node-bg);border:1px solid var(--node-border);border-radius:10px;box-shadow:var(--shadow);transition:all .2s;overflow:visible}.canvas-node.image-node:hover .image-node-card{border-color:var(--node-border-hover)}.canvas-node.image-node.selected .image-node-card{border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.image-node-upper{background:var(--node-bg)}.image-node-preview{background:var(--dialog-bg);position:relative;cursor:pointer}.image-node-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 20px;color:var(--text-muted);background:linear-gradient(135deg,var(--image-placeholder-grad-start) 0%,var(--image-placeholder-grad-mid) 50%,var(--image-placeholder-grad-start) 100%);min-height:120px}.image-node-placeholder span{font-size:12px;color:var(--text-dim2);letter-spacing:1px}.image-node-drop-zone{position:relative;transition:border-color .2s,background .2s}.image-node-drop-zone.drag-over{border:2px dashed var(--accent-blue);background:#3b82f60f}.image-node-drop-zone.drag-over .image-node-placeholder{background:#3b82f60a}.image-node-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#3b82f61f;border:2px dashed var(--accent-blue);border-radius:10px;z-index:5;pointer-events:none}.image-node-drop-overlay span{font-size:13px;color:var(--accent-blue);font-weight:500}.canvas-node.image-upload-node{min-width:280px;max-width:520px;cursor:default;border-color:transparent}.canvas-node.image-upload-node:hover{cursor:default;border-color:transparent}.canvas-node.image-upload-node.selected{cursor:default;border-color:transparent;box-shadow:none}.image-upload-card{position:relative;background:var(--node-bg);border:1px solid var(--node-border);border-radius:10px;box-shadow:var(--shadow);transition:all .2s;overflow:visible}.canvas-node.image-upload-node:hover .image-upload-card{border-color:var(--node-border-hover)}.canvas-node.image-upload-node.selected .image-upload-card{border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.image-upload-body{padding:0}.image-upload-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 20px;min-height:120px;color:var(--text-muted);background:linear-gradient(135deg,var(--image-placeholder-grad-start) 0%,var(--image-placeholder-grad-mid) 50%,var(--image-placeholder-grad-start) 100%);cursor:pointer;transition:border-color .2s,background .2s;position:relative;border-radius:0 0 10px 10px}.image-upload-drop-zone span{font-size:12px;color:var(--text-dim2);letter-spacing:1px}.image-upload-drop-zone.drag-over{border:2px dashed var(--accent-blue);background:#3b82f60f}.image-upload-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#3b82f61f;border:2px dashed var(--accent-blue);border-radius:0 0 10px 10px;z-index:5;pointer-events:none}.image-upload-drop-overlay span{font-size:13px;color:var(--accent-blue);font-weight:500}.image-upload-preview-wrap{position:relative;border-radius:0 0 10px 10px;overflow:hidden}.image-upload-preview-img{display:block;width:100%;height:auto;object-fit:contain;cursor:pointer}.image-upload-replace-hint{position:absolute;bottom:8px;right:8px;opacity:0;transition:opacity .15s}.image-upload-preview-wrap:hover .image-upload-replace-hint{opacity:1}.image-upload-replace-btn{padding:4px 10px;background:#000000a6;border:1px solid rgba(255,255,255,.15);border-radius:5px;color:#ddd;font-size:11px;cursor:pointer;transition:all .15s;font-family:inherit}.image-upload-replace-btn:hover{background:#000c;border-color:#ffffff4d;color:#fff}.image-node-generating{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;min-height:120px;background:linear-gradient(135deg,#1a1a20,#1e1e26,#1a1a20);position:relative;overflow:hidden}.image-node-generating:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);animation:generating-shimmer 2s ease-in-out infinite}@keyframes generating-shimmer{0%{left:-100%}to{left:100%}}.generating-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--text-secondary);border-radius:50%;animation:generating-spin .8s linear infinite}@keyframes generating-spin{to{transform:rotate(360deg)}}.generating-title{font-size:13px;color:var(--text-secondary);font-weight:500}.generating-progress-bar{width:100%;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.generating-progress-fill{height:100%;background:linear-gradient(90deg,var(--text-secondary),var(--text-primary));border-radius:2px;transition:width .3s ease-out}.generating-percent{font-size:11px;color:var(--text-dim2);font-variant-numeric:tabular-nums}.image-node-actions{display:flex;flex-direction:column;gap:2px;padding:8px 14px 12px}.image-node-lower{position:absolute;top:100%;left:50%;transform:translate(-50%) scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:center top;margin-top:8px;width:500px;z-index:10;animation:nodeDialogIn .2s ease-out}.image-node-dialog{background:var(--dialog-bg);border:1px solid var(--node-border);border-radius:10px;padding:12px 16px 14px;box-shadow:var(--shadow-lg)}.image-thumb-strip{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;align-items:flex-start}.image-thumb-item{position:relative;width:64px;height:64px;flex-shrink:0;cursor:pointer;border-radius:6px;overflow:hidden}.image-thumb-item img{width:100%;height:100%;border-radius:6px;border:1px solid var(--node-border);object-fit:cover;background:var(--input-bg);transition:border-color .15s;display:block}.image-thumb-item:hover img{border-color:var(--accent-blue)}.image-thumb-label{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:10px;color:#ffffffe6;line-height:16px;background:#00000073;pointer-events:none}.image-thumb-add{width:64px;height:64px;border-radius:6px;border:1.5px dashed var(--node-border);background:transparent;color:var(--text-dim2);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;font-family:inherit}.image-thumb-add:hover{border-color:var(--accent-blue);color:var(--accent-blue);background:#58a6ff0d}.image-node-tags{display:flex;gap:6px;margin-bottom:10px}.image-node-tag-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:14px;color:var(--tag-text);font-size:11px;cursor:pointer;transition:all .12s;font-family:inherit}.image-node-tag-btn:hover{background:var(--tag-hover-bg);border-color:var(--input-border-focus);color:var(--tag-hover-text)}.image-node-input{width:100%;min-height:70px;max-height:140px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;padding:8px 10px;color:var(--input-text);font-size:13px;line-height:1.5;resize:vertical;outline:none;font-family:inherit;margin-bottom:10px}.image-node-input:focus{border-color:var(--input-border-focus)}.image-node-input::placeholder{color:var(--input-placeholder)}.upstream-content-hint{display:flex;align-items:flex-start;gap:6px;margin-top:8px;padding:8px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:11px;line-height:1.5}.upstream-content-hint svg{color:var(--text-secondary);flex-shrink:0;margin-top:1px}.upstream-label{color:var(--text-secondary);font-weight:500;flex-shrink:0}.upstream-text{color:var(--text-secondary);word-break:break-all}.image-node-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.image-node-select{min-width:0;width:auto;max-width:110px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;padding:5px 6px;color:var(--text-bright);font-size:11px;outline:none;cursor:pointer;font-family:inherit;flex-shrink:0}.image-model-dropdown-wrap{position:relative;flex-shrink:0}.image-model-dropdown-btn{display:flex;align-items:center;gap:5px;padding:5px 9px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-bright);font-size:11px;cursor:pointer;transition:all .12s;font-family:inherit;white-space:nowrap}.image-model-dropdown-btn:hover{border-color:var(--input-border-focus)}.image-model-dropdown-menu{position:absolute;bottom:calc(100% + 4px);left:0;min-width:max-content;background:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:8px;padding:5px;z-index:200;box-shadow:var(--shadow-lg)}.image-model-dropdown-item{display:flex;align-items:center;gap:7px;padding:7px 12px;font-size:11.5px;color:var(--dropdown-text);border-radius:5px;cursor:pointer;white-space:nowrap;transition:all .1s}.image-model-dropdown-item:hover{background:var(--op-btn-hover-bg);color:var(--tag-hover-text)}.image-model-dropdown-item.active{background:#ffffff14;color:var(--text-brightest)}.image-model-dropdown-group-label{padding:4px 12px 2px;font-size:10px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.image-node-dropdown-wrap{position:relative;flex-shrink:0}.image-node-dropdown-btn{display:flex;align-items:center;gap:4px;padding:5px 8px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--tag-text);font-size:11px;cursor:pointer;transition:all .12s;font-family:inherit;white-space:nowrap}.image-node-dropdown-btn:hover{border-color:var(--input-border-focus);color:var(--tag-hover-text)}.image-node-count-btn{gap:0}.image-node-dropdown-menu{position:absolute;bottom:calc(100% + 4px);left:0;min-width:80px;background:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:6px;padding:4px;z-index:100;box-shadow:var(--shadow-lg)}.image-node-dropdown-item{padding:5px 10px;font-size:11px;color:var(--dropdown-text);border-radius:4px;cursor:pointer;white-space:nowrap}.image-node-dropdown-item:hover{background:var(--op-btn-hover-bg);color:var(--tag-hover-text)}.image-node-credits-badge{display:flex;align-items:center;gap:3px;padding:4px 8px;background:var(--credits-bg);border:1px solid var(--credits-border);border-radius:12px;color:var(--credits-text);font-size:11px;font-weight:600;flex-shrink:0;margin-left:auto}.image-node-send-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:50%;color:var(--btn-send-color);cursor:pointer;transition:all .15s;flex-shrink:0;padding:0}.image-node-send-btn:hover{background:var(--btn-secondary-hover-bg);color:var(--btn-send-hover-color);border-color:var(--btn-secondary-hover-border)}.image-node-send-btn:disabled,.image-node-send-btn.sending{opacity:.4;cursor:not-allowed}.node-image-preview{width:100%;max-height:300px;object-fit:contain;display:block;background:var(--dialog-bg)}.image-action-toolbar{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:4px;background:#141418eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:4px;z-index:10;animation:toolbarSlideUp .2s ease}to{opacity:1;transform:translate(-50%) translateY(0)}.image-action-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 10px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;transition:all .15s;min-width:48px}.image-action-btn:hover{background:#ffffff14;color:var(--accent-primary)}.image-action-btn span{line-height:1}.edge-scissor-btn{width:28px;height:28px;border-radius:50%;border:2px solid #ef4444;background:#fff;color:#ef4444;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #ef444440;transition:all .15s;z-index:10}.edge-scissor-btn:hover{background:#ef4444;color:#fff;transform:translate(-50%,-50%) scale(1.15);box-shadow:0 4px 14px #ef444466}.react-flow__nodesselection-rect,.react-flow__selection{cursor:default!important}.canvas-node.video-node:hover{cursor:default;border-color:transparent}.canvas-node.video-node.selected{cursor:default;border-color:transparent;box-shadow:none}.video-node-card{min-width:220px;max-width:320px}.canvas-node.audio-node:hover{cursor:default;border-color:transparent}.canvas-node.audio-node.selected{cursor:default;border-color:transparent;box-shadow:none}.audio-node-card{min-width:220px;max-width:320px}.audio-type-tabs{display:flex;align-items:center;gap:2px;margin-bottom:8px}.audio-type-tab{flex:1;padding:6px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:12.5px;cursor:pointer;transition:all .15s;font-family:inherit;border-radius:6px;text-align:center}.audio-type-tab:hover{background:var(--bg-tertiary);color:var(--text-bright)}.audio-type-tab.active{background:#ffffff14;color:var(--text-brightest);font-weight:600}.video-tab-bar{display:flex;align-items:center;gap:2px;margin-bottom:8px}.video-tab-btn{padding:5px 14px;background:transparent;border:none;color:var(--text-secondary);font-size:12.5px;cursor:pointer;transition:all .15s;font-family:inherit;border-radius:6px;position:relative}.video-tab-btn:hover{background:var(--bg-tertiary);color:var(--text-bright)}.video-tab-btn.active{color:var(--text-brightest);font-weight:600}.video-tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--text-secondary);border-radius:1px}.video-action-row{display:flex;gap:8px;margin-bottom:10px}.video-action-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:7px;color:var(--tag-text);font-size:11.5px;cursor:pointer;transition:all .15s;font-family:inherit}.video-action-btn:hover{border-color:var(--input-border-focus);color:var(--text-brightest);background:var(--bg-tertiary)}.video-frame-select{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;background:var(--input-bg);border:1px dashed var(--node-border);border-radius:8px}.video-frame-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--op-btn-border);border-radius:8px;color:var(--text-dim);cursor:pointer;transition:all .15s;font-family:inherit;flex:1}.video-frame-btn:hover{border-color:var(--op-btn-hover-border);background:var(--op-btn-hover-bg);color:var(--text-bright)}.video-frame-btn.selected{border-color:#fff3;background:#ffffff14;color:var(--text-brightest)}.video-frame-btn span{font-size:11px;white-space:nowrap}.video-frame-preview{width:56px;height:36px;border-radius:5px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--image-placeholder-grad-start),var(--image-placeholder-grad-mid));color:var(--text-muted);border:1px solid var(--divider-color)}.video-frame-preview img{width:100%;height:100%;object-fit:cover}.video-frame-arrow{color:var(--text-dim2);font-size:16px;font-weight:700;flex-shrink:0}.frame-thumb .image-thumb-label{background:#787878d9!important}.video-model-select{min-width:120px!important;max-width:140px!important}.video-credits-badge{font-weight:700!important;font-size:13px!important;background:#22c55e14!important;border-color:#22c55e40!important;color:#22c55e!important}.video-speed-btn{min-width:48px!important}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--text-tertiary)!important;stroke-width:2}.react-flow__edge-path.selected,.react-flow__connection-line{stroke:var(--text-tertiary)!important}.image-node-settings-wrap{position:relative}.image-node-settings-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:all .15s;white-space:nowrap}.image-node-settings-btn:hover{border-color:var(--input-border-focus);color:var(--text-brightest)}.image-settings-popup{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:200;width:280px;background:var(--dialog-bg, #1a1a1d);border:1px solid var(--node-border, #2c2c30);border-radius:10px;padding:14px;box-shadow:0 8px 32px #00000080}to{opacity:1;transform:translateY(0) scale(1)}.image-settings-close{position:absolute;top:8px;right:8px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:50%;color:var(--text-tertiary, #666);cursor:pointer;font-size:13px;transition:all .15s}.image-settings-close:hover{background:#ffffff14;color:var(--text-primary)}.settings-section{margin-bottom:14px}.settings-section:last-of-type{margin-bottom:0}.settings-section-label{font-size:12px;font-weight:600;color:var(--text-secondary, #999);margin-bottom:8px;letter-spacing:.3px}.aspect-ratio-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.aspect-ratio-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 3px 5px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text-tertiary, #666);cursor:pointer;transition:all .15s;min-height:48px}.aspect-ratio-btn:hover{background:#ffffff0f;color:var(--text-secondary)}.aspect-ratio-btn.active{background:#ffffff14;border-color:#fff3;color:var(--text-brightest)}.aspect-ratio-btn svg{opacity:.65;transition:opacity .15s}.aspect-ratio-btn.active svg{opacity:1}.aspect-ratio-btn span{font-size:10.5px;font-weight:500;letter-spacing:.2px}.aspect-ratio-btn:first-child{grid-row:span 2;min-height:auto;flex-direction:row;gap:6px;padding:10px;border-radius:8px}.aspect-ratio-btn:first-child span{font-size:11.5px}.quality-toggle-group,.resolution-toggle-group{display:flex;gap:6px}.quality-toggle-btn,.resolution-toggle-btn{flex:1;padding:8px 0;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:var(--text-tertiary, #777);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.quality-toggle-btn:hover,.resolution-toggle-btn:hover{background:#ffffff0d;border-color:#ffffff24;color:var(--text-secondary)}.quality-toggle-btn.active,.resolution-toggle-btn.active{background:#ffffff14;border-color:#fff3;color:var(--text-brightest)}.settings-preview{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);font-size:11.5px}.preview-label{color:var(--text-tertiary, #666)}.preview-value{color:var(--text-primary, #e0e0e0);font-weight:600;font-family:SF Mono,Fira Code,monospace;letter-spacing:.3px}.preview-quality{color:var(--text-tertiary, #888);margin-left:auto;font-size:11px}.node-header-outer{position:absolute;top:-32px;left:0;display:flex;align-items:center;gap:6px;padding:2px 6px;background:transparent;font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;z-index:10}.node-header-placeholder{height:0;visibility:hidden}.text-node-cancel-btn-outer{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:6px;border:none;background:#7f7f7f14;color:var(--icon-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:5}.text-node-cancel-btn-outer:hover{background:#7f7f7f2e;color:var(--text-primary)}.node-title-input{background:var(--input-bg);border:1px solid var(--input-border-focus);border-radius:3px;color:var(--text-primary);font-size:12px;font-weight:500;padding:2px 6px;outline:none;min-width:60px;max-width:160px}.node-title-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 2px #3b82f62e}.user-panel{background:var(--bg-primary)!important;border:1px solid var(--divider-color)!important;border-radius:8px!important;padding:6px 12px!important;box-shadow:0 2px 8px #00000014!important}.user-info{display:flex;align-items:center;gap:12px}.user-credits{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500;color:var(--text-primary)}.user-credits svg{color:var(--text-secondary)}.recharge-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.recharge-btn:hover{background:var(--bg-elevated);color:var(--text-brightest)}.history-btn-compact{padding:4px 10px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;margin-left:8px}.history-btn-compact:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:#fff3}.recharge-btn-compact{padding:4px 10px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;margin-left:8px}.recharge-btn-compact:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:#fff3}.user-name{font-size:13px;font-weight:500;color:var(--text-primary);padding:4px 10px}.recharge-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.recharge-modal{background:var(--bg-primary);border-radius:16px;width:480px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.recharge-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--divider-color)}.recharge-header h2{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.recharge-close-btn{width:32px;height:32px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.recharge-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.recharge-options{padding:24px}.current-credits{text-align:center;font-size:14px;color:var(--text-secondary);margin-bottom:20px}.current-credits strong{color:var(--text-brightest);font-size:18px}.options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.option-card{position:relative;padding:16px 12px;background:var(--bg-secondary);border:2px solid var(--divider-color);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s}.option-card:hover{border-color:#fff3;background:#ffffff0d}.option-card.selected{border-color:#ffffff40;background:#ffffff14}.option-card.popular{border-color:#ffffff26}.option-card.popular.selected{border-color:#ffffff40}.popular-badge{position:absolute;top:-10px;right:-10px;background:var(--text-secondary);color:#fff;font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600}.option-amount{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.option-credits{font-size:16px;font-weight:500;color:var(--text-brightest);margin-bottom:4px}.option-value{font-size:11px;color:var(--text-dim2)}.recharge-btn{width:100%;padding:12px;background:var(--text-secondary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s}.recharge-btn:hover:not(:disabled){background:var(--text-primary)}.recharge-btn:disabled{opacity:.6;cursor:not-allowed}.recharge-error{display:flex;align-items:center;gap:8px;padding:12px;background:#f851491a;border:1px solid rgba(248,81,73,.3);border-radius:8px;color:var(--accent-red);font-size:13px;margin-top:12px}.recharge-qrcode{padding:40px 24px;text-align:center}.qrcode-container{width:200px;height:200px;margin:0 auto 24px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000001a}.qrcode-image,.qrcode-svg{width:180px;height:180px}.qrcode-amount{font-size:32px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.qrcode-credits{font-size:16px;color:var(--text-brightest);margin-bottom:4px}.qrcode-tip{font-size:13px;color:var(--text-secondary)}.qrcode-polling{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:16px;font-size:13px;color:var(--text-secondary)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.simulate-pay-btn{margin-top:16px;padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--divider-color);border-radius:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.simulate-pay-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.recharge-success{padding:60px 24px;text-align:center}.success-icon{width:80px;height:80px;border-radius:50%;background:#ffffff14;color:var(--text-brightest);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.recharge-success h3{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.recharge-success p{font-size:14px;color:var(--text-secondary)}.recharge-success strong{color:var(--text-brightest)}
