.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.agent-node{background-color:#fff;border:2px solid #1890ff;border-radius:8px;padding:12px 16px;min-width:120px;max-width:200px;box-shadow:0 2px 8px #00000014;transition:all .2s ease;position:relative}.agent-node:hover{box-shadow:0 4px 12px #0000001f}.agent-node.selected{box-shadow:0 0 0 3px #1890ff33;border-color:#0050b3}.agent-node.connecting{opacity:.5}.agent-node-content{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.agent-node-title{font-weight:600;font-size:13px;color:#262626;word-break:break-word;line-height:1.4;max-height:40px;overflow:hidden;text-overflow:ellipsis}.agent-node-meta{display:flex;flex-direction:column;gap:4px;width:100%}.meta-item{font-size:11px;color:#8c8c8c;padding:2px 6px;background-color:#f0f0f0;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-node .ant-badge{font-size:10px!important}.react-flow__handle{background-color:transparent;border:2px solid currentColor;width:8px;height:8px;min-width:8px;border-radius:50%;cursor:crosshair}.react-flow__handle:hover{box-shadow:0 0 8px #0003;width:10px;height:10px;margin:-1px}.react-flow__handle.connectingFrom{background-color:currentColor}.react-flow__handle.valid{border-color:#52c41a}.react-flow__handle.invalid{border-color:#ff4d4f}.agent-node[data-type=product_manager]{border-left:4px solid #FF6B6B}.agent-node[data-type=architect]{border-left:4px solid #4ECDC4}.agent-node[data-type=qa]{border-left:4px solid #45B7D1}.agent-node[data-type=devops]{border-left:4px solid #FFA07A}.agent-node[data-type=director]{border-left:4px solid #98D8C8}@media (max-width: 768px){.agent-node{min-width:100px;max-width:150px;padding:10px 12px}.agent-node-title{font-size:12px}.meta-item{font-size:10px}}.dag-canvas-container{background-color:#f9f9f9;border:1px solid #d9d9d9;border-radius:8px;overflow:hidden;position:relative}.dag-canvas-container .react-flow{background:linear-gradient(135deg,#f5f5f5,#fff)}.dag-canvas-container .react-flow__minimap{background-color:#ffffffe6;border:1px solid #d9d9d9;border-radius:4px}.dag-canvas-container .react-flow__controls{box-shadow:0 2px 8px #0000001a;border-radius:4px;border:1px solid #d9d9d9}.dag-canvas-container .react-flow__controls button{background-color:#fff;color:#1890ff;border:none;border-bottom:1px solid #d9d9d9}.dag-canvas-container .react-flow__controls button:last-child{border-bottom:none}.dag-canvas-container .react-flow__controls button:hover{background-color:#f5f5f5;color:#0050b3}.dag-canvas-container .react-flow__node.selected{box-shadow:0 0 0 2px #1890ff}.dag-canvas-container .react-flow__node.nopan{pointer-events:none}.dag-canvas-container .react-flow__edge{stroke:#d9d9d9;stroke-width:2}.dag-canvas-container .react-flow__edge.selected{stroke:#1890ff;stroke-width:3}.dag-canvas-container .react-flow__edge.animated{animation:dashdraw .5s linear infinite}@keyframes dashdraw{to{stroke-dashoffset:-10}}.dag-canvas-container .react-flow__connection{stroke:#1890ff;stroke-width:2}.dag-canvas-container .react-flow__node[data-has-error]{box-shadow:0 0 0 2px #ff4d4f}.dag-canvas-container .react-flow__node[data-has-warning]{box-shadow:0 0 0 2px #faad14}.validation-panel{display:flex;flex-direction:column;gap:16px;padding:16px;background-color:#f9f9f9;border-radius:8px}.validation-panel .ant-alert{border-radius:4px}.error-card{border-color:#ff4d4f;border-radius:4px}.error-card .ant-card-head{background-color:#fef2f0;border-bottom-color:#ff4d4f}.error-card .ant-card-head-title{color:#ff4d4f;font-weight:600}.error-list{display:flex;flex-direction:column;gap:12px}.error-item{display:flex;flex-direction:column;gap:8px;padding:12px;background-color:#fff1f0;border-left:3px solid #ff4d4f;border-radius:4px;transition:background-color .2s}.error-item:hover{background-color:#ffebe6}.error-message{color:#262626;font-size:14px;font-weight:500}.error-node-id{color:#8c8c8c;font-size:12px}.warning-card{border-color:#faad14;border-radius:4px}.warning-card .ant-card-head{background-color:#fffbe6;border-bottom-color:#faad14}.warning-card .ant-card-head-title{color:#faad14;font-weight:600}.warning-list{display:flex;flex-direction:column;gap:12px}.warning-item{display:flex;flex-direction:column;gap:8px;padding:12px;background-color:#fffbe6;border-left:3px solid #faad14;border-radius:4px;transition:background-color .2s}.warning-item:hover{background-color:#fff7e6}.warning-message{color:#262626;font-size:14px;font-weight:500}.warning-node-id{color:#8c8c8c;font-size:12px}@media (max-width: 768px){.validation-panel{padding:12px;gap:12px}.error-item,.warning-item{padding:10px;border-left-width:2px}}.dag-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:#fff;border-bottom:1px solid #f0f0f0;box-shadow:0 2px 8px #0000000f;border-radius:8px 8px 0 0}.toolbar-left{flex:0 0 auto}.toolbar-center{flex:1;display:flex;justify-content:center;padding:0 24px}.toolbar-right{flex:0 0 auto}.workflow-name{display:flex;align-items:center;gap:8px;padding:8px 12px;background-color:#f5f5f5;border-radius:4px}.workflow-name span:first-child{font-weight:600;color:#262626;font-size:14px}.workflow-name .version{color:#8c8c8c;font-size:12px;padding-left:8px;border-left:1px solid #d9d9d9}.dag-toolbar .ant-btn{border-radius:4px;font-weight:500}.dag-toolbar .ant-btn-primary{background-color:#1890ff;border-color:#1890ff}.dag-toolbar .ant-btn-primary:hover{background-color:#0050b3;border-color:#0050b3}.toolbar-validation{padding:0 16px 16px;background-color:#fff;border-bottom:1px solid #f0f0f0}@media (max-width: 1200px){.dag-toolbar{flex-wrap:wrap;gap:12px}.toolbar-left,.toolbar-center,.toolbar-right{flex:1 0 auto;justify-content:center}.toolbar-center{flex:1 1 100%;padding:12px 0;order:3}.dag-toolbar .ant-divider-vertical{margin:0 8px}}@media (max-width: 768px){.dag-toolbar{padding:12px}.toolbar-center{padding:0;flex-direction:column;align-items:stretch}.toolbar-center .ant-space{flex-direction:column}.dag-toolbar .ant-btn{width:100%}.workflow-name{flex-direction:column;align-items:flex-start}.workflow-name .version{padding-left:0;border-left:none}}.node-panel-drawer .ant-drawer-content-wrapper{box-shadow:-2px 0 8px #00000026}.node-panel-drawer .ant-drawer-header{border-bottom:1px solid #f0f0f0}.node-panel-drawer .ant-drawer-body{padding:24px}.node-panel-drawer .ant-form-item{margin-bottom:16px}.node-panel-drawer .ant-form-item-label>label{font-weight:600;color:#262626}.node-panel-drawer .ant-divider{margin:24px 0;font-weight:600;color:#262626}.io-list{display:flex;flex-wrap:wrap;gap:8px;min-height:32px;align-items:center}.io-list .ant-tag{margin:0;border-radius:4px;font-size:12px}.io-list .empty-state{color:#8c8c8c;font-size:12px;font-style:italic}.node-panel-drawer .ant-space{width:100%}.node-panel-drawer .ant-button{font-weight:600;height:40px}@media (max-width: 768px){.node-panel-drawer{width:100%!important}.node-panel-drawer .ant-drawer-body{padding:16px}}.edge-config-modal .ant-modal-content{border-radius:8px}.edge-config-modal .ant-modal-header{border-bottom:1px solid #f0f0f0}.edge-config-modal .ant-form{padding:0}.edge-config-modal .ant-form-item{margin-bottom:16px}.edge-config-modal .ant-form-item-label>label{font-weight:600;color:#262626}.edge-config-modal .ant-divider{margin:24px 0;font-weight:600;color:#262626}.edge-config-modal .empty-state{text-align:center;color:#8c8c8c;padding:24px;font-size:14px}.dag-editor-container{width:100%;height:100%;display:flex;flex-direction:column;background-color:#fff}.dag-editor-layout{width:100%;height:100%;display:flex;flex-direction:column}.dag-editor-layout .ant-layout-header{padding:0;background-color:#fff;border-bottom:1px solid #f0f0f0}.dag-editor-layout .ant-layout-content{background-color:#f9f9f9;overflow:auto;padding:0}.dag-editor-content{flex:1;display:flex;overflow:hidden}.dag-editor-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.dag-editor-main .dag-canvas-container{flex:1;margin:16px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.dag-editor-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:16px;color:#8c8c8c}.dag-editor-container .node-panel-drawer{z-index:1000}@media (max-width: 1024px){.dag-editor-main .dag-canvas-container{margin:12px}}@media (max-width: 768px){.dag-editor-container,.dag-editor-layout{height:auto}.dag-editor-main .dag-canvas-container{margin:8px;height:400px!important}}@media print{.dag-toolbar,.node-panel-drawer,.dag-editor-content{display:none}.dag-editor-main{width:100%;height:auto}}:root{font-family:Inter,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;-webkit-text-size-adjust:100%}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}html{color-scheme:light}body{color:#000000e0;background-color:#fff}.ant-layout{min-height:100vh}.chat-container{height:400px;border:1px solid #d9d9d9;border-radius:6px;padding:16px;background-color:#fafafa;overflow-y:auto}.agent-message{margin-bottom:16px;padding:12px;border-radius:8px;box-shadow:0 1px 2px #00000008}.agent-message.pm{background-color:#e6f7ff;border-left:4px solid #1890ff}.agent-message.architect{background-color:#f6ffed;border-left:4px solid #52c41a}.agent-message.qa{background-color:#fff2e8;border-left:4px solid #fa8c16}.agent-message.devops{background-color:#f9f0ff;border-left:4px solid #722ed1}.agent-message.director{background-color:#fff1f0;border-left:4px solid #ff4d4f}.agent-name{font-weight:600;margin-bottom:8px;color:#000000d9}.agent-content{white-space:pre-wrap;line-height:1.6}.workflow-step{display:flex;align-items:center;gap:8px;margin-bottom:8px}.workflow-step.active{font-weight:600;color:#1890ff}.workflow-step.completed{color:#52c41a}.workflow-step.pending{color:#00000073}
