.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--bg: #141414;--bg-panel: #1a1a1a;--bg-card: #262626;--bg-card-hover: #2e2e2e;--bg-input: #1e1e1e;--bg-ctrl: rgba(38,38,38,.8);--border: #363636;--border-soft: #2a2a2a;--border-node: #a8a8a8;--accent: #3b82f6;--accent-glow: rgba(59,130,246,.35);--accent-soft: rgba(59,130,246,.12);--text: #f7f7f7;--text-dim: #919191;--text-faint: #5c5c5c;--ok: #10b981;--err: #ef4444;--radius-card: 12px;--radius-ctrl: 8px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Inter,Microsoft YaHei,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}.topbar{position:fixed;top:0;left:0;right:0;height:52px;z-index:100;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--bg);border-bottom:1px solid var(--border-soft)}.topbar .logo{display:flex;align-items:center;gap:7px;font-weight:600;font-size:15px;letter-spacing:.02em}.topbar .logo .mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:grid;place-items:center;font-size:12px}.projname-input{background:transparent;border:1px solid transparent;border-radius:var(--radius-ctrl);color:var(--text);font-size:14px;padding:6px 10px;width:150px;outline:none;transition:all .15s}.projname-input:hover{background:#ffffff0d}.projname-input:focus{border-color:var(--border);background:var(--bg-input)}.tabs{display:flex;gap:2px;margin-left:6px}.tabs button{background:transparent;border:none;color:var(--text-dim);padding:6px 13px;border-radius:var(--radius-ctrl);cursor:pointer;font-size:13.5px;transition:all .15s}.tabs button:hover{color:var(--text);background:#ffffff0f}.tabs button.active{color:var(--text);background:#ffffff1a;font-weight:500}.spacer{flex:1}.topbar .status{font-size:12.5px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.topbar .status.ok:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok)}.topbar .status.err:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--err)}.tbtn{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:7px 14px;border-radius:9999px;cursor:pointer;font-size:13px;transition:all .15s;white-space:nowrap}.tbtn:hover{background:#333;border-color:#4a4a4a}.tbtn.square{border-radius:var(--radius-ctrl)}.tbtn.primary{background:var(--text);border-color:var(--text);color:#141414;font-weight:500}.tbtn.primary:hover{background:#fff;box-shadow:0 0 20px #ffffff26}.leftbar{position:fixed;left:12px;top:64px;z-index:90;display:flex;flex-direction:column;gap:2px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:5px}.leftbar button{width:42px;height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;border-radius:var(--radius-ctrl);color:var(--text-dim);cursor:pointer;transition:all .15s}.leftbar button:hover{background:#ffffff14;color:var(--text)}.leftbar button.active{background:#ffffff1f;color:var(--text)}.leftbar button .ico{font-size:16px;line-height:1}.leftbar button .lbl{font-size:9.5px;line-height:1}.leftbar .divider{height:1px;background:var(--border);margin:4px 7px}.rightbar{position:fixed;right:12px;bottom:152px;z-index:90;display:flex;flex-direction:column;gap:2px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);padding:5px}.rightbar button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-ctrl);color:var(--text-dim);cursor:pointer;font-size:15px;transition:all .15s}.rightbar button:hover{background:#ffffff14;color:var(--text)}.rightbar button.active{color:var(--accent);background:var(--accent-soft)}.empty-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:5}.empty-hint h2{font-size:15px;color:var(--text-dim);font-weight:400;margin-bottom:18px}.empty-hint .quick{display:flex;gap:10px;pointer-events:auto}.empty-hint .quick button{background:transparent;border:1px solid var(--border);color:var(--text);padding:12px 20px;border-radius:var(--radius-ctrl);cursor:pointer;font-size:13.5px;transition:all .18s;display:flex;flex-direction:column;align-items:center;gap:7px}.empty-hint .quick button:hover{background:#ffffff12;border-color:#555;transform:translateY(-2px)}.empty-hint .quick button .ico{font-size:20px}.nc-header{display:flex;align-items:center;gap:6px;padding:10px 14px;cursor:move}.nc-header .ico{font-size:14px;opacity:.9}.nc-header .title{font-size:13px;font-weight:400;flex:1;color:var(--text-dim)}.nc-header .badge{font-size:11px;padding:2px 8px;border-radius:9999px;background:#ffffff14;color:var(--text-dim)}.nc-header .badge.run{background:var(--accent-soft);color:#7ab0ff}.nc-header .badge.ok{background:#10b98126;color:#34d399}.nc-header .del{width:22px;height:22px;line-height:22px;text-align:center;border-radius:9999px;font-size:12px;color:var(--text-faint);cursor:pointer;transition:all .15s;flex:0 0 auto;opacity:0}.node-card:hover .nc-header .del{opacity:1}.nc-header .del:hover{background:#ef44442e;color:var(--err)}.nc-body{padding:2px 14px 14px;display:flex;flex-direction:column;gap:10px}.nc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:150px;gap:10px;color:var(--text-faint);font-size:13px}.nc-empty .big{font-size:44px;opacity:.35}.nc-field{display:flex;flex-direction:column;gap:5px}.nc-field label{font-size:13px;color:var(--text-dim)}.nc-row{display:flex;gap:8px}.nc-row .nc-field{flex:1}.nc-select,.nc-input,.nc-textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-ctrl);color:var(--text);font-size:14px;padding:8px 12px;outline:none;transition:border-color .15s;font-family:inherit;width:100%}.nc-select:focus,.nc-input:focus,.nc-textarea:focus{border-color:#5a5a5a}.nc-textarea{resize:vertical;min-height:80px;line-height:1.55}.nc-select{cursor:pointer;height:36px}.nc-chips{display:flex;flex-wrap:wrap;gap:2px;margin:0 0 2px}.nc-chip{background:transparent;border:none;color:var(--text);font-size:14px;padding:8px 12px;border-radius:var(--radius-ctrl);cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;gap:6px;height:36px}.nc-chip:hover{background:#ffffff12}.nc-tools{display:flex;flex-wrap:wrap;gap:2px}.nc-tool{background:transparent;border:none;color:var(--text-dim);font-size:13px;padding:6px 9px;border-radius:var(--radius-ctrl);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:5px}.nc-tool:hover{background:#ffffff12;color:var(--text)}.nc-run{background:var(--text);border:none;border-radius:var(--radius-ctrl);color:#141414;font-size:14px;font-weight:500;padding:9px;cursor:pointer;transition:all .15s;height:36px}.nc-run:hover:not(:disabled){background:#fff;box-shadow:0 0 16px #ffffff1f}.nc-run:disabled{opacity:.45;cursor:not-allowed}.nc-feature-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-dim)}.nc-adv{font-size:12px;color:var(--text-dim);cursor:pointer}.nc-result{border-radius:var(--radius-ctrl);overflow:hidden;font-size:12px;color:var(--text-dim)}.nc-result img,.nc-result video{width:100%;display:block;border-radius:var(--radius-ctrl)}.nc-result audio{width:100%}.nc-result .placeholder{border:1px dashed #3a3a3a;border-radius:var(--radius-ctrl);padding:22px;text-align:center;color:var(--text-faint);font-size:12px}.nc-msg{padding:7px 10px;border-radius:6px;font-size:12.5px}.nc-msg.ok{background:#10b9811f;color:#34d399}.nc-msg.err{background:#ef44441f;color:#f87171}.nc-msg.info{background:#ffffff0f;color:var(--text-dim)}.node-shell{position:relative}.node-titlebar{display:flex;align-items:center;gap:4px;height:24px;margin-bottom:4px;padding:0;color:var(--text-dim);font-size:13px;cursor:pointer}.node-titlebar .nt-icon{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;font-size:12px;opacity:.85}.node-titlebar .nt-text{font-size:13px;color:var(--text-dim)}.node-titlebar .nt-badge{font-size:11px;padding:1px 7px;border-radius:9999px;background:#ffffff14;color:var(--text-dim);margin-left:4px}.node-titlebar .nt-badge.ok{background:#10b98126;color:#34d399}.node-titlebar .nt-del{margin-left:auto;margin-right:-4px;width:20px;height:20px;line-height:20px;text-align:center;border-radius:9999px;font-size:11px;color:var(--text-faint);cursor:pointer;transition:all .15s;opacity:0}.node-shell:hover .nt-del{opacity:1}.node-titlebar .nt-del:hover{background:#ef44442e;color:var(--err)}.node-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:100%;box-sizing:border-box;overflow:visible;transition:border-color .15s,box-shadow .15s;cursor:pointer}.node-shell.is-selected .node-card{border-color:#8ab4f8bf;box-shadow:0 0 0 1px #8ab4f859,0 10px 30px #00000080}.node-shell:hover .node-card{border-color:#4a4a4a}.node-card:focus-within{cursor:default}.node-card-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.node-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:28px 0}.node-art{width:64px;height:64px;margin-bottom:16px;display:grid;place-items:center;font-size:40px;opacity:.28;filter:grayscale(1)}.node-content{width:100%}.quick-label{font-size:14px;color:var(--text-dim);margin-bottom:8px}.quick-list{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.quick-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:8px 12px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:14px;cursor:pointer;transition:background .15s;text-align:left}.quick-btn:hover{background:#ffffff12}.quick-btn .qb-icon{font-size:12px;opacity:.7}.quick-btn .qb-label{font-size:14px}.card-textarea{cursor:text}.node-result-view{width:100%;border-radius:8px;overflow:hidden}.node-result-view img,.node-result-view video{width:100%;display:block;border-radius:8px}.node-result-view audio{width:100%}.node-panel{position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 16px);width:660px;max-width:90vw;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:8px;display:flex;flex-direction:column;gap:8px;z-index:40;box-shadow:0 18px 50px #0009;animation:panelIn .14s ease-out;cursor:default}@keyframes panelIn{0%{opacity:0;transform:translate(-50%) translateY(-6px) scale(.99)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.panel-tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0 0 4px}.pt-btn{height:26px;padding:4px 8px;border:none;border-radius:9999px;background:#ffffff0d;color:var(--text-dim);font-size:12px;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center}.pt-btn:hover:not(:disabled){background:#ffffff1a;color:var(--text)}.pt-btn:disabled{opacity:.4;cursor:not-allowed}.panel-textarea{min-height:96px!important;border-radius:12px!important;font-size:14px!important;padding:8px!important;background:transparent!important;border:none!important;resize:vertical}.panel-textarea:focus{background:#ffffff08!important}.panel-textarea::placeholder{color:#525252}.panel-footer{display:flex;align-items:center;gap:4px}.pf-pick{height:32px;padding:4px 20px 4px 8px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:13px;cursor:pointer;outline:none;max-width:200px;transition:background .15s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M2 4l3 3 3-3' fill='none' stroke='%23919191' stroke-width='1.2'/></svg>");background-repeat:no-repeat;background-position:right 6px center}.pf-pick:hover{background-color:#ffffff12}.pf-pick option{background:#262626;color:#f7f7f7}.pf-summary{font-size:13px;color:var(--text-dim);padding:0 6px;white-space:nowrap}.pf-credits{font-size:13px;color:var(--text-dim);white-space:nowrap}.pf-spacer{flex:1}.pf-translate{height:32px;padding:4px 10px;border:none;border-radius:8px;background:#ffffff0d;color:var(--text-dim);font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.pf-translate:hover:not(:disabled){background:#ffffff1a;color:var(--text)}.pf-translate:disabled{opacity:.5;cursor:not-allowed}.pf-run{height:32px;padding:0 18px;border:none;border-radius:8px;background:var(--text);color:#141414;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.pf-run:hover:not(:disabled){background:#fff;box-shadow:0 0 16px #ffffff1f}.pf-run:disabled{opacity:.45;cursor:not-allowed}.react-flow__handle{width:12px;height:12px;border-radius:50%;background:#a8a8a8;border:2px solid var(--bg-card);transition:background .15s,transform .15s,opacity .15s;opacity:0}.react-flow__handle-left{left:calc(-1 * var(--handle-inset, 6px))!important;right:auto!important;transform:translate(-50%,-50%)!important}.react-flow__handle-right{right:calc(-1 * var(--handle-inset, 6px))!important;left:auto!important;transform:translate(50%,-50%)!important}.node-shell:hover .react-flow__handle,.node-shell.is-selected .react-flow__handle,.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle{opacity:1}.react-flow__handle:hover{background:#fff}.react-flow__handle-left:hover{transform:translate(-50%,-50%) scale(1.25)!important}.react-flow__handle-right:hover{transform:translate(50%,-50%) scale(1.25)!important}.react-flow__edge-path{stroke:#6b6b6b;stroke-width:1.6}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke:#a8a8a8;stroke-width:2.2}.react-flow__attribution,.react-flow__controls{display:none}.panel{position:fixed;z-index:95;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 12px 44px #000000a6}.panel-add{left:66px;top:64px;width:260px;padding:9px;display:grid;grid-template-columns:1fr 1fr;gap:6px;animation:popIn .12s ease-out}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.panel-add button{background:transparent;border:1px solid var(--border);color:var(--text);padding:13px 8px;border-radius:var(--radius-ctrl);cursor:pointer;font-size:12.5px;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:6px}.panel-add button:hover{background:#ffffff12;border-color:#555}.panel-add button .ico{font-size:19px}.panel-title{grid-column:1/-1;font-size:12px;color:var(--text-dim);padding:2px 4px;margin-bottom:2px}.minimap-wrap{position:fixed;right:12px;bottom:12px;z-index:90}.minimap-wrap.hidden{display:none}.react-flow__minimap{background:var(--bg-card)!important;border:1px solid var(--border);border-radius:var(--radius-card)}.react-flow__minimap-mask{fill:#141414b8}.nc-textarea,.node-panel,.nc-select,.pf-pick,.panel-textarea{pointer-events:auto}.nc-textarea{user-select:text;-webkit-user-select:text;cursor:text}.node-panel textarea,.node-panel input,.node-panel select{cursor:auto}.ctxmenu{position:fixed;z-index:200;min-width:186px;padding:5px;background:#262626;border:1px solid #363636;border-radius:10px;box-shadow:0 12px 44px #000000b3}.ctx-item{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:none;border-radius:7px;color:#f7f7f7;font-size:13px;padding:8px 10px;cursor:pointer;text-align:left;transition:background .12s}.ctx-item:hover:not(:disabled){background:#ffffff14}.ctx-item:disabled{opacity:.38;cursor:not-allowed}.ctx-ico{width:15px;text-align:center;font-size:13px}.ctx-hint{margin-left:auto;font-size:11px;color:#6b6b6b}.ctx-sep{height:1px;background:#363636;margin:4px 6px}.shortcuts-panel{right:12px;top:64px;width:300px;padding:12px}.sp-head{display:flex;align-items:center;justify-content:space-between;font-size:13.5px;font-weight:500;margin-bottom:10px}.sp-close{cursor:pointer;color:#6b6b6b;font-size:12px}.sp-close:hover{color:#f7f7f7}.sp-list{display:flex;flex-direction:column;gap:7px;max-height:60vh;overflow-y:auto}.sp-row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:#919191}.sp-row kbd{background:#1e1e1e;border:1px solid #363636;border-radius:5px;padding:2px 7px;font-size:11.5px;color:#d0d0d0;font-family:inherit}.script-panel{left:66px;top:64px;width:380px;padding:14px}.script-body{display:flex;flex-direction:column;gap:9px}.script-body label{font-size:12px;color:#919191}.script-body textarea,.script-input{background:#1e1e1e;border:1px solid #363636;border-radius:8px;color:#f7f7f7;font-size:13px;padding:9px 10px;outline:none;font-family:inherit;width:100%}.script-body textarea{min-height:120px;resize:vertical;line-height:1.55}.script-body textarea:focus,.script-input:focus{border-color:#5a5a5a}.script-row{display:flex;gap:8px}.script-field{flex:1;display:flex;flex-direction:column;gap:5px}.script-field select{background:#1e1e1e;border:1px solid #363636;border-radius:8px;color:#f7f7f7;font-size:13px;padding:8px 10px;outline:none;cursor:pointer}.script-run{background:#f7f7f7;border:none;border-radius:8px;color:#141414;font-size:13px;font-weight:500;padding:10px;cursor:pointer;margin-top:3px;transition:all .15s}.script-run:hover:not(:disabled){background:#fff}.script-run:disabled{opacity:.45;cursor:not-allowed}.script-note{font-size:11.5px;color:#6b6b6b;text-align:center}.react-flow__selection{background:#3b82f614;border:1px solid #3b82f6}.react-flow__node-group,.group-node{background:#3b82f60d;border:1.5px dashed #3b82f6;border-radius:14px;padding:22px 12px 12px;min-width:200px;min-height:120px}.group-node .group-title{position:absolute;top:6px;left:12px;font-size:12px;color:#7ab0ff;font-weight:500}.statusbar{position:fixed;left:50%;bottom:14px;transform:translate(-50%);z-index:92;display:flex;align-items:center;gap:10px;background:#262626;border:1px solid #363636;border-radius:9999px;padding:7px 16px;font-size:12.5px;color:#919191;box-shadow:0 8px 28px #00000080}.statusbar .dot{width:7px;height:7px;border-radius:50%;background:#919191}.statusbar.run .dot{background:#3b82f6;animation:pulse 1.2s infinite}.statusbar.ok .dot{background:#10b981}.statusbar.err .dot{background:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.asset-library{left:66px;top:64px;width:460px;max-height:78vh;padding:12px;display:flex;flex-direction:column}.al-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:8px}.al-search{flex:1;background:#1e1e1e;border:1px solid #363636;border-radius:8px;color:#f7f7f7;font-size:13px;padding:7px 10px;outline:none}.al-search:focus{border-color:#4a4a4a}.al-upload,.al-refresh{background:#3b82f61f;border:1px solid rgba(59,130,246,.35);color:#7ab0ff;border-radius:8px;font-size:12.5px;padding:7px 10px;cursor:pointer;transition:all .15s;white-space:nowrap}.al-upload:hover,.al-refresh:hover{background:#3b82f63d;color:#fff}.al-refresh{padding:7px 9px;background:#ffffff0d;border-color:#363636;color:#919191}.al-refresh:hover{background:#ffffff1a;color:#d0d0d0}.al-filters{display:flex;gap:5px;margin-bottom:8px}.al-filters button{background:transparent;border:1px solid #363636;color:#919191;border-radius:9999px;font-size:12px;padding:4px 12px;cursor:pointer;transition:all .15s}.al-filters button:hover{border-color:#555;color:#d0d0d0}.al-filters button.active{background:#3b82f626;border-color:#3b82f680;color:#7ab0ff}.al-body{flex:1;overflow-y:auto;min-height:120px}.al-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:40px 0;color:#5c5c5c;font-size:13px;text-align:center}.al-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.al-item{border:1px solid #363636;border-radius:8px;overflow:hidden;cursor:pointer;background:#1e1e1e;transition:all .15s;position:relative}.al-item:hover{border-color:#3b82f699;box-shadow:0 0 0 1px #3b82f64d}.al-thumb{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;background:#141414;overflow:hidden}.al-thumb img,.al-thumb video{width:100%;height:100%;object-fit:cover;display:block}.al-audio-ico{font-size:30px;opacity:.5}.al-meta{display:flex;align-items:center;justify-content:space-between;padding:4px 6px}.al-type{font-size:10px;padding:1px 6px;border-radius:4px;line-height:1.5;background:#3b82f626;color:#7ab0ff}.al-type.video{background:#a855f726;color:#c084fc}.al-type.audio{background:#10b98126;color:#34d399}.al-size{font-size:10px;color:#5c5c5c}.al-foot{margin-top:8px;padding-top:8px;border-top:1px solid #2a2a2a;font-size:11.5px;color:#5c5c5c;text-align:center}.director-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;flex-direction:column;background:#0f0f0f;color:#f7f7f7}.director-top,.director-bottom{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#1a1a1a;border-bottom:1px solid #2c2c2c;flex:none}.director-bottom{border-bottom:none;border-top:1px solid #2c2c2c}.dn-title{font-size:15px;font-weight:600}.dn-status{font-size:12px;color:#7ab0ff;margin-left:8px}.dn-spacer{flex:1}.dn-btn{background:#ffffff0f;border:1px solid #363636;color:#d0d0d0;border-radius:8px;font-size:12.5px;padding:7px 14px;cursor:pointer;transition:all .15s}.dn-btn:hover:not(:disabled){background:#ffffff1f;color:#fff}.dn-btn:disabled{opacity:.4;cursor:not-allowed}.dn-btn.primary{background:#3b82f62e;border-color:#3b82f680;color:#7ab0ff}.dn-btn.primary:hover:not(:disabled){background:#3b82f64d;color:#fff}.director-main{flex:1;display:flex;min-height:0}.director-left{width:280px;flex:none;display:flex;flex-direction:column;background:#161616;border-right:1px solid #2c2c2c}.dn-tabs{display:flex;border-bottom:1px solid #2c2c2c}.dn-tabs button{flex:1;background:transparent;border:none;color:#919191;font-size:13px;padding:11px 0;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.dn-tabs button:hover{color:#d0d0d0}.dn-tabs button.active{color:#7ab0ff;border-bottom-color:#3b82f6}.dn-body{flex:1;overflow-y:auto;padding:12px}.dn-sec-title{font-size:12px;color:#6b6b6b;margin:14px 0 8px}.dn-sec-title:first-child{margin-top:0}.dn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.dn-prop{display:flex;flex-direction:column;align-items:center;gap:4px;background:#1e1e1e;border:1px solid #2f2f2f;border-radius:8px;padding:9px 4px;cursor:pointer;transition:all .15s;color:silver}.dn-prop:hover{border-color:#3b82f699;background:#242424}.dn-prop-ico{font-size:19px}.dn-prop-lbl{font-size:11px}.dn-list{display:flex;flex-direction:column;gap:5px}.dn-empty{font-size:12px;color:#5c5c5c;padding:14px 4px;text-align:center}.dn-item{display:flex;align-items:center;gap:4px;background:#1e1e1e;border:1px solid #2f2f2f;border-radius:7px;padding:6px 8px}.dn-item-name{flex:1;font-size:12.5px;color:#d0d0d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dn-mini{width:22px;height:22px;flex:none;background:#ffffff0d;border:1px solid #363636;border-radius:5px;color:#a0a0a0;font-size:12px;cursor:pointer;transition:all .12s;line-height:1}.dn-mini:hover{background:#ffffff1f;color:#fff}.dn-mini.del:hover{background:#ef444440;border-color:#ef444480;color:#ff8080}.dn-cams{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.dn-cam{background:#1e1e1e;border:1px solid #2f2f2f;border-radius:7px;color:silver;font-size:12px;padding:9px 6px;cursor:pointer;transition:all .15s}.dn-cam:hover{border-color:#3b82f699}.dn-cam.active{background:#3b82f62e;border-color:#3b82f699;color:#7ab0ff}.dn-shots{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.dn-shot{position:relative;border:1px solid #2f2f2f;border-radius:7px;overflow:hidden;background:#000}.dn-shot img{width:100%;display:block}.dn-shot-cap{position:absolute;left:0;right:0;bottom:0;font-size:10px;padding:3px 5px;background:linear-gradient(transparent,#000000d9);color:#ddd;text-align:center}.director-view{flex:1;position:relative;min-width:0;background:#141414}.dn-viewport{position:absolute;top:0;right:0;bottom:0;left:0}.dn-viewport canvas{display:block;width:100%;height:100%}.dn-hud{position:absolute;left:14px;top:12px;display:flex;flex-direction:column;gap:4px;pointer-events:none}.dn-cur{font-size:13px;color:#fff;background:#0000008c;padding:5px 10px;border-radius:7px;align-self:flex-start}.dn-hint{font-size:11px;color:#919191;background:#00000073;padding:3px 8px;border-radius:6px;align-self:flex-start}.dn-actions{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;gap:10px}.dn-act{background:#1e1e1eeb;border:1px solid #3a3a3a;color:#e0e0e0;border-radius:9999px;font-size:13px;padding:10px 20px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .15s}.dn-act:hover:not(:disabled){background:#323232f2;border-color:#555}.dn-act:disabled{opacity:.5;cursor:not-allowed}.dn-act.primary{background:#3b82f6e6;border-color:#3b82f6;color:#fff}.dn-act.primary:hover:not(:disabled){background:#3b82f6}.dn-count{font-size:12.5px;color:#919191}.dn-node-info{font-size:12.5px;color:#919191;padding:10px 4px;line-height:1.6}.director-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px}.director-thumbs img{width:100%;border-radius:6px;display:block}.dt-more{grid-column:1/-1;text-align:center;font-size:12px;color:#919191}.dn-gl-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px;text-align:center}.dn-gl-ico{font-size:46px;opacity:.6}.dn-gl-title{font-size:16px;font-weight:600;color:#e0e0e0}.dn-gl-desc{font-size:13px;color:#919191;max-width:440px;line-height:1.7}.dn-xform-hint{font-size:11.5px;color:#6b6b6b;padding:2px 0 10px;line-height:1.5}.dn-row{display:flex;align-items:center;gap:9px;margin-bottom:10px}.dn-ax{width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:5px;font-size:12px;font-weight:700;color:#fff;background:#444}.dn-ax-x{background:#c0392b}.dn-ax-y{background:#27904f}.dn-ax-z{background:#2a6fdb}.dn-row input[type=range]{flex:1;accent-color:#3b82f6;height:4px}.dn-val{width:44px;flex:none;text-align:right;font-size:12px;color:#b0b0b0;font-variant-numeric:tabular-nums}.dn-quick-row{display:flex;gap:8px;margin-top:14px}.dn-item-btn{justify-content:flex-start;text-align:left}.dn-moves{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.dn-move{display:flex;align-items:center;gap:6px;background:#1e1e1e;border:1px solid #2f2f2f;border-radius:7px;color:silver;font-size:12px;padding:8px;cursor:pointer;transition:all .15s}.dn-move:hover{border-color:#3b82f699}.dn-move.active{background:#3b82f62e;border-color:#3b82f699;color:#7ab0ff}.dn-move-ico{font-size:14px}.dn-move-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dn-progress{height:6px;background:#2a2a2a;border-radius:3px;overflow:hidden;margin:8px 0}.dn-progress-bar{height:100%;background:#3b82f6;transition:width .1s linear}.dn-ai-modes{display:flex;gap:6px;margin-bottom:8px}.dn-ai-modes .dn-cam{flex:1}.dn-ai-input{width:100%;box-sizing:border-box;background:#1a1a1a;border:1px solid #2f2f2f;border-radius:7px;color:#d0d0d0;font-size:12px;padding:8px;resize:vertical;font-family:inherit;outline:none}.dn-ai-input:focus{border-color:#3b82f699}.dn-ai-card{background:#1e1e1e;border:1px solid #2f2f2f;border-radius:8px;padding:10px;margin-top:10px}.dn-ai-sum{font-size:12px;color:#d0d0d0;margin-bottom:8px;line-height:1.5}.dn-ai-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.dn-tag{background:#3b82f629;border:1px solid rgba(59,130,246,.4);color:#7ab0ff;font-size:11px;padding:2px 7px;border-radius:5px}.dn-ai-props{font-size:11px;color:#9a9a9a;margin-bottom:6px;line-height:1.6}.dn-ai-tips{font-size:11px;color:#88a;margin-bottom:8px;line-height:1.6}.dn-ai-apply{width:100%}.dn-ai-prompt{font-size:12px;color:#d0d0d0;line-height:1.7;white-space:pre-wrap;margin-bottom:8px;max-height:220px;overflow-y:auto}.dn-shot-row{border-bottom:1px solid #2a2a2a;padding:8px 0}.dn-shot-row:last-child{border-bottom:none}.dn-shot-hd{font-size:12px;color:#d0d0d0;font-weight:600;margin-bottom:3px}.dn-shot-meta{font-size:11px;color:#7ab0ff;margin-bottom:4px}.dn-shot-desc{font-size:11px;color:#9a9a9a;line-height:1.6;margin-bottom:6px}.dn-tl{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}.dn-tl-seg{display:flex;align-items:center;gap:6px;background:#1e1e1e;border:1px solid #303030;border-radius:8px;padding:5px 8px}.dn-tl-idx{flex:0 0 18px;height:18px;line-height:18px;text-align:center;background:#3a6ea5;color:#fff;border-radius:50%;font-size:10px;font-weight:700}.dn-tl-name{flex:0 0 auto;font-size:11px;color:#d0d0d0;white-space:nowrap}.dn-tl-seg input[type=range]{flex:1 1 auto;min-width:40px}.dn-tl-dur{flex:0 0 30px;font-size:10px;color:#8ab4ff;text-align:right}
