:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;width:100vw;height:100vh;overflow:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#ffffffde;background-color:#242424}a:hover{color:#535bf2}button{background-color:#f9f9f9}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.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:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@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;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.floating-toolbar-container{position:fixed;top:20px;left:calc(50% - 50px);z-index:1000;pointer-events:none}.floating-toolbar{background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:8px 12px;box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff0d;pointer-events:auto;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center}.floating-toolbar:hover{background:#191919fa;box-shadow:0 12px 40px #0006,0 0 0 1px #ffffff14}.toolbar-content{display:flex;align-items:center;gap:4px}.toolbar-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:12px;background:transparent;color:#fffc;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.toolbar-btn.flashing{animation:flash .5s ease-in-out 2}@keyframes flash{0%,to{background:transparent;color:#fffc}50%{background:#ff453acc;color:#fff;box-shadow:0 0 20px #ff453a80}}.toolbar-btn:hover{background:#ffffff1a;color:#fff;transform:translateY(-1px)}.toolbar-btn:active{transform:translateY(0);background:#ffffff26}.toolbar-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.toolbar-btn:hover:before{left:100%}.toolbar-icon{font-size:16px;line-height:1;z-index:1;position:relative}.toolbar-btn.add-node{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.toolbar-btn.add-node:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 8px 25px #10b98166}.toolbar-btn.selection-inactive{background:transparent;color:#fffc;border:1px solid rgba(255,255,255,.3)}.toolbar-btn.selection-inactive:hover{background:#ffffff1a;transform:translateY(-2px);box-shadow:0 8px 25px #fff3}.toolbar-btn.selection-active{background:transparent;color:#ffffffe6;border:1px solid rgba(255,255,255,.5);animation:selectionPulse 2s infinite}.toolbar-btn.selection-active:hover{background:#ffffff1a;transform:translateY(-2px);box-shadow:0 8px 25px #ffffff4d}@keyframes selectionPulse{0%,to{box-shadow:0 4px 15px #fff3}50%{box-shadow:0 4px 25px #fff6}}.toolbar-btn.session-log:hover{background:#8b5cf633;color:#8b5cf6}.toolbar-btn.download:hover{background:#a855f733;color:#a855f7}.toolbar-btn.shuffle:hover{background:#f59e0b33;color:#f59e0b}.toolbar-btn.notes:hover{background:#0ea5e933;color:#0ea5e9}.toolbar-btn.help:hover{background:#f9731633;color:#f97316}.toolbar-btn.delete:hover{background:#ef444433;color:#ef4444}.toolbar-btn.close:hover{background:#9ca3af33;color:#9ca3af}.toolbar-divider{width:1px;height:24px;background:#fff3;margin:0 8px}.toolbar-btn.chat-btn{background:#007aff1a;color:#007aff}.toolbar-btn.chat-btn:hover{background:#007aff33;color:#007aff}.toolbar-toggle{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border:2px solid #ffffff;border-radius:50%;background:linear-gradient(135deg,#ff6b35,#f7931e);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;cursor:pointer;z-index:1000;box-shadow:0 8px 32px #ff6b3566,0 4px 16px #0000004d,inset 0 1px #ffffff4d;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.toolbar-toggle:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);border-radius:50%;transition:opacity .3s ease}.toggle-icon{font-size:24px;transition:all .3s ease;z-index:1;position:relative;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.toolbar-toggle:hover{background:linear-gradient(135deg,#3b82f6,#9333ea);color:#fff;transform:scale(1.08) translateY(-2px);box-shadow:0 12px 40px #3b82f666,0 8px 24px #0000004d,inset 0 1px #ffffff4d}.toolbar-toggle:hover:before{opacity:.8}.toolbar-toggle:hover .toggle-icon{transform:scale(1.15) rotate(15deg);filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.toolbar-toggle:active{transform:scale(.98) translateY(0);box-shadow:0 4px 16px #3b82f64d,0 2px 8px #0003,inset 0 1px #ffffff1a}.toolbar-toggle:active .toggle-icon{transform:scale(1.05)}@media (max-width: 768px){.floating-toolbar-container{top:10px;left:10px;right:10px;transform:none}.floating-toolbar{width:100%;max-width:none}.toolbar-content{justify-content:space-between;flex-wrap:wrap;gap:2px}.toolbar-btn{width:36px;height:36px;border-radius:8px}.toolbar-icon{font-size:14px}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.floating-toolbar{animation:slideDown .3s cubic-bezier(.4,0,.2,1)}.floating-toolbar:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border-radius:16px;pointer-events:none}.toolbar-content{position:relative;z-index:1}.toolbar-btn.admin{background:linear-gradient(135deg,#a855f733,#8b45db33);border:1px solid rgba(168,85,247,.3)}.toolbar-btn.admin:hover{background:linear-gradient(135deg,#a855f766,#8b45db66);border-color:#a855f799;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #a855f74d}.chat-window{width:900px;height:600px;background:#f5f5f5;border-radius:12px;box-shadow:0 8px 32px #0000001a;overflow:hidden;display:flex;flex-direction:column;margin:20px auto;border:1px solid #e0e0e0}.chat-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;height:44px;box-sizing:border-box}.window-controls{display:flex;gap:8px;align-items:center}.control-button{width:12px;height:12px;border-radius:50%;cursor:pointer}.window-title{display:flex;align-items:center;gap:8px;font-size:14px;color:#666;font-weight:500}.title-icon{font-size:16px}.header-actions{display:flex;gap:4px}.header-btn{background:none;border:none;padding:6px;border-radius:4px;cursor:pointer;color:#666;transition:background-color .2s}.chat-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;padding:40px;display:flex;align-items:center;justify-content:center}.message-placeholder{color:#999;font-size:16px;font-weight:400}.chat-input-container{padding:20px;background:#fff;border-top:1px solid #e0e0e0}.chat-form{position:relative}.input-wrapper{background:#fff;border:1px solid #d0d0d0;border-radius:24px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0000000a}.model-selector{position:relative;display:flex;align-items:center}.model-select{background:none;border:none;font-size:14px;color:#333;cursor:pointer;padding-right:20px;outline:none;appearance:none;font-weight:500}.dropdown-icon{position:absolute;right:0;color:#666;pointer-events:none}.action-buttons{display:flex;align-items:center;gap:8px;margin-left:auto}.action-btn{background:none;border:none;padding:8px 12px;border-radius:16px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;transition:all .2s;color:#666}.action-btn:hover{background:#f0f0f0}.search-btn:hover{background:#e3f2fd}.system-btn:hover{background:#fff3e0}.think-btn:hover{background:#e8f5e8}.ask-btn{background:#333;color:#fff;padding:10px 16px;border-radius:20px;border:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;transition:background-color .2s}.ask-btn:hover{background:#555}.ask-btn kbd{background:#fff3;padding:2px 6px;border-radius:4px;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.message-input{width:100%;border:none;outline:none;resize:none;font-size:16px;color:#333;background:transparent;margin-top:12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.4}.message-input::placeholder{color:#999}@media (max-width: 1000px){.chat-window{width:95%;margin:10px auto}}@media (max-width: 768px){.chat-window{height:100vh;border-radius:0;margin:0}.action-buttons{flex-wrap:wrap;gap:4px}.action-btn span{display:none}.ask-btn span{display:inline}}@media (prefers-color-scheme: dark){.chat-window{background:#1e1e1e;border-color:#333}.chat-header{background:#2d2d2d;border-bottom-color:#333}.window-title,.header-btn{color:#ccc}.header-btn:hover{background:#3d3d3d}.message-placeholder{color:#666}.chat-input-container{background:#2d2d2d;border-top-color:#333}.input-wrapper{background:#3d3d3d;border-color:#555}.model-select{color:#ccc}.dropdown-icon{color:#999}.action-btn{color:#ccc}.action-btn:hover{background:#4d4d4d}.message-input{color:#ccc}.message-input::placeholder{color:#666}}.chat-node{min-width:400px;min-height:200px;background:#1e1e1e;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;resize:both;box-sizing:border-box;position:relative;transition:all .3s ease}.chat-node.compact{min-width:160px;min-height:120px}.chat-node.minimized{height:40px!important;min-height:40px!important;overflow:hidden}.chat-node.minimized .node-content,.chat-node.minimized .rag-control-panel,.chat-node.minimized .chat-messages,.chat-node.minimized .input-section{display:none}.chat-node.collapsed{min-height:200px;height:auto;overflow:visible;background:#1e1e1e;border:1px solid #333}.chat-node.collapsed .rag-panel{display:none}.chat-node.collapsed .node-content{max-height:100px;overflow-y:auto;display:block;visibility:visible}.chat-node.collapsed .node-messages{max-height:80px;overflow-y:auto;display:block;visibility:visible}.chat-node.collapsed .node-input-container,.chat-node.collapsed .message-placeholder,.chat-node.collapsed .message{display:block;visibility:visible}.chat-node.collapsed .node-handle{display:block;visibility:visible;opacity:1;position:absolute;z-index:10}.chat-node.collapsed .node-header{display:flex;visibility:visible;opacity:1;position:relative;z-index:1;background:#2d2d2d;border-bottom:1px solid #333}.chat-node.collapsed .window-title{display:flex;visibility:visible;opacity:1}.chat-node.collapsed .title-text{display:inline-block;visibility:visible;opacity:1;color:#ccc}.chat-node.collapsed .header-actions{display:flex;visibility:visible;opacity:1}.chat-node.selected{box-shadow:0 4px 20px #007aff4d}.node-header{background:#2d2d2d;border-bottom:1px solid #333;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.window-controls{display:flex;gap:6px;align-items:center}.control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.control-button.close{background:#ff5f57}.control-button.minimize{background:#ffbd2e}.control-button.maximize{background:#28ca42}.window-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#ccc;font-weight:500}.title-icon{width:12px;height:12px;color:#ccc;transition:all .2s ease}.window-title:hover .title-icon{color:#007aff;transform:scale(1.1)}.header-actions{display:flex;gap:2px}.header-btn{background:none;border:none;padding:4px;border-radius:3px;cursor:pointer;color:#ccc;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.header-btn:hover{background:#f0f0f0;transform:scale(1.1)}.header-btn.close-btn:hover{background:#ff5f57;color:#fff}.header-btn.delete-btn:hover{background:#ff9500;color:#fff}.header-btn svg{width:12px;height:12px;transition:all .2s ease}.header-btn:hover{background:#f0f0f0}.header-btn.collapse-btn{background:none;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1}.header-btn.collapse-btn:hover{background:#ffffff1a;color:#fff}.node-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:80px}.node-messages{flex:1;padding:20px;display:flex;flex-direction:column;overflow-y:auto;gap:8px}.message-placeholder{color:#666;font-size:14px;font-weight:400}.node-input-container{padding:12px;background:#2d2d2d;border-top:1px solid #333}.node-form{position:relative;display:flex;flex-direction:column;gap:8px}.node-input-wrapper{background:#3d3d3d;border:1px solid #555;border-radius:20px;padding:8px 12px;display:flex;align-items:center;gap:8px;box-shadow:0 1px 4px #0003}.node-model-selector{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:4px 0}.node-model-select{background:none;border:none;font-size:12px;color:#ccc;cursor:pointer;padding-right:16px;outline:none;appearance:none;font-weight:500;max-width:120px}.node-dropdown-icon{position:absolute;right:0;color:#666;pointer-events:none;width:10px;height:10px;transition:all .2s ease}.node-model-selector:hover .node-dropdown-icon{color:#007aff;transform:translateY(1px)}.node-action-buttons{display:flex;align-items:center;gap:6px;margin-left:auto;justify-content:center;padding:4px 0}.node-action-btn{background:none;border:none;padding:6px 8px;border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500;transition:all .2s ease;color:#666}.node-action-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.node-action-btn svg{width:14px;height:14px;transition:all .2s ease}.node-action-btn span{display:none}.node-action-btn:hover{background:#f0f0f0}.search-btn{color:#007aff}.search-btn:hover{background:#e3f2fd;color:#0056cc}.search-btn:hover svg{transform:scale(1.1)}.system-btn{color:#ff9500}.system-btn:hover{background:#fff3e0;color:#c70}.system-btn:hover svg{transform:rotate(90deg)}.think-btn{color:#34c759}.think-btn:hover{background:#e8f5e8;color:#28a745}.think-btn:hover svg{transform:scale(1.1) rotate(5deg)}.node-ask-btn{background:#333;color:#fff;padding:6px 12px;border-radius:16px;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;transition:background-color .2s}.node-ask-btn:hover:not(:disabled){background:#555}.node-ask-btn:disabled{background:#666;cursor:not-allowed;opacity:.7}.node-ask-btn kbd{background:#fff3;padding:1px 4px;border-radius:3px;font-size:10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.node-message-input{width:100%;border:none;outline:none;resize:none;font-size:14px;color:#ccc;background:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.4;min-height:20px}.node-message-input::placeholder{color:#666}.chat-node .node-handle{width:16px;height:16px;border-radius:50%;transition:all .2s ease}.chat-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.chat-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.chat-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.chat-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.chat-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.chat-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.chat-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.chat-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.chat-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.chat-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.chat-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.chat-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.chat-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.chat-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.chat-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.chat-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}@media (max-width: 500px){.chat-node{width:320px}.node-action-buttons{gap:4px}.node-action-btn{padding:4px 6px}}@media (prefers-color-scheme: dark){.chat-node{background:#1e1e1e;border-color:#333}.message.user{background:#1a237e;color:#e3f2fd}.message.assistant{background:#2d2d2d;color:#e0e0e0}.typing-indicator span{background:#999}.node-header{background:#2d2d2d;border-bottom-color:#333}.window-title,.title-icon{color:#ccc}.title-text{color:#ccc;cursor:pointer;font-size:12px;font-weight:500}.title-text:hover{color:#007aff}.title-input{background:transparent;border:none;color:#ccc;font-size:12px;font-weight:500;outline:none;padding:2px 4px;border-radius:3px;min-width:100px}.title-input:focus{background:#ffffff1a;color:#fff}.header-btn{color:#ccc}.header-btn svg{color:#ccc}.header-btn:hover{background:#3d3d3d}.message-placeholder{color:#666}.message{display:flex;margin-bottom:12px;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.5;max-width:100%}.message.user{background:linear-gradient(135deg,#4caf50,#81c784);color:#fff;margin-left:20px;box-shadow:0 2px 8px #4caf504d}.message.assistant{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;margin-right:20px;box-shadow:0 2px 8px #1e3c724d}.message.error{background:#4a1a1a;color:#ffcdd2}.message-content{flex:1;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;width:100%}.typing-indicator{display:flex;gap:4px;align-items:center}.typing-indicator span{width:6px;height:6px;background:#666;border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.node-input-container{background:#2d2d2d;border-top-color:#333}.node-input-wrapper{background:#3d3d3d;border-color:#555}.node-model-select{color:#ccc}.node-dropdown-icon{color:#999}.node-action-btn{color:#ccc}.node-action-btn svg{color:inherit}.node-action-btn:hover{background:#4d4d4d}.node-message-input{color:#ccc}.node-message-input::placeholder{color:#666}}.chat-node.starred-node{border:2px solid #ffd700;box-shadow:0 4px 20px #ffd7004d}.chat-node.starred-node .node-header{background:linear-gradient(135deg,#2d2d2d,#3d3d2d)}.node-action-btn.think-btn.starred{background:gold;color:#1e1e1e;border:1px solid #ffd700}.node-action-btn.think-btn.starred:hover{background:#ffed4e;color:#1e1e1e}.node-action-btn.think-btn.starred svg{color:#1e1e1e}.context-summary{background:#ffd7001a;border:1px solid rgba(255,215,0,.3);border-radius:8px;padding:12px;margin-bottom:12px;font-size:13px}.summary-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-weight:600;color:gold}.summary-header svg{color:gold}.summary-content{color:#e0e0e0;line-height:1.4;font-size:12px}.text-editor-node{min-width:500px;min-height:350px;background:#2d2d2d;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;resize:both;box-sizing:border-box;position:relative}.text-editor-node.selected{box-shadow:0 4px 20px #28ca424d}.text-editor-node .node-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.text-editor-node .window-controls{display:flex;gap:6px;align-items:center}.text-editor-node .control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.text-editor-node .control-button.close{background:#ff5f57}.text-editor-node .control-button.minimize{background:#ffbd2e}.text-editor-node .control-button.maximize{background:#28ca42}.text-editor-node .window-title{flex:1;display:flex;align-items:center;justify-content:center;margin:0 20px}.text-editor-node .title-input{background:none;border:none;font-size:14px;color:#e0e0e0;font-weight:600;text-align:center;width:100%;outline:none;padding:4px 8px;border-radius:4px}.text-editor-node .title-input:focus{background:#f8f9fa;border:1px solid #28ca42}.text-editor-node .header-actions{display:flex;gap:2px}.text-editor-node .header-btn{background:none;border:none;padding:4px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.text-editor-node .header-btn:hover{background:#4a4a4a;transform:scale(1.1)}.text-editor-node .header-btn.delete-btn:hover{background:#ffe6e6;color:#f44}.editor-toolbar{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;gap:4px;align-items:center}.toolbar-btn{background:none;border:none;padding:6px 8px;border-radius:4px;cursor:pointer;color:#e0e0e0;font-size:14px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:28px;height:28px}.toolbar-btn:hover{background:#4a4a4a;transform:translateY(-1px)}.toolbar-btn:active{transform:translateY(0);background:#555}.toolbar-btn.delete-line-btn{color:#ff6b6b;border:1px solid transparent;transition:all .2s ease}.toolbar-btn.delete-line-btn:hover{background:#ff6b6b1a;border-color:#ff6b6b4d;color:#f44;transform:translateY(-1px);box-shadow:0 2px 8px #ff6b6b33}.toolbar-btn.delete-line-btn:active{transform:translateY(0);background:#ff6b6b33;border-color:#ff6b6b80}.toolbar-btn strong{font-weight:700}.toolbar-btn em{font-style:italic;font-weight:500}.code-icon{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;font-weight:600}.editor-content{flex:1;display:flex;flex-direction:column;min-height:300px}.editor-textarea{flex:1;border:none;outline:none;padding:16px;font-size:14px;line-height:1.6;color:#e0e0e0;background:transparent;resize:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.editor-textarea::placeholder{color:#888;font-style:italic}.editor-textarea:focus{background:transparent}.text-editor-node .node-handle{width:12px;height:12px;border-radius:50%;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.text-editor-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.text-editor-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.text-editor-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.text-editor-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.text-editor-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.text-editor-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.text-editor-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.text-editor-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.text-editor-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.text-editor-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.text-editor-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.text-editor-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.text-editor-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.text-editor-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.text-editor-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.text-editor-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}@media (max-width: 768px){.text-editor-node{width:350px}.editor-toolbar{flex-wrap:wrap;gap:2px}.toolbar-btn{min-width:24px;height:24px;padding:4px 6px;font-size:12px}}@keyframes nodeAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.text-editor-node{animation:nodeAppear .3s ease-out}.editor-textarea::-webkit-scrollbar{width:6px}.editor-textarea::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.editor-textarea::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.editor-textarea::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.card-node{min-width:500px;min-height:400px;background:#2d2d2d;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box;position:relative}.card-node.selected{box-shadow:0 4px 20px #ff8c0066}.card-node .node-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.card-node .window-controls{display:flex;gap:6px;align-items:center}.card-node .control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.card-node .control-button.close{background:#ff5f57}.card-node .control-button.minimize{background:#ffbd2e}.card-node .control-button.maximize{background:#28ca42}.card-node .window-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#e0e0e0;font-weight:500}.card-node .header-actions{display:flex;gap:2px}.card-node .header-btn{background:none;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.card-node .header-btn:hover{background:#4a4a4a;transform:scale(1.1)}.card-node .add-btn{color:#ff8c00}.card-node .add-btn:hover{background:#ff8c001a;color:orange}.card-node .collapse-btn{color:#888;font-size:14px;min-width:24px;height:24px}.card-node .collapse-btn:hover{background:#8888881a;color:#aaa}.cards-container{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .3s ease;overflow:hidden}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px}.tech-card{background:#3a3a3a;border:1px solid #404040;border-radius:8px;padding:12px;transition:all .2s ease;position:relative;min-height:80px;display:flex;flex-direction:column}.tech-card:hover{border-color:#ff8c00;transform:translateY(-2px);box-shadow:0 4px 12px #ff8c0033}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.remove-card-btn{background:none;border:none;color:#888;cursor:pointer;font-size:16px;line-height:1;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:2px;transition:all .2s ease}.remove-card-btn:hover{background:#f44;color:#fff}.card-title{font-size:13px;font-weight:600;color:#e0e0e0;margin:0 0 6px;line-height:1.3}.card-description{font-size:11px;color:#b0b0b0;margin:0;line-height:1.4;flex:1}.add-card-form{background:#404040;border:2px dashed #ff8c00;display:flex;flex-direction:column;gap:8px;min-height:120px}.card-input,.card-textarea,.card-select{background:#2d2d2d;border:1px solid #555;border-radius:4px;padding:6px 8px;color:#e0e0e0;font-size:12px;outline:none;transition:border-color .2s ease}.card-input:focus,.card-textarea:focus,.card-select:focus{border-color:#ff8c00}.card-textarea{resize:none;font-family:inherit}.card-select{cursor:pointer}.card-select option{background:#2d2d2d;color:#e0e0e0}.form-actions{display:flex;gap:6px;margin-top:auto}.add-btn-confirm,.cancel-btn{padding:4px 12px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-card-placeholder{background:#3a3a3a;border:2px dashed #ff8c00;border-radius:8px;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#ff8c00;min-height:80px}.add-card-placeholder:hover{background:#ff8c001a;border-color:orange;transform:translateY(-2px)}.add-icon{font-size:24px;font-weight:700;margin-bottom:4px}.add-card-placeholder span{font-size:12px;font-weight:500}.card-node .node-handle{width:16px;height:16px;border-radius:50%;transition:all .2s ease}.card-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.card-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.card-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.card-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.card-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.card-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.card-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.card-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.card-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.card-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.card-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.card-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.card-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.card-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.card-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.card-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}@media (max-width: 600px){.cards-grid{grid-template-columns:1fr}.card-node{width:350px}}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tech-card{animation:cardSlideIn .3s ease-out}.refresh-icon-button{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;color:#666}.refresh-icon-button:hover{background-color:#ffa5001a;color:#ff6b35;transform:scale(1.05)}.refresh-icon-button:active{transform:scale(.95)}.refresh-icon-button:disabled{cursor:not-allowed;opacity:.6}.refresh-icon-svg{transition:transform .2s ease}.refresh-icon-button.refreshing .refresh-icon-svg{animation:spin 1s linear infinite}.refresh-icon-button{color:#ccc}.refresh-icon-button:hover{color:#ff6b35}.refresh-icon-button.small{padding:2px}.refresh-icon-button.large{padding:8px}.feature-card .refresh-icon-button,.content-node .refresh-icon-button{margin-left:8px}.refresh-icon-button.inline{margin:0 4px;vertical-align:middle}.content-node{min-width:200px;background:#2d2d2d;border-radius:8px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:120px;transition:all .3s ease;box-sizing:border-box;resize:both;position:relative}.content-node.content-expanded{min-width:320px;min-height:280px}.content-node.content-text{min-width:350px;min-height:300px}.content-node.content-todo{min-width:300px;min-height:250px}.content-node.content-help{min-width:340px;min-height:320px}.content-node.content-prd{min-width:360px;min-height:350px}.content-node.selected{box-shadow:0 4px 20px #ffc10766}.back-navigation{padding:8px 0 6px;border-bottom:1px solid #404040;margin-bottom:12px}.content-node .back-btn{background:none;border:none;color:#e0e0e0;cursor:pointer;font-size:14px;padding:6px 12px;border-radius:6px;transition:background .2s ease;display:flex;align-items:center;gap:6px}.content-node .back-btn:hover{background:#4a4a4a}.content-container{flex:1;padding:10px;display:flex;flex-direction:column;transition:all .3s ease;overflow:hidden}.content-options{flex:1;display:flex;flex-direction:column;justify-content:center}.options-grid{display:grid;grid-template-columns:repeat(2,80px);gap:12px;justify-content:center}.content-option{background:#3a3a3a;border:1px solid #404040;border-radius:8px;padding:8px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:4px;width:80px;height:80px;justify-content:center;box-sizing:border-box}.content-option:hover{background:#4a4a4a;border-color:#555;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.option-icon{font-size:20px;color:var(--option-color, #e0e0e0);font-weight:700}.option-title{font-size:12px;color:var(--option-color, #e0e0e0);font-weight:500;text-align:center;line-height:1.1}.content-area{flex:1;display:flex;flex-direction:column;padding:0 8px 8px;box-sizing:border-box}.content-textarea{width:100%;height:200px;max-height:250px;background:#404040;border:1px solid #555;border-radius:6px;padding:12px;color:#e0e0e0;font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s ease;box-sizing:border-box;margin:0}.content-textarea:focus{border-color:#3b82f6}.content-textarea::placeholder{color:#888}.todo-list{display:flex;flex-direction:column;gap:6px}.todo-item{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#404040;border-radius:4px}.todo-checkbox{width:16px;height:16px;accent-color:#3b82f6}.todo-input{flex:1;background:transparent;border:none;color:#e0e0e0;font-size:14px;outline:none}.todo-input::placeholder{color:#888}.add-todo-btn{background:#3b82f6;border:none;color:#fff;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:background .2s ease}.add-todo-btn:hover{background:#2563eb}.help-content{display:flex;flex-direction:column;gap:10px;padding:0 4px}.help-content h3{color:#e0e0e0;font-size:14px;margin:0;font-weight:600}.help-content p{color:#b0b0b0;font-size:13px;margin:0;line-height:1.4}.parent-title-highlight{color:#ff8c00;font-weight:600;background:#ff8c001a;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,140,0,.3)}.help-textarea{width:100%;height:180px;max-height:220px;background:#404040;border:1px solid #555;border-radius:6px;padding:12px;color:#e0e0e0;font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:border-color .2s ease;box-sizing:border-box;margin:0}.help-textarea:focus{border-color:#ff8c00}.help-textarea::placeholder{color:#888}.help-submit-btn{background:#ff8c00;border:none;color:#fff;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s ease;align-self:flex-start}.help-submit-btn:hover{background:#e07b00}.prd-content{display:flex;flex-direction:column;gap:10px}.prd-content h3{color:#e0e0e0;font-size:14px;margin:0;font-weight:600}.prd-form{display:flex;flex-direction:column;gap:8px}.context-info{color:#b0b0b0;font-size:12px;margin:0;font-style:italic}.prd-generate-btn{background:#8b5cf6;border:none;color:#fff;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s ease;align-self:flex-start;display:flex;align-items:center;gap:8px}.prd-generate-btn:hover:not(:disabled){background:#7c3aed}.prd-generate-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.prd-result{background:#2d2d2d;border:1px solid #555;border-radius:6px;padding:12px;margin-top:8px;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.prd-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #404040}.prd-result-header h4{color:#e0e0e0;font-size:12px;margin:0;font-weight:600}.export-prd-btn{background:#28ca42;border:none;color:#fff;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:10px;font-weight:500;transition:background .2s ease}.export-prd-btn:hover{background:#20a034}.prd-result-content{flex:1;overflow-y:auto}.prd-result-content pre{color:#e0e0e0;font-size:11px;line-height:1.4;margin:0;white-space:pre-wrap;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.content-node .node-handle{width:12px;height:12px;border-radius:50%;box-shadow:0 2px 4px #0003;transition:all .2s ease;z-index:10}.content-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.content-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.content-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.content-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.content-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.content-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.content-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.content-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.content-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.content-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.content-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.content-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.content-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.content-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.content-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.content-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}@media (max-width: 600px){.content-node{width:320px}.options-grid{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content-area,.content-options{animation:fadeIn .3s ease-out}.edit-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.edit-modal{background:#2d2d2d;border-radius:12px;box-shadow:0 8px 32px #00000080;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.edit-modal-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.edit-modal-header h3{margin:0;color:#e0e0e0;font-size:18px;font-weight:600}.edit-modal-close{background:none;border:none;color:#888;font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.edit-modal-close:hover{background:#f44;color:#fff}.edit-modal-body{padding:20px;flex:1;overflow-y:auto}.edit-form-group{margin-bottom:20px}.edit-form-group:last-child{margin-bottom:0}.edit-form-group label{display:block;margin-bottom:8px;color:#e0e0e0;font-size:14px;font-weight:500}.edit-input,.edit-textarea,.edit-select{width:100%;background:#404040;border:1px solid #555;border-radius:6px;padding:12px 14px;color:#e0e0e0;font-size:14px;font-family:inherit;outline:none;transition:all .2s ease;box-sizing:border-box}.edit-input:focus,.edit-textarea:focus,.edit-select:focus{border-color:#ff8c00;box-shadow:0 0 0 2px #ff8c0033}.edit-textarea{resize:vertical;min-height:100px;line-height:1.5}.edit-select{cursor:pointer}.edit-select option{background:#404040;color:#e0e0e0}.edit-modal-footer{background:#3a3a3a;border-top:1px solid #404040;padding:16px 20px;display:flex;gap:12px;justify-content:flex-end}.edit-btn-cancel,.edit-btn-save{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:80px}.edit-btn-cancel{background:#555;color:#e0e0e0}.edit-btn-cancel:hover{background:#666}.edit-btn-save{background:#ff8c00;color:#fff}.edit-btn-save:hover:not(:disabled){background:orange;transform:translateY(-1px)}.edit-btn-save:disabled{background:#666;cursor:not-allowed;opacity:.7}.edit-modal-overlay{animation:fadeIn .2s ease-out}.edit-modal{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 600px){.edit-modal{width:95%;margin:20px}.edit-modal-header,.edit-modal-body,.edit-modal-footer{padding:16px}.edit-modal-footer{flex-direction:column}.edit-btn-cancel,.edit-btn-save{width:100%}}.feature-card-node{min-width:350px;min-height:400px;background:#2d2d2d;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;resize:both;box-sizing:border-box;position:relative}.feature-card-node.selected{box-shadow:0 4px 20px #ff8c0066}.feature-card-node.ai-generated.selected{box-shadow:0 4px 20px #ff8c0066,0 4px 16px #00d4ff4d}.feature-card-node.ai-generated .features-grid .feature-item:first-child:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:80%;height:2px;background:linear-gradient(90deg,transparent,#10b981,#059669,#10b981,transparent);border-radius:1px;animation:newFeaturePulse 2s ease-in-out infinite}.feature-card-node.ai-generated .features-grid .feature-item:first-child{position:relative;margin-bottom:16px}@keyframes newFeaturePulse{0%,to{opacity:.6;transform:translate(-50%) scaleX(.8)}50%{opacity:1;transform:translate(-50%) scaleX(1)}}.feature-card-node .node-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.feature-card-node .window-controls{display:flex;gap:6px;align-items:center}.feature-card-node .control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.feature-card-node .control-button.close{background:#ff5f57}.feature-card-node .control-button.minimize{background:#ffbd2e}.feature-card-node .control-button.maximize{background:#28ca42}.feature-card-node .window-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#e0e0e0;font-weight:500}.feature-card-node .ai-badge{background:linear-gradient(45deg,#00d4ff,#09c);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;margin-left:8px;animation:aiPulse 2s ease-in-out infinite}@keyframes aiPulse{0%,to{opacity:.8}50%{opacity:1}}.feature-card-node .header-actions{display:flex;gap:2px}.feature-card-node .header-btn{background:none;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.feature-card-node .header-btn:hover{background:#4a4a4a;transform:scale(1.1)}.feature-card-node .add-btn{color:#ff8c00}.feature-card-node .add-btn:hover{background:#ff8c001a;color:orange}.feature-card-node .collapse-btn{color:#888;font-size:14px;min-width:24px;height:24px}.feature-card-node .collapse-btn:hover{background:#8888881a;color:#aaa}.features-container{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .3s ease;overflow:hidden}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:12px}.feature-item{background:#3a3a3a;border:1px solid #404040;border-radius:8px;padding:16px;transition:all .2s ease;position:relative;min-height:140px;display:flex;flex-direction:column;gap:8px}.feature-item:hover{border-color:#ff8c00;transform:translateY(-2px);box-shadow:0 4px 12px #ff8c0033}.feature-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.feature-icon-wrapper{display:flex;align-items:center;gap:8px}.feature-icon{font-size:18px;line-height:1}.remove-feature-btn{background:none;border:none;color:#888;cursor:pointer;font-size:16px;line-height:1;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:2px;transition:all .2s ease}.remove-feature-btn:hover{background:#f44;color:#fff}.feature-title{font-size:14px;font-weight:600;color:#e0e0e0;margin:0;line-height:1.3}.feature-description{font-size:12px;color:#b0b0b0;margin:0;line-height:1.4;flex:1}.feature-category{margin-top:auto;display:flex;justify-content:flex-end}.add-feature-form{background:#404040!important;border:2px dashed #ff8c00;display:flex;flex-direction:column;gap:10px;min-height:160px}.feature-input,.feature-textarea,.feature-select{background:#2d2d2d;border:1px solid #555;border-radius:4px;padding:8px 10px;color:#e0e0e0;font-size:12px;outline:none;transition:border-color .2s ease}.feature-input:focus,.feature-textarea:focus,.feature-select:focus{border-color:#ff8c00}.feature-textarea{resize:none;font-family:inherit;min-height:60px}.feature-select{cursor:pointer}.feature-select option{background:#2d2d2d;color:#e0e0e0}.form-actions{display:flex;gap:8px;margin-top:auto;background:transparent;padding:0}.add-btn-confirm,.cancel-btn,.ai-btn{padding:6px 14px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.ai-btn{background:#8b5cf6;color:#fff;font-size:14px;padding:6px 10px;min-width:32px;display:flex;align-items:center;justify-content:center}.ai-btn:hover:not(:disabled){background:#9d6bff;transform:translateY(-1px)}.ai-btn:disabled{background:#666;cursor:not-allowed;opacity:.7}.add-feature-placeholder{background:#3a3a3a;border:2px dashed #ff8c00;border-radius:8px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#ff8c00;min-height:100px}.add-feature-placeholder:hover{background:#ff8c001a;border-color:orange;transform:translateY(-2px)}.add-feature-placeholder span{font-size:13px;font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;min-height:200px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.empty-title{font-size:18px;font-weight:600;color:#2d3748;margin:0 0 8px}.empty-description{font-size:14px;color:#718096;margin:0 0 24px;line-height:1.5}.empty-add-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:14px}.empty-add-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.add-feature-form-container{margin-top:10px}.feature-card-node .node-handle{width:16px;height:16px;border-radius:50%;transition:all .2s ease}.feature-card-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.feature-card-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.feature-card-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.feature-card-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.feature-card-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.feature-card-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.feature-card-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.feature-card-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.feature-card-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.feature-card-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.feature-card-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.feature-card-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.feature-card-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.feature-card-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.feature-card-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.feature-card-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}.feature-handle{width:6px;height:6px;background:#ff8c00;border:1px solid #ffffff;border-radius:50%;position:absolute;z-index:10}.feature-handle:hover{background:orange;transform:scale(1.3);box-shadow:0 0 4px #ff8c0099}.feature-handle-left{left:-3px;top:50%;transform:translateY(-50%)}.feature-handle-right{right:-3px;top:50%;transform:translateY(-50%)}.feature-handle-left:hover,.feature-handle-right:hover{transform:translateY(-50%) scale(1.3)}.feature-item{position:relative}@media (max-width: 700px){.features-grid{grid-template-columns:1fr}.feature-card-node{width:400px}}@keyframes featureSlideIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.feature-item{animation:featureSlideIn .3s ease-out}.feature-item[data-category=core]{border-left:3px solid #3b82f6}.feature-item[data-category=intelligence]{border-left:3px solid #10b981}.feature-item[data-category=ai]{border-left:3px solid #8b5cf6}.feature-item[data-category=visual]{border-left:3px solid #f59e0b}.feature-item[data-category=collaboration]{border-left:3px solid #ef4444}.feature-item[data-category=integration]{border-left:3px solid #06b6d4}.feature-item[data-category=security]{border-left:3px solid #f97316}.feature-item[data-category=automation]{border-left:3px solid #22c55e}.feature-item[data-category=infrastructure]{border-left:3px solid #a855f7}.feature-item[data-category=containers]{border-left:3px solid #0ea5e9}.feature-item[data-category=monitoring]{border-left:3px solid #f59e0b}.feature-item[data-category=ml]{border-left:3px solid #8b5cf6}.feature-item[data-category=nlp]{border-left:3px solid #06b6d4}.feature-item[data-category=vision]{border-left:3px solid #10b981}.feature-item[data-category=data]{border-left:3px solid #f97316}.feature-item[data-category=mlops]{border-left:3px solid #ef4444}.techstack-card-node{min-width:400px;min-height:350px;background:#2d2d2d;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box;position:relative}.techstack-card-node.selected{box-shadow:0 4px 20px #ff8c0066}.techstack-card-node .node-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.techstack-card-node .window-controls{display:flex;gap:6px;align-items:center}.techstack-card-node .control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.techstack-card-node .control-button.close{background:#ff5f57}.techstack-card-node .control-button.minimize{background:#ffbd2e}.techstack-card-node .control-button.maximize{background:#28ca42}.techstack-card-node .window-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#e0e0e0;font-weight:500}.techstack-card-node .header-actions{display:flex;gap:2px}.techstack-card-node .header-btn{background:none;border:none;padding:4px 8px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.techstack-card-node .header-btn:hover{background:#4a4a4a;transform:scale(1.1)}.techstack-card-node .add-btn{color:#ff8c00}.techstack-card-node .add-btn:hover{background:#ff8c001a;color:orange}.techstack-card-node .collapse-btn{color:#888;font-size:14px;min-width:24px;height:24px}.techstack-card-node .collapse-btn:hover{background:#8888881a;color:#aaa}.techstack-container{flex:1;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all .3s ease;overflow:hidden}.techstack-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:12px}.tech-item{background:#3a3a3a;border:1px solid #404040;border-radius:8px;padding:16px;transition:all .2s ease;position:relative;min-height:140px;display:flex;flex-direction:column;gap:8px}.tech-item:hover{border-color:#ff8c00;transform:translateY(-2px);box-shadow:0 4px 12px #ff8c0033}.tech-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.tech-icon-wrapper{display:flex;align-items:center;gap:8px}.tech-icon{font-size:18px;line-height:1}.category-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.remove-tech-btn{background:none;border:none;color:#888;cursor:pointer;font-size:16px;line-height:1;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:2px;transition:all .2s ease}.remove-tech-btn:hover{background:#f44;color:#fff}.tech-title{font-size:14px;font-weight:600;color:#e0e0e0;margin:0;line-height:1.3}.tech-description{font-size:12px;color:#b0b0b0;margin:0;line-height:1.4;flex:1}.tech-category{margin-top:auto;display:flex;justify-content:flex-end}.category-tag{font-size:10px;font-weight:500;color:#fff;padding:2px 6px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.add-tech-form{background:#404040;border:2px dashed #ff8c00;display:flex;flex-direction:column;gap:10px;min-height:160px}.tech-input,.tech-textarea,.tech-select{background:#2d2d2d;border:1px solid #555;border-radius:4px;padding:8px 10px;color:#e0e0e0;font-size:12px;outline:none;transition:border-color .2s ease}.tech-input:focus,.tech-textarea:focus,.tech-select:focus{border-color:#ff8c00}.tech-textarea{resize:none;font-family:inherit;min-height:60px}.tech-select{cursor:pointer}.tech-select option{background:#2d2d2d;color:#e0e0e0}.form-actions{display:flex;gap:8px;margin-top:auto}.add-btn-confirm,.cancel-btn{padding:6px 14px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-btn-confirm{background:#ff8c00;color:#fff}.add-btn-confirm:hover{background:orange;transform:translateY(-1px)}.cancel-btn{background:#555;color:#e0e0e0}.cancel-btn:hover{background:#666}.add-tech-placeholder{background:#3a3a3a;border:2px dashed #ff8c00;border-radius:8px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#ff8c00;min-height:100px}.add-tech-placeholder:hover{background:#ff8c001a;border-color:orange;transform:translateY(-2px)}.add-icon{font-size:28px;font-weight:700;margin-bottom:6px}.add-tech-placeholder span{font-size:13px;font-weight:500}.techstack-card-node .node-handle{width:16px;height:16px;border-radius:50%;transition:all .2s ease}.techstack-card-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.techstack-card-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.techstack-card-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.techstack-card-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.techstack-card-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.techstack-card-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.techstack-card-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.techstack-card-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.techstack-card-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.techstack-card-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.techstack-card-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.techstack-card-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.techstack-card-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.techstack-card-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.techstack-card-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.techstack-card-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}.tech-handle{width:6px;height:6px;background:#3b82f6;border:1px solid #ffffff;border-radius:50%;opacity:0;transition:opacity .2s ease}.tech-item:hover .tech-handle{opacity:1}.tech-handle-left{left:-3px}.tech-handle-right{right:-3px}@media (max-width: 700px){.techstack-grid{grid-template-columns:1fr 1fr;gap:12px}.techstack-card-node{width:400px}}@keyframes techSlideIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tech-item{animation:techSlideIn .3s ease-out}.tech-item[data-category=frontend]{border-left:3px solid #3b82f6}.tech-item[data-category=backend]{border-left:3px solid #ef4444}.tech-item[data-category=database]{border-left:3px solid #10b981}.tech-item[data-category=devops]{border-left:3px solid #f59e0b}.tech-item[data-category=mobile]{border-left:3px solid #8b5cf6}.tech-item[data-category=testing]{border-left:3px solid #06b6d4}.tech-item[data-category=security]{border-left:3px solid #f97316}.summary-node{min-width:600px;max-width:600px;min-height:450px;background:#2d2d2d;border-radius:12px;box-shadow:0 4px 16px #0000004d;overflow:hidden;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box;position:relative;padding-bottom:56px}.summary-node.selected{box-shadow:0 4px 20px #3b82f666}.summary-node .node-header{background:#3a3a3a;border-bottom:1px solid #404040;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;height:36px;box-sizing:border-box}.summary-node .window-controls{display:flex;gap:6px;align-items:center}.summary-node .control-button{width:10px;height:10px;border-radius:50%;cursor:pointer}.summary-node .control-button.close{background:#ff5f57}.summary-node .control-button.minimize{background:#ffbd2e}.summary-node .control-button.maximize{background:#28ca42}.summary-node .window-title{display:flex;align-items:center;gap:6px;font-size:12px;color:#e0e0e0;font-weight:500;flex:1;justify-content:center}.summary-node .summary-icon{font-size:14px}.summary-node .title-input{background:#2d2d2d;border:1px solid #3b82f6;border-radius:4px;padding:2px 6px;color:#e0e0e0;font-size:12px;font-weight:500;outline:none;min-width:120px}.summary-node .header-actions{display:flex;gap:2px}.summary-node .header-btn{background:none;border:none;padding:4px 6px;border-radius:3px;cursor:pointer;color:#e0e0e0;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:12px;min-width:20px;height:20px}.summary-node .header-btn:hover{background:#4a4a4a;transform:scale(1.1)}.summary-node .edit-btn{color:#3b82f6}.summary-node .edit-btn:hover{background:#3b82f61a;color:#60a5fa}.summary-node .save-btn{color:#10b981}.summary-node .save-btn:hover{background:#10b9811a;color:#34d399}.summary-node .cancel-btn{color:#ef4444}.summary-node .collapse-btn{color:#888;font-size:14px;min-width:24px;height:24px}.summary-node .collapse-btn:hover{background:#8888881a;color:#aaa}.summary-node .cancel-btn:hover{background:#ef44441a;color:#f87171}.summary-content{flex:1;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.summary-editor{flex:1;display:flex;flex-direction:column;padding:16px}.summary-textarea{flex:1;background:#1a1a1a;border:1px solid #404040;border-radius:6px;padding:12px;color:#e0e0e0;font-size:13px;line-height:1.5;resize:none;outline:none;font-family:inherit;transition:border-color .2s ease}.summary-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.summary-textarea::placeholder{color:#666;font-style:italic}.editor-help{margin-top:8px;font-size:11px;color:#888;text-align:center}.summary-display{flex:1;display:flex;flex-direction:column;padding:16px;overflow:hidden}.summary-text{flex:1;overflow-y:auto;margin-bottom:12px;padding-right:4px}.summary-text::-webkit-scrollbar{width:4px}.summary-text::-webkit-scrollbar-track{background:#2d2d2d}.summary-text::-webkit-scrollbar-thumb{background:#555;border-radius:2px}.summary-text::-webkit-scrollbar-thumb:hover{background:#666}.summary-text p{margin:0 0 8px;color:#e0e0e0;font-size:13px;line-height:1.6}.summary-text p.empty-line{height:8px}.summary-text p:last-child{margin-bottom:0}.summary-stats{display:flex;gap:16px;padding:8px 0;border-top:1px solid #404040;margin-top:auto}.stat-item{display:flex;align-items:center;gap:4px}.stat-label{font-size:11px;color:#888;font-weight:500}.stat-value{font-size:11px;color:#3b82f6;font-weight:600}.summary-sections{padding:12px 16px;border-top:1px solid #404040;background:#333}.section-indicator{display:flex;align-items:center;gap:8px}.section-dot{width:8px;height:8px;border-radius:50%;background:#555;transition:background-color .2s ease}.section-dot.active{background:#3b82f6;box-shadow:0 0 4px #3b82f666}.section-label{font-size:11px;color:#b0b0b0;font-weight:500}.prd-footer{position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:0 0 8px 8px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;box-shadow:0 -2px 8px #667eea4d}.prd-badge{display:flex;align-items:center;gap:6px}.prd-icon{font-size:14px}.prd-text{font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.prd-indicator{display:flex;gap:4px}.prd-dot{width:6px;height:6px;border-radius:50%;background-color:#ffffffb3;animation:prdPulse 2s infinite}.prd-dot:nth-child(2){animation-delay:.3s}.prd-dot:nth-child(3){animation-delay:.6s}@keyframes prdPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.summary-node .node-handle{width:16px;height:16px;border-radius:50%;transition:all .2s ease}.summary-node .node-handle[data-handlepos=left]{background:#007aff4d;border:2px solid rgba(0,122,255,.6)}.summary-node .node-handle[data-handlepos=right]{background:#34c7594d;border:2px solid rgba(52,199,89,.6)}.summary-node .node-handle[data-handlepos=top]{background:#ff95004d;border:2px solid rgba(255,149,0,.6)}.summary-node .node-handle[data-handlepos=bottom]{background:#af52de4d;border:2px solid rgba(175,82,222,.6)}.summary-node .node-handle[data-handlepos=left]:hover{background:#007affb3;border-color:#007aff;transform:scale(1.3);box-shadow:0 0 8px #007aff80}.summary-node .node-handle[data-handlepos=right]:hover{background:#34c759b3;border-color:#34c759;transform:scale(1.3);box-shadow:0 0 8px #34c75980}.summary-node .node-handle[data-handlepos=top]:hover{background:#ff9500b3;border-color:#ff9500;transform:scale(1.3);box-shadow:0 0 8px #ff950080}.summary-node .node-handle[data-handlepos=bottom]:hover{background:#af52deb3;border-color:#af52de;transform:scale(1.3);box-shadow:0 0 8px #af52de80}.summary-node.selected .node-handle[data-handlepos=left]{background:#007aff80;border-color:#007aff}.summary-node.selected .node-handle[data-handlepos=right]{background:#34c75980;border-color:#34c759}.summary-node.selected .node-handle[data-handlepos=top]{background:#ff950080;border-color:#ff9500}.summary-node.selected .node-handle[data-handlepos=bottom]{background:#af52de80;border-color:#af52de}.summary-node.selected .node-handle[data-handlepos=left]:hover{background:#007aff;transform:scale(1.4);box-shadow:0 0 12px #007affcc}.summary-node.selected .node-handle[data-handlepos=right]:hover{background:#34c759;transform:scale(1.4);box-shadow:0 0 12px #34c759cc}.summary-node.selected .node-handle[data-handlepos=top]:hover{background:#ff9500;transform:scale(1.4);box-shadow:0 0 12px #ff9500cc}.summary-node.selected .node-handle[data-handlepos=bottom]:hover{background:#af52de;transform:scale(1.4);box-shadow:0 0 12px #af52decc}@media (max-width: 600px){.summary-node{width:180px;min-height:300px}.summary-textarea,.summary-text p{font-size:12px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.summary-display,.summary-editor{animation:fadeIn .2s ease-out}.summary-node:focus-within{box-shadow:0 4px 20px #3b82f633}.summary-text:empty:before{content:"Click the edit button to add your project summary...";color:#666;font-style:italic;font-size:13px}.summary-text ::selection{background:#3b82f64d}.summary-textarea ::selection{background:#3b82f64d}.context-menu{position:fixed;background:#2d2d2d80;border:1px solid rgba(64,64,64,.5);border-radius:8px;box-shadow:0 8px 32px #0006;padding:8px 0;min-width:160px;z-index:10000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-backdrop-filter:blur(15px) saturate(1.2);backdrop-filter:blur(15px) saturate(1.2);animation:contextMenuAppear .15s ease-out}@keyframes contextMenuAppear{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-section{padding:2px 0}.context-menu-title{padding:6px 12px 2px;font-size:10px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.5px}.context-menu-item{width:100%;background:none;border:none;padding:6px 12px;text-align:left;cursor:pointer;color:#e0e0e0;font-size:12px;display:flex;align-items:center;gap:8px;transition:background-color .15s ease}.context-menu-item:hover{background:#404040}.context-menu-item:active{background:#4a4a4a}.context-menu-icon{font-size:14px;width:16px;text-align:center;flex-shrink:0}.context-menu-divider{height:1px;background:#404040;margin:4px 0}@media (max-width: 768px){.context-menu{min-width:180px}.context-menu-item{padding:12px 16px;font-size:16px}.context-menu-icon{font-size:18px}}.context-menu-item.primary-action{background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;font-weight:600;padding:12px;margin:4px 8px;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;box-shadow:0 2px 8px #ff6b354d}.context-menu-item.primary-action:hover{background:linear-gradient(135deg,#ff7b45,#f8a32e);transform:translateY(-1px);box-shadow:0 4px 12px #ff6b3566}.context-menu-item.primary-action:active{transform:translateY(0);box-shadow:0 2px 6px #ff6b354d}.context-menu-item.primary-action .context-menu-icon{font-size:16px;margin-bottom:2px}.context-menu-subtitle{font-size:10px;font-weight:400;opacity:.9;line-height:1.2}.context-menu:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff0d,#ffffff05);border-radius:8px;pointer-events:none}.group-context-menu{position:fixed;background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #0000004d;z-index:1000;min-width:220px;padding:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#fff}.group-context-menu-header{display:flex;align-items:center;gap:6px;padding:6px 10px;font-weight:500;color:#e5e5e5;border-bottom:1px solid #333;margin-bottom:2px}.group-icon{font-size:12px}.group-label{font-size:12px;cursor:pointer;font-weight:500;transition:color .15s ease;color:#e5e5e5}.group-label:hover{color:#60a5fa}.label-edit-container{display:flex;flex-direction:column;gap:2px}.group-label-input{font-size:12px;font-weight:500;border:1px solid #555;border-radius:3px;padding:2px 6px;outline:none;background:#2a2a2a;color:#e5e5e5;min-width:100px}.group-label-input:focus{border-color:#60a5fa;background:#333}.edit-hint{font-size:9px;color:#888;text-align:center;opacity:.7;font-weight:400}.group-context-menu-divider{height:1px;background:#333;margin:2px 0}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:12px;background:#ffffff0d;border-radius:8px;margin-bottom:12px}.color-box{width:20px;height:20px;border:2px solid transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.color-picker-btn{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;max-width:20px!important;max-height:20px!important;border:2px solid transparent!important;border-radius:4px!important;cursor:pointer!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s ease!important;position:relative!important;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#96ceb4,#feca57,#ff9ff3)!important;background-size:200% 200%!important;animation:gradient 2s ease infinite!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;padding:0!important;margin:0!important;box-sizing:border-box!important}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.color-box:hover,.color-picker-btn:hover{border-color:#888;transform:scale(1.1)}.color-box.selected{border-color:#60a5fa;border-width:2px}.selected-indicator{font-size:10px;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.8);font-weight:700}.resize-button,.ungroup-button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fffc;cursor:pointer;transition:all .2s ease;font-size:12px;font-weight:500;margin-top:4px}.resize-button:hover{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.ungroup-button:hover{background:#ef44441a;border-color:#ef44444d;color:#ef4444}.resize-icon,.ungroup-icon{font-size:12px}.resize-text,.ungroup-text{flex:1;text-align:left}.node-context-menu{position:fixed;background:#111827f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(75,85,99,.3);border-radius:8px;box-shadow:0 10px 15px -3px #0000004d,0 4px 6px -2px #0003;z-index:10000;min-width:220px;max-width:260px;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:nodeContextMenuFadeIn .15s ease-out}@keyframes nodeContextMenuFadeIn{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.node-context-menu-header{padding:10px 14px 8px;border-bottom:1px solid rgba(75,85,99,.2)}.node-context-menu-title{font-size:14px;font-weight:600;color:#f9fafb;margin-bottom:2px;display:flex;align-items:center;gap:6px}.node-context-menu-title:before{content:"🤖";font-size:14px}.node-context-menu-subtitle{font-size:11px;color:#9ca3af;font-weight:400}.node-context-menu-divider{height:1px;background:#4b556333;margin:0}.node-context-menu-section{padding:4px 0}.node-context-menu-item{width:100%;padding:8px 14px;background:transparent;border:none;color:#f9fafb;font-size:13px;text-align:left;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:10px;position:relative;overflow:hidden}.node-context-menu-item:hover{background:#ffffff0d;color:#fff;transform:translate(2px)}.node-context-menu-item:hover:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--action-color, #8b5cf6);border-radius:0 2px 2px 0}.node-context-menu-item:active{transform:translate(1px);background:#ffffff14}.node-context-menu-icon{font-size:14px;width:16px;text-align:center;flex-shrink:0;filter:grayscale(.3);transition:filter .15s ease}.node-context-menu-item:hover .node-context-menu-icon{filter:grayscale(0)}.node-context-menu-content{display:flex;flex-direction:column;gap:1px;flex:1}.node-context-menu-label{font-weight:500;line-height:1.2}.node-context-menu-description{font-size:10px;color:#9ca3af;line-height:1.2;font-weight:400}.node-context-menu-item:hover .node-context-menu-description{color:#d1d5db}@media (max-width: 768px){.node-context-menu{min-width:200px;max-width:240px}.node-context-menu-item{padding:10px 12px;font-size:14px}.node-context-menu-icon{font-size:15px}}.node-context-menu:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff08,#ffffff03);border-radius:12px;pointer-events:none}.node-context-menu:after{content:"";position:absolute;inset:-1px;background:linear-gradient(135deg,#8b5cf61a,#3b82f61a,#10b9811a);border-radius:13px;z-index:-1;opacity:0;transition:opacity .3s ease}.node-context-menu:hover:after{opacity:1}.ai-result-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.ai-result-modal{background:#1a1a1a;border:1px solid #333;border-radius:12px;width:85%;max-width:700px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #00000080;animation:slideUp .3s ease-out;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #333;background:linear-gradient(135deg,#2a2a2a,#1f1f1f)}.header-left{display:flex;align-items:center;gap:12px;flex:1}.history-navigation{display:flex;align-items:center;gap:8px;margin-left:16px;padding:4px 8px;background:#ffffff1a;border-radius:6px;font-size:12px}.nav-button{background:#fff3;border:none;border-radius:4px;color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;font-weight:700;transition:all .2s ease}.nav-button:hover:not(:disabled){background:#ffffff4d;transform:scale(1.05)}.nav-button:disabled{opacity:.4;cursor:not-allowed}.history-counter{color:#fffc;font-size:11px;min-width:40px;text-align:center}.action-icon{font-size:24px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#6366f11a;border-radius:8px;border:1px solid rgba(99,102,241,.2)}.modal-header h2{margin:0;color:#fff;font-size:20px;font-weight:600}.close-button{background:none;border:none;color:#888;font-size:28px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease;line-height:1}.close-button:hover{color:#fff;background:#ffffff1a}.modal-tabs{display:flex;background:#1f1f1f;border-bottom:1px solid #333}.tab-button{background:none;border:none;color:#888;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;border-bottom:2px solid transparent;position:relative}.tab-button:hover{color:#fff;background:#ffffff0d}.tab-button.active{color:#6366f1;border-bottom-color:#6366f1;background:#6366f10d}.modal-body{flex:1;overflow-y:auto;padding:20px;min-height:200px;max-height:65vh}.ai-result-content{color:#e5e5e5;line-height:1.6}.content-text p{margin:0 0 8px;white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.5}.content-text p.empty-line{margin:8px 0}.content-text p:last-child{margin-bottom:0}.ai-result-error{text-align:center;padding:40px 20px;color:#ff6b6b}.error-icon{font-size:48px;margin-bottom:16px}.ai-result-error h3{margin:0 0 12px;color:#ff6b6b;font-size:18px}.ai-result-error p{margin:0;color:#faa;font-size:14px}.ai-result-context{color:#e5e5e5}.context-section{margin-bottom:24px}.context-section:last-child{margin-bottom:0}.context-section h4{margin:0 0 12px;color:#6366f1;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.original-content,.context-info{background:#2a2a2a;border:1px solid #333;border-radius:8px;padding:16px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:13px;line-height:1.5;color:#d1d5db;white-space:pre-wrap;word-wrap:break-word}.project-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.stat-item{background:#2a2a2a;border:1px solid #333;border-radius:8px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.stat-label{color:#888;font-size:14px}.stat-value{color:#fff;font-weight:600;font-size:14px}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid #333;background:#1f1f1f;gap:12px}.footer-left,.footer-right{display:flex;align-items:center;gap:12px}.footer-right{flex:1;justify-content:flex-end}.copy-button,.apply-button,.add-canvas-button,.close-footer-button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent;display:flex;align-items:center;gap:6px}.copy-button{background:#374151;color:#fff;border-color:#4b5563}.copy-button:hover:not(:disabled){background:#4b5563;border-color:#6b7280}.copy-button:disabled{opacity:.5;cursor:not-allowed}.apply-button{background:#059669;color:#fff;border-color:#10b981}.apply-button:hover{background:#047857;border-color:#059669}.add-canvas-button{background:#7c3aed;color:#fff;border-color:#8b5cf6}.add-canvas-button:hover{background:#6d28d9;border-color:#7c3aed}.close-footer-button{background:#374151;color:#fff;border-color:#4b5563}.close-footer-button:hover{background:#4b5563;border-color:#6b7280}.modal-timestamp{padding:6px 20px;background:#111;border-top:1px solid #333;color:#666;font-size:11px;text-align:center}@media (max-width: 768px){.ai-result-modal{width:95%;max-height:95vh;margin:20px}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.modal-body{padding:20px;max-height:50vh}.modal-footer{padding:16px 20px;flex-direction:column;align-items:stretch;gap:12px}.footer-left,.footer-right{justify-content:center}.project-stats{grid-template-columns:1fr}.tab-button{padding:10px 16px;font-size:13px}}@media (max-width: 480px){.ai-result-modal{width:100%;height:100%;max-height:100vh;border-radius:0;margin:0}.modal-body{max-height:calc(100vh - 200px)}.action-icon{width:32px;height:32px;font-size:18px}}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#1a1a1a}.modal-body::-webkit-scrollbar-thumb{background:#444;border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background:#555}.notification-badge{position:fixed;top:20px;right:20px;z-index:9999;background:#ff6b35;border:2px solid #ff8c42;border-radius:20px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #ff6b354d;transition:all .2s ease;animation:slideInBounce .4s ease-out}.notification-badge:hover{background:#ff8c42;transform:scale(1.05);box-shadow:0 6px 16px #ff6b3566}@keyframes slideInBounce{0%{opacity:0;transform:translate(100%) scale(.8)}60%{opacity:1;transform:translate(-5px) scale(1.1)}to{opacity:1;transform:translate(0) scale(1)}}.badge-count{color:#fff;font-weight:700;font-size:14px;min-width:20px;text-align:center}.badge-dismiss{background:#fff3;border:none;color:#fff;font-size:12px;width:18px;height:18px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.badge-dismiss:hover{background:#ffffff4d;transform:scale(1.1)}@media (max-width: 480px){.notification-badge{top:10px;right:10px;padding:6px 10px}.badge-count{font-size:12px;min-width:18px}.badge-dismiss{width:16px;height:16px;font-size:10px}}.login-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:1000}.login-background{width:100%;height:100%;background:linear-gradient(135deg,#1a1a1a,#2d2d2d,#1a1a1a);display:flex;align-items:center;justify-content:center;position:relative}.login-background:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(120,119,198,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,119,198,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(120,219,255,.1) 0%,transparent 50%);pointer-events:none}.login-card{background:#2d2d2df2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;position:relative;z-index:1}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:28px;font-weight:700;color:#fff;margin:0 0 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-subtitle{font-size:16px;color:#a0a0a0;margin:0;line-height:1.4}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:14px;font-weight:500;color:#fff!important;margin:0}.form-input{padding:14px 16px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#ffffff0d;color:#fff;font-size:16px;transition:all .2s ease;font-family:inherit}.form-input:focus{outline:none;border-color:#007acc;background:#ffffff14;box-shadow:0 0 0 3px #007acc1a}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-input::placeholder{color:#666}.error-message{padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;text-align:center;margin:8px 0}.error-message:not(.success){background:#ff3b301a;border:1px solid rgba(255,59,48,.2);color:#ff6b6b}.error-message.success{background:#34c7591a;border:1px solid rgba(52,199,89,.2);color:#4cd964}.login-button{padding:16px 24px;background:linear-gradient(135deg,#007acc,#0056b3);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#0056b3,#004494);transform:translateY(-1px);box-shadow:0 8px 20px #007acc4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.loading-spinner{animation:spin 1s linear infinite}.login-footer{margin-top:24px;text-align:center}.toggle-text{color:#a0a0a0;font-size:14px;margin:0;display:flex;align-items:center;justify-content:center;gap:8px}.toggle-button{background:none;border:none;color:#007acc;font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;transition:color .2s ease}.toggle-button:hover:not(:disabled){color:#0056b3}.toggle-button:disabled{opacity:.6;cursor:not-allowed}.forgot-password-link{text-align:center;margin-top:16px}.link-button{background:none;border:none;color:#007acc;font-size:14px;cursor:pointer;text-decoration:underline;transition:color .2s ease;padding:0}.link-button:hover:not(:disabled){color:#0056b3}.link-button:disabled{opacity:.6;cursor:not-allowed}.success-message{background:#28a7451a;border:1px solid rgba(40,167,69,.3);color:#28a745;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;text-align:center}.special-access-hint{margin-top:20px;text-align:center;padding:12px;background:#ffc1071a;border:1px solid rgba(255,193,7,.2);border-radius:8px}.special-access-hint small{color:#ffc107;font-size:12px}@media (max-width: 480px){.login-card{margin:20px;padding:24px;max-width:none}.login-title{font-size:24px}.login-subtitle{font-size:14px}}.login-card{animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.password-input-container{position:relative;display:flex;align-items:center}.password-input-container .form-input{padding-right:45px}.password-toggle-btn{position:absolute;right:12px;background:none;border:none;cursor:pointer;font-size:16px;color:#888;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:color .2s ease}.password-toggle-btn:hover{color:#ff7b00}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.5}#root{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}.app{width:100%;height:100%}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-container{position:relative;max-width:90vw;max-height:90vh;overflow-y:auto;background:#2d2d2d;border-radius:12px;box-shadow:0 20px 60px #0000004d;border:1px solid #404040}.modal-close-btn{position:absolute;top:1rem;right:1rem;background:#ffffff1a;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;color:#b0b0b0;z-index:10001;transition:all .2s ease}.modal-close-btn:hover{background:#f44;color:#fff;transform:scale(1.1)}.ai-enhanced{position:relative}.ai-indicator{background:radial-gradient(circle,#ff6b35,#ff4500,#e63900);color:#fff;border:2px solid #ff8c42;border-radius:8px;width:32px;height:28px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;cursor:pointer;animation:aiPulse 2s ease-in-out infinite;box-shadow:0 0 15px #ff6b3599,inset 0 1px #ffffff4d;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:10;transition:all .3s ease;position:relative}.ai-indicator:before{content:"✦";font-size:16px;animation:aiSpin 3s linear infinite}.ai-indicator:hover{transform:scale(1.1);box-shadow:0 0 25px #ff6b35e6,inset 0 1px #fff6;border-color:#fa6}@keyframes aiPulse{0%,to{box-shadow:0 0 15px #ff6b3599,inset 0 1px #ffffff4d;transform:scale(1)}50%{box-shadow:0 0 25px #ff6b35e6,0 0 35px #ff6b3566,inset 0 1px #fff6;transform:scale(1.05)}}@keyframes aiSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.react-flow__controls{background:#ffffffe6;border:1px solid rgba(0,0,0,.1);border-radius:8px;box-shadow:0 2px 8px #0000001a;bottom:30px!important}.react-flow__controls-button{background:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.1);color:#333;font-size:16px;font-weight:700;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.react-flow__controls-button:hover{background:#007aff1a;color:#007aff}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls-button svg{display:none}.selection-mode-active,.selection-mode-active *{cursor:crosshair!important}.selection-mode-inactive{cursor:default!important}.react-flow__controls-zoomin{position:relative}.react-flow__controls-zoomin:before{content:"+";font-size:18px;font-weight:700;color:#333}.react-flow__controls-zoomin:hover:before{color:#007aff}.react-flow__controls-zoomout:before{content:"−";font-size:18px;font-weight:700;color:#333}.react-flow__controls-zoomout:hover:before{color:#007aff}.react-flow__controls-fitview:before{content:"⊞";font-size:16px;color:#333}.react-flow__controls-fitview:hover:before{color:#007aff}.react-flow__controls-interactive:before{content:"🔑";font-size:14px}.react-flow__controls-interactive.locked:before{content:"🔒";font-size:14px}.react-flow__minimap{background:#ffffffb3!important;border:1px solid rgba(0,0,0,.1)!important;border-radius:12px!important;box-shadow:0 4px 16px #0000001a!important;bottom:30px!important;right:20px!important;overflow:hidden!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.react-flow__minimap-mask{fill:#8080801a!important;stroke:#666!important;stroke-width:2!important}.react-flow__minimap-node{fill:#80808099!important;stroke:#666!important;stroke-width:1!important}.react-flow__minimap svg{border-radius:12px}.react-flow__resize-control{border:none!important;background:transparent!important}.react-flow__resize-control.line{border:none!important;background:#ffffff4d!important}.react-flow__resize-control.handle{border:2px solid rgba(255,255,255,.8)!important;background:#0009!important;border-radius:3px!important}.react-flow__resize-control.handle:hover{background:#000c!important;border-color:#fff!important}.react-flow__attribution,.react-flow__panel.react-flow__attribution{display:none!important}.system-btn{color:#6b7280}.system-btn:hover{color:#9ca3af;background-color:#9ca3af1a}.system-btn.has-context{color:#10b981;background-color:#10b9811a}.system-btn.has-context:hover{color:#059669;background-color:#10b98133}.rag-panel{position:absolute;top:60px;right:0;width:300px;background:#1f2937;border:1px solid #374151;border-radius:8px;box-shadow:0 10px 25px #0000004d;z-index:1000;max-height:400px;overflow:hidden}.rag-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #374151;background:#111827}.rag-panel-header h4{margin:0;color:#f9fafb;font-size:14px;font-weight:600}.rag-controls{display:flex;align-items:center;gap:12px}.rag-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#d1d5db;cursor:pointer}.rag-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#10b981}.close-panel-btn{background:none;border:none;color:#9ca3af;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.close-panel-btn:hover{color:#f9fafb}.rag-sources-list{max-height:320px;overflow-y:auto;padding:8px}.no-sources{padding:20px;text-align:center;color:#6b7280;font-size:12px}.rag-source-item{background:#374151;border-radius:6px;padding:12px;margin-bottom:8px;border:1px solid #4b5563}.rag-source-item:last-child{margin-bottom:0}.source-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.source-type{background:#1f2937;color:#10b981;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.source-title{color:#f9fafb;font-size:12px;font-weight:500;flex:1;margin-left:8px;text-align:right}.source-content{color:#d1d5db;font-size:11px;line-height:1.4;opacity:.8}.search-btn{color:#6b7280;position:relative}.search-btn:hover{color:#9ca3af;background-color:#9ca3af1a}.search-btn.search-active{color:#3b82f6;background-color:#3b82f61a}.search-btn.search-active:hover{color:#2563eb;background-color:#3b82f633}.search-btn.searching{color:#f59e0b;background-color:#f59e0b1a}.search-btn:disabled{opacity:.6;cursor:not-allowed}.search-spinner{position:absolute;top:2px;right:2px;width:8px;height:8px;border:1px solid transparent;border-top:1px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
