.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;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{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))}@font-face{font-family:Inter Variable;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono Variable;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2");font-weight:100 800;font-display:swap}:root{--font-display: "Inter Variable", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--font-ui: "Inter Variable", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--ease-out: cubic-bezier(.2, .7, .2, 1);--duration-fast: .12s;--duration-base: .18s;--duration-slow: .32s;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--brand-blue: #4d76b8;--brand-cyan: #9cdded;--gradient-brand: linear-gradient(135deg, #4d76b8 0%, #9cdded 100%)}:root,[data-theme=light]{color-scheme:light;--surface-base: #ffffff;--surface-raised: #ffffff;--surface-sunken: #eef0f4;--surface-canvas: #f3f4f7;--border-subtle: #e3e6ec;--border-strong: #c3c8d2;--text-primary: #161920;--text-muted: #555c6b;--text-faint: #5c6474;--brand: #3f6aad;--brand-hover: #345a97;--on-brand: #ffffff;--brand-wash: #e7eef8;--accent: #a35c14;--accent-hover: #8f4f0f;--on-accent: #ffffff;--accent-text: #8a4e0f;--danger-text: #b3372f;--success-text: #157347;--warning-text: #92400e;--focus-ring: #3f6aad;--cat-trigger-text: #7c4a03;--cat-trigger-wash: #f7e6d0;--cat-trigger-dot: #a35c14;--cat-logic-text: #5b3a8c;--cat-logic-wash: #ece3f7;--cat-logic-dot: #7a4fc9;--cat-transform-text: #155e73;--cat-transform-wash: #d8eef5;--cat-transform-dot: #2c7ba0;--cat-integration-text: #1f4f86;--cat-integration-wash: #dde8f7;--cat-integration-dot: #3a66b4;--status-running: #2c6fa0;--status-completed: #157347;--status-failed: #b3372f;--status-cancelled: #5c6474;--panel-glass: rgba(255, 255, 255, .88);--shadow-soft: 0 1px 2px rgba(15, 18, 24, .06), 0 4px 16px rgba(15, 18, 24, .08);--shadow-lift: 0 2px 4px rgba(15, 18, 24, .08), 0 24px 40px -12px rgba(15, 18, 24, .16);--canvas-dot: rgba(15, 18, 24, .12);--mesh-a: rgba(77, 118, 184, .06);--mesh-b: rgba(156, 221, 237, .06)}[data-theme=dark]{color-scheme:dark;--surface-base: #0d0f14;--surface-raised: #14171f;--surface-sunken: #07080b;--surface-canvas: #07080b;--border-subtle: #1e222b;--border-strong: #353a45;--text-primary: #eef0f4;--text-muted: #9aa0ad;--text-faint: #868d9c;--brand: #9cdded;--brand-hover: #b7e6f2;--on-brand: #062a30;--brand-wash: #12242c;--accent: #ffb874;--accent-hover: #ffc78f;--on-accent: #2a1704;--accent-text: #ffb874;--danger-text: #f4a1a1;--success-text: #7fe0a0;--warning-text: #e5b567;--focus-ring: #9cdded;--cat-trigger-text: #ffce9b;--cat-trigger-wash: #2a1d0f;--cat-trigger-dot: #ffb874;--cat-logic-text: #d8bcff;--cat-logic-wash: #211a30;--cat-logic-dot: #c8a4ff;--cat-transform-text: #b6e6f2;--cat-transform-wash: #10262c;--cat-transform-dot: #9cdded;--cat-integration-text: #a9cdff;--cat-integration-wash: #111d30;--cat-integration-dot: #7bb6ff;--status-running: #9cdded;--status-completed: #7fe0a0;--status-failed: #f4a1a1;--status-cancelled: #8a92a1;--panel-glass: rgba(13, 15, 20, .82);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 16px rgba(0, 0, 0, .4);--shadow-lift: 0 2px 6px rgba(0, 0, 0, .4), 0 24px 48px -12px rgba(0, 0, 0, .6);--canvas-dot: rgba(255, 255, 255, .09);--mesh-a: rgba(77, 118, 184, .1);--mesh-b: rgba(156, 221, 237, .06)}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-slow: 0ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text-primary);background:radial-gradient(1100px 500px at 85% -10%,var(--mesh-a),transparent 60%),radial-gradient(900px 480px at -10% 110%,var(--mesh-b),transparent 55%),var(--surface-base)}.app{height:100vh;height:100dvh;display:grid;grid-template-columns:232px minmax(0,1fr);overflow:hidden}.sidebar{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-4) var(--space-3);border-right:1px solid var(--border-subtle);background:var(--surface-raised);min-width:0}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px;color:var(--text-primary);font-weight:600;font-size:var(--text-md);text-decoration:none}.brand-mark{width:24px;height:24px;flex:none}.brand-name{font-family:var(--font-display);letter-spacing:-.01em}.brand-name em{font-style:normal;color:var(--brand)}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}.side-foot{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--radius-md);color:var(--text-muted);font:inherit;font-size:var(--text-base);font-weight:550;border:0;background:none;cursor:pointer;text-align:left;text-decoration:none;min-height:40px;width:100%;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.nav-item:hover{background:color-mix(in srgb,var(--brand-wash) 55%,transparent);color:var(--text-primary)}.nav-item.on{background:var(--brand-wash);color:var(--text-primary)}.nav-item.on svg{color:var(--brand)}.nav-item svg{flex:none;color:var(--text-faint)}.nav-item:hover svg{color:var(--text-muted)}@media (max-width: 1100px){.app{grid-template-columns:64px minmax(0,1fr)}.brand-name,.nav-item span{display:none}.nav-item{justify-content:center;padding:10px}.brand{justify-content:center;padding:6px 0}}@media (max-width: 780px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.sidebar{order:2;flex-direction:row;align-items:center;border-right:0;border-top:1px solid var(--border-subtle);padding:6px 10px calc(6px + env(safe-area-inset-bottom));gap:0}.brand{display:none}.side-nav{flex-direction:row;flex:1;justify-content:space-around}.side-foot{flex-direction:row}.nav-item{flex-direction:column;gap:4px;font-size:10px;min-height:48px;padding:6px 10px;width:auto}.nav-item span{display:block}}.spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary);border-radius:var(--radius-md);padding:7px 14px;cursor:pointer;text-decoration:none;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.btn:disabled{opacity:.55;cursor:default}.btn:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn-primary{background:var(--brand);border-color:transparent;color:var(--on-brand)}.btn-primary:hover{background:var(--brand-hover)}.btn-icon{padding:0;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center}.btn-soft{background:var(--brand-wash);border-color:transparent;color:var(--brand)}.btn-soft:hover{background:color-mix(in srgb,var(--brand-wash) 70%,var(--brand) 12%)}.b-back,.b-theme{background:none;border-color:transparent;color:var(--text-muted);flex:none}.b-back:hover,.b-theme:hover{background:color-mix(in srgb,var(--brand-wash) 55%,transparent);color:var(--text-primary);box-shadow:none;transform:none}.b-divider{width:1px;height:22px;background:var(--border-strong);margin:0 var(--space-1);flex:none}.b-name{flex:none;width:240px}.b-status{flex:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.shell-main{padding:var(--space-6);overflow-y:auto;min-width:0;overflow-x:hidden}.page-title{font-family:var(--font-display);font-weight:560;font-size:var(--text-xl)}.page-hint{color:var(--text-muted);margin-top:var(--space-2);max-width:52ch}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.empty-card{margin-top:var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-raised) 65%,transparent);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);align-items:flex-start}.shell-main a{color:var(--brand)}.shell-main a.btn{color:var(--text-primary)}.shell-main a.btn-primary{color:var(--on-brand)}@media (max-width: 720px){.shell-main{padding:var(--space-4)}}.conn-tabs{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}.conn-tabs::-webkit-scrollbar{display:none}.builder{display:grid;grid-template-rows:60px 1fr;height:100%;min-height:0}.builder-bar{display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);min-height:60px;border-bottom:1px solid var(--border-subtle);background:var(--panel-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);z-index:5}.dirty-hint{color:var(--accent-text);font-size:var(--text-sm)}.saved-hint{color:var(--success-text);font-size:var(--text-sm)}.builder-canvas{height:100%;min-height:0}.builder-canvas .react-flow{background:var(--surface-canvas)}.builder-canvas .react-flow__background{color:var(--canvas-dot)}.metis-node{position:relative;width:240px;height:56px;box-sizing:border-box;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface-raised);box-shadow:var(--shadow-soft);padding:10px 14px 10px 16px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.metis-node:hover{border-color:color-mix(in srgb,var(--text-primary) 25%,transparent);box-shadow:var(--shadow-lift)}.metis-node.selected{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent),var(--shadow-lift)}.fnode-inner{display:flex;align-items:center;gap:12px}.metis-node:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--stripe-color, var(--border-strong))}.cat-trigger{--stripe-color: var(--cat-trigger-dot)}.cat-logic{--stripe-color: var(--cat-logic-dot)}.cat-transform{--stripe-color: var(--cat-transform-dot)}.cat-integration{--stripe-color: var(--cat-integration-dot)}.fnode-icon{width:34px;height:34px;border-radius:var(--radius-md);flex:none;display:flex;align-items:center;justify-content:center;color:var(--cat-integration-dot);background:var(--cat-integration-wash)}.cat-trigger .fnode-icon{color:var(--cat-trigger-dot);background:var(--cat-trigger-wash)}.cat-logic .fnode-icon{color:var(--cat-logic-dot);background:var(--cat-logic-wash)}.cat-transform .fnode-icon{color:var(--cat-transform-dot);background:var(--cat-transform-wash)}.cat-integration .fnode-icon{color:var(--cat-integration-dot);background:var(--cat-integration-wash)}.fnode-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}.fnode-name{font-weight:600;font-size:13.5px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fnode-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fnode-state{width:18px;height:18px;flex:none;display:flex;align-items:center;justify-content:center}.metis-node.is-completed .fnode-state{color:var(--success-text)}.metis-node.is-failed .fnode-state{color:var(--danger-text)}.metis-node.is-running{border-color:var(--brand)}.fnode-spin{width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,var(--brand) 30%,transparent);border-top-color:var(--brand);animation:fnode-spin .8s linear infinite}@keyframes fnode-spin{to{transform:rotate(360deg)}}.layout-controls{display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--panel-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.react-flow__handle{width:11px;height:11px;background:var(--surface-raised);border:1.5px solid var(--text-faint)}.react-flow__handle-right:hover,.metis-node.selected .react-flow__handle{border-color:var(--brand)}.fnode-port-label{position:absolute;right:12px;transform:translateY(-50%);font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);pointer-events:none}.fnode-plus{position:absolute;right:-40px;top:calc(50% - 13px);width:26px;height:26px;border-radius:50%;background:var(--surface-raised);border:1px dashed var(--border-strong);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;opacity:0;transition:opacity var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.metis-node:hover .fnode-plus,.metis-node.selected .fnode-plus,.fnode-plus:focus-visible{opacity:1}.fnode-plus:hover{border-style:solid;border-color:var(--brand);color:var(--brand)}.react-flow__edge-path{stroke:var(--border-strong);stroke-width:1.75}.login-main{display:grid;place-items:center}.login-card{width:min(380px,92vw);background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.wordmark-tail{color:var(--brand)}.field label{display:block;font-size:var(--text-sm);font-weight:650;margin-bottom:var(--space-1)}.field input,.field select,.field textarea{font:inherit;width:100%;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-primary)}.login-error{color:var(--danger-text);font-size:var(--text-sm)}.builder-body{position:relative;height:100%;min-height:0;overflow:hidden}.builder-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.b-add{position:absolute;top:var(--space-4);left:var(--space-4);z-index:6;box-shadow:var(--shadow-lift),0 8px 20px -10px #4d76b8b3}.b-zoom{display:flex;align-items:center;gap:2px;background:var(--panel-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px;box-shadow:var(--shadow-soft)}.b-zoom .btn-icon{width:32px;min-height:32px;padding:0;border:0;background:none}.b-zoom .btn-icon:hover{background:color-mix(in srgb,var(--brand-wash) 60%,transparent)}.zoom-val{font-size:var(--text-xs);color:var(--text-muted);width:44px;text-align:center}.inspector{position:absolute;top:var(--space-4);right:var(--space-4);bottom:var(--space-4);width:384px;z-index:7;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--panel-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--shadow-lift);display:flex;flex-direction:column;min-height:0;overflow:hidden;animation:ins-slide var(--duration-base) var(--ease-out)}@keyframes ins-slide{0%{opacity:0;transform:translate(12px)}}.inspector-wide{width:520px}.ins-head{position:relative;padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--border-subtle);background:linear-gradient(180deg,var(--cat-wash, var(--surface-sunken)) 0%,transparent 82%),var(--surface-raised)}.ins-head-row{display:flex;align-items:center;gap:var(--space-3)}.ins-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.03em;color:var(--cat-text, var(--brand));background:var(--cat-wash, var(--brand-wash));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat-color, var(--brand)) 40%,transparent)}.ins-type{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ins-type .mono{color:var(--text-faint)}.ins-close{display:grid;place-items:center;width:30px;height:30px;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.ins-close:hover{background:var(--surface-sunken);color:var(--text-primary)}.ins-title{width:100%;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-lg);font-weight:560;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);padding:4px 8px;margin-left:-8px;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.ins-title:hover{border-color:var(--border-subtle)}.ins-title:focus{outline:none;border-color:var(--brand);background:var(--surface-base)}.ins-desc{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);line-height:1.45}.ins-tabs{display:flex;gap:var(--space-1);padding:0 var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-raised)}.ins-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;font-size:var(--text-sm);padding:var(--space-3) var(--space-3);cursor:pointer;position:relative;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--duration-fast) var(--ease-out)}.ins-tab:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--brand);transform:scaleX(0);transition:transform var(--duration-base) var(--ease-out)}.ins-tab:hover{color:var(--text-primary)}.ins-tab.active{color:var(--brand)}.ins-tab.active:after{transform:scaleX(1)}.ins-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.ins-placeholder{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5;padding:var(--space-4) 0}.setup-panel,.ins-region,.connector-picker,.connect-form{display:flex;flex-direction:column;gap:var(--space-4)}.conn-notice{display:flex;align-items:center;gap:var(--space-3)}.conn-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:650;padding:3px 10px;border-radius:var(--radius-pill);align-self:flex-start}.conn-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.conn-ok{color:var(--success-text);background:color-mix(in srgb,var(--success-text) 14%,transparent)}.conn-warn{color:var(--accent-text);background:color-mix(in srgb,var(--accent-text) 14%,transparent)}.connect-form{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-sunken) 45%,transparent);padding:var(--space-4)}.connect-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.connector-search{width:100%;max-width:420px;margin:var(--space-4) 0;padding:8px 12px;font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-base);color:var(--text-primary)}.conn-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0 var(--space-3)}.conn-toolbar .connector-search{margin:0;flex:1 1 260px}.conn-tabs{display:inline-flex;gap:2px;padding:3px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 70%,transparent);border:1px solid var(--border-subtle)}.conn-tab{display:inline-flex;align-items:center;gap:var(--space-2);padding:5px 12px;font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--text-muted);background:transparent;border:0;border-radius:calc(var(--radius-md) - 3px);cursor:pointer;transition:color .15s ease,background .15s ease}.conn-tab:hover{color:var(--text-primary)}.conn-tab.active{color:var(--text-primary);background:var(--surface-base);box-shadow:var(--shadow-soft)}.conn-tab-count{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.conn-classes{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-2);margin-bottom:var(--space-3)}.conn-class{display:flex;flex-direction:column;gap:2px;text-align:left;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-base);cursor:pointer;transition:border-color .15s ease,background .15s ease}.conn-class:hover{border-color:var(--brand)}.conn-class.active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent);box-shadow:var(--shadow-soft)}.conn-class-label{font-weight:650;font-size:var(--text-sm);color:var(--text-primary)}.conn-class-hint{font-size:var(--text-xs);color:var(--text-muted)}.op-params{display:flex;flex-direction:column;gap:var(--space-3)}.op-extra{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-1)}.op-extra-label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.kv-remove{min-width:2rem;padding-inline:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:color-mix(in srgb,#000 45%,transparent);animation:modal-fade .15s ease}.modal{width:100%;max-width:520px;max-height:88vh;overflow-y:auto;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift, var(--shadow-soft));animation:modal-rise .15s ease}.modal:focus{outline:none}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.modal-title{font-size:var(--text-lg);font-weight:650;color:var(--text-primary)}.modal-close{border:0;background:transparent;cursor:pointer;font-size:1.4rem;line-height:1;color:var(--text-muted);padding:0 4px}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--space-5)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal{animation:none}}.conn-picker-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.connect-test{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.ins-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);background:color-mix(in srgb,var(--surface-raised) 88%,transparent)}.ins-remove{color:var(--danger-text)}.ins-save-error{padding:0 var(--space-5) var(--space-4);color:var(--danger-text);font-size:var(--text-sm)}.disclosure{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.disclosure>summary{display:flex;align-items:center;gap:var(--space-2);list-style:none;cursor:pointer;font-weight:650;font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-1) 0}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"";width:7px;height:7px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(-45deg);transition:transform var(--duration-fast) var(--ease-out)}.disclosure[open]>summary:before{transform:rotate(45deg)}.disclosure-count{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);background:var(--surface-sunken);border-radius:var(--radius-pill);padding:1px 8px}.disclosure-body{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-4);animation:ins-fade var(--duration-base) var(--ease-out)}@keyframes ins-fade{0%{opacity:0;transform:translateY(-4px)}}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-sunken);box-shadow:none;transform:none}.switch{display:inline-flex;cursor:pointer}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:40px;height:22px;border-radius:var(--radius-pill);background:var(--border-strong);position:relative;transition:background var(--duration-fast) var(--ease-out)}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-soft);transition:transform var(--duration-fast) var(--ease-out)}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}.inspector.cat-trigger{--cat-color: var(--cat-trigger-dot);--cat-wash: var(--cat-trigger-wash);--cat-text: var(--cat-trigger-text)}.inspector.cat-logic{--cat-color: var(--cat-logic-dot);--cat-wash: var(--cat-logic-wash);--cat-text: var(--cat-logic-text)}.inspector.cat-transform{--cat-color: var(--cat-transform-dot);--cat-wash: var(--cat-transform-wash);--cat-text: var(--cat-transform-text)}.inspector.cat-integration{--cat-color: var(--cat-integration-dot);--cat-wash: var(--cat-integration-wash);--cat-text: var(--cat-integration-text)}.method-pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-muted);font:inherit;font-weight:650;font-size:var(--text-sm);padding:6px 14px;min-height:34px;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.pill:hover{border-color:var(--border-strong);color:var(--text-primary)}.pill.active{background:var(--brand);border-color:transparent;color:var(--on-brand)}.pill-overflow{min-height:34px;border-radius:var(--radius-pill);padding:0 12px;border:1px solid var(--border-subtle);background:var(--surface-base);color:var(--text-muted);font:inherit;font-size:var(--text-sm)}.kv-editor{display:flex;flex-direction:column;gap:var(--space-2)}.kv-row{display:grid;grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:var(--space-2)}.kv-key,.kv-val{font:inherit;min-width:0;padding:7px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-base);color:var(--text-primary)}.kv-key{font-family:var(--font-mono);font-size:var(--text-sm)}.kv-toggle .switch-track{width:34px;height:20px}.kv-toggle .switch-track:after{width:16px;height:16px}.kv-toggle input:checked+.switch-track:after{transform:translate(14px)}.kv-remove{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.kv-remove:hover{background:var(--surface-sunken);color:var(--danger-text)}.kv-empty,.io-empty{font-size:var(--text-sm);color:var(--text-muted)}.kv-add{align-self:flex-start}.body-editor{display:flex;flex-direction:column;gap:var(--space-3)}.seg{display:inline-flex;padding:2px;gap:2px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken);align-self:flex-start}.seg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;font-size:var(--text-sm);padding:5px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.seg-btn:hover{color:var(--text-primary)}.seg-btn.active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-soft)}.body-content{width:100%}.data-builder,.build-form,.row-editor{display:flex;flex-direction:column;gap:var(--space-3)}.row-editor{gap:var(--space-2)}.data-builder .kv-row{display:flex;grid-template-columns:none;align-items:center;gap:var(--space-2)}.data-builder .kv-key,.data-builder .kv-val{flex:1 1 0}.kv-op{font:inherit;font-size:var(--text-sm);padding:7px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-base);color:var(--text-primary)}.table-field{display:flex;align-items:center;gap:var(--space-2)}.table-field select,.table-field input{flex:1 1 0;min-width:0}.table-list{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-3);max-height:46vh;overflow-y:auto}.table-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;font:inherit;font-family:var(--font-mono);font-size:var(--text-sm);padding:9px 12px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.table-item:hover{background:var(--surface-sunken)}.table-item.is-on{border-color:var(--border-subtle);background:var(--surface-sunken)}.validate-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.switch-builder{display:flex;flex-direction:column;gap:var(--space-3)}.switch-branch{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-positive, #34d399);border-radius:var(--radius-md);background:var(--surface-sunken)}.switch-branch-alias{flex:0 0 84px;min-width:0;font-size:var(--text-sm)}.switch-between{display:flex;align-items:center;gap:var(--space-1);flex:2 1 0;min-width:0}.switch-between .switch-val{flex:1 1 0}.switch-between-sep{flex:0 0 auto;font-size:var(--text-xs);color:var(--text-muted)}.switch-novalue{flex:2 1 0;font-size:var(--text-sm);font-style:italic;color:var(--text-muted)}.switch-default{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-danger, #f87171);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);color:var(--text-muted)}.switch-default-tag{font-weight:700;font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--accent-danger, #f87171)}.operate-page{display:flex;flex-direction:column;gap:var(--space-5);max-width:1024px;margin:0 auto;width:100%}.operate-counts{display:flex;gap:var(--space-3);flex-wrap:wrap}.op-count{flex:1 1 120px;display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken)}.op-count-value{display:flex;align-items:center;gap:var(--space-2);font-size:1.4rem;font-weight:700}.op-count-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.op-count.op-ok{border-left:3px solid var(--accent-positive, #34d399)}.op-count.op-down{border-left:3px solid var(--accent-danger, #f87171)}.operate-filters{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken);margin-bottom:var(--space-3)}.op-section-title{font-size:var(--text-xs);font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--space-2)}.runs-table-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);overflow-x:auto}.runs-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.runs-table th{font-size:var(--text-xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:color-mix(in srgb,var(--surface-sunken) 45%,transparent);text-align:left;padding:var(--space-3) var(--space-4)}.runs-table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);color:var(--text-muted);vertical-align:middle}.runs-table tbody tr:hover{background:color-mix(in srgb,var(--brand-wash) 45%,transparent)}.runs-cell-run{min-width:0}.runs-cell-run a{display:block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runs-sub{display:block;font-size:var(--text-xs);color:var(--text-faint);margin-top:2px}.ver-chip{display:inline-block;margin-left:8px;padding:0 6px;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-xs)}.versions-list{display:flex;flex-direction:column;margin-bottom:var(--space-3)}.versions-row{display:grid;grid-template-columns:90px 110px 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.versions-row:last-child{border-bottom:none}.versions-when,.versions-steps{color:var(--text-faint);font-size:var(--text-xs)}.metis-node.is-orphaned{opacity:.45;filter:grayscale(.8)}.metis-node.is-orphaned .fnode-inner{border-style:dashed}.fnode-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:var(--radius-pill);background:var(--brand-wash);color:var(--brand);font-size:var(--text-xs);font-weight:650}.replay-banner{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);font-size:var(--text-sm)}.replay-banner .mono{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-actions{display:flex;gap:var(--space-2)}.exec-waiting{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--warning-text) 35%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--warning-text) 7%,transparent);margin-bottom:var(--space-4)}.exec-waiting-reason{font-size:var(--text-sm);color:var(--text-primary)}.signal-form{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.signal-form input{min-width:140px}.exec-pending,.exec-family{margin-bottom:var(--space-4)}.exec-pending-row,.exec-family-row{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-1) 0;display:flex;align-items:center;gap:var(--space-2)}.operate-toolbar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.operate-toolbar .operate-filters{margin-bottom:0}.view-chip{display:inline-flex;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.view-chip-apply{border:none;background:transparent;padding:3px 8px;font-size:var(--text-xs);color:var(--text-primary);cursor:pointer}.view-chip-x{border:none;background:transparent;padding:3px 6px;color:var(--text-faint);cursor:pointer}.view-chip-x:hover{color:var(--danger-text)}.op-backlog{font-size:var(--text-xs);color:var(--warning-text)}.upcoming-list{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);overflow:hidden}.upcoming-item{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-subtle);font-size:var(--text-sm)}.upcoming-item:first-child{border-top:none}.upcoming-when{font-weight:650;color:var(--brand)}.upcoming-what{display:flex;flex-direction:column;gap:1px;min-width:0}.upcoming-at{color:var(--text-faint);font-size:var(--text-xs)}.runs-runid{display:inline-flex;align-items:center;gap:4px}.copy-btn{display:inline-flex;align-items:center;padding:1px 3px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-faint);cursor:pointer}.copy-btn:hover{color:var(--text-primary);background:var(--surface-sunken)}.runs-skeleton{height:56px;border-radius:0}.op-actions{display:flex;gap:var(--space-2);white-space:nowrap}.op-actions .btn{white-space:nowrap}.guide-panel{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);line-height:1.6;color:var(--text-primary)}.guide-panel h4{margin-top:var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.guide-panel h4:first-child{margin-top:0}.guide-panel ul{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:var(--space-1)}.guide-panel code{font-size:.92em;padding:1px 5px;border-radius:var(--radius-sm);background:var(--surface-sunken);border:1px solid var(--border-subtle)}.logic-builder{display:flex;flex-direction:column;gap:var(--space-3)}.pred-group{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken)}.pred-group .pred-group{background:color-mix(in srgb,var(--surface-raised) 60%,transparent)}.pred-group-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.pred-group-actions{display:flex;align-items:center;gap:var(--space-2)}.pred-children{display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-3);border-left:2px solid var(--border-subtle)}.pred-leaf{display:flex;align-items:center;gap:var(--space-2)}.pred-leaf .logic-field{flex:2 1 0;min-width:0;font-size:var(--text-sm)}.pred-leaf .switch-val{flex:1 1 0;min-width:0}.switch-branch-head{display:flex;align-items:center;gap:var(--space-2)}.switch-branch-name{flex:1 1 0;min-width:0;font-weight:600}.switch-conds{display:flex;flex-direction:column;gap:var(--space-2)}.switch-cond{display:flex;align-items:center;gap:var(--space-2)}.switch-when{flex:0 0 auto;width:34px;font-size:var(--text-xs);color:var(--text-muted);text-align:right}.switch-prop{flex:2 1 0;min-width:0;font-family:var(--font-mono);font-size:var(--text-sm)}.switch-val{flex:1 1 0;min-width:0}.switch-add-branch{align-self:flex-start}.validate-ok,.validate-err{font-size:var(--text-sm);min-width:0;word-break:break-word}.validate-ok{color:var(--accent-positive, #34d399)}.validate-err{color:var(--accent-danger, #f87171)}.io-region{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-sunken) 45%,transparent);overflow:hidden}.io-region>summary{display:flex;align-items:center;gap:var(--space-2);list-style:none;cursor:pointer;padding:var(--space-3) var(--space-4);font-weight:650;font-size:var(--text-sm);color:var(--text-primary)}.io-region>summary::-webkit-details-marker{display:none}.io-region>summary:before{content:"";width:6px;height:6px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:rotate(-45deg);transition:transform var(--duration-fast) var(--ease-out)}.io-region[open]>summary:before{transform:rotate(45deg)}.io-region-body{padding:0 var(--space-4) var(--space-4);animation:ins-fade var(--duration-base) var(--ease-out)}.io-list{display:flex;flex-direction:column;gap:var(--space-4)}.io-source-name{font-size:var(--text-xs);font-weight:650;color:var(--text-muted);margin-bottom:var(--space-2)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ref-chip{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-base);padding:4px 6px 4px 12px;cursor:pointer;font:inherit;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.ref-chip:hover{border-color:var(--brand)}.ref-name{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary)}.ref-type{font-size:var(--text-xs);color:var(--text-faint)}.ref-copy{font-size:var(--text-xs);font-weight:650;color:var(--brand);background:var(--brand-wash);border-radius:var(--radius-pill);padding:2px 8px}.var-palette .ref-chip{border-left-width:3px}.var-palette .ref-chip.cat-trigger{border-left-color:var(--cat-trigger-dot)}.var-palette .ref-chip.cat-logic{border-left-color:var(--cat-logic-dot)}.var-palette .ref-chip.cat-transform{border-left-color:var(--cat-transform-dot)}.var-palette .ref-chip.cat-integration{border-left-color:var(--cat-integration-dot)}.sample-req{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.io-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5;margin:0}.sample-preview{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.sample-preview li{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-base);padding:4px 12px}.sample-actions{display:flex;gap:var(--space-2)}.test-tab,.policy-tab{display:flex;flex-direction:column;gap:var(--space-4)}.field-label{display:block;font-size:var(--text-sm);font-weight:650;margin-bottom:var(--space-1)}.test-tab textarea{width:100%}.test-run{align-self:flex-start}.test-result{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-sunken) 45%,transparent);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.test-status,.hist-status{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:650;font-size:var(--text-sm);text-transform:capitalize}.run-dot{width:10px;height:10px;border-radius:50%;background:var(--status-cancelled);flex:none}.run-dot.status-running{background:var(--status-running);animation:run-pulse 1.6s var(--ease-out) infinite}.run-dot.status-completed{background:var(--status-completed)}.run-dot.status-failed{background:var(--status-failed)}.run-dot.status-cancelled{background:var(--status-cancelled)}@keyframes run-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--brand) 18%,transparent)}}.test-result-label{font-size:var(--text-sm);color:var(--text-muted)}.test-output,.hist-output,.test-preview{font-size:var(--text-sm);line-height:1.5;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:var(--space-3);overflow-x:auto;white-space:pre-wrap;word-break:break-word}.test-preview{margin-bottom:var(--space-4);max-height:180px;overflow-y:auto}.test-output-error,.hist-output-error{color:var(--danger-text)}.hist-list{display:flex;flex-direction:column;gap:var(--space-2)}.hist-row{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-raised)}.hist-head{display:flex;align-items:center;gap:var(--space-3);width:100%;border:0;background:transparent;font:inherit;cursor:pointer;padding:var(--space-3) var(--space-4);color:var(--text-primary)}.hist-head:hover{background:color-mix(in srgb,var(--surface-sunken) 40%,transparent)}.hist-time{margin-left:auto;font-size:var(--text-xs);color:var(--text-faint)}.hist-body{padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);animation:ins-fade var(--duration-base) var(--ease-out)}.hist-event{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.hist-log{display:flex;flex-direction:column;gap:var(--space-1)}.num-suffix{display:flex;align-items:center;gap:var(--space-2)}.num-suffix input{width:110px}.suffix{font-size:var(--text-sm);color:var(--text-muted)}@media (max-width: 720px){.inspector,.inspector-wide{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;z-index:20}}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.workflow-list,.wf-list{list-style:none;margin:var(--space-5) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.wf-card{display:flex;align-items:center;gap:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-base) var(--ease-out)}.wf-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.wf-main{flex:1;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);min-width:0;text-decoration:none;color:var(--text-primary)}.wf-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.wf-name{font-family:var(--font-display);font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wf-meta{color:var(--text-muted);font-size:var(--text-sm)}.wf-go{color:var(--text-faint);flex:none}.wf-side{display:flex;align-items:center;gap:var(--space-2);padding-right:var(--space-5)}.wf-chain{display:flex;align-items:center;gap:4px;flex:none}.wf-chain-empty{width:30px;height:30px;border-radius:var(--radius-md);border:1px dashed var(--border-strong)}.chain-step{display:inline-flex;align-items:center;gap:4px}.chain-chip{width:30px;height:30px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;flex:none;border:1px solid var(--border-subtle);color:var(--cat-integration-dot);background:var(--cat-integration-wash)}.chain-chip.cat-trigger{color:var(--cat-trigger-dot);background:var(--cat-trigger-wash)}.chain-chip.cat-logic{color:var(--cat-logic-dot);background:var(--cat-logic-wash)}.chain-chip.cat-transform{color:var(--cat-transform-dot);background:var(--cat-transform-wash)}.chain-arrow{color:var(--text-faint);flex:none}.chain-more{font-size:var(--text-xs);color:var(--text-faint);font-weight:650;margin-left:2px}.status{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted)}.status-published{background:var(--brand-wash);color:var(--brand)}.status-draft{background:color-mix(in srgb,var(--surface-sunken) 60%,transparent);color:var(--text-faint);border:1px dashed var(--border-strong)}.status-completed{background:color-mix(in srgb,var(--success-text) 14%,transparent);color:var(--success-text)}.status-failed{background:color-mix(in srgb,var(--danger-text) 14%,transparent);color:var(--danger-text)}.status-running{background:var(--brand-wash);color:var(--brand)}.status-waiting{background:color-mix(in srgb,var(--warning-text) 14%,transparent);color:var(--warning-text)}.status-cancelled,.status-terminated{background:var(--surface-sunken);color:var(--text-faint)}.status-terminated{border:1px solid var(--border-strong)}.btn-sm{padding:4px 10px;font-size:var(--text-sm)}.builder-name-input{font-family:var(--font-display);font-size:var(--text-lg);font-weight:560;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px}.builder-name-input:hover{border-color:var(--border-subtle)}.builder-name-input:focus{border-color:var(--brand);outline:none}.field .help{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.field-error{color:var(--danger-text);font-size:var(--text-xs);margin-top:var(--space-1)}.test-size{font-size:var(--text-xs);color:var(--text-faint);margin-top:2px}.field-warn{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--warning, #d9821b) 14%,transparent);color:var(--text-primary);font-size:var(--text-sm);line-height:1.45}@media (max-width: 900px){.inspector,.inspector-wide{top:auto;left:var(--space-3);right:var(--space-3);bottom:var(--space-3);width:auto;max-height:66%}.library{left:var(--space-3);right:var(--space-3);width:auto;max-height:66%}}.library{position:absolute;top:var(--space-4);left:var(--space-4);bottom:var(--space-4);width:330px;z-index:8;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--panel-glass);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--shadow-lift);animation:lib-in var(--duration-base) var(--ease-out)}@keyframes lib-in{0%{opacity:0;transform:translate(-12px)}}.lib-head{display:flex;align-items:center;justify-content:space-between}.lib-head h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.lib-body{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-2)}.lib-group .group-label{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0 var(--space-1)}.lib-cat>summary.group-label{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;padding:var(--space-1) 0}.lib-cat>summary.group-label::-webkit-details-marker{display:none}.lib-cat>summary.group-label:after{content:"";width:6px;height:6px;border-right:1.5px solid var(--text-faint);border-bottom:1.5px solid var(--text-faint);transform:rotate(-45deg);transition:transform var(--duration-fast) var(--ease-out)}.lib-cat[open]>summary.group-label:after{transform:rotate(45deg)}.lib-count{margin-left:auto;margin-right:var(--space-2);font-size:var(--text-xs);color:var(--text-faint);background:var(--surface-sunken);border-radius:999px;padding:1px 8px}.lib-empty{color:var(--text-faint);padding:var(--space-4) var(--space-1)}.lib-suggested>.group-label{color:var(--brand)}.lib-suggested{padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-1)}.search{font:inherit;width:100%;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-raised);color:var(--text-primary)}.search::placeholder{color:var(--text-faint)}.cat-dot{width:8px;height:8px;border-radius:50%;flex:none}.dot-trigger{background:var(--cat-trigger-dot)}.dot-logic{background:var(--cat-logic-dot)}.dot-transform{background:var(--cat-transform-dot)}.dot-integration{background:var(--cat-integration-dot)}.lib-item{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;font:inherit;padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.lib-item:hover{background:color-mix(in srgb,var(--brand-wash) 55%,transparent);border-color:var(--border-subtle)}.lib-info{min-width:0;display:flex;flex-direction:column}.lib-name{font-weight:600;font-size:var(--text-base)}.lib-desc{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.locked-group{border-top:1px dashed var(--border-strong);padding-top:var(--space-4)}.locked-card{border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3);margin:var(--space-2) 0;background:color-mix(in srgb,var(--surface-sunken) 60%,transparent)}.locked-card .name{font-weight:650;display:flex;gap:var(--space-2);align-items:center}.locked-card .padlock{font-size:var(--text-xs);color:var(--text-faint)}.locked-card .pitch{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.locked-card .upgrade{font-size:var(--text-xs);font-weight:650;color:var(--accent-text)}.runs{padding:var(--space-6);overflow-y:auto}.runs h1{font-family:var(--font-display);font-weight:560;font-size:var(--text-xl);margin-bottom:var(--space-2)}.run-row{font:inherit;width:100%;display:grid;grid-template-columns:14px 1fr auto auto;gap:var(--space-4);align-items:center;text-align:left;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-top:var(--space-2);cursor:pointer;color:var(--text-primary);transition:box-shadow var(--duration-fast) var(--ease-out)}.run-row:hover{box-shadow:var(--shadow-soft)}.run-row.selected{border-color:var(--brand)}.run-row .rid{font-family:var(--font-mono);font-size:var(--text-sm)}.run-row .when{color:var(--text-muted);font-size:var(--text-sm)}.run-status{font-size:var(--text-xs);font-weight:700;letter-spacing:.04em}.run-status.completed{color:var(--success-text)}.run-status.failed{color:var(--danger-text)}.run-status.running{color:var(--brand)}.run-status.cancelled{color:var(--status-cancelled)}.timeline{margin-top:var(--space-5);border-left:2px solid var(--border-subtle);padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.timeline .step{position:relative;font-size:var(--text-sm)}.timeline .step:before{content:"";position:absolute;left:calc(-1 * var(--space-4) - 7px);top:4px;width:8px;height:8px;border-radius:50%;background:var(--status-completed)}.timeline .step.failed:before{background:var(--status-failed)}.timeline .step.live:before{background:var(--status-running)}.timeline .step .mono{color:var(--text-muted)}.temporal-row{margin-top:var(--space-5)}.temporal-link{color:var(--brand);font-weight:650;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--brand) 40%,transparent)}.btn-run{background:var(--accent);border-color:transparent;color:var(--on-accent)}.btn-run:hover{background:var(--accent-hover)}.btn-run:disabled{opacity:.7;cursor:default}.run-error{color:var(--danger-text);font-size:var(--text-sm)}.conn-page{max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-6)}.page-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 100% 0%,var(--brand-wash),transparent 60%),var(--surface-raised);box-shadow:var(--shadow-soft)}.page-hero-sub{margin-top:var(--space-2);max-width:62ch;color:var(--text-muted);font-size:var(--text-base);line-height:1.5}.conn-connect-btn{flex:none;white-space:nowrap}.conn-toolbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:var(--space-5) 0 var(--space-4)}.conn-page .connector-search{margin:0;flex:1 1 240px}.conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:var(--space-4)}.conn-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.conn-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--brand) 40%,var(--border-subtle))}.conn-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.conn-card-body{min-height:42px}.conn-card-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.conn-card-sub{margin-top:2px;font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-card-actions{display:flex;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.conn-card-actions .btn{flex:1}.conn-card-add{align-items:center;justify-content:center;gap:var(--space-2);min-height:148px;border-style:dashed;border-color:var(--border-strong);background:color-mix(in srgb,var(--surface-sunken) 40%,transparent);box-shadow:none;color:var(--text-muted);font-weight:600;cursor:pointer}.conn-card-add:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-soft)}.conn-card-add-plus{font-size:1.5rem;line-height:1}.conn-mark{--mark: var(--brand);flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--text-primary);background:linear-gradient(150deg,color-mix(in srgb,var(--mark) 30%,var(--surface-raised)),color-mix(in srgb,var(--mark) 12%,var(--surface-raised)));border:1px solid color-mix(in srgb,var(--mark) 40%,transparent)}.conn-mark-lg{width:46px;height:46px;border-radius:var(--radius-md);font-size:var(--text-lg)}.conn-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;padding:var(--space-6) var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-sunken) 35%,transparent)}.conn-empty-mark{font-size:2rem;width:64px;height:64px;display:grid;place-items:center;border-radius:var(--radius-lg);background:var(--brand-wash)}.conn-empty h2{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.conn-empty p{color:var(--text-muted);max-width:40ch}.conn-form,.conn-form-body{display:flex;flex-direction:column;gap:var(--space-4)}.conn-form-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.conn-form-actions{display:flex;gap:var(--space-2);margin-left:auto}.modal-test{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.conn-badge-msg{font-weight:500;opacity:.85}.conn-testing{color:var(--text-muted);background:var(--surface-sunken)}.field-help{margin-top:4px;font-size:var(--text-xs);color:var(--text-faint);line-height:1.4}.req{color:var(--danger, #e5484d)}.field-opt{color:var(--text-faint);font-weight:500}.btn-danger-ghost{color:var(--text-muted)}.btn-danger-ghost:hover{color:var(--danger-text);border-color:color-mix(in srgb,var(--danger-text) 45%,var(--border-subtle))}.svc-pick{display:flex;flex-direction:column;gap:var(--space-3)}.svc-search{width:100%;padding:9px 12px;font:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-base);color:var(--text-primary)}.svc-search:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-2);max-height:320px;overflow-y:auto;padding:2px}.svc-tile{display:flex;align-items:center;gap:var(--space-3);padding:8px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.svc-tile:hover{border-color:var(--brand);background:var(--brand-wash)}.svc-name{font-size:var(--text-sm);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-chosen{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-sunken) 40%,transparent)}.conn-chosen-name{font-family:var(--font-display);font-weight:600;color:var(--text-primary)}.conn-chosen-url{font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono)}.conn-change{margin-left:auto}@media (max-width: 640px){.page-hero{flex-direction:column}.conn-connect-btn{width:100%}.conn-grid{grid-template-columns:1fr}}.conn-view{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken)}.conn-view-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:550;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.conn-view-btn:hover{color:var(--text-primary)}.conn-view-btn.active{background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-soft)}.conn-list{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-soft);overflow:hidden}.conn-lrow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.4fr) 130px auto;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle)}.conn-lrow:first-child{border-top:none}.conn-lhead{font-size:var(--text-xs);font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:color-mix(in srgb,var(--surface-sunken) 45%,transparent)}.conn-lrow:not(.conn-lhead):hover{background:color-mix(in srgb,var(--brand-wash) 45%,transparent)}.conn-lrow-name{display:flex;align-items:center;gap:var(--space-3);min-width:0;font-family:var(--font-display);font-weight:600;color:var(--text-primary)}.conn-lrow-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-lrow-sub{font-size:var(--text-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-lrow-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.conn-lrow-actions-head{text-align:right}@media (max-width: 720px){.conn-lrow{grid-template-columns:1fr auto;grid-template-areas:"name status" "sub actions";row-gap:var(--space-2)}.conn-lrow-name{grid-area:name}.conn-lrow-sub{grid-area:sub}.conn-lrow>[role=cell]:nth-child(3){grid-area:status;justify-self:end}.conn-lrow-actions{grid-area:actions}.conn-lhead{display:none}}.toasts{position:fixed;bottom:var(--space-5);left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:var(--space-2);align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-2);max-width:min(480px,90vw);padding:10px 12px 10px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-primary);font-size:var(--text-sm);font-weight:550;box-shadow:var(--shadow-lift);pointer-events:auto;animation:toast-rise var(--duration-base) var(--ease-out)}.toast-success .toast-icon{color:var(--success-text)}.toast-error .toast-icon{color:var(--danger-text)}.toast-info .toast-icon{color:var(--brand)}.toast-icon{flex:none}.toast-message{min-width:0}.toast-close{flex:none;display:grid;place-items:center;border:none;background:transparent;color:var(--text-muted);padding:4px;margin-left:var(--space-1);border-radius:var(--radius-sm);cursor:pointer}.toast-close:hover{color:var(--text-primary);background:var(--surface-sunken)}@keyframes toast-rise{0%{opacity:0;transform:translateY(8px)}}.confirm-body{color:var(--text-muted);line-height:1.5;max-width:44ch}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}.btn-danger{background:var(--danger-text);border-color:transparent;color:var(--on-brand)}.btn-danger:hover{background:color-mix(in srgb,var(--danger-text) 85%,black)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(100deg,var(--surface-sunken) 40%,color-mix(in srgb,var(--surface-raised) 70%,transparent) 50%,var(--surface-sunken) 60%);background-size:200% 100%;animation:skeleton-sheen 1.4s ease-in-out infinite}@keyframes skeleton-sheen{to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:var(--surface-sunken)}}.step-attempts{display:inline-block;margin-left:var(--space-2);font-size:var(--text-xs);font-weight:650;padding:1px 8px;border-radius:var(--radius-pill);color:var(--accent-text);background:color-mix(in srgb,var(--accent-text) 14%,transparent)}.step-error{margin-top:var(--space-1);color:var(--danger-text);font-size:var(--text-sm)}.step-output{margin-top:var(--space-1);max-height:240px;overflow:auto;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-xs);white-space:pre-wrap;word-break:break-word}.exec-page .exec-id{margin-top:var(--space-1);color:var(--text-muted)}.exec-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:var(--space-3) 0 var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.ov-page{max-width:1024px;margin:0 auto;width:100%}.ov-greet{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:var(--space-2)}.ov-headline{max-width:620px;text-wrap:pretty}.ov-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin:var(--space-5) 0 var(--space-3)}.ov-stat{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-4);display:flex;flex-direction:column;gap:2px;min-width:0}.ov-stat-val{font-size:var(--text-xl);font-weight:650;letter-spacing:-.01em}.ov-good .ov-stat-val{color:var(--success-text)}.ov-warn .ov-stat-val{color:var(--accent-text)}.ov-stat-label{font-size:var(--text-sm);font-weight:600}.ov-stat-sub{font-size:var(--text-xs);color:var(--text-faint)}.ov-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.ov-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.ov-card-title{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0}.ov-muted{color:var(--text-muted);font-size:var(--text-sm)}.ov-bars{display:flex;align-items:flex-end;gap:8px;height:130px;padding-top:var(--space-2)}.ov-bar-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;min-width:0}.ov-bar{width:100%;max-width:26px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--brand-cyan) 0%,var(--brand-blue) 100%);opacity:.85;min-height:6px;animation:bar-grow var(--duration-slow) var(--ease-out) backwards}.ov-bar:hover{opacity:1}@keyframes bar-grow{0%{transform:scaleY(0);transform-origin:bottom}}.ov-bar-day{font-size:10px;color:var(--text-faint);height:12px}.ov-attn.ov-clear .ov-card-title{color:var(--success-text)}.ov-attn:not(.ov-clear) .ov-card-title{color:var(--accent-text)}.ov-attn-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.ov-attn-item{display:flex;align-items:center;gap:var(--space-3);justify-content:space-between}.ov-attn-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ov-attn-info span{font-size:var(--text-sm);color:var(--text-muted)}.ov-top-list,.ov-recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.ov-top-list{gap:4px}.ov-top-row{width:100%;display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;align-items:center;gap:var(--space-3);padding:8px 10px;margin:0 -10px;border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);transition:background var(--duration-fast) var(--ease-out)}.ov-top-row:hover{background:color-mix(in srgb,var(--brand-wash) 55%,transparent)}.ov-top-name{font-weight:550;font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-top-track{height:6px;border-radius:3px;background:var(--surface-sunken);overflow:hidden}.ov-top-fill{display:block;height:100%;border-radius:3px;background:var(--gradient-brand)}.ov-top-count{color:var(--text-muted)}.ov-recent-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-base)}.ov-recent-row:last-child{border-bottom:0}.ov-run-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--status-cancelled)}.ov-run-dot.ok{background:var(--success-text)}.ov-run-dot.fail{background:var(--danger-text)}.ov-run-dot.run{background:var(--brand)}.ov-recent-name{font-weight:550;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;color:var(--text-primary)}.ov-recent-name:hover{color:var(--brand)}.ov-recent-when{color:var(--text-faint);font-size:var(--text-sm);text-transform:capitalize}.ov-link{font-size:var(--text-sm);font-weight:600;align-self:flex-start;color:var(--brand);text-decoration:none}@media (max-width: 780px){.ov-stats{grid-template-columns:1fr 1fr}.ov-grid{grid-template-columns:1fr}}.home-page{max-width:1024px;margin:0 auto}.home-page .workflow-list{margin-top:var(--space-5)}.home-new-btn{flex:none;white-space:nowrap}.workflow-mark{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--brand);background:var(--brand-wash)}.workflow-skeleton{height:58px;border:none}@media (max-width: 640px){.workflow-row{flex-wrap:wrap}.workflow-row .spacer{flex-basis:100%;display:none}.workflow-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.runs{max-width:1024px;margin:0 auto}.runs .page-hero{margin-bottom:var(--space-5)}@media (max-width: 640px){.run-row{grid-template-columns:14px minmax(0,1fr) auto;grid-template-areas:"dot rid status" "dot when status";row-gap:2px}.run-row .run-dot{grid-area:dot}.run-row .rid{grid-area:rid;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-row .when{grid-area:when}.run-row .run-status{grid-area:status}}.login-card{position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:110px;background:radial-gradient(420px 160px at 20% 0%,var(--brand-wash),transparent 70%),radial-gradient(360px 140px at 90% 10%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%);pointer-events:none}.login-brand{position:relative;display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-2)}.login-wordmark{font-family:var(--font-display);font-size:2rem;font-weight:560;letter-spacing:-.01em}.login-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:560;margin-top:var(--space-2)}.login-tag{color:var(--text-muted);font-size:var(--text-sm)}
