.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-Bth3BMcD.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f4f6;--chrome:#fff;--surface:#fff;--surface-2:#eef0f3;--canvas:#fff;--grid:#e3e6ea;--border:#c9ced6;--border-strong:#8a93a0;--input-bg:#fff;--ink:#14181d;--muted:#515a67;--faint:#6b7482;--primary:#0a6e62;--on-primary:#fff;--primary-soft:#e3f2ef;--focus:#0a6e62;--signal:#0a7f70;--wire:#8a93a0;--forced:#6b3fc4;--forced-soft:#f0eafb;--pass:#0a6e62;--pass-soft:#e3f2ef;--fault:#c2361f;--fault-soft:#fbe9e6;--warn:#8a5a00;--warn-fill:#f2b233;--on-warn:#14181d;--warn-soft:#fff4d6;--info:#1f5faf;--info-soft:#e7effa;--eng-cat-gate:#2b3440;--eng-cat-timer:#8a4b08;--eng-cat-counter:#1f5faf;--eng-cat-bistable:#0a6e62;--eng-cat-compare:#5b3aa8;--eng-cat-instrument:#24407a;--eng-on-cat:#fff;--vivid-edge:transparent;--syn-keyword:#9b2c6f;--syn-operator:#a34a00;--syn-function:#1f5faf;--syn-number:#7a5000;--syn-string:#2f6b1f;--syn-comment:#5e6b57;--syn-tag:#14181d;--shadow:0 1px 2px #14181d0f, 0 4px 16px #14181d0f}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d10;--chrome:#14181d;--surface:#14181d;--surface-2:#1b2027;--canvas:#101317;--grid:#1d2229;--border:#2a3139;--border-strong:#66707d;--input-bg:#0f1216;--ink:#e7eaee;--muted:#9aa4b1;--faint:#7f8995;--primary:#2ec4b0;--on-primary:#06201c;--primary-soft:#12302c;--focus:#2ec4b0;--signal:#2ec4b0;--wire:#5f6875;--forced:#b79cff;--forced-soft:#261f3d;--pass:#2ec4b0;--pass-soft:#12302c;--fault:#ff7a63;--fault-soft:#3a1b16;--warn:#f5b83d;--warn-fill:#f5b83d;--on-warn:#1a1405;--warn-soft:#3a2e12;--info:#7fb2ff;--info-soft:#172640;--eng-cat-gate:#3a4452;--eng-cat-timer:#9a5a12;--eng-cat-counter:#245c9e;--eng-cat-bistable:#0e7a6c;--eng-cat-compare:#6443b5;--eng-cat-instrument:#2d4b8a;--eng-on-cat:#fff;--vivid-edge:#e7eaee8c;--syn-keyword:#f59bc9;--syn-operator:#ffb37a;--syn-function:#7fb2ff;--syn-number:#f5c862;--syn-string:#a6dc7e;--syn-comment:#8c9a86;--syn-tag:#e7eaee;--shadow:0 1px 2px #0006, 0 8px 24px #00000059}[data-theme=midgray]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#363636;--chrome:#3f3f3f;--surface:#565656;--surface-2:#4a4a4a;--canvas:#4d4d4d;--grid:#575757;--border:#2f2f2f;--border-strong:#8a8a8a;--input-bg:#3a3a3a;--ink:#f5f5f5;--muted:#d4d4d4;--faint:#ccc;--primary:#9ce8d2;--on-primary:#0d0d0d;--primary-soft:#9ce8d22e;--focus:#c4c4c4;--signal:#9ce8d2;--wire:#9a9a9a;--forced:#e0c4f7;--forced-soft:#e0c4f726;--pass:#c2ec9c;--pass-soft:#c2ec9c26;--fault:#ffc7c7;--fault-soft:#4a3030;--warn:#ffe08a;--warn-fill:#ffe08a;--on-warn:#0d0d0d;--warn-soft:#4a4430;--info:#a9e2f7;--info-soft:#303d4a;--eng-cat-gate:#ccc;--eng-cat-timer:#ffcda3;--eng-cat-counter:#bcd4ff;--eng-cat-bistable:#9ce8d2;--eng-cat-compare:#e0c4f7;--eng-cat-instrument:#a9e2f7;--eng-on-cat:#0d0d0d;--vivid-edge:#d9d9d9;--syn-keyword:#f5bcd8;--syn-operator:#ffcda3;--syn-function:#a9e2f7;--syn-number:#ffe08a;--syn-string:#c2ec9c;--syn-comment:#c6d3bf;--syn-tag:#f0f0f0;--shadow:0 1px 2px #12121259, 0 8px 24px #1212124d}:root{--font-ui:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:4px;--radius:6px;--radius-lg:10px;--wire-width:1.5px;--wire-width-live:3px;--vivid-and:#0f9d8a;--vivid-nand:#0e7490;--vivid-or:#7c3aed;--vivid-nor:#6d28d9;--vivid-xor:#c2410c;--vivid-not:#e0479e;--vivid-instrument:#1e40af;--vivid-actuator:#374151;--vivid-timer:#b45309;--vivid-counter:#0369a1;--vivid-bistable:#0f766e;--vivid-compare:#6d28d9;--vivid-gate-block:#334155}:root,[data-theme]{--gate-and:var(--vivid-and);--gate-nand:var(--vivid-nand);--gate-or:var(--vivid-or);--gate-nor:var(--vivid-nor);--gate-xor:var(--vivid-xor);--gate-not:var(--vivid-not);--gate-label:#fff;--gate-edge:var(--vivid-edge);--cat-gate:var(--vivid-gate-block);--cat-timer:var(--vivid-timer);--cat-counter:var(--vivid-counter);--cat-bistable:var(--vivid-bistable);--cat-compare:var(--vivid-compare);--cat-instrument:var(--vivid-instrument);--cat-actuator:var(--vivid-actuator);--on-cat:#fff}[data-symbols=engineering],[data-symbols=engineering] [data-theme]{--gate-and:var(--surface);--gate-nand:var(--surface);--gate-or:var(--surface);--gate-nor:var(--surface);--gate-xor:var(--surface);--gate-not:var(--surface);--gate-label:var(--ink);--gate-edge:var(--ink);--cat-gate:var(--eng-cat-gate);--cat-timer:var(--eng-cat-timer);--cat-counter:var(--eng-cat-counter);--cat-bistable:var(--eng-cat-bistable);--cat-compare:var(--eng-cat-compare);--cat-instrument:var(--eng-cat-instrument);--cat-actuator:var(--eng-cat-gate);--on-cat:var(--eng-on-cat)}:root{--text:var(--ink);--accent:var(--primary);--accent-text:var(--on-primary);--on:var(--signal);--on-soft:var(--pass-soft);--bad:var(--fault);--bad-soft:var(--fault-soft);--good-soft:var(--pass-soft);--wire-on:var(--signal);--input-on-bg:var(--primary-soft);--output-bg:var(--eng-cat-gate);--block-bg:var(--surface);--block-head:var(--cat-gate);--mono:var(--font-mono)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font-ui)}code{font-family:var(--mono);font-size:12.5px}code.block{white-space:pre;background:var(--surface-2);border-radius:6px;margin-top:6px;padding:8px;display:block}h2{margin:0;font-size:14px}h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:18px 0 6px;font-size:12px}h4{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:10px 0 4px;font-size:11px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--bad)}.note{color:var(--muted);background:var(--surface-2);border-radius:6px;margin:8px 0;padding:8px 10px;font-size:12.5px}.app{grid-template-columns:var(--script-width,340px) 10px minmax(0, 1fr) minmax(260px, 300px);grid-template-rows:48px 1fr;grid-template-areas:"top top top top""left resize stage right";height:100%;display:grid}.topbar{border-bottom:1px solid var(--border);background:var(--chrome);grid-area:top;justify-content:space-between;align-items:center;padding:0 14px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.manual-trigger{color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;margin-left:-7px;padding:5px 7px;font-family:inherit}.manual-trigger:hover{background:var(--surface-2)}.manual-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.manual-trigger-cue{border:1px solid var(--border-strong);width:17px;height:17px;color:var(--muted);font:700 11px var(--font-ui);border-radius:50%;place-items:center;margin-left:1px;display:grid}.logic-manual{border:1px solid var(--border-strong);background:var(--surface);width:min(760px,100vw - 32px);max-width:none;height:min(620px,100dvh - 32px);max-height:none;color:var(--text);border-radius:16px;padding:0;overflow:hidden;box-shadow:0 24px 90px #0000004d}.logic-manual::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d161c9e}.manual-shell{flex-direction:column;height:100%;min-height:0;display:flex}.manual-header{flex:none;justify-content:space-between;align-items:center;gap:20px;padding:23px 30px 17px;display:flex}.manual-eyebrow{color:var(--accent);font:700 10px var(--mono);letter-spacing:.14em}.manual-header h2{letter-spacing:-.035em;margin-top:5px;font-size:25px}.manual-close{border:1px solid var(--border);background:var(--surface-2);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:8px;font-size:24px;line-height:1}.manual-tabs{border-bottom:1px solid var(--border);flex:none;gap:4px;padding:0 25px;display:flex;overflow-x:auto}.manual-tabs button{color:var(--muted);font:600 12px var(--font-ui);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:12px 11px 11px}.manual-tabs button:hover{color:var(--text)}.manual-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--text)}.manual-tabs button:focus-visible,.manual-close:focus-visible,.manual-footer button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.manual-body{outline-offset:-3px;flex:1;min-height:0;padding:24px 30px 32px;overflow-y:auto}.manual-lead{max-width:620px;margin:0 0 22px;font-size:17px;font-weight:560;line-height:1.55}.manual-card-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.manual-card-grid article{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:16px}.manual-card-grid span{color:var(--accent);font:700 11px var(--mono)}.manual-card-grid h3{color:var(--text);letter-spacing:0;text-transform:none;margin:11px 0 7px;font-size:15px}.manual-card-grid p,.manual-list dd,.manual-steps li{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.manual-note{border-left:3px solid var(--accent);background:var(--surface-2);color:var(--muted);margin:20px 0 0;padding:12px 14px;font-size:12px;line-height:1.5}.manual-list{gap:0;margin:0;display:grid}.manual-list>div{border-bottom:1px solid var(--border);grid-template-columns:150px 1fr;gap:16px;padding:12px 0;display:grid}.manual-list dt{font-weight:700}.manual-steps{gap:13px;margin:0;padding-left:23px;display:grid}.manual-steps li{padding-left:6px}.manual-steps strong{color:var(--text)}.manual-links{gap:12px;margin-top:23px;display:flex}.manual-links a{border:1px solid var(--border-strong);color:var(--text);border-radius:7px;padding:8px 12px;font-weight:600;text-decoration:none}.manual-links a:hover{border-color:var(--accent)}.manual-footer{border-top:1px solid var(--border);background:var(--surface-2);color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 30px;font-size:11px;display:flex}.manual-footer button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);font:600 12px var(--font-ui);cursor:pointer;border-radius:7px;padding:7px 17px}@media (width<=600px){.logic-manual{border-radius:12px;width:calc(100vw - 16px);height:min(670px,100dvh - 16px)}.manual-header{padding:18px 18px 12px}.manual-header h2{font-size:21px}.manual-tabs{padding:0 12px}.manual-body{padding:20px 18px 28px}.manual-card-grid{grid-template-columns:1fr}.manual-list>div{grid-template-columns:1fr;gap:3px}.manual-footer{padding:10px 18px}}.brand-symbol{flex:none;width:28px;height:28px;display:inline-block}.brand-symbol img{width:100%;height:100%;display:block}.brand-symbol-dark,[data-theme=dark] .brand-symbol-light,[data-theme=midgray] .brand-symbol-light{display:none!important}[data-theme=dark] .brand-symbol-dark,[data-theme=midgray] .brand-symbol-dark{display:block!important}.topbar-actions{align-items:center;gap:6px;display:flex}.theme-control{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.theme-control select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:4px 6px}.view-switch{gap:4px;margin-left:16px;margin-right:auto;display:flex}.panel{background:var(--surface);min-height:0;overflow:auto}.panel.left{border-right:1px solid var(--border);flex-direction:column;grid-area:left;gap:8px;padding:12px;display:flex}.script-resize{z-index:3;background:var(--chrome);border-right:1px solid var(--border);cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;grid-area:resize;place-items:center;display:grid;position:relative}.script-resize:before{content:"";background:var(--border-strong);border-radius:2px;width:2px;height:48px;position:absolute}.script-resize span{border:1px solid var(--border-strong);background:var(--surface);width:28px;height:38px;color:var(--text);font:700 19px var(--font-ui);opacity:0;pointer-events:none;border-radius:7px;place-items:center;transition:opacity .12s;display:grid;position:relative}.script-resize:hover,.script-resize:focus-visible{background:var(--surface-2);outline:none}.script-resize:hover span,.script-resize:focus-visible span{opacity:1}.script-resize:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.panel.right{border-left:1px solid var(--border);flex-direction:column;grid-area:right;display:flex}.stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex}.canvas-wrap{background:var(--canvas);flex:1;min-height:0;position:relative}.canvas-hint{pointer-events:none;white-space:nowrap;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.split-layout{flex:1;grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.split-diagram{border-bottom:1px solid var(--border);min-height:0;display:flex}.split-cause{min-width:0;min-height:0;display:flex}.split-cause .ce-panel{flex:1;min-width:0;height:100%}.split-resize{background:var(--surface-2);border-block:1px solid var(--border);align-items:stretch;gap:4px;padding:3px 8px;display:flex}.split-resize .btn{padding:3px 7px;font-size:11px}.split-grip{border:1px solid var(--border);background:var(--surface);min-width:125px;color:var(--muted);cursor:row-resize;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:8px;font-size:11px;display:flex}.split-grip:hover,.split-grip:focus-visible{border-color:var(--accent);color:var(--text);outline:none}.split-grip span{color:var(--accent)}.split-grip strong{color:var(--text);white-space:nowrap}.scd-sheet,.trace-sheet{flex-direction:column;flex:1;min-height:0;display:flex}.scd-titleblock,.trace-head{background:var(--surface);border-bottom:2px solid var(--text);justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.scd-titleblock strong,.trace-head strong{letter-spacing:.025em;font-size:15px;display:block}.scd-titleblock span,.trace-head span{color:var(--muted);font-size:11px;display:block}.scd-title-tags{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.scd-title-tags span{border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:3px 7px}.scd-process{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:10px;padding:8px 12px;display:flex;overflow-x:auto}.scd-process-label{color:var(--muted);font:10px var(--mono);text-transform:uppercase;white-space:nowrap}.scd-vessel{border:2px solid var(--text);background:var(--surface);text-align:center;border-radius:20px;justify-items:center;min-width:142px;padding:5px 10px;display:grid}.scd-vessel strong{font:700 12px var(--mono)}.scd-vessel small,.scd-vessel span{font:10px var(--mono);color:var(--muted);white-space:nowrap}.scd-process-arrow{font:11px var(--mono);color:var(--accent);white-space:nowrap}.scd-pumps{gap:3px;display:grid}.scd-pumps span{border:1px solid var(--text);background:var(--surface);font:10px var(--mono);white-space:nowrap;border-radius:3px;padding:4px 6px}.scd-model{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;flex:none;align-items:center;gap:6px 12px;min-width:0;padding:7px 12px;font-size:11px;display:flex}.scd-model>strong{color:var(--accent)}.scd-model>span{color:var(--muted)}.scd-model b{color:var(--text)}.scd-model label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.scd-model-upgrade button{flex:none}.scd-model input{border:1px solid var(--border-strong);background:var(--surface);width:55px;color:var(--text);font:11px var(--mono);border-radius:4px;padding:3px 4px}.process-overview{border-bottom:1px solid var(--border);background:var(--surface-2);flex:none;min-width:0;max-height:252px;overflow:auto}.process-overview-head{justify-content:space-between;align-items:center;gap:12px;padding:7px 12px 4px;display:flex}.process-overview-head div{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.process-overview-head strong{color:var(--accent);font-size:12px}.process-overview-head span{color:var(--muted);font-size:11px}.process-overview-head .btn{flex:none;padding:3px 8px;font-size:11px}.process-diagram{scrollbar-width:thin;align-items:center;gap:4px;width:100%;min-width:0;padding:7px 12px;display:flex;overflow-x:auto}.process-diagram>*{flex-shrink:0}.process-overview .process-diagram{gap:3px;padding:6px 10px}.process-overview .process-unit{min-width:90px;max-width:108px;padding:6px}.process-overview .process-vessel{min-width:104px}.process-overview .process-pumps{min-width:108px}.process-overview .process-arrow{font-size:15px}.process-unit{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;flex-direction:column;justify-content:center;gap:3px;min-width:112px;max-width:160px;min-height:66px;padding:8px 10px;display:flex}.process-unit small,.process-pumps>small{color:var(--accent);font:700 9px var(--mono);letter-spacing:.09em}.process-unit strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.process-unit span{color:var(--muted);font:10px var(--mono);white-space:nowrap}.process-unit.stopped{opacity:.55}.process-valve{border-color:var(--accent)}.process-arrow{color:var(--accent);font:700 19px var(--mono)}.process-vessel{align-items:center;min-width:130px}.process-tank{border:2px solid var(--text);background:var(--surface);border-radius:15px;place-items:center;width:58px;height:45px;display:grid;position:relative;overflow:hidden}.process-tank-fill{background:color-mix(in srgb, var(--accent) 40%, transparent);width:100%;transition:height .15s linear;position:absolute;bottom:0;left:0}.process-tank strong{z-index:1;font:700 10px var(--mono);position:relative}.process-pumps{gap:4px;min-width:125px;display:grid}.process-pumps .process-unit{border-color:var(--accent);min-height:39px;padding:5px 8px}.process-pumps .process-unit strong{font-size:11px}.process-live-controls{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px 13px;padding:4px 12px 8px;font-size:11px;display:flex}.process-live-controls label{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.process-live-controls input{border:1px solid var(--border-strong);background:var(--surface);width:62px;color:var(--text);font:11px var(--mono);border-radius:4px;padding:3px 4px}.process-live-controls>span{color:var(--text);font-weight:600}.process-editor{border:1px solid var(--border-strong);background:var(--surface);width:min(1040px,100vw - 24px);max-width:none;height:min(740px,100dvh - 24px);max-height:none;color:var(--text);border-radius:14px;padding:0;overflow:hidden;box-shadow:0 25px 90px #00000059}.process-editor::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d161ca6}.process-editor-shell{flex-direction:column;height:100%;min-height:0;display:flex}.process-editor-shell>header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 24px 15px;display:flex}.process-editor-shell>header small{color:var(--accent);font:700 10px var(--mono);letter-spacing:.1em}.process-editor-shell>header h2{margin:5px 0;font-size:23px}.process-editor-shell>header p{color:var(--muted);margin:0;font-size:12px}.process-editor-body{flex:1;min-height:0;padding:16px 24px 26px;overflow:auto}.process-editor-body .process-diagram{border:1px solid var(--border);background:var(--surface-2);border-radius:10px}.process-assumption{color:var(--muted);margin:11px 0 18px;font-size:11px}.process-swipe-hint{color:var(--muted);margin:6px 0 0;font-size:11px;display:none}.process-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.process-form-grid fieldset{border:1px solid var(--border);border-radius:9px;min-width:0;margin:0;padding:12px}.process-form-grid legend{color:var(--text);padding:0 5px;font-size:12px;font-weight:700}.process-form-row{flex-wrap:wrap;align-items:end;gap:8px;margin:6px 0;display:flex}.process-form-row label{min-width:130px;color:var(--muted);flex:1;gap:4px;font-size:11px;display:grid}.process-form-row input,.process-form-row select{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-width:0;color:var(--text);font:12px var(--font-ui);border-radius:6px;padding:6px 7px}.process-form-row input:disabled,.process-form-row select:disabled{opacity:.65}.process-checkbox{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.process-pump-fields{grid-column:1/-1}.process-pump-fields>.btn{margin-top:8px}.process-editor-shell>footer{border-top:1px solid var(--border);background:var(--surface-2);flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:11px 24px;display:flex}.process-editor-shell>footer span{color:var(--bad);margin-right:auto;font-size:12px}@media (width<=700px){.process-editor{width:calc(100vw - 12px);height:calc(100dvh - 12px)}.process-editor-shell>header,.process-editor-body{padding-inline:15px}.process-editor-shell>footer{padding:9px 15px}.process-form-grid{grid-template-columns:1fr}.process-pump-fields{grid-column:auto}.process-swipe-hint{display:block}}.scd-canvas{background-color:var(--canvas);background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:120px 120px}.scd-title-tags .btn{font-size:12px}.scd-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);font:11px var(--mono);flex:none;padding:5px 16px}.trace-head{border-bottom:1px solid var(--border);justify-content:flex-start}.trace-help{margin-left:auto}.trace-controls{background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:18px;padding:9px 16px;display:flex}.trace-controls label{align-items:center;gap:9px;font-size:12px;display:flex}.trace-controls strong{min-width:54px}.trace-controls input{width:130px;accent-color:var(--accent)}.workspace-demo{width:100%;margin-top:10px}@media (width<=900px){.app{grid-template:"top"48px"left""stage"70vh"right"/1fr;height:auto}.script-resize{display:none}.panel.left,.panel.right{border:0;border-bottom:1px solid var(--border)}.canvas-hint{display:none}}@media (width<=600px){.topbar{flex-wrap:wrap;gap:5px;height:auto;min-height:48px}.view-switch{margin:0}.view-switch .btn{padding:4px 6px;font-size:11px}}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 11px;font-size:13px}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.small{margin-left:8px;padding:2px 8px;font-size:12px}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px}.select,.field{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:4px 6px;font-size:13px}.field{width:110px}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px}.chip:hover{border-color:var(--accent)}.panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.script-editor{background:var(--surface-2);border:1px solid var(--border);min-width:0;min-height:260px;font-family:var(--mono);tab-size:2;border-radius:8px;flex:1;font-size:12.5px;line-height:1.55;position:relative;overflow:hidden}.script-editor:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.script-highlight,.script{box-sizing:border-box;width:100%;height:100%;font:inherit;line-height:inherit;letter-spacing:inherit;tab-size:inherit;white-space:pre-wrap;overflow-wrap:break-word;margin:0;padding:10px;position:absolute;inset:0}.script-highlight{pointer-events:none;color:var(--text);overflow:hidden}.script{resize:none;color:#0000;caret-color:var(--text);background:0 0;border:0;outline:0}.script::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}.script-token.comment{color:var(--syn-comment)}.script-token.annotation{color:var(--syn-tag)}.script-token.string{color:var(--syn-string)}.script-token.number{color:var(--syn-number)}.script-token.keyword,.script-token.boolean{color:var(--syn-keyword)}.script-token.function{color:var(--syn-function)}.script-token.operator{color:var(--syn-operator)}.panel-actions{align-items:center;gap:10px;display:flex}.diagnostics{flex-direction:column;gap:4px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.diagnostics li{background:var(--surface-2);border-radius:6px;padding:5px 8px}.diagnostics li.error{background:var(--bad-soft);color:var(--bad)}.diagnostics li.info{color:var(--muted)}.diagnostics .line{font-family:var(--mono);opacity:.8;margin-right:6px}.help summary{cursor:pointer;color:var(--muted);font-size:12.5px}.help pre{font-family:var(--mono);background:var(--surface-2);border-radius:6px;padding:8px;font-size:11.5px;overflow-x:auto}.ask{border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.ask-form{gap:8px;display:flex}.ask-input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;flex:1;padding:7px 10px}.ask-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.ask-examples{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ask-result{border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.ask-result.good{background:var(--good-soft)}.ask-result.bad{background:var(--bad-soft)}.palette,.inspector{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px 10px 10px;position:absolute;top:10px;box-shadow:0 4px 16px #0000001f}.palette{width:176px;max-height:calc(100% - 20px);left:10px;overflow:auto}.palette-toggle{z-index:5;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #0000001f}.palette-head{justify-content:space-between;align-items:center;display:flex}.palette-items{flex-wrap:wrap;gap:4px;display:flex}.palette-item{font:600 11px/1 var(--mono);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:grab;border-radius:6px;padding:6px 7px}.palette-item:hover{border-color:var(--accent)}.palette-item.sym-AND{background:var(--gate-and);color:#14181d;border-color:#0000}.palette-item.sym-NAND{background:var(--gate-nand);color:#fff;border-color:#0000}.palette-item.sym-OR{background:var(--gate-or);color:#fff;border-color:#0000}.palette-item.sym-NOR{background:var(--gate-nor);color:#fff;border-color:#0000}.palette-item.sym-XOR{background:var(--gate-xor);color:#fff;border-color:#0000}.palette-item.sym-NOT{background:var(--gate-not);color:#14181d;border-color:#0000}.inspector{width:240px;right:10px}.inspector-head{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.inspector .row{justify-content:space-between;align-items:center;gap:8px;margin:6px 0;font-size:13px;display:flex}@media (width<=900px){.palette{width:140px}.inspector{width:200px}}.tabs{border-bottom:1px solid var(--border);background:var(--surface);z-index:1;display:flex;position:sticky;top:0}.tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px 6px;font-size:13px}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-body{padding:12px}.badge{border-radius:999px;margin-left:5px;padding:0 6px;font-size:11px;display:inline-block}.badge.good{background:var(--good-soft);color:var(--on)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.sim-controls{gap:6px;display:flex}.sim-clock{color:var(--muted);gap:12px;margin:10px 0 0;font-size:12.5px;display:flex}.sim-clock strong{color:var(--text);font-variant-numeric:tabular-nums}.signal-list{margin:0;padding:0;list-style:none}.signal-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.sig-name{font-family:var(--mono);font-size:13px}.toggle,.out-val{text-align:center;min-width:36px;font:600 13px var(--mono);border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:6px;padding:3px 8px}.toggle{cursor:pointer}.toggle.on{background:var(--input-on-bg);color:#111;border-color:#0000}.out-val.on{background:var(--on);color:#06200f;border-color:#0000}.num{width:90px;font:13px var(--mono);border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:6px;padding:3px 6px}.trend{display:block;overflow:visible}.trend-label{font:10px var(--mono);fill:var(--muted)}.trend polyline{fill:none;stroke-width:1.5px}.trend-in{stroke:var(--accent)}.trend-out{stroke:var(--on)}.node-add{gap:5px;display:flex}.node-add input{width:100%;min-width:0}.node-card{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;margin:10px 0;padding:9px}.node-card-head,.node-signal,.node-actions{justify-content:space-between;align-items:center;gap:6px;display:flex}.node-actions{justify-content:flex-start;margin:6px 0}.node-actions .btn.small{margin-left:0}.node-status{font-size:11px;font-weight:700}.node-status.running{color:var(--on)}.node-status.stopped{color:var(--bad)}.node-signal{font:12px var(--mono);border-top:1px solid var(--border);padding:3px 0}.node-logic{border-top:1px solid var(--border);padding-top:5px}.ce-panel{min-height:0;padding:16px;overflow:auto}.ce-intro{max-width:780px}.ce-scroll{border:1px solid var(--border);border-radius:8px;max-height:calc(100% - 75px);overflow:auto}.ce-table{border-collapse:separate;border-spacing:0;min-width:100%;font:12px var(--mono)}.ce-table th,.ce-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;min-width:82px;padding:8px}.ce-table thead th{z-index:1;background:var(--surface-2);position:sticky;top:0}.ce-table th:first-child{z-index:2;background:var(--surface-2);min-width:175px;position:sticky;left:0}.ce-table thead th:first-child{z-index:3}.ce-table th span,.ce-table th small,.ce-table th strong{display:block}.ce-table th small{color:var(--muted);font:11px system-ui,sans-serif}.ce-table th.active,.ce-table tr.active th:first-child{background:var(--on-soft)}.ce-cause{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:block}.ce-cause:disabled{cursor:default}.ce-table td{font-weight:700}.verify-head{align-items:center;gap:10px;display:flex}.summary{font-size:13px;font-weight:600}.summary.good{color:var(--on)}.summary.bad{color:var(--bad)}.results{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.results li{background:var(--surface-2);border-radius:6px;gap:8px;padding:7px 8px;font-size:13px;display:flex}.results li.fail{background:var(--bad-soft)}.results .mark{flex:none;width:14px;font-weight:700}.results li.pass .mark{color:var(--on)}.results li.fail .mark{color:var(--bad)}.table-wrap{border:1px solid var(--border);border-radius:8px;max-height:70vh;overflow:auto}.truth table{border-collapse:collapse;width:100%;font:12.5px var(--mono)}.truth th,.truth td{text-align:center;border-bottom:1px solid var(--border);padding:3px 8px}.truth th{background:var(--surface-2);position:sticky;top:0}.truth th.out,.truth td.out:first-of-type{border-left:2px solid var(--border)}.truth td.one.in{color:var(--accent);font-weight:700}.truth td.one.out{color:var(--on);font-weight:700}.truth tbody tr{cursor:pointer}.truth tbody tr:hover{background:var(--surface-2)}.react-flow{--xy-background-color:var(--canvas)}.handle{background:var(--wire)!important;border:0!important;width:7px!important;min-width:0!important;height:7px!important;min-height:0!important}.io-node{min-width:44px;height:36px;font:700 14px var(--mono);border-radius:6px;place-items:center;padding:0 8px;display:grid;position:relative;box-shadow:0 2px #00000040}.io-node.input{background:var(--input-bg);color:#111;cursor:pointer;border:1px solid #d4d4d8}.io-node.input.on{background:var(--input-on-bg);border-color:#0000}.io-node.input.numeric{cursor:default}.io-node.output{background:var(--output-bg);color:#f4f4f5;border:1px solid #52525b;box-shadow:0 3px #27272a}.io-node.output.on{background:var(--on);color:#06200f;border-color:#0000;box-shadow:0 3px #166534}.io-node.const{background:var(--surface-2);color:var(--text);border:1px dashed var(--border);font-size:12px}.io-node.selected,.gate-node.selected,.block-node.selected{outline:2px solid var(--accent);outline-offset:2px}.io-tag{font:600 11px var(--mono);color:var(--muted);white-space:nowrap;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.io-tag.left{right:calc(100% + 8px)}.io-tag.right{left:calc(100% + 8px)}.gate-node{position:relative}.gate-svg{display:block;overflow:visible}.gate-label{font:700 10.5px var(--font-ui);fill:var(--gate-label);letter-spacing:.02em}.gate-label.dark-ink{fill:#14181d}[data-symbols=engineering] .gate-label.dark-ink{fill:var(--gate-label)}.gate-node.on .gate-svg{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--on) 70%, transparent))}.pin-literal{font:600 10.5px var(--mono);color:var(--accent);white-space:nowrap;pointer-events:none;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.block-node{background:var(--block-bg);border:1.5px solid var(--border);border-radius:8px;position:relative;box-shadow:0 2px 8px #00000026}.block-title{height:28px;font:700 12px var(--mono);color:#fff;background:var(--block-head);border-radius:6px 6px 0 0;justify-content:center;align-items:center;gap:4px;display:flex}.block-node.cat-timer .block-title{background:#b45309}.block-node.cat-counter .block-title{background:#0369a1}.block-node.cat-bistable .block-title,.block-node.cat-edge .block-title{background:#0f766e}.block-node.cat-compare .block-title{background:#6d28d9}.block-mem{opacity:.7;font-size:8px}.block-label{text-align:center;font:600 11px var(--mono);color:var(--muted);position:absolute;bottom:calc(100% + 3px);left:0;right:0}.block-ports{margin-top:4px;position:relative}.port-name{height:22px;font:600 11px var(--mono);color:var(--muted);align-items:center;gap:4px;display:flex;position:absolute}.port-name.in{left:8px}.port-name.out{right:8px}.port-name.out.on{color:var(--on)}.port-val{color:var(--text);font-weight:500}.signal-edge{stroke:var(--wire)!important;stroke-width:1.6px!important}.signal-edge.on{stroke:var(--wire-on)!important;stroke-width:2.2px!important}.signal-edge.feedback{stroke-dasharray:5 4}.signal-edge.selected{stroke:var(--accent)!important}.edge-label{font:600 10.5px var(--mono);background:var(--surface);color:var(--text);border:1px solid var(--border);pointer-events:none;border-radius:4px;padding:0 4px;position:absolute}.topbar-actions{align-items:center}.topbar-sep{background:var(--border);width:1px;height:22px;margin:0 4px}.project-menu{align-items:center;gap:6px;display:flex;position:relative}.dirty-dot{color:#f59e0b}.popover{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:320px;max-height:60vh;padding:6px;position:absolute;top:calc(100% + 6px);right:0;overflow:auto;box-shadow:0 8px 24px #0003}.menu-item{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:13px;display:block}.menu-item:hover{background:var(--surface-2)}.menu-row{align-items:center;display:flex}.menu-row.current .menu-item{font-weight:600}.menu-item.grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-sep{background:var(--border);height:1px;margin:6px 0}.menu-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:4px 8px;font-size:11px}.menu-empty{color:var(--muted);padding:6px 8px;font-size:13px}.workspace-menu{margin-left:14px;position:relative}.workspace-trigger{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.workspace-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:360px;max-width:calc(100vw - 20px);max-height:min(70vh,600px);padding:10px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 8px 24px #0003}.workspace-popover-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.workspace-create{background:var(--surface-2);border-radius:7px;flex-direction:column;gap:7px;margin-bottom:8px;padding:9px;display:flex}.workspace-create-fields{gap:6px;display:flex}.workspace-create-fields .select{flex:1;min-width:0}.workspace-message{margin:6px 0}.workspace-list{max-height:48vh;overflow:auto}.workspace-row{border-radius:6px;align-items:center;gap:3px;display:flex}.workspace-row:hover,.workspace-row.current{background:var(--surface-2)}.workspace-row.child{margin-left:20px}.workspace-open{text-align:left;min-width:0;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:7px 4px;display:flex}.workspace-open span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-open small{color:var(--muted);margin-left:auto;font-size:10px}.workspace-icon{text-align:center;width:18px;color:var(--accent);flex:none}.workspace-footer{margin:8px 2px 0}@media (width<=900px){.topbar{flex-wrap:wrap;gap:6px;height:auto;padding:6px 12px}.app{grid-template-rows:auto auto 70vh auto}}.instrument{border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:4px;display:flex;position:relative}.instrument.selected{outline:2px solid var(--accent);outline-offset:2px}.instrument.analog{width:112px}.instrument.digital{cursor:pointer;width:72px}.bubble{border:2px solid var(--text);background:var(--surface);width:52px;height:52px;font:700 11px var(--mono);color:var(--text);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex}.bubble-rule{border-top:1.5px solid var(--text);width:100%;height:0;margin:2px 0}.bubble.on{background:var(--input-on-bg);color:#111;border-color:#111}.bubble.on .bubble-rule{border-color:#111}.inst-value{font:12px var(--mono);color:var(--text)}.inst-value strong{font-size:13px}.inst-bar{background:var(--surface-2);border-radius:2px;width:96px;height:4px;overflow:hidden}.inst-bar span{background:var(--accent);height:100%;display:block}.inst-slider{width:100px;accent-color:var(--accent);margin:0}.inst-state{font:700 12px var(--mono);background:var(--surface-2);color:var(--text);border-radius:5px;padding:1px 8px}.inst-state.on{background:var(--input-on-bg);color:#111}.block-node.std-norsok-fb{border-color:#4b5d7a}.block-node.cat-instrument .block-title{background:#1e40af}.block-node.cat-actuator .block-title{background:#374151;gap:8px}.block-summary{height:18px;font:10.5px var(--mono);color:var(--muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;padding:0 6px;line-height:18px;overflow:hidden}.port-name.out.alarm{color:#fff;background:#dc2626;border-radius:4px;padding:0 4px}.port-name.out.warn{color:#111;background:#f59e0b;border-radius:4px;padding:0 4px}.glyph{fill:#9ca3af;stroke:#e5e7eb;stroke-width:1px}.glyph.on{fill:#4ade80}.glyph.fault{fill:#f87171}.glyph text{font:700 10px var(--mono);fill:#111;stroke:none}.num-wrap{align-items:center;gap:6px;display:flex}.slider{width:90px;accent-color:var(--accent)}.palette-item.cat-instrument,.palette-item.cat-actuator{color:#fff;background:#1e40af;border-color:#0000}.chat-drawer{z-index:40;background:var(--surface);border-left:1px solid var(--border);width:min(420px,100vw);display:flex;position:fixed;top:48px;bottom:0;right:0;box-shadow:-8px 0 24px #0000001f}.chat{flex-direction:column;flex:1;min-width:0;display:flex}.chat-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 10px;display:flex}.chat-title{white-space:nowrap}.chat-session{flex:1;min-width:0}.chat-tools{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.chat-tools .btn.small{margin-left:0}.chat-hint{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:120px;overflow:hidden}.chat-list{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 10px;display:flex;overflow-y:auto}.chat-empty{gap:10px;padding:16px 14px;display:grid}.chat-empty p{margin:0}.chat-suggestions{flex-wrap:wrap;gap:6px;display:flex}.msg{overflow-wrap:anywhere;border-radius:10px;max-width:100%;padding:8px 11px;font-size:13px;line-height:1.5}.msg.user{background:var(--accent);max-width:88%;color:var(--accent-text);white-space:pre-wrap;border-bottom-right-radius:3px;align-self:flex-end}.msg.assistant{background:var(--surface-2);border-bottom-left-radius:3px;align-self:stretch}.msg.assistant.error{background:var(--bad-soft);color:var(--bad)}.msg.thinking{color:var(--muted);font-style:italic}.msg-meta{color:var(--muted);text-align:right;margin-top:4px;font-size:11px}.md p{margin:0 0 8px}.md ul{margin:0 0 8px;padding-left:18px}.md pre,.edit-card pre{background:var(--surface);border:1px solid var(--border);font:12px/1.5 var(--mono);border-radius:6px;margin:0 0 8px;padding:8px;overflow-x:auto}.md>:last-child{margin-bottom:0}.md code{font-size:12px}.edit-card{background:var(--surface);border:1px solid var(--accent);border-radius:8px;gap:6px;margin:6px 0;padding:10px;display:grid}.edit-card.done{border-color:var(--border);opacity:.85}.edit-card.bad{border-color:var(--bad)}.edit-summary{gap:2px;display:grid}.edit-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:10.5px;font-weight:600}.edit-chips{flex-wrap:wrap;gap:4px;display:flex}.edit-chip{font:11.5px var(--mono);border:1px solid var(--border);background:var(--surface-2);border-radius:4px;padding:1px 7px}.edit-chip.add{border-color:var(--on)}.edit-chip.remove{border-color:var(--bad);color:var(--bad)}.edit-warn{color:var(--text);background:#f59e0b22;border-left:3px solid #f59e0b;border-radius:4px;margin:0;padding:4px 8px;font-size:12px}.edit-problem{color:var(--bad);background:var(--bad-soft);border-radius:4px;margin:0;padding:4px 8px;font-size:12px}.edit-actions{align-items:center;gap:6px;display:flex}.edit-actions .btn.small{margin-left:0}.edit-lines{margin:0}.chat-input{border-top:1px solid var(--border);gap:6px;padding:8px 10px;display:grid}.chat-input textarea{font:inherit;resize:vertical;border:1px solid var(--border);background:var(--surface);min-height:60px;max-height:40vh;color:var(--text);border-radius:6px;padding:7px 9px;font-size:13px}.chat-input textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.chat-send{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-error{color:var(--bad);margin:0;font-size:12px}@media (width<=600px){.chat-drawer{width:100vw;top:0}}.chat-notice{color:var(--text);background:var(--surface-2);border-left:3px solid var(--accent);border-radius:4px;margin:0;padding:5px 8px;font-size:12px}.chat-file{align-items:center;gap:6px;display:flex}.attach-chip{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:11.5px var(--mono);background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;margin-bottom:4px;padding:2px 8px;display:inline-block;overflow:hidden}.msg.user .attach-chip{color:inherit;background:#ffffff2e;border-color:#ffffff59;display:block}.chat-send .grow{text-align:right;flex:1}.btn.small.attach{margin-left:0}.btn.small.attach.locked{color:var(--muted)}:root{--scd-ink:#1f2937;--scd-paper:#fff;--scd-sheet:#fdfdfb;--scd-fb:#1e3a8a;--scd-fb-fill:#eef2ff}[data-theme=dark],[data-theme=midgray]{--scd-ink:#d6dae2;--scd-paper:#1a1d23;--scd-sheet:#15171c;--scd-fb:#93b4ff;--scd-fb-fill:#1b2340}.scd-canvas:has(.process-layer){background:#9aa1ad}.process-layer{pointer-events:none;font-family:Arial,Helvetica,sans-serif;position:absolute;top:0;left:0;overflow:visible}.react-flow__viewport-portal:has(.process-layer){z-index:-1}.process-layer .scd-paper{fill:var(--scd-sheet)}.process-layer .scd-border-outer{fill:none;stroke:var(--scd-ink);stroke-width:4px}.process-layer .scd-border{fill:none;stroke:var(--scd-ink);stroke-width:1.5px}.process-layer .scd-zone{fill:var(--scd-ink);text-anchor:middle;font-size:13px}.process-layer .scd-text{fill:var(--scd-ink)}.process-layer .scd-muted{opacity:.7}.process-layer .scd-sheet-title{letter-spacing:.02em;font-size:30px;font-weight:700}.process-layer .scd-status{font-weight:700}.process-layer .scd-titleblock-svg rect,.process-layer .scd-titleblock-svg path,.process-layer .scd-table rect,.process-layer .scd-table path{fill:none;stroke:var(--scd-ink);stroke-width:1.4px}.process-layer .scd-titleblock-svg rect,.process-layer .scd-table rect{fill:var(--scd-paper)}.process-layer .scd-legend-box{fill:var(--scd-paper);stroke:var(--scd-ink);stroke-width:1.4px}.process-layer .scd-box{fill:none;stroke:var(--scd-ink);stroke-width:1.6px;stroke-dasharray:10 6}.process-layer .scd-box-label{font-size:15px;font-weight:700}.process-layer .scd-hatch{stroke:var(--scd-ink);stroke-width:.8px;fill:none}.process-layer .scd-line-label{font-size:13px;font-weight:700}.process-layer .scd-tap{fill:none;stroke:var(--scd-fb);stroke-width:1.4px;stroke-dasharray:6 4}.process-layer .scd-tap-dot{fill:var(--scd-fb)}.process-layer .scd-eq-tag{font-size:14px}.process-layer .scd-offpage-no{fill:var(--scd-fb);font-size:13px;font-weight:700}.process-layer .scd-liquid{fill:#3b82f6;opacity:.28}.process-layer .scd-level-text{fill:#1d4ed8;font-size:13px;font-weight:700}.process-layer .scd-item.bound{pointer-events:auto;cursor:pointer}.process-layer .scd-item.bound:hover .scd-eq-tag{text-decoration:underline}.process-layer .scd-item-ring{fill:none;stroke-width:3px}.process-layer .scd-item.hl .scd-item-ring{stroke:#f59e0b;stroke-dasharray:8 5;animation:1s linear infinite scd-march}.process-layer .scd-item.fault .scd-item-ring{stroke:var(--bad)}.process-layer .scd-level{pointer-events:auto;cursor:pointer}.process-layer .scd-level path,.process-layer .scd-level rect{fill:var(--scd-paper);stroke:var(--scd-ink);stroke-width:2px}.process-layer .scd-level-name{fill:var(--scd-ink);font-size:20px;font-weight:700}.process-layer .scd-level-state{fill:var(--scd-ink);opacity:.75;font-size:12px}.process-layer .scd-level.active path,.process-layer .scd-level.active rect{fill:#dc2626;stroke:#7f1d1d}.process-layer .scd-level.active .scd-level-name,.process-layer .scd-level.active .scd-level-state{fill:#fff;opacity:1}.process-layer .scd-level.selected rect,.process-layer .scd-level.selected path{stroke:#f59e0b;stroke-width:4px}@keyframes scd-march{to{stroke-dashoffset:-26px}}.scd-canvas .signal-edge{stroke:var(--scd-fb)!important;stroke-width:1.3px!important}.scd-canvas .signal-edge.on{stroke:#dc2626!important;stroke-width:2px!important}.scd-canvas .signal-edge.selected{stroke:var(--accent)!important;stroke-width:2.4px!important}.scd-canvas .handle.scd-pin{background:var(--scd-fb)!important;width:5px!important;height:5px!important}.scd-fb{border:2px solid var(--scd-fb);background:var(--scd-fb-fill);width:176px;color:var(--scd-fb);grid-template-columns:52px 1fr;font-family:Arial,Helvetica,sans-serif;display:grid;position:relative}.scd-fb.tripped{color:#991b1b;background:#fee2e2;border-color:#dc2626}.scd-fb-left{border-right:1.5px solid;grid-template-rows:1fr 1fr;display:grid}.scd-fb-left span{justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.scd-fb-node{border-bottom:1.5px solid;font-size:10px!important}.scd-fb-type{font-size:14px!important}.scd-fb-tag{align-content:center;justify-items:center;line-height:1.15;display:grid}.scd-fb-tag strong{font-size:16px}.scd-fb-status{font:700 9px var(--mono);color:var(--scd-fb);border-radius:2px;padding:0 3px;position:absolute;bottom:2px;right:3px}.scd-fb-status.ok{color:#fff;background:#16a34a}.scd-fb-status.bad{color:#fff;background:#dc2626}.scd-fb-status.warn{color:#111;background:#f59e0b}.scd-fb-under{white-space:nowrap;pointer-events:none;gap:1px;margin-top:3px;display:grid;position:absolute;top:100%;left:0}.scd-fb-io{color:var(--scd-fb);font:700 11px Arial,Helvetica,sans-serif}.scd-fb-limits{font:10px var(--mono);color:var(--scd-ink);opacity:.8}.scd-pin-label{color:var(--scd-fb);white-space:nowrap;pointer-events:none;font:700 10px Arial,Helvetica,sans-serif;position:absolute;top:-7px}.scd-pin-label.in{right:8px}.scd-pin-label.out{left:8px}.scd-pin-label.inside-in{left:7px}.scd-pin-label.inside-out{right:7px}.scd-pin-label.on{color:#16a34a}.scd-pin-label.alarm{color:#dc2626}.scd-gate{border:2px solid var(--scd-fb);background:var(--scd-paper);width:44px;color:var(--scd-fb);justify-content:center;align-items:flex-start;display:flex;position:relative}.scd-gate.on{color:#dc2626;border-color:#dc2626}.scd-gate-sym{margin-top:3px;font:700 15px Arial,Helvetica,sans-serif}.scd-gate-invert{background:var(--scd-paper);border:2px solid;border-radius:50%;width:8px;height:8px;position:absolute;top:calc(50% - 5px);right:-10px}.scd-block{border:2px solid var(--scd-fb);background:var(--scd-paper);width:104px;color:var(--scd-fb);font-family:Arial,Helvetica,sans-serif;position:relative}.scd-block.on{border-color:#dc2626}.scd-block-title{text-align:center;border-bottom:1.5px solid;padding:3px 0;font-size:14px;font-weight:700}.scd-block-name{text-align:center;white-space:nowrap;margin-top:3px;font-size:13px;font-weight:700;position:absolute;top:100%;left:0;right:0}.scd-block.on .scd-block-name{color:#dc2626}.scd-fb.selected,.scd-gate.selected,.scd-block.selected{outline:2px solid var(--accent);outline-offset:3px}.scd-fb.hl,.scd-gate.hl,.scd-block.hl{box-shadow:0 0 0 4px #f59e0b}.scd-level-chip{border:1.5px solid var(--text);background:var(--surface);color:var(--text);font:700 12px var(--mono);cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.scd-level-chip small{color:var(--muted);font-weight:400}.scd-level-chip.active{color:#fff;background:#dc2626;border-color:#7f1d1d}.scd-level-chip.active small{color:#fee2e2}.scd-level-chip.selected{box-shadow:0 0 0 3px #f59e0b}.scd-library{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:360px;padding:12px;position:absolute;top:10px;bottom:10px;right:10px;overflow-y:auto;box-shadow:0 8px 28px #0003}.scd-library header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.scd-library-actions{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.scd-library .btn.locked{opacity:.8}.scd-library-msg{border-radius:4px;padding:6px 8px;font-size:12px}.scd-library-msg.ok{background:var(--good-soft)}.scd-library-msg.bad{background:var(--bad-soft)}.scd-library-msg.pro{background:var(--surface-2);border:1px solid var(--border)}.scd-library ul{gap:4px;margin:0 0 10px;padding:0;list-style:none;display:grid}.scd-library li{grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:12px;display:grid}.scd-library code{color:var(--muted);font-size:10px}.scd-library em{color:var(--accent);font-size:10px;font-style:normal}.scd-library-thumb{--scd-paper:var(--surface);place-items:center;width:60px;height:48px;display:grid}.scd-library-thumb svg{overflow:visible}.scd-library-thumb path,.scd-library-thumb rect,.scd-library-thumb circle,.scd-library-thumb ellipse{vector-effect:non-scaling-stroke}.homey-lab{background:var(--bg);flex:1;min-height:0;padding:clamp(22px,3vw,44px);overflow:auto}.homey-empty{flex-direction:column;justify-content:center;align-items:flex-start;max-width:760px;margin:auto;display:flex}.homey-empty h2{margin:12px 0;font-size:clamp(26px,3vw,40px)}.homey-empty p{color:var(--muted);font-size:16px}.homey-head{justify-content:space-between;gap:20px;margin-bottom:24px;display:flex}.homey-head p{color:var(--muted);margin:7px 0 0}.homey-name{width:min(100%,540px);color:var(--text);background:0 0;border:0;border-bottom:1px solid #0000;padding:5px 0;font-family:inherit;font-size:clamp(25px,2.5vw,36px);font-weight:700;line-height:1.2;display:block}.homey-name:focus{border-color:var(--accent);outline:0}.homey-columns{grid-template-columns:repeat(3,minmax(210px,1fr));align-items:start;gap:16px;display:grid}.homey-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;min-height:180px;padding:18px;box-shadow:0 5px 20px #00000009}.homey-card.when{border-top:3px solid #319b9a}.homey-card.and{border-top:3px solid #8b6bd3}.homey-card.then{border-top:3px solid #447de0}.homey-step,.eyebrow{font:700 11px/1.3 var(--mono);letter-spacing:.11em;color:var(--accent);display:block}.homey-card label:not(.homey-check){gap:8px;margin-top:18px;font-weight:600;display:grid}.homey-card .field{width:100%;min-width:0}.homey-card-row,.homey-add{align-items:center;gap:6px;margin-top:13px;display:flex}.homey-card-row .field,.homey-add .field{flex:1}.homey-check{white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.homey-check input{accent-color:var(--accent)}.homey-action{border-bottom:1px solid var(--border);padding-bottom:10px}.homey-script-label{color:var(--muted);font-size:11px}.homey-script{resize:vertical;min-height:75px;font-family:var(--mono)!important;font-size:12px!important}.homey-tests{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-top:30px;padding:24px}.homey-tests-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.homey-tests h3{color:var(--text);text-transform:none;letter-spacing:0;margin:5px 0 0;font-size:20px}.homey-scenario{border:1px solid var(--border);border-radius:9px;margin-top:15px;padding:14px}.homey-scenario-head{align-items:center;gap:10px;margin-bottom:9px;display:flex}.homey-scenario-head .field{max-width:300px;font-weight:600}.homey-scenario .homey-check{margin-right:16px}.homey-scenario p,.homey-note{color:var(--muted);margin:9px 0 0;font-size:12px}.homey-result{white-space:nowrap;font:700 11px var(--mono);border-radius:5px;align-self:flex-start;padding:4px 9px}.homey-result.pass{background:var(--good-soft);color:var(--on)}.homey-result.fail{background:var(--bad-soft);color:var(--bad)}@media (width<=1050px){.homey-columns{grid-template-columns:1fr}}.landing{background:var(--bg);min-height:100%;color:var(--text)}.landing a{color:inherit;text-decoration:none}.landing-nav{align-items:center;gap:55px;max-width:1420px;height:76px;margin:auto;padding:0 clamp(22px,4vw,64px);display:flex}.landing-brand{letter-spacing:-.035em;align-items:center;gap:9px;font-size:21px;display:inline-flex}.landing-brand.manual-trigger{margin-left:-7px}.landing-brand .brand-symbol{width:32px;height:32px}.landing-nav nav{color:var(--muted);gap:30px;font-size:13px;display:flex}.landing-nav nav a:hover,.landing-footer a:hover{color:var(--accent)}.landing-actions{align-items:center;gap:18px;margin-left:auto;display:flex}.landing-sign-in{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0}.landing-button{border:1px solid var(--primary);background:var(--primary);box-shadow:0 10px 25px color-mix(in srgb, var(--primary) 18%, transparent);border-radius:9px;justify-content:center;align-items:center;gap:25px;padding:14px 20px;font-weight:650;line-height:1;display:inline-flex;color:var(--on-primary)!important}.landing-button:hover{filter:brightness(1.08)}.landing-button.small{gap:12px;padding:11px 15px;font-size:12px}.landing-button.outline{background:var(--surface);border-color:var(--border);box-shadow:none;color:var(--text)!important}.landing-button.outline:hover{border-color:var(--accent)}.landing-hero{grid-template-columns:minmax(430px,.92fr) minmax(450px,1.08fr);align-items:center;gap:clamp(35px,5vw,85px);max-width:1420px;min-height:650px;margin:auto;padding:90px clamp(22px,4vw,64px) 110px;display:grid}.landing-hero-copy .eyebrow{color:var(--primary)}.landing-hero h1{letter-spacing:-.06em;margin:26px 0 27px;font-size:clamp(52px,5.4vw,82px);font-weight:750;line-height:1.02}.landing-hero h1 em{color:var(--primary);font-style:normal}.landing-hero-copy>p{max-width:560px;color:var(--muted);font-size:clamp(17px,1.5vw,20px);line-height:1.6}.hero-cta{align-items:center;gap:24px;margin-top:33px;display:flex}.landing-text-link{font-weight:600;color:var(--accent)!important}.hero-proof{flex-wrap:wrap;gap:9px;margin-top:58px;display:flex}.hero-proof span{border:1px solid var(--border);font:11px var(--mono);color:var(--muted);border-radius:99px;padding:7px 11px}.live-dot{background:#10a88b;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block;box-shadow:0 0 0 4px #10a88b1f}.landing-visual{color:#e7eaee;background:linear-gradient(145deg,#14181d,#20272d);border:1px solid #3a454e;border-radius:18px;min-height:410px;overflow:hidden;transform:perspective(1000px)rotateY(-3deg)rotateX(1deg);box-shadow:0 38px 70px #14181d33}.visual-top,.visual-bottom{font:11px var(--mono);color:#a7b4bc;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.visual-top{border-bottom:1px solid #3a454e}.visual-bottom{border-top:1px solid #3a454e}.visual-grid{background-image:linear-gradient(#a7b4bc12 1px,#0000 1px),linear-gradient(90deg,#a7b4bc12 1px,#0000 1px);background-size:30px 30px;grid-template-columns:1fr 1.1fr 1fr;align-items:center;gap:10px;min-height:325px;padding:35px 18px;display:grid}.visual-column{gap:28px;display:grid}.visual-node{background:#252e34;border:1px solid #5f6875;border-radius:8px;gap:5px;min-width:0;padding:12px;display:grid}.visual-node small{font:9px var(--mono);letter-spacing:.1em;color:#9ce8d2}.visual-node b{font:700 15px var(--mono)}.visual-node span{color:#c0cbd2;font-size:10px}.visual-node.sensor{border-left:3px solid #2ec4b0}.visual-node.gate{border-left:3px solid #b79cff}.visual-node.function{border-left:3px solid #7fb2ff}.visual-node.output{border-left:3px solid #ff7a63}.visual-junction{color:#9aa4b1;font:19px var(--mono);align-items:center;gap:4px;display:flex}.visual-junction .visual-node{flex:1}.test-pass{color:#9ce8d2}.landing-workflow,.landing-pricing{padding:110px clamp(22px,4vw,64px)}.landing-workflow{background:var(--surface)}.landing-workflow>*,.landing-pricing>*{max-width:1292px;margin-left:auto;margin-right:auto}.section-intro{max-width:690px;margin-bottom:44px}.section-intro h2,.usecase-head h2{letter-spacing:-.045em;margin:13px 0;font-size:clamp(32px,3.8vw,52px);line-height:1.12}.section-intro p{color:var(--muted);font-size:17px;line-height:1.6}.workflow-grid,.pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.workflow-grid article{border:1px solid var(--border);background:var(--bg);border-radius:14px;padding:28px}.workflow-grid article>span{color:#078f83;font:700 13px var(--mono)}.workflow-grid h3{color:var(--text);text-transform:none;letter-spacing:-.02em;margin:35px 0 8px;font-size:22px}.workflow-grid p{color:var(--muted);line-height:1.6}.landing-usecases{color:#e7eaee;background:#14181d;padding:90px clamp(22px,4vw,64px)}.usecase-head,.usecase-cards{max-width:1292px;margin:auto}.landing-usecases .eyebrow{color:#65cabb}.usecase-cards{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px;display:grid}.usecase-cards>div{border-top:1px solid #65809d;padding-top:17px}.usecase-cards strong{font:700 11px var(--mono);letter-spacing:.12em;color:#65cabb}.usecase-cards p{max-width:300px;font-size:19px}.pricing-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;padding:26px;display:flex}.pricing-card.pro{border:2px solid var(--primary);box-shadow:0 18px 40px color-mix(in srgb, var(--primary) 10%, transparent)}.plan-tag{color:#078f83;font:700 11px var(--mono);letter-spacing:.08em;text-transform:uppercase}.pricing-card h3{color:var(--text);letter-spacing:-.03em;text-transform:none;margin:17px 0 12px;font-size:22px}.plan-price{letter-spacing:-.06em;font-size:47px;font-weight:750}.plan-price small{color:var(--muted);letter-spacing:0;font-size:14px;font-weight:400}.pricing-card .annual{color:var(--accent);min-height:21px;margin:0;font-weight:600}.plan-detail{color:var(--muted);min-height:70px;line-height:1.55}.pricing-card ul{border-top:1px solid var(--border);margin:0 0 auto;padding:16px 0 20px;list-style:none}.pricing-card li{padding:0 0 13px 22px;position:relative}.pricing-card li:before{content:"✓";color:var(--primary);font-weight:800;position:absolute;left:0}.pricing-card .landing-button{margin-top:15px}.pricing-note,.clerk-pricing{color:var(--muted);margin-top:25px;font-size:12px;line-height:1.6}.clerk-pricing{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:20px;scroll-margin-top:40px}.landing-footer{border-top:1px solid var(--border);color:var(--muted);align-items:center;gap:30px;padding:35px clamp(22px,4vw,64px);display:flex}.landing-footer>a:last-child{margin-left:auto}@media (width<=1050px){.landing-hero{grid-template-columns:1fr;padding-top:60px}.landing-visual{max-width:760px;transform:none}.pricing-grid{grid-template-columns:1fr 1fr}}@media (width<=650px){.landing-nav{flex-wrap:wrap;gap:15px;height:auto;padding-top:14px;padding-bottom:14px}.landing-nav nav{order:3;justify-content:space-between;width:100%}.landing-actions{gap:9px}.landing-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding-bottom:70px}.landing-hero h1{font-size:49px}.hero-cta{flex-wrap:wrap}.hero-proof{margin-top:36px}.visual-grid{grid-template-columns:1fr}.visual-junction{display:none}.visual-column{gap:10px}.landing-visual{min-height:0}.workflow-grid,.pricing-grid,.usecase-cards{grid-template-columns:1fr}.landing-workflow,.landing-pricing{padding-top:70px;padding-bottom:70px}.landing-footer{flex-wrap:wrap}}.mobile-nav{display:none}.pwa-status{z-index:100;left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));border:1px solid var(--border-strong);background:var(--chrome);max-width:620px;color:var(--text);box-shadow:var(--shadow);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:auto;padding:10px 12px;font-size:12px;display:flex;position:fixed}.pwa-status button{border:1px solid var(--border-strong);background:var(--surface);min-width:44px;min-height:36px;color:var(--text);cursor:pointer;border-radius:6px;padding:4px 9px}@media (width<=1100px){.app{grid-template:"top""stage"minmax(0,1fr)"mobile"/minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden}.script-resize{display:none}.app .topbar{height:auto;min-height:0;padding:calc(6px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 6px max(10px, env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr);place-content:center stretch;gap:6px 10px;display:grid}.app .brand{white-space:nowrap}.app .workspace-menu{justify-self:end;min-width:0;margin-left:0}.app .workspace-trigger{text-overflow:ellipsis;white-space:nowrap;max-width:min(56vw,360px);min-height:38px;overflow:hidden}.app .view-switch,.app .topbar-actions{scrollbar-width:thin;-webkit-overflow-scrolling:touch;grid-column:1/-1;min-width:0;margin:0;overflow:auto hidden}.app .view-switch .btn,.app .topbar-actions .btn{white-space:nowrap;flex:none;min-height:38px}.app .topbar-actions{padding-bottom:2px}.app .stage,.app>.panel.left,.app>.panel.right{grid-area:stage;min-width:0;min-height:0}.app>.panel.left,.app>.panel.right{border:0;display:none}.app[data-mobile-pane=script]>.stage,.app[data-mobile-pane=tests]>.stage{display:none}.app[data-mobile-pane=script]>.panel.left,.app[data-mobile-pane=tests]>.panel.right{display:flex}.app .script-editor{min-height:0}.app .tab-body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:auto}.app .tabs{flex:none;overflow-x:auto}.app .canvas-wrap{min-height:0}.app .palette{width:min(80vw,320px);max-height:min(65dvh,540px)}.app .palette-item{min-width:44px;min-height:44px}.app .inspector{width:min(80vw,300px);max-height:65dvh;overflow:auto}.app .react-flow__controls-button{width:44px;height:44px}.app .chat-drawer{top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);width:min(100vw,520px)}.mobile-nav{padding:5px max(8px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--chrome);grid-area:mobile;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.mobile-nav button{min-height:48px;color:var(--muted);font:600 12px var(--font-ui);background:0 0;border:0;border-radius:7px}.mobile-nav button[aria-pressed=true]{color:var(--on-primary);background:var(--primary)}.pwa-status{bottom:calc(72px + env(safe-area-inset-bottom))}.workspace-popover{top:calc(58px + env(safe-area-inset-top));left:max(10px, env(safe-area-inset-left));right:max(10px, env(safe-area-inset-right));width:auto;max-width:none;max-height:70dvh;position:fixed}}@media (width<=600px){.app .topbar-actions{gap:4px}.app .theme-control{white-space:nowrap}.app .split-resize .btn{display:none}.app .split-grip{min-width:0}.app .scd-titleblock,.app .trace-head{flex-wrap:wrap;gap:8px;padding:7px 10px}.app .trace-controls{gap:8px;padding:7px 10px}.app .trace-controls input{width:100px}}.logic-account{flex:none;position:relative}.logic-account-trigger{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;place-items:center;width:42px;height:42px;padding:0;display:grid}.logic-account-trigger:hover,.logic-account-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 22%, transparent);outline:2px solid #0000}.logic-avatar{--avatar-fill:#087f79;--avatar-stroke:#29d4c0;display:block;overflow:visible}.logic-avatar-or{--avatar-fill:#2454a9;--avatar-stroke:#76a9ff}.logic-avatar-not{--avatar-fill:#8345a2;--avatar-stroke:#d6a4ec}.logic-avatar-xor{--avatar-fill:#a55b26;--avatar-stroke:#ffc284}.logic-avatar-sr{--avatar-fill:#126585;--avatar-stroke:#62c6e6}.logic-avatar-ton{--avatar-fill:#855c19;--avatar-stroke:#e7bd60}.logic-avatar .avatar-shape{fill:var(--avatar-fill);stroke:var(--avatar-stroke);stroke-width:2.5px;stroke-linejoin:round}.logic-avatar .avatar-pin{stroke:var(--avatar-stroke);stroke-width:2.5px;stroke-linecap:round}.logic-avatar .avatar-initials{fill:#fff;font:700 19px var(--mono);dominant-baseline:middle}.logic-avatar .avatar-kind{fill:#fff;font:700 8px var(--mono);letter-spacing:.08em}.logic-account-popover{z-index:100;border:1px solid var(--border);width:min(334px,100vw - 24px);max-height:min(80vh,680px);color:var(--text);background:var(--surface);border-radius:14px;padding:16px;position:absolute;top:calc(100% + 9px);right:0;overflow-y:auto;box-shadow:0 18px 50px #00000038}.logic-account-head{border-bottom:1px solid var(--border);align-items:center;gap:11px;padding-bottom:13px;display:flex}.logic-account-head strong,.logic-account-head span{text-overflow:ellipsis;white-space:nowrap;max-width:225px;display:block;overflow:hidden}.logic-account-head strong{font-size:14px}.logic-account-head span{color:var(--muted);font-size:11px}.logic-account-menu{gap:4px;padding-top:10px;display:grid}.logic-account-menu button{width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;padding:10px;display:flex}.logic-account-menu button:hover,.logic-account-menu button:focus-visible{background:var(--surface-2)}.logic-account-menu button>span:first-child{display:grid}.logic-account-menu small{color:var(--muted);font-size:11px}.logic-account-menu button>span:last-child{color:var(--muted);font-size:22px;line-height:1}.logic-account-menu button:last-child{border-top:1px solid var(--border);border-radius:0}.logic-account-back{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:2px 0}.logic-account-back:hover{color:var(--text)}.logic-settings-title{margin:8px 0 16px;font-size:20px}.logic-settings-section{border-top:1px solid var(--border);padding:13px 0}.logic-settings-section h3{color:var(--text);margin:0 0 6px;font-size:11px}.logic-settings-section p{color:var(--muted);margin:4px 0 9px;font-size:12px}.logic-settings-action{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface-2);text-align:left;font:inherit;cursor:pointer;border-radius:7px;justify-content:space-between;align-items:center;margin-top:5px;padding:9px 10px;text-decoration:none;display:flex}.logic-settings-action:hover,.logic-settings-action:focus-visible{border-color:var(--accent);color:var(--accent)}.logic-avatar-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.logic-avatar-choice{border:1px solid var(--border);color:var(--muted);background:var(--surface-2);cursor:pointer;border-radius:9px;justify-items:center;gap:1px;padding:7px 3px 5px;display:grid}.logic-avatar-choice span{font:700 10px var(--mono)}.logic-avatar-choice:hover,.logic-avatar-choice:focus-visible,.logic-avatar-choice.selected{border-color:var(--accent);color:var(--text);background:color-mix(in srgb, var(--accent) 9%, var(--surface))}.logic-avatar-choice.selected{box-shadow:inset 0 0 0 1px var(--accent)}.logic-avatar-choice:disabled{opacity:.65;cursor:wait}.logic-account-error{color:var(--bad);margin:8px 0 0;font-size:12px}
