.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--brand: #0c7c8c;--brand-dark: #0a6470;--bg: #f4f6f7;--panel: #ffffff;--panel-2: #f2f6f7;--border: #e2e8ea;--text: #1b2a2e;--muted: #6b7c80;--ok: #138a5e;--err: #c0392b;--warn: #b7791f;--brand-soft: #eaf4f5;--ok-soft: #e3f3ec;--err-soft: #fbe6e3;--warn-soft: #fdf2dc;--c-process: #0c7c8c;--c-profile: #6b4b9a;--c-map: #2c7be5;--c-connection: #b7791f;--c-operation: #1f7a4d;--mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--shadow-1: 0 1px 2px rgba(11, 37, 48, .05), 0 1px 3px rgba(11, 37, 48, .07);--shadow-2: 0 3px 10px rgba(11, 37, 48, .09), 0 1px 3px rgba(11, 37, 48, .06);--shadow-3: 0 14px 40px rgba(11, 37, 48, .22);--ring: color-mix(in srgb, var(--brand) 24%, transparent)}[data-theme=dark]{color-scheme:dark;--brand: #2ba4b5;--brand-dark: #1f8a99;--bg: #0f1518;--panel: #172025;--panel-2: #1d282e;--border: #2b3a40;--text: #dce7ea;--muted: #8ba1a6;--ok: #2fbf85;--err: #e06552;--warn: #d9a04a;--brand-soft: rgba(43, 164, 181, .16);--ok-soft: rgba(47, 191, 133, .16);--err-soft: rgba(224, 101, 82, .16);--warn-soft: rgba(217, 160, 74, .16);--c-process: #3db4c4;--c-profile: #a98bd6;--c-map: #6ba5f0;--c-connection: #d9a04a;--c-operation: #4ec48b;--shadow-1: 0 1px 2px rgba(0, 0, 0, .28), 0 1px 3px rgba(0, 0, 0, .22);--shadow-2: 0 3px 10px rgba(0, 0, 0, .34), 0 1px 3px rgba(0, 0, 0, .24);--shadow-3: 0 14px 40px rgba(0, 0, 0, .55);--ring: color-mix(in srgb, var(--brand) 32%, transparent)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--text);background:var(--bg);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topnav{display:flex;align-items:center;background:linear-gradient(180deg,#11333a,#0e2a30 55%,#0c262c);color:#cfe3e6;height:52px;flex-shrink:0;padding:0 18px;border-bottom:1px solid rgba(43,164,181,.28)}.topnav .brand:before{content:"⬡";color:var(--brand);font-size:17px;font-weight:400;margin-right:7px;vertical-align:-1px}.topnav .brand{font-weight:700;font-size:18px;color:#fff;letter-spacing:.5px;margin-right:26px}.topnav .brand span{color:var(--brand)}.topnav .brand .ver{color:#ffffff80;font-weight:500;font-size:11px;letter-spacing:0;margin-left:8px;vertical-align:middle}.topnav .brand .env-badge{margin-left:8px;vertical-align:middle;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:#ffffff29;color:#fff}.topnav .brand .env-badge.env-prod{background:#b3261e}.topnav .brand .env-badge.env-qa{background:#b26a00}.topnav .brand .env-badge.env-dev{background:#1f7a4d}.topnav nav{display:flex;height:100%}.topnav nav button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:#cfe3e6;padding:0 16px;font-size:14px;cursor:pointer;display:flex;gap:8px;align-items:center;height:100%;border-bottom:2px solid transparent;font-family:var(--sans)}.topnav nav button:hover{background:#ffffff0f}.topnav nav button.active{color:#fff;font-weight:600;border-bottom-color:var(--brand);background:#ffffff0a}.topnav nav .nav-menu{position:relative;display:inline-flex;height:100%}.topnav nav .nav-menu-list{position:absolute;top:100%;left:0;z-index:60;min-width:190px;background:var(--panel);border:1px solid var(--border);border-radius:0 0 8px 8px;box-shadow:0 10px 28px #00000038;padding:4px}.topnav nav .nav-menu-list button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:8px;width:100%;height:auto;text-align:left;border:none;background:none;cursor:pointer;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--text);letter-spacing:normal;text-transform:none}.topnav nav .nav-menu-list button:hover{background:var(--panel-2);color:var(--text)}.topnav nav .nav-menu-list button.on{background:var(--brand-soft);font-weight:600}.topnav .spacer{flex:1}.topnav .status{font-size:12px;color:#8fb0b5;font-family:var(--mono)}.topnav .dot{color:var(--ok)}.main{flex:1;overflow:auto;display:flex;flex-direction:column}.topbar{padding:18px 28px;border-bottom:1px solid var(--border);background:var(--panel);display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:18px;margin:0}.topbar .sub{color:var(--muted);font-size:13px;margin-top:2px}.content{padding:24px 28px;flex:1}.content-flush{padding:0;display:flex;flex-direction:column;min-height:0}.row{display:flex;gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:600}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.err{background:var(--err-soft);color:var(--err)}.pill.muted{background:var(--panel-2);color:var(--muted)}button.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans)}button.btn:hover{background:var(--brand-dark)}button.btn.ghost{background:transparent;color:var(--brand)}button.btn.ghost:hover{background:var(--brand-soft)}button.btn.danger{border-color:var(--err);background:transparent;color:var(--err)}button.btn.danger:hover{background:var(--err-soft)}button.btn:disabled{opacity:.5;cursor:not-allowed}label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 4px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:7px;font-size:13px;font-family:var(--sans);background:var(--panel)}textarea{font-family:var(--mono);resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid var(--ring);border-color:var(--brand)}select option{background:var(--panel);color:var(--text)}select optgroup{background:var(--panel);color:var(--brand);font-style:normal;font-weight:700}select optgroup>option{color:var(--text);font-weight:400;padding-left:12px}select option:disabled{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--panel-2)}.empty{color:var(--muted);padding:40px;text-align:center}.banner{padding:10px 14px;border-radius:7px;margin-bottom:14px;font-size:13px}.banner.err{background:var(--err-soft);color:var(--err)}.banner.info{background:var(--brand-soft);color:var(--brand-dark)}.designer{display:flex;flex:1;min-height:0;min-width:0}.flows-tree{width:220px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;overflow:hidden}.flows-tree-head{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.tree-search{margin:0 10px 8px;width:calc(100% - 20px);padding:6px 8px;font-size:12px}.flows-tree-body{flex:1;overflow:auto;padding-bottom:8px}.tree-folder,.tree-flow{display:block;width:100%;text-align:left;background:none;border:none;padding:6px 8px;font-size:13px;cursor:pointer;font-family:var(--sans);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-folder{font-weight:600;color:var(--muted)}.tree-folder:hover,.tree-flow:hover{background:var(--panel-2)}.tree-flow.active{background:var(--brand);color:#fff;font-weight:600}.tree-folder .tw,.tree-flow .tw{display:inline-block;width:12px;color:var(--muted);font-size:10px}.tree-flow.active .tw{color:#cfe3e6}.tree-folder-row{position:relative;display:flex;align-items:center}.tree-folder-row .tree-folder{flex:1;min-width:0}.tree-folder-row:hover{background:var(--panel-2)}.tree-count{float:right;margin-right:4px;font-size:11px;font-weight:400;color:var(--muted)}.tree-kebab{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--muted);font-size:16px;line-height:1;padding:2px 8px;opacity:0;border-radius:4px}.tree-folder-row:hover .tree-kebab{opacity:1}.tree-kebab:hover{background:var(--brand-soft);color:var(--text)}.tree-menu{position:absolute;top:100%;right:4px;z-index:20;min-width:140px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #00000024;padding:4px}.tree-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 10px;font-size:13px;border-radius:5px;cursor:pointer;color:var(--text);font-family:var(--sans)}.tree-menu button:hover{background:var(--panel-2)}.tree-menu button.danger{color:#b42318}.tree-menu button.danger:hover{background:var(--err-soft)}.tree-children{position:relative}.tree-children:before{content:"";position:absolute;top:0;bottom:0;left:var(--guide, 14px);width:1px;background:var(--border)}.tree-group{display:flex;align-items:center;gap:4px;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);opacity:.8;padding:9px 8px 3px;-webkit-user-select:none;user-select:none}.tree-group:hover{color:var(--brand);opacity:1}.tree-group .tw{display:inline-block;width:10px;font-size:9px;color:var(--muted)}.tree-item{position:relative;display:flex;align-items:center}.tree-item .tree-flow{flex:1;min-width:0}.tree-item-kebab{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--muted);padding:2px 7px;font-size:15px;line-height:1;border-radius:4px;opacity:.45}.tree-item:hover .tree-item-kebab{opacity:1}.tree-item-kebab:hover{background:var(--brand-soft);color:var(--text)}.tree-head-actions{display:flex;gap:4px}.tree-head-actions .btn{padding:2px 8px;font-size:12px}.palette{width:200px;border-right:1px solid var(--border);background:var(--panel);padding:16px;flex-shrink:0}.palette h3{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.4px;margin:0}.palette-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.palette-toggle,.palette-reopen{background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--muted);padding:1px 7px;font-size:13px;line-height:1.4}.palette-toggle:hover,.palette-reopen:hover{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}.palette-collapsed{flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);padding:12px 6px;display:flex;justify-content:center}.palette .shape{border:1px solid var(--border);border-radius:7px;padding:10px;margin-bottom:8px;font-size:13px;display:flex;gap:8px;align-items:center;cursor:grab;background:var(--panel-2)}.palette-search{width:100%;margin:8px 0;padding:6px 8px;font-size:12px}.palette-tabs{display:flex;gap:2px;margin-bottom:10px;border-bottom:1px solid var(--border)}.palette-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;padding:6px 4px;cursor:pointer;font-size:12px;color:var(--muted)}.palette-tab:hover{color:var(--brand)}.palette-tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.component-view{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--panel)}.build-main{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.build-body{flex:1;min-height:0;display:flex}.build-pane-process{flex:1;min-width:0;display:flex;flex-direction:column}.build-pane-body{flex:1;min-height:0;min-width:0;display:flex}.build-tabs{display:flex;align-items:center;gap:2px;flex-shrink:0;overflow-x:auto;padding:5px 8px 0;background:var(--panel-2);border-bottom:1px solid var(--border)}.build-home-btn{flex-shrink:0;align-self:stretch;margin-bottom:4px;display:flex;align-items:center;justify-content:center;width:30px;border:1px solid transparent;background:transparent;border-radius:8px;cursor:pointer;font-size:17px;line-height:1;color:var(--text, #15333a)}.build-home-btn:hover:not(.active){background:var(--brand-soft)}.build-home-btn.active{background:var(--panel);border-color:var(--border);color:var(--brand)}.build-tab{display:flex;align-items:center;gap:7px;white-space:nowrap;border:1px solid transparent;border-bottom:none;background:transparent;padding:6px 12px;border-radius:8px 8px 0 0;cursor:pointer;font-size:13px;color:var(--text, #15333a)}.build-tab:hover:not(.active){background:var(--brand-soft)}.build-tab.active{background:var(--panel);border-color:var(--border);font-weight:600}.build-tab{border-top:3px solid transparent;--tab-c: var(--brand)}.build-tab.tab-process{--tab-c: var(--c-process)}.build-tab.tab-profile{--tab-c: var(--c-profile)}.build-tab.tab-map{--tab-c: var(--c-map)}.build-tab.tab-connection{--tab-c: var(--c-connection)}.build-tab.tab-operation{--tab-c: var(--c-operation)}.build-tab{border-top-color:color-mix(in srgb,var(--tab-c) 35%,transparent)}.build-tab.active{border-top-color:var(--tab-c)}.build-tab .build-tab-ico{color:var(--tab-c)}.build-tab-ico{font-size:12px}.build-tab-name{max-width:220px;overflow:hidden;text-overflow:ellipsis}.build-tab-x{font-size:10px;color:var(--muted);padding:1px 5px;border-radius:4px;margin-left:2px}.build-tab-x:hover{background:var(--err, #dc2626);color:#fff}.profile-editor{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.pe-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.pe-title{flex:1;min-width:220px}.pe-name{font-size:16px;font-weight:600;width:100%;max-width:460px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel)}.pe-name:focus{border-color:var(--brand)}.pe-name:disabled{color:var(--text);opacity:1;background:transparent;border-color:transparent}.pe-title .sub{color:var(--muted);font-size:12px;padding-left:6px;margin-top:4px}.req-hint{color:var(--warn, #b45309);font-weight:600}.pe-head-right{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.pe-field{display:flex;flex-direction:column;gap:2px}.pe-field label{font-size:11px;color:var(--muted);margin:0}.pe-field select{width:auto;min-width:120px}.pe-body{flex:1;min-height:0;padding:16px 20px;display:flex;flex-direction:column;overflow-y:auto}.pe-flat{border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:12px;background:var(--surface, #fafafa)}.pe-flat-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.pe-flat-form{display:flex;flex-direction:column;gap:10px;max-width:520px}.pe-flat-form>label{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:12px;font-size:12px;font-weight:600}.pe-flat-form select,.pe-flat-form input[type=text],.pe-flat-form input[type=number]{padding:4px 6px;font-size:12px;font-weight:400;width:100%;max-width:280px}.pe-flat-form input[type=checkbox]{width:auto;justify-self:start}.pe-flat-controls{display:flex;gap:6px;align-items:center;max-width:280px}.pe-flat-controls select{flex:1}.pe-flat-char{width:60px}.pe-flat-form .pe-flat-char{width:70px}.pf-req{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted)}.pe-flat-widths{width:100%;padding:4px 6px;font-size:12px}.pfx-input{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;background:var(--input-bg, transparent);padding-left:9px}.pfx-input .pfx{font-family:var(--mono, monospace);font-size:12.5px;color:var(--text, inherit);-webkit-user-select:none;user-select:none;pointer-events:none}.pfx-input>input{border:none!important;outline:none!important;box-shadow:none!important;background:transparent!important;flex:1;min-width:0;padding:6px 8px 6px 2px;font-family:var(--mono, monospace)}.pfx-input:focus-within{border-color:var(--accent, #0ea5e9)}.ppd-form{display:flex;flex-direction:column;min-height:0}.ppd-row{display:grid;grid-template-columns:150px minmax(0,1fr);column-gap:18px;row-gap:3px;align-items:center;margin-bottom:13px}.ppd-row>.ppd-label{font-size:12px;font-weight:600;align-self:center}.ppd-row .hint{grid-column:2;font-size:11px;color:var(--muted);margin:0}.ppd-row select,.ppd-row input:not([type=checkbox]){max-width:320px;padding:4px 7px;font-size:12.5px}.ppd-row input[type=checkbox]{width:auto}.ppd-check{display:flex;gap:8px;align-items:center;font-size:12.5px;font-weight:400}.ppd-key{font-family:var(--mono, monospace);font-size:12px;color:var(--muted)}.ppd-toolbar{display:flex;gap:2px;align-items:center}.ppd-toolbar .icon-btn.add{color:#4da3ff}.ppd-toolbar .icon-btn.del{color:#e05555}.log-mode{padding:3px 6px;font-size:12px;width:auto}.pf-json-root{display:flex;align-items:center;gap:7px;padding:5px 8px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;border-radius:6px}.pf-json-root:hover{border-color:var(--border)}.pf-json-root.on{border-color:var(--accent, #0ea5e9);color:var(--text, inherit)}.pf-json-root-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--border);border-radius:4px;font-size:10px;font-family:ui-monospace,monospace;color:var(--accent, #0ea5e9)}.ptd-list{display:flex;flex-direction:column;gap:8px}.ptd-card{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface, transparent);cursor:pointer;font:inherit;color:inherit}.ptd-card:hover{border-color:var(--accent, #0ea5e9);background:color-mix(in srgb,var(--accent, #0ea5e9) 8%,transparent)}.ptd-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--border);font-size:13px;flex-shrink:0}.pe-type-pill{align-self:flex-start;padding:5px 10px;font-size:12px;white-space:nowrap}.pe-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:12px}.pe-tabs button{border:none;background:none;cursor:pointer;padding:6px 12px;font-size:13px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.pe-tabs button:hover{color:var(--text)}.pe-tabs button.active{color:var(--brand, #2563eb);border-bottom-color:var(--brand, #2563eb)}.pe-nsv{flex:1;min-height:0;display:flex;gap:18px}.pe-nsv-list{width:340px;flex:none;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.pe-nsv-add{align-self:flex-start;margin-bottom:6px}.pe-nsv-none{font-size:12px;color:var(--muted);border:1px dashed var(--border);border-radius:8px;padding:12px}.pe-nsv-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;cursor:pointer;background:var(--panel-2)}.pe-nsv-row:hover{background:var(--brand-soft)}.pe-nsv-row.pe-nsv-sel{outline:1px solid var(--brand, #2563eb);background:var(--brand-soft)}.pe-nsv-dot{width:8px;height:8px;border-radius:50%;background:#57ab5a;flex:none}.pe-nsv-dot-empty{background:var(--muted)}.pe-nsv-name{flex:1;min-width:0;font-size:13px;font-weight:600;display:flex;flex-direction:column}.pe-nsv-name .pe-nsv-uri{font-size:11px;font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pe-nsv-count{font-size:11px;color:var(--muted);background:var(--brand-soft);border-radius:10px;padding:1px 8px;flex:none}.pe-nsv-det{flex:1}.pe-nsv-err{font-size:11px;color:var(--danger, #c0392b);margin-top:3px}.pe-nsv-members{margin-top:16px}.pe-nsv-members-title{font-size:12px;font-weight:600;margin-bottom:6px}.pe-nsv-chiprow{display:flex;flex-wrap:wrap;gap:6px}.pe-nsv-more{font-size:11px;color:var(--muted);align-self:center}.pe-grid{flex:1;min-height:0;display:flex;gap:18px}.pe-col{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.pe-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;min-height:30px}.pe-col-head label{font-size:12px;font-weight:600;margin:0}.pe-sample-actions{display:flex;align-items:center;gap:8px}.pe-toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.pe-toggle button{border:none;background:var(--panel);padding:4px 12px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.pe-toggle button+button{border-left:1px solid var(--border)}.pe-toggle button.active{background:var(--brand);color:#fff}.pe-toggle button:disabled{color:#c3cdd0;cursor:not-allowed}.pe-preview{flex:1;min-height:160px;margin:0;overflow:auto;background:#0f1b1f;color:#d7e3e5;border-radius:7px;padding:12px;font-family:var(--mono);font-size:13px;white-space:pre}.pe-delim{width:64px;padding:4px 6px}.pe-src{width:auto;padding:4px 6px;font-size:12px}.pe-inline-check{display:flex;align-items:center;gap:5px;font-size:12px;margin:0;white-space:nowrap}.pe-inline-check input{width:auto}.profile-tree.pe-tree{flex:1;min-height:160px;max-height:none}.pe-sample{flex:1;min-height:160px;width:100%;font-family:var(--mono);font-size:13px;resize:none}.link-btn{background:none;border:none;color:var(--brand);cursor:pointer;padding:0;font:inherit;text-decoration:underline}@media(max-width:900px){.pe-head{align-items:stretch}.pe-title{min-width:100%}.pe-head-right{width:100%;justify-content:flex-start}.pe-body{overflow:auto}.pe-grid{flex-direction:column;flex:none}.pe-col{flex:none}.profile-tree.pe-tree{flex:none;min-height:200px;max-height:340px}.pe-sample,.pe-preview{flex:none;min-height:180px;max-height:340px}}.build-home{flex:1;min-width:0;overflow:auto;background:var(--bg)}.build-home-inner{max-width:880px;margin:0 auto;padding:40px 28px}.build-home h1{font-size:22px;margin:0 0 6px}.build-home>.build-home-inner>p{margin:0 0 22px}.bh-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:30px}.bh-card{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--panel);cursor:pointer}.bh-card:hover{border-color:var(--brand);box-shadow:0 2px 10px #0000000d}.bh-card.primary{border-color:var(--brand);background:var(--brand-soft)}.bh-card .bh-ico{font-size:20px}.bh-card .bh-card-title{font-weight:700;font-size:14px}.bh-recents h2{font-size:15px;margin:0 0 8px}.bh-recents table{width:100%}.bh-recents tr.clickable{cursor:pointer}.bh-recents tr.clickable:hover{background:var(--panel-2)}.canvas-wrap{flex:1;min-width:0;display:flex;flex-direction:column}.canvas-flow{flex:1;min-height:0}.designer-toolbar{padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel);display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex-shrink:0}.designer-name{font-weight:700;font-size:14px;color:var(--text);border:1px solid transparent;background:transparent;border-radius:6px;padding:3px 6px;width:180px;max-width:240px}.designer-name:hover:not(:read-only){border-color:var(--border)}.designer-name:focus{outline:none;border-color:var(--brand);background:var(--panel)}.designer-name:read-only{cursor:default}.designer-name::placeholder{color:var(--muted);font-weight:500}.config-panel{width:320px;border-left:1px solid var(--border);background:var(--panel);padding:18px;flex-shrink:0;overflow:auto}.config-panel .section{border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.config-panel .section h4{margin:0 0 8px;font-size:13px}.radio-row{display:flex;flex-direction:column;gap:6px}.radio-row .radio{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text);margin:0;text-transform:none;letter-spacing:0;font-size:13px}.radio-row .radio input{width:auto}.config-panel .kv{display:flex;justify-content:space-between;font-size:12px;padding:3px 0}.config-panel .kv span:first-child{color:var(--muted)}.rf-node{position:relative;width:44px;height:44px;--shape-c: var(--brand)}.rf-tile{width:48px;height:48px;border-radius:11px;border:2px solid var(--shape-c);background:var(--panel);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a}.rf-tile-ico{color:var(--shape-c);display:block}.rf-node.selected .rf-tile{box-shadow:0 0 0 3px var(--brand-soft),0 1px 3px #0000001a}.rf-caption{position:absolute;top:48px;left:50%;transform:translate(-50%);width:132px;text-align:center;font-size:11px;font-weight:600;line-height:1.25;color:var(--text);pointer-events:none}.rf-caption .ntype-link{pointer-events:auto}.rf-caption .rf-name{overflow-wrap:break-word}.rf-scrollbar{position:absolute;z-index:6;background:#0f172a0f;border-radius:5px}.rf-scrollbar-h{left:8px;right:18px;bottom:4px;height:9px}.rf-scrollbar-v{top:8px;bottom:18px;right:4px;width:9px}.rf-scrollthumb{position:absolute;background:#0f172a47;border-radius:5px;cursor:grab;min-width:24px;min-height:24px;touch-action:none}.rf-scrollbar-h .rf-scrollthumb{top:0;bottom:0}.rf-scrollbar-v .rf-scrollthumb{left:0;right:0}.rf-scrollthumb:hover,.rf-scrollthumb:active{background:#0f172a73}.rf-out-label{position:absolute;left:calc(100% + 9px);transform:translateY(-50%);font-family:var(--mono);font-size:10px;font-weight:600;color:var(--muted);white-space:nowrap;pointer-events:none}.rf-branch-link{position:absolute;left:100%;top:22px;width:22px;height:1px;background:#c2ccd6}.rf-tails{position:absolute;left:calc(100% + 22px);top:22px;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px}.rf-tails-spine{position:absolute;left:0;top:9px;bottom:9px;width:1px;background:#c2ccd6}.rf-tail{position:relative;display:flex;align-items:center;gap:6px;height:18px;padding-left:16px}.rf-tail:before{content:"";position:absolute;left:0;top:50%;width:16px;height:1px;background:#c2ccd6}.rf-tail-num{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--muted);min-width:16px;text-align:right}.react-flow__handle{width:10px;height:10px;background:#0c7c8c;border:2px solid #fff}.rf-node .react-flow__handle{z-index:3}.react-flow__handle-right:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%}.react-flow__handle-left:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%}.rf-node .react-flow__handle.target.rf-in-wired{pointer-events:all}.rf-node .react-flow__handle.target:hover{box-shadow:0 0 0 4px var(--brand-soft)}.react-flow__edgeupdater{cursor:grab}.react-flow__edge.updating .react-flow__edge-path{stroke-width:2.4}.react-flow__handle.connectionindicator{cursor:crosshair}.rf-tail .react-flow__handle{position:relative;transform:none}.rf-node .ntype{font-family:var(--mono);font-size:10px;color:var(--muted);font-weight:400}.rf-node.start{--shape-c: var(--ok)}.rf-node.decision{--shape-c: var(--warn)}.rf-node.route{--shape-c: #d97706}.rf-node.branch{--shape-c: #2563eb}.rf-node.return{--shape-c: #7c3aed}.rf-node.try{--shape-c: #8b5cf6}.rf-node.exception{--shape-c: #dc2626}.rf-node.stop{--shape-c: var(--muted)}.rf-node.dbg-ok .rf-tile{border-color:var(--ok);box-shadow:0 0 0 3px #138a5e40}.rf-node.dbg-error .rf-tile{border-color:var(--err);box-shadow:0 0 0 3px #c0392b4d;background:var(--err-soft)}.rf-node.dbg-skipped{opacity:.45}.rf-node.dbg-skipped .rf-tile{border-style:dashed}.rf-badge{position:absolute;top:-9px;right:-9px;width:18px;height:18px;border-radius:50%;font-size:11px;line-height:18px;color:#fff;font-weight:700}.rf-badge.ok{background:var(--ok)}.rf-badge.error{background:var(--err)}.debug-panel{flex-shrink:0;height:240px;border-top:2px solid var(--brand);background:var(--panel);display:flex;overflow:hidden}.debug-steps{width:280px;flex-shrink:0;border-right:1px solid var(--border);overflow:auto;background:var(--panel-2)}.debug-steps-head,.debug-tabs{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.debug-steps-head{padding:8px 12px;border-bottom:1px solid var(--border)}.debug-step{width:100%;display:grid;grid-template-columns:18px 1fr auto;grid-template-areas:"dot nm ms" "dot ty ty";gap:0 8px;align-items:center;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);padding:8px 12px;cursor:pointer;font-family:var(--sans)}.debug-step:hover{background:var(--panel-2)}.debug-step.sel{background:var(--brand-soft)}.debug-step .dot{grid-area:dot;font-weight:700}.debug-step .dot.ok{color:var(--ok)}.debug-step .dot.error{color:var(--err)}.debug-step .nm{grid-area:nm;font-size:13px;font-weight:600}.debug-step .ty{grid-area:ty;font-size:11px;color:var(--muted);font-family:var(--mono)}.debug-step .ms{grid-area:ms;font-size:11px;color:var(--muted)}.debug-error{padding:8px 12px;font-size:12px;color:var(--err)}.debug-detail{flex:1;min-width:0;display:flex;flex-direction:column}.debug-tabs{display:flex;gap:4px;padding:6px 10px;border-bottom:1px solid var(--border);align-items:center}.debug-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-family:var(--sans)}.debug-tabs button.on{background:var(--brand);color:#fff}.debug-body{flex:1;overflow:auto;padding:10px 14px}.debug-log td{vertical-align:top}.debug-log .mono{font-size:12px;white-space:pre-wrap;word-break:break-word}.debug-log tr.doc-sep td{padding:8px 8px 4px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--brand) 4%,transparent)}.debug-data{display:grid;grid-template-columns:1fr 1fr;gap:14px}.debug-data h4{margin:0 0 6px;font-size:12px;color:var(--muted)}.debug-data pre{margin:0;background:#0e2a30;color:#d6ebee;padding:12px;border-radius:8px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:150px;overflow:auto}.step-data{width:100%;border-collapse:collapse;font-size:12.5px}.step-data thead th{text-align:left;background:#0e2a30;color:#d6ebee;font-weight:600;padding:7px 12px}.step-data thead th:last-child{text-align:right;width:120px}.step-data tbody td{padding:6px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.step-data tbody tr:hover{background:#0e2a300d}.step-data .kb{text-align:right;font-family:var(--mono);color:#2e7d6b}.doc-view{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;background:var(--panel);border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--brand);padding:0}.doc-view:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.doc-glyph{font-size:14px;line-height:1}.doc-count{color:var(--brand);font-weight:600}.doc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e2a3073;display:flex;align-items:center;justify-content:center;z-index:70}.doc-modal{background:var(--panel);border-radius:10px;width:min(760px,92vw);height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000004d;overflow:hidden}.doc-modal-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px}.doc-modal-x{background:none;border:none;cursor:pointer;font-size:15px;color:var(--muted)}.doc-modal-x:hover{color:var(--text)}.doc-modal-sub{padding:6px 14px 0;font-size:11.5px;color:var(--muted)}.doc-code{margin:8px 0 0;padding:10px 0;overflow:auto;flex:1;min-height:80px;background:#0e2a30;color:#d6ebee;font-family:var(--mono);font-size:12px;line-height:1.55}.doc-line{display:flex;align-items:center}.doc-clip-note{margin:6px 10px 2px;padding:6px 10px;border-radius:6px;background:#17414a;color:#bfe0e6;font-size:11px;font-style:italic}.doc-line:hover{background:#ffffff0a}.doc-tog{flex:0 0 13px;width:13px;height:13px;margin:0 5px 0 4px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#16323a;border:1px solid #3a5b62;border-radius:2px;color:#cfe6ea;font-size:12px;line-height:1;cursor:pointer}.doc-tog:hover{background:var(--brand);border-color:var(--brand);color:#fff}.doc-tog-sp{flex:0 0 13px;margin:0 5px 0 4px}.doc-ln{flex:0 0 38px;text-align:right;padding-right:12px;color:#5b8a92;-webkit-user-select:none;user-select:none;white-space:pre}.doc-lc{flex:1;white-space:pre;padding-right:14px}.doc-modal-foot{display:flex;flex-direction:column;gap:6px;padding:8px 14px;border-top:1px solid var(--border);font-size:12px}.doc-foot-row{display:flex;align-items:center;gap:12px}.doc-foot-row .btn{margin-left:auto;padding:5px 12px}.doc-fmt{display:flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer}.doc-link{background:none;border:none;padding:0;cursor:pointer;color:var(--brand);text-decoration:underline;font-size:12px}.doc-size{margin-left:auto;color:var(--muted);white-space:nowrap}.doc-switch{position:relative;display:inline-block;width:30px;height:16px;flex:0 0 30px}.doc-switch input{position:absolute;opacity:0;width:0;height:0;margin:0}.doc-switch-knob{position:absolute;top:0;right:0;bottom:0;left:0;background:#4a6b72;border-radius:999px;transition:background .15s}.doc-switch-knob:before{content:"";position:absolute;width:12px;height:12px;left:2px;top:2px;background:var(--panel);border-radius:50%;transition:transform .15s}.doc-switch.on .doc-switch-knob{background:var(--brand)}.doc-switch.on .doc-switch-knob:before{transform:translate(14px)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e2a3066;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border-radius:12px;padding:24px;width:480px;max-height:86vh;overflow:auto;box-shadow:0 12px 40px #00000040}.modal h2{margin:0 0 4px;font-size:17px}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.wizard-steps{display:flex;gap:18px;margin:8px 0 4px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border);padding-bottom:8px}.wizard-steps span{font-weight:600}.wizard-steps span.active{color:var(--brand)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-top:8px}.tabs .tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--muted)}.tabs .tab:hover{color:var(--brand)}.tabs .tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.dropdown-item.danger{color:var(--err)}.dropdown-item.danger:hover{background:var(--err-soft)}.pkg-picker{display:flex;gap:12px;align-items:stretch}.pkg-picker .pkg-tree{flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;padding:8px;max-height:360px;overflow:auto}.pkg-picker .pkg-selected{flex:1.3;min-width:0;border:1px solid var(--border);border-radius:8px;overflow:auto;max-height:360px}.pkg-picker .pkg-selected table{margin:0}.pkg-tree-row{display:flex;align-items:center;gap:6px;padding:3px 2px;font-size:13px;white-space:nowrap;border-radius:4px}.pkg-tree-row:hover{background:var(--panel-2)}.pkg-tree-caret{cursor:pointer;width:14px;text-align:center;color:var(--muted);-webkit-user-select:none;user-select:none;flex:0 0 auto}.pkg-tree-folder{cursor:pointer;font-weight:600}.pkg-tree-flow{color:var(--brand-dark)}.toast{position:fixed;bottom:24px;right:24px;background:#0e2a30;color:#fff;padding:12px 18px;border-radius:8px;font-size:13px;box-shadow:0 6px 20px #0000004d;z-index:60}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.draft{background:var(--panel-2);color:var(--muted)}.pill.ver{background:var(--brand-soft);color:#2c5b87}button.btn.primary{border-color:var(--ok);background:var(--ok)}button.btn.primary:hover{background:#0f6f4c}button.btn.sm{padding:4px 10px;font-size:12px}button.btn.ghost.danger{border-color:var(--err);color:var(--err);background:transparent}button.btn.ghost.danger:hover{background:var(--err-soft)}.tree-type-icon{font-size:12px}.rt-layout{display:flex;gap:16px;align-items:flex-start;margin-top:12px}.rt-tree{width:260px;flex-shrink:0;padding:8px;max-height:72vh;overflow:auto}.rt-node{display:block;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:6px 8px;border-radius:6px;font-size:13px;color:inherit}.rt-node:hover{background:var(--panel-2)}.rt-node.on{background:var(--brand-soft);font-weight:600}.rt-child{padding-left:22px}.rt-group{margin-top:2px}.rt-main{flex:1;min-width:0}.rt-dot{font-size:10px;margin-right:4px}.rt-dot.online{color:var(--ok)}.rt-dot.offline{color:var(--err)}.rt-dot.pending{color:#94a3b8}.rt-cards{display:flex;flex-wrap:wrap;gap:12px}.rt-card{width:220px;text-align:left;border:1px solid var(--border);border-radius:8px;padding:14px;background:var(--panel);cursor:pointer}.rt-card:hover{border-color:#2c7be5}.rt-card-title{font-weight:600;font-size:15px;color:#2c5b87;margin-bottom:8px}.rt-card-row{font-size:12px;margin:3px 0}.rt-addcard{display:flex;align-items:center;justify-content:center;font-size:32px;color:#94a3b8;min-height:96px}.rt-code{font-size:12px;white-space:pre-wrap;background:#0e2a30;color:#d6ebee;padding:10px;border-radius:6px}.dropdown-item{display:block;width:100%;text-align:left;border:none;background:none;padding:8px 12px;cursor:pointer;font-size:13px}.dropdown-item:hover{background:var(--panel-2)}.link-btn{border:none;background:none;color:#2c7be5;cursor:pointer;padding:0;font-size:13px}.flow-dot{font-size:9px;vertical-align:middle}.flow-dot.live{color:var(--ok)}.flow-dot.warn{color:var(--warn)}.flow-dot.draft{color:#c3cdd0}.dot-status.ok{color:var(--ok)}.dot-status.err{color:var(--err)}.dot-status.running{color:#2c7be5;animation:pulse-dot 1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.25}}.env-chip{font-size:11px;padding:2px 8px;border-radius:999px;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--muted)}.env-chip.on{background:#1f7a4d;border-color:#1f7a4d;color:#fff}.env-chip:disabled{cursor:default;opacity:.6}.trig{font-size:12px;font-family:var(--mono);padding:2px 8px;border-radius:6px}.trig.trig-inbound{background:var(--brand-soft);color:#2c5b87}.trig.trig-schedule{background:#f0ecf9;color:#6b4b9a}.trig.trig-manual{background:var(--panel-2);color:var(--muted)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f171e8c;display:flex;align-items:center;justify-content:center;z-index:50}.map-editor{background:var(--panel);border-radius:10px;width:min(1100px,94vw);height:min(720px,92vh);display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.map-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #e3e9ea}.map-cols{display:grid;grid-template-columns:1fr 1.2fr 1fr;flex:1;min-height:0}.map-pane{display:flex;flex-direction:column;min-height:0;border-right:1px solid #e3e9ea}.map-pane:last-child{border-right:none}.map-pane-head{padding:8px 12px;font-weight:600;font-size:13px;color:var(--brand-dark, #0a5b68);background:var(--panel-2);border-bottom:1px solid #e3e9ea}.map-tree{overflow:auto;flex:1;padding:4px}.map-field{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:5px;font-size:13px;cursor:grab;-webkit-user-select:none;user-select:none}.map-field.drop{cursor:default}.map-field:hover{background:var(--brand-soft)}.map-field.drop:hover{background:var(--brand-soft);outline:1px dashed #0c7c8c}.map-field.used,.map-field.mapped{background:var(--ok-soft)}.map-grip{color:#b6c2c5;font-size:10px;letter-spacing:-2px}.map-field-name{flex:0 1 auto;min-width:0}.map-dot{color:#0c7c8c;font-size:9px}.map-rep{font-size:10px;font-weight:700;color:#7c3aed;letter-spacing:-1px}.map-obj{font-size:10px;font-weight:700;color:#2563eb;letter-spacing:-1px}.mp-loopdrv{font-size:10px;font-weight:600;color:#7c3aed;background:#f3eefb;border:1px solid #d9c9f0;border-radius:4px;padding:0 5px;margin-left:4px;cursor:pointer;white-space:nowrap}.mp-loopdrv:hover{background:#e9ddf7}.rev-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.rev-modal{background:var(--panel);border-radius:8px;width:min(720px,94vw);max-height:86vh;overflow:auto;box-shadow:0 10px 40px #0000004d;padding:16px 18px}.rev-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.rev-head strong{font-size:15px}.rev-x{border:none;background:transparent;font-size:15px;cursor:pointer;color:#666}.rev-meta{font-size:12px;color:var(--text);display:grid;gap:3px;margin-bottom:10px}.rev-meta code{font-size:11px;background:var(--panel-2);padding:1px 5px;border-radius:3px}.rev-k{display:inline-block;min-width:96px;color:var(--muted)}.rev-err{background:var(--err-soft);color:#b3261e;padding:6px 10px;border-radius:4px;font-size:12px;margin-bottom:8px}.rev-tablewrap{overflow-x:auto}.rev-table{width:100%;border-collapse:collapse;font-size:12px}.rev-table th{text-align:left;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}.rev-table td{padding:6px 8px;border-bottom:1px solid #f2f2f2}.rev-current{background:var(--panel-2)}.rev-badge{font-size:9px;font-weight:700;color:#7c3aed;background:#ede7f8;border-radius:3px;padding:0 4px;margin-left:6px}.rev-actions button{border:none;background:transparent;cursor:pointer;font-size:13px;padding:0 4px}.rev-actions button:disabled{opacity:.4;cursor:default}.rev-empty{color:#999;text-align:center;padding:14px}.rev-view{margin-top:12px;border:1px solid #eee;border-radius:6px}.rev-view-head{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--panel-2);font-size:12px;font-weight:600}.rev-json{margin:0;padding:10px;font-size:11px;max-height:280px;overflow:auto;background:#1e1e1e;color:#d4d4d4;border-radius:0 0 6px 6px}.rev-note{margin-top:10px;font-size:11px;color:#8a6d3b;background:var(--warn-soft);padding:6px 10px;border-radius:4px}.rev-btn{font-size:12px}.rev-banner{display:flex;align-items:center;gap:12px;margin:0 20px;padding:8px 14px;background:#4a3a1a;color:#f3e7c9;font-size:13px;border-radius:4px}.rev-banner .btn{margin-left:auto}.map-mid{background:var(--panel-2)}.sel-toolbar{position:fixed;z-index:60;transform:translate(-50%,calc(-100% - 8px));display:flex;flex-direction:column;min-width:118px;border-radius:5px;overflow:hidden;box-shadow:0 4px 14px #0000004d;font-size:11px;-webkit-user-select:none;user-select:none}.sel-toolbar-actions{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.sel-toolbar-actions button{flex:1;border:none;background:var(--panel);color:var(--fg);padding:4px 10px;cursor:pointer;font-size:11px;font-weight:500}.sel-toolbar-actions button+button{border-left:1px solid var(--line)}.sel-toolbar-actions button:hover{background:var(--panel-2)}.sel-toolbar-actions button.danger:hover{background:#7a2222;color:#fff}.paste-btn{position:fixed;z-index:60;transform:translate(-50%,-50%);background:var(--panel);color:var(--fg);border:1px solid var(--brand);border-radius:6px;padding:7px 22px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 6px 22px #00000059}.paste-btn:hover{background:var(--brand);color:#fff}.clip-banner{position:absolute;left:0;right:0;bottom:0;z-index:55;display:flex;align-items:center;gap:12px;background:#4a3a1a;color:#f3e7c9;padding:7px 16px;font-size:12.5px;border-top:1px solid #6b5424}.clip-banner .btn{margin-left:auto}.map-links{overflow:auto;flex:1;padding:6px;min-height:60px}.map-link{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:12px;border-radius:5px}.map-link:hover{background:var(--brand-soft)}.map-link-main{display:flex;align-items:center;gap:6px}.map-link-from{color:#2c5b87;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-link-arrow{color:var(--muted)}.map-link-to{color:#0a5b68;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-fn-toggle{margin-left:auto;padding:1px 7px;font-size:12px}.map-fn-toggle.has{background:#eef9f0;color:#0f6f4c;border-color:#cfe9d8}.map-link-x{padding:0 6px}.map-chain{margin:4px 0 8px 8px;padding:8px;border-left:2px solid #cfe0e3;display:flex;flex-direction:column;gap:6px}.map-fn-step{display:flex;align-items:center;gap:6px}.map-fn-order{width:16px;height:16px;flex-shrink:0;border-radius:50%;background:#0c7c8c;color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center}.map-fn-name{font-size:12px;font-weight:600;white-space:nowrap}.map-fn-arg{flex:1;min-width:50px;padding:3px 6px;font-size:12px}.map-fn-actions{display:flex;gap:2px;margin-left:auto}.map-fn-actions .btn{padding:0 5px}.map-fn-add{width:100%;font-size:12px;padding:4px 6px}.map-const,.map-preview{border-top:1px solid #e3e9ea;padding:8px}.map-code{background:#0f1b1f;color:#d7e3e5;border-radius:6px;padding:8px;font-size:12px;margin-top:8px;max-height:160px;overflow:auto;white-space:pre-wrap;word-break:break-word}.mp-page{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.mp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border)}.mp-head .pe-name{max-width:460px;font-size:16px}.mp-head-folder{display:flex;align-items:center;gap:6px}.mp-head-folder select{width:auto;min-width:130px;padding:3px 6px;font-size:12px}.mp-cols{flex:1;min-height:0;display:flex;position:relative}.mp-cols.dragging{cursor:crosshair}.mp-tree-rows{min-height:100%}.mp-pane{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border)}.mp-pane:last-of-type{border-right:none}.mp-fns{flex:1 1 auto;min-width:200px;background:var(--panel-2)}.mp-splitter{flex:0 0 6px;align-self:stretch;cursor:col-resize;background:transparent;position:relative;z-index:7;touch-action:none;-webkit-user-select:none;user-select:none}.mp-splitter:before{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:var(--border);transition:background .12s}.mp-splitter:hover:before,body.mp-resizing .mp-splitter:before{background:#0c7c8c}body.mp-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.mp-fns-head{display:flex;align-items:center;justify-content:space-between}.mp-add-fn{font-size:16px;line-height:1;padding:0 8px}.mp-fns-body{flex:1;min-height:0;padding:10px;position:relative;z-index:6;pointer-events:none;overflow:auto}.mp-fns-rows{display:flex;flex-direction:column;gap:12px;min-height:100%}.mp-fns-hint{pointer-events:none;font-size:12px;line-height:1.5;padding:8px}.mp-fn-box{pointer-events:auto;position:relative;align-self:center;width:100%;max-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 10px #0f1b1f1f;padding:8px 14px;cursor:grab;touch-action:none}.mp-fn-box.fn-dragging{cursor:grabbing;opacity:.7;box-shadow:0 6px 18px #0f1b1f40}.mp-fn-box input,.mp-fn-box select{cursor:text}.mp-fn-box select{cursor:pointer}.mp-fn-box-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.mp-fn-box-name{font-size:12px;font-weight:600}.mp-fn-box-actions{display:flex;gap:1px;flex-shrink:0}.mp-fn-box-actions .btn{padding:0 5px;font-size:12px;line-height:1.6}.mp-fn-io-row{display:flex;align-items:center;gap:6px;margin-top:5px}.mp-fn-io-row .mp-cdot.in{margin-left:-21px}.mp-fn-io-name{font-size:12px}.mp-fn-config{cursor:pointer}.mp-fn-out-row{justify-content:flex-end;margin-top:7px;padding-top:5px;border-top:1px solid var(--border)}.mp-fn-out-row .mp-fn-io-name{font-weight:600;color:var(--brand-dark, #0a5b68)}.mp-fn-out-row .mp-cdot.out{margin-right:-21px}.mp-cdot.drop-ok{box-shadow:0 0 0 3px #0c7c8c59;background:#0c7c8c}.mp-cfg-row{display:flex;align-items:center;gap:10px;margin-top:8px}.mp-cfg-row label{width:120px;flex-shrink:0;font-size:13px;color:var(--text, #15333a)}.mp-cfg-row input,.mp-cfg-row select{flex:1}.mp-pane-head{padding:8px 12px;font-weight:600;font-size:13px;color:var(--brand-dark, #0a5b68);background:var(--panel-2);border-bottom:1px solid var(--border)}.mp-automsg{font-size:12px;color:var(--brand-dark, #0a5b68);font-weight:500}.mp-required{color:#c0392b;font-weight:700;margin-left:2px}.mp-caret-r{margin-left:4px}.mp-warnings{margin:0 12px 6px;border:1px solid #e6b800;background:var(--warn-soft);border-radius:6px;padding:4px 10px;font-size:12px}.mp-warnings summary{cursor:pointer;color:#8a6d00;font-weight:600}.mp-warnings ul{margin:6px 0 2px;padding-left:18px}.mp-warnings li{margin:2px 0;color:#5c4a00}.mp-chooser{display:flex;align-items:center;justify-content:space-between;gap:8px}.mp-chooser select{width:auto;min-width:130px;padding:3px 6px;font-size:12px;font-weight:500}.mp-chooser-link{background:none;border:none;cursor:pointer;padding:0;min-width:0;font-size:13px;font-weight:600;color:var(--brand-dark, #0a5b68);max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-chooser-link:hover{text-decoration:underline}.mp-chooser-type{color:var(--muted);font-weight:400;font-size:12px}.mp-csv-opts{display:flex;align-items:center;gap:14px;padding:6px 4px 2px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.mp-csv-opts label{display:flex;align-items:center;gap:5px;cursor:default}.mp-csv-delim{width:38px;text-align:center;padding:2px 4px;font-size:12px}.mp-choose-btn{padding:2px 10px;font-size:12px}.mp-choose-row{display:flex;align-items:center;gap:6px}.mp-choose-row .btn{padding:4px 9px}.modal.mp-profile-modal{width:min(1040px,96vw);height:86vh;max-height:86vh;padding:0;overflow:hidden;display:flex;flex-direction:column}.modal.mp-profile-modal .profile-editor{flex:1;min-height:0;padding:20px}.mp-caret{border:none;background:none;cursor:pointer;color:var(--muted);width:16px;flex-shrink:0;font-size:10px;padding:0}.mp-caret-sp{width:16px;flex-shrink:0;display:inline-block}.mp-cdot{width:11px;height:11px;flex-shrink:0;border-radius:50%;background:var(--panel);border:2px solid #0c7c8c;cursor:crosshair;touch-action:none}.map-field.mp-src,.map-field.mp-tgt{position:relative;touch-action:none}.map-field.mp-tgt{cursor:default;justify-content:flex-end;text-align:right}.map-field.mp-src:after,.map-field.mp-tgt:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:var(--panel);border:2px solid #0c7c8c;opacity:0;transition:opacity .12s}.map-field.mp-src:after{right:1px}.map-field.mp-tgt:before{left:1px}.map-field.mp-src:hover:after,.map-field.mp-tgt:hover:before,.mp-cols.dragging .map-field.mp-src:after{opacity:1}.mp-cols.dragging .map-field.mp-tgt:before{opacity:.55}.map-field.used:after,.map-field.mapped:before{opacity:1;background:#0c7c8c}.map-field.drop-ok{outline:2px dashed #0c7c8c;outline-offset:-2px;background:var(--brand-soft)}.map-field.mp-tgt.drop-ok:before{opacity:1;background:#0c7c8c}.mp-default-inline{color:#6b4b9a;font-weight:400;white-space:nowrap}.mp-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.mp-line{fill:none;stroke:#0c7c8c;stroke-width:2}.mp-line.faded{opacity:.3}.mp-line.dashed{stroke-dasharray:5 4}.mp-line.sel{stroke:var(--err, #dc2626);stroke-width:3}.mp-line.rubber{stroke:#0c7c8c;stroke-dasharray:4 4;opacity:.7}.mp-hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer}.mp-line-x{position:absolute;transform:translate(-50%,-50%);z-index:6;width:18px;height:18px;border-radius:50%;border:none;background:var(--err, #dc2626);color:#fff;font-size:10px;line-height:1;cursor:pointer;padding:0}.mp-line-fn{position:absolute;transform:translate(-50%,-50%);z-index:6;background:#0c7c8c;color:#fff;border-radius:8px;font-size:10px;padding:0 5px;pointer-events:none}.mp-ctx{position:fixed;z-index:60;min-width:170px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 28px #0f1b1f38;padding:4px}.mp-ctx-item{display:block;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:7px 10px;border-radius:5px;font-size:13px;color:var(--text, #15333a)}.mp-ctx-item:hover{background:var(--brand-soft)}.mp-ctx-item.danger{color:var(--err, #dc2626)}.mp-test-modal{width:min(960px,94vw);max-height:88vh;display:flex;flex-direction:column}.mp-test-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mp-test-head h2{margin:0}.mp-test-body{display:flex;gap:16px;min-height:0}.mp-test-col{flex:1;min-width:0;display:flex;flex-direction:column}.mp-test-col>label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}.mp-test-area{width:100%;min-height:320px;resize:vertical;font-family:var(--mono);font-size:12px}.mp-test-out{margin-top:0;min-height:320px;max-height:56vh}.mp-script-modal{width:min(1180px,96vw);height:82vh;max-height:92vh;display:flex;flex-direction:column}.mp-script-body{display:flex;gap:16px;flex:1;min-height:0;margin-top:6px}.mp-script-col-code{flex:1;min-width:0;display:flex;flex-direction:column}.mp-script-col-code>label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}.mp-script-code{flex:1;min-height:420px}.mp-script-col-vars{flex:0 0 250px;display:flex;flex-direction:column}.mp-script-vars-head{display:flex;align-items:center;justify-content:space-between}.mp-script-vars-head .btn{padding:2px 8px;font-size:12px}.mp-script-var-row{display:flex;gap:6px;align-items:center;margin-top:5px}.mp-script-var-row input{flex:1;font-family:var(--mono);font-size:12px;padding:4px 6px}.mp-invalid{border-color:var(--err, #dc2626)!important}.mp-fn-box.mp-fn-script{border-color:#6b4b9a}.mp-fn-script .mp-fn-box-name{color:#6b4b9a}.map-link.sel{background:var(--brand-soft)}.map-link.orphan{opacity:.85}.map-link-main{cursor:pointer}.mp-warn{color:#b45309}.profile-tree{border:1px solid var(--border, #d9e0e2);border-radius:7px;padding:6px;max-height:420px;overflow:auto;background:var(--panel-2)}.pf-row{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:5px;cursor:pointer;-webkit-user-select:none;user-select:none}.pf-row:hover{background:var(--brand-soft)}.pf-row.pf-sel{background:var(--brand-soft);outline:1px solid var(--brand, #2563eb)}.pf-row.pf-hit .pf-label{text-decoration:underline;text-underline-offset:2px}.pf-caret{width:16px;height:16px;padding:0;border:none;background:none;color:var(--muted);font-size:10px;line-height:16px;cursor:pointer;flex:none}.pf-caret-none{display:inline-block}.pf-icon{width:14px;text-align:center;font-size:11px;flex:none}.pf-label{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-meta{font-size:11px;color:var(--muted);flex:none}.pf-reqdot{color:#e5534b;font-weight:700;flex:none}.pf-tag{font-size:11px;background:#f0ecf9;color:#6b4b9a;border-radius:10px;padding:1px 8px}.pf-row.pf-attr .pf-icon{color:#e5534b;font-weight:700}.pf-row.pf-el .pf-icon{color:#57ab5a}.pf-row.pf-obj .pf-icon{color:#c69026}.pf-row.pf-arr .pf-icon{color:#7c3aed}.pf-row.pf-obj .pf-label,.pf-row.pf-arr .pf-label{font-weight:600}.pf-row.pf-inst .pf-icon{color:#8b949e}.pf-row.pf-inst .pf-label{font-style:italic}.pf-row.pf-mirror{opacity:.55;cursor:default}.pf-row.pf-mirror:hover{background:none}.pf-search{width:100%;padding:5px 8px;font-size:12px;margin-bottom:6px}.pf-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.pf-menu{position:fixed;z-index:61;min-width:210px;padding:4px;background:var(--panel, #fff);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-3, 0 8px 24px rgba(0,0,0,.25));display:flex;flex-direction:column}.pf-menu button{border:none;background:none;text-align:left;cursor:pointer;padding:6px 10px;font-size:12.5px;border-radius:5px;color:var(--text)}.pf-menu button:hover{background:var(--brand-soft)}.pf-menu .pf-menu-danger{color:var(--danger, #c0392b)}.pf-menu-sep{height:1px;background:var(--border);margin:4px 6px}.pe-inst-modal{width:min(460px,94vw)}.pe-inst-modal h3{margin:0 0 4px;font-size:16px}.pe-inst-sub{font-size:12px;margin:0 0 14px}.pe-inst-sec{border:1px solid var(--border);border-radius:8px;margin-top:10px;overflow:hidden}.pe-inst-check{display:flex;align-items:center;gap:10px;margin:0;padding:9px 12px;font-size:13px;font-weight:700;color:var(--text);background:var(--brand-soft);cursor:pointer}.pe-inst-check input[type=checkbox]{width:15px;height:15px;margin:0;flex:none}.pe-inst-block{padding:12px 14px;display:flex;flex-direction:column;gap:8px}.pe-inst-radio{display:flex;align-items:center;gap:8px;margin:0;font-size:12.5px;font-weight:400;color:var(--text);cursor:pointer}.pe-inst-radio input[type=radio]{width:14px;height:14px;margin:0;flex:none}.pe-inst-radio-lbl{min-width:80px}.pe-inst-n{width:80px;padding:4px 8px;font-size:12px}.pe-inst-hint{font-size:11.5px}.pe-inst-qtable{border-collapse:collapse;font-size:12px;width:100%;border:1px solid var(--border);border-radius:6px;overflow:hidden}.pe-inst-qtable th{text-align:left;background:var(--brand-soft);padding:5px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.pe-inst-qtable td{padding:4px 10px;border-top:1px solid var(--border)}.pe-inst-none{text-align:center;color:var(--muted);font-style:italic;font-size:12px}.pe-inst-x{padding:1px 7px;font-size:11px;line-height:1.4}.pe-inst-pick{align-self:flex-start}.pe-inst-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.pe-qsel-modal{width:min(400px,94vw)}.pe-qsel-modal h3{margin:0 0 10px;font-size:16px}.pe-qsel-tree{border:1px solid var(--border);border-radius:7px;max-height:300px;overflow-y:auto;padding:4px;margin-top:8px;background:var(--panel-2)}.pe-qsel-el{font-size:12.5px;font-weight:600;padding:3px 6px}.pe-qsel-el .pf-obj-ico{color:#c69026}.pe-qsel-val{font-size:12.5px;padding:3px 6px;border-radius:5px;cursor:pointer}.pe-qsel-val .pf-icon{color:#57ab5a}.pe-qsel-val:hover{background:var(--brand-soft)}.pe-qsel-val.pe-qsel-sel{background:var(--brand-soft);outline:1px solid var(--brand, #2563eb)}.pe-imp-scope{font-size:12px;padding:7px 10px;margin-bottom:6px;border:1px solid var(--brand, #2563eb);border-radius:7px;background:var(--brand-soft)}.pe-imp-scope.pe-imp-blocked{border-color:var(--border);color:var(--muted);font-style:italic}.pe-quals{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.pe-quals-title{font-size:12px;font-weight:700;margin-bottom:6px}.pe-quals-hint{font-weight:400;color:var(--muted)}.pe-quals-rows{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.pe-quals-head,.pe-quals-row{display:grid;grid-template-columns:140px 1fr 28px;gap:8px;align-items:center}.pe-quals-head{font-size:11px;font-weight:600;color:var(--muted);background:var(--brand-soft);padding:4px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.03em}.pe-quals-row input{padding:4px 6px;font-size:12px}.pe-quals-none{font-size:12px;color:var(--muted);font-style:italic;padding:6px 8px}.pe-quals-draft input{border-style:dashed}.pe-quals-actions{display:flex;align-items:center;gap:8px}.pe-quals-dup{font-size:11px;color:var(--danger, #c0392b)}.pe-quals-dupinput{border-color:var(--danger, #c0392b)!important}.pe-det{border:1px solid var(--border);border-radius:8px;padding:14px 18px;overflow-y:auto;background:var(--panel-2);flex:1;min-height:0}.pe-det-title{font-size:16px;font-weight:700;margin-bottom:2px}.pe-det-sub{font-size:12px;color:var(--muted);margin-bottom:14px}.pe-det-grid{display:grid;grid-template-columns:130px minmax(0,320px);gap:10px 14px;align-items:center}.pe-det-grid>label{font-size:12px;font-weight:600}.pe-det-grid input[type=text],.pe-det-grid input:not([type]),.pe-det-grid select,.pe-det-cap{padding:5px 8px;font-size:12px}.pe-det-grid input[type=checkbox]{width:15px;height:15px;margin:0}.pe-det-max{display:flex;gap:8px;align-items:center}.pe-det-comments{padding:5px 8px;font-size:12px;font-family:var(--sans);resize:vertical;min-height:40px}.pe-det-max select{flex:1}.pe-det-cap{width:80px}.pe-det-note{font-size:11px;color:var(--muted)}.pe-det-actions{display:flex;gap:10px;margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}.pe-det-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;border:1px dashed var(--border);border-radius:8px}.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.filters{display:flex;align-items:center;gap:10px}.filters select{width:auto}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:#2c5b87;border-radius:16px;padding:3px 6px 3px 10px;font-size:12px;font-weight:600}.chip button{border:none;background:#00000014;color:inherit;border-radius:50%;width:16px;height:16px;line-height:1;font-size:10px;cursor:pointer;padding:0}.section-title{font-size:14px;margin:22px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:8px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.stat-card .stat-num{font-size:28px;font-weight:700;line-height:1}.stat-card .stat-label{font-size:12px;color:var(--muted);margin-top:6px}.stat-card.ok .stat-num{color:var(--ok)}.stat-card.err .stat-num{color:var(--err)}@media(max-width:880px){.stat-cards{grid-template-columns:repeat(2,1fr)}}.exec-tabs{display:flex;gap:16px;align-items:center}.exec-tab{border:none;background:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);padding:4px 2px;border-bottom:2px solid transparent;font-family:var(--sans)}.exec-tab:hover{color:var(--brand)}.exec-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.exec-tab.err.active{color:var(--err);border-bottom-color:var(--err)}.exec-table td,.exec-table th{vertical-align:middle}.exec-table .err-msg{color:var(--err);font-size:12px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 2px;font-size:12px}.pager>div{display:flex;gap:8px}.page-actions{display:flex;justify-content:flex-end;margin-bottom:14px}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:10px 12px;z-index:30;min-width:220px}.dropdown-menu.right{left:auto;right:0}.dropdown-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}[data-theme=dark] .react-flow{--xy-background-color: var(--bg);--xy-edge-stroke-default: #5aa9b5;--xy-controls-button-background-color: var(--panel);--xy-controls-button-background-color-hover: var(--panel-2);--xy-controls-button-color: var(--text);--xy-controls-button-border-color: var(--border);--xy-minimap-background-color: var(--panel);--xy-minimap-mask-background-color: rgba(15, 21, 24, .65);--xy-attribution-background-color-default: transparent}[data-theme=dark] .react-flow__background circle{fill:#2c3a41}[data-theme=dark] .rf-tile{box-shadow:0 1px 3px #00000080}[data-theme=dark] .rf-node.dbg-error .rf-tile{background:#e065521f}[data-theme=dark] .rf-scrollbar{background:#ffffff12}[data-theme=dark] .rf-scrollthumb{background:#ffffff3d}[data-theme=dark] .rf-scrollthumb:hover,[data-theme=dark] .rf-scrollthumb:active{background:#fff6}[data-theme=dark] .trig.trig-schedule{background:#a98bd629;color:var(--c-profile)}[data-theme=dark] .mp-loopdrv{background:#a98bd624;border-color:#a98bd666;color:var(--c-profile)}[data-theme=dark] .mp-loopdrv:hover{background:#a98bd642}[data-theme=dark] .rev-badge{background:#a98bd633;color:var(--c-profile)}[data-theme=dark] .map-fn-toggle.has{background:var(--ok-soft);color:var(--ok);border-color:#2fbf8559}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--panel-2);color:var(--text);border-color:var(--border)}[data-theme=dark] select option{background:var(--panel-2);color:var(--text)}[data-theme=dark] select optgroup{background:var(--panel-2);color:var(--brand)}[data-theme=dark] select option:disabled{color:var(--muted)}.theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.25);background:#ffffff14;border-radius:999px;width:30px;height:30px;cursor:pointer;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover{background:#ffffff2e}[data-theme=dark] .pf-tag{background:#a98bd629;color:var(--c-profile)}.rf-node .ntype-link{cursor:pointer;color:var(--c-map)}.rf-node .ntype-link:hover{text-decoration:underline;color:var(--brand)}.cpick{position:relative}.cpick-row{display:flex;gap:0;align-items:stretch;border:1px solid var(--border);border-radius:7px;background:var(--panel);overflow:hidden}.cpick-row:hover,.cpick-row:focus-within{border-color:var(--brand)}.cpick-current{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;cursor:pointer;border:none;border-radius:0;background:transparent;color:var(--text);font-size:13px;padding:6px 10px}.cpick-row .icon-btn,.cpick-row .btn{border:none;border-left:1px solid var(--border);border-radius:0;background:transparent;cursor:pointer;padding:0 10px;display:inline-flex;align-items:center;white-space:nowrap}.cpick-row .icon-btn{color:var(--brand);font-size:13px}.cpick-row .btn{font-size:12px;color:var(--brand);font-weight:600}.cpick-row .icon-btn:hover,.cpick-row .btn:hover{background:var(--brand-soft)}.cpick-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cpick-caret{color:var(--muted);font-size:10px}.cpick-pop{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 28px #0000002e;padding:6px;max-height:300px;display:flex;flex-direction:column}.cpick-search{width:100%;font-size:12px;padding:5px 8px;margin-bottom:4px;border:1px solid var(--border);border-radius:6px}.cpick-list{overflow-y:auto;min-height:0}.cpick-folder{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:6px 6px 2px}.cpick-item{display:block;width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;background:none;color:var(--text);font-size:13px;padding:5px 8px;border-radius:5px}.cpick-item:hover{background:var(--brand-soft)}.cpick-item.on{background:var(--brand-soft);font-weight:600}.rf-dangle-svg{position:absolute;overflow:visible;pointer-events:none}.rf-dangle-path{fill:none;stroke:#9aa8b5;stroke-width:1.5;stroke-dasharray:5 4}.react-flow__handle.rf-dangle-tip{width:12px;height:12px;background:var(--panel);border:1.5px dashed var(--brand);border-radius:50%}.react-flow__handle.rf-dangle-tip:hover{border-style:solid;background:var(--brand-soft);box-shadow:0 0 0 3px var(--brand-soft)}.rf-dangle-svg.dragging,.react-flow__handle.rf-dangle-tip.dragging{opacity:0}.rf-tail-drag path{stroke:#9aa8b5;stroke-width:1.5;stroke-dasharray:6 4}.rf-tail-drag circle{fill:var(--panel);stroke:var(--brand);stroke-width:1.5}[data-theme=dark] .rf-dangle-path{stroke:#57666f}[data-theme=dark] .rf-tail-drag path{stroke:#57666f}.overlay.exec-overlay{justify-content:flex-end;align-items:stretch}.modal.exec-panel{width:min(1020px,84vw);height:100vh;max-height:100vh;border-radius:0;overflow-y:auto;box-shadow:-12px 0 40px #00000040}.link-btn.ok{color:var(--ok);font-weight:600}.link-btn.bad{color:var(--err);font-weight:600}.docs-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}.docs-tabs{margin-left:auto;display:flex;gap:12px}.docs-tabs .link-btn.on{font-weight:700;text-decoration:underline}.doc-search{display:flex;gap:8px;margin:14px 0 6px;align-items:center}.doc-search input{flex:1;max-width:560px;font-size:13px}.err-cluster{display:flex;gap:10px;align-items:center;width:100%;padding:6px 8px;border:none;background:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;font-size:12px}.err-cluster:last-child{border-bottom:none}.err-cluster:hover{background:var(--panel-2)}.err-cluster-msg{flex:1;color:var(--err);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jn-toolbar{display:flex;gap:8px;align-items:center;margin:10px 0}.jn-toolbar input{flex:1;max-width:420px;font-size:12px}.jn-timeline{max-height:56vh;overflow-y:auto;padding-left:4px}.jn-hop{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-left:3px solid var(--border);margin-left:8px;position:relative}.jn-hop.self{border-left-color:var(--accent, #0c7c8c);background:var(--panel-2);border-radius:0 6px 6px 0}.jn-hop.bad{border-left-color:var(--err)}.jn-ico{font-size:18px;width:24px;text-align:center}.jn-main{flex:1;min-width:0}.jn-title{font-size:13px;font-weight:600}.jn-actions{display:flex;gap:4px;flex-wrap:wrap}.jn-fanout{margin-left:8px;padding:3px 10px;font-size:11px;color:#b45309;border-left:3px dashed #d97706}.jn-field{font-size:12px;margin-top:4px}.jn-field.changed{color:#b45309;font-weight:700}.jn-ddp{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}.jn-ddp .chip{font-size:10px}.jn-pane{flex:1;font-size:11px;max-height:380px;overflow:auto;background:var(--panel-2);padding:8px;border-radius:6px}.jn-diff{width:100%;font-size:12px}.jn-diff td{word-break:break-all}.jn-diff tr.jn-added td{background:#138a5e1f}.jn-diff tr.jn-removed td{background:#c0392b1a;text-decoration:line-through}.jn-diff tr.jn-changed td{background:#d977061f}.clickable-chip{cursor:pointer;border:1px solid var(--border);background:var(--panel-2)}.clickable-chip:hover{border-color:var(--accent, #0c7c8c)}.plog{max-height:52vh;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);font-size:12px}.plog-row{display:flex;gap:10px;align-items:baseline;padding:4px 10px;border-bottom:1px solid var(--border)}.plog-row:last-child{border-bottom:none}.plog-row.error{background:var(--err-soft)}.plog-ts{color:var(--muted);font-size:11px;white-space:nowrap}.plog-level{font-family:var(--mono);font-size:10px;font-weight:700;width:42px;flex:none}.plog-level.info{color:var(--muted)}.plog-level.warn{color:#b45309}.plog-level.error{color:var(--err)}.plog-msg{flex:1;word-break:break-word}.plog-node{display:inline-block;margin-right:8px;padding:0 6px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:11px;color:var(--muted)}.docs-tabs .btn.active,.btn.ghost.sm.active{font-weight:700;border-color:var(--accent, #0c7c8c);color:var(--accent, #0c7c8c)}.exec-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;max-height:46vh;overflow-y:auto}.exec-card{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--panel-2)}.exec-card.err{border-color:var(--err)}.exec-card-title{font-weight:600;font-size:13px;margin-bottom:6px;display:flex;gap:6px;align-items:center}.exec-kv{font-size:12px;padding:1px 0}.exec-kv span{color:var(--muted);font-size:11px;display:block}.exec-counts{display:flex;gap:12px;margin-top:8px;font-size:12px}.exec-counts .ok{color:var(--ok);font-weight:600}.exec-counts .bad{color:var(--err);font-weight:600}.exec-err{color:var(--err);font-size:11px;margin-top:6px;word-break:break-word}.pstate{max-height:55vh;overflow-y:auto;font-size:13px}.pstate-row{padding:4px 0;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}.pstate-row.indent{padding-left:26px}.pstate-row.bad{color:var(--err)}.pstate-sub{font-weight:600;padding-top:8px}.pstate-err{color:var(--err);font-size:12px}.pstate-final{border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-weight:600}.pstate-final.good{color:var(--ok)}.pstate-final.bad{color:var(--err)}.pstate-grp{margin:1px 0 1px 20px}.pstate-grp-head{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:3px 0;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--text)}.pstate-grp-head:hover{color:var(--brand)}.pstate-caret{color:var(--muted);font-size:10px;width:12px;display:inline-block;flex-shrink:0}.pstate-children{margin-left:5px;padding-left:13px;border-left:1px solid var(--border)}.pstate-row.dim{opacity:.55}.pstate-cont{color:var(--muted);font-size:12px;font-style:italic}.modal.sched-modal{width:min(640px,94vw)}.sched-sub{font-size:12px;line-height:1.45;margin-top:2px}.sched-modal .tabs{margin:6px 0 12px}.sched-modal .tabs .tab{padding:6px 12px}.sched-body{display:flex;gap:16px;align-items:stretch;min-height:250px}.sched-left{width:240px;flex:none;display:flex;flex-direction:column;gap:6px}.sched-listbtns{display:flex;gap:6px}.sched-list{border:1px solid var(--border);border-radius:6px;flex:1;min-height:216px;overflow-y:auto;background:var(--panel-2)}.sched-item{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 9px;cursor:pointer;font-size:12px;line-height:1.35;border-bottom:1px solid var(--border)}.sched-item:hover{background:var(--brand-soft)}.sched-item.on{background:var(--brand-soft);font-weight:600}.sched-form{flex:1;min-width:0;display:grid;grid-template-columns:108px 1fr;gap:8px 10px;align-items:center}.sched-form>label{margin:0;font-size:12px;font-weight:600}.sched-form>select,.sched-form>input{width:100%;padding:5px 7px;font-size:13px}.sched-req{color:var(--err);font-weight:400;font-size:11px}.sched-time{display:flex;gap:5px;align-items:center;font-size:12px}.sched-time select{width:58px;padding:5px 4px;font-size:13px}.sched-time input[type=number]{width:68px;padding:5px 7px;font-size:13px}.sched-days{display:flex;flex-direction:column;gap:7px}.sched-days label{display:flex;gap:8px;align-items:center;font-weight:400;font-size:12px;margin:0;white-space:nowrap}.sched-days input{width:auto;margin:0}.sched-hint{grid-column:1 / -1;font-size:11px;line-height:1.4}.topbar{gap:14px}.topbar h1{font-size:19px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}.topbar .topbar-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;font-size:17px;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);flex-shrink:0}.topbar .sub{margin-top:3px}.card{box-shadow:var(--shadow-1)}.modal{box-shadow:var(--shadow-3);border:1px solid var(--border)}.overlay{background:#091e2473;-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px);animation:overlay-in .14s ease-out}.overlay>.modal{animation:modal-in .16s cubic-bezier(.2,.9,.3,1.2)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}button.btn{transition:background .13s ease,border-color .13s ease,box-shadow .13s ease,transform .08s ease}button.btn:not(.ghost):not(.danger){box-shadow:0 1px 2px #0b25302e}button.btn:active:not(:disabled){transform:translateY(1px)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input,select,textarea{transition:border-color .12s ease,outline-color .12s ease}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 72%,transparent)}th{font-size:11px;letter-spacing:.06em}td{font-variant-numeric:tabular-nums}.card>table>tbody>tr:last-child>td{border-bottom:none}.pill{box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 18%,transparent)}.banner{border-left:3px solid transparent;padding-left:12px}.banner.err{border-left-color:var(--err)}.banner.info{border-left-color:var(--brand)}.empty{border:1.5px dashed color-mix(in srgb,var(--border) 80%,var(--muted));border-radius:10px;margin:6px 2px 2px;padding:34px 24px;font-size:13px;line-height:1.5}.empty .empty-ico{display:block;font-size:26px;margin-bottom:8px;opacity:.55}.toast{animation:toast-in .18s ease-out;border:1px solid rgba(43,164,181,.4)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.stat-card{box-shadow:var(--shadow-1);transition:box-shadow .13s ease,border-color .13s ease}.stat-card:hover{box-shadow:var(--shadow-2)}.stat-card .stat-num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}.palette .shape{transition:border-color .12s ease,box-shadow .12s ease,transform .09s ease}.palette .shape:hover{border-color:var(--brand);box-shadow:var(--shadow-1);transform:translateY(-1px)}.rf-tile{transition:box-shadow .12s ease}.rf-node:hover .rf-tile{box-shadow:var(--shadow-2)}.bh-card{transition:border-color .12s ease,box-shadow .12s ease,transform .09s ease}.bh-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}.rt-card{transition:border-color .12s ease,box-shadow .12s ease;box-shadow:var(--shadow-1)}.rt-card:hover{box-shadow:var(--shadow-2)}.pill.env-prod{background:var(--err-soft);color:var(--err)}.pill.env-qa{background:var(--warn-soft);color:var(--warn)}.pill.env-dev{background:var(--ok-soft);color:var(--ok)}.env-chip.on.ep-prod{background:#b3261e;border-color:#b3261e}.env-chip.on.ep-qa{background:#b26a00;border-color:#b26a00}.env-chip.on.ep-dev{background:#1f7a4d;border-color:#1f7a4d}.pill.role-admin{background:var(--err-soft);color:var(--err)}.pill.role-developer{background:var(--brand-soft);color:var(--brand-dark)}.pill.role-operator{background:var(--warn-soft);color:var(--warn)}.pill.role-viewer{background:var(--panel-2);color:var(--muted)}tr.sel-row{background:var(--brand-soft)}tr.sel-row td:first-child{box-shadow:inset 3px 0 0 var(--brand)}tr.warn-row{background:#d69e2e24}.crt-editor{display:flex;flex-direction:column;flex:1;min-width:0;padding:10px 14px;overflow:auto}.crt-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.crt-head-id{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.crt-ico{font-size:15px;opacity:.8}.crt-name{font-weight:600;font-size:14px;border:1px solid transparent;background:transparent;min-width:0;width:340px;padding:4px 6px}.crt-name:hover,.crt-name:focus{border-color:var(--border);background:var(--panel)}.crt-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:4px 2px}.crt-grid-wrap{overflow:auto;border:1px solid var(--border);border-radius:6px}.crt-grid{width:100%;border-collapse:collapse}.crt-grid thead th{position:sticky;top:0;background:var(--brand-soft);text-align:left;padding:6px 8px;font-size:12.5px;white-space:nowrap}.crt-colhead{cursor:pointer;-webkit-user-select:none;user-select:none}.crt-sort{margin-left:6px;font-size:10px;opacity:.6}.crt-grid td{padding:1px 4px;border-top:1px solid var(--border)}.crt-grid td input[type=text],.crt-grid td input:not([type]){border:1px solid transparent;background:transparent;width:100%;font-size:13px;padding:3px 4px}.crt-grid td input:not([type=checkbox]):hover,.crt-grid td input:not([type=checkbox]):focus{border-color:var(--border);background:var(--panel)}.crt-empty{text-align:center;font-style:italic;color:var(--muted);padding:14px!important;font-size:12.5px}.crt-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.crtlk-row{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;margin:12px 0}.crtlk-row>label{font-size:12.5px;font-weight:600}.crtlk-row select{width:100%}.crtlk-table-pick{display:flex;gap:6px;align-items:center}.crtlk-table-pick select{flex:1;min-width:0}.crtlk-panels{display:flex;gap:14px;margin-top:14px}.crtlk-panel{flex:1;min-width:0;display:flex;flex-direction:column}.crtlk-panel-head{display:flex;justify-content:space-between;align-items:center;min-height:28px}.crtlk-panel-btns{display:flex;gap:4px;flex-shrink:0}.crtlk-panel-desc{font-size:11.5px;color:var(--muted);margin:2px 0 6px;min-height:28px}.crtlk-checks{display:flex;flex-direction:column;gap:8px;min-width:0}.crtlk-checks label{display:flex;align-items:center;gap:8px;font-weight:400;font-size:12.5px;color:var(--text);margin:0}.crtlk-checks input[type=checkbox],.crtlk-row input[type=checkbox]{width:auto;flex:0 0 auto;margin:0;padding:0;accent-color:var(--brand);width:15px;height:15px}.crtlk-checks label span{min-width:0}.crtlk-row>*{min-width:0}.crtlk-row>label{margin:0}.crtlk-list{border:1px solid var(--border);border-radius:6px;background:var(--panel);min-height:140px;max-height:200px;overflow-y:auto}.crtlk-item{padding:5px 10px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border)}.crtlk-item:last-child{border-bottom:none}.crtlk-item:hover{background:var(--panel-2)}.crtlk-item.selected{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.crtlk-dot{color:#3fa34d;margin-right:4px;font-size:10px}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 42%,transparent) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 38%,transparent);border-radius:8px;border:2.5px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--muted) 60%,transparent);background-clip:padding-box}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1000px 460px at 12% -10%,rgba(12,124,140,.2),transparent 60%),radial-gradient(800px 420px at 95% 108%,rgba(12,124,140,.12),transparent 55%),#0e2a30}.login-card{width:360px;background:var(--panel);border-radius:14px;padding:30px 30px 26px;box-shadow:var(--shadow-3);border:1px solid rgba(43,164,181,.25);display:flex;flex-direction:column;animation:modal-in .22s cubic-bezier(.2,.9,.3,1.15)}.login-card .brand{font-weight:700;font-size:26px;letter-spacing:.4px;color:var(--text)}.login-card .brand span{color:var(--brand)}.login-card .brand:before{content:"⬡";color:var(--brand);font-weight:400;margin-right:8px;font-size:22px;vertical-align:-1px}.login-tag{color:var(--muted);font-size:12.5px;margin:4px 0 18px}.login-card label{margin:10px 0 4px}.login-err{margin-top:12px;padding:9px 12px;border-radius:7px;font-size:12.5px;background:var(--err-soft);color:var(--err);border-left:3px solid var(--err)}.login-card .btn{margin-top:18px;width:100%;padding:10px 12px;font-size:14px}.login-foot{margin-top:16px;font-size:11px;color:var(--muted);text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.icon-btn{background:none;border:none;padding:2px 5px;border-radius:5px;color:var(--muted);cursor:pointer;font-size:13px;line-height:1}.icon-btn:hover{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--text)}.icon-btn:disabled{opacity:.4;cursor:default}.prop-card{border:1px solid var(--line);border-radius:8px;margin-bottom:8px;background:color-mix(in srgb,var(--muted) 6%,transparent);overflow:hidden;transition:box-shadow .12s,border-color .12s,background .12s}.prop-card.on{background:color-mix(in srgb,var(--brand) 7%,transparent);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));box-shadow:var(--shadow-1)}.prop-card-head:hover{background:color-mix(in srgb,var(--brand) 9%,transparent)}
