.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-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{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--neo-bg: #e8ecf1;--neo-shadow-dark: #b8bec7;--neo-shadow-light: #ffffff;--neo-text: #4a5568;--neo-text-strong: #2d3748;--neo-text-muted: #718096;--neo-accent: #ff5e13;--neo-accent-deep: #ff2a00;--neo-accent-hover: #ff2a00;--neo-accent-shadow: #b43613;--neo-accent-soft: #ffe8df;--neo-accent-glow: rgba(255, 94, 19, .35);--neo-active-gradient: linear-gradient(135deg, #ff5e13 0%, #ff2a00 100%);--neo-active-ring: 0 0 0 2px #ff5e13;--neo-shadow-active-inset: inset 3px 3px 10px #b43613;--neo-shadow-active: var(--neo-active-ring), var(--neo-shadow-active-inset);--manual-select-color: #ff1493;--manual-select-soft: rgba(255, 20, 147, .22);--manual-select-ring: rgba(255, 20, 147, .55);--manual-select-glow: rgba(255, 20, 147, .35);--neo-radius-sm: 10px;--neo-radius-md: 16px;--neo-radius-pill: 999px;--neo-shadow-raised: 6px 6px 12px var(--neo-shadow-dark), -6px -6px 12px var(--neo-shadow-light);--neo-shadow-raised-sm: 1.5px 1.5px 3px var(--neo-shadow-dark), -1.5px -1.5px 3px var(--neo-shadow-light);--neo-shadow-raised-lg: 8px 8px 16px var(--neo-shadow-dark), -8px -8px 16px var(--neo-shadow-light);--neo-shadow-pressed: inset 4px 4px 8px var(--neo-shadow-dark), inset -4px -4px 8px var(--neo-shadow-light);--neo-shadow-inset: inset 3px 3px 6px var(--neo-shadow-dark), inset -3px -3px 6px var(--neo-shadow-light);--neo-shadow-toggle-track: -4px -2px 6px var(--neo-shadow-light), 4px 2px 8px var(--neo-shadow-dark), 2px 2px 4px var(--neo-shadow-dark) inset, -2px -2px 4px var(--neo-shadow-light) inset;--neo-shadow-knob: 0 2px 6px rgba(184, 190, 199, .85), 0 1px 4px rgba(160, 170, 185, .55);--neo-shadow-flat: none;--neo-canvas-dot: rgba(197, 205, 216, .45);--neo-scrim: rgba(232, 236, 241, .75)}.neo-raised{background:var(--neo-bg);border:none;box-shadow:var(--neo-shadow-raised)}.neo-raised-sm{background:var(--neo-bg);border:none;box-shadow:var(--neo-shadow-raised-sm)}.neo-inset{background:var(--neo-bg);border:none;box-shadow:var(--neo-shadow-inset)}.neo-pressed{box-shadow:var(--neo-shadow-pressed)}.neo-surface-active{background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active);color:#fff;border:none}.neo-focus:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.neo-btn,.csv-import__button{padding:.375rem .875rem;font-size:.875rem;font-weight:500;font-family:inherit;color:var(--neo-text-strong);background:var(--neo-bg);border:none;border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-raised-sm);cursor:pointer;transition:box-shadow .15s ease,color .15s ease,background .15s ease}.neo-btn:hover:not(:disabled),.csv-import__button:hover:not(:disabled){box-shadow:var(--neo-shadow-raised);color:var(--neo-accent)}.neo-btn:active:not(:disabled),.csv-import__button:active:not(:disabled){box-shadow:var(--neo-shadow-pressed)}.neo-btn:disabled,.csv-import__button:disabled{opacity:.5;cursor:not-allowed}.neo-btn--accent,.csv-import__button:not(.csv-import__button--secondary):not(.csv-import__button--active){color:#fff;background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active)}.neo-btn--accent:hover:not(:disabled),.csv-import__button:not(.csv-import__button--secondary):not(.csv-import__button--active):hover:not(:disabled){color:#fff;box-shadow:var(--neo-shadow-active)}.neo-btn--accent:active:not(:disabled),.csv-import__button:not(.csv-import__button--secondary):not(.csv-import__button--active):active:not(:disabled){box-shadow:var(--neo-active-ring),inset 4px 4px 12px var(--neo-accent-shadow)}.csv-import__button--secondary{color:var(--neo-text-strong);background:var(--neo-bg);box-shadow:var(--neo-shadow-raised-sm)}.csv-import__button--active{box-shadow:var(--neo-shadow-pressed);color:var(--neo-accent)}.neo-input{width:100%;box-sizing:border-box;padding:.4rem .65rem;font-size:.8125rem;font-family:inherit;color:var(--neo-text-strong);background:var(--neo-bg);border:none;border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-inset);outline:none;transition:box-shadow .15s ease}.neo-input::placeholder{color:var(--neo-text-muted)}.neo-input:focus{box-shadow:var(--neo-shadow-inset),0 0 0 2px var(--neo-accent-glow)}.neo-select{min-width:140px;padding:.35rem .55rem;font-size:.75rem;font-family:inherit;color:var(--neo-text-strong);background:var(--neo-bg);border:none;border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-inset);outline:none;cursor:pointer}.neo-select:focus{box-shadow:var(--neo-shadow-inset),0 0 0 2px var(--neo-accent-glow)}.neo-modal-backdrop{background:var(--neo-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.neo-modal-panel{background:var(--neo-bg);border:none;border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.neo-modal-header{border-bottom:none;box-shadow:inset 0 -2px 4px #b8bec740}.react-flow__controls{display:flex!important;flex-direction:column!important;gap:6px!important;padding:2px!important;box-shadow:none!important;border:none!important;background:transparent!important}.react-flow__controls-button{background:var(--neo-bg)!important;border:none!important;border-bottom:none!important;border-radius:var(--neo-radius-sm)!important;box-shadow:var(--neo-shadow-raised-sm)!important;color:var(--neo-text)!important;fill:var(--neo-text)!important;width:32px!important;height:32px!important;margin:0!important;transition:box-shadow .15s ease,color .15s ease!important}.react-flow__controls-button:hover{box-shadow:var(--neo-shadow-raised)!important;color:var(--neo-accent)!important;fill:var(--neo-accent)!important}.react-flow__controls-button:active{box-shadow:var(--neo-shadow-pressed)!important}.react-flow__controls-button svg{max-width:14px;max-height:14px}.react-flow__controls-button:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.react-flow__background pattern circle{fill:var(--neo-canvas-dot)}:root{color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--neo-text-strong);background-color:var(--neo-bg)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%}.app-shell{display:flex;flex-direction:column;height:100%;background-color:var(--neo-bg)}.app-shell__main{flex:1;min-height:0}.workflow-canvas{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--neo-bg);color:var(--neo-text-strong)}.workflow-canvas__stage{flex:1;min-height:0}.workflow-canvas{display:flex;flex-direction:column;width:100%;height:100%}.workflow-canvas__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;min-height:52px;border-bottom:none;flex-shrink:0;background:var(--neo-bg);box-shadow:0 4px 8px #b8bec759;position:relative;z-index:5}.workflow-canvas__toolbar-left{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.workflow-canvas__toolbar-toggles{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.875rem;margin-left:.625rem;padding-left:1rem}.workflow-canvas__toolbar-toggles+.toolbar-segment--large{margin-left:.625rem}.workflow-canvas__toolbar-center{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:8rem}.workflow-canvas__toolbar-export{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto}.toolbar-pill-toggle{display:flex;flex-direction:column;align-items:center;gap:.3rem}.toolbar-pill-toggle--disabled{opacity:.45;pointer-events:none}.toolbar-pill-toggle__label{font-size:.625rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--neo-text-muted);line-height:1;white-space:nowrap}.toolbar-pill-toggle__switch{display:block;padding:0;border:none;background:transparent;cursor:pointer}.toolbar-pill-toggle__switch:focus-visible{outline:2px solid var(--neo-accent);outline-offset:3px;border-radius:var(--neo-radius-pill)}.toolbar-pill-toggle__switch:disabled{cursor:not-allowed}.toolbar-pill-toggle__track{--pill-track-w: 52px;--pill-track-h: 28px;--pill-knob: 22px;--pill-pad: 3px;position:relative;display:block;width:var(--pill-track-w);height:var(--pill-track-h);border-radius:var(--neo-radius-pill);background:var(--neo-bg);box-shadow:var(--neo-shadow-toggle-track)}.toolbar-pill-toggle__indicator{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--neo-bg);box-shadow:var(--neo-shadow-toggle-track);transition:background .3s ease,box-shadow .3s ease}.toolbar-pill-toggle__indicator--on{background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active)}.toolbar-pill-toggle__knob{position:absolute;top:var(--pill-pad);left:var(--pill-pad);width:var(--pill-knob);height:var(--pill-knob);border-radius:50%;background:var(--neo-bg);box-shadow:var(--neo-shadow-knob);transition:left .4s cubic-bezier(.85,.05,.18,1.35)}.toolbar-pill-toggle__indicator--on .toolbar-pill-toggle__knob{left:calc(var(--pill-track-w) - var(--pill-knob) - var(--pill-pad))}.toolbar-pill-toggle__switch:active:not(:disabled) .toolbar-pill-toggle__knob{box-shadow:var(--neo-shadow-pressed)}.callouts-toolbar-control{position:relative;display:flex;flex-direction:column;align-items:center}.callouts-toolbar-control--disabled{opacity:.45;pointer-events:none}.callouts-toolbar-control__pill{display:flex;flex-direction:column;align-items:center;gap:.3rem}.callouts-toolbar-control__row{display:flex;align-items:center;gap:.25rem}.callouts-toolbar-control__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);color:var(--neo-text-muted);box-shadow:var(--neo-shadow-raised-sm);font-size:.75rem;line-height:1;cursor:pointer}.callouts-toolbar-control__menu-btn:hover:not(:disabled){color:var(--neo-text-strong);box-shadow:var(--neo-shadow-raised)}.callouts-toolbar-control__menu-btn:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.callouts-toolbar-control__menu-btn:disabled{cursor:not-allowed;opacity:.5}.callouts-scale-popover{position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);z-index:45;display:flex;flex-direction:column;gap:.55rem;min-width:220px;padding:.65rem .75rem;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.callouts-scale-popover__slider-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;font-size:.75rem;font-weight:600;color:var(--neo-text)}.callouts-scale-popover__label{white-space:nowrap}.callouts-scale-popover__value{min-width:2.75rem;text-align:right;color:var(--neo-text-muted)}.callouts-scale-popover__range{width:100%;accent-color:var(--neo-accent);cursor:pointer}.callouts-scale-popover__range:disabled{cursor:not-allowed;opacity:.5}.callouts-scale-popover__check{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;color:var(--neo-text);cursor:pointer}.callouts-scale-popover__check input{accent-color:var(--neo-accent);cursor:pointer}.callouts-scale-popover__check input:disabled{cursor:not-allowed}.callouts-scale-popover__reset{align-self:flex-start;border:none;background:var(--neo-bg);color:var(--neo-text-muted);border-radius:var(--neo-radius-sm);padding:.25rem .5rem;font-size:.68rem;font-weight:600;box-shadow:var(--neo-shadow-raised-sm);cursor:pointer}.callouts-scale-popover__reset:hover:not(:disabled){color:var(--neo-text-strong)}.callouts-scale-popover__reset:disabled{opacity:.45;cursor:not-allowed}.print-toolbar-control{position:relative;display:flex;flex-direction:column;align-items:center}.print-toolbar-control--disabled{opacity:.45;pointer-events:none}.print-toolbar-control__actions{display:flex;align-items:center;gap:.25rem}.print-toolbar-control__main{width:36px;height:36px}.print-toolbar-control__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);color:var(--neo-text-muted);box-shadow:var(--neo-shadow-raised-sm);font-size:.75rem;line-height:1;cursor:pointer}.print-toolbar-control__menu-btn:hover:not(:disabled){color:var(--neo-text-strong);box-shadow:var(--neo-shadow-raised)}.print-toolbar-control__menu-btn:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.print-toolbar-control__menu-btn:disabled{cursor:not-allowed;opacity:.5}.print-toolbar-control__menu{position:absolute;top:calc(100% + .5rem);right:0;z-index:45;list-style:none;margin:0;padding:.35rem;min-width:200px;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.print-toolbar-control__menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.5rem .65rem;border:none;border-radius:var(--neo-radius-sm);background:transparent;color:var(--neo-text-strong);font-size:.8125rem;font-weight:600;text-align:left;cursor:pointer}.print-toolbar-control__menu-item:hover{background:var(--neo-surface)}.print-toolbar-control__menu-hint{font-size:.6875rem;font-weight:500;color:var(--neo-text-muted)}.toolbar-icon{display:inline-flex;align-items:center;justify-content:center}.toolbar-icon__brand-mark{display:block;width:28px;height:28px;object-fit:contain}.toolbar-icon-btn,.toolbar-action{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);color:var(--neo-text);box-shadow:var(--neo-shadow-raised-sm);cursor:pointer;transition:box-shadow .15s ease,color .15s ease}.toolbar-icon-btn:hover:not(:disabled),.toolbar-action:hover{box-shadow:var(--neo-shadow-raised);color:var(--neo-text-strong)}.toolbar-icon-btn:active:not(:disabled),.toolbar-action:active{box-shadow:var(--neo-shadow-pressed)}.toolbar-icon-btn:focus-visible,.toolbar-action:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.toolbar-icon-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes import-hint-color{0%,to{color:var(--neo-text)}50%{color:var(--neo-accent)}}@keyframes import-hint-glow{0%,to{box-shadow:var(--neo-shadow-raised-sm)}50%{box-shadow:var(--neo-shadow-raised-sm),0 0 0 2px var(--neo-accent-glow),0 0 10px var(--neo-accent-glow)}}.toolbar-icon-btn--hint{animation:import-hint-color 2s ease-in-out infinite,import-hint-glow 2s ease-in-out infinite}.toolbar-icon-btn--hint:hover:not(:disabled){animation:none;color:var(--neo-accent);box-shadow:var(--neo-shadow-raised)}@media(prefers-reduced-motion:reduce){.toolbar-icon-btn--hint{animation:none;color:var(--neo-accent);box-shadow:var(--neo-shadow-raised-sm),var(--neo-active-ring)}}.toolbar-icon-btn--primary{background:var(--neo-active-gradient);color:#fff;box-shadow:var(--neo-shadow-active)}.toolbar-icon-btn--primary:hover:not(:disabled){color:#fff;box-shadow:var(--neo-shadow-active)}.toolbar-icon-btn--primary:active:not(:disabled){box-shadow:var(--neo-active-ring),inset 4px 4px 12px var(--neo-accent-shadow)}.toolbar-action:disabled,.toolbar-segment--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.toolbar-segment--disabled .toolbar-segment__indicator{background:var(--neo-text-muted);box-shadow:none}.toolbar-action--pressed{background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active);color:#fff}.toolbar-segment{--segment-size: 36px;--segment-pad: 3px;position:relative;display:inline-flex;align-items:center;padding:var(--segment-pad);border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);box-shadow:var(--neo-shadow-toggle-track);overflow:hidden}.map-embed-anchor{position:relative}.map-embed-popover{position:absolute;top:calc(100% + .85rem);right:0;width:min(420px,calc(100vw - 1rem));max-height:420px;z-index:45;display:flex;flex-direction:column;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg);overflow:hidden}.map-embed-popover__tabs{display:flex;align-items:center;gap:.35rem;padding:.5rem;border-bottom:1px solid rgba(184,190,199,.45)}.map-embed-popover__tab{border:none;background:var(--neo-bg);color:var(--neo-text);border-radius:var(--neo-radius-sm);padding:.3rem .6rem;font-size:.75rem;font-weight:600;box-shadow:var(--neo-shadow-raised-sm);cursor:pointer}.map-embed-popover__tab--active,.map-embed-popover__tab[aria-selected=true]{background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active);color:#fff}.map-embed-popover__tab:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.map-embed-popover__body{display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.map-embed-popover__iframe{width:100%;height:260px;border:none;border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-inset);background:var(--neo-bg)}.map-embed-popover__fallback{margin:0;font-size:.75rem;color:var(--neo-text-muted)}.map-embed-popover__meta{margin:0;padding:.45rem .6rem .55rem;font-size:.72rem;color:var(--neo-text-muted);border-top:1px solid rgba(184,190,199,.45)}.toolbar-segment__indicator{position:absolute;top:50%;left:var(--segment-pad);width:var(--segment-size);height:var(--segment-size);margin-top:calc(var(--segment-size) / -2);border-radius:calc(var(--neo-radius-sm) - 2px);background:var(--neo-active-gradient);box-shadow:var(--neo-shadow-active);transform:translate(0);transition:transform .25s cubic-bezier(.34,1.2,.64,1);pointer-events:none;z-index:0}.toolbar-segment[data-selected-index="0"] .toolbar-segment__indicator{transform:translate(0)}.toolbar-segment[data-selected-index="1"] .toolbar-segment__indicator{transform:translate(var(--segment-size))}.toolbar-segment__option{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:var(--segment-size);height:var(--segment-size);padding:0;border:none;border-radius:calc(var(--neo-radius-sm) - 2px);background:transparent;color:var(--neo-text-muted);cursor:pointer;transition:color .2s ease}.toolbar-segment__option:hover{color:var(--neo-text)}.toolbar-segment__option[aria-checked=true]{color:#fff}.toolbar-segment__option:focus-visible{outline:2px solid var(--neo-accent);outline-offset:1px}.toolbar-segment__option:active{transform:scale(.96)}.toolbar-segment--large{--segment-size: 40px;--segment-pad: 4px;border-radius:var(--neo-radius-sm)}.toolbar-segment--large .toolbar-segment__indicator,.toolbar-segment--large .toolbar-segment__option{border-radius:calc(var(--neo-radius-sm) - 2px)}.workflow-canvas__meta{font-size:.8125rem;color:var(--neo-text-muted)}.workflow-canvas__hint{font-size:.75rem;color:var(--neo-text-muted)}.workflow-canvas__stage{flex:1;min-height:0;position:relative}.workflow-canvas__body{display:flex;flex:1;min-height:0}.workflow-canvas__canvas-area{flex:1;min-height:0;position:relative}.workflow-canvas__body .workflow-canvas__stage{width:100%;height:100%}.diagram-inspector{width:260px;border-left:none;padding:.75rem;margin:.5rem .5rem .5rem 0;overflow:auto;font-size:.8125rem;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised)}.diagram-inspector h3{margin:0 0 .5rem;font-size:.875rem;color:var(--neo-text-strong)}.diagram-inspector__list{margin:0}.diagram-inspector__list dt{font-weight:600;margin-top:.35rem}.diagram-inspector__list dd{margin:0;color:var(--neo-text)}.diagram-inspector__empty{color:var(--neo-text-muted)}.cable-node__manual-handles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cable-node--manual-adjust .cable-node__tube-tip-drag{position:absolute;width:12px;height:12px;padding:0;border:1px solid rgba(100,116,139,.55);border-radius:3px;background:#f8fafc73;box-shadow:0 0 0 1px #fff9;opacity:.5;pointer-events:all;z-index:7;transition:opacity .12s ease}.cable-node--manual-adjust .cable-node__tube-tip-drag:hover,.cable-node--manual-adjust .cable-node__tube-tip-drag:active{opacity:.85;border-color:#64748bd9;background:#f8fafce6}.cable-node__tube-tip-drag{cursor:ns-resize}.cable-node__tube-handle-pair{position:static}.cable-node--manual-adjust .cable-node__tube-tip-drag--locked,.cable-node__tube-tip-drag--locked{cursor:not-allowed;border-color:#ff6b2c8c;background:#ff6b2c73;box-shadow:0 0 0 1px #fff9;opacity:.5}.cable-node--manual-adjust .cable-node__tube-tip-drag--locked:hover,.cable-node--manual-adjust .cable-node__tube-tip-drag--locked:active{opacity:.75;border-color:#ff6b2cd9;background:#ff6b2cb3}.cable-node__lock-badge{display:inline-flex;align-items:center;margin-left:4px;color:var(--neo-accent, #ff6b2c);vertical-align:middle}.cable-node__tube-lock{display:inline-flex;align-items:center;margin-left:3px;color:var(--neo-accent, #ff6b2c);vertical-align:middle}.cable-node__tube-label--locked{pointer-events:auto;cursor:context-menu}.canvas-context-menu{position:fixed;z-index:1000;min-width:200px;padding:4px;border-radius:10px;background:var(--neo-surface, #f4f6fb);border:1px solid var(--neo-border, rgba(15, 23, 42, .08));box-shadow:0 10px 30px #0f172a2e,0 1px #fff9 inset;display:flex;flex-direction:column;gap:2px}.canvas-context-menu__item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;text-align:left;font-size:.8rem;color:var(--neo-text-strong, #0f172a);padding:7px 10px;border-radius:7px;cursor:pointer;white-space:nowrap}.canvas-context-menu__item:hover:not(:disabled){background:var(--neo-accent, #ff6b2c);color:#fff}.canvas-context-menu__item:disabled{opacity:.45;cursor:default}.fiber-strand-context-menu{position:fixed;z-index:1000;width:220px;padding:8px;border-radius:10px;background:var(--neo-surface, #f4f6fb);border:1px solid var(--neo-border, rgba(15, 23, 42, .08));box-shadow:0 10px 30px #0f172a2e,0 1px #fff9 inset}.fiber-strand-context-menu__header{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.fiber-strand-context-menu__title{font-size:.78rem;font-weight:700;color:var(--neo-text-strong, #0f172a)}.fiber-strand-context-menu__meta{font-size:.65rem;color:#64748b}.fiber-strand-context-menu__section-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:6px 0 4px}.fiber-strand-context-menu__colors{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.fiber-strand-context-menu__color{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.fiber-strand-context-menu__color:hover{background:#0f172a0d}.fiber-strand-context-menu__color--selected{border-color:var(--neo-accent, #ff6b2c);background:#ff6b2c14}.fiber-strand-context-menu__swatch{width:16px;height:10px;border-radius:2px;border:1px solid rgba(15,23,42,.15)}.fiber-strand-context-menu__abbrev{font-size:.58rem;font-weight:700;color:#0f172a}.fiber-strand-context-menu__counts{display:flex;gap:4px}.fiber-strand-context-menu__count{flex:1;font-size:.7rem;padding:5px 6px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer}.fiber-strand-context-menu__count:hover{background:#f8fafc}.fiber-strand-context-menu__count--selected{border-color:var(--neo-accent, #ff6b2c);background:#ff6b2c14;color:#0f172a;font-weight:600}.fiber-strand-context-menu__hint{margin-top:6px;font-size:.62rem;color:#64748b}.buffer-tube-context-menu{position:fixed;z-index:1000;width:220px;padding:8px;border-radius:10px;background:var(--neo-surface, #f4f6fb);border:1px solid var(--neo-border, rgba(15, 23, 42, .08));box-shadow:0 10px 30px #0f172a2e,0 1px #fff9 inset}.buffer-tube-context-menu__header{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.buffer-tube-context-menu__title{font-size:.78rem;font-weight:700;color:var(--neo-text-strong, #0f172a)}.buffer-tube-context-menu__meta{font-size:.65rem;color:#64748b}.buffer-tube-context-menu__section-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin:6px 0 4px}.buffer-tube-context-menu__colors{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.buffer-tube-context-menu__color{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 2px;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.buffer-tube-context-menu__color:hover{background:#0f172a0d}.buffer-tube-context-menu__color--selected{border-color:var(--neo-accent, #ff6b2c);background:#ff6b2c14}.buffer-tube-context-menu__swatch{position:relative;width:18px;height:10px;border-radius:2px;border:1px solid rgba(15,23,42,.15);overflow:hidden}.buffer-tube-context-menu__swatch--striped .buffer-tube-context-menu__stripe{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translate(-50%)}.buffer-tube-context-menu__abbrev{font-size:.58rem;font-weight:700;color:#0f172a}.buffer-tube-context-menu__counts{display:flex;gap:4px}.buffer-tube-context-menu__count{flex:1;font-size:.7rem;padding:5px 6px;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer}.buffer-tube-context-menu__count:hover{background:#f8fafc}.buffer-tube-context-menu__count--selected{border-color:var(--neo-accent, #ff6b2c);background:#ff6b2c14;color:#0f172a;font-weight:600}.cable-node__tube-hit{position:absolute;height:14px;transform:translateY(-50%);border:0;padding:0;margin:0;background:transparent;pointer-events:all;cursor:context-menu;z-index:1}.cable-node__tube-hits{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.manual-layout-guides{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2}.manual-layout-guides line{stroke:#38bdf8;stroke-width:1;stroke-dasharray:4 4;opacity:.7}.workflow-canvas__manual-warning{font-size:.75rem;color:var(--neo-accent);max-width:28rem}.layout-search-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0f172a59;pointer-events:auto}.layout-search-overlay__panel{min-width:18rem;max-width:24rem;padding:1rem 1.25rem;border-radius:.75rem;background:var(--neo-surface, #f8fafc);box-shadow:0 8px 24px #0f172a2e;text-align:center}.layout-search-overlay__panel--pulse{animation:layout-search-pulse 1.4s ease-in-out infinite}@keyframes layout-search-pulse{0%,to{box-shadow:0 8px 24px #0f172a2e}50%{box-shadow:0 8px 28px #3b82f638}}.layout-search-overlay__title{margin:0 0 .25rem;font-size:.95rem;font-weight:600;color:var(--neo-text-strong, #0f172a)}.layout-search-overlay__context{margin:0 0 .65rem;font-size:.75rem;color:var(--neo-text-muted, #64748b)}.layout-search-overlay__bar-track{position:relative;height:.45rem;margin:0 0 .65rem;border-radius:999px;background:#94a3b840;overflow:hidden}.layout-search-overlay__bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#2563eb);transition:width .15s ease-out}.layout-search-overlay__bar-fill--indeterminate{width:35%!important;animation:layout-search-indeterminate 1.2s ease-in-out infinite}@keyframes layout-search-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.layout-search-overlay__bar-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:layout-search-shimmer 2s linear infinite;pointer-events:none}@keyframes layout-search-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.layout-search-overlay__detail{margin:0 0 .5rem;font-size:.75rem;color:var(--neo-text-muted, #64748b);line-height:1.35}.layout-search-overlay__feasible{margin:0 0 .65rem;font-size:.75rem;font-weight:600;color:#15803d}.layout-search-overlay__cancel{font-size:.8rem;padding:.35rem .75rem;border-radius:.5rem;border:1px solid rgba(100,116,139,.35);background:transparent;cursor:pointer}.layout-search-overlay__cancel:hover{background:#94a3b826}.app-spinner{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-spinner--sm{width:1rem;height:1rem}.app-spinner--md{width:2rem;height:2rem}.app-spinner--lg{width:3rem;height:3rem}.app-spinner__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid transparent}.app-spinner__ring--outer{border-top-color:#3b82f6;border-right-color:#3b82f640;animation:app-spinner-rotate .9s cubic-bezier(.5,.1,.5,.9) infinite}.app-spinner__ring--inner{top:18%;right:18%;bottom:18%;left:18%;border-bottom-color:#2563eb;border-left-color:#2563eb33;animation:app-spinner-rotate-reverse 1.1s cubic-bezier(.5,.1,.5,.9) infinite}.app-spinner--sm .app-spinner__ring{border-width:1.5px}.app-spinner--sm .app-spinner__ring--inner{top:22%;right:22%;bottom:22%;left:22%}@keyframes app-spinner-rotate{to{transform:rotate(360deg)}}@keyframes app-spinner-rotate-reverse{to{transform:rotate(-360deg)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.canvas-busy-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0f172a59;pointer-events:auto}body.exporting-diagram .workflow-canvas__canvas-area>.canvas-busy-overlay{z-index:10001}.canvas-busy-overlay__panel{display:flex;flex-direction:column;align-items:center;gap:.65rem;min-width:14rem;max-width:20rem;padding:1.25rem 1.5rem;border-radius:.75rem;background:var(--neo-surface, #f8fafc);box-shadow:0 8px 24px #0f172a2e;text-align:center}.canvas-busy-overlay__title{margin:0;font-size:.95rem;font-weight:600;color:var(--neo-text-strong, #0f172a)}.canvas-busy-overlay__detail{margin:0;font-size:.75rem;color:var(--neo-text-muted, #64748b)}.layout-search-overlay__spinner{margin:0 auto .75rem}.workflow-canvas__refining-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .65rem;border-radius:999px;font-size:.72rem;font-weight:500;color:var(--neo-text-muted, #64748b);background:#94a3b826;border:1px solid rgba(148,163,184,.25);white-space:nowrap}.workflow-canvas__stage>.react-flow{width:100%;height:100%}.workflow-canvas__inspect{margin:0;padding:.5rem .75rem;max-height:200px;overflow:auto;font-size:.7rem;line-height:1.35;color:var(--neo-text-strong);background:var(--neo-bg);box-shadow:inset 0 2px 4px #b8bec74d;white-space:pre-wrap}.splice-node{position:relative}.cable-node--composite{display:block;font-family:system-ui,sans-serif;position:relative}.cable-node--right.cable-node--composite{text-align:right}.cable-node__sheath{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #000;background:#fff;border-radius:8px;box-sizing:border-box;pointer-events:none;z-index:1;padding:2px 4px;overflow:hidden}.cable-node__titles{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;width:100%;text-align:center;pointer-events:none}.cable-node__label{font-size:.38rem;line-height:1.1;color:#475569;word-break:break-word;pointer-events:none}.cable-node__breakout-svg{display:block;overflow:visible;pointer-events:none}.cable-node__tube-label{position:absolute;font-size:.9rem;font-weight:700;color:#000;line-height:1;pointer-events:none;white-space:nowrap;z-index:6}.cable-node__tube-label.cable-node__tube-label--editable,.cable-node__tube-label.cable-node__tube-label--locked{pointer-events:auto;cursor:context-menu}.cable-node__fiber-rows{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.cable-node__fiber-row{position:absolute;height:var(--fiber-pitch, 24px);min-height:var(--fiber-pitch, 24px);transform:translateY(-50%);pointer-events:none}.cable-node__handle-slot{position:absolute;top:50%;height:6px;transform:translateY(-50%);pointer-events:none}.cable-node__fiber-code{position:absolute;top:50%;transform:translateY(-50%);font-size:.58rem;font-weight:700;color:#0f172a;box-sizing:border-box;text-align:right;pointer-events:none;z-index:6}.cable-node__fiber-code--editable{pointer-events:auto;cursor:context-menu}.cable-node--right .cable-node__fiber-code{text-align:left}.cable-node__circuit{position:absolute;top:50%;transform:translateY(-50%);font-size:.55rem;font-weight:500;color:#000;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;max-width:128px;line-height:1.2;pointer-events:none}.cable-node__circuit.nodrag{pointer-events:all;cursor:default}.cable-node__circuit--editing{pointer-events:all;cursor:text;outline:1px solid rgba(59,130,246,.65);outline-offset:0;z-index:2}.cable-node__circuit-hit{position:absolute;top:50%;transform:translateY(-50%);height:14px;background:transparent;border:none;pointer-events:all;cursor:text}.cable-node--right .cable-node__circuit{text-align:right}.circuit-bulk-edit-toast{position:fixed;z-index:30;max-width:13.5rem;padding:.375rem .5rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;box-shadow:0 4px 14px #0f172a29;pointer-events:all}.circuit-bulk-edit-toast__text{margin:0 0 .375rem;font-size:.6875rem;color:#334155;line-height:1.35}.circuit-bulk-edit-toast__actions{display:flex;align-items:center;gap:.25rem}.circuit-bulk-edit-toast__btn{font-size:.6875rem;font-weight:500;padding:.125rem .5rem;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer;line-height:1.3}.circuit-bulk-edit-toast__btn:hover{background:#f8fafc}.circuit-bulk-edit-toast__btn--primary{background:#1e293b;border-color:#1e293b;color:#fff}.circuit-bulk-edit-toast__btn--primary:hover{background:#334155}.circuit-bulk-edit-toast__btn--ghost{margin-left:auto;min-width:1.25rem;padding:.125rem .375rem;border-color:transparent;background:transparent;color:#64748b;font-size:.875rem;line-height:1}.circuit-bulk-edit-toast__btn--ghost:hover{color:#334155;background:#f1f5f9}body.exporting-diagram .circuit-bulk-edit-toast{display:none!important}.cable-node__handle{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;background:#475569!important;border:1px solid #94a3b8!important;opacity:.01;pointer-events:all}.cable-node--left .cable-node__handle-slot .cable-node__handle{right:-4px!important;left:auto!important}.cable-node--right .cable-node__handle-slot .cable-node__handle{left:-4px!important;right:auto!important}.react-flow__edge-path,.react-flow__edges path,.splice-edge path{fill:none}.react-flow__edge.selected .react-flow__edge-path{stroke-width:3px!important}.splice-edge__dot,.splice-edge__square{pointer-events:none}.splice-edge__hit{fill:none;stroke:transparent;stroke-width:16;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.splice-edge__charge{fill:none;stroke:#ff149373;stroke-width:9;stroke-linecap:round;pointer-events:none}.fiber-anchor-node,.splice-point-node,.tube-anchor-node{width:6px;height:6px;position:relative}.fiber-anchor-node{cursor:grab;touch-action:none}.fiber-anchor-node:active{cursor:grabbing}.fiber-anchor-node__dot{width:6px;height:6px;border-radius:50%;background:#171717}.splice-point-node__dot{width:9px;height:9px;border-radius:50%;background:#171717}.splice-point-node__square{width:8px;height:8px;background:#000}.splice-point-node{display:flex;align-items:center;justify-content:center;width:9px;height:9px}.fiber-anchor-node .react-flow__handle,.splice-point-node .react-flow__handle{opacity:0;width:4px!important;height:4px!important}@keyframes circuit-flash-stroke{0%,to{stroke-width:3;filter:drop-shadow(0 0 0 transparent)}50%{stroke-width:6;filter:drop-shadow(0 0 4px rgba(234,179,8,.95))}}@keyframes circuit-flash-tube-stroke{0%,to{stroke-width:8;filter:drop-shadow(0 0 0 transparent)}50%{stroke-width:11;filter:drop-shadow(0 0 5px rgba(234,179,8,.95))}}@keyframes circuit-flash-swatch{0%,to{box-shadow:0 0 0 1px #0006;transform:scaleY(1)}50%{box-shadow:0 0 0 2px #eab308,0 0 8px #eab308d9;transform:scaleY(1.8)}}@keyframes circuit-flash-label{0%,to{color:#475569;font-weight:500}50%{color:#b45309;font-weight:700}}@keyframes circuit-flash-dot{0%,to{transform:scale(1);box-shadow:0 0 0 0 transparent}50%{transform:scale(1.6);box-shadow:0 0 6px #eab308f2}}@keyframes circuit-flash-edge{0%,to{stroke-width:2.5;filter:drop-shadow(0 0 0 transparent)}50%{stroke-width:4.5;filter:drop-shadow(0 0 4px rgba(234,179,8,.95))}}.circuit-highlight-target{animation:circuit-flash-stroke 1.2s ease-in-out infinite}.circuit-highlight-target--tube{animation:circuit-flash-tube-stroke 1.2s ease-in-out infinite}.cable-node__fiber-row--highlighted .cable-node__fiber-swatch{animation:circuit-flash-swatch 1.2s ease-in-out infinite}.cable-node__fiber-row--highlighted .cable-node__circuit{animation:circuit-flash-label 1.2s ease-in-out infinite}.fiber-anchor-node--highlighted .fiber-anchor-node__dot{animation:circuit-flash-dot 1.2s ease-in-out infinite}.splice-edge--highlighted path{animation:circuit-flash-edge 1.2s ease-in-out infinite}.splice-edge--highlighted .splice-edge__dot,.splice-edge--highlighted .splice-edge__square{animation:circuit-flash-dot 1.2s ease-in-out infinite}.circuit-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.circuit-panel__header h3{margin:0;color:var(--neo-text-strong)}.circuit-panel__clear{padding:.25rem .6rem;font-size:.75rem;font-family:inherit;border:none;border-radius:var(--neo-radius-pill);background:var(--neo-bg);color:var(--neo-text);box-shadow:var(--neo-shadow-raised-sm);cursor:pointer;transition:box-shadow .15s ease,color .15s ease}.circuit-panel__clear:hover{box-shadow:var(--neo-shadow-raised);color:var(--neo-accent)}.circuit-panel__clear:active{box-shadow:var(--neo-shadow-pressed)}.circuit-panel__clear:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.circuit-panel__hint{margin:0 0 .5rem;font-size:.72rem;color:var(--neo-text-muted);line-height:1.35}.circuit-panel__search{width:100%;box-sizing:border-box;margin-bottom:.5rem;padding:.4rem .65rem;font-size:.8125rem;font-family:inherit;color:var(--neo-text-strong);border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);box-shadow:var(--neo-shadow-inset);outline:none}.circuit-panel__search::placeholder{color:var(--neo-text-muted)}.circuit-panel__search:focus{box-shadow:var(--neo-shadow-inset),0 0 0 2px var(--neo-accent-glow)}.circuit-panel__list{list-style:none;margin:0;padding:0}.circuit-panel__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.45rem .6rem;margin-bottom:.35rem;text-align:left;font-size:.8125rem;font-family:inherit;border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);color:var(--neo-text-strong);box-shadow:var(--neo-shadow-raised-sm);cursor:pointer;transition:box-shadow .15s ease,background .15s ease}.circuit-panel__item:hover{box-shadow:var(--neo-shadow-raised)}.circuit-panel__item:active{box-shadow:var(--neo-shadow-pressed)}.circuit-panel__item:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.circuit-panel__item--active{background:var(--neo-accent-soft);box-shadow:var(--neo-shadow-inset);border-left:3px solid var(--neo-accent);padding-left:calc(.6rem - 3px)}.circuit-panel__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.circuit-panel__count{flex-shrink:0;font-size:.7rem;color:var(--neo-text-muted)}.circuit-panel__empty{margin-top:.5rem;color:var(--neo-text-muted)}.splice-report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:stretch;justify-content:center}.splice-report-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--neo-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.splice-report-overlay__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(960px,calc(100% - 2rem));height:calc(100% - 2rem);margin:1rem auto;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.splice-report-overlay__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:none;box-shadow:inset 0 -2px 4px #b8bec740;flex-shrink:0}.splice-report-overlay__title{margin:0;font-size:1rem;font-weight:600;color:var(--neo-text-strong)}.splice-report-overlay__actions{display:flex;flex-wrap:wrap;gap:.5rem}.splice-report-overlay__text{flex:1;margin:0;padding:1rem 1.25rem;overflow:auto;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.8125rem;line-height:1.5;color:var(--neo-text-strong);white-space:pre-wrap;word-break:break-word}.help-guide-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem}.help-guide-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--neo-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.help-guide-overlay__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(42rem,100%);max-height:85vh;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.help-guide-overlay__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;box-shadow:inset 0 -2px 4px #b8bec740;flex-shrink:0}.help-guide-overlay__title{margin:0;font-size:1rem;font-weight:600;color:var(--neo-text-strong)}.help-guide-overlay__body{flex:1;overflow-y:auto;padding:.75rem 1rem 1rem}.help-guide-overlay__content{display:flex;flex-direction:column;gap:1.25rem}.help-guide-overlay__section-title{margin:0 0 .625rem;font-size:.8125rem;font-weight:600;color:var(--neo-text-muted);text-transform:uppercase;letter-spacing:.04em}.help-guide-overlay__step-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.375rem;margin-bottom:.5rem}.help-guide-overlay__step-arrow{font-size:1.125rem;color:var(--neo-text-muted);line-height:1}.help-guide-overlay__card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem}.help-guide-overlay__card-grid--compact{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}.help-guide-overlay__card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.625rem .375rem .5rem;background:var(--neo-surface);border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-inset-sm);text-align:center}.help-guide-overlay__card-badge{position:absolute;top:.25rem;right:.25rem}.help-guide-overlay__card-visual{display:flex;align-items:center;justify-content:center;min-height:2.75rem;color:var(--neo-text-strong)}.help-guide-overlay__card-caption{font-size:.6875rem;line-height:1.25;color:var(--neo-text-muted)}.help-guide-overlay__key-badge{display:inline-block;padding:.125rem .375rem;font-size:.625rem;font-weight:600;line-height:1.3;color:var(--neo-text-strong);background:var(--neo-bg);border-radius:.25rem;box-shadow:var(--neo-shadow-raised-sm)}.help-guide-overlay__key-badge-row{display:flex;gap:.125rem}.help-guide-overlay__dbl-badge{display:inline-block;font-size:.625rem;font-weight:700;color:var(--neo-text-muted)}.help-guide-overlay__dual-icon{display:flex;gap:.25rem;align-items:center}.help-guide-overlay__toolbar-map{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.help-guide-overlay__toolbar-note{margin:.75rem 0 0;text-align:center;font-size:.8125rem;color:var(--neo-text-muted, #64748b)}.help-guide-overlay__toolbar-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:2.75rem}.help-guide-overlay__toolbar-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;color:var(--neo-text-strong);background:var(--neo-surface);border-radius:var(--neo-radius-sm);box-shadow:var(--neo-shadow-inset-sm)}.help-guide-overlay__toolbar-label{font-size:.625rem;color:var(--neo-text-muted);line-height:1.2}.help-guide-overlay__esc-hint{font-size:1.25rem;color:var(--neo-text-muted)}.help-guide-illustration{display:block;color:var(--neo-text-strong)}.connection-inspector-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:52;display:flex;align-items:stretch;justify-content:center}.connection-inspector-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--neo-scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.connection-inspector-overlay__panel{position:relative;z-index:1;display:flex;flex-direction:column;width:min(1220px,calc(100% - 2rem));height:calc(100% - 2rem);margin:1rem auto;background:var(--neo-bg);border-radius:var(--neo-radius-md);box-shadow:var(--neo-shadow-raised-lg)}.connection-inspector-overlay__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:none;box-shadow:inset 0 -2px 4px #b8bec740}.connection-inspector-overlay__title{margin:0;font-size:1rem;font-weight:600;color:var(--neo-text-strong)}.connection-inspector-overlay__actions{display:flex;gap:.5rem;flex-wrap:wrap}.connection-inspector-overlay__empty{margin:0;padding:1.25rem;color:var(--neo-text-muted);font-size:.9rem}.connection-inspector{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.72fr) minmax(0,1fr);gap:.75rem;flex:1;min-height:0;padding:.75rem;background:transparent}.connection-inspector__panel--canvas{min-width:0}.connection-inspector__canvas{position:relative;flex:1;min-height:0;overflow:hidden}.connection-inspector__canvas-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.connection-inspector__link--interactive{pointer-events:all;cursor:pointer}.connection-inspector__link-hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke}.connection-inspector__link-path{fill:none;stroke:var(--manual-select-color);stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.connection-inspector__link-path--glow{stroke:var(--manual-select-glow);stroke-width:5}.connection-inspector__link-handle{fill:var(--manual-select-color);stroke:var(--manual-select-ring);stroke-width:1}.connection-inspector__panel{display:flex;flex-direction:column;min-height:0;border:none;border-radius:var(--neo-radius-md);background:var(--neo-bg);box-shadow:var(--neo-shadow-raised)}.connection-inspector__panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-bottom:none;box-shadow:inset 0 -2px 4px #b8bec733}.connection-inspector__panel-header h3{margin:0;font-size:.875rem;color:var(--neo-text-strong)}.connection-inspector__select-wrap{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--neo-text-muted)}.connection-inspector__select-wrap select{min-width:180px;max-width:300px;padding:.35rem .55rem;border-radius:var(--neo-radius-sm);border:none;background:var(--neo-bg);color:var(--neo-text-strong);font-size:.75rem;font-family:inherit;box-shadow:var(--neo-shadow-inset);outline:none;cursor:pointer}.connection-inspector__select-wrap select:focus{box-shadow:var(--neo-shadow-inset),0 0 0 2px var(--neo-accent-glow)}.connection-inspector__strand-scroll{flex:1;overflow:auto;padding:.6rem .6rem .25rem}.connection-inspector__tube-group{margin-bottom:.35rem}.connection-inspector__tube-toggle{display:flex;align-items:center;gap:.35rem;width:100%;margin:0;padding:.35rem .4rem;border:none;border-radius:var(--neo-radius-sm);background:transparent;color:var(--neo-text);cursor:pointer;text-align:left;box-shadow:var(--neo-shadow-inset)}.connection-inspector__tube-toggle:hover{box-shadow:var(--neo-shadow-raised)}.connection-inspector__tube-toggle:focus-visible{outline:2px solid var(--neo-accent);outline-offset:2px}.connection-inspector__tube-chevron{flex:0 0 auto;font-size:.65rem;color:var(--neo-text-muted);transition:transform .15s ease}.connection-inspector__tube-swatch{position:relative;flex:0 0 auto;width:14px;height:14px;border-radius:50%;border:1px solid rgba(15,23,42,.2);overflow:hidden}.connection-inspector__tube-swatch--striped{border-radius:3px}.connection-inspector__tube-swatch-stripe{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translate(-50%)}.connection-inspector__tube-group--expanded .connection-inspector__tube-chevron{transform:rotate(90deg)}.connection-inspector__tube-title{flex:1 1 auto;font-size:.72rem;font-weight:700;color:var(--neo-text)}.connection-inspector__tube-meta{flex:0 0 auto;font-size:.65rem;color:var(--neo-text-muted)}.connection-inspector__tube-group--expanded .connection-inspector__strand-list{margin-top:.35rem;padding-left:1.25rem}.connection-inspector__strand-list{display:grid;gap:.25rem}.connection-inspector__strand{display:flex;align-items:center;gap:.4rem;width:100%;padding:.35rem .45rem;border:none;border-radius:var(--neo-radius-sm);background:var(--neo-bg);box-shadow:var(--neo-shadow-raised-sm);text-align:left;font-size:.76rem;font-family:inherit;color:var(--neo-text-muted);font-weight:400;cursor:pointer;transition:box-shadow .15s ease}.connection-inspector__strand:hover{box-shadow:var(--neo-shadow-raised)}.connection-inspector__strand--active{background:var(--manual-select-soft);box-shadow:var(--neo-shadow-inset),0 0 0 2px var(--manual-select-ring);color:var(--neo-text-strong)}.connection-inspector__strand:focus-visible{outline:2px solid var(--manual-select-color);outline-offset:2px}.connection-inspector__swatch{width:10px;height:10px;border-radius:50%;border:1px solid currentColor;flex-shrink:0}.connection-inspector__strand-text{flex:0 0 auto;white-space:nowrap;color:inherit;font-weight:inherit}.connection-inspector__strand:not(.connection-inspector__strand--connected) .connection-inspector__swatch{opacity:.72}.connection-inspector__circuit-name{flex:1 1 auto;min-width:0;margin-left:auto;padding-left:.45rem;text-align:right;font-size:.65rem;color:var(--neo-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-inspector__strand--connected .connection-inspector__circuit-name{color:var(--neo-text-strong)}.connection-inspector__strand--connected{color:var(--neo-text-strong);font-weight:700}.connection-inspector__strand--connected .connection-inspector__strand-text{font-weight:inherit}.connection-inspector__count{font-size:.72rem;color:var(--neo-text-muted)}.connection-inspector__badge{padding:.05rem .3rem;border-radius:var(--neo-radius-pill);background:var(--neo-bg);box-shadow:var(--neo-shadow-inset);color:var(--neo-text);font-size:.65rem;font-weight:600}.connection-inspector-overlay__message{margin:0;padding:.5rem 1rem;font-size:.85rem;color:var(--neo-danger, #b91c1c);border-bottom:1px solid var(--neo-border, rgba(15, 23, 42, .08))}.connection-inspector__add-cable{display:block;width:100%;margin:0 0 .5rem;padding:.35rem .5rem;border:none;border-radius:var(--neo-radius-sm, 6px);background:var(--neo-bg);box-shadow:var(--neo-shadow-outset-sm, var(--neo-shadow-outset));color:var(--neo-text-muted);font-size:.78rem;cursor:pointer;text-align:left}.connection-inspector__add-cable:hover{color:var(--neo-text)}.connection-inspector__add-cable-form{display:grid;gap:.35rem;margin:0 0 .5rem;padding:.5rem;border-radius:var(--neo-radius-sm, 6px);background:var(--neo-bg);box-shadow:var(--neo-shadow-inset)}.connection-inspector__add-cable-field{display:flex;flex-direction:column;gap:.15rem;font-size:.72rem;color:var(--neo-text-muted)}.connection-inspector__add-cable-field input,.connection-inspector__add-cable-field select{padding:.25rem .4rem;border:1px solid var(--neo-border, rgba(15, 23, 42, .12));border-radius:var(--neo-radius-sm, 6px);font-size:.78rem}.connection-inspector__add-cable-actions{display:flex;gap:.35rem;flex-wrap:wrap}.connection-inspector__move-cable{display:block;width:100%;margin-top:.35rem;padding:.3rem .45rem;border:none;border-radius:var(--neo-radius-sm, 6px);background:var(--neo-bg);box-shadow:var(--neo-shadow-outset-sm, var(--neo-shadow-outset));color:var(--neo-text-muted);font-size:.72rem;cursor:pointer;text-align:center}.connection-inspector__move-cable:hover{color:var(--neo-text)}.connection-inspector__remove-cable,.connection-inspector__edit-cable{display:block;width:100%;margin-top:.35rem;padding:.3rem .45rem;border:none;border-radius:var(--neo-radius-sm, 6px);background:var(--neo-bg);box-shadow:var(--neo-shadow-outset-sm, var(--neo-shadow-outset));color:var(--neo-text-muted);font-size:.72rem;cursor:pointer;text-align:center}.connection-inspector__remove-cable:hover,.connection-inspector__edit-cable:hover{color:var(--neo-text)}.connection-inspector__metadata{display:flex;flex-wrap:wrap;gap:.75rem 1rem;padding:0 1rem .75rem;border-bottom:1px solid var(--neo-border, rgba(0, 0, 0, .08))}.connection-inspector__metadata-field{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:var(--neo-text-muted);min-width:10rem;flex:1}.connection-inspector__metadata-field input{padding:.35rem .5rem;border-radius:var(--neo-radius-sm, 6px);border:1px solid var(--neo-border, rgba(0, 0, 0, .12));font-size:.8rem}@media(max-width:1080px){.connection-inspector{grid-template-columns:1fr}.connection-inspector__select-wrap select{min-width:140px}}.cable-callout-root{position:relative;overflow:visible}.react-flow__node:has(.cable-callout-root){overflow:visible!important}.cable-callout__leader{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;z-index:2}.cable-callout{box-sizing:border-box;display:inline-block;width:max-content;height:max-content;border:calc(3px * var(--callout-scale, 1)) solid #dc2626;border-radius:calc(8px * var(--callout-scale, 1));background:#fff;padding:calc(4px * var(--callout-scale, 1)) calc(6px * var(--callout-scale, 1));pointer-events:all;cursor:grab;touch-action:none;max-width:calc(320px * var(--callout-scale, 1));overflow:hidden}.cable-callout:active{cursor:grabbing}.cable-callout__display,.cable-callout__line,.cable-callout__text{display:block;margin:0;padding:0;border:none;resize:none;overflow:hidden;overflow-wrap:break-word;word-break:break-word;background:transparent;color:#dc2626;font-family:inherit;font-size:calc(.9375rem * var(--callout-scale, 1));font-weight:600;line-height:1.35;outline:none;width:max-content;max-width:calc(308px * var(--callout-scale, 1))}.cable-callout__display{white-space:pre-wrap}.cable-callout__display{-webkit-user-select:none;user-select:none}.callout-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center}.callout-edit-overlay__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73}.callout-edit-overlay__panel{position:relative;z-index:1;width:min(28rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;border-radius:10px;border:1px solid #cbd5e1;background:#fff;box-shadow:0 12px 32px #0f172a33}.callout-edit-overlay__header,.callout-edit-overlay__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #e2e8f0}.callout-edit-overlay__footer{border-bottom:none;border-top:1px solid #e2e8f0;justify-content:flex-end}.callout-edit-overlay__title{margin:0;font-size:1rem;font-weight:600;color:#0f172a}.callout-edit-overlay__close,.callout-edit-overlay__btn{font-size:.8125rem;font-weight:500;padding:.375rem .75rem;border-radius:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;cursor:pointer}.callout-edit-overlay__btn--primary{background:#dc2626;border-color:#dc2626;color:#fff}.callout-edit-overlay__body{padding:.75rem 1rem 1rem}.callout-edit-form{display:grid;gap:.625rem}.callout-edit-form__hint{margin:0 0 .75rem;font-size:.75rem;color:#64748b}.callout-edit-form__field{display:grid;gap:.25rem;font-size:.75rem;color:#475569}.callout-edit-form__field input{font-size:.875rem;padding:.375rem .5rem;border:1px solid #cbd5e1;border-radius:6px;color:#0f172a}.callout-edit-form__readonly,.callout-edit-form__preview{margin-top:.75rem}.callout-edit-form__readonly-label,.callout-edit-form__preview-label{display:block;margin-bottom:.25rem;font-size:.75rem;color:#64748b}.callout-edit-form__readonly-value,.callout-edit-form__preview-text{margin:0;padding:.5rem .625rem;border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc;color:#dc2626;font-size:.875rem;font-weight:600;line-height:1.35;white-space:pre-wrap}.callout-leader-panel{margin:0!important;width:100%;height:100%;pointer-events:none}.callout-leader-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:50}.callout-leader-layer__line{stroke:#dc2626;stroke-width:calc(2.5px * var(--callout-scale, 1));stroke-linecap:square}@media screen{body.exporting-diagram .workflow-canvas__stage{position:fixed;left:-20000px;top:0;opacity:0;pointer-events:none;width:var(--export-stage-width, 5025px)!important;height:var(--export-stage-height, 3225px)!important;max-width:var(--export-stage-width, 5025px)!important;max-height:var(--export-stage-height, 3225px)!important;margin:0!important;overflow:visible!important;background:#fff!important}body.exporting-diagram .react-flow__controls,body.exporting-diagram .react-flow__background,body.exporting-diagram .react-flow__background pattern,body.exporting-diagram .manual-adjust-panel,body.exporting-diagram .manual-adjust-overlay,body.exporting-diagram .manual-adjust-dot,body.exporting-diagram .manual-adjust-segment,body.exporting-diagram .manual-adjust-segment-highlight,body.exporting-diagram .manual-adjust-selection-ring,body.exporting-diagram .manual-layout-guides,body.exporting-diagram .cable-node__manual-handles,body.exporting-diagram .cable-node__tube-tip-drag{display:none!important}body.exporting-diagram .workflow-canvas__stage .react-flow{width:var(--export-stage-width, 5025px)!important;height:var(--export-stage-height, 3225px)!important;max-width:var(--export-stage-width, 5025px)!important;max-height:var(--export-stage-height, 3225px)!important;margin:0!important;overflow:visible!important;background:#fff!important}body.exporting-diagram .react-flow__renderer,body.exporting-diagram .react-flow__viewport,body.exporting-diagram .react-flow__pane{overflow:visible!important;background:#fff!important}body.exporting-diagram .react-flow svg{overflow:visible!important;shape-rendering:geometricPrecision}body.exporting-diagram .react-flow__edge path,body.exporting-diagram .splice-edge path,body.exporting-diagram .callout-leader-layer line{shape-rendering:geometricPrecision}body.exporting-diagram .cable-callout{--callout-scale: 1 !important;overflow:visible!important;border-width:3px!important;border-radius:8px!important;padding:4px 6px!important;max-width:320px!important}body.exporting-diagram .cable-callout__line,body.exporting-diagram .cable-callout__display,body.exporting-diagram .cable-callout__text{font-size:15px!important;color:#dc2626!important;-webkit-text-fill-color:#dc2626!important;max-width:308px!important;overflow:visible!important}body.exporting-diagram .callout-leader-layer__line{stroke-width:2.5px!important}body.exporting-diagram .splice-edge__hit,body.exporting-diagram .splice-edge__charge{display:none!important}body.exporting-diagram .react-flow__panel.callout-leader-panel,body.exporting-diagram .callout-leader-panel,body.exporting-diagram .callout-leader-layer,body.exporting-diagram .callout-leader-layer__line,body.exporting-diagram .cable-callout,body.exporting-diagram .cable-callout__display,body.exporting-diagram .cable-callout__line,body.exporting-diagram .cable-callout__text,body.exporting-diagram .diagram-title,body.exporting-diagram .diagram-contact,body.exporting-diagram .diagram-legend,body.exporting-diagram .diagram-heading,body.exporting-diagram .react-flow__node,body.exporting-diagram .react-flow__edge{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.diagram-title{box-sizing:border-box;width:fit-content;max-width:calc(520px * var(--overlay-scale, 1));border:calc(1px * var(--overlay-scale, 1)) solid var(--neo-text-muted);border-radius:calc(var(--neo-radius-sm) * var(--overlay-scale, 1));background:transparent;padding:calc(4px * var(--overlay-scale, 1)) calc(10px * var(--overlay-scale, 1));pointer-events:all;color:var(--neo-text-strong);font-family:ui-monospace,Cascadia Code,Consolas,monospace;line-height:1.15;box-shadow:none}.diagram-title__line{display:flex;flex-wrap:nowrap;align-items:baseline;gap:.35rem;min-height:1.15em;white-space:nowrap}.diagram-title__line+.diagram-title__line{margin-top:0}.diagram-title__line--address{flex-wrap:wrap}.diagram-title__sep{flex-shrink:0;-webkit-user-select:none;user-select:none;pointer-events:none}.diagram-title__label{flex-shrink:0;font-weight:600;color:var(--neo-text-strong)}.diagram-title--editable,.diagram-title--editable .diagram-title__value{cursor:pointer}.diagram-title__value{flex:0 1 auto;min-width:2ch;outline:none;border:none;background:transparent;color:inherit;font:inherit;line-height:inherit;cursor:text}.diagram-title__value:focus{outline:none;background:transparent;text-decoration:underline;text-decoration-color:var(--neo-text-muted);text-underline-offset:2px}.diagram-title__value:empty:before{content:" "}.diagram-contact{max-width:none;text-align:left}.diagram-legend{max-width:none;width:max-content}.diagram-legend__row{display:grid;grid-template-columns:1.125rem auto;column-gap:.5rem;align-items:center}.diagram-legend__symbol{grid-column:1;justify-self:end;display:inline-flex;align-items:center;justify-content:flex-end;min-height:7px}.diagram-legend__symbol--dot{width:7px;height:7px;border-radius:50%;background:#171717}.diagram-legend__symbol--square{width:8px;height:8px;background:#000}.diagram-legend__symbol--existing{width:100%;justify-self:stretch;justify-content:stretch;height:1em;opacity:.85;border:none}.diagram-legend__symbol--existing:after{content:"";display:block;width:100%;border-top:1.5px dashed #94a3b8}.diagram-legend__label{grid-column:2;flex:none}.react-flow__node:has(.diagram-heading){pointer-events:all}.diagram-heading{box-sizing:border-box;pointer-events:all;color:#dc2626;font-family:system-ui,Segoe UI,sans-serif;font-weight:600;line-height:1.2;text-align:center;background:transparent;box-shadow:none;cursor:pointer}.diagram-heading__text{display:block;width:100%;min-height:1.2em;text-align:center;pointer-events:all}.diagram-heading__text--placeholder{color:#f87171;font-weight:500}.diagram-heading__subline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.35rem;margin-top:2px;font-size:var(--diagram-heading-sub-font-size, 14px);font-weight:600;line-height:1.3;color:#dc2626}.diagram-heading__label{flex-shrink:0}.diagram-heading__subvalue{flex:0 1 auto;min-width:2ch;text-align:center;pointer-events:all}.manual-adjust-panel{margin:0!important;width:100%;height:100%;pointer-events:none}.manual-adjust-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.manual-adjust-segment{position:absolute;border:none;background:transparent;pointer-events:all;padding:0}.manual-adjust-segment-highlight{position:absolute;border-radius:2px;background:#ff149366;pointer-events:none}.manual-adjust-segment-highlight--selected{background:#ff1493cc}.manual-adjust-dot{position:absolute;border:none;border-radius:50%;background:transparent;pointer-events:all;padding:0;cursor:ew-resize}.manual-adjust-dot:hover,.manual-adjust-dot:active{background:#ff14934d}.manual-adjust-dot--selected{background:#ff149399}.manual-adjust-dot--square{border-radius:3px}.manual-adjust-dot--locked{box-shadow:0 0 0 2px #f59e0b;cursor:default}.manual-adjust-selection-ring{position:absolute;width:14px;height:14px;border:2px solid #ff1493;border-radius:50%;pointer-events:none}.manual-adjust-marquee{position:absolute;border:1px dashed #2563eb;background:#2563eb14;pointer-events:none}.workflow-canvas--manual-adjust .splice-point-node{pointer-events:none}.side-drag-preview-panel{pointer-events:none;margin:0;padding:0}.side-drag-preview-overlay{position:relative;width:0;height:0;overflow:visible;pointer-events:none}.side-drag-preview-band{position:absolute;border-radius:4px;background:#3b82f624;box-shadow:inset 0 0 0 2px #3b82f673;pointer-events:none}.side-drag-preview-band--active{background:#3b82f647;box-shadow:inset 0 0 0 2px #3b82f6d9}.side-drag-preview-label{position:absolute;left:12px;top:12px;padding:.2rem .45rem;border-radius:4px;background:#0f172ad1;color:#e2e8f0;font-size:.72rem;letter-spacing:.02em;white-space:nowrap;pointer-events:none}
