.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{--bg:#0b0d11;--floor:#101318;--grid:#1b2029;--panel:#151922;--panel-border:#2a3140;--metal:#2b313d;--metal-hi:#3a4353;--metal-lo:#1c2129;--text:#e8eaf0;--muted:#8d95a8;--accent:#ffb020;--hazard-a:#f3b21b;--hazard-b:#1a1a1a;--fam-traffic:#5b8cff;--fam-compute:#f2a93b;--fam-storage:#2fbf9f;--fam-transport:#b07cff;--fam-building:#ff7a45;--fam-note:#8d95a8;--lamp-idle:#6b7280;--lamp-busy:#3ddc84;--lamp-failing:#ff5c7a;--bronze:#cd7f32;--silver:#b8c2cc;--gold:#f5c542;--radius:6px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}@supports (height:100dvh){html,body,#root{height:100dvh}}button{font:inherit;color:inherit}.app{flex-direction:column;height:100%;display:flex}.topbar{background:linear-gradient(var(--metal-hi), var(--metal));border-bottom:2px solid var(--metal-lo);align-items:center;gap:12px;height:46px;padding:0 12px;display:flex;box-shadow:0 2px #000}.brand{letter-spacing:.02em;color:var(--accent);align-items:center;gap:6px;font-weight:700;display:flex}.select{background:var(--metal-lo);color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:4px 8px}.crumbs{align-items:center;gap:4px;min-width:0;display:flex}.crumb-wrap{align-items:center;gap:4px;display:inline-flex}.crumb{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px}.crumb:hover{background:#ffffff14}.spacer{flex:1}.zoom{font-variant-numeric:tabular-nums;text-align:right;min-width:48px;font-weight:600}.workspace{flex:1;min-height:0;display:flex;position:relative}.canvas-wrap{flex:1;min-width:0;position:relative}.canvas{position:absolute;inset:0}.inspector{border-left:2px solid var(--metal-lo);background:var(--panel);width:300px;padding:14px;overflow:auto}.inspector h3{margin:0 0 2px;font-size:16px}.inspector h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 6px;font-size:12px}.inspector__head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.inspector__title{flex:1;min-width:0}.inspector__close{flex:none;margin-left:auto}.inspector-tab{z-index:5;background:var(--metal);border:1px solid var(--metal-lo);cursor:pointer;border-right:none;border-radius:6px 0 0 6px;place-items:center;width:28px;height:32px;display:grid;position:absolute;top:8px;right:0}.hint{color:#b6bdcc;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}.crumbs{white-space:nowrap}.crumb{text-overflow:ellipsis;max-width:180px;overflow:hidden}.inspector p{margin:6px 0;line-height:1.45}.plain{margin:0;padding:0;list-style:none}.plain li{padding:3px 0}.kv{grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0;font-size:13px;display:grid}.kv div{display:contents}.kv dt{color:var(--muted)}.kv dd{margin:0}.muted{color:var(--muted);font-size:.92em}.react-flow{background:var(--floor)}.react-flow__pane{cursor:grab}.react-flow__controls{background:var(--metal);border:1px solid var(--metal-lo);box-shadow:0 2px #000}.react-flow__controls button{background:var(--metal);border-bottom:1px solid var(--metal-lo);fill:var(--text)}.react-flow__controls button:hover{background:var(--metal-hi)}.react-flow__minimap{border:1px solid var(--metal-lo);background:var(--panel)!important}.port{z-index:3;cursor:crosshair;opacity:.45;background:0 0;border:none;border-radius:50%;width:22px;height:22px;transition:opacity .12s}.port:after{content:"";box-sizing:border-box;background:linear-gradient(#9aa4b8,#5c6678);border:2px solid #000;border-radius:3px;position:absolute;inset:4px;box-shadow:0 0 0 1px #ffffff26}.react-flow__node:hover .port,.port:hover,.react-flow__node.selected .port,.canvas[data-connecting] .port{opacity:1}.port:hover:after,.react-flow__node.selected .port:after,.port.connectingto:after,.port.valid:after{background:var(--accent);border-color:#000}.port--floor{width:26px;height:26px}.port--floor:after{inset:5px}.react-flow__connection-path{stroke:var(--accent);stroke-width:3px;stroke-dasharray:6 4}.inspector.fam-traffic{--fam:var(--fam-traffic)}.inspector.fam-compute{--fam:var(--fam-compute)}.inspector.fam-storage{--fam:var(--fam-storage)}.inspector.fam-transport{--fam:var(--fam-transport)}.inspector.fam-building{--fam:var(--fam-building)}.building__toggle{background:var(--metal-lo);width:20px;height:18px;color:var(--accent);cursor:pointer;border:1px solid #000;border-radius:3px;place-items:center;margin-left:auto;padding:0;display:grid}.building__toggle:hover{background:var(--metal-hi)}.building__toggle svg{display:block}.building__add{color:var(--lamp-busy)}.alias-badge{background:var(--metal-lo);width:16px;height:16px;color:var(--accent);border:1px solid #000;border-radius:3px;flex:none;place-items:center;display:inline-grid;box-shadow:0 0 0 1px #ffffff1f}.alias-panel{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px dashed color-mix(in srgb, var(--accent) 55%, transparent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;font-size:12px;line-height:1.4;display:flex}.alias-panel>span:not(.alias-badge){flex:160px;min-width:0}.react-flow__nodesselection{display:none!important}.react-flow__node-floor{cursor:default;pointer-events:none!important}.react-flow__node-portal{cursor:pointer}.react-flow__node-portal .port{pointer-events:none;opacity:0!important}.palette__target{color:var(--text);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 50%, transparent);border-radius:6px;align-items:center;gap:6px;margin:0 12px 8px;padding:4px 8px;font-size:12px;display:flex}.palette__target-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.palette__target-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;padding:0;display:grid}.palette__target-clear:hover{color:var(--text)}.bend{pointer-events:all;cursor:grab;z-index:6;background:var(--accent);border:2px solid #000;border-radius:3px;width:14px;height:14px;position:absolute;box-shadow:0 0 0 2px #ffffff73}.bend--mid{background:var(--panel);border-color:var(--accent);border-radius:50%;width:12px;height:12px}.bend:hover{filter:brightness(1.25)}.bend:active{cursor:grabbing}.canvas[data-lod=far] .bend{display:none}.palette{border-right:2px solid var(--metal-lo);background:var(--panel);flex-direction:column;width:240px;min-height:0;display:flex;position:relative}.palette__head{align-items:center;gap:8px;padding:14px 12px 8px;display:flex}.palette__close{flex:none;margin-left:auto}.palette-tab{z-index:5;background:var(--metal);border:1px solid var(--metal-lo);cursor:pointer;border-left:none;border-radius:0 6px 6px 0;place-items:center;width:28px;height:32px;display:grid;position:absolute;top:8px;left:0}.search{background:var(--metal-lo);border:1px solid var(--panel-border);color:var(--muted);border-radius:4px;align-items:center;gap:6px;margin:0 12px 8px;padding:4px 8px;display:flex}.search input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1}.palette__bykind{gap:6px;margin:0 12px 8px;display:flex}.palette__bykind .select{flex:1;min-width:0}.palette__list{flex:1;padding:0 8px 8px;overflow:auto}.palette__list h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 4px 4px;font-size:11px}.preset{cursor:pointer;text-align:left;--fam:var(--fam-note);background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;width:100%;padding:5px 6px;display:flex}.preset.fam-traffic{--fam:var(--fam-traffic)}.preset.fam-compute{--fam:var(--fam-compute)}.preset.fam-storage{--fam:var(--fam-storage)}.preset.fam-transport{--fam:var(--fam-transport)}.preset.fam-building{--fam:var(--fam-building)}.preset:hover{border-color:var(--panel-border);background:#ffffff0d}.preset__icon{background:var(--metal-lo);width:28px;height:28px;color:var(--fam);border:1px solid #000;border-radius:4px;flex:none;place-items:center;display:grid}.preset__text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.preset__label{font-size:13px;font-weight:600}.preset__text .muted{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.palette__hint{border-top:1px solid var(--panel-border);margin:0;padding:8px 12px;font-size:11px}.preset{cursor:grab}body[data-preset-drag],body[data-preset-drag] *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.preset-ghost{z-index:45;transform-origin:0 0;pointer-events:none;opacity:.8;filter:saturate(.55);position:fixed}.preset-ghost:not([data-over]){opacity:.6}.preset-slot{z-index:44;pointer-events:none;border:2px solid var(--accent);border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 14%, transparent);position:fixed}.preset-caption{z-index:46;pointer-events:none;white-space:nowrap;color:var(--text);background:var(--panel);border:1px solid var(--panel-border);isolation:isolate;border-radius:999px;padding:2px 8px;font-size:11px;position:fixed;transform:translate(-50%,-100%)}.preset-caption[data-hold]{border-color:var(--accent);overflow:hidden}.preset-caption[data-hold]:before{content:"";z-index:-1;background:color-mix(in srgb, var(--accent) 35%, transparent);transform-origin:0;animation:drop-hold var(--hold-ms,1s) linear forwards;position:absolute;inset:0}.preset-ghost>*{width:100%;height:100%}.react-flow__node[data-drop=target]{outline:calc(2px / var(--zoom,1)) dashed var(--accent);outline-offset:calc(3px / var(--zoom,1))}.react-flow__node[data-drop=hold]{outline:calc(2px / var(--zoom,1)) solid var(--accent);outline-offset:calc(3px / var(--zoom,1))}@keyframes drop-hold{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.form{flex-direction:column;gap:8px;margin:8px 0 10px;display:flex}.form label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.form label.check{flex-direction:row;align-items:center;gap:8px}.form label.check input{accent-color:var(--accent);flex:none;margin:0}.form label .muted{text-transform:none;letter-spacing:0}.form input,.form select,.form textarea{font:inherit;text-transform:none;letter-spacing:0;color:var(--text);background:var(--metal-lo);border:1px solid var(--panel-border);border-radius:4px;padding:5px 8px;font-size:13px}.form textarea{resize:vertical}.form input[type=range]{background:0 0;border:none;flex:1;padding:0}.form .num{width:92px}.row{align-items:center;gap:6px;display:flex}.row.wrap{flex-wrap:wrap;margin:6px 0 10px}.mono{font-variant-numeric:tabular-nums;min-width:36px;color:var(--text);font-size:12px}.btn--danger{color:#ffb3c0;border-color:#5c2030}.btn--danger:hover{background:#3a1520}.btn:disabled{opacity:.4;cursor:default}.link{color:var(--text);cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.speed{color:var(--muted);align-items:center;gap:6px;display:flex}.speed input[type=range]{width:80px}.help{position:relative}.help summary{list-style:none}.help summary::-webkit-details-marker{display:none}.help__pop{z-index:20;background:var(--panel);border:1px solid var(--panel-border);border-radius:6px;width:340px;padding:10px 12px;font-size:12px;line-height:1.4;position:absolute;top:34px;right:0;box-shadow:0 8px 24px #0009}.help__pop b{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-top:6px;font-size:11px;display:block}.help__pop b:first-child{margin-top:0}.help__pop div{color:var(--muted)}.crumb{max-width:220px}.react-flow__edgelabel-renderer{z-index:1001}.filemenu__toggle.is-on{color:var(--accent);border-color:var(--accent)}.filemenu__pop{z-index:40;background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;width:280px;max-height:calc(100vh - 64px);padding:6px;position:fixed;top:52px;left:8px;overflow:auto;box-shadow:0 8px 24px #0009}.menuitem{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;width:100%;padding:7px 8px;font-size:13px;display:flex}.menuitem:hover:not(:disabled){background:#ffffff0f}.menuitem.is-on{background:#ffffff14}.menuitem__end{margin-left:auto}.filemenu__sub{max-height:calc(100vh - 16px)}.menuitem:disabled{color:var(--muted);cursor:default}.menuitem svg{color:var(--muted)}.filemenu__sep{border:none;border-top:1px solid var(--panel-border);margin:6px 4px}.filemenu__label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 8px 2px;font-size:11px}.filemenu__seg{margin:4px 8px 8px}.filemenu__seg .btn--seg{flex:1;justify-content:center;padding:6px 8px;font-size:13px}.filemenu__empty{margin:4px 8px 6px;font-size:12px}.filemenu__files{margin:0;padding:0;list-style:none}.btn--icon{padding:4px 6px}.file{border:1px solid #0000;border-radius:6px;align-items:stretch;display:flex}.file.is-active{background:color-mix(in srgb, var(--accent) 14%, transparent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.file:hover:not(.is-active){background:#ffffff0d}.file__open,.file--template{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0;padding:5px 8px;line-height:1.2;display:flex}.file__name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.file .muted{font-size:11px}.file__close{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:0 8px}.file:hover .file__close,.file.is-active .file__close{opacity:1}@media (hover:none){.file__close{opacity:1}}.file__close:hover{color:var(--danger,#ff5c7a)}.file--template{border:1px solid #0000;border-radius:6px;width:100%}.file--template:hover{border-color:var(--panel-border);background:#ffffff0d}.crumb--root{font-weight:700}.welcome{z-index:30;overscroll-behavior:contain;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#06080cb8;padding:24px 16px;display:flex;position:absolute;inset:0;overflow:auto}.welcome__card{background:var(--panel);border:2px solid var(--metal-lo);border-radius:10px;width:min(680px,100%);margin:auto;padding:24px 28px;position:relative;box-shadow:0 16px 48px #0009,inset 0 1px #ffffff0f}.welcome__close{position:absolute;top:10px;right:10px}.welcome__brand{color:var(--accent);align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.welcome h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:18px 0 8px;font-size:11px}.welcome__grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px;display:grid}.tpl{text-align:left;cursor:pointer;background:linear-gradient(160deg, var(--metal-hi), var(--metal));border:2px solid var(--metal-lo);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex;box-shadow:0 3px #05070a}.tpl:hover{border-color:var(--accent)}.tpl__name{font-size:15px;font-weight:700}.tpl__tag{color:var(--text);opacity:.85;font-size:12.5px}.welcome__hint{overflow-wrap:anywhere;margin-top:14px;font-size:12px}.welcome code{background:var(--metal-lo);border-radius:3px;padding:1px 5px;font-size:11px}@media (width<=760px){.palette,.inspector{z-index:25;width:min(300px,88vw);position:absolute;top:0;bottom:0;box-shadow:0 0 32px #0009}.palette{left:0}.inspector{right:0}.topbar{scrollbar-width:none;gap:8px;padding:0 8px;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000)}.topbar::-webkit-scrollbar{display:none}.topbar>*{flex:none}.help__pop{width:auto;position:fixed;top:52px;left:8px;right:8px}.welcome{padding:12px}.welcome__card{padding:18px 16px}.welcome__brand{font-size:18px}.tpl{padding:10px 12px}.palette-tab,.inspector-tab{width:40px;height:44px}.filemenu__pop{width:auto;right:8px}.btn{min-height:36px}.btn--icon{min-width:36px}.inspector__close,.palette__close{min-width:40px;min-height:40px}.react-flow__controls-button{width:36px;height:36px}.react-flow__minimap{display:none}}.react-flow__resize-control.handle.resizer__handle{background:var(--accent);border:2px solid #000;border-radius:50%;width:11px;height:11px;box-shadow:0 0 0 1px #ffffff59,inset 0 1px #ffffff4d}.react-flow__resize-control.handle.resizer__handle:hover{background:var(--accent)}.react-flow__resize-control.line.resizer__line{border-color:color-mix(in srgb, var(--accent) 55%, transparent);border-style:dashed}.react-flow__resize-control.line.resizer__line.right,.react-flow__resize-control.line.resizer__line.left{border-left-width:2px;border-right-width:2px}.react-flow__resize-control.line.resizer__line.top,.react-flow__resize-control.line.resizer__line.bottom{border-top-width:2px;border-bottom-width:2px}.textbar{gap:6px;margin-top:-2px}.textbar__size{font:inherit;color:var(--text);background:var(--metal-lo);border:1px solid var(--panel-border);border-radius:4px;padding:3px 4px;font-size:12px}.textbar__seg{display:inline-flex}.textbar .btn{padding:4px 6px}.canvas[data-lod=far] .react-flow__background{opacity:.55}.inspector{scrollbar-width:thin;scrollbar-color:var(--metal-hi) var(--metal-lo);scrollbar-gutter:stable}.inspector__more{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:linear-gradient(transparent, var(--panel) 45%);pointer-events:none;justify-content:center;align-items:center;gap:4px;margin:-8px -14px -14px;padding:14px 0 8px;font-size:11px;display:flex;position:sticky;bottom:-14px}.topbar>*{flex:none}.topbar .crumbs{flex:0 auto;min-width:0;overflow:hidden}.topbar .spacer{flex:1 1 0;min-width:8px}.topbar .btn,.theme-switch{white-space:nowrap}.crumb-wrap{flex:0 auto;min-width:0}.crumb{flex:0 auto;min-width:56px}.crumbs>.crumb-wrap:last-child{flex-shrink:0}.canvas[data-embed] .port{visibility:hidden}.embed-bar{z-index:5;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:8px;left:8px;right:8px}.embed-bar__name{pointer-events:auto;background:var(--panel);border:1px solid var(--panel-border);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;align-items:center;gap:2px;min-width:0;max-width:calc(100% - 110px);padding:3px 8px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.embed-bar__name>*{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.embed-bar__name>svg{flex:none}.embed-bar__crumb{font-weight:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.embed-bar__crumb:hover{text-decoration:underline}.embed-bar__open{pointer-events:auto;flex:none;align-items:center;gap:4px;margin-left:auto;font-size:12px;text-decoration:none;display:inline-flex}.embed-error{z-index:5;border-radius:4px;position:absolute;bottom:8px;left:8px;right:8px}@media (pointer:coarse){.canvas[data-embed] .react-flow__controls-zoomin,.canvas[data-embed] .react-flow__controls-zoomout{display:none}.canvas[data-embed] .react-flow__controls-button{width:32px;height:32px}}.react-flow__edges:has(.react-flow__edge:hover) .react-flow__edge:not(:hover,.selected){opacity:.3;transition:opacity .12s}.btn--toggle.is-on{color:var(--accent);border-color:var(--accent)}.embed-dialog{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#06080cb8;padding:24px 16px;display:flex;position:fixed;inset:0;overflow:auto}.embed-dialog__card{background:var(--panel);border:2px solid var(--metal-lo);border-radius:10px;width:min(560px,100%);margin:auto;padding:20px 22px;position:relative;box-shadow:0 16px 48px #0009}.embed-dialog__card h3{margin:0 32px 4px 0;font-size:16px}.embed-dialog__close{position:absolute;top:10px;right:10px}.embed-dialog__row{justify-content:space-between;align-items:center;display:flex}.embed-dialog__field{text-transform:uppercase;letter-spacing:.06em;color:var(--text);flex-direction:column;gap:3px;font-size:11px;display:flex}.embed-dialog__copy{text-transform:none;letter-spacing:0;border-color:var(--metal-hi);padding:2px 10px;font-size:12px}.embed-dialog .form textarea,.embed-dialog .form input{word-break:break-all;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;font-weight:400;line-height:1.5}.embed-dialog__source{border-left:3px solid var(--accent);background:var(--metal-lo);border-radius:0 4px 4px 0;margin:12px 0 4px;padding:8px 10px;font-size:13px}.embed-dialog__warn{color:var(--accent);margin:8px 0 0;font-size:12px}.embed-dialog__footer{border-top:1px solid var(--panel-border);justify-content:flex-end;margin-top:14px;padding-top:12px;display:flex}.embed-dialog__preview{color:var(--text);border-color:var(--metal-hi);text-decoration:none}.agent-dialog .form textarea{word-break:normal;white-space:pre-wrap}.agent-dialog .embed-dialog__footer{flex-wrap:wrap;align-items:flex-start;gap:8px}.agent-dialog__skill{flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;display:flex}.agent-dialog code{font-size:11px}@media (width<=520px){.agent-dialog .embed-dialog__footer>.btn{flex:1;justify-content:center}.agent-dialog__skill{flex-basis:100%;align-items:stretch}.agent-dialog__skill .btn{justify-content:center}}.canvas[data-lod=far] .machine__stats,.canvas[data-lod=far] .machine__tech,.canvas[data-lod=far] .connector__label:not(.is-selected),.canvas[data-lod=far] .rivet{display:none}.canvas[data-lod=far] .machine__body{gap:6px;padding:6px 8px}.canvas[data-lod=far] .machine__label{white-space:normal;overflow-wrap:break-word;text-overflow:clip;font-size:26px;font-weight:800;line-height:1}.canvas[data-lod=far] .machine__icon{width:36px;height:36px}.canvas[data-lod=far] .machine__strip,.canvas[data-lod=far] .building__roof{height:22px;font-size:13px}.canvas[data-lod=far] .hazard{display:none}.canvas[data-lod=far] .machine__kind{padding-left:8px}.canvas[data-lod=far] .floor__tab{padding:6px 14px;font-size:20px;top:-22px}.canvas[data-lod=mid] .machine__label{font-size:17px}.canvas[data-lod=mid] .machine__strip,.canvas[data-lod=mid] .building__roof{font-size:12px}.stat--none{opacity:.55}.machine{background:linear-gradient(160deg, var(--metal-hi) 0%, var(--metal) 40%, var(--metal-lo) 100%);border:2px solid var(--metal-lo);border-radius:var(--radius);--fam:var(--fam-note);flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff14,0 3px #05070a,0 6px 14px #00000080}.machine.fam-traffic{--fam:var(--fam-traffic)}.machine.fam-compute{--fam:var(--fam-compute)}.machine.fam-storage{--fam:var(--fam-storage)}.machine.fam-transport{--fam:var(--fam-transport)}.machine.fam-building{--fam:var(--fam-building)}.machine.is-selected{outline:2px solid var(--accent);outline-offset:2px}.machine__strip,.building__roof{background:linear-gradient(var(--fam), color-mix(in srgb, var(--fam) 70%, black));color:#0b0d11;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid #00000080;align-items:center;gap:6px;height:22px;padding:0 8px 0 0;font-size:10.5px;font-weight:700;display:flex}.building__roof{background:repeating-linear-gradient(135deg, #00000024 0 5px, transparent 5px 12px), linear-gradient(var(--fam), color-mix(in srgb, var(--fam) 78%, black));height:26px}.hazard{background:repeating-linear-gradient(135deg, var(--hazard-a) 0 5px, var(--hazard-b) 5px 10px);border-right:2px solid #00000080;width:22px;height:100%}.machine__kind{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.lamp{border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #0006}.lamp--idle{background:var(--lamp-idle)}.lamp--busy{background:var(--lamp-busy);box-shadow:0 0 6px var(--lamp-busy), 0 0 0 2px #0006;animation:1.6s ease-in-out infinite blink}.lamp--failing{background:var(--lamp-failing);box-shadow:0 0 6px var(--lamp-failing), 0 0 0 2px #0006;animation:.5s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.45}}.machine__body{flex:1;align-items:center;gap:8px;min-height:0;padding:6px 10px;display:flex}.machine__icon{background:var(--metal-lo);width:34px;height:34px;color:var(--fam);border:1px solid #000;border-radius:4px;flex:none;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff0f}.machine__text{min-width:0}.machine__label{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.machine__tech{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.machine__stats{height:22px;color:var(--muted);font-variant-numeric:tabular-nums;background:#00000059;border-top:1px solid #ffffff0f;align-items:center;gap:10px;padding:0 10px;font-size:11px;display:flex}.machine__stats b{color:var(--text);font-weight:700}.chip{text-transform:uppercase;color:#0b0d11;border-radius:3px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700}.chip--bronze{background:var(--bronze)}.chip--silver{background:var(--silver)}.chip--gold{background:var(--gold)}.rivet{background:radial-gradient(circle at 35% 35%,#7d8797,#2a3038);border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 0 1px #000}.rivet--tl{top:26px;left:4px}.rivet--tr{top:26px;right:4px}.rivet--bl{bottom:26px;left:4px}.rivet--br{bottom:26px;right:4px}.building--closed .rivet--tl,.building--closed .rivet--tr{top:30px}.floor{--fam:var(--fam-building);border:3px solid var(--metal-lo);width:100%;height:100%;box-shadow:inset 0 0 0 3px repeating-linear-gradient(135deg, var(--hazard-a), var(--hazard-b)), 0 0 0 1px #000;outline:3px dashed color-mix(in srgb, var(--fam) 60%, transparent);outline-offset:-8px;background:repeating-linear-gradient(0deg,#0000 0 31px,#ffffff09 31px 32px),repeating-linear-gradient(90deg,#0000 0 31px,#ffffff09 31px 32px),#0e1116;border-radius:8px;position:relative}.floor.is-selected{outline-color:var(--accent)}.floor__tab{background:linear-gradient(var(--metal-hi), var(--metal));border:2px solid var(--metal-lo);color:var(--fam);white-space:nowrap;border-radius:4px;align-items:center;gap:8px;padding:3px 10px;font-size:12px;display:flex;position:absolute;top:-14px;left:12px;box-shadow:0 2px #000}.floor__label{color:var(--text);font-weight:700}.floor__meta{color:var(--muted);font-size:11px}.floor--alias{opacity:.92;outline-style:dotted}.machine[data-mirror]{opacity:.78;filter:saturate(.8)}.machine[data-mirror] .port{display:none}.machine__strip .alias-badge,.building__roof .alias-badge,.machine__strip .cluster-badge,.building__roof .cluster-badge{width:15px;height:15px;margin-right:2px}.react-flow__node-floor .floor__tab{pointer-events:all}.floor--focused{outline:3px solid color-mix(in srgb, var(--fam) 55%, transparent);outline-offset:-8px;box-shadow:inset 0 0 0 3px repeating-linear-gradient(135deg, var(--hazard-a), var(--hazard-b)), 0 0 0 1px #000, 0 0 60px #0000008c}.floor--focused .floor__tab{padding:4px 12px;font-size:13px;top:-16px}.portal{--fam:var(--fam-note);background:linear-gradient(var(--metal), var(--metal-lo));border:2px dashed color-mix(in srgb, var(--fam) 70%, transparent);width:100%;height:100%;color:var(--text);white-space:nowrap;opacity:.9;border-radius:16px;align-items:center;gap:6px;padding:0 10px 0 6px;font-size:12px;font-weight:600;display:flex;overflow:hidden;box-shadow:0 2px #05070a}.portal.fam-traffic{--fam:var(--fam-traffic)}.portal.fam-compute{--fam:var(--fam-compute)}.portal.fam-storage{--fam:var(--fam-storage)}.portal.fam-transport{--fam:var(--fam-transport)}.portal.fam-building{--fam:var(--fam-building)}.portal:hover{opacity:1;border-style:solid}.portal__icon{background:var(--metal-lo);width:20px;height:20px;color:var(--fam);border:1px solid #000;border-radius:50%;flex:none;place-items:center;display:grid}.portal__label{text-overflow:ellipsis;overflow:hidden}.connector__casing{stroke:var(--floor);stroke-width:16px;stroke-linecap:butt;fill:none}.connector--dependency .connector__casing{stroke-width:6px}.connector__base{stroke:#23282f;stroke-width:10px;stroke-linecap:butt;fill:none}.connector__stripes{fill:none;stroke:#f3b21b;stroke-width:4px;stroke-dasharray:4 10;opacity:.85;animation:.7s linear infinite connector-run}.connector--batch .connector__stripes{stroke:#b07cff;animation-duration:1.6s}.connector--request .connector__stripes{stroke:#5b8cff}.connector--dependency .connector__base{stroke:#0000}.connector--dependency .connector__stripes{stroke:var(--muted);stroke-width:2px;stroke-dasharray:2 6;opacity:.6;animation-duration:2.5s}@keyframes connector-run{to{stroke-dashoffset:-14px}}.item rect{stroke:#000;stroke-width:1px}.item--request rect{fill:#9cc0ff}.item--event rect{fill:#d9b8ff}.item--row rect{fill:#7fe6cc}.item--file rect{fill:#ffd27f}.item--signal rect{fill:#cbd2dc}.connector__label{pointer-events:all;white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;background:var(--bg);padding:0 4px 4px;font-size:11px;position:absolute}.connector__label b{color:var(--text);font-weight:inherit}.connector__label{cursor:pointer}.connector__label:hover,.connector__label.is-selected{color:var(--accent)}.connector__label:hover b,.connector__label.is-selected b{color:inherit}.connector.is-selected .connector__base{stroke:var(--accent)}.connector__tag{margin-left:4px}:is(b,span:not(.connector__dir))+.connector__tag:before{content:"· "}.note{color:#2a2208;white-space:pre-wrap;background:#f3d97a;border-radius:3px;width:100%;height:100%;padding:12px 12px 10px;font-family:Segoe Print,Comic Sans MS,cursive;font-size:13px;line-height:1.3;position:relative;overflow:hidden;transform:rotate(-1deg);box-shadow:0 3px #a08a2a,0 6px 12px #00000080}.note.is-selected{outline:2px solid var(--accent);outline-offset:2px}.note__pin{background:radial-gradient(circle at 35% 35%,#ff8a8a,#b32020);border-radius:50%;width:12px;height:12px;margin-left:-6px;position:absolute;top:-6px;left:50%;box-shadow:0 1px 2px #000}.note .port{display:none}.canvas[data-lod=far] .note{font-size:20px}.connector--both .connector__stripes{opacity:.45}.connector__dir{color:var(--accent);font-weight:700}.item--back rect{opacity:.85}.connector__label{pointer-events:all}.connector--backward .connector__stripes{opacity:.9}.machine__label{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;text-overflow:clip;-webkit-box-orient:vertical;line-height:1.15;display:-webkit-box}.machine__label[data-long=l]{font-size:12px}.machine__label[data-long=xl]{letter-spacing:-.01em;font-size:11px}.canvas[data-lod=mid] .machine__label[data-long=l]{font-size:14px}.canvas[data-lod=mid] .machine__label[data-long=xl]{font-size:12.5px}.canvas[data-lod=far] .machine__label{-webkit-line-clamp:2}.canvas[data-lod=far] .machine__label[data-long=l]{font-size:20px}.canvas[data-lod=far] .machine__label[data-long=xl]{font-size:17px}.canvas[data-lod=far] .machine__label[data-word=l]{-webkit-hyphens:auto;hyphens:auto;font-size:19px}.canvas[data-lod=far] .machine__label[data-word=xl]{-webkit-hyphens:auto;hyphens:auto;font-size:15px}.machine__text{flex:1;min-width:0}.connector__label{text-overflow:ellipsis;max-width:260px;overflow:hidden}.connector__tag{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:180px;display:inline-block;overflow:hidden}.machine__label[data-long=xl]{-webkit-line-clamp:3;line-height:1.12}.machine__text:has(.machine__label[data-long=xl]) .machine__tech{display:none}.canvas[data-lod=far] .machine__label[data-long=xl]{-webkit-line-clamp:2}.machine__stats{white-space:nowrap;overflow:hidden}.machine__stats>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.machine__stats .chip{flex:none}.connector__label{color:var(--text);font-size:12px}.connector__label :is(.connector__unit,.connector__tag){color:var(--text)}.canvas[data-lod=mid] .connector__label{max-width:200px;font-size:13px}.machine.machine[data-shape]:not([data-shape=box]){box-shadow:none;filter:drop-shadow(0 3px #05070a)drop-shadow(0 6px 10px #00000073);background:0 0;border:none;border-radius:0;overflow:visible}.machine[data-shape]:not([data-shape=box])>:not(.machine__shape){z-index:1;position:relative}.machine[data-shape]:not([data-shape=box]) .rivet,.machine[data-shape]:not([data-shape=box]) .hazard{display:none}.machine[data-shape]:not([data-shape=box]) .machine__kind{padding-left:0}.machine[data-shape]:not([data-shape=box]) .machine__strip{color:#0b0d11;background:0 0;border:none}.machine[data-shape]:not([data-shape=box]) .machine__stats{background:0 0;border-top:1px solid #ffffff14}.machine[data-shape]:not([data-shape=box]).is-selected{outline:none}.machine[data-shape]:not([data-shape=box]).is-selected .shape__outline{stroke:var(--accent);stroke-width:2.5px}.machine.machine.machine--ghost{pointer-events:none;filter:brightness(.72);outline:none;position:absolute;inset:0;translate:7px -7px}.machine.machine.machine--ghost[data-depth="2"]{filter:brightness(.5);translate:14px -14px}.machine__shape{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible;z-index:0!important}.shape__body{fill:var(--metal)}.shape__cap{fill:var(--fam)}.shape__outline{fill:none;stroke:var(--metal-lo);stroke-width:2px;stroke-linejoin:round}.shape__detail{fill:none;stroke:#00000073;stroke-width:1.5px}.shape__flange{fill:var(--metal-hi);stroke:var(--metal-lo);stroke-width:2px}.shape__tooth{fill:var(--metal-lo);stroke:#000;stroke-width:1px}.machine[data-shape=chevron] .machine__strip{padding-left:10px}.machine[data-shape=chevron] .machine__body{padding-left:28px;padding-right:16px}.machine[data-shape=chevron] .machine__stats{margin-right:18px;padding-left:14px;padding-right:8px}.machine[data-shape=hex] .machine__strip{padding-left:32px;padding-right:20px}.machine[data-shape=hex] .machine__body{padding-left:12px;padding-right:10px}.machine[data-shape=hex] .machine__stats{border-top:none;height:18px;margin:0 18px 6px;padding:0 4px}.machine[data-shape=tank] .machine__strip{height:26px;padding-left:34px;padding-right:28px}.machine[data-shape=tank] .machine__body{padding-left:14px}.machine[data-shape=tank] .machine__stats{border-top:none;height:18px;margin:0 6px 8px;padding:0 4px}.machine[data-shape=pipe]{padding:9px 12px}.machine[data-shape=pipe] .machine__strip{height:24px;padding-left:10px}.machine[data-shape=pipe] .machine__body{padding:2px 8px}.machine[data-shape=pipe] .machine__stats{height:18px}.machine[data-shape=cog] .machine__strip{padding-left:22px;padding-right:20px}.machine[data-shape=cog] .machine__body{padding:4px 12px}.machine[data-shape=cog] .machine__stats{border-top:none;height:18px;margin:0 14px 7px;padding:0 8px}:root[data-theme=blueprint] .shape__body{fill:color-mix(in srgb, var(--fam) 10%, var(--panel))}:root[data-theme=blueprint] .shape__cap{fill:color-mix(in srgb, var(--fam) 22%, var(--panel))}:root[data-theme=blueprint] .shape__outline{stroke:color-mix(in srgb, var(--fam) 60%, transparent);stroke-width:1.5px}:root[data-theme=blueprint] .shape__flange{fill:var(--panel);stroke:color-mix(in srgb, var(--fam) 60%, transparent)}:root[data-theme=blueprint] .machine[data-shape]:not([data-shape=box]) .machine__strip{color:var(--fam)}:root[data-theme=blueprint] .machine[data-shape]:not([data-shape=box]){filter:drop-shadow(0 0 10px color-mix(in srgb, var(--fam) 25%, transparent))}.machine__label[data-sized],.floor__label[data-sized],.note__text[data-sized]{font-size:var(--label-size)}.canvas[data-lod=mid] .machine__label[data-sized]{font-size:calc(var(--label-size) * 1.25)}.canvas[data-lod=far] .machine__label[data-sized]{font-size:calc(var(--label-size) * 1.9)}.canvas[data-lod=far] .note__text[data-sized]{font-size:calc(var(--label-size) * 1.5)}.machine__body[data-align=center]{justify-content:center}.machine__body[data-align=center] .machine__text{text-align:center}.machine__body[data-align=right]{justify-content:flex-end}.machine__body[data-align=right] .machine__text{text-align:right}.floor__tab[data-align=center]{left:50%;transform:translate(-50%)}.floor__tab[data-align=right]{left:auto;right:12px}.machine[data-sized] .machine__label{-webkit-line-clamp:12}.machine[data-sized] .machine__shape *{vector-effect:non-scaling-stroke}.machine[data-sized] .machine__text{flex:0 auto;min-height:0;overflow:hidden}.canvas .portal{font-size:clamp(12px, 12px / var(--zoom,1), 18px)}.portal.is-selected{opacity:1;border-style:solid;border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.btn{background:var(--metal-lo);border:1px solid var(--panel-border);cursor:pointer;border-radius:4px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;display:inline-flex}.btn:hover{background:var(--metal-hi)}.io{gap:4px;display:flex}.theme-switch{display:flex}.btn--seg{border-radius:0}.btn--seg:first-child{border-radius:4px 0 0 4px}.btn--seg:last-child{border-radius:0 4px 4px 0}.btn--seg.is-on{background:var(--accent);color:#0b0d11;border-color:var(--accent);font-weight:700}.banner{align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:flex}.banner--error{color:#ffb3c0;background:#3a1520;border-bottom:1px solid #5c2030}.banner .btn{margin-left:auto}:root[data-theme=blueprint]{--bg:#0a0e1a;--floor:#0c1120;--grid:#16203a;--panel:#0f1526;--panel-border:#24304f;--metal:#131b30;--metal-hi:#1b2540;--metal-lo:#0b1020;--accent:#4fd1ff;--hazard-a:#4fd1ff;--hazard-b:#0b1020;--fam-traffic:#7aa2ff;--fam-compute:#ffc46b;--fam-storage:#55e0bf;--fam-transport:#c79bff;--fam-building:#ff9a6b}:root[data-theme=blueprint] .topbar{background:var(--panel);border-bottom:1px solid var(--panel-border);box-shadow:none}:root[data-theme=blueprint] .machine{background:color-mix(in srgb, var(--fam) 10%, var(--panel));border:1px solid color-mix(in srgb, var(--fam) 55%, transparent);border-left:3px solid var(--fam);box-shadow:0 0 0 1px #0009, 0 0 18px color-mix(in srgb, var(--fam) 18%, transparent);border-radius:8px}:root[data-theme=blueprint] .machine__strip,:root[data-theme=blueprint] .building__roof{color:var(--fam);border-bottom:1px dashed color-mix(in srgb, var(--fam) 35%, transparent);background:0 0}:root[data-theme=blueprint] .hazard{display:none}:root[data-theme=blueprint] .machine__kind{padding-left:10px}:root[data-theme=blueprint] .rivet{display:none}:root[data-theme=blueprint] .machine__icon{border:1px solid color-mix(in srgb, var(--fam) 50%, transparent);box-shadow:none;background:0 0}:root[data-theme=blueprint] .machine__stats{background:#00000040}:root[data-theme=blueprint] .port{background:var(--fam);border-color:var(--floor);border-radius:50%}:root[data-theme=blueprint] .floor{border:1px solid color-mix(in srgb, var(--fam) 45%, transparent);box-shadow:0 0 24px color-mix(in srgb, var(--fam) 12%, transparent);background:radial-gradient(circle,#1a2745 1px,#0000 1px) 0 0/24px 24px,#0a0f1e;border-radius:12px;outline:none}:root[data-theme=blueprint] .floor__tab{background:var(--panel);border:1px solid color-mix(in srgb, var(--fam) 50%, transparent);box-shadow:none}:root[data-theme=blueprint] .connector__casing{stroke-width:9px}:root[data-theme=blueprint] .connector__base{stroke:#1a2340;stroke-width:3px}:root[data-theme=blueprint] .connector__stripes{stroke:#4fd1ff;stroke-width:2px;stroke-dasharray:1 9;stroke-linecap:round;opacity:.9}:root[data-theme=blueprint] .connector--batch .connector__stripes{stroke:#c79bff}:root[data-theme=blueprint] .connector--request .connector__stripes{stroke:#7aa2ff}:root[data-theme=blueprint] .item rect{rx:5;stroke:none;filter:drop-shadow(0 0 3px)}:root[data-theme=blueprint] .react-flow__pane{background:radial-gradient(circle,#16203a 1px,#0000 1px) 0 0/32px 32px}:root[data-theme=toy]{--bg:#17120e;--floor:#1d1712;--grid:#2a221b;--panel:#221a14;--panel-border:#4a3a2c;--metal:#3b3129;--metal-hi:#4e4136;--metal-lo:#241d17;--text:#fff4e6;--muted:#b39d86;--accent:#fc3;--hazard-a:#fc3;--hazard-b:#1a1410;--fam-traffic:#4fa3ff;--fam-compute:#ff9f1c;--fam-storage:#2ec27e;--fam-transport:#c86bff;--fam-building:#ff6b3d}:root[data-theme=toy] .react-flow{font-family:Segoe UI Variable Display,Trebuchet MS,ui-rounded,system-ui,sans-serif}:root[data-theme=toy] .topbar{background:linear-gradient(#4e4136,#3b3129);border-bottom:3px solid #120d0a}:root[data-theme=toy] .react-flow__pane{background:repeating-linear-gradient(0deg,#0000 0 62px,#00000040 62px 64px),repeating-linear-gradient(90deg,#0000 0 62px,#00000040 62px 64px),#1d1712}:root[data-theme=toy] .machine{background:color-mix(in srgb, var(--fam) 28%, #2a221b);border:3px solid #120d0a;border-radius:12px;box-shadow:inset 0 2px #ffffff2e,inset 0 -3px #00000059,0 4px #120d0a,0 8px 16px #00000080}:root[data-theme=toy] .machine__strip,:root[data-theme=toy] .building__roof{background:var(--fam);border-bottom:3px solid #120d0a;height:24px;font-size:11px}:root[data-theme=toy] .building__roof{background:repeating-linear-gradient(135deg, #00000029 0 7px, transparent 7px 16px), var(--fam);height:30px}:root[data-theme=toy] .hazard{background:repeating-linear-gradient(135deg, var(--hazard-a) 0 7px, var(--hazard-b) 7px 14px);border-right:3px solid #120d0a;width:26px}:root[data-theme=toy] .machine__icon{border:2px solid var(--fam);width:38px;height:38px;color:var(--fam);background:#120d0a;border-radius:8px}:root[data-theme=toy] .canvas[data-lod=near] .machine__label{font-size:14.5px}:root[data-theme=toy] .machine__stats{background:#120d0a;border-top:3px solid #120d0a;font-size:11.5px}:root[data-theme=toy] .rivet{background:radial-gradient(circle at 35% 35%,#b5a08a,#3b3129);width:7px;height:7px;box-shadow:0 0 0 2px #120d0a}:root[data-theme=toy] .port{background:#fc3;border:3px solid #120d0a;border-radius:4px;width:14px;height:14px}:root[data-theme=toy] .floor{outline:4px solid color-mix(in srgb, var(--fam) 70%, black);outline-offset:-8px;background:repeating-linear-gradient(0deg,#0000 0 30px,#ffffff0d 30px 32px),repeating-linear-gradient(90deg,#0000 0 30px,#ffffff0d 30px 32px),#14100c;border:4px solid #120d0a;border-radius:14px;box-shadow:0 6px #120d0a}:root[data-theme=toy] .floor__tab{background:var(--fam);color:#120d0a;border:3px solid #120d0a;border-radius:8px;font-weight:700;top:-18px}:root[data-theme=toy] .floor__label,:root[data-theme=toy] .floor__meta{color:#120d0a}:root[data-theme=toy] .connector__casing{stroke-width:22px}:root[data-theme=toy] .connector__base{stroke:#120d0a;stroke-width:16px}:root[data-theme=toy] .connector__stripes{stroke:#6b5a48;stroke-width:10px;stroke-dasharray:6 10;opacity:1;animation-duration:.55s}:root[data-theme=toy] .connector--batch .connector__stripes{stroke:#7a5aa0}:root[data-theme=toy] .connector--request .connector__stripes{stroke:#3d6aa8}:root[data-theme=toy] .connector--dependency .connector__stripes{stroke:var(--muted);stroke-width:3px;stroke-dasharray:3 8}:root[data-theme=toy] .item rect{x:-7px;y:-7px;rx:3;stroke:#120d0a;stroke-width:2px;width:14px;height:14px}:root[data-theme=toy] .connector__label{font-weight:700}:root[data-theme=toy] .react-flow__controls,:root[data-theme=toy] .react-flow__controls button{background:#3b3129;border-color:#120d0a}:root[data-theme=toy] .machine__label[data-sized]{font-size:var(--label-size)}.canvas[data-skin=schematic]{--sch-bg:#000;--sch-card:#050505;--sch-line:#4f4f4f;--sch-inset:#2e2e2e;--sch-port:#5a5a5a;--sch-text:#aaa;--sch-text-hi:#eee;--sch-dim:#858585;--sch-faint:#555;--sch-icon:#777;--sch-sel:#bbb;--sch-pulse:#fff;--sch-hair:calc(1px / var(--zoom,1));--sch-font:"IBM Plex Mono", ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--floor:var(--sch-bg);--grid:#141414;--accent:#e6e6e6;--panel:#0a0a0a;--metal:#111;--metal-hi:#1c1c1c;--metal-lo:#0a0a0a;--text:var(--sch-text-hi);--muted:var(--sch-dim);font-family:var(--sch-font)}.canvas[data-skin=schematic] .react-flow__minimap{border-color:var(--sch-inset)}.canvas[data-skin=schematic] .react-flow__controls{border-color:var(--sch-inset);box-shadow:none}.canvas[data-skin=schematic] .react-flow__controls button{border-color:var(--sch-inset)}.canvas[data-skin=schematic][data-lod=far] .react-flow__background{opacity:0}.canvas[data-skin=schematic] .react-flow__pane{background:0 0}.canvas[data-skin=schematic] .react-flow__controls,.canvas[data-skin=schematic] .react-flow__controls button{background:var(--sch-bg);fill:var(--sch-text)}.canvas[data-skin=schematic] .port{opacity:0;background:0 0;border:none;border-radius:50%;width:22px;height:22px}.canvas[data-skin=schematic] .react-flow__node:hover .port,.canvas[data-skin=schematic] .port:hover,.canvas[data-skin=schematic] .react-flow__node.selected .port,.canvas[data-skin=schematic][data-connecting] .port{opacity:1}.canvas[data-skin=schematic] .port:after{background:var(--sch-port);border:1px solid var(--sch-bg);box-shadow:none;border-radius:50%;inset:7px}.canvas[data-skin=schematic] .port--floor:after{inset:9px}.canvas[data-skin=schematic] .port:hover:after,.canvas[data-skin=schematic] .react-flow__node.selected .port:after,.canvas[data-skin=schematic] .port.connectingto:after,.canvas[data-skin=schematic] .port.valid:after{background:var(--sch-pulse)}.canvas[data-skin=schematic] .react-flow__connection-path{stroke:var(--sch-text);stroke-width:1px;stroke-dasharray:4 4}.canvas[data-skin=schematic] .building__toggle{border:1px solid var(--sch-inset);width:18px;height:18px;color:var(--sch-dim);background:0 0;border-radius:0}.canvas[data-skin=schematic] .building__toggle:hover{color:var(--sch-text-hi);border-color:var(--sch-line)}.canvas[data-skin=schematic] .building__add{color:var(--sch-dim)}.canvas[data-skin=schematic] .alias-badge{border:1px solid var(--sch-inset);width:14px;height:14px;box-shadow:none;color:var(--sch-dim);background:0 0;border-radius:0}.canvas[data-skin=schematic] .bend{border:1px solid var(--sch-bg);box-shadow:0 0 0 1px var(--sch-line);border-radius:0}.canvas[data-skin=schematic] .bend--mid{background:var(--sch-bg);border-color:var(--sch-text);border-radius:50%}.canvas[data-skin=schematic] .react-flow__resize-control.handle.resizer__handle{border:1px solid var(--sch-bg);box-shadow:0 0 0 1px var(--sch-line);border-radius:0}.canvas[data-skin=schematic] .react-flow__resize-control.line.resizer__line{border-color:var(--sch-faint)}.sch-card{background:var(--sch-card);border:var(--sch-hair) solid var(--sch-line);width:100%;height:100%;color:var(--sch-text);font:500 13px/18px var(--sch-font);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:10px;padding:0 14px;display:flex;position:relative;overflow:hidden}.sch-card:before{content:"";inset:calc(3 * var(--sch-hair));border:var(--sch-hair) solid var(--sch-inset);pointer-events:none;position:absolute}.sch-card>*{position:relative}.sch-card__icon{color:var(--sch-icon);flex:none;display:inline-flex}[data-fam=traffic]>.sch-card__icon{color:#7f9ad0}[data-fam=compute]>.sch-card__icon{color:#c4a067}[data-fam=storage]>.sch-card__icon{color:#62ab98}[data-fam=transport]>.sch-card__icon{color:#a28bcb}[data-fam=building]>.sch-card__icon{color:#c48d70}.sch-card__label{-webkit-line-clamp:2;white-space:normal;overflow-wrap:break-word;-webkit-box-orient:vertical;flex:0 auto;min-width:min-content;line-height:16px;display:-webkit-box;overflow:hidden}.sch-card__label[data-sized]{font-size:var(--label-size);line-height:1.3}.sch-card__count{color:var(--sch-faint);flex:none;font-size:11px;font-weight:400}.sch-card__detail{text-overflow:ellipsis;min-width:0;color:var(--sch-dim);flex:0 100 auto;margin-left:auto;padding-left:6px;font-size:12px;font-weight:400;overflow:hidden}.sch-card .alias-badge{flex:none}.sch-chip{color:var(--sch-dim);flex:none;align-items:center;gap:5px;font-size:11px;font-weight:400;display:inline-flex}.sch-chip:before{content:"";background:var(--sch-dim);border-radius:50%;width:6px;height:6px}.sch-chip--bronze:before{background:#b0753b}.sch-chip--silver:before{background:#a3acb6}.sch-chip--gold:before{background:#d6b04a}.sch-card:hover{border-color:#4a4a4a}.sch-card.is-selected{border-color:var(--sch-sel);background:linear-gradient(90deg,#0b0b0b 55%,#1b1b1b)}.sch-card.is-selected:before{border-color:#444}.sch-card.is-selected .sch-card__label{color:var(--sch-text-hi)}.sch-card[data-mirror]{opacity:.6}.sch-card[data-align=center] .sch-card__label{margin-left:auto}.sch-card[data-align=center] .sch-card__detail{margin-left:0}.sch-card[data-align=center]:after{content:"";margin-left:auto}.sch-card[data-align=right] .sch-card__label{margin-left:auto}.sch-card[data-align=right] .sch-card__detail{margin-left:0}.sch-card[data-sized]{white-space:normal}.sch-card[data-sized] .sch-card__label{overflow-wrap:anywhere}.sch-card--building{box-shadow:5px 5px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 5px 5px 0 0 var(--sch-line)}.sch-card--building.is-selected{box-shadow:5px 5px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 5px 5px 0 0 var(--sch-sel)}.sch-card[data-cluster]{--sch-stack:#6a6a6a;box-shadow:6px -6px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 6px -6px 0 0 var(--sch-stack), 12px -12px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 12px -12px 0 0 var(--sch-stack)}.sch-card[data-cluster].is-selected{--sch-stack:var(--sch-sel)}.sch-card--building[data-cluster]{box-shadow:6px -6px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 6px -6px 0 0 var(--sch-stack), 12px -12px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 12px -12px 0 0 var(--sch-stack), 5px 5px 0 calc(-1 * var(--sch-hair)) var(--sch-bg), 5px 5px 0 0 var(--sch-stack)}.sch-tools{flex:none;gap:4px;display:inline-flex}.sch-card--building .sch-tools{margin-left:4px}.sch-frame{border:var(--sch-hair) solid var(--sch-line);background:#ffffff06;width:100%;height:100%;position:relative}.sch-frame.is-selected{border-color:var(--sch-sel)}.sch-frame--alias{border-style:dashed}.sch-frame--focused{box-shadow:0 0 0 1px var(--sch-bg), 0 0 80px #ffffff06;border-color:#4a4a4a}.sch-frame__tab{color:var(--sch-icon);font:400 12px/18px var(--sch-font);white-space:nowrap;align-items:center;gap:8px;margin-bottom:8px;display:flex;position:absolute;bottom:100%;left:-1px}.sch-frame__label{color:var(--sch-text);font-weight:500}.sch-frame__label[data-sized]{font-size:var(--label-size)}.sch-frame__meta{color:var(--sch-faint);font-size:11px}.sch-frame__tab .sch-tools{margin-left:4px}.sch-frame__tab[data-align=center]{left:50%;transform:translate(-50%)}.sch-frame__tab[data-align=right]{left:auto;right:-1px}.react-flow__node-floor .sch-frame__tab{pointer-events:all}.sch-frame--focused .sch-frame__tab{font-size:13px}.sch-portal{background:var(--sch-bg);border:var(--sch-hair) dashed var(--sch-line);width:100%;height:100%;color:var(--sch-dim);font:400 12px var(--sch-font);font-size:clamp(12px, 12px / var(--zoom,1), 18px);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;display:flex;overflow:hidden}.sch-portal__label{text-overflow:ellipsis;color:var(--sch-text);overflow:hidden}.sch-portal:hover,.sch-portal.is-selected{border-style:solid;border-color:var(--sch-sel)}.sch-note{border:var(--sch-hair) dashed var(--sch-inset);width:100%;height:100%;color:var(--sch-dim);font:400 12px/1.5 var(--sch-font);white-space:pre-wrap;padding:10px 12px;overflow:hidden}.sch-note.is-selected{border-color:var(--sch-sel)}.sch-note__text[data-sized]{font-size:var(--label-size)}.sch-wire__line{fill:none;stroke:#8a8a8a;stroke-width:1.25px;vector-effect:non-scaling-stroke}.sch-wire--batch .sch-wire__line{stroke-dasharray:10 4}.sch-wire--dependency .sch-wire__line{stroke:#4a4a4a;stroke-dasharray:2 5}.react-flow__edge:hover .sch-wire__line{stroke:#b0b0b0}.sch-wire.is-selected .sch-wire__line{stroke:var(--sch-sel)}.sch-wire__end{fill:var(--sch-port)}.sch-wire.is-selected .sch-wire__end{fill:var(--sch-text-hi)}.sch-pulse__dot{fill:var(--sch-pulse)}.sch-pulse__glow{fill:var(--sch-pulse);opacity:.16}.sch-wire__label{pointer-events:all;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:var(--sch-bg);color:#8a8a8a;max-width:260px;font:400 11px/16px var(--sch-font);font-variant-numeric:tabular-nums;padding:0 5px;position:absolute;overflow:hidden}.sch-wire__label:hover{color:var(--sch-text)}.sch-wire__label.is-selected{color:var(--sch-text-hi);outline:1px solid var(--sch-line)}.sch-wire__label--empty{color:var(--sch-faint)}.canvas[data-skin=schematic][data-lod=mid] .sch-card{font-size:14px}.canvas[data-skin=schematic][data-lod=mid] .sch-card__label{line-height:17px}.canvas[data-skin=schematic][data-lod=mid] .sch-card__detail,.canvas[data-skin=schematic][data-lod=mid] .sch-chip{display:none}.canvas[data-skin=schematic][data-lod=mid] .sch-wire__label{font-size:13px;line-height:18px}.canvas[data-skin=schematic][data-lod=mid] .sch-frame__tab{font-size:15px}.canvas[data-skin=schematic][data-lod=far] .sch-card{white-space:normal;font-size:19px;line-height:21px}.canvas[data-skin=schematic][data-lod=far] .sch-card__label{line-height:21px}.canvas[data-skin=schematic][data-lod=far] .sch-tools,.canvas[data-skin=schematic][data-lod=far] .sch-frame__meta,.canvas[data-skin=schematic][data-lod=far] .sch-card__detail,.canvas[data-skin=schematic][data-lod=far] .sch-chip,.canvas[data-skin=schematic][data-lod=far] .sch-wire__label:not(.is-selected){display:none}.canvas[data-skin=schematic][data-lod=far] .sch-card__icon svg{width:22px;height:22px}.canvas[data-skin=schematic][data-lod=far] .sch-frame__tab{font-size:22px;line-height:28px}.canvas[data-skin=schematic][data-lod=far] .sch-note{font-size:18px}.canvas[data-skin=schematic][data-lod=far] .sch-card__count{color:var(--sch-dim);font-size:17px}.canvas[data-skin=schematic][data-lod=far] .sch-wire__line{stroke:#b0b0b0;stroke-width:1.5px}.canvas[data-skin=schematic][data-lod=far] .sch-wire--dependency .sch-wire__line{stroke:#666}
