:root{--window-bg: #f5f5f4;--control-bg: #ffffff;--separator: rgba(0, 0, 0, .12);--label: rgba(0, 0, 0, .85);--secondary-label: rgba(0, 0, 0, .5);--grid-line: rgba(0, 0, 0, .07);--guide: rgba(0, 0, 0, .32);--accent: #007aff;--menu-bg: rgba(255, 255, 255, .96);--shadow: rgba(0, 0, 0, .1);--shadow-selected: rgba(0, 0, 0, .25)}@media (prefers-color-scheme: dark){:root{--window-bg: #262626;--control-bg: #1e1e1e;--separator: rgba(255, 255, 255, .16);--label: rgba(255, 255, 255, .88);--secondary-label: rgba(255, 255, 255, .55);--grid-line: rgba(255, 255, 255, .05);--guide: rgba(255, 255, 255, .22);--accent: #0a84ff;--menu-bg: rgba(40, 40, 40, .96);--shadow: rgba(0, 0, 0, .4);--shadow-selected: rgba(0, 0, 0, .7)}}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;background:var(--window-bg);-webkit-user-select:none;user-select:none}.canvas-container{width:100%;height:100%}.react-flow__pane{cursor:default}.canvas-container.animating .react-flow__node{transition:transform .4s ease-in-out}.device-node{display:flex;flex-direction:column;border-radius:10px;background:var(--control-bg);border:1px solid var(--separator);box-shadow:0 2px 4px var(--shadow);box-sizing:border-box;overflow:visible}.device-node.selected{border:2px solid var(--accent);box-shadow:0 4px 8px var(--shadow-selected)}.device-header{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:6px 10px;border-radius:9px 9px 0 0;min-height:17px;flex-shrink:0}.device-titles{display:flex;flex-direction:column;min-width:0}.device-name{font-size:11px;font-weight:600;color:var(--label);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-sub{font-size:8px;color:var(--secondary-label);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-ip{font-family:ui-monospace,SF Mono,Menlo,monospace}.lock-icon{color:var(--secondary-label);flex-shrink:0}.device-divider{height:1px;background:var(--separator)}.device-ports{flex:1;display:flex;align-items:flex-start;padding:4px;gap:4px;min-width:0}.port-column{display:flex;flex-direction:column;align-items:stretch;flex:1 1 0;gap:2px;min-width:0}.port-row{position:relative;display:flex;align-items:center;gap:4px;height:20px;box-sizing:border-box;padding:0 2px;border-radius:4px;border:1.5px solid transparent;min-width:0}.port-row.out .port-name{text-align:right}.port-name{font-size:9px;color:var(--secondary-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.port-badge{position:absolute;top:50%;transform:translateY(-50%);font-size:8px;font-weight:600;color:#fff;padding:2px 5px;border-radius:3px;white-space:nowrap;cursor:default}.port-row.in .port-badge{right:calc(100% + 8px)}.port-row.out .port-badge{left:calc(100% + 8px)}.port-badge.incomplete{opacity:.55;outline:1.5px dashed rgba(255,255,255,.9);outline-offset:-1.5px}.port-badge.selected{box-shadow:0 0 0 2px var(--accent)}.port-dot.react-flow__handle{position:relative;transform:none;inset:auto;width:10px;height:10px;min-width:10px;min-height:10px;border-radius:50%;border:0 solid transparent;transition:transform .1s ease-in-out,border-width .1s ease-in-out;cursor:crosshair}.port-dot.react-flow__handle:hover,.port-dot.source{transform:scale(1.4);border-width:2px}.react-flow__edge{cursor:pointer}.cable-label{position:absolute;font-size:9px;font-weight:500;color:var(--label);padding:2px 5px;border-radius:4px;pointer-events:none}.cable-label.selected{box-shadow:0 0 0 2px var(--accent)}.pending-wire-path{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;opacity:.7}.pending-wire{pointer-events:none}.page-guide{border:2px dashed var(--guide);border-radius:4px;pointer-events:none;z-index:-2}.page-guide-label{font-size:12px;font-weight:600;color:var(--guide);pointer-events:none;z-index:-2}.zone-overlay{border:1.5px solid;border-radius:16px;pointer-events:none;z-index:-1}.zone-name{position:absolute;top:12px;left:12px;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px}.context-menu{position:fixed;min-width:160px;padding:4px;background:var(--menu-bg);border:1px solid var(--separator);border-radius:8px;box-shadow:0 8px 24px var(--shadow-selected);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1000}.context-menu-item{display:block;width:100%;padding:5px 10px;border:none;border-radius:5px;background:transparent;color:var(--label);font-size:12px;text-align:left;cursor:default;font-family:inherit}.context-menu-item:hover{background:var(--accent);color:#fff}.context-menu-item.destructive{color:#ff3b30}.context-menu-item.destructive:hover{background:#ff3b30;color:#fff}.context-menu-divider{height:1px;margin:4px 8px;background:var(--separator)}.dev-toolbar{position:fixed;bottom:12px;left:12px;display:flex;gap:6px;padding:6px 8px;background:var(--menu-bg);border:1px solid var(--separator);border-radius:8px;z-index:1000;font-size:11px}.dev-toolbar button,.dev-toolbar select{font-size:11px;font-family:inherit}:root{color-scheme:light dark;--window-bg: #f5f5f4;--control-bg: #ffffff;--separator: rgba(0, 0, 0, .12);--label: rgba(0, 0, 0, .85);--secondary-label: rgba(0, 0, 0, .5);--tertiary-label: rgba(0, 0, 0, .3);--bar-bg: rgba(246, 246, 246, .85);--quaternary-fill: rgba(0, 0, 0, .04);--accent: #00b588;--accent-bg: rgba(0, 181, 136, .15);--status-design: #007aff;--status-design-bg: rgba(0, 122, 255, .15);--status-install: #ff9500;--status-install-bg: rgba(255, 149, 0, .15);--status-commissioned: #34c759;--status-commissioned-bg: rgba(52, 199, 89, .15);--status-asbuilt: #af52de;--status-asbuilt-bg: rgba(175, 82, 222, .15);--signal-audio: #007aff;--signal-video: #af52de;--signal-lighting: #ffcc00;--signal-control: #ff9500;--signal-network: #28cd41;--signal-power: #ff3b30}@media (prefers-color-scheme: dark){:root{--window-bg: #1e1e1e;--control-bg: #2c2c2e;--separator: rgba(255, 255, 255, .15);--label: rgba(255, 255, 255, .9);--secondary-label: rgba(255, 255, 255, .55);--tertiary-label: rgba(255, 255, 255, .35);--bar-bg: rgba(40, 40, 40, .85);--quaternary-fill: rgba(255, 255, 255, .06);--accent: #00d69d;--accent-bg: rgba(0, 214, 157, .18);--status-design: #0a84ff;--status-design-bg: rgba(10, 132, 255, .18);--status-install: #ff9f0a;--status-install-bg: rgba(255, 159, 10, .18);--status-commissioned: #30d158;--status-commissioned-bg: rgba(48, 209, 88, .18);--status-asbuilt: #bf5af2;--status-asbuilt-bg: rgba(191, 90, 242, .18);--signal-audio: #0a84ff;--signal-video: #bf5af2;--signal-lighting: #ffd60a;--signal-control: #ff9f0a;--signal-network: #32d74b;--signal-power: #ff453a}}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;color:var(--label);background:var(--window-bg)}.viewer-status{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--secondary-label);font-size:15px;padding:24px;text-align:center}.viewer-root{display:flex;flex-direction:column;height:100vh}.viewer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:1px solid var(--separator);background:var(--bar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-shrink:0}@media (max-width: 600px){.viewer-header{padding:8px 12px;gap:8px}.viewer-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:50vw}.viewer-header-actions{gap:6px}.viewer-refresh{width:32px;height:32px}.viewer-back{padding:8px 4px}.signal-filter-pill{padding:7px 11px}}.viewer-header-titles{display:flex;flex-direction:column;min-width:0}.viewer-header h1{font-size:15px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-subtitle{font-size:11px;color:var(--secondary-label)}.viewer-back{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--accent);background:none;border:none;padding:4px 2px;cursor:pointer;flex-shrink:0}.viewer-back:hover{opacity:.7}.status-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.status-badge--design{background:var(--status-design-bg);color:var(--status-design)}.status-badge--install{background:var(--status-install-bg);color:var(--status-install)}.status-badge--commissioned{background:var(--status-commissioned-bg);color:var(--status-commissioned)}.status-badge--asBuilt{background:var(--status-asbuilt-bg);color:var(--status-asbuilt)}.system-list{flex:1;overflow:auto;padding:20px}.system-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.system-search{flex:1;min-width:160px;font:inherit;font-size:12px;color:var(--label);background:var(--control-bg);border:1px solid var(--separator);border-radius:999px;padding:6px 12px}.system-filter-select{font:inherit;font-size:12px;color:var(--label);background:var(--control-bg);border:1px solid var(--separator);border-radius:999px;padding:6px 10px}.system-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.system-card{display:flex;flex-direction:column;gap:8px;min-height:108px;padding:14px;text-align:left;border-radius:10px;border:1px solid var(--separator);background:var(--control-bg);color:inherit;cursor:pointer;font:inherit}.system-card:hover{border-color:var(--accent)}.system-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.system-card-name{font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-card-meta{font-size:12px;color:var(--secondary-label);display:flex;flex-direction:column;gap:2px}.system-card-footer{margin-top:auto;display:flex;align-items:center;gap:12px;font-size:11px;color:var(--tertiary-label)}.system-card-label{display:inline-flex;align-items:center;gap:4px}.system-card-label svg{flex-shrink:0;opacity:.75}.system-card-chevron{margin-left:auto;display:inline-flex;opacity:.5}.workspace-tabbar{display:flex;align-items:center;gap:2px;padding:4px;margin:10px 20px 0;background:#7f7f7f1f;border-radius:8px;width:fit-content;max-width:calc(100% - 40px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.workspace-tabbar::-webkit-scrollbar{display:none}@media (max-width: 600px){.workspace-tabbar{margin:8px 12px 0;max-width:calc(100% - 24px)}.workspace-tab{padding:7px 12px}}.workspace-tab{font-size:12px;padding:5px 12px;border-radius:6px;border:none;background:transparent;color:var(--label);cursor:pointer;white-space:nowrap}.workspace-tab[data-active=true]{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 2px #00000026}.workspace-tab[data-disabled=true]{color:var(--tertiary-label);cursor:default}.signal-filter-row{display:flex;flex-wrap:wrap;gap:6px;padding:10px 20px 0}.signal-filter-pill{display:flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;border-radius:999px;border:none;background:#7f7f7f1f;color:var(--label);cursor:pointer;white-space:nowrap}.signal-filter-pill[data-active=true]{background:var(--label);color:var(--window-bg);font-weight:600}.signal-filter-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.workspace-body{flex:1;display:flex;flex-direction:column;min-height:0}.viewer-canvas{flex:1;min-height:0;position:relative}.viewer-table{flex:1;min-height:0;overflow:auto;padding:16px 20px}.devices-split{flex:1;display:flex;min-height:0}.devices-table-pane{flex:1;min-width:0;overflow:auto;padding:16px 20px}.device-row{cursor:pointer}.device-row[data-selected=true]{background:var(--accent-bg)}.device-inspector{width:300px;flex-shrink:0;border-left:1px solid var(--separator);background:var(--control-bg);overflow-y:auto}.inspector-mobile-back{display:none}@media (max-width: 820px){.devices-split{position:relative}.devices-table-pane{width:100%}.device-inspector--empty{display:none}.device-inspector:not(.device-inspector--empty){position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;width:100%;border-left:none}.inspector-mobile-back{display:block;align-self:flex-start;margin-bottom:8px;font-size:13px;color:var(--accent);background:none;border:none;padding:4px 0;cursor:pointer}}.inspector-empty{padding:24px 16px;font-size:12px;color:var(--tertiary-label);text-align:center}.inspector-header{padding:16px 16px 12px;border-bottom:1px solid var(--separator)}.inspector-name{font-size:14px;font-weight:600}.inspector-submodel{font-size:12px;color:var(--secondary-label);margin-top:2px}.inspector-tabbar{display:flex;flex-wrap:wrap;gap:2px;padding:8px 12px;border-bottom:1px solid var(--separator)}.inspector-tab{font-size:11px;padding:4px 8px;border-radius:5px;color:var(--secondary-label);cursor:pointer}.inspector-tab[data-active=true]{background:var(--accent);color:#fff;font-weight:600}.inspector-tab[data-disabled=true]{color:var(--tertiary-label);cursor:default}.inspector-body{padding:4px 16px 16px}.inspector-ports{display:flex;flex-direction:column;gap:6px}.port-row{display:grid;grid-template-columns:1.1fr .8fr .9fr 1fr auto;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--separator)}.port-row select,.port-name-input{font-size:11px;min-width:0}.port-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.port-delete{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;color:var(--secondary-label);font-size:15px;line-height:1;cursor:pointer;border-radius:5px;flex-shrink:0}.port-delete:hover{background:var(--quaternary-fill);color:#ff3b30}.inspector-add-port{margin-top:8px;align-self:flex-start;font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--separator);background:var(--control-bg);color:var(--accent);cursor:pointer}.inspector-add-port:hover{background:var(--quaternary-fill)}.inspector-section-label{font-size:11px;font-weight:600;color:var(--tertiary-label);text-transform:uppercase;letter-spacing:.03em;margin:14px 0 4px}.inspector-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--separator);font-size:12px}.inspector-label{color:var(--secondary-label);flex-shrink:0}.inspector-value{color:var(--label);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector-input{text-align:right;max-width:160px}.inspector-toggle{display:inline-block;width:28px;height:16px;border-radius:999px;background:var(--separator);position:relative;flex-shrink:0}.inspector-toggle:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s ease}.inspector-toggle.on{background:var(--accent)}.inspector-toggle.on:after{left:14px}.inspector-toggle-btn{display:inline-flex;align-items:center;width:28px;height:16px;padding:0;border:none;border-radius:999px;background:var(--separator);position:relative;flex-shrink:0;cursor:pointer}.inspector-toggle-btn.on{background:var(--accent)}.inspector-toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .15s ease}.inspector-toggle-btn.on .inspector-toggle-knob{left:14px}.inspector-textarea{width:100%;min-height:70px;resize:vertical;font-family:inherit}.inspector-notes{font-size:12px;color:var(--label);white-space:pre-wrap;padding:6px 0}.inspector-cables{display:flex;flex-direction:column;gap:12px}.cable-card{padding-bottom:8px;border-bottom:1px solid var(--separator)}.cable-card:last-child{border-bottom:none}.cable-card-head{font-size:11px;font-weight:600;padding:10px 0 4px}.inspector-punch{display:flex;flex-direction:column;gap:0}.punch-add-row{display:flex;gap:6px;padding-bottom:10px}.punch-add-row .cell-input{flex:1}.punch-add-row .inspector-add-port{margin-top:0;flex-shrink:0}.punch-add-row .inspector-add-port:disabled{opacity:.5;cursor:default}.punch-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--separator)}.punch-row:last-child{border-bottom:none}.punch-toggle{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0}.punch-check{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--separator);box-sizing:border-box}.punch-check.done{background:#34c759;border-color:#34c759}.punch-title{flex:1;font-size:12px;color:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.punch-title.done{text-decoration:line-through;color:var(--tertiary-label)}.punch-title-input{flex:1;min-width:0;font-size:12px}.punch-priority-select{font-size:11px;flex-shrink:0;max-width:72px}.punch-priority-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pane-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--tertiary-label);font-size:13px;padding:40px;text-align:center}.device-table{width:100%;min-width:640px;border-collapse:collapse;font-size:12px}.device-table .cell-input{min-width:100px}.device-table th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--separator);color:var(--secondary-label);font-weight:600;font-size:11px;position:sticky;top:0;background:var(--window-bg)}.device-table td{padding:8px 10px;border-bottom:1px solid var(--separator);vertical-align:middle}.device-table .empty-row{text-align:center;color:var(--tertiary-label);padding:24px}.device-name-cell{display:flex;align-items:center;gap:6px}.signal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.zone-chip{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:2px 7px;border-radius:999px}.cell-input{width:100%;min-width:60px;font:inherit;font-size:12px;color:var(--label);background:var(--window-bg);border:1px solid transparent;border-radius:4px;padding:3px 5px;box-sizing:border-box}.cell-input:hover{border-color:var(--separator)}.cell-input:focus{outline:none;border-color:var(--accent);background:var(--control-bg)}.edit-bar{display:flex;align-items:center;gap:12px;padding:8px 20px;background:var(--accent-bg);border-bottom:1px solid var(--separator);font-size:12px}.edit-bar-count{font-weight:600;color:var(--label)}.edit-bar-error{color:var(--status-install)}.edit-bar-spacer{flex:1}.edit-bar-discard{padding:5px 12px;font-size:12px;color:var(--label);background:transparent;border:1px solid var(--separator);border-radius:6px;cursor:pointer}.edit-bar-save{padding:5px 12px;font-size:12px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:6px;cursor:pointer}.canvas-notice{padding:8px 20px;background:var(--accent-bg);border-bottom:1px solid var(--separator);font-size:12px;color:var(--status-install)}.edit-bar-discard:disabled,.edit-bar-save:disabled{opacity:.6;cursor:default}.signin-wrap{height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.signin-card{display:flex;flex-direction:column;gap:12px;width:320px;padding:24px;background:var(--control-bg);border:1px solid var(--separator);border-radius:12px}.signin-logo{width:56px;height:56px;align-self:center;border-radius:12px}.signin-card h2{margin:0;text-align:center;font-size:17px}.signin-hint{margin:-6px 0 4px;text-align:center;font-size:12px;color:var(--secondary-label)}.signin-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--secondary-label)}.signin-field input{font:inherit;font-size:13px;color:var(--label);background:var(--window-bg);border:1px solid var(--separator);border-radius:6px;padding:7px 8px}.signin-error{font-size:12px;color:var(--status-install)}.signin-submit{margin-top:4px;padding:8px;font-size:13px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:6px;cursor:pointer}.signin-submit:disabled{opacity:.6;cursor:default}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,340px));gap:16px}.project-card{display:flex;flex-direction:column;padding:0;text-align:left;border-radius:12px;border:1px solid var(--separator);background:var(--control-bg);color:inherit;cursor:pointer;font:inherit;overflow:hidden}.project-card:hover{border-color:var(--accent)}.project-card-image{height:130px;display:flex;align-items:center;justify-content:center;background:var(--quaternary-fill);flex-shrink:0}.project-card-image img{max-width:100%;max-height:100%;object-fit:contain;padding:14px;box-sizing:border-box}.project-card-placeholder{display:flex;color:var(--tertiary-label);opacity:.6}.project-card-divider{height:1px;background:var(--separator)}.project-card-body{display:flex;flex-direction:column;gap:4px;padding:12px}.project-card-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-client{font-size:12px;color:var(--secondary-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;font-size:11px;color:var(--tertiary-label)}.viewer-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.viewer-refresh{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;background:transparent;color:var(--secondary-label);cursor:pointer;border-radius:6px}.viewer-refresh:hover:not(:disabled){background:var(--quaternary-fill);color:var(--label)}.viewer-refresh:disabled{cursor:default}.viewer-refresh .spin{animation:viewer-refresh-spin .8s linear infinite}@keyframes viewer-refresh-spin{to{transform:rotate(360deg)}}.documents-wrap{position:relative}.documents-panel{position:absolute;top:calc(100% + 6px);right:0;width:260px;max-width:calc(100vw - 24px);max-height:320px;overflow-y:auto;background:var(--control-bg);border:1px solid var(--separator);border-radius:8px;box-shadow:0 8px 24px #0003;z-index:20}.documents-empty{padding:16px;font-size:12px;color:var(--tertiary-label);text-align:center}.documents-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;font-size:12px;color:var(--label);text-decoration:none;border-bottom:1px solid var(--separator)}.documents-row:last-child{border-bottom:none}.documents-row:hover{background:var(--accent-bg)}.documents-kind{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documents-date{flex-shrink:0;color:var(--tertiary-label);font-size:11px}.revisions-wrap{position:relative}.revisions-panel{position:absolute;top:calc(100% + 6px);right:0;width:320px;max-width:calc(100vw - 24px);max-height:360px;overflow-y:auto;background:var(--control-bg);border:1px solid var(--separator);border-radius:8px;box-shadow:0 8px 24px #0003;z-index:20}.revisions-row{padding:8px 12px;border-bottom:1px solid var(--separator)}.revisions-row:last-child{border-bottom:none}.revisions-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.revisions-name{font-size:12px;font-weight:600;color:var(--label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revisions-notes{margin-top:2px;font-size:11px;color:var(--secondary-label);white-space:pre-wrap}.export-panel{position:absolute;top:calc(100% + 6px);right:0;width:280px;max-width:calc(100vw - 24px);max-height:420px;overflow-y:auto;background:var(--control-bg);border:1px solid var(--separator);border-radius:8px;box-shadow:0 8px 24px #0003;z-index:20;padding:10px 12px}.export-diagram-row{display:flex;gap:6px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--separator)}.export-diagram-row select{font-size:11px;flex-shrink:0;max-width:92px}.export-diagram-row button{flex:1;font-size:11px;padding:3px 8px;border-radius:5px;border:1px solid var(--separator);background:var(--accent);color:#fff;cursor:pointer;min-width:0}.export-diagram-row button:hover{opacity:.9}.export-toggles{display:flex;flex-wrap:wrap;gap:8px 14px;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--separator)}.export-toggle{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--secondary-label);cursor:pointer}.export-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0}.export-row-label{font-size:12px;color:var(--label)}.export-row-actions{display:flex;gap:6px;flex-shrink:0}.export-row-actions button{font-size:11px;padding:3px 8px;border-radius:5px;border:1px solid var(--separator);background:var(--window-bg);color:var(--accent);cursor:pointer}.export-row-actions button:hover:not(:disabled){background:var(--accent-bg)}.export-row-actions button:disabled{color:var(--tertiary-label);cursor:default;opacity:.5}.rack-elevation{padding:16px 20px;overflow:auto;flex:1}.rack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,420px));gap:20px}.rack-tile{border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.6);background:#1a1a1a}.rack-bay{border-radius:8px;border:1px solid rgba(0,0,0,.6);background:#141414;padding:6px 6px 8px}.rack-bay-label{display:block;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#ffffff8c;padding:2px 4px 6px}.rack-bay-row{display:flex;align-items:flex-start;gap:2px}.rack-bay-row .rack-tile{flex:1;min-width:0}.rack-tile-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#262626;color:#ffffffe6}.rack-tile-name{font-size:12px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rack-tile-size{font-size:10px;color:#ffffff80}.rack-face-toggle{display:flex;gap:1px;background:#ffffff1a;border-radius:5px;padding:1px}.rack-face-toggle button{font-size:10px;padding:2px 8px;border:none;border-radius:4px;background:transparent;color:#fff9;cursor:pointer}.rack-face-toggle button[data-active=true]{background:#fff3;color:#fff;font-weight:600}.rack-bay-controls{display:flex;gap:4px;align-items:center}.rack-bay-controls select,.rack-bay-leave{font-size:10px;padding:2px 6px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff14;color:#ffffffd9;cursor:pointer}.rack-bay-leave:hover,.rack-bay-controls select:hover{background:#ffffff29}.rack-body{position:relative}.rack-rail{position:absolute;top:0;bottom:0;background:linear-gradient(to right,#3a3a3a,#282828,#343434)}.rack-rail-number{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;font-size:7px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:#ffffff80}.rack-rail-holes{position:absolute;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:3px 0;box-sizing:border-box}.rack-mounting-hole{width:3px;height:3px;border-radius:50%;background:#080808;box-shadow:0 0 0 .4px #ffffff47 inset}.rack-interior{position:relative;height:100%}.rack-card{position:absolute;box-sizing:border-box;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:3px;overflow:hidden;border:.5px solid rgba(0,0,0,.35)}.rack-card.has-grid{align-items:flex-start}.rack-card.has-grid .rack-card-title,.rack-card.has-grid .rack-card-ip,.rack-card.has-grid .rack-card-height{padding-top:3px}.rack-card.device{background:var(--accent);background:linear-gradient(to bottom,var(--accent),color-mix(in srgb,var(--accent) 65%,black))}.rack-card.filler{background:#3d3d3d}.rack-card.patch-panel{background:linear-gradient(to bottom,#ccc,#949494)}.rack-card.patch-panel .rack-card-title,.rack-card.patch-panel .rack-card-ip,.rack-card.patch-panel .rack-card-height{color:#000c}.rack-card[data-conflict=true]{background:linear-gradient(to bottom,#ff3b30,#a10000)}.rack-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#fff3,#fff0 45%,#00000024);pointer-events:none}.rack-card:after{content:"";position:absolute;top:0;left:2px;right:2px;height:.5px;background:#ffffff38;pointer-events:none}.rack-card-ear{position:absolute;top:4px;bottom:4px;width:8px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.rack-card-ear.leading{left:0}.rack-card-ear.trailing{right:0}.rack-card-screw{width:3px;height:3px;border-radius:50%;margin:0 auto;background:#0000008c;box-shadow:0 0 0 .4px #ffffff40 inset}.rack-card-title{font-size:9.5px;font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.rack-card-ip{margin-left:auto;font-size:8px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:#ffffffbf;flex-shrink:0;white-space:nowrap}.rack-card-height{font-size:8px;color:#ffffffbf;flex-shrink:0}.rack-card-face-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:3px}.rack-card[data-conflict=true] .rack-card-face-image{opacity:.55}.rack-card-height-badge{position:absolute;top:3px;right:3px;color:#fff;background:#0000008c;padding:1px 4px;border-radius:3px;font-weight:600}.rack-card-ports{position:absolute;left:3px;right:3px;bottom:2px;height:4px;display:flex;gap:1px;pointer-events:none}.rack-card-port-tick{flex:1 1 0;min-width:1px;border-radius:1px;opacity:.75}.rack-card-patch-grid{position:absolute;top:14px;left:12px;right:12px;display:grid;gap:2px;justify-content:center;pointer-events:none}.rack-card-glyph-cell{display:flex;flex-direction:column;align-items:center;gap:1px}.rack-card-port-label{font-size:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rack-card.patch-panel .rack-card-port-label{color:#000000b3}.rack-card:not(.patch-panel) .rack-card-port-label{color:#ffffffbf}.rack-unracked{margin-top:20px}.rack-unracked-list{display:flex;flex-wrap:wrap;gap:6px}.rack-unracked-chip{font-size:11px;padding:4px 10px;border-radius:999px;background:#7f7f7f26;color:var(--label)}.plot-tab{display:flex;flex-direction:column;height:100%;min-height:0}.plot-page-picker{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:12px;flex-shrink:0}.plot-page-btn{font-size:12px;padding:4px 10px;border-radius:6px;border:1px solid var(--separator);background:var(--control-bg);color:var(--label);cursor:pointer}.plot-page-btn[data-active=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.plot-stage-container{position:relative;flex:1;min-height:0;border:1px solid var(--separator);border-radius:8px;overflow:hidden;background:var(--quaternary-fill)}.plot-stage-wrap{width:100%;height:100%}.plot-stage-svg{width:100%;height:100%;display:block}.plot-key{position:absolute;top:10px;left:10px;max-width:260px;max-height:calc(100% - 20px);overflow-y:auto;padding:8px 10px;background:#ffffffeb;border:1px solid rgba(0,0,0,.3);border-radius:6px;font-size:11px;color:#111}.plot-key-title{font-size:10px;font-weight:700;letter-spacing:.03em;margin-bottom:4px}.plot-key-row{display:flex;align-items:baseline;gap:6px;padding:2px 0}.plot-key-letter{font-weight:700;flex-shrink:0;width:14px}.plot-notes-body{white-space:pre-wrap;line-height:1.4}.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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: 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))}
