.app-layout{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.app-main{flex:1;display:flex;overflow:hidden}.canvas-area{flex:1;position:relative;overflow:hidden}.context-menu{z-index:300;background:#1a1a20;border:1px solid #2a2a33;border-radius:12px;min-width:200px;padding:6px;position:fixed;box-shadow:0 8px 32px #0009}.cm-item{color:#c8c8d4;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.cm-item:hover{background:#22222a}.cm-item.danger:hover{background:#ef44441a}.cm-divider{background:#1f1f25;height:1px;margin:4px 8px}.shortcut{color:#5a5a65;font-size:10px;font-weight:500}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-root:#0a0a0c;--bg-l2:#1a1a1f;--bg-hover:#2a2a30;--border-default:#2a2a30;--text-primary:#e0e0e8;--text-secondary:#8b8b95;--r-sm:8px;--shadow-lg:0 8px 32px #00000080}html,body,#root{background:var(--bg-root);width:100%;height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.react-flow__node{cursor:default;backface-visibility:hidden;background:0 0!important}.react-flow__node-group{z-index:0!important;background:0 0!important;border:1px solid #0000!important;border-radius:14px!important;overflow:visible!important}.react-flow__node-group .react-flow__handle{width:20px!important;height:20px!important}.react-flow__node-group:hover .react-flow__handle,.react-flow__node-group.selected .react-flow__handle{opacity:1!important}.react-flow__node-group .react-flow__handle:hover{width:30px!important;height:30px!important}.react-flow__node-selectionConnector .react-flow__handle{opacity:1!important;width:14px!important;height:14px!important}.react-flow__pane{cursor:default}.react-flow__handle{opacity:0;background:#60a5fa;transition:opacity .15s;border:2px solid #0a0a0c!important;border-radius:50%!important;width:15px!important;height:15px!important}.react-flow__node:hover .react-flow__handle,.react-flow__node.selected .react-flow__handle,.react-flow__handle:focus-visible{opacity:1}.react-flow__handle:hover{background:#fff;box-shadow:0 0 12px #3b82f680;width:15px!important;height:15px!important}.react-flow__edge-path{stroke:#6a6a75!important;stroke-width:1.5px!important}.react-flow__edge:hover .react-flow__edge-path{stroke:#60a5fa!important}.react-flow__edge.delete-ready{cursor:pointer}.react-flow__edge.delete-ready .react-flow__edge-path{stroke:#ef4444!important;stroke-width:2.5px!important}.react-flow__edge.edge-incoming .react-flow__edge-path{stroke:#f59e0b!important;stroke-width:2.5px!important}.react-flow__edge.edge-outgoing .react-flow__edge-path{stroke:#22c55e!important;stroke-width:2.5px!important}.react-flow__minimap{border-radius:var(--r-sm)!important;box-shadow:var(--shadow-lg)!important;border:1px solid var(--border-default)!important;overflow:hidden!important}.react-flow__controls-button{background:var(--bg-l2)!important;border-color:var(--border-default)!important;fill:var(--text-secondary)!important;width:28px!important;height:28px!important}.react-flow__controls-button:hover{background:var(--bg-hover)!important;fill:var(--text-primary)!important}.react-flow__selection{background:#ffffff0a!important;border:1.5px solid #e0e0e8!important}.react-flow__attribution{display:none!important}.react-flow__connection{pointer-events:none!important;will-change:transform!important;isolation:isolate!important}.react-flow__connection path,.react-flow__connection-line,.react-flow__connection-path{pointer-events:none!important;transition:none!important;animation:none!important}.react-flow__node:not(.react-flow__node-group):after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:-12px -14px}.react-flow__handle:after{content:"";border-radius:50%;position:absolute;inset:-8px}.react-flow__handle{transition:opacity .15s,width .2s,height .2s,background .2s,box-shadow .2s!important}.react-flow__handle:hover{background:#fff!important;width:26px!important;height:26px!important;box-shadow:0 0 16px #3b82f699!important}@keyframes spin{to{transform:rotate(360deg)}}
