.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,0.5);--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:rgba(240,240,240,0.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,0.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(0,0,0,0.08);--xy-node-boxshadow-selected-default:0 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,0.08);--xy-selection-border-default:1px dotted rgba(0,89,220,0.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,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,0.25);--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:rgba(60,60,60,0.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,0.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(255,255,255,0.08);--xy-node-boxshadow-selected-default:0 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,0.08);--xy-selection-border-default:1px dotted rgba(200,200,220,0.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,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;touch-action:none}.react-flow__pane.draggable{cursor:-webkit-grab;cursor:grab}.react-flow__pane.dragging{cursor:-webkit-grabbing;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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .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:-webkit-grab;cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-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.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-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{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{position:absolute;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.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-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{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-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{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-button:last-child{border-bottom:none}.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.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{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.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.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.bottom,.react-flow__resize-control.line.top{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))}:root{--bg:#111316;--panel:#191c20;--panel-2:#21252b;--field:#111316;--preview-bg:#101214;--line:#343a43;--text:#edf1f5;--muted:#9ca6b4;--accent:#48c3a7;--accent-2:#e7c56b;--danger:#ef6f6c;--button-text:#07110e;--brand-bg:rgba(25,28,32,0.9);--node-done-bg:#1f4038;--node-done-text:#85dfc8;--node-queued-bg:#303641;--node-queued-text:#c9d1dc;--node-running-bg:#213d4c;--node-running-text:#8fd4f3;--node-error-bg:#4c2528;--node-error-text:#ffaaa7;--flow-dot:#434a55;--flow-handle-border:#101214}body[data-theme=light]{--bg:#f4f6f8;--panel:#ffffff;--panel-2:#ffffff;--field:#f8fafc;--preview-bg:#eef2f6;--line:#d7dde5;--text:#1c232d;--muted:#647181;--accent:#1cae91;--accent-2:#b98b22;--danger:#d64f4a;--button-text:#f7fffc;--brand-bg:rgba(255,255,255,0.92);--node-done-bg:#dff6ef;--node-done-text:#0c725e;--node-queued-bg:#edf1f5;--node-queued-text:#566273;--node-running-bg:#dceff8;--node-running-text:#166083;--node-error-bg:#ffe1e0;--node-error-text:#a3312d;--flow-dot:#c2cbd6;--flow-handle-border:#f8fafc}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;height:100vh;overflow:hidden}.canvas-wrap{min-width:0;position:relative}.topbar{align-items:center;display:flex;gap:10px;left:14px;position:absolute;top:14px;z-index:10}.brand{background:var(--brand-bg);display:flex;font-weight:700;padding:0 14px}.brand,.icon-button,.primary-button{align-items:center;border:1px solid var(--line);border-radius:8px;height:40px}.icon-button,.primary-button{color:var(--text);cursor:pointer;display:inline-flex;gap:8px;justify-content:center;padding:0 12px}.icon-button{background:var(--brand-bg);width:40px}.primary-button{background:var(--accent);border-color:transparent;color:var(--button-text);font-weight:700}.primary-button:disabled{cursor:wait;filter:grayscale(.4);opacity:.7}.side-panel{background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:18px;overflow:auto;padding:18px}.panel-title{font-size:14px;font-weight:700;letter-spacing:0;margin:0 0 8px}.hint,.panel-copy{color:var(--muted);font-size:13px;line-height:1.45;margin:0}.node-card{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;min-width:240px;overflow:visible}.output-node{border-color:rgba(231,197,107,.45)}.node-head{align-items:center;display:flex;gap:8px;padding:10px 12px}.node-title{flex:1 1;font-size:13px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-body{border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;min-width:0;padding:10px 12px}.node-meta{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.node-preview{aspect-ratio:16/9;background:var(--preview-bg);border:1px solid var(--line);border-radius:6px;display:block;max-height:150px;object-fit:contain;width:100%}.text-input-form{display:grid;grid-gap:10px;gap:10px;min-width:320px;padding:4px}.text-input-form textarea{background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--text);line-height:1.45;min-height:96px;min-width:0;padding:12px;resize:vertical}.text-input-form button{height:32px}.node-run-button,.text-input-form button{background:var(--accent);border:0;border-radius:6px;color:var(--button-text);cursor:pointer;font-weight:700}.node-run-button{align-items:center;box-sizing:border-box;display:inline-flex;gap:6px;height:34px;justify-content:center;margin-top:2px;padding:0 12px;width:100%}.node-run-button:disabled{cursor:wait;opacity:.7}.node-tool-button{align-items:center;background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;display:inline-flex;height:28px;justify-content:center;padding:0;width:32px}.node-tool-button:hover{border-color:var(--accent);color:var(--accent)}.node-tool-button:disabled{cursor:wait;opacity:.7}.node-tool-button-retry{border-color:var(--node-error-text);color:var(--node-error-text)}.node-param-list{display:grid;grid-gap:6px;gap:6px;margin-bottom:2px}.node-inline-input{align-items:center;background:var(--field);border:1px dashed var(--line);border-radius:6px;color:var(--muted);display:grid;grid-gap:4px;gap:4px;grid-template-columns:minmax(54px,.75fr) minmax(72px,1fr);min-width:0;padding:7px}.node-inline-input span,.node-inline-input strong{font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-inline-input strong{color:var(--text);font-weight:700}.node-param-row{align-items:center;display:grid;grid-gap:6px;gap:6px;grid-template-columns:minmax(54px,.75fr) minmax(72px,1fr)}.node-param-row span{color:var(--muted);font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-tools{align-items:center;display:inline-flex;flex:0 0 auto;gap:4px}.node-param-row input,.node-param-row select{background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:12px;height:28px;min-width:0;padding:0 7px}.node-run-button-done{background:var(--node-done-bg);color:var(--node-done-text)}.node-run-button-retry{background:var(--node-error-bg);color:var(--node-error-text)}.node-run-button-done:disabled{cursor:default;opacity:1}.text-preview{color:var(--text);font-size:12px;line-height:1.45;max-height:110px;padding:10px;width:100%}.link-preview,.text-preview{background:var(--field);border:1px solid var(--line);border-radius:6px;box-sizing:border-box;overflow:hidden}.link-preview{display:grid;max-width:100%;width:280px}.link-preview-image{background:var(--preview-bg);display:block;object-fit:contain;width:100%}.link-preview-body{display:grid;grid-gap:5px;gap:5px;min-width:0;padding:10px}.link-preview-site{color:var(--muted);font-size:11px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview-title{color:var(--text);font-size:13px;font-weight:700;line-height:1.35;-webkit-line-clamp:2}.link-preview-description,.link-preview-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.link-preview-description{color:var(--muted);font-size:12px;line-height:1.4;-webkit-line-clamp:3}.link-preview-link{border-top:1px solid var(--line);color:var(--accent);font-size:12px;font-weight:700;min-width:0;overflow:hidden;padding:8px 10px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.status{border-radius:999px;font-size:11px;font-weight:700;margin-left:auto;padding:3px 7px}.status-idle,.status-queued{background:var(--node-queued-bg);color:var(--node-queued-text)}.status-running{background:var(--node-running-bg);color:var(--node-running-text)}.status-done{background:var(--node-done-bg);color:var(--node-done-text)}.status-error{background:var(--node-error-bg);color:var(--node-error-text)}.param-row{align-items:center;display:grid;grid-gap:6px;gap:6px;grid-template-columns:70px 1fr}.param-row label{color:var(--muted);font-size:12px}.param-row input,.param-row select{background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--text);height:30px;min-width:0;padding:0 8px}.download-link{color:var(--accent);font-size:12px;font-weight:700;text-decoration:none}.react-flow__node{background:transparent!important;border-radius:8px;box-shadow:none!important}.react-flow,.react-flow__node,.react-flow__pane,.react-flow__renderer,.react-flow__selectionpane,.react-flow__viewport{cursor:default!important}.react-flow__node.selected,.react-flow__node:focus,.react-flow__node:focus-visible{background:transparent!important;border:0!important;box-shadow:none!important;outline:none}.react-flow__node.selected .node-card{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 32%,transparent)}.react-flow__node-output{background:transparent!important;border:0!important;box-shadow:none!important}.react-flow__handle{background:transparent;border:0;cursor:crosshair!important;height:14px;width:14px}.socket-handle{--socket-color:var(--accent);z-index:8}.socket-handle:before{background:color-mix(in srgb,var(--socket-color) 48%,white);border:1px solid color-mix(in srgb,var(--socket-color) 58%,white);box-shadow:0 1px 2px rgba(15,23,42,.12);content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:7px}.socket-shape-circle:before{border-radius:999px}.socket-shape-diamond:before{border-radius:2px;transform:translate(-50%,-50%) rotate(45deg)}.socket-shape-square:before{border-radius:2px}.socket-handle:after{background:rgba(17,24,39,.94);border:1px solid rgba(255,255,255,.12);border-radius:6px;color:white;content:attr(data-tooltip);font-size:11px;font-weight:600;line-height:1.35;max-width:160px;min-width:0;opacity:0;padding:4px 6px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .12s ease .2s,visibility .12s ease .2s;visibility:hidden;white-space:nowrap;z-index:30}.socket-handle:hover:after{opacity:1;visibility:visible}.react-flow__handle-left.socket-handle:after{right:calc(100% + 8px)}.react-flow__handle-right.socket-handle:after{left:calc(100% + 8px)}.react-flow__background{background:var(--bg)}.react-flow__background-pattern.dots{fill:var(--flow-dot)}.drop-overlay{align-items:center;background:rgba(72,195,167,.1);border:2px dashed var(--accent);color:var(--text);display:flex;font-size:18px;font-weight:700;inset:16px;justify-content:center;pointer-events:none;position:absolute;z-index:20}.task-list{display:grid;grid-gap:8px;gap:8px}.task-option{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer;padding:10px;text-align:left}.task-option strong{display:block;font-size:13px}.task-option span{color:var(--muted);display:block;font-size:12px;line-height:1.4;margin-top:4px}.task-picker{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,.28);color:var(--text);display:grid;grid-gap:10px;gap:10px;padding:12px;position:absolute;width:300px;z-index:30}body[data-theme=light] .task-picker{box-shadow:0 18px 45px rgba(31,42,55,.16)}.task-picker-head{align-items:baseline;display:flex;gap:10px;justify-content:space-between}.task-picker-head strong{font-size:13px}.task-picker-head span{color:var(--muted);font-size:11px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-search{align-items:center;background:var(--field);border:1px solid var(--line);border-radius:6px;color:var(--muted);display:flex;gap:8px;height:36px;padding:0 10px}.task-search input{background:transparent;border:0;color:var(--text);height:100%;min-width:0;outline:0;width:100%}.task-picker-list{display:grid;grid-gap:8px;gap:8px;max-height:260px;overflow:auto;padding-right:2px}.task-picker-option{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);cursor:pointer;display:grid;grid-gap:4px;gap:4px;padding:10px;text-align:left}.task-picker-option:hover{border-color:var(--accent)}.task-picker-option strong{font-size:13px}.task-picker-empty,.task-picker-option small,.task-picker-option span{color:var(--muted);font-size:12px;line-height:1.35}.task-picker-option small{color:var(--accent);font-weight:700}.task-picker-empty{padding:10px 4px}@media (max-width:820px){.app-shell{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 240px}.side-panel{border-left:0;border-top:1px solid var(--line)}}