.color-swatch[data-v-63685a48]{border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 1px #000}.v-ng-selection-box{shape-rendering:crispedges}.v-ng-background-grid{pointer-events:none}.v-ng-line-background.selectable{cursor:pointer}.v-ng-edge{pointer-events:none;transition:stroke .1s linear,stroke-width .1s linear}.v-ng-line-summarized.selectable{cursor:pointer}.v-ng-edge-labels .v-ng-text,.v-ng-edge-labels .v-ng-text-background,.v-ng-node-focusring{pointer-events:none}:where(.v-ng-shape-circle){transition:r .1s linear}:where(.v-ng-shape-rect){transition:x .1s linear,y .1s linear,width .1s linear,height .1s linear}:where(.dragging .v-ng-shape-circle),:where(.dragging .v-ng-shape-rect){transition:none}.v-ng-node :where(.v-ng-shape-circle){transition:fill .1s linear,stroke .1s linear,stroke-width .1s linear,r .1s linear}.v-ng-node :where(.v-ng-shape-rect){transition:fill .1s linear,stroke .1s linear,stroke-width .1s linear,x .1s linear,y .1s linear,width .1s linear,height .1s linear}.v-ng-node :where(.v-ng-node-default.v-ng-shape-circle),.v-ng-node :where(.v-ng-node-default.v-ng-shape-rect){pointer-events:none}.v-ng-node .draggable,.v-ng-node .selectable{pointer-events:all;cursor:pointer}:where(.v-ng-node-label)>:where(*){cursor:default;user-select:none;transition:transform .1s linear}:where(.v-ng-node-label) .draggable,:where(.v-ng-node-label) .selectable{pointer-events:all;cursor:pointer}.v-path{pointer-events:none;transition:stroke .1s linear,stroke-width .1s linear}.v-path.clickable{pointer-events:stroke;cursor:pointer}.v-path.hoverable{pointer-events:stroke}:where(.v-ng-container){width:100%;height:100%}.v-ng-container{user-select:none;padding:0;position:relative}.v-ng-canvas{-webkit-tap-highlight-color:transparent;opacity:0;width:100%;height:100%}.v-ng-canvas.show{opacity:1;transition:opacity .5s linear}.v-ng-canvas.dragging *{cursor:grabbing!important}.v-ng-canvas.dragging .v-ng-line{transition:d}.v-ng-canvas.touches{touch-action:none}.v-ng-canvas.box-selection-mode,.v-ng-canvas.box-selection-mode *{cursor:crosshair!important}.v-ng-canvas:not(.show) .v-ng-node,.v-ng-canvas:not(.show) .v-ng-node-label,.v-ng-canvas:not(.show) .v-ng-node-focusring,.v-ng-canvas:not(.show) .v-ng-edge,.v-ng-canvas:not(.show) .v-ng-edge-label,.v-ng-canvas:not(.show) .v-ng-path,.v-ng-canvas:not(.show) .v-ng-node>*,.v-ng-canvas:not(.show) .v-ng-node-label>*,.v-ng-canvas:not(.show) .v-ng-node-focusring>*,.v-ng-canvas:not(.show) .v-ng-edge>*,.v-ng-canvas:not(.show) .v-ng-edge-label>*,.v-ng-canvas:not(.show) .v-ng-path>*{transition:none}.v-ng-viewport.v-ng-transition{--transition-duration:.3s;--transition-function:linear}.v-ng-viewport.v-ng-transition .v-ng-node,.v-ng-viewport.v-ng-transition .v-ng-node-label,.v-ng-viewport.v-ng-transition .v-ng-node-focusring,.v-ng-viewport.v-ng-transition .v-ng-edge,.v-ng-viewport.v-ng-transition .v-ng-edge-label,.v-ng-viewport.v-ng-transition .v-ng-path,.v-ng-viewport.v-ng-transition .v-ng-node>*,.v-ng-viewport.v-ng-transition .v-ng-node-label>*,.v-ng-viewport.v-ng-transition .v-ng-node-focusring>*,.v-ng-viewport.v-ng-transition .v-ng-edge>*,.v-ng-viewport.v-ng-transition .v-ng-edge-label>*,.v-ng-viewport.v-ng-transition .v-ng-path>*{transition:all var(--transition-duration) var(--transition-function)}.v-ng-line.animate,.v-ng-path.animate{--animation-speed:100;stroke-dashoffset:var(--animation-speed);animation:10s linear infinite v-ng-dash}@keyframes v-ng-dash{to{stroke-dashoffset:0}}.graph-panel[data-v-fe466211]{height:min(56vh,480px,100dvh - 18rem);min-height:12rem;position:relative}.graph-panel--tall[data-v-fe466211]{flex:1;height:auto;min-height:10rem}.graph-panel--fill[data-v-fe466211]{background:0 0;border:none;border-radius:0;flex:1;height:100%;min-height:12rem}.graph-root--tall[data-v-fe466211],.graph-root[data-v-fe466211]:has(.graph-panel--fill){height:100%}.topology-graph[data-v-fe466211]{width:100%;height:100%}.graph-custom-props[data-v-fe466211]{height:calc(4.875em + .75rem)}.ft-studio[data-v-6c2fcbee]{--ft-panel-bg:color-mix(in srgb, var(--zl-surface,#f7f8fa) 72%, transparent);--ft-panel-border:color-mix(in srgb, var(--zl-line,#c5ccd4) 75%, transparent);--ft-btn-bg:color-mix(in srgb, var(--zl-accent-soft,#2f6f6a1f) 88%, transparent);--ft-btn-hover:color-mix(in srgb, var(--zl-accent,#2f6f6a) 18%, transparent);--ft-btn-pressed:color-mix(in srgb, var(--zl-accent,#2f6f6a) 28%, transparent);--ft-btn-warning:color-mix(in srgb, var(--zl-warn,#9a6b1f) 28%, transparent);--ft-ink:var(--zl-ink,#12181f);--ft-ink-muted:var(--zl-ink-muted,#6b7585);--ft-on-accent:var(--zl-on-accent,#f7faf9);--ft-tool-gap:.35rem;--ft-tool-pad:.35rem;--ft-tool-size:2.5rem;--ft-panel-inset:.65rem;box-sizing:border-box;border-radius:var(--zl-radius-lg,14px);border:1px solid var(--zl-line,#c5ccd4);background:var(--zl-paper-raised,#f2f4f6);min-width:0;height:min(56vh,480px,100dvh - 18rem);min-height:min(56vh,480px,100dvh - 18rem);color:var(--ft-ink);font-family:var(--zl-font-body,inherit);flex-direction:column;display:flex;position:relative;overflow:hidden}.ft-studio--tall[data-v-6c2fcbee]{flex:1;height:100%;min-height:12rem}.ft-studio--fs[data-v-6c2fcbee]{background:var(--zl-paper,#e8ecef);border:none;border-radius:0;height:100%;min-height:100%}.ft-studio-canvas[data-v-6c2fcbee]{min-height:0;position:absolute;inset:0}.ft-studio-canvas[data-v-6c2fcbee] .graph-root{gap:0;height:100%}.ft-studio-panel[data-v-6c2fcbee]{z-index:5;align-items:center;gap:var(--ft-tool-gap);box-sizing:border-box;padding:var(--ft-tool-pad);border:1px solid var(--ft-panel-border);background:var(--ft-panel-bg);backdrop-filter:blur(12px);box-shadow:var(--zl-shadow,0 12px 40px #12181f1f);color:var(--ft-ink);display:flex;position:absolute}.ft-studio-panel--top[data-v-6c2fcbee]{top:var(--ft-panel-inset);width:max-content;max-width:calc(100% - var(--ft-panel-inset) * 2);border-radius:var(--zl-radius,10px);justify-content:center;align-items:center;gap:0;height:auto;min-height:0;left:50%;right:auto;transform:translate(-50%)}.ft-scale-panel[data-v-6c2fcbee]{top:calc(var(--ft-panel-inset) + var(--ft-tool-pad) * 2 + var(--ft-tool-size) + var(--ft-tool-gap));z-index:6;width:max-content;max-width:calc(100% - var(--ft-panel-inset) * 2);border-radius:var(--zl-radius,10px);flex-direction:column;align-items:stretch;gap:.45rem;padding:.55rem .7rem;left:50%;transform:translate(-50%)}.ft-scale-title[data-v-6c2fcbee]{color:var(--ft-ink);margin:0;font-size:.75rem;font-weight:650}.ft-scale-hint[data-v-6c2fcbee]{max-width:16.5rem;color:var(--ft-ink-muted);margin:0;font-size:.6875rem;line-height:1.4}.ft-scale-presets[data-v-6c2fcbee]{flex-wrap:wrap;gap:.3rem;display:flex}.ft-scale-preset[data-v-6c2fcbee]{border:1px solid color-mix(in srgb, var(--zl-line,#c5ccd4) 55%, transparent);border-radius:var(--zl-radius-sm,6px);background:var(--ft-btn-bg);min-width:2.75rem;height:1.75rem;color:var(--ft-ink);cursor:pointer;justify-content:center;align-items:center;padding:0 .45rem;font-size:.75rem;font-weight:600;display:inline-flex}.ft-scale-preset[data-v-6c2fcbee]:hover{background:var(--ft-btn-hover);border-color:color-mix(in srgb, var(--zl-accent,#2f6f6a) 45%, transparent)}.ft-scale-custom[data-v-6c2fcbee]{align-items:center;gap:.35rem;display:flex}.ft-scale-input[data-v-6c2fcbee]{flex:6.5rem;min-width:0}.ft-scale-unit[data-v-6c2fcbee]{color:var(--ft-ink-muted);flex-shrink:0;font-size:.75rem}.ft-studio-panel--right[data-v-6c2fcbee]{top:calc(var(--ft-panel-inset) + var(--ft-tool-pad) * 2 + var(--ft-tool-size) + var(--ft-tool-gap));right:var(--ft-panel-inset);width:max-content;height:max-content;max-height:calc(100% - var(--ft-panel-inset) * 2 - var(--ft-tool-pad) * 2 - var(--ft-tool-size) - var(--ft-tool-gap));border-radius:var(--zl-radius,10px);flex-direction:column;align-items:center;bottom:auto;overflow:hidden}.ft-studio-panel--props[data-v-6c2fcbee]{left:var(--ft-panel-inset);right:calc(var(--ft-panel-inset) + var(--ft-tool-pad) * 2 + var(--ft-tool-size) + var(--ft-tool-gap));bottom:var(--ft-panel-inset);border-radius:var(--zl-radius,10px);align-items:stretch;padding:.5rem .65rem;overflow:hidden}.ft-props-scroll[data-v-6c2fcbee]{--ft-props-lh:1.55;--ft-props-size:.875rem;max-height:calc(var(--ft-props-size) * var(--ft-props-lh) * 3);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--zl-accent,#2f6f6a) var(--zl-paper,#e8ecef);overflow:hidden auto}.ft-props-scroll[data-v-6c2fcbee]::-webkit-scrollbar{width:10px;height:10px}.ft-props-scroll[data-v-6c2fcbee]::-webkit-scrollbar-track{background:var(--zl-paper,#e8ecef);border-radius:999px}.ft-props-scroll[data-v-6c2fcbee]::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--zl-accent,#2f6f6a) 70%, #6b7585);border:2px solid var(--zl-paper,#e8ecef);border-radius:999px}.ft-props-scroll[data-v-6c2fcbee]::-webkit-scrollbar-thumb:hover{background:var(--zl-accent,#2f6f6a)}.ft-studio-scroll[data-v-6c2fcbee]{align-items:center;gap:var(--ft-tool-gap);box-sizing:border-box;min-width:0;min-height:0;display:flex}.ft-studio-scroll--x[data-v-6c2fcbee]{box-sizing:border-box;scrollbar-width:thin;flex:0 auto;justify-content:flex-start;align-items:center;width:max-content;min-width:0;max-width:100%;height:auto;padding:0;display:flex;overflow:auto hidden}.ft-studio-scroll--y[data-v-6c2fcbee]{scrollbar-width:thin;scrollbar-gutter:auto;flex-direction:column;flex:0 auto;align-items:center;width:max-content;max-height:100%;padding:0;overflow:hidden auto}.ft-icon-btn[data-v-6c2fcbee]{width:var(--ft-tool-size);height:var(--ft-tool-size);box-sizing:border-box;border:1px solid color-mix(in srgb, var(--zl-line,#c5ccd4) 55%, transparent);border-radius:var(--zl-radius-sm,6px);background:var(--ft-btn-bg);color:var(--ft-ink);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ft-icon-btn[data-v-6c2fcbee]:hover:not(:disabled){background:var(--ft-btn-hover);border-color:color-mix(in srgb, var(--zl-accent,#2f6f6a) 45%, transparent)}.ft-icon-btn[data-v-6c2fcbee]:focus-visible{outline:2px solid var(--zl-focus-ring,#3d8a848c);outline-offset:1px}.ft-icon-btn[data-v-6c2fcbee]:disabled{opacity:.38;cursor:not-allowed}.ft-icon-btn.is-pressed[data-v-6c2fcbee]{background:var(--ft-btn-pressed);border-color:color-mix(in srgb, var(--zl-accent,#2f6f6a) 55%, transparent);color:var(--zl-accent-deep,var(--zl-accent))}.ft-icon-btn.is-warning[data-v-6c2fcbee]{background:var(--ft-btn-warning);border-color:color-mix(in srgb, var(--zl-warn,#9a6b1f) 50%, transparent);color:var(--zl-warn,#9a6b1f)}.ft-icon-btn--lg[data-v-6c2fcbee]{width:var(--ft-tool-size);height:var(--ft-tool-size)}.ft-sep[data-v-6c2fcbee]{background:var(--ft-panel-border);flex-shrink:0;align-self:center;width:1px;height:1.35rem;margin:0}.ft-sep--y[data-v-6c2fcbee]{align-self:center;width:1.35rem;height:1px;margin:0}.ft-zoom[data-v-6c2fcbee]{width:var(--ft-tool-size);min-height:var(--ft-tool-size);font-variant-numeric:tabular-nums;color:var(--ft-ink-muted);user-select:none;justify-content:center;align-items:center;font-size:10px;display:flex}.ft-props-text[data-v-6c2fcbee]{font-size:var(--ft-props-size,.875rem);line-height:var(--ft-props-lh,1.55);word-break:break-word;margin:0}.ft-prop-key[data-v-6c2fcbee]{color:var(--zl-ink-muted,#6b7585);font-weight:400}.ft-prop-colon[data-v-6c2fcbee]{color:var(--zl-ink-muted,#6b7585);margin-right:.2em;font-weight:400}.ft-prop-val[data-v-6c2fcbee]{border-radius:var(--zl-radius-sm,6px);background:color-mix(in srgb, var(--zl-accent-soft,#2f6f6a1f) 90%, var(--zl-surface,#f7f8fa));color:var(--zl-ink,#12181f);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.05em .35em;font-weight:700;display:inline}.ft-prop-sep[data-v-6c2fcbee]{color:var(--zl-ink-muted,#6b7585)}@media (width<=640px){.ft-studio-panel--right[data-v-6c2fcbee]{top:auto;bottom:var(--ft-panel-inset);width:max-content;max-width:calc(100% - var(--ft-panel-inset) * 2);flex-direction:row;align-items:center;height:auto;left:auto;right:50%;overflow:hidden;transform:translate(50%)}.ft-studio-scroll--y[data-v-6c2fcbee]{scrollbar-gutter:auto;flex-direction:row;flex:0 auto;align-items:center;width:max-content;max-width:100%;overflow:auto hidden}.ft-sep--y[data-v-6c2fcbee]{width:1px;height:1.35rem;margin:0}.ft-studio-panel--props[data-v-6c2fcbee]{right:var(--ft-panel-inset);bottom:calc(var(--ft-panel-inset) + var(--ft-tool-pad) * 2 + var(--ft-tool-size) + var(--ft-tool-gap))}.ft-zoom[data-v-6c2fcbee]{width:var(--ft-tool-size);min-width:var(--ft-tool-size)}}
