@import url("https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700&display=swap");:root{--bg-color:#101010;--grid-color:rgba(255,255,255,.05);--node-bg:rgba(28,28,30,.7);--node-border:rgba(255,255,255,.1);--node-border-highlight:rgba(255,255,255,.25);--node-shadow:rgba(0,0,0,.3);--text-color:#f0f0f0;--text-secondary-color:#a0a0a0;--accent-color:#fff;--accent-color-selected:#fff;--handle-color:#555;--danger-color:#f44336;--node-corner-radius:20px}body,html{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background-color:var(--bg-color);color:var(--text-color);font-family:Satoshi,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app-container{width:100%;height:100%;cursor:-webkit-grab;cursor:grab;touch-action:none;background-image:radial-gradient(var(--grid-color) 1px,transparent 1px);background-size:25px 25px}#app-container.grabbing{cursor:-webkit-grabbing;cursor:grabbing}#canvas{position:relative;width:100%;height:100%;transform-origin:0 0;will-change:transform;transform:translateZ(0)}#connections-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.connection-path{stroke:var(--node-border-highlight);stroke-width:2px;fill:none;pointer-events:visibleStroke;cursor:pointer}.connection-path:hover{stroke:var(--accent-color)}.connection-path.selected{stroke:var(--accent-color-selected);stroke-width:2px}.connection-path-drawing{stroke:var(--accent-color);stroke-dasharray:6 6;animation:dash-flow 1s linear infinite;pointer-events:none}@keyframes dash-flow{to{stroke-dashoffset:-12}}#connection-delete-btn{position:absolute;display:none;width:22px;height:22px;background-color:var(--danger-color);color:#fff;border:2px solid var(--bg-color);border-radius:50%;font-size:14px;line-height:18px;text-align:center;cursor:pointer;z-index:10000;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 2px 5px var(--node-shadow)}.node{position:absolute;display:flex;flex-direction:column;width:340px;min-width:340px;max-width:700px;min-height:80px;max-height:210vh;background-color:var(--node-bg);border:1px solid var(--node-border);border-radius:var(--node-corner-radius);box-shadow:0 15px 35px var(--node-shadow),0 5px 15px rgba(0,0,0,.2);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);resize:both;overflow:visible;cursor:default;z-index:1}.node:hover{z-index:1000!important}.node.drop-target-highlight,.node:hover{border-color:var(--node-border-highlight)}.node.drop-target-highlight{box-shadow:0 0 15px var(--node-border-highlight)}.drag-handle{position:relative;height:40px;flex-shrink:0;cursor:-webkit-grab;cursor:grab;padding:4px 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;align-items:center}.drag-handle:before{content:"";position:absolute;top:12px;left:50%;transform:translateX(-50%);width:32px;height:4px;background:rgba(255,255,255,.1);border-radius:2px}.model-display{position:absolute;top:4px;left:8px;font-size:11px;font-weight:500;color:var(--text-secondary-color);padding:2px 6px;border-radius:4px;pointer-events:none;z-index:1}.node-text-content{padding:0 28px 28px;box-sizing:border-box}.node-content-editable{padding:0 24px 24px;box-sizing:border-box;width:100%;height:100%;flex-grow:1;background:transparent;border:none;outline:none;resize:none;color:var(--text-primary);font-family:inherit;font-size:14px;line-height:1.6}.node-content-editable::placeholder{color:var(--text-secondary)}.node-content-editable::-webkit-scrollbar{width:8px}.node-content-editable::-webkit-scrollbar-track{background:transparent}.node-content-editable::-webkit-scrollbar-thumb{background-color:var(--handle-color);border-radius:4px}.node-content-editable::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}.node-footer{position:absolute;bottom:0;left:4px;right:4px;height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 4px 0 16px;box-sizing:border-box}.node:hover .node-footer .model-picker{opacity:1;transform:translateY(0)}.model-picker{position:relative;z-index:11;opacity:0;transform:translateY(5px);transition:all .2s ease}.model-picker.open{opacity:1;transform:translateY(0);z-index:1001}.node:hover .model-picker{z-index:1001}.model-picker-btn{display:flex;align-items:center;gap:4px;background:none;border:none;border-radius:8px;padding:6px 8px;font-family:inherit;font-size:13px;font-weight:500;color:var(--text-secondary-color);cursor:pointer;transition:all .2s ease}.model-picker-btn:hover{background:rgba(255,255,255,.1);color:var(--text-color)}.model-picker-btn svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;transition:transform .2s ease}.model-picker-dropdown{position:absolute;bottom:calc(100% + 6px);left:0;min-width:100%;list-style:none;margin:0;background:var(--node-bg);border:1px solid var(--node-border);border-radius:12px;box-shadow:0 10px 20px var(--node-shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:6px;opacity:0;transform-origin:bottom left;transform:translateY(10px) scale(.95);pointer-events:none;transition:all .2s ease;z-index:1002}.model-picker.open .model-picker-dropdown{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.model-picker.open .model-picker-btn svg{transform:rotate(180deg)}.model-picker-option{padding:8px 12px;font-size:13px;color:var(--text-secondary-color);border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.model-picker-option:hover{background:rgba(255,255,255,.1);color:var(--text-color)}.model-picker-option.selected{color:var(--text-color);font-weight:500}.markdown-node .markdown-content{flex-grow:1;padding:8px 12px 12px;color:var(--text-color);font-size:14px;line-height:1.5;overflow-y:scroll;width:100%;box-sizing:border-box}.markdown-node .markdown-content::-webkit-scrollbar{width:8px}.markdown-node .markdown-content::-webkit-scrollbar-track{background:transparent}.markdown-node .markdown-content::-webkit-scrollbar-thumb{background-color:var(--handle-color);border-radius:4px}.markdown-node .markdown-content::-webkit-scrollbar-thumb:hover{background-color:var(--accent-color)}.markdown-node .markdown-content code{background:#1a1a1a;border:1px solid #333;border-radius:4px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.markdown-node .markdown-content pre{background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:12px;overflow-x:auto;margin:8px 0}.markdown-node .markdown-content pre code{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;margin:0!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:inherit;display:block;white-space:pre}.markdown-node .markdown-content pre code *{background:transparent!important;border:none!important;padding:0!important;margin:0!important}.markdown-node .markdown-content a{color:#4ea1ff;text-decoration:none}.markdown-node .markdown-content a:hover{text-decoration:underline}.thinking-node .thinking-content{flex-grow:1;padding:8px 12px 12px;color:var(--text-color);font-size:14px;line-height:1.5;overflow-y:scroll;width:100%;box-sizing:border-box;font-style:italic;opacity:.9}.thinking-node .thinking-content code{background:#141414;border:1px dashed #333;border-radius:4px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.thinking-node .thinking-content pre{background:#141414;border:1px dashed #333;border-radius:6px;padding:12px;overflow-x:auto;margin:8px 0}.markdown-body.editable{height:100%;display:flex;flex-direction:column}.markdown-editor-content{flex-grow:1}.markdown-editor-content,.markdown-editor-content .ProseMirror{outline:none;border:none;background:transparent;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;padding:0;margin:0;min-height:100px}.markdown-editor-content .ProseMirror p{margin:0 0 8px}.markdown-editor-content .ProseMirror p:last-child{margin-bottom:0}.markdown-editor-content .ProseMirror h1,.markdown-editor-content .ProseMirror h2,.markdown-editor-content .ProseMirror h3,.markdown-editor-content .ProseMirror h4,.markdown-editor-content .ProseMirror h5,.markdown-editor-content .ProseMirror h6{font-weight:700;margin:12px 0 8px}.markdown-editor-content .ProseMirror h1{font-size:1.5em}.markdown-editor-content .ProseMirror h2{font-size:1.3em}.markdown-editor-content .ProseMirror h3{font-size:1.1em}.markdown-editor-content .ProseMirror strong{font-weight:700}.markdown-editor-content .ProseMirror em{font-style:italic}.markdown-editor-content .ProseMirror code{background:#1a1a1a;border:1px solid #333;border-radius:4px;padding:2px 4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.markdown-editor-content .ProseMirror pre{background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:12px;overflow-x:auto;margin:8px 0}.markdown-editor-content .ProseMirror pre code{background:transparent!important;border:none!important;border-radius:0!important;padding:0!important;margin:0!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:inherit;display:block;white-space:pre}.markdown-editor-content .ProseMirror pre code *{background:transparent!important;border:none!important;padding:0!important;margin:0!important}.markdown-editor-content .ProseMirror ol,.markdown-editor-content .ProseMirror ul{padding-left:20px;margin:8px 0}.markdown-editor-content .ProseMirror li{margin:4px 0}.markdown-editor-content .ProseMirror blockquote{border-left:3px solid #4ea1ff;padding-left:12px;margin:8px 0;font-style:italic;color:#ccc}.markdown-editor-content .ProseMirror a{color:#4ea1ff;text-decoration:none}.markdown-editor-content .ProseMirror a:hover{text-decoration:underline}.markdown-editor-content .ProseMirror p.is-editor-empty:first-child:before{content:"Type your markdown here...";float:left;color:#666;pointer-events:none;height:0}.node-action-btn{position:absolute;background:none;border:none;color:var(--text-secondary-color);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(5px);transition:all .2s ease;z-index:10}.node:hover .node-action-btn{opacity:1;transform:translateY(0)}.node-generate-btn{width:36px;height:36px;bottom:4px;right:4px;border-radius:50%;background:rgba(0,0,0,.3);border:1px solid var(--node-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.node-generate-btn:hover{background:var(--accent-color);color:var(--bg-color);border-color:var(--accent-color)}.node-generate-btn.loading{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.connector{position:absolute;width:8px;height:16px;background:var(--bg-color);border:1px solid var(--node-border);top:50%;transform:translateY(-50%) scale(.8);cursor:crosshair;pointer-events:all;transition:all .2s ease;opacity:0;z-index:10}.node:hover .connector{opacity:1;transform:translateY(-50%) scale(1)}.connector:hover{background:var(--accent-color);border-color:var(--accent-color)}.connector.input{left:0;border-radius:0 8px 8px 0;border-left:none}.connector.output{right:0;border-radius:8px 0 0 8px;border-right:none}.node-delete-btn{width:24px;height:24px;top:8px;right:8px}.node-delete-btn:hover{color:#fff}.image-node{padding:0;overflow:hidden;display:flex;flex-direction:column}.image-container{flex:1 1;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:11px}.image-container img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}.image-node .node-delete-btn{position:absolute;top:8px;right:8px;background-color:rgba(0,0,0,.7);color:#fff;border-radius:50%;z-index:20}.image-node .connector{z-index:15}.html-preview-node{padding:0;overflow:hidden;display:flex;flex-direction:column}.html-preview-node .drag-handle{height:20px;background:transparent;cursor:move;flex-shrink:0}.html-preview-container{flex:1 1;display:flex;align-items:stretch;justify-content:stretch;overflow:hidden;border-radius:0 0 11px 11px}.html-preview-container iframe{width:100%;height:100%;border:0;display:block;background:#fff}.html-preview-node .node-delete-btn{right:8px;border-radius:50%}.html-preview-node .fullscreen-btn,.html-preview-node .node-delete-btn{position:absolute;top:8px;background-color:rgba(0,0,0,.7);color:#fff;z-index:20}.html-preview-node .fullscreen-btn{right:40px;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.html-preview-node .fullscreen-btn:hover{background-color:rgba(0,0,0,.9)}.html-preview-node .fullscreen-btn .material-icons{font-size:16px}.html-preview-node .connector{z-index:15}.video-node{padding:0;overflow:hidden;display:flex;flex-direction:column}.video-node .drag-handle{height:20px;background:transparent;cursor:move;flex-shrink:0}.video-container{flex:1 1;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:0 0 11px 11px;background:rgba(0,0,0,.2)}.video-container video{width:100%;height:100%;display:block;background:#000}.video-node .node-delete-btn{position:absolute;top:8px;right:8px;background-color:rgba(0,0,0,.7);color:#fff;border-radius:50%;z-index:20}.video-node .connector{z-index:15}.fullscreen-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.95);z-index:10000;display:flex;align-items:center;justify-content:center}.fullscreen-content{width:90%;height:90%;background:#fff;border-radius:8px;overflow:hidden;position:relative;box-shadow:0 10px 30px rgba(0,0,0,.5)}.fullscreen-content iframe{width:100%;height:100%;border:none}.fullscreen-exit-btn{position:absolute;top:16px;right:16px;background-color:rgba(0,0,0,.8);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10001;transition:background-color .2s}.fullscreen-exit-btn:hover{background-color:rgba(0,0,0,1)}.fullscreen-exit-btn .material-icons{font-size:24px}