@import "https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css";:root{--bg-main:#0f1115;--text-main:#e6e6e6;--panel-border:#2a2f3a;--meta-text:#b6beca;--hint-text:#9aa3b2;--details-bg:#161a22;--details-border:#2f3745;--graph-node-endpoint-text:#111;--graph-node-device-text:#111;--graph-edge-color:#7b8496;--graph-edge-text:#9aa3b2;--scrollbar-track:transparent;--scrollbar-thumb:#3a445a;--scrollbar-thumb-hover:#4a5670;--builder-sidebar-width:400px;--builder-layer-gap:4px;--builder-grid-step-x:20px;--builder-grid-step-y:20px;--font-size-11:11px;--font-size-12:12px;--font-size-13:13px;--font-size-19:19px;--font-size-0:0}body{font-feature-settings:"zero" 1;font-variant-ligatures:contextual;background:var(--bg-main);color:var(--text-main);scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin;margin:0;font-family:Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace}@supports (font-variation-settings:normal){body{font-family:Fira Code VF,Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace}}*{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0;border-radius:999px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}.hidden{display:none!important}.app-root{position:relative}.app-root>.app-tabs{z-index:40;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;gap:6px;padding:0;display:flex;position:absolute;top:10px;right:10px}.builder-sidebar>.app-tabs{z-index:3;justify-content:flex-end;gap:6px;height:14px;margin-bottom:-14px;display:flex;position:sticky;top:0;overflow:visible}.app-tab{border:1px solid var(--panel-border);color:var(--text-main);font-size:var(--font-size-11);background:#1d2230;border-radius:8px}.app-tab.active{background:#2a3345;border-color:#3c4a63}.layout{grid-template-columns:1fr 480px;height:100vh;display:grid}.graph{border-right:1px solid var(--panel-border);height:100vh}.panel{flex-direction:column;gap:10px;padding:10px;display:flex;overflow:auto}.panel-title{font-size:var(--font-size-19);margin:0}.card{border:1px solid var(--panel-border);background:#141923;border-radius:8px;padding:10px}.section-title{font-size:var(--font-size-12);text-transform:uppercase;letter-spacing:.04em;color:#c0c8d8;margin-bottom:6px;font-weight:700}.meta{color:var(--meta-text);font-size:var(--font-size-13);line-height:1}.kv{justify-content:space-between;gap:8px;margin-bottom:4px;display:flex}.kv strong{color:#e3e8f5;font-weight:600}.hint{color:var(--hint-text);font-size:var(--font-size-12);margin-bottom:12px}.sim-buttons{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.sim-buttons button{border:1px solid var(--panel-border);color:var(--text-main);font-size:var(--font-size-12);background:#1d2230;border-radius:8px;padding:5px 8px}.sim-send-rate-block{margin-bottom:10px}.sim-send-rate-label{font-size:var(--font-size-12);color:var(--meta-text);margin-bottom:4px;display:block}.sim-send-rate-row{align-items:center;gap:10px;display:flex}.sim-send-rate-row input[type=range]{accent-color:#89b4fa;flex:1;min-width:0;height:6px}.sim-send-rate-value{font-size:var(--font-size-11);color:var(--meta-text);text-align:right;flex-shrink:0;min-width:9em}.sim-meta{color:var(--meta-text);font-size:var(--font-size-12);line-height:1}.status-row{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.status-chip{color:#d8ffe2;font-size:var(--font-size-11);background:#2f6f44;border-radius:999px;padding:2px 8px;font-weight:700}.status-label{font-size:var(--font-size-12);color:var(--meta-text)}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.stats-subtitle{font-size:var(--font-size-11);letter-spacing:.03em;color:#9aa6bf;text-transform:uppercase;margin:2px 0 6px;font-weight:700}.stats-subtitle-gap{border-top:1px solid #273043;margin-top:10px;padding-top:8px}.stat-pill{background:#0f131b;border:1px solid #2a3242;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;display:flex}.stat-pill span{color:var(--meta-text);font-size:var(--font-size-11);flex-shrink:0}.stat-pill strong{color:#d9e1f3;font-size:var(--font-size-13);text-align:right;align-self:stretch;margin-left:0}.timings-card{padding-bottom:6px}.timings-wrap{border:1px solid #2a3242;border-radius:8px;max-height:200px;overflow:auto}.timings-table{border-collapse:collapse;width:100%;font-size:var(--font-size-11)}.timings-table th,.timings-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #232b3b;padding:4px 6px}.timings-table th:first-child,.timings-table td:first-child{text-align:left}.timings-table thead th{color:#b7c1d7;z-index:1;background:#1a2130;position:sticky;top:0}.timings-table td.warn{color:#f9e2af}.table-empty{color:#8f99ab;text-align:center!important}.details{white-space:pre-wrap;font-size:var(--font-size-12);background:var(--details-bg);border:1px solid var(--details-border);border-radius:8px;padding:10px}button,input,select,textarea{font-family:inherit;font-size:inherit;font-feature-settings:inherit}.builder-view{box-sizing:border-box;--builder-font-scale:1;height:100vh;font-size:var(--font-size-11);padding:10px}.builder-layout{grid-template-columns:var(--builder-sidebar-width) 10px minmax(0, 1fr);gap:0;height:100%;display:grid}.builder-sidebar,.builder-main{min-width:0;overflow:auto}.builder-sidebar,.builder-main,.timings-wrap,.builder-perf{clip-path:inset(0 round 8px)}.builder-main{flex-direction:column;display:flex;position:relative}.builder-sidebar-resizer{cursor:pointer;z-index:4;touch-action:manipulation;outline:none;position:relative}.builder-sidebar-resizer:before{content:"";background:#3a445a73;border-radius:999px;transition:background .12s,box-shadow .12s;position:absolute;inset:0 4px}.builder-sidebar-resizer:hover:before,.builder-resizing-sidebar .builder-sidebar-resizer:before{background:#3a445a;box-shadow:0 0 0 1px #89b4fa40}.builder-sidebar-resizer:focus-visible:before{box-shadow:0 0 0 1px #89b4fa73}.builder-sidebar-collapsed .builder-sidebar{cursor:pointer;padding:0;overflow:hidden}.builder-sidebar-collapsed .builder-sidebar:hover{background:#1d2230;border-color:#3a445a}.builder-sidebar-collapsed .builder-sidebar>*{display:none}.builder-resizing-sidebar{-webkit-user-select:none;user-select:none}.builder-spacer,.builder-panel-section+.builder-panel-section{margin-top:12px}.builder-panel-section-toggle{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0;font-family:inherit;display:flex}.builder-panel-section-caret{transition:transform .12s;display:inline-block}.builder-panel-section:not(.collapsed) .builder-panel-section-caret{transform:rotate(90deg)}.builder-panel-section.collapsed .builder-panel-section-body{display:none}.builder-actions{gap:8px;display:grid}.builder-actions button{border:1px solid var(--panel-border);color:var(--text-main);font-size:var(--font-size-12);background:#1d2230;border-radius:8px;padding:6px 8px}.builder-panel-note{font-size:var(--font-size-12);color:#98a4bc}.builder-controls-sidebar-host{--builder-hud-gap:8px;gap:8px;margin-top:12px;display:grid}.builder-layout-slots-block{gap:6px;margin-top:10px;display:grid}.builder-layout-slots-title{font-size:var(--font-size-11);color:#9aa6be;text-transform:uppercase;letter-spacing:.03em}.builder-layout-slots{gap:6px;display:grid}.builder-layout-slot{background:#0f131b;border:1px solid #2a3242;border-radius:8px;gap:6px;padding:6px;display:grid}.builder-layout-slot--active{border-color:#89b4fa;box-shadow:inset 0 0 0 1px #89b4fa73}.builder-layout-slot--url{border-color:#3f4a63}.builder-layout-slot-meta{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.builder-layout-slot-meta strong{font-size:var(--font-size-12);color:#d9e1f3}.builder-layout-slot-meta span{color:#98a4bc}.builder-layout-slot-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.builder-layout-slot--url .builder-layout-slot-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.builder-layout-slot-actions--working{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-layout-slot-actions button{border:1px solid var(--panel-border);color:var(--text-main);font-size:var(--font-size-11);background:#1d2230;border-radius:6px;justify-content:center;align-items:center;padding:4px 6px;transition:background-color .12s,border-color .12s,transform 60ms;display:flex}.builder-layout-slot-actions button:hover:not(:disabled){background:#262d3f;border-color:#4a5a7a}.builder-layout-slot-actions button:active:not(:disabled){background:#141a26;border-color:#6a80aa;transform:translateY(1px)}.builder-layout-slot-actions button:disabled{opacity:.5;cursor:default}.builder-layout-slot-import{grid-template-columns:auto minmax(0,1fr);gap:6px;display:grid}.builder-layout-slot-import input{color:#d9e1f3;box-sizing:border-box;min-width:0;height:34px;font-size:var(--font-size-11);background:#0f131b;border:1px solid #2a3242;border-radius:6px;padding:4px 6px}.builder-layout-slot-import button{border:1px solid var(--panel-border);color:var(--text-main);box-sizing:border-box;height:34px;font-size:var(--font-size-11);background:#1d2230;border-radius:6px;justify-content:center;align-items:center;padding:4px 10px;display:flex}.builder-layout-slot-import button:disabled{opacity:.5;cursor:default}.builder-sim-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:0;display:grid}.builder-sim-toolbar button{border:1px solid var(--panel-border);color:var(--text-main);box-sizing:border-box;background:#1d2230;border-radius:6px;justify-content:center;align-items:center;height:34px;padding:4px 6px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;line-height:16px;transition:background-color .12s,border-color .12s,transform 60ms;display:flex}.builder-sim-toolbar button:hover:not(:disabled){background:#262d3f;border-color:#4a5a7a}.builder-sim-toolbar button:active:not(:disabled){background:#141a26;border-color:#6a80aa;transform:translateY(1px)}.builder-sim-toolbar button:disabled{opacity:.5;cursor:default}.builder-sim-skip{letter-spacing:0;font-size:16px;line-height:1;display:inline-block;position:relative}.builder-sim-skip-tri,.builder-sim-skip-bar{display:inline-block}.builder-sim-skip-bar{transform-origin:50%;pointer-events:none;font-weight:400;line-height:1;position:absolute;top:50%}.builder-sim-skip--forward .builder-sim-skip-bar{left:100%;transform:translate(-65%,-50%)scaleX(.175)scaleY(1.107)}.builder-sim-skip--back .builder-sim-skip-bar{right:100%;transform:translate(65%,-50%)scaleX(.175)scaleY(1.107)}.builder-sim-meta{color:var(--meta-text);font-size:var(--font-size-11);white-space:normal;margin-top:0}.builder-sim-stats-grid{gap:var(--builder-hud-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.builder-sim-stats-grid .stat-pill{box-sizing:border-box;flex-direction:column;justify-content:space-between;gap:2px;height:34px;padding:4px;display:flex}.builder-sim-stats-grid .stat-pill span,.builder-sim-stats-grid .stat-pill strong{white-space:nowrap}.builder-sim-stats-grid .stat-pill strong{text-align:right;align-self:flex-end;font-size:13px;font-weight:400;line-height:13px}.builder-scale-controls{flex-direction:column;justify-content:space-between;height:100%;display:flex}.builder-scale-row{font-size:var(--font-size-11);color:#b6beca;grid-template-columns:10ch 1fr 5ch;align-items:center;gap:6px;display:grid}.builder-scale-row input[type=range]{accent-color:#89b4fa;min-width:0;height:6px}.builder-perf{white-space:pre;color:#b9c2d6;background:#0f131b;border:1px solid #2a3242;border-radius:8px;margin:0;padding:8px;font-family:inherit;line-height:1;overflow:auto}.builder-template{font-size:var(--font-size-12);cursor:grab;background:#0f131b;border:1px solid #2a3242;border-radius:8px;margin-bottom:6px;padding:8px}.builder-drag-image{pointer-events:none;z-index:9999;position:fixed;top:-10000px;left:-10000px}.builder-drag-image .builder-entity{cursor:grabbing}.builder-canvas{z-index:0;-webkit-user-select:none;user-select:none;flex-direction:column;gap:0;min-width:0;height:100%;display:flex;position:relative}.builder-canvas-wrap{-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:auto}.builder-controls-floating-host{--builder-hud-gap:8px;left:20px;right:20px;bottom:calc(20px + var(--builder-floating-scrollbar-bottom,0px));z-index:7;align-items:flex-end;gap:var(--builder-hud-gap);pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:flex-start;display:flex;position:absolute}.builder-floating-tool-stack{gap:var(--builder-hud-gap);flex-direction:column;width:380px;height:136px;display:flex}.builder-floating-scale{box-sizing:border-box;width:280px;max-width:280px;height:136px;padding:var(--builder-hud-gap);pointer-events:auto;-webkit-user-select:none;user-select:none;background:#0f131beb;border:1px solid #2a3242;border-radius:10px;position:relative;box-shadow:0 8px 22px #00000059}.builder-floating-scale-area{display:block}.builder-actions--floating{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-floating-loadouts{box-sizing:border-box;width:480px;max-width:480px;padding:var(--builder-hud-gap);pointer-events:auto;-webkit-user-select:none;user-select:none;gap:var(--builder-hud-gap);background:#0f131beb;border:1px solid #2a3242;border-radius:10px;display:grid;box-shadow:0 8px 22px #00000059}.builder-floating-performance{box-sizing:border-box;width:360px;max-width:360px;padding:var(--builder-hud-gap);pointer-events:auto;background:#0f131beb;border:1px solid #2a3242;border-radius:10px;box-shadow:0 8px 22px #00000059}.builder-floating-loadouts-detached{margin-left:auto;position:relative}.builder-layout-slots--floating{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-floating-simulation{box-sizing:border-box;gap:var(--builder-hud-gap);width:580px;max-width:580px;padding:var(--builder-hud-gap);pointer-events:auto;-webkit-user-select:none;user-select:none;background:#0f131beb;border:1px solid #2a3242;border-radius:10px;grid-template-rows:auto;grid-template-columns:minmax(0,1fr) 330px;align-items:start;display:grid;box-shadow:0 8px 22px #00000059}.builder-sim-speed-row{box-sizing:border-box;grid-template-columns:9ch 1fr 4ch;justify-self:stretch;width:100%;height:34px;margin:0}.builder-sim-speed-inline{grid-template-rows:auto auto;align-self:stretch;gap:4px;width:100%;min-width:0;display:grid}.builder-sim-speed-inline-top{font-size:var(--font-size-11);color:#b6beca;justify-content:space-between;align-items:baseline;gap:8px;line-height:1;display:flex}.builder-sim-speed-inline-value{color:var(--text-main);white-space:nowrap}.builder-sim-speed-inline-range{accent-color:#89b4fa;width:100%;min-width:0;height:6px}.builder-floating-simulation .builder-sim-meta{grid-area:1/2}.builder-floating-templates{gap:var(--builder-hud-gap);padding:var(--builder-hud-gap);box-sizing:border-box;pointer-events:auto;background:#0f131beb;border:1px solid #2a3242;border-radius:10px;width:100%;height:52px;display:flex;box-shadow:0 8px 22px #00000059}.builder-floating-templates .builder-template{box-sizing:border-box;text-align:center;flex:1 1 0;justify-content:center;align-items:center;min-width:0;height:34px;margin-bottom:0;padding:0 4px;line-height:1;display:flex}.builder-controls-in-sidebar .builder-controls-floating-host{pointer-events:auto;display:block;position:static;bottom:auto;left:auto;right:auto}.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-loadouts,.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-simulation,.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-scale,.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-tool-stack,.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-performance{width:100%;max-width:none}.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-tool-stack{height:auto}.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-simulation{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-content:start}.builder-controls-in-sidebar .builder-controls-sidebar-host .builder-floating-simulation .builder-sim-meta{grid-area:auto/1}.builder-delete-drop-zone{width:100%;height:76px;padding:var(--builder-hud-gap);box-sizing:border-box;color:#f3a1b8;font-size:var(--font-size-12);letter-spacing:.02em;text-transform:uppercase;pointer-events:auto;background:#5c233459;border:2px dotted #f38ba8f2;border-radius:10px;justify-content:center;align-items:center;font-weight:700;display:flex;box-shadow:0 8px 20px #00000052}.builder-delete-drop-zone.active{color:#ffd7e3;background:#9d3d5885;border-color:#f38ba8}.builder-box-selection{z-index:4;pointer-events:none;background:#89b4fa29;border:1px solid #89b4fad9;display:none;position:absolute}.builder-drag-bounds{z-index:5;pointer-events:none;background:#f9e2af14;border:1px dashed #f9e2aff2;display:none;position:absolute}.builder-wire-overlay{pointer-events:none;z-index:1;min-width:100%;height:100%;position:absolute;inset:0}.builder-packet-overlay{pointer-events:none;z-index:2;min-width:100%;height:100%;position:absolute;inset:0;overflow:visible}.builder-packet-dot{filter:drop-shadow(0 0 2px #00000073);pointer-events:all;cursor:pointer}.builder-wire-dragging .builder-packet-dot{pointer-events:none}.builder-packet-selected-guide{stroke:#f9e2aff2;stroke-width:1.5px;stroke-dasharray:4 4;stroke-linecap:round;pointer-events:none}.builder-packet-label-bg{fill:#0f131be0;stroke:#3a445ae6;stroke-width:1px;pointer-events:none}.builder-packet-label{letter-spacing:.02em;paint-order:stroke;stroke:#000000bf;stroke-width:2px;pointer-events:none;font-weight:600;line-height:1}.builder-packet-label-src{fill:#8f98aa}.builder-packet-label-dest{fill:#f4f7ff}.builder-wire-overlay .builder-wire-drag{stroke:#89b4fa;stroke-width:1.5px;stroke-dasharray:5 4;stroke-opacity:.95}.builder-layer{background:0 0;border:0;border-radius:0;flex:none;padding:0}.builder-layer-section-outer64{height:calc((var(--builder-layer-base-height-px,220px) * var(--builder-scale-y-outer64,1)) + ((var(--builder-scale-y-outer64,1) - 1) * var(--builder-layer-gap)))}.builder-layer-section-middle16{height:calc((var(--builder-layer-base-height-px,220px) * var(--builder-scale-y-middle16,1)) + ((var(--builder-scale-y-middle16,1) - 1) * var(--builder-layer-gap)))}.builder-layer-section-inner4{height:calc((var(--builder-layer-base-height-px,220px) * var(--builder-scale-y-inner4,1)) + ((var(--builder-scale-y-inner4,1) - 1) * var(--builder-layer-gap)))}.builder-layer-section-core1{height:calc((var(--builder-layer-base-height-px,220px) * var(--builder-scale-y-core1,1)) + ((var(--builder-scale-y-core1,1) - 1) * var(--builder-layer-gap)))}.builder-layer+.builder-layer{margin-top:var(--builder-layer-gap)}.builder-layer-title{font-size:var(--font-size-11);color:#aeb8cc;margin-bottom:4px}.builder-layer-grid{gap:var(--builder-layer-gap);height:100%;display:grid}.builder-layer-outer64{grid-template-columns:var(--builder-cols-outer64,repeat(64, calc((var(--builder-middle-col-width-px,var(--builder-middle-col-base-px,1280px)) - (3 * var(--builder-layer-gap))) / 4)))}.builder-layer-middle16{grid-template-columns:var(--builder-cols-middle16,repeat(16, var(--builder-middle-col-width-px,var(--builder-middle-col-base-px,1280px))))}.builder-layer-inner4{grid-template-columns:var(--builder-cols-inner4,repeat(4, calc((var(--builder-middle-col-width-px,var(--builder-middle-col-base-px,1280px)) * 4) + (3 * var(--builder-layer-gap)))))}.builder-layer-core1{grid-template-columns:var(--builder-cols-core1,repeat(1, calc((var(--builder-middle-col-width-px,var(--builder-middle-col-base-px,1280px)) * 16) + (15 * var(--builder-layer-gap)))))}.builder-segment{background:#0b0f16;border:1px solid #1f2634;border-radius:4px;min-height:76px;padding:2px;position:relative;overflow:hidden}.builder-segment.drop-target{border-color:#89b4fa}.builder-segment--outer-void-merged{grid-column:span 4}.builder-segment-label{color:#7f8aa0;text-align:center;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;overflow:hidden}.builder-segment-entities{background-image:linear-gradient(to right, #89b4fa17 1px, transparent 1px), repeating-linear-gradient(to bottom, #89b4fa17 0, #89b4fa17 1px, transparent 1px, transparent var(--builder-grid-step-y));background-size:var(--builder-grid-step-x) 100%, 100% 100%;background-position:0 0,0 0;background-repeat:repeat;height:calc(100% - 14px);position:relative;overflow:hidden}.builder-entity{color:#dbe3f5;z-index:2;cursor:grab;background:#1a2130;border:1px solid #2a3242;border-radius:4px;min-width:45px;max-width:520px;padding:4px 2px;position:absolute;transform:none}.builder-entity.builder-entity--tick-delivered{z-index:5;border-color:#a6e3a1}.builder-entity.builder-entity--tick-collision-drop{z-index:5;border-color:#f38ba8}.builder-entity.builder-entity--tick-delivered.builder-entity--hub,.builder-entity.builder-entity--tick-collision-drop.builder-entity--hub{box-shadow:none;border:none}.builder-entity.builder-entity--tick-delivered.builder-entity--hub .builder-hub-triangle{stroke:#a6e3a1}.builder-entity.builder-entity--tick-collision-drop.builder-entity--hub .builder-hub-triangle{stroke:#f38ba8}.builder-entity.builder-entity--tick-delivered.builder-entity--relay .builder-relay-core{border-color:#a6e3a1}.builder-entity.builder-entity--tick-collision-drop.builder-entity--relay .builder-relay-core{border-color:#f38ba8}.builder-dragging-grab .builder-entity,.builder-dragging-grab .builder-entity--hub,.builder-dragging-grab .builder-port,.builder-dragging-grab .builder-hub-reverse,.builder-dragging-grab .builder-cycle-btn,.builder-dragging-grab .builder-mask-arrow,.builder-dragging-grab .builder-hub--hover-move,.builder-dragging-grab .builder-hub--hover-rotate,.builder-dragging-grab .builder-entity--hub.builder-hub--hover-move,.builder-dragging-grab .builder-entity--hub.builder-hub--hover-rotate{cursor:grabbing!important}.builder-entity--outer-endpoint{z-index:2;cursor:default;padding-bottom:2px;top:0!important;left:0!important;transform:none!important}.builder-entity--filter.builder-entity--outer-endpoint{gap:2px}.builder-ports--endpoint-bottom{justify-content:center;width:100%;display:flex}.builder-entity--outer-endpoint .builder-endpoint-title{text-align:center;z-index:auto;margin:0;line-height:1;position:static;transform:none}.builder-row-endpoint-addr .builder-mask-row--readonly{align-items:stretch;min-height:0;padding-top:17px}.builder-mask-cell--readonly{justify-items:stretch;display:grid}.builder-mask-row--readonly .builder-mask-cell--readonly{min-height:0}.builder-endpoint-addr-nib{color:#c7d0e3;text-align:center;box-sizing:border-box;font-variant-numeric:tabular-nums;text-rendering:geometricprecision;justify-content:center;align-items:center;height:15px;line-height:1;display:flex}.builder-inspector-note{font-size:var(--font-size-11);color:#7f8aa0;margin:.5rem 0 0;line-height:1}.builder-entity--filter{flex-direction:column;align-items:stretch;gap:4px;display:flex}.builder-entity--text{width:var(--builder-text-w,41px);min-width:var(--builder-text-w,41px);max-width:var(--builder-text-w,41px);height:var(--builder-text-h,21px);min-height:var(--builder-text-h,21px);--builder-text-title-space:11px;box-sizing:border-box;flex-direction:column;align-items:stretch;padding:2px;display:flex;overflow:hidden}.builder-entity--text .builder-entity-title{height:var(--builder-text-title-space,11px);z-index:1;pointer-events:none;margin:1px 0 0 2px;line-height:1;position:static}.builder-text-box{width:100%;height:calc(var(--builder-text-h,21px) - var(--builder-text-title-space,11px) - 4px);box-sizing:border-box;color:#d9e1f3;white-space:pre-wrap;background:#0f131b;border:1px solid #3a445a;border-radius:4px;min-height:8px;padding:4px 6px;overflow:hidden}.builder-note-editor{width:100%;height:100%;color:inherit;font:inherit;resize:none;box-sizing:border-box;background:0 0;border:0;outline:none;margin:0;padding:0}.builder-entity--filter .builder-entity-title{z-index:1;margin:0;line-height:1;position:absolute;top:12px;transform:translateY(-50%)}.builder-entity--hub{min-width:0;max-width:none;box-shadow:none;cursor:default;background:0 0;border:none;padding:0;overflow:visible}.builder-entity--relay{min-width:0;max-width:none;box-shadow:none;background:0 0;border:0;margin:-8px;padding:8px;position:absolute;overflow:visible}.builder-relay-core{background:#1a2130;border:1px solid #2a3242;border-radius:4px;width:39px;height:39px;position:relative}.builder-relay-port-dock{justify-content:center;align-items:center;display:flex;position:absolute}.builder-entity--relay .builder-relay-port-a{top:2px;left:calc(50% - 8px)}.builder-entity--relay .builder-relay-port-b{top:calc(100% - 18px);left:calc(50% - 8px)}.builder-entity--relay[data-relay-angle="90"] .builder-relay-port-a{top:calc(50% - 8px);left:calc(100% - 18px)}.builder-entity--relay[data-relay-angle="90"] .builder-relay-port-b{top:calc(50% - 8px);left:2px}.builder-entity--relay[data-relay-angle="180"] .builder-relay-port-a{top:calc(100% - 18px);left:calc(50% - 8px)}.builder-entity--relay[data-relay-angle="180"] .builder-relay-port-b{top:2px;left:calc(50% - 8px)}.builder-entity--relay[data-relay-angle="270"] .builder-relay-port-a{top:calc(50% - 8px);left:2px}.builder-entity--relay[data-relay-angle="270"] .builder-relay-port-b{top:calc(50% - 8px);left:calc(100% - 18px)}.builder-entity--hub .builder-hub{margin:0}.builder-entity--hub .builder-port,.builder-entity--hub .builder-hub-reverse,.builder-entity--relay .builder-port{cursor:pointer}.builder-entity--relay.builder-relay--hover-rotate{background:#f9e2af14;border-radius:8px}.builder-entity.selected.builder-entity--relay .builder-relay-core{border-color:#f9e2af}.builder-entity.selected.builder-entity--hub{box-shadow:none;border:none}.builder-entity.selected.builder-entity--hub .builder-hub-triangle{stroke:#f9e2af}.builder-entity.link-source.builder-entity--hub{border:none}.builder-entity.link-source.builder-entity--hub .builder-hub-triangle{stroke:#89dceb}.builder-ports--filter-top,.builder-ports--filter-bottom{flex-shrink:0;justify-content:center;display:flex}.builder-hub{width:var(--hub-w,108px);height:var(--hub-h,96px);pointer-events:none;cursor:default;flex-shrink:0;margin:0;position:relative;overflow:visible}.builder-hub-rot{z-index:1;pointer-events:none;cursor:inherit;position:absolute;inset:0;overflow:visible}.builder-hub-svg{pointer-events:none;width:100%;height:100%;cursor:inherit;display:block;position:absolute;inset:0;overflow:visible}.builder-hub-rotate-hint{fill:none;pointer-events:none;stroke:#f9e2af2e;stroke-width:18px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .1s}.builder-hub--hover-rotate .builder-hub-rotate-hint{opacity:.45}.builder-hub--hover-move,.builder-hub--hover-rotate,.builder-entity--hub.builder-hub--hover-move,.builder-entity--hub.builder-hub--hover-rotate{cursor:grab}.builder-hub-triangle{fill:#1a2130;stroke:#2a3242;stroke-width:1px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none;transition:fill .1s,stroke .1s}.builder-hub-arrow{fill:none;stroke:#d9e1f3;stroke-width:1.05px;stroke-linecap:round;vector-effect:non-scaling-stroke}.builder-hub .builder-port.builder-hub-port{z-index:2;pointer-events:auto;position:absolute}.builder-hub-reverse{z-index:3;width:var(--hub-reverse-size,24px);height:var(--hub-reverse-size,24px);color:#d9e1f3;font-size:inherit;cursor:pointer;pointer-events:auto;background:#0f131b;border:1px solid #4a556d;border-radius:999px;justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute}.builder-hub-reverse-icon{font-size:var(--hub-reverse-icon-size,11px);line-height:1;display:block}.builder-hub-reverse:hover{border-color:#6a7896}.builder-entity.shadow{opacity:.45}.builder-entity.preview{opacity:.3;border-style:dashed}.builder-entity.copy-ghost{opacity:.45}.builder-entity.copy-ghost-preview{pointer-events:none;z-index:8}.builder-entity.selected{z-index:6;border-color:#f9e2af}.builder-entity.box-preview{border-color:#89b4fa}.builder-entity--hub.box-preview .builder-hub-triangle{stroke:#89b4fa}.builder-entity--relay.box-preview .builder-relay-core{border-color:#89b4fa}.builder-entity.link-source{border-color:#89dceb}.builder-entity-title{text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;position:relative}.builder-entity-settings{color:#b5bfd4;margin-bottom:2px;line-height:1;position:relative}.builder-inline-controls{display:contents}.builder-filter-ui{--builder-prop-label-col:56px;--builder-prop-value-col:115px;display:block}.builder-filter-left{gap:2px;display:grid}.builder-row{grid-template-columns:var(--builder-prop-label-col) var(--builder-prop-value-col);align-items:center;gap:4px;display:grid}.builder-hide-property-labels .builder-row{grid-template-columns:var(--builder-prop-value-col)}.builder-row-label{color:#c7d0e3;position:relative}.builder-hide-property-labels .builder-row-label{display:none}.builder-cycle{grid-template-columns:18px 1fr 18px;align-items:center;gap:0;display:grid}.builder-cycle--tall{align-items:stretch}.builder-cycle--tall .builder-cycle-btn{justify-content:center;align-self:stretch;align-items:center;height:auto;min-height:0;display:flex}.builder-cycle--tall .builder-cycle-value{align-self:stretch;height:30px;min-height:0}.builder-row-collision{align-items:stretch}.builder-row-endpoint-addr{align-items:baseline}.builder-row-endpoint-addr .builder-row-label{top:0}.builder-row-collision--hidden{visibility:hidden;pointer-events:none}.builder-cycle-btn{color:#d9e1f3;cursor:pointer;box-sizing:border-box;font-variant-numeric:tabular-nums;text-rendering:geometricprecision;background:#0f131b;border:1px solid #3a445a;border-radius:0;justify-content:center;align-items:center;height:20px;line-height:1;display:inline-flex}.builder-cycle-btn[data-dir=prev]{border-right:0;border-radius:3px 0 0 3px}.builder-cycle-btn[data-dir=next]{border-left:0;border-radius:0 3px 3px 0}.builder-cycle-value{box-sizing:border-box;text-align:center;white-space:pre-line;font-variant-numeric:tabular-nums;text-rendering:geometricprecision;background:#0f131b;border:1px solid #3a445a;border-radius:0;justify-content:center;align-items:center;min-height:20px;line-height:1;display:flex}.builder-mask-row{flex-direction:row;align-items:stretch;gap:0;min-width:0;display:flex}.builder-mask-dot{color:#c7d0e3;-webkit-user-select:none;user-select:none;flex:0 0 13px;justify-content:center;align-self:center;align-items:center;width:13px;min-width:13px;max-width:13px;padding:0;line-height:1;display:flex;position:relative}.builder-mask-cell{box-sizing:border-box;background:#0f131b;border:1px solid #3a445a;border-radius:4px;flex:0 0 19px;justify-items:stretch;width:19px;min-width:19px;max-width:19px;padding:0;display:grid;overflow:hidden}.builder-mask-cell span{color:#c7d0e3;text-align:center;box-sizing:border-box;font-variant-numeric:tabular-nums;text-rendering:geometricprecision;justify-content:center;align-items:center;height:15px;padding:0;line-height:1;display:flex}.builder-mask-cell span.builder-mask-value-wildcard{color:#8f98aa}.builder-mask-arrow{color:#d9e1f3;box-sizing:border-box;cursor:pointer;background:#0f131b;border:0;justify-content:center;align-items:center;width:100%;height:16px;padding:0;line-height:1;display:flex}.builder-mask-arrow[data-mask-dir=up]{border-bottom:1px solid #3a445a}.builder-mask-arrow[data-mask-dir=down]{border-top:1px solid #3a445a}.builder-row-mask .builder-mask-row{grid-column:2/3}.builder-hide-property-labels .builder-row-mask .builder-mask-row{grid-column:1/2}.builder-entity--filter .builder-row,.builder-entity--outer-endpoint .builder-row{grid-template-columns:var(--builder-prop-value-col)}.builder-entity--filter .builder-row-label,.builder-entity--outer-endpoint .builder-row-label{display:none}.builder-entity--filter .builder-row-mask .builder-mask-row,.builder-entity--outer-endpoint .builder-row-mask .builder-mask-row{grid-column:1/2}.builder-inspector-description{white-space:pre-line;color:#c7d0e3;background:#0f131b;border:1px solid #2a3242;border-radius:4px;margin-top:6px;margin-bottom:6px;padding:6px;line-height:1}.builder-filter-tooltip{z-index:1000;pointer-events:none;color:#d9e1f3;max-width:320px;font-size:var(--font-size-12);white-space:pre-wrap;background:#0b0f16f5;border:1px solid #2a3242;border-radius:8px;padding:8px 10px;line-height:1.3;position:fixed;transform:translate(-50%,-100%);box-shadow:0 8px 20px #00000073}.builder-ports{flex-wrap:wrap;gap:2px;display:flex}.builder-port{box-sizing:border-box;color:#d9e1f3;cursor:pointer;font-variant-numeric:tabular-nums;text-rendering:geometricprecision;background:#0f131b;border:1px solid #4a556d;border-radius:999px;justify-content:center;align-items:center;width:17px;height:17px;line-height:1;display:inline-flex}.builder-settings{gap:6px;margin-top:8px;display:grid}.builder-setting{font-size:var(--font-size-11);color:#aeb8cc;gap:3px;display:grid}.builder-setting input{color:#d9e1f3;font-size:var(--font-size-12);background:#0f131b;border:1px solid #2a3242;border-radius:4px;padding:5px 6px}
