.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left: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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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-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.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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{--blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-900:#1e3a8a;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-600:#4b5563;--gray-900:#111827;--cycle-600:#9333ea;--cycle-700:#7e22ce;--danger-600:#dc2626;--waiting-600:#4338ca;--success-600:#16a34a;--toolbar-height:52px;--toolbar-row:32px;--sidebar-width:340px;color:var(--gray-900);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}.ui-button{background:var(--blue-600);color:#fff;min-height:32px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-weight:500;line-height:1.2;display:inline-flex}.ui-button:hover:not(:disabled){background:var(--blue-700)}.ui-button[aria-pressed=true],.ui-button[aria-pressed=true]:hover:not(:disabled){background:var(--blue-900)}.ui-button:disabled{background:var(--gray-200);color:var(--gray-400);cursor:not-allowed}.ui-button--secondary{border-color:var(--gray-400);color:var(--gray-900);background:#fff}.ui-button--secondary:hover:not(:disabled){background:var(--blue-50);border-color:var(--blue-600);color:var(--gray-900)}.ui-button--icon{min-width:32px;color:var(--gray-600);background:0 0;padding:0;font-size:20px;font-weight:400}.ui-button--icon:hover:not(:disabled){background:var(--gray-100);color:var(--gray-900)}.ui-input{border:1px solid var(--gray-400);width:100%;min-width:0;min-height:32px;color:var(--gray-900);font:inherit;background:#fff;border-radius:6px;padding:4px 8px}.ui-input:disabled{background:var(--gray-100);color:var(--gray-600)}.toolbar button:focus-visible,.sidebar :is(button,input):focus-visible,.confirm-dialog button:focus-visible,.banner button:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.toolbar{min-height:var(--toolbar-height);border-bottom:1px solid var(--gray-200);background:#fff;align-items:flex-start;gap:8px;padding:10px 16px 6px;display:flex;overflow-x:auto}.toolbar>*{min-height:var(--toolbar-row);flex:none}.toolbar>.toolbar__main{flex-direction:column;flex:1 0 auto;gap:6px;margin-left:8px;display:flex}.toolbar__row{align-items:flex-start;gap:8px;display:flex}.toolbar__row>*{min-height:var(--toolbar-row);flex:none}.toolbar__edit{contain:inline-size;min-height:var(--toolbar-row);white-space:nowrap;align-items:center;gap:16px;display:flex}.toolbar__edit>*,.toolbar__cluster>*{flex:none}.toolbar__edit .toolbar__section,.toolbar__edit .toolbar__cluster{border:1px solid var(--blue-600);border-radius:8px;gap:0;overflow:hidden}.toolbar__edit .toolbar__cluster>.toolbar__section{border:none;border-radius:0}.toolbar__edit .ui-button--tool{border-radius:0}.toolbar__edit .tooltip-host+.tooltip-host,.toolbar__edit .toolbar__cluster>.tooltip-host{border-left:1px solid var(--gray-300)}.toolbar__edit button:focus-visible{outline-offset:-3px}.toolbar__cluster,.toolbar__section{align-items:center;gap:6px;display:flex}.mode-switch,.tool-switch{border:1px solid var(--blue-600);border-radius:8px;display:flex;overflow:hidden}.mode-switch .ui-button,.tool-switch .ui-button{color:var(--blue-700);background:#fff;border-radius:0;gap:6px;padding:0 10px}.mode-switch .ui-button .icon,.tool-switch .ui-button .icon{flex:none}.mode-switch .ui-button:hover:not(:disabled),.tool-switch .ui-button:hover:not(:disabled){background:var(--blue-50)}.mode-switch .ui-button[aria-pressed=true],.mode-switch .ui-button[aria-pressed=true]:hover:not(:disabled),.tool-switch .ui-button[aria-pressed=true],.tool-switch .ui-button[aria-pressed=true]:hover:not(:disabled){background:var(--blue-600);color:#fff}.toolbar .mode-switch button:focus-visible,.toolbar .tool-switch button:focus-visible{outline-offset:-3px}.toolbar__file{z-index:1;background:#fff;align-self:stretch;align-items:flex-start;gap:8px;margin-right:-16px;padding:0 16px;display:flex;position:sticky;right:0}.toolbar__file-body{flex-direction:column;gap:6px;display:flex}.toolbar__file-body .toolbar__section{gap:10px}.toolbar__file-extra{min-height:var(--toolbar-row);justify-content:flex-end;align-items:center;gap:12px;display:flex}.toolbar .toolbar__language{width:112px;min-height:var(--toolbar-row)}.toolbar__field{color:var(--gray-600);white-space:nowrap;align-items:center;gap:6px;display:flex}.ui-button--tool{width:36px;min-width:36px;padding:0}.ui-button--tool .icon{margin:auto;display:block}@media (width<=960px){.toolbar__title{display:none}}.toolbar__title{color:var(--blue-900);white-space:nowrap;margin:0 16px 0 0;font-size:16px;font-weight:700}.toolbar__separator{width:2px;min-height:var(--toolbar-row);background:var(--gray-400);border-radius:1px;align-self:stretch;margin:4px 0}.toolbar__hint{color:var(--blue-700);font-style:italic}.sidebar{width:var(--sidebar-width);border:1px solid var(--gray-300);background:#fff;border-radius:10px;flex:none;min-height:0;overflow-y:auto;box-shadow:0 1px 3px #11182714}.sidebar[hidden]{display:none}.sidebar__form{flex-direction:column;gap:12px;min-height:100%;padding:16px;display:flex}.sidebar__header{justify-content:space-between;align-items:center;display:flex}.sidebar__title{margin:0;font-size:16px;font-weight:700}.sidebar__field{flex-direction:column;gap:4px;display:flex}.sidebar__label{color:var(--gray-600);font-size:12px;font-weight:600}.sidebar__details{border:1px solid var(--gray-300);border-radius:6px}.sidebar__details-summary{color:var(--gray-600);cursor:pointer;padding:8px 10px;font-size:12px;font-weight:600}.sidebar__details-body{flex-direction:column;gap:12px;padding:4px 10px 12px;display:flex}.sidebar .ui-input.sidebar__uuid,.sidebar .ui-input.sidebar__uuid:disabled{background:var(--gray-200);border-color:var(--gray-400);color:var(--gray-600);-webkit-text-fill-color:var(--gray-600);cursor:not-allowed;border-style:dashed;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.sidebar .ui-input.sidebar__note-text{resize:vertical;min-height:96px;font-family:inherit;line-height:1.4}.sidebar__readonly{color:var(--gray-400);margin-left:6px;font-size:11px;font-weight:400}.sidebar__check{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.sidebar__check input{width:16px;height:16px;accent-color:var(--blue-600);margin:0}.sidebar__check-hint{color:var(--gray-600);font-size:12px}.sidebar__reverse{align-self:flex-start}.sidebar__color{align-items:center;gap:8px;display:flex}.sidebar__color-input{border:1px solid var(--gray-400);cursor:pointer;background:#fff;border-radius:6px;width:44px;height:32px;padding:2px}.sidebar__color-value{color:var(--gray-600);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.sidebar__info{color:var(--gray-600);margin:0;font-size:13px}.sidebar__rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sidebar__row{grid-template-columns:1fr 1.3fr auto;align-items:center;gap:6px;display:grid}.sidebar__add{align-self:flex-start}.sidebar__footer{border-top:1px solid var(--gray-200);background:#fff;flex-direction:column;gap:8px;margin-top:auto;padding:12px 0 0;display:flex;position:sticky;bottom:0}.sidebar__footer p{margin:0;font-size:12px}.sidebar__hint{color:var(--gray-600)}.sidebar__error{color:var(--danger-600);font-weight:600}.confirm-dialog{width:min(420px,100vw - 32px);color:var(--gray-900);background:#fff;border:none;border-radius:10px;padding:0;box-shadow:0 20px 40px #1118274d}.confirm-dialog::backdrop{background:#11182780}.confirm-dialog__content{padding:20px 24px}.confirm-dialog__title{margin:0 0 8px;font-size:18px}.confirm-dialog__message{color:var(--gray-600);white-space:pre-line;margin:0 0 20px}.confirm-dialog__actions{justify-content:flex-end;gap:8px;display:flex}.ui-button--danger{border-color:var(--danger-600);color:var(--danger-600);background:#fff}.ui-button--danger:hover:not(:disabled){background:var(--danger-600);border-color:var(--danger-600);color:#fff}.import-dialog{width:min(520px,100vw - 32px)}.import-dialog .confirm-dialog__message{margin-bottom:12px}.import-dialog__warning,.import-dialog__ok{border-left:4px solid;border-radius:6px;margin:0 0 12px;padding:8px 12px}.import-dialog__warning{border-color:var(--danger-600);color:#991b1b;background:#fef2f2;font-weight:600}.import-dialog__ok{border-color:var(--success-600);color:#166534;background:#f0fdf4}.import-dialog__note{color:var(--gray-600);margin:0 0 20px}.import-dialog .confirm-dialog__actions{flex-wrap:wrap}.banner{--banner-accent:var(--blue-600);--banner-bg:var(--blue-50);background:var(--banner-bg);border-left:4px solid var(--banner-accent);color:var(--gray-900);align-items:flex-start;gap:8px;padding:8px 8px 8px 16px;display:flex}.banner--success{--banner-accent:var(--success-600);--banner-bg:#f0fdf4}.banner--error{--banner-accent:var(--danger-600);--banner-bg:#fef2f2}.banner__body{flex:1;min-width:0;padding:5px 0}.banner__message{margin:0;font-weight:600}.banner__details{margin:4px 0 0;padding-left:20px}.ui-button--cycle{background:var(--cycle-600);gap:6px}.ui-button--cycle:hover:not(:disabled){background:var(--cycle-700)}.ui-button--cycle .icon{width:16px;height:16px}.cycle-badge{z-index:1;background:var(--cycle-600);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:-9px;right:-9px;box-shadow:0 1px 3px #11182759}.cycle-badge--group{top:6px;right:8px}.box-node,.group-node{--connect-source-color:#d97706;--accent:var(--node-color,var(--blue-600));--dependency-color:var(--danger-600);font-family:inherit;position:relative}.box-node .node-handle,.group-node .node-handle{border:2px solid var(--node-color,var(--blue-700));background:#fff;width:10px;height:10px}.box-node{border:2px solid var(--accent);background:var(--accent);color:var(--node-text,#fff);border-radius:8px;justify-content:center;align-items:center;padding:0 14px;display:flex;box-shadow:0 1px 3px #11182740}.box-node--selected{outline:3px solid var(--blue-900);outline-offset:2px}.box-node--dependency,.group-node--dependency{outline:3px solid var(--dependency-color);outline-offset:2px}.box-node--connect-source,.group-node--connect-source{outline:3px solid var(--connect-source-color);outline-offset:2px;box-shadow:0 0 0 7px #d9770640}.box-node__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.box-node__label--empty{opacity:.7;font-style:italic;font-weight:400}.group-node{border:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:10px;width:100%;height:100%}.group-node--drop-target{background:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:inset 0 0 0 2px var(--accent)}.group-node__header{align-items:center;padding:0 12px;display:flex;overflow:hidden}.group-node__label{min-width:0;color:color-mix(in srgb, var(--accent) 70%, #000);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.group-node__label--empty{color:var(--gray-600);font-style:italic;font-weight:400}.react-flow .react-flow__node-group,.react-flow .react-flow__node-group.selected{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.toolbar__select{width:auto;min-width:0}.flow--locked .node-handle{opacity:0;pointer-events:none}.note-node{--note-fill:var(--note-color,#fef08a);box-sizing:border-box;background:linear-gradient(#00000012, transparent 22px), var(--note-fill);width:100%;height:100%;color:var(--note-text,#111827);border-radius:2px 2px 14px;padding:10px;font-family:inherit;position:relative;overflow:hidden;box-shadow:0 3px 8px #11182747}.note-node--selected{outline:3px solid var(--blue-900);outline-offset:2px}.note-node__text{overflow-wrap:anywhere;white-space:pre-wrap;-webkit-line-clamp:var(--note-lines,4);line-clamp:var(--note-lines,4);-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:20px;display:-webkit-box;overflow:hidden}.note-node__text--empty{opacity:.55;font-style:italic}.note-node__input{box-sizing:border-box;resize:none;width:100%;height:100%;color:inherit;font:inherit;background:0 0;border:none;outline:none;margin:0;padding:0;font-size:14px;line-height:20px;display:block}.tooltip-host{display:inline-flex}.tooltip-host>:disabled{pointer-events:none}.tooltip{z-index:1000;background:var(--gray-900);color:#fff;pointer-events:none;border-radius:6px;flex-direction:column;gap:4px;max-width:280px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex;position:fixed;box-shadow:0 4px 12px #1118274d}.tooltip__shortcut{background:#ffffff1f;border:1px solid #ffffff59;border-radius:4px;align-self:flex-start;padding:1px 6px;font-family:inherit;font-size:11px}.tooltip__hint{color:#fbbf24}.toolbar__title.project-title-editor{align-items:center;gap:8px;display:flex}.project-title{color:inherit;font:inherit;cursor:text;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 8px}.project-title:hover{border-color:var(--gray-200);background:var(--gray-50)}.project-title:focus-visible,.project-title__input:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.project-title__input{width:auto;color:var(--blue-900);font-size:16px;font-weight:700}.project-title__input[aria-invalid=true]{border-color:var(--danger-600)}.project-title__hint{color:var(--gray-600);white-space:nowrap;font-size:12px;font-weight:400}.project-title__hint--error{color:var(--danger-600)}.blocked-flag,.waiting-mark{z-index:1;border:2px solid var(--danger-600);width:20px;height:20px;color:var(--danger-600);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-9px;left:-9px;box-shadow:0 1px 3px #11182759}.waiting-mark{border-color:var(--waiting-600);color:var(--waiting-600)}.blocked-flag--inline,.waiting-mark--inline{width:18px;height:18px;box-shadow:none;flex:none;margin-right:6px;position:static}.blocked-flag .icon,.waiting-mark .icon{display:block}.status-mark{z-index:1;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;bottom:-7px;right:-7px;box-shadow:0 1px 3px #11182759}.status-mark .icon{display:block}.status-mark--done{background:var(--success-600);color:#fff}.status-mark--progress{color:#d97706;background:#fff}.status-mark--inline{box-shadow:none;flex:none;position:static}.status-mark--open{color:#6b7280;background:#fff}.status-mark--unknown{color:#b45309;background:#fef3c7}@keyframes reveal-flash{0%,to{box-shadow:0 0 #f59e0b00}15%,65%{box-shadow:0 0 0 9px #f59e0b99}}.box-node--revealed,.group-node--revealed{animation:1.5s ease-out reveal-flash}@media (prefers-reduced-motion:reduce){.box-node--revealed,.group-node--revealed{outline-offset:2px;outline:3px solid #d97706;animation:none}}.analysis-panel{width:var(--sidebar-width);border:1px solid var(--gray-300);background:#fff;border-radius:10px;flex-direction:column;flex:none;min-height:0;display:flex;box-shadow:0 1px 3px #11182714}.analysis-panel__header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:8px;padding:10px 8px 10px 14px;display:flex}.analysis-panel__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:15px;font-weight:700;overflow:hidden}.analysis-panel__body{flex:1;min-height:0;padding:12px 14px;overflow-y:auto}.analysis-panel__footer{border-top:1px solid var(--gray-200);padding:10px 14px}.analysis-panel button:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}.analysis-counts{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.analysis-counts li{background:var(--gray-100);color:var(--gray-600);border-radius:999px;padding:2px 8px;font-size:12px}.analysis-counts strong{color:var(--gray-900)}.analysis-counts .analysis-counts__clarify{color:#92400e;background:#fef3c7}.analysis-counts .analysis-counts__clarify strong{color:#78350f}.analysis-section+.analysis-section{margin-top:14px}.analysis-section__title{margin:0 0 6px;font-size:13px;font-weight:700}.analysis-subtitle{color:var(--gray-600);margin:8px 0 4px;font-size:12px;font-weight:600}.analysis-hint,.analysis-empty{color:var(--gray-600);margin:0 0 6px;font-size:12px}.analysis-warning{border-left:4px solid var(--cycle-600);color:var(--cycle-700);background:#faf5ff;border-radius:4px;margin:0;padding:8px 10px;font-size:13px;font-weight:600}.analysis-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style-position:inside;display:flex}ul.analysis-list{list-style:none}ol.analysis-list{counter-reset:step;list-style:none}ol.analysis-list>li{counter-increment:step;align-items:center;display:flex}ol.analysis-list>li:before{width:22px;color:var(--gray-400);content:counter(step) ".";text-align:right;flex:none;padding-right:4px;font-size:12px}.analysis-list>li>.analysis-item{flex:1}.analysis-item{width:100%;min-width:0;color:var(--gray-900);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px 6px;padding:4px 6px;display:flex}.analysis-item:hover{background:var(--blue-50)}.analysis-item--text{text-align:left;white-space:normal;overflow-wrap:anywhere;display:block}.analysis-item__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.analysis-item__note{color:var(--gray-600);overflow-wrap:anywhere;flex:1 0 100%;font-size:12px}.analysis-chip{white-space:nowrap;border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-weight:600}.analysis-chip--open{background:var(--gray-100);color:var(--gray-600)}.analysis-chip--progress{color:#92400e;background:#fef3c7}.analysis-chip--blocked{color:#991b1b;background:#fee2e2}.analysis-chip--done{color:#166534;background:#dcfce7}.analysis-chip--ready{background:var(--success-600);color:#fff}.analysis-self-blocked{border:1px solid #fecaca;border-left:4px solid var(--danger-600);color:#7f1d1d;background:#fef2f2;border-radius:8px;flex-direction:column;gap:6px;margin-bottom:14px;padding:8px 10px;font-size:13px;display:flex}.analysis-self-blocked__row{align-items:flex-start;margin:0;display:flex}.analysis-self-blocked__row>span:last-child{overflow-wrap:anywhere;min-width:0}.analysis-legend{border-top:1px solid var(--gray-200);margin-top:16px;padding-top:10px;font-size:12px}.analysis-legend__summary{color:var(--gray-600);cursor:pointer;font-weight:600}.analysis-legend__list{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.analysis-legend__row{color:var(--gray-900);align-items:center;gap:8px;display:flex}.analysis-legend__icon{flex:none;justify-content:center;align-items:center;width:24px;display:flex}.analysis-legend__icon .blocked-flag--inline,.analysis-legend__icon .waiting-mark--inline{margin-right:0}.analysis-selected{border:1px solid var(--blue-200);background:var(--blue-50);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:14px;padding:10px 12px;display:flex}.analysis-selected__name,.analysis-selected__progress{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.analysis-selected__field{flex-direction:column;gap:4px;display:flex}.analysis-selected__label{color:var(--gray-600);font-size:12px;font-weight:600}.tool-hint{z-index:6;background:var(--blue-900);color:#fff;pointer-events:none;border-radius:999px;max-width:calc(100% - 24px);margin:0;padding:6px 14px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}@media (width<=1339px){.tool-switch__label{display:none}.tool-switch .ui-button{min-width:36px;padding:0}}@media (width<=1099px){.toolbar{padding-inline:12px}.toolbar__file{margin-right:-12px;padding-right:12px}.cycle-button__word{display:none}.toolbar .project-title{text-overflow:ellipsis;max-width:64px;overflow:hidden}.toolbar,.toolbar__row{gap:6px}.toolbar__section{gap:4px}.toolbar__file-body .toolbar__section{gap:8px}.toolbar__edit{gap:12px}.mode-switch .ui-button,.toolbar__file .ui-button:not(.ui-button--tool){padding:0 8px}.mode-switch .icon{display:none}.toolbar .ui-button--tool,.toolbar .tool-switch .ui-button{width:32px;min-width:32px}}.flow--create .react-flow__pane,.flow--create .react-flow__node-group{cursor:crosshair}@media (width<=719px){.sidebar,.analysis-panel{z-index:6;width:min(var(--sidebar-width), calc(100% - 16px));position:absolute;top:8px;bottom:8px;right:8px;box-shadow:0 8px 24px #11182733}.sidebar.sidebar--filter{top:72px}}@media (width<=479px){.sidebar.sidebar--filter{top:116px}}.json-dialog{width:min(720px,100vw - 32px)}.json-dialog__label{color:var(--gray-600);margin-bottom:4px;font-weight:600;display:block}.json-dialog__text{resize:vertical;white-space:pre;width:100%;height:min(50vh,420px);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;display:block;overflow:auto}.json-dialog__status{min-height:1.5em;color:var(--gray-600);margin:8px 0 12px}.json-dialog__errors{border-left:4px solid var(--danger-600);color:#991b1b;background:#fef2f2;border-radius:6px;margin:8px 0 0;padding:8px 12px}.json-dialog__errors p{margin:0 0 4px;font-weight:600}.json-dialog__errors ul{max-height:96px;margin:0;padding-left:20px;overflow:auto}.json-dialog .import-dialog__note{margin:12px 0}.export-dialog{width:min(480px,100vw - 32px)}.export-dialog__formats{border:none;margin:0;padding:0}.export-dialog__legend{color:var(--gray-600);margin-bottom:6px;padding:0;font-weight:600}.export-dialog__option{border:1px solid var(--gray-200);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.export-dialog__option:hover:not(.export-dialog__option--disabled){border-color:var(--blue-600);background:var(--blue-50)}.export-dialog__option:has(input:checked){border-color:var(--blue-600);background:var(--blue-50)}.export-dialog__option--disabled{color:var(--gray-600);cursor:not-allowed}.export-dialog__option input{margin-top:3px}.export-dialog__text{flex-direction:column;gap:2px;display:flex}.export-dialog__label{font-weight:600}.export-dialog__hint{color:var(--gray-600);font-size:13px}.help-dialog__body{max-height:min(65vh,560px);margin-bottom:16px;padding-right:8px;overflow-y:auto}.help-dialog__intro{color:var(--gray-600);margin:0 0 12px}.help-dialog__section h3{color:var(--blue-900);margin:16px 0 6px;font-size:15px}.help-dialog__section p{margin:0 0 6px}.help-dialog__section ul{margin:0 0 6px;padding-left:20px}.help-dialog__section li{margin:2px 0}.node-name-input{border:2px solid var(--blue-600);width:100%;min-width:0;height:26px;color:var(--gray-900);font:inherit;text-align:center;background:#fff;border-radius:4px;flex:auto;padding:0 6px;font-weight:600}.group-node__header .node-name-input{text-align:left}.node-name-input:focus{outline:none}:is(.react-flow:has(.react-flow__connectionline) .box-node:hover,.react-flow:has(.react-flow__connectionline) .group-node__header:hover){outline:2px dashed var(--blue-600);outline-offset:3px}.react-flow__edge.selected .react-flow__edgeupdater{fill:#2563eb33;stroke:var(--blue-600);stroke-width:2px}.search-bar{z-index:7;border:1px solid var(--gray-300);background:#fff;border-radius:10px;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:6px 8px 6px 10px;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 6px 18px #11182726}.search-bar__input{width:240px;min-width:0}.search-bar__status{min-width:7.5em;color:var(--gray-600);white-space:nowrap;font-size:13px}.search-bar__status--none{color:var(--danger-600);font-weight:600}.filter-bar{z-index:7;border:1px solid var(--gray-300);background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 24px);margin-left:auto;padding:6px 8px 6px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px;box-shadow:0 6px 18px #11182726}.filter-bar__input{flex:110px;width:150px;min-width:90px}.filter-bar__status{min-width:6.5em;color:var(--gray-600);white-space:nowrap;font-size:13px}.filter-bar__status--none{color:var(--danger-600);font-weight:600}.filter-results{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.filter-results__item{border:1px solid var(--gray-300);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:6px 8px;display:grid}.filter-results__item:hover{background:var(--gray-50,#f9fafb)}.filter-results__item[aria-current=true]{border-color:var(--blue-600);background:var(--blue-50)}.filter-results__dot{border-radius:50%;width:10px;height:10px}.filter-results__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.filter-results__entry{color:var(--gray-600);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.app{background:var(--gray-100);grid-template-rows:auto minmax(0,1fr);height:100%;display:grid}.workspace{background:var(--gray-100);gap:12px;min-height:0;padding:8px 12px 12px;display:flex}.canvas{border:1px solid var(--gray-300);background:#fff;border-radius:10px;flex:1;min-width:0;position:relative;overflow:hidden;box-shadow:0 1px 3px #11182714}.banner-host{z-index:10;max-width:min(640px,100% - 32px);position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=719px){.workspace{padding:8px;position:relative}}.agent-help{background:var(--gray-50);height:100%;padding:24px max(16px,50% - 380px);line-height:1.55;overflow:auto}.agent-help h1{margin:0 0 16px;font-size:22px}.agent-help h2{margin:28px 0 8px;font-size:17px}.agent-help ul,.agent-help ol{padding-left:22px}.agent-help li{margin:6px 0}.agent-help code,.agent-help pre{background:var(--gray-200);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.agent-help code{overflow-wrap:anywhere;padding:1px 5px}.agent-help pre{padding:10px 12px;overflow-x:auto}
