:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-card: #1a1f2b;--bg-elevated: #252b36;--border-color: #404040;--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: #2b83fe;--btn-send-hover-color: #4096ff;--btn-send-hover-border: #2b83fe;--btn-send-disabled: #aaa;--tag-bg: #222228;--tag-border: #333;--tag-hover-bg: #2a2a32;--tag-text: #ccc;--tag-hover-text: #fff;--tooltip-bg: #2a2a32;--tooltip-border: #444;--tooltip-text: #e0e0e0;--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);--audio-wave-bg: linear-gradient(135deg, #1a1a24 0%, #0e0e16 100%);--audio-wave-bars-bg: rgba(0,0,0,.3);--audio-wave-text: #fff;--audio-wave-text-bright: rgba(255,255,255,.9);--audio-wave-text-muted: rgba(255,255,255,.6);--audio-wave-btn-bg: rgba(255,255,255,.12);--audio-wave-btn-hover: rgba(255,255,255,.22);--audio-wave-icon-color: #4a90e2;--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: #2b83fe;--text-primary: #1C1C1C;--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: #2b83fe;--node-header-bg: #f7f7f8;--dialog-bg: #fafafa;--input-bg: #f5f5f5;--input-border: #d9d9d9;--input-border-focus: #2b83fe;--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: #2b83fe;--btn-send-hover-color: #4096ff;--btn-send-hover-border: #2b83fe;--btn-send-disabled: #555;--tag-bg: #f5f5f5;--tag-border: #d9d9d9;--tag-hover-bg: #e8e8e8;--tag-text: #595959;--tag-hover-text: #1a1a2e;--tooltip-bg: #ffffff;--tooltip-border: #d9d9d9;--tooltip-text: #1a1a2e;--tooltip-header-text: #595959;--tooltip-divider: #e8e8e8;--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(255,255,255,1)}*{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__pane,.react-flow__pane.dragging{cursor:default!important}.react-flow__node{font-size:14px}.react-flow__controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;background:transparent;border:none;border-radius:0;overflow:visible;box-shadow:none;left:56px!important;bottom:4px!important;padding:0;margin:0}.react-flow__controls-button.minimap-toggle{order:-1}.react-flow__controls-button.minimap-toggle.active{background:var(--bg-tertiary)}.react-flow__controls-button{background:transparent;border:none;border-radius:4px;fill:var(--text-primary);width:28px;height:28px;margin:2px}.react-flow__controls-button:hover{background:var(--bg-tertiary);border-radius:4px}.react-flow__minimap{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius)}.react-flow__minimap.react-flow__minimap-bottom-left{bottom:12px;left:12px}.react-flow__minimap.minimap-floating{position:absolute!important;left:56px!important;right:auto!important;top:auto!important;bottom:44px!important;width:150px;height:100px;margin:0;z-index:5}.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:188px;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}.node-delete-btn{position:absolute;top:-23px;right:-23px;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}.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:calc(24px * var(--node-counter-scale, 1));height:calc(24px * var(--node-counter-scale, 1));border-radius:calc(5px * var(--node-counter-scale, 1));background:transparent;color:var(--icon-color);display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-asset-compliant-icon{color:#22c55e!important}.node-type-label{font-size:11px;color:var(--label-secondary);letter-spacing:.5px;font-weight:500}.node-title{font-size:calc(13px * var(--node-title-scale, 1));font-weight:400;color:var(--text-brightest);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;flex:1 1 auto;min-width:0;box-sizing:border-box}.node-dimensions{font-size:calc(12px * var(--node-title-scale, 1));font-weight:400;color:var(--text-secondary);white-space:nowrap;flex:0 0 auto;margin-left:calc(8px * var(--node-counter-scale, 1));opacity:.85;font-feature-settings:"tnum"}.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);padding:0;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1)}.node-handle:before{content:"";position:absolute;top:-18px;left:-18px;right:-18px;bottom:-18px;pointer-events:auto}.node-handle:hover{opacity:1!important;pointer-events:auto}.node-handle>svg,.node-handle>line{pointer-events:none}.canvas-node.text-node .canvas-node.text-node .canvas-node:hover .node-handle,.canvas-node.selected .node-handle,.canvas-node.hovered .node-handle,.canvas-node.connect-target .node-handle{opacity:1}.canvas-node.hovered .node-handle:hover,.canvas-node:hover .node-handle:hover,.canvas-node.selected .node-handle:hover,.canvas-node.connect-target .node-handle:hover{background:var(--handle-hover-bg)!important;border-color:var(--handle-hover-border)!important;color:var(--handle-hover-color)}.canvas-node.hovered .node-handle,.canvas-node:hover .node-handle,.canvas-node.selected .node-handle,.canvas-node.connect-target .node-handle{pointer-events:auto}.left-handle{left:-4px!important;top:50%!important;transform:translate(-28px) translateY(-50%)}.left-handle:hover{transform:translate(-24px) translateY(-50%)}.right-handle{right:-4px!important;top:50%!important;transform:translate(28px) translateY(-50%)}.right-handle:hover{transform:translate(24px) translateY(-50%)}.canvas-node.hovered .left-handle,.canvas-node:hover .left-handle,.canvas-node.selected .left-handle,.canvas-node.connect-target .left-handle{transform:translate(-22px) translateY(-50%)}.canvas-node.hovered .right-handle,.canvas-node:hover .right-handle,.canvas-node.selected .right-handle,.canvas-node.connect-target .right-handle{transform:translate(22px) translateY(-50%)}.canvas-node.hovered .left-handle:hover,.canvas-node:hover .left-handle:hover,.canvas-node.selected .left-handle:hover,.canvas-node.connect-target .left-handle:hover{transform:translate(-26px) translateY(-50%)}.canvas-node.hovered .right-handle:hover,.canvas-node:hover .right-handle:hover,.canvas-node.selected .right-handle:hover,.canvas-node.connect-target .right-handle:hover{transform:translate(26px) translateY(-50%)}.canvas-node.connect-target,.canvas-node.text-node.connect-target .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:188px;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible;min-height:0}.canvas-node.text-node:hover{cursor:default;border-color:transparent}.canvas-node.text-node.selected{cursor:default;border-color:transparent;box-shadow:none}.image-node-compact-card{display:flex;flex-direction:column}.image-node-compact-body{display:flex;flex-direction:column;gap:0;position:relative}.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}.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-model-dropdown-wrap{position:relative;flex-shrink:0}.text-model-dropdown-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;border-radius:6px;border:1px solid var(--border-color, rgba(255,255,255,.08));background:var(--bg-secondary, rgba(255,255,255,.04));color:var(--text-secondary, #ccc);cursor:pointer;transition:all .15s;font-family:inherit;line-height:1.3;white-space:nowrap}.text-model-dropdown-btn:hover{border-color:#ffffff2e;background:var(--bg-tertiary, rgba(255,255,255,.07))}.text-model-dropdown-btn:disabled{opacity:.35;cursor:not-allowed}.text-model-auto-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;border-radius:6px;border:1px solid rgba(88,166,255,.3);background:#58a6ff14;color:#58a6ff;cursor:default;line-height:1.3;white-space:nowrap;-webkit-user-select:none;user-select:none}.text-model-dropdown-label{max-width:76px;overflow:hidden;text-overflow:ellipsis}.text-model-dropdown-menu{position:absolute;bottom:100%;left:0;margin-bottom:6px;min-width:172px;max-height:260px;overflow-y:auto;background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-color, rgba(255,255,255,.1));border-radius:8px;box-shadow:0 8px 24px #0006;z-index:100;padding:4px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}.text-model-dropdown-menu::-webkit-scrollbar{width:5px}.text-model-dropdown-menu::-webkit-scrollbar-track{background:transparent}.text-model-dropdown-menu::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.text-model-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#ffffff38}.text-model-dropdown-group-label{padding:5px 12px 2px;font-size:10px;color:var(--text-muted, #666);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.text-model-dropdown-item{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;color:var(--text-secondary, #bbb);cursor:pointer;transition:background .1s;white-space:nowrap}.text-model-dropdown-item:hover{background:var(--bg-tertiary, rgba(255,255,255,.06))}.text-model-dropdown-item.active{color:var(--accent-color, #4fc3f7);background:#4fc3f71a;font-weight:500}.text-model-dropdown-item.active svg{color:var(--accent-color, #4fc3f7)}.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}@keyframes pulse-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes generating-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.canvas-node{min-width:188px;min-height:188px;background:transparent;border:none;border-radius:10px;box-shadow:none;overflow:visible}.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;padding:0;box-sizing:border-box;width:100%;max-width:315px;min-width:0;min-height:165px}.audio-node-card{min-width:280px;max-width:320px;min-height:auto}.audio-node-card:has(.image-node-generating){min-width:280px}.audio-usage-tag{display:inline-flex;align-items:center;gap:2px;padding:1px 7px;border-radius:10px;background:#4a90e229;color:#8fc1f0;font-size:11px;line-height:1.6;white-space:nowrap}.image-node-card:has(.image-node-generating){display:flex;flex-direction:column;min-width:240px}.image-node-card:has(.image-node-generating) .image-node-upper{flex:1 1 auto;min-height:240px;display:flex}.image-node-card:has(.image-node-generating) .image-node-preview{display:flex;align-items:center;justify-content:center;flex:1 1 auto;min-height:0}.image-node-card:has(.image-node-generating) .image-node-preview.image-node-preview-generating{flex:1 1 auto;height:auto;min-height:240px}.image-node-generating{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:100%;box-sizing:border-box;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.canvas-node:hover .image-node-card{border-color:var(--node-border-hover);box-shadow:none}.canvas-node.selected:hover .image-node-card,.canvas-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:transparent;width:100%;border-radius:10px;overflow:hidden;flex:0 0 auto;height:auto;min-height:0;display:flex}.image-node-upper.image-node-upper-generating,.image-node-upper.image-node-upper-empty{flex:1 1 auto;height:100%;min-height:0}.image-node-preview{position:relative;background:var(--node-bg);border:0;border-radius:10px;box-shadow:0 0 0 1px var(--node-border),var(--shadow);cursor:pointer;overflow:hidden;width:100%;height:auto;line-height:0;font-size:0}.image-node-preview.image-node-preview-filled{display:block;height:auto;min-height:0}.image-node-main-wrap{display:block;line-height:0;font-size:0;width:100%}.image-node-preview:has(.node-image-preview){height:auto}.image-node-card:has(.node-image-preview) .image-node-upper{flex:0 0 auto;height:auto;min-height:0}.image-node-card:has(.node-image-preview){min-height:0}.image-node-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 20px;color:var(--text-muted);aspect-ratio:1 / 1;width:100%;border-radius:inherit}.image-node-card .image-node-placeholder,.video-node-card .image-node-placeholder{width:240px;height:240px}.image-node-card .image-node-preview:has(.image-node-placeholder),.video-node-card .image-node-preview:has(.image-node-placeholder){display:flex;align-items:center;justify-content:center;width:240px;height:240px}.image-node-card:has(.image-node-placeholder),.video-node-card:has(.image-node-placeholder){width:240px;min-width:240px}.image-node-placeholder span{font-size:12px;color:var(--text-dim2);letter-spacing:1px}.image-node-upload-btn{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:#999;font-size:12px;cursor:pointer;transition:all .2s ease;z-index:2}.image-node-upload-btn:hover{background:transparent;color:#58a6ff!important;border-color:#58a6ff}.image-node-upload-btn:hover svg{stroke:#58a6ff!important}.image-node-upload-btn:hover span{color:#58a6ff!important}.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:210px;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;max-width:825px;max-height:825px}.canvas-node.image-upload-node,.canvas-node.video-upload-node,.canvas-node.video-node,.canvas-node.image-node,.canvas-node.audio-upload-node,.canvas-node.audio-node,.canvas-node.model3d-node{min-width:0;min-height:0}.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;min-height:120px;color:var(--text-muted);cursor:pointer;transition:border-color .2s,background .2s;position:relative;border-radius: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:10px;overflow:hidden}.image-upload-preview-img{display:block;width:100%;height:auto;object-fit:contain;cursor:pointer;max-width:825px;max-height:825px}.image-upload-replace-hint{position:absolute;bottom:calc(8px * var(--node-counter-scale, 1));right:calc(8px * var(--node-counter-scale, 1));opacity:0;transition:opacity .15s}.image-upload-preview-wrap:hover .image-upload-replace-hint{opacity:1}.image-upload-replace-btn{padding:calc(4px * var(--node-counter-scale, 1)) calc(10px * var(--node-counter-scale, 1));background:#000000a6;border:1px solid rgba(255,255,255,.15);border-radius:calc(5px * var(--node-counter-scale, 1));color:#ddd;font-size:calc(11px * var(--node-counter-scale, 1));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;background:#0a0e149e;color:#fff;z-index:8;border:1px dashed rgba(255,255,255,.35);border-radius:8px;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;min-height:100%;width:100%;box-sizing:border-box;text-align:center;background:transparent;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.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{color:#fff;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-progress-bar.pulsate{background:#ffffff0f}.generating-progress-bar.pulsate .generating-progress-fill.indefinite{transition:none;animation:progress-sweep 1.8s ease-in-out infinite;background:linear-gradient(90deg,#8b8eff4d,#6366f1cc,#8b8eff4d,#6366f1cc,#8b8eff4d);background-size:200% 100%}@keyframes progress-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.generating-percent{color:#fff;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:680px;z-index:10;animation:nodeDialogIn .25s cubic-bezier(.34,1.56,.64,1)}.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);width:100%}.image-thumb-strip{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;align-items:flex-start}.image-thumb-drag{position:relative;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:opacity .12s}.image-thumb-drag:active{cursor:grabbing}.image-thumb-drag.dragging{opacity:.35}.image-thumb-drag.drag-over{outline:2px dashed var(--accent-blue, #58a6ff);outline-offset:2px;border-radius:6px}.image-thumb-item{position:relative;width:46px;height:46px;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-hover-preview-portal{background:var(--node-bg);border:1px solid var(--node-border);border-radius:8px;box-shadow:var(--shadow);padding:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;pointer-events:none;transform-origin:center bottom;max-height:160px}.image-thumb-hover-preview-inner{width:100%;height:auto;max-height:152px;display:flex;align-items:center;justify-content:center;border-radius:6px;overflow:hidden;animation:thumbPreviewIn .15s ease forwards}@keyframes thumbPreviewIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.image-thumb-remove{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#000000b3;color:#fff;border:1px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,transform .15s;z-index:3;padding:0}.image-thumb-item:hover .image-thumb-remove{opacity:1}.image-thumb-remove:hover{background:#ef4444e6;transform:scale(1.1)}.image-thumb-remove:active{transform:scale(.95)}.image-thumb-hover-preview{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) scale(.92);width:120px;max-height:120px;background:var(--node-bg);border:1px solid var(--node-border);border-radius:8px;box-shadow:var(--shadow);padding:4px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,transform .15s,visibility .15s;z-index:10;overflow:hidden;display:flex;align-items:center;justify-content:center}.image-thumb-item:hover .image-thumb-hover-preview{opacity:1;visibility:visible;transform:translate(-50%) scale(1)}.image-thumb-hover-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:6px;overflow:hidden}.image-thumb-hover-preview-inner img,.image-thumb-hover-preview-inner video{width:100%;height:auto;max-height:152px;object-fit:contain;display:block;border-radius:6px}.hover-preview-video-wrap{position:relative;width:100%;height:auto;display:flex;align-items:center;justify-content:center;background:#000}.hover-preview-video-wrap video{width:100%;height:auto;max-height:152px}.hover-preview-audio-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);font-size:11px;min-height:80px}.image-thumb-add{width:46px;height:46px;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)}.annotation-tag-input{width:100%;min-height:70px;max-height:140px;overflow-y:auto;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;outline:none;font-family:inherit;margin-bottom:10px;cursor:text;white-space:pre-wrap;word-break:break-word}.annotation-tag-input.focused{border-color:var(--input-border-focus)}.annotation-tag-input:empty:before{content:attr(data-placeholder);color:var(--input-placeholder);pointer-events:none}.annotation-pill{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;background:#2f7bff1f;border:1px solid rgba(47,123,255,.25);border-radius:999px;padding:2px 6px 2px 3px;margin:0 2px;color:var(--accent-blue, #2f7bff);font-size:12px;line-height:1.4;-webkit-user-select:none;user-select:none;cursor:default}.annotation-pill-thumb{width:16px;height:16px;border-radius:50%;object-fit:cover;flex-shrink:0}.annotation-pill-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-blue, #2f7bff);flex-shrink:0}.annotation-pill-label{white-space:nowrap}.annotation-pill-arrow{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;margin:0;border:none;background:transparent;color:inherit;font-size:10px;cursor:pointer;border-radius:3px;flex-shrink:0}.annotation-pill-arrow:hover{background:#2f7bff26}.annotation-pill-dropdown{position:fixed;z-index:10000;min-width:140px;max-width:260px;max-height:240px;overflow-y:auto;background:var(--dropdown-bg, #fff);border:1px solid var(--dropdown-border, rgba(0, 0, 0, .08));border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:4px}.annotation-pill-dropdown-item{padding:7px 10px;border-radius:5px;font-size:13px;color:var(--dropdown-text, var(--text-primary));cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.annotation-pill-dropdown-item:hover{background:var(--dropdown-hover-bg, rgba(47, 123, 255, .08))}@keyframes expandFadeIn{0%{opacity:0}to{opacity:1}}@keyframes expandModalIn{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.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:12px;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;max-height:324px;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)}.image-model-dropdown-menu::-webkit-scrollbar{width:4px}.image-model-dropdown-menu::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.image-model-dropdown-menu::-webkit-scrollbar-track{background:transparent}.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;border:1px solid transparent;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:var(--accent-blue-bg, rgba(88, 166, 255, .06));border:1px solid var(--accent-blue, #58a6ff);color:var(--accent-blue, #58a6ff);font-weight:500}.image-model-dropdown-item.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.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;height:28px;padding:0 8px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--tag-text);font-size:12px;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-credits-badge.is-loading{opacity:.85}.image-node-credits-badge.audio-credits-badge-rich{max-width:360px;white-space:nowrap;font-weight:500}.image-node-credits-badge.audio-credits-badge-rich strong{font-weight:700;margin:0 1px}.credit-badge-spinner{display:inline-block;width:11px;height:11px;border:2px solid rgba(255,255,255,.25);border-top-color:#fffffff2;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}.credit-badge-prefix{margin-right:1px}.ref-img-loading-dot{display:inline-block;width:6px;height:6px;background:#f59e0b;border-radius:50%;margin-left:2px;animation:pulse-dot 1.2s ease-in-out infinite;vertical-align:middle;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.image-node-token-badge{display:flex;align-items:center;padding:4px 10px;background:linear-gradient(135deg,#6366f114,#8b5cf60d);border:1px solid rgba(99,102,241,.35);border-radius:12px;color:#6366f1;font-size:10.5px;font-weight:500;letter-spacing:.1px;white-space:nowrap;flex-shrink:0;margin-left:auto;cursor:help;transition:all .15s}.image-node-token-badge:hover{background:linear-gradient(135deg,#6366f124,#8b5cf61a);border-color:#6366f18c}.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-send-hover-border);box-shadow:0 0 0 2px #1677ff2e}.image-node-send-btn:disabled,.image-node-send-btn.sending{color:var(--btn-send-disabled);background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);cursor:not-allowed;opacity:1;box-shadow:none}.node-image-preview{width:100%;max-width:550px;height:auto;max-height:none;object-fit:contain;display:block;background:transparent;transform:scale(1.005)}.image-toolbar-popup{position:absolute;left:50%;top:0;transform:translate(-50%,calc(-100% - 28px)) scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:center bottom;display:flex;align-items:center;gap:2px;background:var(--dialog-bg);border:1px solid var(--border-color);border-radius:6px;padding:3px 4px;z-index:100;white-space:nowrap;box-shadow:0 4px 16px #00000080;animation:toolbarSlideDown .18s ease}@keyframes toolbarSlideDown{0%{opacity:0;transform:translate(-50%,calc(-80% - 28px)) scale(calc(1 / var(--canvas-zoom, 1)))}to{opacity:1;transform:translate(-50%,calc(-100% - 28px)) scale(calc(1 / var(--canvas-zoom, 1)))}}.image-action-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 5px;border-radius:5px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;transition:all .15s;min-width:32px}.image-action-btn:hover{background:#ffffff14;color:var(--text-primary)}[data-theme=light] .image-action-btn:hover{background:#3b82f61a;color:#3b82f6}.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;box-shadow:0 4px 14px #ef444466}.react-flow__nodesselection-rect,.react-flow__selection{cursor:default!important}.model3d-node-card{min-width:160px;max-width:240px}.model3d-preview-wrapper{position:relative;padding:4px}.model3d-preview-wrapper model-viewer{pointer-events:auto!important}.model3d-preview-overlay{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:10px;background:#0000008c;color:#ffffffb3;font-size:10px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.model3d-download-wrap{position:relative}.model3d-download-btn{gap:4px!important}.model3d-download-menu{position:absolute;bottom:100%;right:0;margin-bottom:4px;min-width:160px;min-height:40px}.model3d-param-wrap{position:relative}.model3d-param-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;background:var(--surface-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0}.model3d-param-btn:hover{background:var(--surface-tertiary);border-color:var(--accent);color:var(--text-primary)}.model3d-param-btn:active{transform:scale(.97)}.model3d-param-dropdown{position:absolute;left:0;min-width:max-content;min-width:130px;background:var(--dropdown-bg);border:1px solid var(--dropdown-border);border-radius:8px;padding:5px;z-index:200;box-shadow:var(--shadow-lg)}.model3d-param-dropdown-up{bottom:calc(100% + 4px)}.model3d-param-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 10px;border-radius:5px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:background .12s;white-space:nowrap}.model3d-param-dropdown-item:hover{background:var(--surface-hover);color:var(--text-primary)}.model3d-param-dropdown-item.active{background:var(--accent-bg);color:var(--accent)}.model3d-param-dropdown-desc{font-size:10px;color:var(--text-muted);white-space:nowrap}.model3d-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:model3d-fade-in .2s ease}@keyframes model3d-fade-in{0%{opacity:0}to{opacity:1}}.model3d-fullscreen-container{position:relative;width:85vw;height:85vh;max-width:1200px;max-height:900px;background:var(--surface-primary);border-radius:12px;box-shadow:0 24px 80px #00000080;display:flex;flex-direction:column;overflow:hidden}.model3d-fullscreen-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface-secondary);flex-shrink:0}.model3d-fullscreen-title{font-size:14px;font-weight:600;color:var(--text-primary)}.model3d-fullscreen-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-primary);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.model3d-fullscreen-btn:hover{background:var(--surface-tertiary);color:var(--text-primary)}.model3d-fullscreen-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:20px;padding:6px 18px;border-radius:20px;background:#00000080;color:#fff9;font-size:11px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.audio-type-tabs{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:8px;width:100%}.audio-type-tab{flex:0 1 auto;min-width:100px;padding:7px 18px;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}.audio-input-wrapper{display:flex;flex-direction:column;gap:2px}.audio-tag-toolbar{display:flex;gap:4px;padding:2px 0 4px}.audio-tag-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s;font-family:inherit}.audio-tag-btn:hover{background:var(--bg-hover);color:var(--text-bright);border-color:#4ecdc4}.audio-exclam-panel{margin-bottom:6px;padding:8px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);max-height:150px;overflow-y:auto}.audio-exclam-grid{display:flex;flex-wrap:wrap;gap:4px}.audio-exclam-item{padding:4px 10px;border:1px solid rgba(78,205,196,.2);border-radius:12px;background:#4ecdc40d;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s;font-family:inherit}.audio-exclam-item:hover{background:#4ecdc426;color:#4ecdc4;border-color:#4ecdc4}.audio-voice-selector{display:flex;gap:6px;align-items:center}.audio-voice-select-btn{flex:1;display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-color);border-radius:7px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s;font-family:inherit}.audio-voice-select-btn:hover{border-color:#4ecdc4;background:var(--bg-hover)}.audio-voice-label{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-voice-toolbar{gap:6px;flex-wrap:nowrap}.audio-voice-setting-btn{flex:0 0 auto;width:32px;min-width:32px;padding:6px;justify-content:center}.audio-voice-model-wrap{position:relative;flex:0 1 auto;min-width:0;max-width:140px}.audio-voice-model-btn{flex:0 1 auto;min-width:0;width:auto;max-width:140px;padding:6px 8px}.audio-voice-toolbar-spacer{flex:1 1 auto;min-width:4px}.scene-audio-panel{display:flex;flex-direction:column;gap:4px;position:relative}.scene-audio-toolbar .scene-audio-chip{height:28px;padding:4px 10px}.scene-audio-toolbar .scene-audio-chip-model{flex:0 0 auto;max-width:50%}.scene-audio-toolbar .scene-audio-chip-setting{flex:0 1 auto;min-width:0}.scene-audio-toolbar .scene-audio-advanced-btn{flex:0 0 auto}.scene-audio-chip.is-active{border-color:var(--input-border-focus);color:var(--text-brightest)}.scene-audio-toolbar-spacer{flex:1 1 auto}.scene-audio-popover-anchor{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:20;box-shadow:0 4px 16px #0000002e}.scene-audio-advanced-popover{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:20;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 4px 16px #0000002e;animation:fadeIn .15s ease}.scene-audio-topbar{display:flex;gap:6px;align-items:center;width:100%;margin:4px 0 2px}.scene-audio-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;height:26px;border-radius:6px;background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-bright);font-size:12px;cursor:pointer;font-family:inherit;transition:all .12s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:0 1 auto;min-width:0}.scene-audio-chip:hover{border-color:var(--input-border-focus)}.scene-audio-chip-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.scene-audio-chip-model{flex:0 0 auto;max-width:50%}.scene-audio-chip-setting{flex:1 1 auto;min-width:0;justify-content:space-between}.scene-audio-chip-setting .scene-audio-chip-label{flex:1 1 auto;text-align:left}.scene-audio-popover{margin-top:4px;margin-bottom:6px;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;gap:10px;animation:fadeIn .15s ease}.scene-audio-popover-section{display:flex;flex-direction:column;gap:6px}.scene-audio-popover-title{font-size:11px;color:var(--text-tertiary, var(--text-secondary));opacity:.85;letter-spacing:.2px}.scene-audio-popover-options{display:flex;gap:6px;flex-wrap:wrap}.scene-audio-popover-option{flex:1 1 auto;min-width:56px;padding:5px 8px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:999px;font-size:12px;font-family:inherit;cursor:pointer;text-align:center;transition:all .15s}.scene-audio-popover-option:hover{border-color:#4ecdc4;color:var(--text-bright)}.scene-audio-popover-option.active{background:var(--bg-tertiary);border-color:var(--text-bright);color:var(--text-bright);font-weight:600}.scene-audio-advanced{margin-top:8px;padding:8px 10px 6px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);display:flex;flex-direction:column;gap:4px}.scene-audio-advanced-title{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text-tertiary, var(--text-secondary));margin-bottom:2px;letter-spacing:.2px}.scene-audio-advanced-header{display:flex;align-items:center;gap:6px;width:100%;padding:5px 10px;margin-top:6px;background:transparent;border:1px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s;text-align:left}.scene-audio-advanced-header:hover{border-color:#4ecdc4;color:var(--text-bright)}.scene-audio-advanced-header>span{flex:0 1 auto}.scene-audio-advanced-chevron{margin-left:auto;flex:0 0 auto;transition:transform .18s ease}.scene-audio-advanced-chevron.is-open{transform:rotate(180deg)}.scene-audio-advanced-body{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding:6px 4px 2px;border-top:1px dashed var(--border-color)}.scene-audio-advanced-row{display:flex;align-items:center;gap:8px;padding:2px 0}.scene-audio-advanced-label{flex:0 0 28px;font-size:12px;color:var(--text-secondary);text-align:left;white-space:nowrap}.scene-audio-advanced-slider{flex:1 1 auto;min-width:0;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:2px;outline:none;cursor:pointer;margin:0}.scene-audio-advanced-slider::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--accent-color, #4ecdc4) 0%,var(--accent-color, #4ecdc4) var(--slider-fill, 50%),var(--bg-tertiary) var(--slider-fill, 50%),var(--bg-tertiary) 100%)}.scene-audio-advanced-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent-color, #4ecdc4);cursor:pointer;margin-top:-4px;box-shadow:0 1px 3px #00000040}.scene-audio-advanced-slider::-moz-range-track{height:4px;border-radius:2px;background:var(--bg-tertiary)}.scene-audio-advanced-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent-color, #4ecdc4);cursor:pointer}.scene-audio-advanced-value{flex:0 0 36px;text-align:center;font-size:11.5px;color:var(--text-bright);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:5px;padding:1px 4px;white-space:nowrap;min-width:36px}.audio-voice-panel{margin-top:6px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);overflow:hidden;animation:fadeIn .2s ease}.audio-voice-filters{padding:8px;border-bottom:1px solid var(--border-color)}.audio-voice-search{width:100%;padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-tertiary);color:var(--text-bright);font-size:12px;margin-bottom:6px;outline:none;font-family:inherit}.audio-voice-search:focus{border-color:#4ecdc4}.audio-voice-filter-row{display:flex;gap:4px}.audio-voice-filter-select{flex:1;padding:4px 6px;border:1px solid var(--border-color);border-radius:5px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;cursor:pointer;outline:none;font-family:inherit}.audio-voice-list{max-height:220px;overflow-y:auto}.audio-voice-loading,.audio-voice-empty{padding:20px;text-align:center;color:var(--text-secondary);font-size:12px}.audio-voice-item{display:flex;align-items:center;padding:8px 10px;cursor:pointer;transition:background .12s;border-bottom:1px solid rgba(255,255,255,.03)}.audio-voice-item:hover{background:var(--bg-tertiary)}.audio-voice-item.active{background:#4ecdc41a}.audio-voice-item-info{flex:1;min-width:0}.audio-voice-item-name{display:block;font-size:12px;color:var(--text-bright);font-weight:500;margin-bottom:3px}.audio-voice-item-tags{display:flex;gap:4px}.voice-tag{padding:1px 6px;border-radius:3px;background:#ffffff0d;color:var(--text-secondary);font-size:10px}.audio-voice-fav-btn{border:none;background:transparent;color:#ffc107;font-size:16px;cursor:pointer;padding:4px}.audio-voice-fav-btn:hover{transform:scale(1.2)}.audio-voice-pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px;border-top:1px solid var(--border-color);font-size:11px;color:var(--text-secondary)}.audio-voice-pagination button{padding:3px 10px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;cursor:pointer;font-family:inherit}.audio-voice-pagination button:hover:not(:disabled){border-color:#4ecdc4;color:#4ecdc4}.audio-voice-pagination button:disabled{opacity:.4;cursor:not-allowed}.audio-voice-clone-entry{padding:8px;border-top:1px solid var(--border-color)}.audio-clone-btn{width:100%;padding:7px;border:1px dashed var(--border-color);border-radius:6px;background:transparent;color:#4ecdc4;font-size:12px;cursor:pointer;transition:all .15s;font-family:inherit}.audio-clone-btn:hover{background:#4ecdc414;border-color:#4ecdc4}.audio-settings-panel{margin-top:6px;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);animation:fadeIn .2s ease}.audio-setting-item{margin-bottom:8px}.audio-setting-item:last-child{margin-bottom:0}.audio-setting-item label{display:flex;justify-content:space-between;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.audio-setting-item label span{color:#4ecdc4;font-weight:600}.audio-setting-item input[type=range]{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border-color);border-radius:2px;outline:none;cursor:pointer}.audio-setting-item input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#4ecdc4;cursor:pointer}.audio-clone-panel{margin-top:6px;padding:12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);animation:fadeIn .2s ease}.audio-clone-title{font-size:13px;font-weight:600;color:var(--text-brightest);margin-bottom:4px}.audio-clone-desc{font-size:11px;color:var(--text-secondary);margin-bottom:10px;line-height:1.5}.audio-clone-upload-area{display:flex;align-items:center;justify-content:center;padding:20px;border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;transition:all .15s;font-size:12px;color:var(--text-secondary)}.audio-clone-upload-area:hover{border-color:#4ecdc4;background:#4ecdc408}.audio-clone-actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}.audio-clone-cancel-btn{padding:5px 14px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;font-family:inherit}.audio-clone-submit-btn{padding:5px 14px;border:none;border-radius:6px;background:#4ecdc4;color:#111;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.audio-clone-submit-btn:hover:not(:disabled){background:#45b7aa}.audio-clone-submit-btn:disabled{opacity:.5;cursor:not-allowed}.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-speed-btn{min-width:48px!important}.video-size-dropdown{min-width:200px!important}.video-size-grid{grid-template-columns:repeat(4,1fr)!important;gap:4px!important}.video-size-grid .aspect-ratio-btn{flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;min-height:58px;border-radius:6px;border:1px solid var(--node-border, #2a2a32);background:#58a6ff05;transition:all .15s}.video-size-grid .aspect-ratio-btn:hover{background:#58a6ff14;border-color:var(--node-border-hover, #3a3a42)}.video-size-grid .aspect-ratio-btn.active{background:#58a6ff1f;border-color:var(--accent-blue, #1677ff)!important;color:var(--accent-blue, #1677ff)}.video-size-grid .aspect-ratio-btn>svg{flex-shrink:0;width:20px;height:20px;margin-bottom:1px}.video-size-grid .aspect-ratio-btn>.ar-text{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.25;min-width:0;gap:1px}.video-size-grid .aspect-ratio-btn>.ar-text>span:first-child{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.video-size-grid .aspect-ratio-btn>.ar-text>.ar-px{font-size:9.5px;font-weight:400;color:var(--text-tertiary, #999);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.video-size-grid .aspect-ratio-btn.active>.ar-text>.ar-px{color:var(--accent-blue, #1677ff);opacity:.85}.video-size-grid .aspect-ratio-hint{font-size:11px;color:var(--text-tertiary, #999);font-weight:400;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.video-size-grid .aspect-ratio-btn.active .aspect-ratio-hint{color:var(--accent-blue, #1677ff);opacity:.8}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--text-tertiary)!important;stroke-width:2}.react-flow__edge-path.selected{stroke:var(--text-tertiary)!important}.react-flow__edge-interaction{pointer-events:stroke!important}.react-flow__connection-line{stroke:var(--text-tertiary)!important}.image-node-settings-wrap{position:relative}.image-node-settings-btn{display:flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 10px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:all .15s;white-space:nowrap;width:96px}.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:380px;background:var(--dialog-bg, #1a1a1d);border:1px solid var(--node-border, #2c2c30);border-radius:10px;padding:14px;box-shadow:0 8px 32px #00000080}.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(5,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:var(--accent-blue-bg, rgba(88, 166, 255, .06));border-color:var(--accent-blue, #58a6ff);color:var(--accent-blue, #58a6ff);font-weight:500}.aspect-ratio-btn:first-child.active,.aspect-ratio-btn.active:first-child{background:var(--accent-blue-bg, rgba(88, 166, 255, .06))!important;border:1px solid var(--accent-blue, #58a6ff)!important;color:var(--accent-blue, #58a6ff)!important}.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-auto-hint{font-size:12px;color:var(--text-tertiary, #666);opacity:.7}.quality-toggle-group,.resolution-toggle-group{display:flex;gap:6px}.quality-toggle-btn,.resolution-toggle-btn{flex:1;padding:8px 0;background:var(--bg-secondary, #1e1e22);border:1px solid var(--node-border, #2c2c30);border-radius:8px;color:var(--text-secondary, #999);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.quality-toggle-btn:hover,.resolution-toggle-btn:hover{background:#ffffff0d;color:var(--text-secondary)}.quality-toggle-btn.active,.resolution-toggle-btn.active{background:var(--accent-blue-bg, rgba(88, 166, 255, .06));border-color:var(--accent-blue, #58a6ff);color:var(--accent-blue, #58a6ff);font-weight:500}.resolution-toggle-btn.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.resolution-toggle-btn{position:relative;overflow:visible}.resolution-toggle-btn.disabled:hover{background:transparent;border-color:#ffffff14;color:var(--text-extra-muted)}.res-time-badge{position:absolute;top:-4px;right:-4px;display:inline-flex;align-items:center;justify-content:center;cursor:help}.res-time-badge:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);padding:3px 8px;background:#000000d9;color:#fff;font-size:11px;line-height:1.4;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:100}.res-time-badge:hover:after{opacity:1}.quality-toggle-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;min-width:0}.quality-toggle-btn .quality-icon{font-size:14px;line-height:1}.quality-toggle-btn .quality-label{font-size:11.5px;font-weight:600;line-height:1.2}.quality-toggle-btn .quality-credits{font-size:10px;color:var(--text-extra-muted, #888);font-weight:400;line-height:1;opacity:.8}.quality-toggle-btn[disabled]{opacity:.3;cursor:not-allowed;pointer-events:none}.quality-toggle-btn.active .quality-credits{color:var(--accent-primary, #6c5ce7);opacity:1}.quality-hint{text-align:center;font-size:11px;color:var(--text-extra-muted, #888);padding:6px 0 2px;line-height:1.3}.duration-slider-wrap{display:flex;flex-direction:column;gap:4px;margin-top:4px}.duration-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:#ffffff14;border-radius:3px;outline:none;cursor:pointer;touch-action:none}.duration-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid rgba(255,255,255,.3);cursor:pointer;box-shadow:0 0 8px #ffffff26}.duration-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid rgba(255,255,255,.3);cursor:pointer;box-shadow:0 0 8px #ffffff26}.duration-slider-marks{display:flex;justify-content:space-between;font-size:10px;color:var(--text-tertiary, #666)}.duration-value{color:#fff;font-weight:700;font-size:14px;margin-left:2px}[data-theme=light] .duration-slider{background:#0000001f}[data-theme=light] .duration-slider::-webkit-slider-thumb{background:#1677ff;border:2px solid rgba(22,119,255,.3);box-shadow:0 0 8px #1677ff33}[data-theme=light] .duration-slider::-moz-range-thumb{background:#1677ff;border:2px solid rgba(22,119,255,.3);box-shadow:0 0 8px #1677ff33}[data-theme=light] .duration-value{color:var(--text-primary, #1a1a2e)}.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;bottom:calc(100% + (2px * var(--node-counter-scale, 1)));left:0;right:0;width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;display:flex;align-items:center;gap:calc(6px * var(--node-counter-scale, 1));padding:0;margin:0;background:transparent;font-size:12px;font-weight:500;line-height:1;color:var(--text-primary);white-space:nowrap;z-index:10}.image-upload-node .node-header-outer,.image-node .node-header-outer,.video-upload-node .node-header-outer,.video-node .node-header-outer,.audio-upload-node .node-header-outer,.audio-node .node-header-outer,.model3d-node .node-header-outer,.text-node .node-header-outer{width:calc(100% - 2px);left:calc(1px * var(--node-counter-scale, 1));right:calc(1px * var(--node-counter-scale, 1))}.text-node-actions{display:flex;flex-direction:column;gap:2px;padding:8px 14px 12px}.text-node-actions-compact{display:flex;align-items:center;gap:2px;padding:4px 14px 10px;margin-top:auto}.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)}.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-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;display:flex;flex-direction:column;min-width:188px;min-height:0}.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-content-preview{margin:0;padding:12px 20px;font-size:13px;color:var(--tag-text);line-height:1.6;flex:1 1 auto;min-height:0;overflow-y:auto;white-space:pre-wrap;word-break:break-word;cursor:text}.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-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-generating{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 14px 20px;min-height:96px;box-sizing:border-box}.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}.text-node-generating-icon{animation:pulse-glow 1.5s ease-in-out infinite;color:var(--accent-blue, #6399ff)}.text-node-generating-text{font-size:13px;color:var(--text-dim, #999)}.text-node-hint{font-size:11px;color:var(--label-secondary);padding:2px 0 6px;letter-spacing:.5px}.text-node-icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--icon-color);cursor:pointer;transition:all .15s}.text-node-icon-btn:disabled{opacity:.4;cursor:not-allowed}.text-node-icon-btn:hover{background:var(--op-btn-hover-bg);border-color:#ffffff1f;color:var(--text-primary)}.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-sending{opacity:.5;pointer-events:none}.text-node-input::placeholder{color:var(--input-placeholder)}.text-node-input:focus{border-color:var(--input-border-focus)}.expandable-textarea-back-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;border-radius:10px;cursor:pointer;transition:all .15s;font-weight:500}.expandable-textarea-back-btn:hover{background:var(--bg-tertiary);border-color:var(--node-border-hover)}.expandable-textarea-expand-btn{position:absolute;top:6px;right:6px;z-index:10;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:var(--bg-tertiary, rgba(255,255,255,.1));color:var(--text-secondary);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s,background .15s;pointer-events:none}.expandable-textarea-expand-btn:hover{background:var(--bg-hover, rgba(255,255,255,.2));color:var(--text-primary)}.expandable-textarea-large{flex:1;width:100%;padding:padding: 8px 24px 20px;background:var(--input-bg);border:none;color:var(--text-primary);font-size:15px;line-height:1.8;resize:none;outline:none;font-family:inherit;overflow-y:auto}.expandable-textarea-large::-webkit-scrollbar{width:6px}.expandable-textarea-large::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.expandable-textarea-large::-webkit-scrollbar-track{background:transparent}.expandable-textarea-large::placeholder{color:var(--text-tertiary);opacity:1}.expandable-textarea-modal{display:flex;flex-direction:column;width:min(900px,62vw);height:380px;max-width:900px;max-height:500px;min-width:480px;min-height:380px;background:var(--dialog-bg);border-radius:10px;box-shadow:0 12px 40px #00000059;overflow:hidden}.expandable-textarea-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--dialog-bg);position:relative}.expandable-textarea-modal-spacer{width:70px}.expandable-textarea-modal-title{font-size:15px;font-weight:600;color:var(--text-primary);position:absolute;left:50%;transform:translate(-50%)}.expandable-textarea-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:expandFadeIn .2s ease}.expandable-textarea-wrapper{position:relative;width:100%}.expandable-textarea-wrapper.show-expand .expandable-textarea-expand-btn{opacity:.85;pointer-events:auto}.expandable-textarea-wrapper.show-expand .expandable-textarea-expand-btn:hover{opacity:1}.expandable-textarea-wrapper:hover .expandable-textarea-expand-btn,.expandable-textarea-wrapper .expandable-textarea-expand-btn:hover,.expandable-textarea-wrapper .has-expand-btn:focus~.expandable-textarea-expand-btn{opacity:1;pointer-events:auto}.text-node-lower{position:absolute;top:100%;left:50%;margin-top:6px;margin-left:-340px;transform:scale(calc(1 / var(--canvas-zoom, 1)));transform-origin:center top;width:680px;max-width:calc(100vw - 80px);z-index:10;animation:nodeDialogIn .2s ease-out}.image-node-lower:not(.lower-open),.text-node-lower:not(.lower-open),.video-node-lower:not(.lower-open),.audio-node-lower:not(.lower-open){display:none!important}.react-flow__node:not(.selected) .image-toolbar-popup{display:none!important}.text-node-lower[data-pane-hidden],.video-node-lower[data-pane-hidden],.audio-node-lower[data-pane-hidden],.image-toolbar-popup[data-pane-hidden]{pointer-events:none!important}.text-node-mode-toggle{position:relative;flex-shrink:0}.text-node-model-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:10.5px;border-radius:6px;border:1px solid rgba(88,166,255,.3);background:#58a6ff14;color:#58a6ff;cursor:pointer;line-height:1.3;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:inherit;transition:background .15s,border-color .15s}.text-node-model-btn:hover{background:#58a6ff2e;border-color:#58a6ff80}.text-node-model-dropdown{position:absolute;bottom:calc(100% + 4px);left:0;min-width:220px;max-height:280px;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);z-index:50;padding:4px;display:flex;flex-direction:column;gap:2px}.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-group-label{padding:4px 12px 2px;font-size:10px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.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.active{background:#ffffff14;color:var(--text-brightest)}.text-node-model-dropdown-item:hover{background:var(--op-btn-hover-bg);color:var(--tag-hover-text)}.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-wrap{position:relative;display:inline-flex;flex-shrink:0}.text-node-model-option{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:5px;cursor:pointer;color:var(--text-primary);font-size:12px;transition:background .12s}.image-model-dropdown-item img,.text-node-model-option img,.image-model-dropdown-btn img{width:18px;height:18px;flex-shrink:0;filter:brightness(0) invert(1);opacity:.92;transition:filter .2s,opacity .2s}[data-theme=light] .image-model-dropdown-item img,[data-theme=light] .text-node-model-option img,[data-theme=light] .image-model-dropdown-btn img{filter:none;opacity:1}.text-node-model-option.active{background:#58a6ff40;color:#fff}.text-node-model-option:hover{background:#58a6ff26;color:#fff}.text-node-model-picker{position:relative}.text-node-op-btn{display:flex;align-items:center;gap:10px;padding:9px 14px;background:transparent;border:1px solid transparent;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-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);color:var(--tooltip-text);border:1px solid var(--tooltip-border);border-radius:6px;padding:6px 10px;font-size:11px;white-space:nowrap;z-index:1000;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease}.text-node-price-wrapper{position:relative;display:inline-flex;flex-shrink:0}.text-node-price-wrapper:hover .text-node-price-tooltip{opacity:1;visibility:visible}.text-node-price-wrapper:hover .text-node-edit-expand-overlay .expandable-textarea-modal{display:flex;flex-direction:column;width:min(900px,62vw);height:380px;max-width:900px;max-height:500px;min-width:480px;min-height:380px;background:var(--dialog-bg);border-radius:10px;box-shadow:0 12px 40px #00000059;overflow:hidden}.text-node-edit-input,.text-node-edit-input textarea{flex:1;width:100%;height:100%;min-height:0;max-height:none;overflow-y:auto;background:transparent;border:none;border-radius:0;padding:10px 20px;color:var(--input-text);font-size:13px;line-height:1.7;resize:none;outline:none;font-family:inherit}.text-node-edit-input::placeholder,.text-node-edit-input textarea::placeholder{color:var(--input-placeholder)}.text-node-edit-toolbar-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:5px;border:none;background:#7f7f7f14;color:var(--icon-color);cursor:pointer;transition:all .15s}.text-node-edit-toolbar-btn:hover{background:#7f7f7f2e;color:var(--text-primary)}.text-node-edit-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:4px 8px 6px}.text-node-editing{display:flex;flex-direction:column;height:100%;overflow:hidden}.text-node-editing .expandable-textarea-wrapper{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}.text-node-resize-handle{position:absolute;right:0;bottom:0;z-index:10;display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--text-tertiary);cursor:nwse-resize;opacity:.7;transition:opacity .15s,color .15s;pointer-events:auto}.text-node-resize-handle:hover{opacity:1;color:var(--text-primary)}.text-node-resize-handle svg{display:block}.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:disabled,.text-node-send-btn.sending{color:var(--btn-send-disabled);background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);cursor:not-allowed;opacity:1;box-shadow:none}.text-node-send-btn:hover{background:var(--btn-secondary-hover-bg);color:var(--btn-send-hover-color);border-color:var(--btn-send-hover-border);box-shadow:0 0 0 2px #1677ff2e}.text-node-token-hint{font-size:10.5px;color:var(--text-secondary);flex-shrink:0;-webkit-user-select:none;user-select:none;cursor:help;padding:2px 7px;border:1px solid var(--border-color, rgba(255,255,255,.12));border-radius:4px;white-space:nowrap}.text-node-toolbar{display:flex;align-items:center;gap:8px;margin-top:8px;justify-content:space-between}.text-node-translate-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;background:#6366f11f;border:1px solid rgba(99,102,241,.25);border-radius:6px;color:#a5b4fc;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.text-node-translate-btn:disabled{opacity:.4;cursor:not-allowed}.text-node-translate-btn:hover{background:#6366f138;border-color:#6366f173;color:#c7d2fe}.node-header-placeholder{height:0;visibility:hidden}.node-title-input{background:transparent;border:none;border-radius:0;box-shadow:none;color:var(--text-primary);font-size:calc(12px * var(--node-title-scale, 1));font-weight:500;line-height:1;padding:0;outline:none;min-width:60px;max-width:160px}.node-title-input:focus{border-color:transparent;box-shadow:none}.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)}.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:100001}.recharge-modal{background:var(--bg-primary);border-radius:16px;width:580px;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:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.option-card{flex:1;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:#58a6ff;background:#ffffff14}.option-card.popular{border-color:#fb923c4d}.option-card.popular.selected{border-color:#fb923c}.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-card.popular .popular-badge{background:#fb923c}.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{display:block;margin:20px auto 0;width:100%;text-align:center;padding:12px;border:none;background:linear-gradient(to right,#2b83fe,#60a5fa);color:#fff;border-radius:25px;font-size:15px;cursor:pointer;transition:all .2s}.recharge-btn:hover:not(:disabled){opacity:.8}.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)}.payment-method-select{padding:24px}.payment-method-select h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.method-options{display:flex;gap:12px;margin-bottom:16px}.method-select-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 20px;background:var(--bg-tertiary);border:2px solid var(--divider-color);border-radius:12px;color:var(--text-primary)}.method-select-btn span{display:flex;align-items:center;justify-content:center}.method-select-btn span svg{display:block;vertical-align:middle}.method-select-btn:hover{border-color:#58a6ff!important;color:#58a6ff!important}.method-select-btn.disabled{opacity:.5;cursor:not-allowed}.method-select-btn.selected{font-weight:600}.method-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%}.recharge-body{padding:24px}.payment-method-section{margin-top:12px}.method-section-title{font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:10px}.qrcode-back-btn{width:100%;padding:10px;background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;border-radius:8px;transition:all .15s}.qrcode-back-btn:hover{background:var(--bg-tertiary)}.qrcode-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:500}.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)}.image-node-multi-preview{position:relative}.image-node-main-wrap{position:relative;display:inline-block;width:100%;border-radius:10px;overflow:hidden}.image-node-set-main-btn{position:absolute;top:8px;right:8px;z-index:10;padding:5px 12px;background:var(--accent-blue, #6366f1);color:#fff;font-size:12px;font-weight:600;border:none;border-radius:6px;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:all .2s;pointer-events:auto}.image-node-set-main-btn:hover{background:#5db8ff;transform:scale(1.05)}.image-node-thumb-strip{display:flex;gap:6px;padding:8px 10px;overflow-x:auto;background:var(--card-bg);border-top:1px solid var(--border-color)}.image-node-thumb{position:relative;flex-shrink:0;width:48px;height:48px;border-radius:6px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .2s}.image-node-thumb:hover{border-color:var(--accent-color);opacity:.9}.image-node-thumb.active{border-color:var(--accent-color);box-shadow:0 0 0 2px #6366f14d}.image-node-thumb img{width:100%;height:100%;object-fit:cover}.image-node-thumb-num{position:absolute;bottom:2px;right:2px;background:#000000a6;color:#fff;font-size:9px;line-height:1;padding:2px 4px;border-radius:3px;pointer-events:none}.preview-image-wrap{position:relative;width:100%}.history-thumb-strip{display:flex;gap:4px;padding:4px 6px;overflow-x:auto;background:#00000080;border-top:1px solid rgba(255,255,255,.08)}.history-thumb-strip::-webkit-scrollbar{height:3px}.history-thumb-strip::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.history-thumb{position:relative;flex-shrink:0;width:36px;height:36px;border-radius:4px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .15s}.history-thumb:hover{border-color:#ffffff80}.history-thumb.active{border-color:var(--accent-color, #6366f1)}.history-thumb img{width:100%;height:100%;object-fit:cover}.history-thumb-num{position:absolute;bottom:1px;right:1px;background:#000000b3;color:#fff;font-size:8px;line-height:1;padding:1px 3px;border-radius:2px;pointer-events:none}.home-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;width:100%}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:all .25s ease;display:flex;flex-direction:column}.project-card:hover{border-color:var(--border-active);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.project-card-thumb{width:100%;aspect-ratio:16 / 9;background:var(--bg-tertiary);position:relative;overflow:hidden}.project-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-card-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);color:var(--text-tertiary)}.project-card-info{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px;flex:1}.project-card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-desc{font-size:12px;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-time{font-size:11px;color:var(--text-tertiary);margin-top:auto}.image-tool-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:toolOverlayFadeIn .2s ease-out}@keyframes toolOverlayFadeIn{0%{opacity:0}to{opacity:1}}.image-tool-dialog{width:480px;max-width:95vw;max-height:90vh;overflow-y:auto;background:var(--card-bg, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:14px;box-shadow:0 12px 48px #0006;animation:toolDialogSlideIn .25s ease-out}@keyframes toolDialogSlideIn{0%{transform:translateY(16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.image-tool-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;font-size:15px;font-weight:600;color:var(--text-primary, #111827);border-bottom:1px solid var(--border-color, #e5e7eb);gap:8px}.image-tool-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary, #6b7280);border-radius:6px;cursor:pointer;transition:all .15s;flex-shrink:0}.image-tool-close-btn:hover{background:#00000014;color:var(--text-primary, #111827)}.split-confirm-dialog{width:100%;max-width:unset;height:auto;min-height:unset;max-height:unset;border-radius:14px 14px 0 0;overflow:hidden;background:transparent;margin-bottom:0;border:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.image-upload-resize-handle{position:absolute;bottom:0;right:0;width:22px;height:22px;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 2px 2px 0;cursor:nwse-resize;color:#ffffff80;opacity:0;transition:opacity .15s;z-index:5;background:linear-gradient(135deg,transparent 50%,rgba(255,255,255,.08) 50%);border-radius:0 0 10px}.image-upload-preview-wrap:hover .image-upload-resize-handle{opacity:1}.image-upload-resize-handle:hover,.image-upload-resize-handle.resizing{opacity:1;color:#ffffffd9;background:linear-gradient(135deg,transparent 50%,rgba(255,255,255,.15) 50%)}.canvas-node.video-upload-node{min-width:188px;cursor:default;border-color:transparent}.canvas-node.video-upload-node:hover{cursor:default;border-color:transparent}.canvas-node.video-upload-node.selected{cursor:default;border-color:transparent;box-shadow:none}.video-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.video-upload-node:hover .video-upload-card{border-color:var(--node-border-hover)}.canvas-node.video-upload-node.selected .video-upload-card{border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.video-upload-body{padding:0}.video-upload-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:30px 20px;min-height:140px;color:var(--text-muted);border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.video-upload-drop-zone:hover{border-color:var(--accent-blue);background:#3b82f60d}.video-upload-drop-zone span{font-size:12px}.video-upload-drop-zone.drag-over{border-color:var(--accent-blue);background:#3b82f614}.video-upload-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:8px;align-items:center;justify-content:center;background:#3b82f61f;border:2px dashed var(--accent-blue);border-radius:8px;color:var(--accent-blue);font-size:13px;font-weight:500}.video-upload-drop-overlay span{font-size:13px}.canvas-node.audio-upload-node{min-width:320px;max-width:420px;cursor:default;border-color:transparent}.canvas-node.audio-upload-node:hover{cursor:default;border-color:transparent}.canvas-node.audio-upload-node.selected{cursor:default;border-color:transparent;box-shadow:none}.audio-upload-card{position:relative;background:transparent;border:1px solid var(--node-border);border-radius:10px;box-shadow:var(--shadow);transition:all .2s;overflow:hidden}.canvas-node.audio-upload-node:hover .audio-upload-card{border-color:var(--node-border-hover)}.canvas-node.audio-upload-node.selected .audio-upload-card{border-color:var(--node-border-active);box-shadow:0 0 0 1px var(--node-selected-glow)}.audio-upload-body{padding:0}.audio-upload-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:30px 20px;min-height:120px;color:var(--text-muted);border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.audio-upload-drop-zone:hover{border-color:var(--accent-blue);background:#3b82f60d}.audio-upload-drop-zone span{font-size:12px}.audio-upload-drop-zone .audio-upload-hint{font-size:10px;color:var(--text-dim)}.audio-upload-drop-zone.drag-over{border-color:var(--accent-blue);background:#3b82f614}.audio-upload-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:8px;align-items:center;justify-content:center;background:#3b82f61f;border:2px dashed var(--accent-blue);border-radius:8px;color:var(--accent-blue);font-size:13px;font-weight:500}.audio-upload-drop-overlay span{font-size:13px}.audio-upload-preview-wrap{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;min-height:100px;background:transparent;border-radius:0}.audio-upload-icon{color:var(--accent-blue);opacity:.7}.audio-upload-duration{font-size:11px;color:var(--text-tertiary)}.audio-upload-replace-hint{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .2s;z-index:5}.audio-upload-preview-wrap:hover .audio-upload-replace-hint{opacity:1}.audio-upload-replace-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:none;background:#000000a6;color:#fff;cursor:pointer;font-size:11px;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s}.audio-upload-replace-btn:hover{background:#000000d9}.audio-voice-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:10000}.audio-voice-modal{background:var(--bg-card, #1a1a1a);border-radius:14px;width:640px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;color:var(--text-bright, #fff)}.audio-voice-modal-item{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .12s}.audio-voice-modal-item:hover{background:#ffffff0d}.audio-voice-modal-item.active{background:#4a90e226}.audio-voice-modal-preview-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#ffffff14;color:#ffffffd9;border-radius:50%;cursor:pointer;opacity:0;transition:opacity .15s,background .12s,color .12s;padding:0}.audio-voice-modal-item:hover .audio-voice-modal-preview-btn,.audio-voice-modal-preview-btn.playing,.audio-voice-modal-preview-btn.loading{opacity:1}.audio-voice-modal-preview-btn:hover{background:#4a90e266;color:#fff}.audio-voice-modal-preview-btn.playing{background:#4a90e299;color:#fff}.audio-voice-modal-preview-btn.loading{background:#ffffff1f;color:#fff;opacity:1}.audio-voice-modal-preview-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:audio-preview-spin .8s linear infinite}@keyframes audio-preview-spin{to{transform:rotate(360deg)}}.audio-voice-modal-item-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.audio-voice-modal-item-name{font-size:13px;font-weight:500}.audio-voice-modal-item-tags{display:flex;gap:4px}.audio-voice-modal-item-actions{display:flex;gap:4px;align-items:center}.audio-waveform{display:flex;flex-direction:column;gap:4px;padding:6px 8px;background:var(--audio-wave-bg);border-radius:0;color:var(--audio-wave-text);position:relative;width:100%;box-sizing:border-box}.audio-waveform-header{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--audio-wave-text-muted)}.audio-waveform-icon{color:var(--audio-wave-icon-color, #4a90e2);display:flex;align-items:center}.audio-waveform-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-waveform-replace{background:var(--audio-wave-btn-bg);border:none;color:var(--audio-wave-text);width:22px;height:22px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.audio-waveform-replace:hover{background:var(--audio-wave-btn-hover)}.audio-waveform-filename{font-size:12px;color:var(--audio-wave-text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.audio-waveform-bars{position:relative;background:var(--audio-wave-bars-bg);border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center}.audio-waveform-canvas{display:block;cursor:pointer}.audio-waveform-loading,.audio-waveform-fallback{font-size:11px;color:var(--audio-wave-text-muted);display:flex;align-items:center;gap:4px}.audio-waveform-footer{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--audio-wave-text-muted);font-variant-numeric:tabular-nums}.audio-waveform-play{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:var(--audio-wave-btn-bg);color:var(--audio-wave-text);border-radius:50%;cursor:pointer;transition:background .15s;padding:0}.audio-waveform-play:hover{background:var(--audio-wave-btn-hover)}.audio-waveform-time{flex:1}.video-upload-preview-wrap{position:relative;display:inline-block;line-height:0;border-radius:8px;overflow:visible;background:#000;vertical-align:top}.video-upload-preview-video{max-width:540px!important;max-height:480px!important;display:block;border-radius:8px;background:#000;cursor:pointer;object-fit:contain;vertical-align:top}.video-upload-preview-video::-webkit-media-controls{display:none!important}.image-node-preview.video-node-preview-wrap{max-width:100%!important;width:100%!important;height:auto!important;display:flex!important;align-items:center;justify-content:center;line-height:0!important;overflow:visible;vertical-align:top!important}.video-node-preview{width:100%!important;height:auto!important;max-width:100%!important;max-height:480px!important;display:block;object-fit:contain;vertical-align:top}.video-node-preview::-webkit-media-controls{display:none!important}.video-element-wrap{position:relative;display:inline-block;line-height:0;border-radius:8px;overflow:visible;vertical-align:top}.video-element-wrap:fullscreen{width:100vw!important;height:100vh!important;background:#000!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:0!important;line-height:0!important;overflow:hidden!important}.video-element-wrap:fullscreen .video-upload-preview-video,.video-element-wrap:fullscreen .video-node-preview{width:100%!important;height:100%!important;max-width:100vw!important;max-height:100vh!important;object-fit:contain!important;cursor:default!important}.video-element-wrap:fullscreen .video-custom-controls{position:absolute!important;left:0!important;right:0!important;bottom:0!important;opacity:1!important;padding:14px 18px 10px!important;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 100%)!important;z-index:5!important}.video-element-wrap:fullscreen .video-ctrl-btn{width:28px!important;height:28px!important;border-radius:6px!important}.video-element-wrap:fullscreen .video-ctrl-btn svg,.video-element-wrap:fullscreen .video-upload-action-btn svg{width:16px!important;height:16px!important}.video-element-wrap:fullscreen .video-time{font-size:12px!important}.video-element-wrap:fullscreen .video-upload-action-btn{width:28px!important;height:28px!important;border-radius:6px!important}.video-fullscreen-exit-btn{display:none;position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:#0000008c;color:#fff;border:none;cursor:pointer;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,transform .15s}.video-fullscreen-exit-btn:hover{background:#000000d9;transform:scale(1.05)}.video-element-wrap:fullscreen .video-fullscreen-exit-btn{display:flex!important}.video-upload-preview-video::-webkit-media-controls-panel,.video-node-preview::-webkit-media-controls-panel{padding:0 4px 1px;height:22px}.video-upload-preview-video::-webkit-media-controls-play-button,.video-node-preview::-webkit-media-controls-play-button,.video-upload-preview-video::-webkit-media-controls-mute-button,.video-node-preview::-webkit-media-controls-mute-button,.video-upload-preview-video::-webkit-media-controls-fullscreen-button,.video-node-preview::-webkit-media-controls-fullscreen-button{transform:scale(.72);transform-origin:center}.video-upload-preview-video::-webkit-media-controls-timeline,.video-node-preview::-webkit-media-controls-timeline{height:3px!important;margin:0 4px!important;padding:0!important}.video-upload-preview-video::-webkit-media-controls-timeline-container,.video-node-preview::-webkit-media-controls-timeline-container{height:12px}.video-upload-preview-video::-webkit-media-controls-current-time-display,.video-node-preview::-webkit-media-controls-current-time-display,.video-upload-preview-video::-webkit-media-controls-time-remaining-display,.video-node-preview::-webkit-media-controls-time-remaining-display{font-size:10px!important;line-height:1}.video-upload-preview-video::-webkit-media-controls-volume-slider,.video-node-preview::-webkit-media-controls-volume-slider{transform:scale(.72);transform-origin:center}.video-custom-controls{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:2px;padding:8px 6px 4px;background:linear-gradient(to top,rgba(0,0,0,.3) 0%,transparent 100%);color:#fff;font-size:11px;pointer-events:auto;z-index:4;opacity:0;transition:opacity .2s}.video-upload-preview-wrap:hover .video-custom-controls,.video-element-wrap:hover .video-custom-controls,.image-node-preview.video-node-preview-wrap:hover .video-custom-controls{opacity:1}.video-ctrl-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;background:transparent;color:#fff;cursor:pointer;border-radius:4px;transition:background .12s;flex-shrink:0}.video-ctrl-btn:hover{background:#ffffff2e}.video-time{font-variant-numeric:tabular-nums;font-size:9px;color:#ffffffd9;white-space:nowrap;flex-shrink:0;min-width:50px;text-align:center}.video-progress-wrap{flex:1 1 0;min-width:0;height:4px;background:#ffffff40;border-radius:2px;cursor:pointer;position:relative;overflow:hidden}.video-progress-fill{position:absolute;top:0;left:0;bottom:0;background:#fff;border-radius:2px;transition:width .1s}.video-capture-wrap{position:relative;display:flex;align-items:center;flex-shrink:0}.video-capture-menu{position:absolute!important;bottom:calc(100% + 4px)!important;right:0!important;display:flex!important;flex-direction:column!important;gap:1px!important;background:#141416f2!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:5px!important;padding:2px!important;min-width:62px!important;box-shadow:0 4px 10px #00000073!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;z-index:999!important;overflow:hidden!important}.video-capture-menu-item{display:block!important;width:100%!important;padding:4px 7px!important;border:none!important;background:transparent!important;color:#fff!important;cursor:pointer!important;font-size:8px!important;text-align:left!important;border-radius:2px!important;white-space:nowrap!important;transition:background .12s!important}.video-capture-menu-item:hover{background:#ffffff26}.video-capture-menu-item:disabled{opacity:.4;cursor:not-allowed}.image-thumb-item.is-video{position:relative}.image-thumb-item.is-video .image-thumb-label:after{content:" VID";font-size:9px;color:var(--accent-blue);margin-left:2px}.video-thumb{position:relative;width:100%;height:100%;background:#000}.video-thumb img{width:100%;height:100%;object-fit:cover;display:block}.video-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff80;background:#1a1a1a}.audio-thumb{position:relative;width:100%;height:100%;background:linear-gradient(135deg,#1e1e2e,#0a0a0f);display:flex;align-items:center;justify-content:center;overflow:hidden}.audio-thumb img{width:90%;height:80%;object-fit:contain;display:block}.audio-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#4a90e299;background:linear-gradient(135deg,#1e1e2e,#0a0a0f)}.audio-thumb-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0003;color:#fff;pointer-events:none}.audio-thumb-duration{position:absolute;bottom:2px;right:4px;font-size:9px;color:#ffffffbf;background:#00000080;padding:1px 4px;border-radius:3px;font-variant-numeric:tabular-nums;pointer-events:none}.video-upload-replace-hint{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .2s;z-index:5}.video-upload-preview-wrap:hover .video-upload-replace-hint{opacity:1}.video-upload-replace-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:none;background:#000000a6;color:#fff;cursor:pointer;font-size:11px;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s}.video-upload-replace-btn:hover{background:#000000d9}.agent-prefs-panel{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:200;width:320px;max-height:420px;overflow-y:auto;background:var(--dialog-bg, #1a1a1d);border:1px solid var(--node-border, #2c2c30);border-radius:10px;padding:14px;box-shadow:0 8px 32px #00000080}.agent-prefs-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}.agent-prefs-close:hover{background:#ffffff14;color:var(--text-primary)}.agent-prefs-section{margin-bottom:14px}.agent-prefs-section:last-of-type{margin-bottom:0}.agent-prefs-section-title{font-size:12px;font-weight:600;color:var(--text-secondary, #999);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.agent-ratio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.agent-ratio-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s;color:var(--text-secondary, #999);background:transparent}.agent-ratio-item:hover{border-color:var(--input-border-focus, #555);color:var(--text-primary)}.agent-ratio-item.active{border-color:var(--accent-blue, #58a6ff);background:#58a6ff0f;color:var(--accent-blue, #58a6ff)}.agent-ratio-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.agent-ratio-label{font-size:10px;white-space:nowrap;line-height:1}.agent-res-level-group{display:flex;gap:6px}.agent-res-level-btn{flex:1;padding:8px 0;border:1px solid var(--node-border, #2c2c30);border-radius:8px;background:var(--bg-secondary, #1e1e22);color:var(--text-secondary, #999);cursor:pointer;font-size:13px;font-weight:600;transition:all .15s}.agent-res-level-btn:hover:not(.disabled){border-color:var(--input-border-focus, #555);color:var(--text-primary)}.agent-res-level-btn.active{border-color:var(--accent-blue, #58a6ff);background:#58a6ff0f;color:var(--accent-blue, #58a6ff)}.agent-res-level-btn.disabled{opacity:.35;cursor:not-allowed}.agent-quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.agent-quality-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--node-border, #2c2c30);border-radius:8px;cursor:pointer;transition:all .15s;background:var(--bg-secondary, #1e1e22);color:var(--text-secondary, #999)}.agent-quality-item:hover{border-color:var(--input-border-focus, #555);color:var(--text-primary)}.agent-quality-item.active{border-color:var(--accent-blue, #58a6ff);background:#58a6ff0f;color:var(--accent-blue, #58a6ff)}.agent-quality-name{font-size:12px;font-weight:500}.agent-quality-credits{font-size:10px;color:var(--text-tertiary, #666);opacity:.8}.agent-credit-modal-compact{max-width:380px!important;padding:0!important}.agent-credit-compact-body{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 32px}.agent-credit-compact-text{font-size:15px;color:var(--text-primary, #e0e0e0);text-align:center}.agent-message-actions{display:flex;gap:4px;margin-top:6px;opacity:0;transition:opacity .2s ease}.agent-message-content:hover .agent-message-actions{opacity:1}.agent-msg-action-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-tertiary, #666);cursor:pointer;transition:all .15s}.agent-msg-action-icon:hover{background:#ffffff14;color:var(--text-secondary, #999)}.agent-credit-compact-text strong{color:var(--accent, #6366f1);font-size:18px;font-weight:700}.agent-credit-compact-actions{display:flex;gap:12px}.image-node-lower[data-pane-hidden],.text-node-lower[data-pane-hidden],.video-node-lower[data-pane-hidden],.audio-node-lower[data-pane-hidden],.image-toolbar-popup[data-pane-hidden]{pointer-events:none!important}.director-desk-open-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;font-size:13px;font-weight:500;color:#58a6ff;background:#58a6ff0f;border:1px solid #58a6ff;border-radius:20px;cursor:pointer;transition:all .15s}.director-desk-open-btn:hover{background:#58a6ff26;border-color:#4096ff;box-shadow:0 0 0 2px #58a6ff26}.director-desk-open-btn:active{background:#58a6ff40}.react-flow__node .image-node-card[data-from-director=true]{border:1.5px solid rgba(88,166,255,.4)}.director-desk-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000bf;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:dd-fade-in .2s ease}@keyframes dd-fade-in{0%{opacity:0}to{opacity:1}}.director-desk-fullscreen-container{position:relative;width:95vw;height:500px;max-width:1200px;background:#090909;border-radius:12px;box-shadow:0 24px 80px #0009;display:flex;flex-direction:column;overflow:hidden}.director-desk-fullscreen-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#141418f2;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;color:#ddd;font-size:14px;font-weight:500}.director-desk-fullscreen-title{display:flex;align-items:center}.director-desk-fullscreen-close{background:transparent;border:1px solid rgba(255,255,255,.15);color:#ddd;width:30px;height:30px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.director-desk-fullscreen-close:hover{background:#ff505026;border-color:#ff505066;color:#f88}.loginButton:hover{background:#055fdd!important}.loginLink:hover{text-decoration:underline}[data-theme=light]{--audio-wave-bg: linear-gradient(135deg, #ffffff 0%, #f8f9fb 100%);--audio-wave-bars-bg: rgba(0,0,0,.08);--audio-wave-text: #1c1c1e;--audio-wave-text-bright: #1c1c1e;--audio-wave-text-muted: rgba(28,28,30,.55);--audio-wave-btn-bg: rgba(0,0,0,.06);--audio-wave-btn-hover: rgba(0,0,0,.12);--audio-wave-icon-color: #1677ff}[data-theme=light] .image-thumb-label{color:#000000eb;background:#ffffffe0;text-shadow:none;font-weight:500}[data-theme=light] .image-node-thumb-num{background:#ffffffe6!important;color:#000000e6!important;border:1px solid rgba(0,0,0,.2);text-shadow:none}[data-theme=light] .frame-thumb .image-thumb-label{background:#ffffffd9!important;color:#000000d9!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.buy-storage-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;width:580px;max-width:92vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:bsmIn .2s ease-out}.video-upload-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .2s;pointer-events:auto}.video-custom-controls .video-upload-actions{opacity:1;position:static;gap:2px}.video-upload-actions>*{pointer-events:auto}.video-upload-preview-wrap:hover>.video-upload-actions:not(.video-capture-inline),.image-node-preview.video-node-preview-wrap:hover>.video-upload-actions:not(.video-capture-inline),.video-element-wrap:hover>.video-upload-actions:not(.video-capture-inline){opacity:1}.video-upload-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:5px;background:#0009;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s;box-shadow:0 1px 4px #0000004d}.video-upload-action-btn:hover{background:#000000d9}.video-upload-action-btn:disabled{opacity:.4;cursor:not-allowed}.video-custom-controls .video-upload-action-btn{width:20px;height:20px;border-radius:4px;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.video-custom-controls .video-upload-action-btn:hover{background:#ffffff2e}.image-node-character-btn{display:flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 9px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:5px;color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:all .15s;white-space:nowrap;font-family:inherit;flex-shrink:0}.image-node-character-btn:hover{border-color:var(--input-border-focus);color:var(--text-brightest)}.character-library-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100002;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:libFadeIn .15s ease-out}@keyframes libFadeIn{0%{opacity:0}to{opacity:1}}.character-library-modal{position:fixed;top:24px;right:24px;bottom:24px;left:24px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 70px #00000059;animation:libScaleIn .2s ease-out}@keyframes libScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.character-library-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--divider-color);flex-shrink:0}.character-library-header-left{display:flex;align-items:center;gap:12px}.character-library-title{font-size:17px;font-weight:600;color:var(--text-primary)}.character-library-subtitle{font-size:13px;color:var(--text-secondary)}.character-library-header-right{display:flex;align-items:center;gap:14px}.character-library-selected-count{font-size:13px;color:var(--text-secondary)}.character-library-close-btn{width:30px;height:30px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.character-library-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.character-library-header-title{font-size:16px;font-weight:600;color:var(--text-primary)}.character-library-batch-delete-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid var(--error-color, #ef4444);background:transparent;color:var(--error-color, #ef4444);font-size:13px;cursor:pointer;transition:all .15s}.character-library-batch-delete-btn:hover{background:var(--error-color, #ef4444);color:#fff}.character-library-tabs{display:flex;align-items:center;gap:8px;padding:12px 22px 0;border-bottom:1px solid var(--divider-color);flex-shrink:0}.character-library-tab{position:relative;display:flex;align-items:center;gap:5px;padding:8px 14px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s;font-family:inherit}.character-library-tab:hover{color:var(--text-bright)}.character-library-tab.active{color:var(--accent-color, #58a6ff);border-bottom-color:var(--accent-color, #58a6ff)}.character-library-new-badge{position:absolute;top:-2px;right:-2px;background:var(--accent-color, #58a6ff);color:#fff;font-size:9px;font-weight:600;padding:1px 4px;border-radius:8px;line-height:1}.character-library-body{display:flex;flex:1;min-height:0;overflow:hidden}.character-library-sidebar{width:170px;flex-shrink:0;padding:18px 14px;border-right:1px solid var(--divider-color);display:flex;flex-direction:column;gap:12px;background:var(--bg-secondary)}.character-library-sidebar-spacer{flex:1;min-height:8px}.character-library-actions{display:flex;flex-direction:column;gap:8px}.character-library-action-btn{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px 10px;background:var(--bg-primary);border:1px solid var(--input-border);border-radius:8px;color:var(--text-bright);font-size:12px;cursor:pointer;transition:all .15s;font-family:inherit}.character-library-action-btn:hover{border-color:var(--input-border-focus);background:var(--bg-tertiary)}.character-library-sidebar-tip{margin:4px 0 0;font-size:11px;color:var(--text-secondary);text-align:center;line-height:1.5}.character-library-storage{margin-top:0;padding:8px 10px;border-radius:8px;background:var(--bg-primary);border:1px solid var(--input-border)}.character-library-storage-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-bright);margin-bottom:5px}.character-library-storage-ratio{font-size:10px;color:var(--text-secondary)}.character-library-storage-bar{height:4px;border-radius:2px;background:var(--bg-tertiary);overflow:hidden}.character-library-storage-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#3b82f6,#60a5fa);transition:width .3s ease}.character-library-storage-tip{margin-top:5px;font-size:9px;color:var(--text-secondary);line-height:1.3}.character-library-grid-wrap{flex:1;min-width:0;padding:18px 22px;overflow-y:auto;background:var(--bg-primary)}.character-library-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-secondary);font-size:14px}.character-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:14px}.character-library-card{position:relative;display:flex;flex-direction:column;gap:8px;cursor:pointer;border-radius:10px;transition:transform .15s}.character-library-card:hover{transform:translateY(-1px)}.character-library-card-thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--bg-secondary);border:2px solid transparent;transition:border-color .15s,box-shadow .15s;display:flex;align-items:center;justify-content:center}.character-library-card:hover .character-library-card-thumb{border-color:var(--input-border-focus)}.character-library-card.selected .character-library-card-thumb{border-color:var(--accent-color, #58a6ff);box-shadow:0 0 0 3px #58a6ff2e}.character-library-card.rejected .character-library-card-thumb{opacity:.75}.character-library-card-thumb img{width:100%;height:100%;object-fit:cover;pointer-events:none}.character-library-card-media{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.character-library-card-name{font-size:12px;color:var(--text-bright);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.character-library-card-selected{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--accent-color, #58a6ff);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040}.character-library-card-rejected{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#0000009e;color:#fff;font-size:11px;text-align:center;padding:8px}.character-library-card-rejected .reject-reason{font-size:10px;opacity:.85;line-height:1.4}.character-library-card-delete{position:absolute;bottom:6px;right:6px;width:22px;height:22px;border:none;border-radius:5px;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s}.character-library-card:hover .character-library-card-delete{opacity:1}.character-library-card-delete:hover{background:#dc2626d9}.character-library-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-top:1px solid var(--divider-color);flex-shrink:0;background:var(--bg-primary)}.character-library-pagination{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:13px}.character-library-page-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--input-border);border-radius:5px;background:var(--input-bg);color:var(--text-bright);cursor:pointer;transition:all .15s}.character-library-page-btn:hover:not(:disabled){border-color:var(--input-border-focus);color:var(--text-brightest)}.character-library-page-btn:disabled{opacity:.4;cursor:not-allowed}.character-library-page-current{min-width:24px;text-align:center;color:var(--text-primary);font-weight:500}.character-library-page-size{margin-left:4px}.character-library-page-jump{display:flex;align-items:center;gap:5px;margin-left:8px}.character-library-page-jump input{width:40px;height:24px;padding:0 4px;text-align:center;background:var(--input-bg);border:1px solid var(--input-border);border-radius:4px;color:var(--text-bright);font-size:12px;outline:none;font-family:inherit}.character-library-page-jump input:focus{border-color:var(--input-border-focus)}.character-library-confirm-btn{padding:8px 24px;background:var(--accent-color, #58a6ff);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,transform .1s;font-family:inherit}.character-library-confirm-btn:hover{background:var(--accent-hover, #4293f2)}.character-library-confirm-btn:active{transform:scale(.98)}.character-library-view-tabs{display:flex;align-items:center;gap:6px;background:var(--bg-secondary);padding:4px;border-radius:10px;border:1px solid var(--divider-color)}.character-library-view-tab{display:flex;align-items:center;gap:6px;padding:7px 14px;background:transparent;border:none;border-radius:7px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.character-library-view-tab:hover{color:var(--text-bright)}.character-library-view-tab.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 3px #0000001f}.character-library-public-body{flex:1;min-height:0;overflow-y:auto;padding:22px 28px;background:var(--bg-primary)}.character-library-public-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}.character-library-public-card{position:relative;display:flex;flex-direction:column;gap:8px;cursor:pointer;border-radius:12px;transition:transform .15s}.character-library-public-card:hover{transform:translateY(-1px)}.character-library-public-card.selected .character-library-public-thumb{border-color:var(--accent-color, #58a6ff);box-shadow:0 0 0 3px #58a6ff2e}.character-library-public-thumb{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg-secondary);border:2px solid transparent;transition:border-color .15s,box-shadow .15s}.character-library-public-thumb img{width:100%;height:100%;object-fit:cover;pointer-events:none}.character-library-public-count{position:absolute;left:8px;bottom:8px;padding:2px 7px;background:#0000009e;color:#fff;font-size:11px;border-radius:10px;line-height:1.4}.character-library-public-name{font-size:13px;font-weight:500;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}.character-library-public-tags{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}[data-theme=light] .character-library-modal{box-shadow:0 20px 60px #0000002e}[data-theme=light] .character-library-card-thumb{background:#f7f8fa}[data-theme=light] .character-library-card-media{color:var(--text-secondary)}[data-theme=light] .character-library-new-badge{color:#fff}[data-theme=light] .character-library-card-rejected{background:#0000008c}.character-library-sidebar-loading{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--text-secondary)}.character-library-error{margin:0 0 12px;padding:8px 12px;border-radius:8px;background:#ef44441f;color:#f87171;font-size:12.5px;line-height:1.5}.character-library-card.pending{opacity:.82}.character-library-card-processing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#00000080;color:#fff;font-size:12px;border-radius:10px}.character-library-card-uploading{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--bg-secondary, #f1f3f6);color:var(--text-secondary);font-size:12px;border-radius:10px}.character-library-card-status{font-size:11px;text-align:center;padding:0 4px;margin-top:-2px}.character-library-card-status.approved{color:#22c55e}.character-library-card-status.pending{color:#f59e0b}.character-library-card-status.rejected{color:#ef4444}.character-library-card-id{font-size:10.5px;color:var(--text-tertiary, #8b949e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.character-library-realperson{margin-top:14px;padding:12px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border-color)}.character-library-realperson-title{font-size:13px;font-weight:600;color:var(--text-bright);margin-bottom:4px}.character-library-realperson-tip{margin:0 0 8px;font-size:11.5px;color:var(--text-secondary);line-height:1.5}.character-library-realperson-qr{display:flex;justify-content:center;align-items:center;padding:10px;background:#fff;border-radius:8px;margin:4px 0 8px;border:1px solid var(--border-color)}.character-library-realperson-qr svg{display:block}.character-library-qr-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:16px}.character-library-qr-modal{position:relative;width:360px;max-width:calc(100% - 40px);padding:24px;border-radius:14px;background:var(--bg-secondary);border:1px solid var(--divider-color);box-shadow:0 20px 60px #00000040;text-align:center}.character-library-qr-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.character-library-qr-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.character-library-qr-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.character-library-qr-tip{font-size:12px;color:var(--text-secondary);margin-bottom:16px}.character-library-qr-code{display:inline-flex;justify-content:center;align-items:center;padding:12px;background:#fff;border-radius:10px;border:1px solid var(--border-color);margin-bottom:12px}.character-library-qr-code svg{display:block}.character-library-action-btn.sm{padding:5px 9px;font-size:12px;gap:4px}.character-library-action-btn.sm svg{width:12px;height:12px}.spin{animation:libSpin .9s linear infinite}@keyframes libSpin{to{transform:rotate(360deg)}}.character-library-person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;padding:16px;align-content:flex-start}.character-library-person-add-card,.character-library-person-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;aspect-ratio:1 / 1;border-radius:12px;border:1px dashed var(--border-color);background:var(--bg-secondary);cursor:pointer;transition:all .15s ease;padding:12px;text-align:center}.character-library-person-add-card:hover{border-color:var(--primary-color);background:var(--bg-hover)}.character-library-person-add-icon{color:var(--text-secondary)}.character-library-person-add-text{font-size:13px;color:var(--text-secondary)}.character-library-person-card{border-style:solid;background:var(--bg-tertiary);position:relative}.character-library-person-card:hover{border-color:var(--primary-color);transform:translateY(-2px)}.character-library-person-card.selected{border-color:var(--primary-color);background:var(--bg-hover);box-shadow:0 0 0 2px rgba(var(--primary-rgb, 59, 130, 246),.15)}.character-library-person-card-check{position:absolute;top:8px;left:8px;width:18px;height:18px;border-radius:4px;border:1.5px solid var(--border-color);background:var(--bg-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .15s;z-index:2}.character-library-person-card-check:hover{border-color:var(--primary-color)}.character-library-person-card-check.selected{background:var(--primary-color);border-color:var(--primary-color)}.character-library-person-card-delete{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .15s;z-index:2}.character-library-person-card-rename{position:absolute;top:6px;right:32px;width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .15s;z-index:2}.character-library-person-card:hover .character-library-person-card-delete,.character-library-person-card:hover .character-library-person-card-rename{opacity:1}.character-library-person-card-delete:hover{background:#ef44441f;color:var(--error-color, #ef4444)}.character-library-person-card-rename:hover{background:#58a6ff1f;color:var(--primary-color)}.character-library-person-card-icon{color:var(--primary-color);opacity:.85}.character-library-person-card-name{font-size:13px;font-weight:500;color:var(--text-primary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-library-person-detail-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.character-library-person-detail-title{flex:1;font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-library-naming-modal{position:relative;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:28px 32px 24px;width:90%;max-width:380px;box-shadow:0 20px 60px #00000040;text-align:center}.character-library-naming-icon{width:64px;height:64px;border-radius:50%;background:#22c55e1f;color:#22c55e;display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.character-library-naming-title{font-size:15px;font-weight:500;color:var(--text-primary);margin-bottom:18px}.character-library-naming-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;outline:none;margin-bottom:16px}.character-library-naming-input:focus{border-color:var(--primary-color)}.character-library-naming-actions{display:flex;justify-content:center}.character-library-naming-actions .character-library-confirm-btn{min-width:100px}.character-library-history-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:16px;animation:libFadeIn .15s ease-out}.character-library-history-modal{position:relative;width:900px;max-width:calc(100% - 48px);height:80vh;max-height:700px;display:flex;flex-direction:column;background:var(--bg-primary);border:1px solid var(--divider-color);border-radius:16px;box-shadow:0 24px 70px #00000059;overflow:hidden}.character-library-history-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--divider-color);flex-shrink:0}.character-library-history-title{font-size:16px;font-weight:600;color:var(--text-primary)}.character-library-history-subtitle{font-size:12px;color:var(--text-secondary);margin-top:2px}.character-library-history-header-right{display:flex;align-items:center;gap:14px}.character-library-history-body{flex:1;min-height:0;overflow-y:auto;padding:18px 22px}.character-library-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}.character-library-history-card{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg-primary);border:2px solid transparent;cursor:pointer;transition:all .15s}.character-library-history-card:hover{border-color:var(--input-border-focus)}.character-library-history-card.selected{border-color:var(--accent-color, #58a6ff);box-shadow:0 0 0 3px #58a6ff2e}.character-library-history-card img,.character-library-history-card video{width:100%;height:100%;object-fit:cover}.character-library-history-output-audio{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.character-library-history-output-check{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:var(--accent-color, #58a6ff);color:#fff;display:flex;align-items:center;justify-content:center}.character-library-history-output-index{position:absolute;left:4px;bottom:4px;min-width:16px;height:16px;padding:0 4px;background:#0000008c;color:#fff;font-size:10px;border-radius:4px;display:flex;align-items:center;justify-content:center}.character-library-history-loadmore{display:flex;justify-content:center;margin-top:18px}.character-library-history-footer{display:flex;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--divider-color);flex-shrink:0}.character-library-history-footer .character-library-confirm-btn:disabled{opacity:.5;cursor:not-allowed}[data-theme=light] .character-library-history-modal{box-shadow:0 20px 60px #0000002e}.element-annotation-toolbar{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:100;pointer-events:none}.element-annotation-toolbar-inner{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 14px;border-radius:999px;background:var(--accent-blue, #2f7bff);color:#fff;box-shadow:0 6px 20px #2f7bff59;font-size:13px;font-weight:500;-webkit-user-select:none;user-select:none;animation:ea-toolbar-in .2s ease-out}@keyframes ea-toolbar-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.element-annotation-toolbar-inner svg{width:16px;height:16px;flex-shrink:0}.element-annotation-toolbar-hint{font-size:12px;opacity:.85;font-weight:400;white-space:nowrap}.element-annotation-toolbar-back{margin-left:4px;padding:5px 12px;border-radius:999px;border:none;background:#ffffff2e;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.element-annotation-toolbar-back:hover{background:#ffffff4d}.element-annotation-toolbar-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .15s}.element-annotation-toolbar-close:hover{background:#ffffff47}.image-node-annotate-toolbar{display:flex;align-items:center;margin-bottom:8px;min-height:30px}.image-node-annotate-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;background:var(--dialog-bg);border:1px solid var(--node-border);border-radius:6px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .15s ease;flex-shrink:0}.image-node-annotate-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.image-node-annotate-btn.active{background:var(--accent-blue, #2f7bff);border-color:var(--accent-blue, #2f7bff);color:#fff}.image-node-annotations{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px;min-height:0}.image-node-annotation-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#3b82f61f;border:1px solid rgba(59,130,246,.35);border-radius:20px;color:var(--text-primary);font-size:12px;max-width:160px}.image-node-annotation-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-node-annotation-chip-thumb{width:20px;height:20px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#0003}.image-node-annotation-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.image-node-annotation-chip-remove:hover{background:#ef44441f;color:#ef4444}.canvas-node .image-node-card{transition:box-shadow .15s ease}.element-annotation-toolbar~.react-flow__renderer .canvas-node .image-node-card,.element-annotation-toolbar~div .react-flow__renderer .canvas-node .image-node-card{cursor:crosshair!important}.element-mask-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:ea-fade-in .2s ease}@keyframes ea-fade-in{0%{opacity:0}to{opacity:1}}.element-mask-editor-panel{width:min(96vw,1100px);max-height:94vh;background:var(--dialog-bg);border:1px solid var(--node-border);border-radius:14px;box-shadow:0 24px 80px #0000008c;display:flex;flex-direction:column;overflow:hidden}.element-mask-editor-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--node-border);flex-shrink:0}.element-mask-editor-title{font-size:15px;font-weight:600;color:var(--text-primary)}.element-mask-editor-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.element-mask-editor-close:hover{background:#ef44441a;color:#ef4444}.element-mask-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid var(--node-border);flex-shrink:0;flex-wrap:wrap}.element-mask-editor-tools{display:flex;align-items:center;gap:8px}.element-mask-editor-tool{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--node-border);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s ease}.element-mask-editor-tool.active,.element-mask-editor-tool:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.element-mask-editor-tool.active{background:#3b82f61f}.element-mask-editor-brush{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:13px}.element-mask-editor-brush input[type=range]{width:120px}.element-mask-editor-brush-value{min-width:44px;text-align:right;color:var(--text-primary)}.element-mask-editor-canvas-wrap{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto;background:#00000040}.element-mask-editor-display,.element-mask-editor-overlay-canvas{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:100%;max-height:100%;border-radius:6px;box-shadow:0 8px 30px #00000059}.element-mask-editor-overlay-canvas{cursor:crosshair;touch-action:none}.element-mask-editor-loading,.element-mask-editor-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-primary);font-size:14px}.element-mask-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-top:1px solid var(--node-border);flex-shrink:0;flex-wrap:wrap}.element-mask-editor-label{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:13px;flex:1;min-width:0}.element-mask-editor-label input{flex:1;min-width:120px;padding:7px 10px;background:var(--bg-tertiary);border:1px solid var(--node-border);border-radius:6px;color:var(--text-primary);font-size:13px;outline:none}.element-mask-editor-label input:focus{border-color:var(--accent-blue)}.element-mask-editor-actions{display:flex;align-items:center;gap:10px}.element-mask-editor-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;border:1px solid var(--node-border);border-radius:6px;font-size:13px;cursor:pointer;transition:all .15s ease}.element-mask-editor-btn.secondary{background:var(--bg-tertiary);color:var(--text-primary)}.element-mask-editor-btn.secondary:hover{border-color:var(--text-secondary)}.element-mask-editor-btn.primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.element-mask-editor-btn.primary:hover:not(:disabled){filter:brightness(1.08)}.element-mask-editor-btn.primary:disabled{opacity:.55;cursor:not-allowed}.element-mask-editor-btn.ai{background:linear-gradient(135deg,#2f7bff26,#7c4dff2e);border:1px solid rgba(47,123,255,.45);color:#2f7bff;font-weight:500;white-space:nowrap}.element-mask-editor-btn.ai:hover:not(:disabled){background:linear-gradient(135deg,#2f7bff40,#7c4dff47);color:#1f63e6}.element-mask-editor-btn.ai:disabled{opacity:.55;cursor:not-allowed}.element-mask-editor-spin{animation:element-mask-editor-rotate .8s linear infinite}@keyframes element-mask-editor-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.element-mask-editor-detect-loading{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;z-index:6}.image-upload-annotate-footer{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:8px 10px;border-top:1px solid var(--node-border)}.image-upload-annotate-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--node-border);border-radius:6px;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;line-height:1.4;cursor:pointer;transition:all .15s ease}.image-upload-annotate-btn:hover,.image-upload-annotate-btn.active{background:#2f7bffd9;border-color:#2f7bff}.image-node-main-wrap.element-detect-active{cursor:crosshair}.image-node-card.element-annotation-mode-active textarea,.image-node-card.element-annotation-mode-active input,.image-node-card.element-annotation-mode-active select,.image-node-card.element-annotation-mode-active button,.image-node-card.element-annotation-mode-active .image-toolbar-popup,.image-node-card.element-annotation-mode-active .image-node-settings-wrap,.image-node-card.element-annotation-mode-active .image-node-thumb-strip{pointer-events:none!important;opacity:.55;-webkit-user-select:none;user-select:none}.image-node-card.element-annotation-mode-active .node-image-preview,.image-node-card.element-annotation-mode-active .element-detect-hit-area{pointer-events:auto!important;cursor:crosshair}.image-node-card.element-annotation-mode-active .element-detect-mode-switch button,.image-node-card.element-annotation-mode-active .element-detect-confirm,.image-node-card.element-annotation-mode-active .element-detect-reselect,.image-node-card.element-annotation-mode-active .element-detect-label-input{pointer-events:auto!important}.element-detect-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.element-detect-hit-area{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;cursor:crosshair;pointer-events:auto;background:transparent;border-radius:10px;outline:2px dashed rgba(47,123,255,.65);outline-offset:-2px}.element-detect-overlay-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.element-detect-annotated-box{position:absolute;z-index:3;pointer-events:none;border:2px solid rgba(47,123,255,.55);background:#2f7bff1a;border-radius:3px}.element-detect-overlay-wrap .element-detect-hit-area{pointer-events:auto}.element-detect-overlay-wrap.has-result{z-index:999}.element-detect-overlay-wrap.has-result .element-detect-layer{pointer-events:auto}.element-detect-mode-switch{position:absolute;left:50%;bottom:44px;transform:translate(-50%);display:flex;gap:6px;pointer-events:auto;z-index:6}.element-detect-mode-switch button{padding:3px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.35);background:#000000b8;color:#fff;font-size:12px;line-height:1.5;cursor:pointer}.element-detect-mode-switch button.active{background:var(--accent-blue, #2f7bff);border-color:#2f7bff}.element-detect-dropdown-wrap{position:absolute;left:50%;bottom:44px;transform:translate(-50%);z-index:6;pointer-events:auto}.element-detect-dropdown-wrap select{max-width:180px;padding:4px 8px;border:1px solid rgba(255,255,255,.35);border-radius:6px;background:#000000c7;color:#fff;font-size:12px;line-height:1.5;outline:none}.element-detect-dropdown-wrap select option{background:#1a1a1a;color:#fff}.element-detect-loading,.element-detect-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:6px 14px;border-radius:8px;font-size:13px;font-weight:500;pointer-events:auto;box-shadow:0 2px 10px #00000040}.element-detect-loading{background:#000000b8;color:#fff}.element-detect-error{background:#dc2626eb;color:#fff;max-width:90%}.element-detect-box{position:absolute;border:2px dashed var(--accent-blue, #2f7bff);border-radius:4px;box-shadow:0 0 0 1px #ffffff80;pointer-events:none;background:#2f7bff14}.element-detect-label-input{position:absolute;top:-26px;left:-2px;min-width:80px;max-width:160px;padding:2px 6px;border:1px solid var(--accent-blue, #2f7bff);border-radius:4px;background:#000000c7;color:#fff;font-size:12px;pointer-events:auto;outline:none}.element-detect-actions{position:absolute;left:8px;bottom:8px;display:flex;gap:8px;pointer-events:auto}.element-detect-confirm,.element-detect-reselect{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid transparent}.element-detect-confirm{background:var(--accent-blue, #2f7bff);color:#fff}.element-detect-reselect{background:#ffffffe6;color:#333;border-color:#00000026}.content-moderation-modal{width:460px;max-width:92vw;padding:0}.cm-modal-header{display:flex;align-items:center;gap:10px;padding:18px 22px 12px;border-bottom:1px solid var(--border-color, rgba(0,0,0,.08))}.cm-modal-icon{font-size:20px;line-height:1}.cm-modal-title{font-size:16px;font-weight:600;color:var(--text-primary, #1a1a1a)}.cm-modal-body{padding:16px 22px;font-size:14px;line-height:1.7;color:var(--text-secondary, #555)}.cm-modal-body p{margin:0 0 10px}.cm-modal-body strong{color:var(--text-primary, #1a1a1a);font-weight:600}.cm-modal-detail{margin-top:6px;font-size:12px;color:var(--text-muted, #999)}.cm-modal-detail summary{cursor:pointer;-webkit-user-select:none;user-select:none}.cm-modal-detail pre{margin:8px 0 0;max-height:160px;overflow-y:auto;padding:8px 10px;border-radius:8px;background:#0000000a;white-space:pre-wrap;word-break:break-all;font-size:11px;line-height:1.5}.cm-modal-footer{display:flex;justify-content:flex-end;padding:12px 22px 18px}.cm-modal-btn{padding:8px 22px;border:none;border-radius:8px;background:var(--accent-blue, #2f7bff);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s}.cm-modal-btn:hover{opacity:.88}.route-loading{width:100%;height:100%;min-height:120px;display:grid;place-items:center;background:var(--bg-primary)}.route-loading:after{content:"";width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:route-loading-spin .8s linear infinite}@keyframes route-loading-spin{to{transform:rotate(360deg)}}.node-input-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;animation:nodeInputFullscreenIn .2s ease-out}@keyframes nodeInputFullscreenIn{0%{opacity:0}to{opacity:1}}.node-input-fullscreen-dialog{width:1400px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);min-height:75vh;background:var(--dialog-bg, #1a1d24);border:1px solid var(--node-border, rgba(255, 255, 255, .12));border-radius:14px;box-shadow:0 24px 70px #00000073;display:flex;flex-direction:column;overflow:hidden;animation:nodeInputFullscreenDialogIn .25s cubic-bezier(.34,1.56,.64,1)}@keyframes nodeInputFullscreenDialogIn{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.node-input-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--node-border, rgba(255, 255, 255, .08));flex-shrink:0}.node-input-fullscreen-title{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim, #9ca3af);-webkit-user-select:none;user-select:none}.node-input-fullscreen-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--text-dim, #9ca3af);cursor:pointer;transition:all .15s}.node-input-fullscreen-close:hover{background:#ffffff14;border-color:#ffffff1f;color:var(--text-primary, #e8e8e8)}.node-input-fullscreen-body{padding:14px 16px 16px;overflow-y:auto;flex:1;min-height:0}.node-input-fullscreen-body .image-node-dialog,.node-input-fullscreen-body .text-node-dialog,.node-input-fullscreen-body .video-node-dialog,.node-input-fullscreen-body .audio-node-dialog,.node-input-fullscreen-body .model3d-node-dialog{position:static;transform:none;width:100%;box-shadow:none;background:transparent;border:none;padding:0}.node-input-fullscreen-btn{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-dim, #9ca3af);cursor:pointer;transition:all .15s;z-index:5}.node-input-fullscreen-btn:hover{background:#ffffff14;border-color:#ffffff1f;color:var(--text-primary, #e8e8e8)}.node-input-fullscreen-body .node-input-fullscreen-btn{display:none}.node-fullscreen-btn{position:absolute;top:8px;right:8px;z-index:30;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid var(--border-color, rgba(255,255,255,.12));background:var(--bg-secondary, rgba(255,255,255,.03));color:var(--text-secondary, #aaa);cursor:pointer;opacity:.55;transition:opacity .15s,background .15s}.node-fullscreen-btn:hover{opacity:1;background:#6366f11f;color:var(--text-primary, #e0e0e0)}.node-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow:auto}.node-fullscreen-modal{width:min(1400px,98vw);max-height:calc(100vh - 24px);min-height:75vh;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-primary, #14161c);border:1px solid var(--border-color, rgba(255,255,255,.12));border-radius:10px;box-shadow:0 12px 40px #00000080}.node-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border-color, rgba(255,255,255,.1));color:var(--text-primary, #e0e0e0);font-weight:600;font-size:14px}.node-fullscreen-title{flex:1}.node-fullscreen-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-secondary, #aaa);cursor:pointer;font-size:15px}.node-fullscreen-close:hover{background:#ffffff14;color:var(--text-primary, #e0e0e0)}.node-fullscreen-body{padding:14px;overflow-y:auto;min-height:120px}.node-input-fullscreen-body,.node-fullscreen-body{display:flex;flex-direction:column;align-items:stretch}.node-input-fullscreen-body .image-node-input,.node-fullscreen-body .image-node-input,.node-input-fullscreen-body .text-node-input,.node-fullscreen-body .text-node-input,.node-input-fullscreen-body .node-input-textarea,.node-fullscreen-body .node-input-textarea{flex:1 1 auto;width:100%;min-height:55vh;height:auto!important;resize:vertical}.image-node-lower,.text-node-lower,.image-node-lower .image-node-dialog,.text-node-lower .text-node-dialog{opacity:1!important}.layout-header{max-width:1600px;width:100%;margin:0 auto;padding:0 32px;box-sizing:border-box}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar-left{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:16px}.topbar-right{flex:0 0 auto;margin-left:auto;display:flex;align-items:center}@media(max-width:1200px){.layout-header{padding:0 20px}.topbar,.topbar-left{gap:12px}.topbar-project-name{width:110px}.header-actions,.canvas-toolbar-badges{gap:12px}.credits-badge,.storage-badge{padding-right:12px}}@media(max-width:860px){.layout-header{padding:0 12px}.topbar,.topbar-left{gap:8px}.logo{font-size:18px;gap:8px}.topbar-project-name{width:90px;padding:4px 10px}.header-actions,.canvas-toolbar-badges{gap:8px}.membership-link span,.username-text{display:none}}.canvas-reference-selection-bar{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:100;pointer-events:none}.canvas-reference-selection-inner{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 14px;border-radius:999px;background:var(--accent-blue, #2f7bff);color:#fff;box-shadow:0 6px 20px #2f7bff59;font-size:13px;font-weight:500;-webkit-user-select:none;user-select:none;animation:canvasRefBarIn .2s ease-out}@keyframes canvasRefBarIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.canvas-reference-selection-inner svg{width:16px;height:16px;flex-shrink:0}.canvas-reference-selection-hint{font-size:12px;opacity:.85;font-weight:400;white-space:nowrap}.canvas-reference-selection-back{margin-left:4px;padding:5px 12px;border-radius:999px;border:none;background:#ffffff2e;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.canvas-reference-selection-back:hover{background:#ffffff4d}.canvas-reference-selection-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;cursor:pointer;transition:background .15s}.canvas-reference-selection-close:hover{background:#ffffff47}.canvas-page:has(.canvas-reference-selection-bar) .react-flow-canvas{cursor:crosshair}.image-thumb-add.active{border-color:var(--accent-blue, #2f7bff);background:#2f7bff14;color:var(--accent-blue, #2f7bff)}.canvas-toolbar-compact{position:fixed;top:14px;left:14px;z-index:60}.canvas-toolbar-compact-toggle{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;border:1px solid var(--border-color, rgba(255,255,255,.12));background:var(--bg-secondary, #1a1d24);color:var(--text-primary, #e8e8e8);cursor:pointer;box-shadow:0 6px 18px #00000052}.canvas-toolbar-compact-toggle:active{transform:scale(.96)}.canvas-toolbar-compact-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:61;background:transparent}.canvas-toolbar-compact-menu{position:fixed;top:68px;left:14px;z-index:62;width:200px;max-width:calc(100vw - 28px);padding:8px;border-radius:14px;border:1px solid var(--border-color, rgba(255,255,255,.12));background:var(--bg-secondary, #1a1d24);box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;gap:4px;animation:agentSplashIn .18s ease-out}.canvas-toolbar-compact-item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:none;border-radius:10px;background:transparent;color:var(--text-primary, #e8e8e8);font-size:14px;cursor:pointer;text-align:left}.canvas-toolbar-compact-item:active{background:#ffffff14}.canvas-toolbar-compact-item.active{background:#2f7bff24;color:var(--accent-blue, #2f7bff)}.canvas-toolbar-compact-icon{display:flex;align-items:center;justify-content:center;width:22px;flex-shrink:0}.canvas-toolbar-compact-label{flex:1}@media(hover:none)and (pointer:coarse){.node-handle{width:30px!important;height:30px!important}.react-flow__node.selected .node-delete-btn,.canvas-node.selected .node-delete-btn{opacity:1}}.mobile-canvas-home{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg-primary, #14161c);z-index:50}.mobile-home-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 12px;border-bottom:1px solid var(--border-color, rgba(255,255,255,.1));background:var(--bg-secondary, #1a1d24)}.mobile-home-logo{font-size:16px;font-weight:700;color:var(--text-primary, #e8e8e8);letter-spacing:.5px}.mobile-home-actions{display:flex;gap:6px}.mobile-home-action{display:flex;align-items:center;gap:4px;padding:7px 10px;border:1px solid var(--border-color, rgba(255,255,255,.12));border-radius:9px;background:transparent;color:var(--text-secondary, #aaa);font-size:13px;cursor:pointer}.mobile-home-action:active{background:#ffffff14;color:var(--text-primary, #e8e8e8)}.mobile-home-body{flex:1;min-height:0;position:relative}@media(max-width:640px){.mobile-canvas-home{height:100dvh;height:-webkit-fill-available}.mobile-home-header{flex-shrink:0;position:static;top:auto;left:auto;right:auto;z-index:auto;height:52px}.mobile-home-body{overflow:hidden;padding:0}.agent-panel{position:static!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;width:100%!important;max-width:100%!important;height:100%!important;border:none!important;box-shadow:none!important;border-radius:0!important;animation:none!important}.agent-toggle-btn{display:flex!important}.agent-toggle-btn-open{display:none!important}.agent-toggle-btn-closed{position:fixed!important;right:14px!important;bottom:18px!important;top:auto!important;left:auto!important;transform:none!important;flex-direction:row!important;gap:6px!important;padding:12px 16px!important;width:auto!important;height:auto!important;border-radius:24px!important;background:var(--accent-blue, #2f7bff)!important;color:#fff!important;border-color:transparent!important;font-size:14px!important;font-weight:600!important;box-shadow:0 6px 20px #2f7bff73!important}.agent-toggle-btn-closed:hover{transform:none!important;animation:none!important}.agent-panel-header{padding:8px 12px!important}.mobile-canvas-home input,.mobile-canvas-home textarea,.mobile-canvas-home select,.agent-panel input,.agent-panel textarea,.agent-panel select{font-size:16px!important}.mobile-canvas-home{touch-action:manipulation}}.agent-session-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:320;background:#00000073;display:flex;justify-content:flex-end}.agent-session-drawer{width:360px;max-width:86vw;height:100%;background:var(--bg-primary, #fff);display:flex;flex-direction:column;box-shadow:-8px 0 24px #0000002e;animation:agent-drawer-in .18s ease}@keyframes agent-drawer-in{0%{transform:translate(20px);opacity:.6}to{transform:none;opacity:1}}.agent-session-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-color, #eee);font-weight:600;font-size:15px;color:var(--text-primary)}.agent-session-drawer-list{flex:1;overflow-y:auto;padding:8px}.agent-session-empty{padding:28px 16px;text-align:center;color:var(--text-secondary, #999);font-size:13px}.agent-session-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;cursor:pointer;border:1px solid transparent}.agent-session-item:hover{background:var(--bg-card, #f5f6f8)}.agent-session-item.active{background:var(--accent-blue-soft, #eaf2ff);border-color:var(--accent-blue, #2f7bff)}.agent-session-item-main{flex:1;min-width:0}.agent-session-item-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-session-item-preview{font-size:12px;color:var(--text-secondary, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.agent-session-item-time{font-size:11px;color:var(--text-tertiary, #aaa);margin-top:3px}.agent-session-del{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--text-secondary, #999);padding:6px;border-radius:8px}.agent-session-del:hover{background:#ffe9e9;color:#e5484d}.agent-session-drawer-footer{padding:12px 16px;border-top:1px solid var(--border-color, #eee)}.agent-session-drawer-footer .agent-btn-primary{width:100%}@media(max-width:640px){.agent-session-drawer-overlay{justify-content:center;align-items:flex-end}.agent-session-drawer{width:100%;max-width:100%;height:78vh;border-radius:16px 16px 0 0}.mobile-home-menu-wrap{position:relative}.mobile-home-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:209;background:transparent}.mobile-home-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:168px;z-index:220;background:var(--bg-secondary, #1f232c);border:1px solid var(--border-color, rgba(255,255,255,.12));border-radius:12px;box-shadow:0 8px 24px #00000059;padding:6px;animation:mobile-menu-in .14s ease-out}@keyframes mobile-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mobile-home-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;color:var(--text-primary, #e8e8e8);font-size:14px;text-align:left;border-radius:8px}.mobile-home-menu-item:active{background:#ffffff14}.mobile-home-action--icon{padding:7px 9px;min-width:38px;justify-content:center}}.scene-audio-ref-row{align-items:center}.scene-audio-ref-caption{flex:0 0 auto;font-size:11px;color:var(--text-muted, #8a8a9a);margin-right:4px;white-space:nowrap;padding-left:2px}.save-status-hint{display:inline-flex;align-items:center;gap:3px;margin-left:10px;font-size:11px;line-height:1;color:var(--text-tertiary, #8a8a93);white-space:nowrap;-webkit-user-select:none;user-select:none;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;transition:color .2s ease}.save-status-hint--error{color:#ef4444}.save-status-spin{animation:save-status-spin .9s linear infinite;flex-shrink:0}@keyframes save-status-spin{to{transform:rotate(360deg)}}.react-flow__edges{z-index:0}.react-flow__node{z-index:1}.react-flow__node.selected{z-index:2}@keyframes edgeDashDraw{to{stroke-dashoffset:-10}}.edge-dash-anim{animation:edgeDashDraw .5s linear infinite}
