.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))}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.35}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid #338eab;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:none;border-color:#488ba5!important;box-shadow:0 0 0 3px #488ba51a}a{color:var(--accent)}svg{flex-shrink:0}input,select,textarea{color:var(--text);background:var(--input)}.app{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-header{flex-shrink:0;display:flex;align-items:center;border-bottom:1px solid var(--line);z-index:5}.brand{display:flex;align-items:center;text-decoration:none;font-family:Inter Variable,sans-serif;font-weight:800;font-size:23px;letter-spacing:normal}.brand>span:first-child{background:#174d68;color:#fff;border-radius:10px;width:37px;height:37px;display:grid;place-items:center;margin-right:10px;box-shadow:0 3px 8px #174d681c}.header-separator{width:1px;background:var(--line);margin-right:4px}.project-title{display:flex;align-items:center;gap:10px;min-width:0;flex:1;position:relative}.project-title input{text-overflow:ellipsis;border-radius:5px;min-width:80px}.project-title input:hover{border-color:var(--line)}.project-name-error{position:absolute;z-index:1100;top:calc(100% + 4px);left:5px;width:min(390px,calc(100vw - 32px));padding:7px 10px;border:1px solid var(--danger);border-radius:6px;background:var(--surface);box-shadow:0 4px 14px #1934411c;color:var(--danger);font-size:11px;line-height:1.4}.project-tag{font-size:10px;letter-spacing:normal;font-weight:700;background:var(--hover);border:1px solid var(--line);color:#708396;padding:4px 7px;border-radius:5px}.save-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}.save-status svg{color:#5a9181}.primary,.secondary{white-space:nowrap}.primary{background:#246b83;color:#fff;border:1px solid #246b83}.secondary{border:1px solid var(--line)}.secondary:hover{background:var(--hover)}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-button:hover:not(:disabled){background:var(--hover);color:var(--text)}.editor-layout{display:flex;flex:1;min-height:0}.library{flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--line)}.project-symbol{display:grid;place-items:center;width:34px;height:36px;flex-shrink:0;background:var(--hover);color:var(--accent);border-radius:6px}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;gap:10px}.panel-heading h2{margin:0;font-weight:600;letter-spacing:normal}.count{font-size:11px;font-weight:500;padding:2px 6px;background:var(--hover);border:1px solid var(--line);color:#8591a1;border-radius:4px}.search{margin:3px 15px 8px;border:1px solid var(--line);background:var(--bg);border-radius:6px;display:flex;gap:7px;align-items:center;padding:9px 8px;color:#8c9bab}.search input{border:0;background:transparent;min-width:0;width:100%;outline:0!important;box-shadow:none!important}.search input::placeholder{color:#95a0af}.library-scroll{overflow:auto;flex:1;padding:0 12px 10px;scrollbar-width:thin}.library-section h3{font-size:10px;text-transform:none}.library-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:6px;border-radius:6px;margin:2px 0}.library-item>span:first-child:where(:not(.network-symbol)){display:grid;place-items:center;width:30px;height:30px;border-radius:6px;color:#6c8196}.library-item>span:nth-child(2){font-size:12px;flex:1}.drag-hint{opacity:0;color:#97a5b3}.library-item:hover .drag-hint{opacity:1}.library-footer{background:var(--surface)}.library-footer button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 3px}.library-footer .count{margin-left:auto}.library-footer p{color:#94a0ad}.workspace{display:flex;flex:1;flex-direction:column;min-width:0}.workspace-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 27px 20px;gap:10px;flex-shrink:0}.workspace-eyebrow{font-size:9px}.workspace-heading h1{font-family:Inter Variable,sans-serif;font-weight:600;margin:7px 0 0}.text-button{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;padding:6px}.text-button:hover{color:var(--accent)}.toolbar{border-bottom:1px solid var(--line);display:flex;align-items:center;flex-shrink:0}.tool-group{display:flex;align-items:center}.toolbar-hint{display:flex;gap:6px;align-items:center;color:#8795a5;margin:0 8px}.tool-divider{width:1px;background:var(--line)}.toolbar-spacer{flex:1}.canvas{position:relative}.react-flow__node-device{box-sizing:border-box}.device-node{width:240px;height:100px;border:1px solid #d3dfe8;background:var(--node);transition:box-shadow .15s}.node-main{display:flex;align-items:center;gap:11px;height:68px;padding:12px 14px}.node-icon{width:40px;height:40px;display:grid;place-items:center;background:color-mix(in srgb,var(--device-color),transparent 92%);color:var(--device-color);flex-shrink:0}.node-main>div{min-width:0}.node-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:155px;color:var(--text)}.node-main>div>span{color:#8996a6;margin-top:4px;display:block}.node-detail{height:30px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px;gap:8px}.node-detail>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8090a2}.port-dots{display:flex;gap:3px}.port-dots i{border:1px solid #c7d4df;border-radius:1px}.node-logo{width:22px;height:22px;object-fit:contain;position:absolute;right:8px;top:8px;background:var(--surface);border-radius:4px}.node-badge{padding:1px 5px;background:#7461b110;color:#7461b1!important;border-radius:4px}.react-flow__handle{width:8px!important;height:8px!important;background:#fff!important;border:1.5px solid #94b0c0!important;opacity:.7;transition:opacity .15s}.device-node:hover .react-flow__handle,.is-selected .react-flow__handle{opacity:1;background:#448da5!important;border-color:#fff!important;width:10px!important;height:10px!important}.container-node{width:100%;height:100%;border:1px dashed;position:relative}.container-node>span{position:absolute}.container-node.is-selected{border-style:solid;box-shadow:0 0 0 2px #448da518}.container-node.is-locked{cursor:default}.container-lock{position:absolute;top:13px;right:13px;color:var(--muted);pointer-events:none}.react-flow__edge.selected .react-flow__edge-path{filter:drop-shadow(0 0 3px #236f8680)}.react-flow__controls{box-shadow:0 2px 8px #30496310!important;border:1px solid #dfe6ed;border-radius:8px;overflow:hidden;bottom:17px!important;left:8px!important}.react-flow__controls-button{width:30px!important;height:30px!important}.react-flow__minimap{bottom:19px!important;right:4px!important;overflow:hidden}.react-flow__attribution{font-size:8px!important;background:transparent!important;opacity:.6}.inspector{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;flex-shrink:0}.inspector>.panel-heading{border-bottom:1px solid var(--line);flex-shrink:0}.tiny-label{font-size:9px;color:#9ba6b2;letter-spacing:normal}.inspector-body{overflow:auto;flex:1;scrollbar-width:thin}.selection-heading{display:flex;align-items:center;flex-shrink:0}.selection-icon{display:grid;place-items:center}.selection-heading small{display:block;color:var(--muted);margin-bottom:5px}.selection-heading strong{display:block;max-width:186px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabs{display:flex;border-bottom:1px solid var(--line);flex-shrink:0}.tabs button{border-bottom:2px solid transparent;color:var(--muted)}.tabs button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.field{display:flex;flex-direction:column;min-width:0}.field>span{font-size:11px;font-weight:500;color:#7b8a9b}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);line-height:1.4;min-width:0}.field textarea{resize:vertical}.field input::placeholder{color:#b1bac4}.field input[type=color]{height:35px;padding:3px}.section-label{font-size:9px;letter-spacing:normal;font-weight:600;color:#8595a7;border-top:1px solid var(--line)}.inspector-body>.section-label:first-child{border:0;padding-top:0;margin-top:0}.inspector-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.danger{color:#bc6464!important}.overview-icon{display:grid;place-items:center;width:57px;height:57px;border-radius:13px;margin:15px 0 22px}.inspector-empty h3{font:700 22px/1.4 Inter Variable,sans-serif;letter-spacing:normal;margin:0 0 16px}.muted{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 17px}.stats{display:flex;margin:26px 0 29px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:21px 0}.stats>div{flex:1}.stats>div+div{border-left:1px solid var(--line);padding-left:24px}.stats strong{font-family:Inter Variable,sans-serif;font-weight:600;display:block}.stats span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.info-box{display:flex;gap:9px;color:#64818e;background:#f0f6f8;border:1px solid #e0ecf0;padding:12px;border-radius:7px}.info-box p{font-size:11px;line-height:1.7;margin:0}.info-box svg{margin-top:2px}.inspector h4{color:#8c9aaa;margin-top:30px}.help-list{padding-left:17px;color:var(--muted);font-size:11px;line-height:1.8}.help-list li{padding-left:3px;margin-bottom:12px}.shortcuts{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;display:flex;flex-direction:column}.shortcuts>span{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:10px;color:#8b99a8}kbd{font:9px Inter Variable,sans-serif;border:1px solid var(--line);border-radius:4px;padding:3px 5px;color:#8191a3;background:var(--bg)}.full-button{width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;margin:7px 0;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px}.full-button:hover{background:var(--hover)}.text-link{font-size:11px;display:flex;align-items:center;gap:4px;margin-bottom:20px;text-decoration:none}.check-row{display:flex;gap:8px;align-items:center;font-size:12px}.port-editor{border:1px solid var(--line);border-radius:6px;margin-bottom:8px}.port-editor summary{display:flex;align-items:center;gap:7px;padding:11px 9px;cursor:pointer;font-size:11px}.port-editor summary strong{font-size:11px}.port-editor summary>span:last-child{margin-left:auto;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:114px}.port-status{width:6px;height:6px;flex-shrink:0;border-radius:2px;background:#c9d4df}.port-status.used{background:#478797}.port-fields{padding:10px;border-top:1px solid var(--line)}.vm-row{display:flex;width:100%;text-align:left;gap:10px;align-items:center;border:1px solid var(--line);padding:11px 8px;border-radius:6px;margin-bottom:8px;color:#7a6aab}.vm-row>span{flex:1}.vm-row strong{font-size:12px;display:block;color:var(--text)}.vm-row small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.canvas-empty{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:90%}.empty-symbol{font-size:33px;color:#58859b}.canvas-empty h2{font:650 22px Inter Variable,sans-serif}.canvas-empty p{color:var(--muted)}.modal{border:1px solid var(--line);padding:0;width:460px;max-width:calc(100vw - 32px);max-height:85dvh;background:var(--surface);color:var(--text)}.modal.wide{width:660px}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-inner>.panel-heading{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.modal-actions{display:flex;gap:10px;margin-bottom:19px}.project-list{display:flex;flex-direction:column;gap:10px}.project-list>button{display:flex;align-items:center;gap:13px;text-align:left;padding:15px;border:1px solid var(--line);border-radius:8px}.project-list>button:hover{border-color:#7ba0b0;background:var(--hover)}.project-list>button>span:nth-child(2){flex:1}.project-list strong{font-size:13px}.project-list small{display:block;font-size:11px;color:var(--muted);margin-top:6px}.export-option{display:flex;align-items:center;width:100%;gap:15px;text-align:left;border:1px solid var(--line);padding:18px 15px;border-radius:8px;margin-bottom:11px;color:var(--accent)}.export-option:hover{background:var(--hover);border-color:#9bb5c0}.export-option>span{flex:1}.export-option strong{display:block;font-size:14px;color:var(--text);font-weight:600}.export-option small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.upload-zone{display:flex;align-items:center;flex-direction:column;gap:12px;width:100%;border:1px dashed #a2bbc8;border-radius:10px;padding:30px 20px;background:var(--hover);color:var(--accent);margin-bottom:25px}.upload-zone strong{font-size:14px}.upload-zone span{font-size:12px;color:var(--muted)}.logo-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.logo-card{border:1px solid var(--line);padding:14px;border-radius:9px}.logo-preview{display:flex;justify-content:space-between;align-items:flex-start;height:70px}.logo-preview img{width:52px;height:52px;object-fit:contain}.shared-icons{display:flex;gap:8px;flex-wrap:wrap}.shared-icons img{width:24px;height:24px;object-fit:contain}.local-logo-heading{margin:16px 0 8px;font-size:13px;font-weight:550;color:var(--muted)}.local-logo-item{display:inline-flex;align-items:center;gap:8px}.local-logo-item span{color:var(--accent);font-size:12px}.help-content h3{font-size:14px;margin:18px 0 8px}.help-content p{font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:15px;max-width:calc(100vw - 30px);padding:13px 15px 13px 20px;border:1px solid #b8d2c8;box-shadow:0 8px 40px #19344122;background:var(--surface);border-radius:9px;font-size:13px}.toast.error{border-color:#d9a6a6;color:#b75555}.loading{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column}.loading h1{font-family:Inter Variable,sans-serif}.loading p{color:var(--muted)}[data-theme=dark]{background:var(--bg);color:var(--text)}[data-theme=dark] .device-node{border-color:#3c5265}[data-theme=dark] .node-main strong{color:#d5e0eb}[data-theme=dark] .info-box{background:#223744;border-color:#304756}[data-theme=dark] .overview-icon{background:#253b4a}@media(min-width:1600px){.library-item>span:nth-child(2){font-size:13px}.workspace-heading{padding:25px 30px}}@media(max-width:1200px){.save-status,.toolbar-hint,.project-tag{display:none}.help-button{font-size:0;gap:0}.workspace-heading{padding:19px}}@media(max-width:980px){.inspector{position:absolute;right:0;top:74px;bottom:0;z-index:6;box-shadow:-8px 0 35px #203d5912}.inspector-empty,.save-button{display:none}.library-item{gap:7px}.library-item>span:nth-child(2){font-size:11px}.brand{font-size:21px}.library .panel-heading{padding-left:14px}.search{margin-left:10px;margin-right:10px}}@media(max-width:680px){.brand{font-size:18px}.brand>span:first-child{width:30px;height:30px;margin-right:7px}.brand svg{width:20px}.header-separator,.project-title .project-tag{display:none}.primary{padding:9px;font-size:12px}.app-header .primary svg:last-child{display:none}.app-header>.primary>span{display:none}.library>.panel-heading,.library .search,.library-section h3,.library-item>span:nth-child(2),.library-item>.drag-hint,.library-footer p,.library-footer .count,.library-footer button>span{display:none}.library-scroll{padding:0 6px}.library-item{padding:4px;justify-content:center}.library-footer button{justify-content:center}.library-section{border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}.library-item>svg:last-child{display:none}.workspace-heading{padding:15px}.toolbar{overflow:auto}.toolbar .tool-group:first-child,.react-flow__minimap{display:none}.modal-actions{flex-wrap:wrap}.logo-grid{grid-template-columns:1fr}.project-list>button{padding:12px}.toast{width:90%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.library-item>span:nth-child(2),.field>span,.field input,.field select,.field textarea,.tabs button,.full-button,.primary,.secondary,.panel-heading h2{font-size:14px}.library-section h3,.section-label,.workspace-eyebrow,.search input,.library-footer p,.tiny-label,.count,.project-tag,.node-main>div>span,.node-detail>span:first-child,.node-badge,.toolbar-hint,.help-list,.shortcuts>span,kbd,.info-box p,.stats span,.text-button,.port-editor summary,.port-editor summary strong,.port-editor summary>span:last-child,.vm-row small,.text-link{font-size:12px}.muted,.help-content p{font-size:14px}.help-content p{line-height:1.8}.library-item{min-height:44px}.inspector h4{font-size:12px;letter-spacing:normal}.info-box{line-height:1.7}.toolbar-hint{font-size:11px}.library-section h3{letter-spacing:normal}.node-main>div>span{font-size:12px}.search input{font-size:12px}.node-badge{font-size:10px!important}.shortcuts{gap:14px}.shortcuts>span{flex-wrap:wrap}.port-editor summary>span:last-child{font-size:11px}.stats strong{font-size:28px}@media(max-width:1200px){.library-item>span:nth-child(2){font-size:13px}}@media(max-width:680px){.workspace-eyebrow{font-size:10px}}.workspace-heading{background:linear-gradient(110deg,var(--surface),var(--bg));border-left:3px solid #276f87;padding-left:24px}.workspace-eyebrow{letter-spacing:normal;color:#58768c;font-weight:600}.workspace-heading h1{font-size:23px;letter-spacing:normal}.library{background:var(--surface)}.library-section h3{color:#637d91;font-weight:700}.library-item:hover{box-shadow:inset 2px 0 #377e96;background:var(--hover)}.device-node{border-radius:7px;border-color:#bdccd9;box-shadow:0 2px 5px #203e5110;position:relative}.device-node:before{content:"";position:absolute;left:12px;right:12px;top:0;height:2px;background:var(--device-color);border-radius:0 0 2px 2px;opacity:.85}.node-main{padding-top:14px}.node-icon{border-radius:7px}.node-detail{background:var(--bg);border-radius:0 0 7px 7px}.node-detail>span:first-child{font-size:11px;letter-spacing:normal}.port-dots i{width:6px;height:6px}.node-main strong{font-family:Inter Variable,sans-serif;font-size:14px;font-weight:600;letter-spacing:normal}.device-node.is-selected{border-color:#2b819f;box-shadow:0 0 0 3px #2b819f19,0 3px 10px #1b476616}.node-lock{position:absolute;right:7px;bottom:8px;display:grid;place-items:center;color:#587387;background:var(--node);padding:2px;z-index:1}.is-locked .node-detail{padding-right:29px}.react-flow__node-device:has(.is-locked){cursor:default}.position-lock{margin:15px 20px 0;padding:11px 10px;display:flex;align-items:center;gap:8px;border-radius:6px;text-align:left;color:#607d90}.position-lock span{flex:1}.position-lock small{font-size:10px;text-transform:none;letter-spacing:normal}.position-lock:hover{border-color:#80a3b7}.canvas-feedback{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:5;max-width:90%;width:max-content;border:1px solid #dfc695;border-radius:6px;padding:9px 13px;font-size:12px;box-shadow:0 3px 12px #233e5110;pointer-events:none}.container-node{border-radius:9px}.container-node>span{background:var(--bg);padding:4px 8px;border-left:2px solid currentColor;left:12px;top:12px;letter-spacing:normal}.inspector>.panel-heading{background:var(--bg)}.inspector-empty h3{font-size:21px}[data-theme=dark] .app-header{border-top:0}[data-theme=dark] .position-lock.locked{background:#223d50;color:#a6cfdf;border-color:#426b80}[data-theme=dark] .canvas-feedback{background:#403820;border-color:#6a5c33;color:#ecd69e}@media(max-width:680px){.workspace-heading{padding-left:13px}.workspace-heading h1{font-size:19px}.canvas-feedback{font-size:11px;max-width:94%}}.position-lock{flex-shrink:0}.toolbar{border-top:0}.canvas-panning .react-flow__pane,.canvas-panning .react-flow__node,.canvas-panning .react-flow__handle{cursor:grab}.canvas-panning .react-flow__pane.dragging{cursor:grabbing}.brand{min-width:190px;gap:6px;color:#102c46;cursor:default}.brand-symbol{width:50px;height:50px;flex-shrink:0;object-fit:contain}.brand-name{font-size:25px;line-height:1;letter-spacing:normal;white-space:nowrap;font-feature-settings:"ss01"}.brand .brand-light{background:linear-gradient(110deg,#0661df 8%,#007fc0 52%,#008b91);background-clip:text;-webkit-background-clip:text;color:transparent}[data-theme=dark] .brand{color:#eef5fc}[data-theme=dark] .brand .brand-light{background-image:linear-gradient(110deg,#68aaff,#39d8d0)}@media(max-width:680px){.brand{min-width:0;gap:3px}.brand-symbol{width:36px;height:36px}.brand-name{font-size:20px;letter-spacing:normal}}:root{--font-ui: "Inter Variable", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;--type-small: 12px;--type-label: 13px;--type-body: 14px;--type-title: 16px;font-family:var(--font-ui);font-optical-sizing:auto}body{line-height:1.5}h1,h2,h3,h4{font-family:var(--font-ui);font-weight:600;line-height:1.35}.panel-heading h2,.selection-heading strong{font-size:var(--type-title);font-weight:600}.library-section h3,.section-label,.inspector h4{font-size:var(--type-label);font-weight:600;color:var(--text)}.library-section h3{margin:18px 7px 8px}.section-label{margin-bottom:12px}.project-title input,.node-main strong{font-size:var(--type-body);font-weight:600}.library-item,.field input,.field select,.field textarea,.full-button,.primary,.secondary,.tabs button,.help-content p,.muted{font-size:var(--type-body)}.library-item{font-weight:400}.field>span,.field>label,.search input,.port-editor summary,.text-button{font-size:var(--type-label)}.field>span,.field>label{font-weight:500;color:var(--text)}.selection-heading small,.tiny-label,.count,.project-tag,.position-lock small,.library-footer p,.node-main>div>span,.node-detail>span:first-child,.help-list,.shortcuts>span,kbd,.info-box p{font-size:var(--type-small);font-weight:400;color:var(--muted)}.node-detail>span:first-child{font-family:var(--font-ui)}.node-detail>span.technical-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.container-node>span{font-size:var(--type-label);font-weight:600}input::placeholder,textarea::placeholder{opacity:1}.brand-name{font-weight:600}.brand .brand-light{font-weight:700}.site-member{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 8px;text-align:left;border-radius:5px;overflow-wrap:anywhere;font-size:13px}.site-member:hover{background:var(--hover)}.site-member small{color:var(--muted);font-size:12px}.node-main>div>span{max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-kind-site{border:2px solid #296b70;border-left-width:6px}.device-kind-site .node-detail{border-radius:0 0 4px}.device-kind-site .node-icon{color:#296b70}.device-kind-wan{border:2px solid #ba6b16;border-radius:30px}.device-kind-wan:before,.device-kind-cloud:before,.device-kind-saas:before{display:none}.device-kind-wan .node-detail{border-radius:0 0 28px 28px;padding-left:24px}.device-kind-saas{border:2px dashed #8055ad;border-radius:12px}.device-kind-saas .node-detail{border-radius:0 0 10px 10px}.device-kind-cloud{background:transparent;border:none;box-shadow:none}.device-kind-cloud.is-selected{box-shadow:none}.internet-silhouette{position:absolute;inset:0;pointer-events:none}.internet-silhouette path{fill:var(--node);stroke:#347ac0;stroke-width:2}.device-kind-cloud.is-selected .internet-silhouette path{stroke-width:3;fill:var(--hover)}.device-kind-cloud .node-main,.device-kind-cloud .node-detail{position:relative}.device-kind-cloud .node-icon{display:none}.device-kind-cloud .node-main{justify-content:center;text-align:center;padding-top:22px}.device-kind-cloud .node-detail{justify-content:center;border:0;background:none;padding:0 25px}.device-kind-cloud .port-dots{display:none}.library{width:268px}.library[hidden]{display:none}.library .panel-heading{padding:8px 16px}.library-category span{flex:1}.library-category small{font-weight:400;color:var(--muted)}.library-category .folded{transform:rotate(-90deg)}.library-row{display:flex;align-items:center}.library .library-item{flex:1;min-width:0;width:auto;margin:0}.library .library-item:hover{box-shadow:none;background:transparent}.library .library-label{display:flex;flex-direction:column;gap:3px}.library-label strong{font-size:13px;font-weight:500;line-height:1.35}.library-label small{font-size:11px;color:var(--muted);line-height:1.35}.library-add{display:grid;place-items:center;flex-shrink:0;padding:0;border-radius:5px}.library-replace{display:flex;gap:7px;color:var(--muted)}.library-replace>span{min-width:0}.library-replace strong{color:var(--text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}@media(max-width:680px){.library .panel-heading,.library .search,.library .library-footer,.library .library-label{display:flex}.library .library-footer span,.library .library-section h3{display:block}.library .library-item>span:nth-child(2){display:flex}.library .library-footer p{display:block}}.device-node.rack-frame{width:100%;height:100%;border:3px solid #4b6071;background:var(--surface);border-radius:8px}.rack-frame:before{display:none}.rack-heading{height:48px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--hover);border-bottom:2px solid #4b6071}.rack-heading strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.rack-heading span{font-size:12px;font-variant-numeric:tabular-nums}.rack-units{position:absolute;left:0;right:0;pointer-events:none}.rack-unit{display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-top:1px solid var(--line);color:var(--muted);background:linear-gradient(90deg,var(--hover) 34px,transparent 34px,transparent calc(100% - 34px),var(--hover) calc(100% - 34px))}.rack-unit span{width:20px;font-size:11px;text-align:center;font-variant-numeric:tabular-nums}.rack-unit i{flex:1;height:1px;border-top:1px dashed var(--line);margin:0 8px}.device-node.rack-mounted{width:100%;height:100%;min-height:20px;border-radius:3px;border:1px solid var(--device-color);background:var(--node)}.rack-mounted .node-main,.rack-mounted .node-detail,.rack-mounted:before{display:none}.rack-mounted-label{display:flex;align-items:center;gap:6px;height:100%;padding:0 9px}.rack-mounted-label strong{flex:1;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rack-mounted-label small{font-size:10px;color:var(--muted)}.rack-mounted .node-lock{top:5px;right:30px}.rack-mounted .react-flow__handle-top,.rack-mounted .react-flow__handle-bottom,.rack-mounted .react-flow__handle-left{visibility:hidden}.device-node:not(.rack-frame):not(.rack-mounted){width:100%;height:100%;display:flex;flex-direction:column}.device-node:not(.rack-frame):not(.rack-mounted) .node-main{flex:1;min-height:66px}.device-node:not(.rack-frame):not(.rack-mounted) .node-detail{flex-shrink:0}.device-node .node-main>div{flex:1}.device-node .node-main strong,.device-node .node-main>div>span{max-width:100%}.internet-silhouette{width:100%;height:100%}.zoom-control{margin:0!important;background:var(--surface);color:var(--text)}.zoom-control label{display:flex;align-items:center;gap:3px;font-size:12px}.zoom-control input{font-variant-numeric:tabular-nums;padding:2px;border:none;text-align:right;background:transparent}.rack-drop-preview{position:absolute;left:37px;width:240px;z-index:4;border:2px solid #247d8d;border-radius:3px;color:var(--text);background:color-mix(in srgb,var(--surface) 85%,#51b6c8);display:grid;place-items:center;font-size:11px;pointer-events:none}.rack-drop-preview.invalid{border-color:#bd5353;background:color-mix(in srgb,var(--surface) 85%,#e56a6a)}.rack-mounted{cursor:grab}.rack-mounted.is-locked{cursor:default}.language-selector{flex-shrink:0}.language-selector:hover{background:var(--hover);border-color:var(--muted)}.language-flag{width:24px;height:16px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px #102c461a}.field-error{color:#c43b3b;font-size:12px;line-height:1.5;margin:4px 0 0}.field-error:empty{display:none}.app-header .project-title input{padding:8px 10px;border-radius:7px}.primary{box-shadow:0 1px 2px #102c4614}.app-header .icon-button{width:36px;height:36px}.icon-button.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}.tool-group{gap:2px}.library .panel-heading,.inspector>.panel-heading{padding:12px 16px}.panel-heading h2{font-size:14px}.library-category small{font-variant-numeric:tabular-nums;font-size:11px}.library-row.current{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.library-add:hover{box-shadow:0 0 0 1px var(--line)}.selection-heading{gap:10px}.selection-icon{width:38px;height:38px;border-radius:7px}.selection-icon svg{width:21px;height:21px}.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb,var(--muted) 45%,var(--line))}.section-label{padding-top:16px;margin:20px 0 12px}.inspector-footer{padding:12px 16px}.modal{border-radius:12px;box-shadow:0 20px 64px #102c4629}.modal-inner>.panel-heading{padding:16px 20px}.modal-inner>.panel-heading h2{font-size:16px}.modal-body{padding:20px}@media(max-width:680px){.app-header .project-title input{padding:7px 4px;min-width:0}.language-flag{width:21px;height:14px}}.workspace-nav{display:inline-flex;flex:0 0 auto;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}.workspace-nav button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 11px;border:1px solid transparent;border-radius:6px;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}.workspace-nav button:hover{color:var(--text);background:var(--surface)}.workspace-nav button.active{color:var(--accent);background:var(--surface);border-color:var(--line);box-shadow:0 1px 2px #102c460b}.special-workspace{min-height:0;flex:1;display:flex;overflow:hidden}.space-sidebar{width:280px;min-width:260px;flex:0 0 auto;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface);min-height:0}.space-sidebar-heading{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.space-sidebar-heading>div{min-width:0;flex:1}.space-sidebar-heading h2{margin:0;font-size:14px;font-weight:600}.space-sidebar-heading p{margin:2px 0 0;color:var(--muted);font-size:12px}.space-icon,.space-empty-state>span{width:36px;height:36px;display:grid;place-items:center;color:var(--accent);border:1px solid var(--line);border-radius:8px;background:var(--hover)}.space-search{display:block}.space-search input{width:100%;color:var(--text);border-radius:7px}.rack-add-device select,.unit-scale-control select{min-width:0;flex:1;height:36px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font-size:12px}.rack-add-device .primary{padding:6px 9px}.space-inventory{overflow:auto}.inventory-device{width:100%;min-width:0;display:flex;align-items:center;text-align:left;cursor:grab}.inventory-device:hover{background:var(--hover)}.inventory-device:active{cursor:grabbing}.inventory-device:disabled{cursor:not-allowed}.device-icon{display:grid;place-items:center;color:var(--accent)}.inventory-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.inventory-copy strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.inventory-copy small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.unit-pill,.placed-indicator{flex:0 0 auto;padding:2px 6px;color:var(--accent);border-radius:5px;background:var(--hover);font-size:10px}.unit-scale-control{display:flex;align-items:center;border-top:1px solid var(--line)}.unit-scale-control label{flex:1;color:var(--muted)}.unit-scale-control select{height:32px;flex:0 0 80px}.space-main{min-width:0;min-height:0;flex:1;overflow:auto}.space-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 auto 20px}.space-kicker{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}.space-heading h1{margin:0;color:var(--text);letter-spacing:normal}.space-heading p{margin:4px 0 0;color:var(--muted);font-size:13px}.space-empty,.space-empty-state p{color:var(--muted);font-size:12px;line-height:1.55}.space-empty-state{width:min(440px,100%);margin:11vh auto;text-align:center}.space-empty-state>span{width:52px;height:52px;margin:0 auto 12px}.space-empty-state h2{margin:0;color:var(--text)}.space-empty-state p{margin:8px 0 18px}.space-message{width:min(1500px,100%);margin:0 auto 12px;padding:10px 12px;color:var(--text);border:1px solid var(--line);border-radius:7px;background:var(--surface);font-size:12px}.rack-board-list{grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));margin:0 auto}.rack-board{min-width:0}.rack-board-heading{display:flex;align-items:center}.rack-board-icon{width:30px;height:30px;place-items:center;color:var(--accent);border-radius:7px;background:var(--hover)}.rack-board-heading>input{width:90px;flex:1;border:0;outline:none;background:transparent;color:var(--text);font-weight:600}.rack-usage{font-variant-numeric:tabular-nums;white-space:nowrap}.rack-size-field{display:flex;align-items:center;color:var(--muted);white-space:nowrap}.rack-size-field select{height:30px;padding:0 5px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--surface)}.rack-dropzone{overflow-x:auto}.rack-unit-board{display:grid;grid-template-columns:1fr}.rack-unit-row{min-height:0}.rack-installed-device{left:38px;right:38px}.rack-installed-device>svg{flex-shrink:0}.rack-installed-device>strong{overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.rack-installed-device>button,.plan-device>button{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:5px;color:var(--muted)}.rack-installed-device>button:hover,.plan-device>button:hover{color:#b93838;background:var(--hover)}.rack-device-locked{cursor:not-allowed;border-style:dashed}.rack-device-height select{padding:0 2px;border:0;outline:0;background:transparent;color:inherit;font:inherit}.rack-board-legend{display:flex;justify-content:space-between}.plan-list{overflow:auto}.plan-list-item{width:100%;display:flex;align-items:center;gap:9px;margin:2px 0;padding:7px 8px;text-align:left}.plan-list-item:hover{background:var(--hover)}.plan-list-item.active{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.plan-list-icon{flex:0 0 31px;width:31px;height:31px;display:grid;place-items:center;color:var(--accent);border-radius:6px}.plan-list-item>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-list-item strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600}.plan-list-item small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.plan-side-section{display:flex;flex-direction:column;border-top:1px solid var(--line)}.plan-side-section>strong{color:var(--text)}.plan-side-section>small{color:var(--muted)}.plan-inventory{flex:1}.plan-inventory-device{cursor:grab}.placed-indicator{width:7px;height:7px;padding:0;border-radius:50%}.plan-future-hint{gap:8px;padding:12px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.45}.plan-future-hint svg{flex-shrink:0}.plan-main{display:flex;flex-direction:column;padding:18px 22px 0}.plan-heading{width:100%}.plan-heading-fields{min-width:0;flex:1}.plan-heading-fields label{display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.plan-heading-fields label>span{color:var(--muted)}.plan-heading-fields input,.plan-heading-fields select{width:100%;min-width:0;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text)}.plan-actions{display:flex;align-items:center}.plan-actions .secondary{padding:6px 9px}.plan-toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.plan-toolbar button{display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid transparent;border-radius:6px;color:var(--muted)}.plan-toolbar button:hover{background:var(--surface)}.plan-toolbar button.active{color:var(--accent);border-color:var(--line);background:var(--surface)}.plan-toolbar-hint{flex:1;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px}.plan-size{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.plan-scroll{min-height:0;flex:1;overflow:auto}.plan-stage{position:relative;flex:0 0 auto;overflow:hidden;background-size:20px 20px}.plan-stage[style*="background-image: url"]{background-size:100% 100%;background-repeat:no-repeat}.plan-stage.drawing-wall{cursor:crosshair}.plan-pdf-background{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}.plan-walls{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:visible;pointer-events:none}.plan-walls line{stroke:#334c60;stroke-width:10;stroke-linecap:square}.plan-walls circle{fill:#2587a0;stroke:#fff;stroke-width:3}.plan-device{position:absolute;z-index:2;width:148px;height:68px;display:flex;align-items:center;gap:7px;padding:7px;border:1px solid #a7bac9;border-radius:7px;cursor:grab}.plan-device:active{cursor:grabbing}.plan-device-icon{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;color:var(--accent);border-radius:6px;background:var(--hover)}.plan-device-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.plan-device-copy strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600}.plan-device-copy small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.plan-rack{width:180px;height:92px;border:2px solid #73899b;background:repeating-linear-gradient(0deg,var(--surface),var(--surface) 10px,var(--hover) 11px)}.plan-rack .plan-device-icon{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.plan-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);color:var(--muted)}@media(max-width:680px){.app-header .header-separator{display:none}.app-header .project-title{min-width:55px}.app-header .project-title input{width:100%}.workspace-nav{order:1;width:100%;justify-content:center}.workspace-nav button{min-height:30px;padding:0 12px;font-size:12px}.workspace-nav button svg{width:14px;height:14px}.space-sidebar{width:224px;min-width:190px}.rack-board-list{grid-template-columns:minmax(0,1fr)}.plan-heading{flex-direction:column}.plan-heading-fields{flex-wrap:wrap}.plan-heading-fields label{min-width:110px}.plan-toolbar-hint{display:none}}.rack-size-field input{width:54px;height:30px;min-width:0;padding:0 5px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:var(--surface)}.inspector-readonly-fields{display:contents;min-width:0;margin:0;padding:0;border:0}.inspector-readonly-fields:disabled{opacity:1}.rack-port-count{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.rack-port-count input{width:54px;height:36px;padding:0 5px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--surface)}.physical-patch-panel{margin:0 12px 12px;border-top:1px solid var(--line)}.physical-patch-panel>summary{min-height:42px;display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;list-style:none}.physical-patch-panel>summary::-webkit-details-marker{display:none}.physical-patch-panel>summary svg{color:var(--accent)}.physical-patch-panel>summary small{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.physical-patch-form{display:grid;gap:8px;padding:2px 0 12px}.physical-patch-note{margin:0;font-size:11px;line-height:1.4}.physical-patch-form>label{display:grid;gap:4px;color:var(--muted);font-size:11px}.physical-patch-form select{width:100%;min-width:0;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--surface);font:inherit;font-size:12px}.physical-link-add{justify-content:center}.physical-link-list{display:grid;gap:4px;padding:0 0 8px}.physical-link-item{min-width:0;display:flex;align-items:center;gap:8px;padding:7px 6px;border-radius:5px;color:var(--accent);background:var(--hover)}.physical-link-item>span{min-width:0;flex:1;display:grid;gap:2px}.physical-link-item strong,.physical-link-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physical-link-item strong{color:var(--text);font-size:11px;font-weight:550}.physical-link-item small{color:var(--muted);font-size:10px}.physical-link-item button{width:26px;height:26px;display:grid;place-items:center;color:var(--muted);border-radius:4px}.physical-link-item button:hover{color:#b93838;background:var(--surface)}.rack-port-count-label{flex:0 0 auto;color:#536372;font-size:8px;font-variant-numeric:tabular-nums}[data-theme=dark] .rack-port-count-label{color:#e2e7ec}.plan-toolbar{inset:auto;justify-content:flex-start}.plan-toolbar-hint:not([hidden]){flex:1 1 240px;min-width:180px;line-height:1.4}.plan-metric-field{display:grid;gap:3px;padding:0 5px;color:var(--muted);font-size:10px;white-space:nowrap}.plan-metric-field>span:last-child{display:flex;align-items:center;gap:5px}.plan-metric-field input{width:68px;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--text);font-size:12px;font-variant-numeric:tabular-nums}.plan-metric-field input:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent)}.plan-dimension-toggle{display:inline-flex;align-items:center;gap:6px;padding:0 7px;color:var(--muted);font-size:11px;white-space:nowrap}.plan-size{font-size:11px}.plan-walls .plan-room-area{stroke:none}.plan-walls .plan-wall-dimension,.plan-walls .plan-area-label{fill:#293b4c;stroke:#fff;stroke-width:4px;paint-order:stroke;font-family:inherit;font-size:13px;font-weight:600;pointer-events:none}.plan-walls .plan-area-label{font-size:17px}.plan-walls .plan-wall-preview{stroke-width:5px;stroke-dasharray:8 5;stroke-linecap:square;opacity:.8}.plan-walls .plan-wall-endpoint{pointer-events:none}.plan-walls .plan-wall-endpoint.snapped{fill:#168fbd;stroke:var(--surface);stroke-width:3px}.plan-walls .plan-active-wall-anchor{fill:#168fbd;stroke:var(--surface);stroke-width:2.5px;pointer-events:none}.plan-walls .plan-angle-indicator circle{fill:var(--surface);stroke:#168fbd;stroke-width:2px;filter:drop-shadow(0 1px 3px #17212b40)}.plan-walls .plan-wall-hit-area{cursor:pointer}.wall-angle-readout{padding:5px 8px;border-radius:4px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.plan-walls .plan-calibration-preview{stroke:#8a5bd6}.plan-walls .plan-calibration-point{fill:#8a5bd6;stroke:#fff;stroke-width:3px}.plan-scale-bar{position:absolute;right:18px;bottom:18px;z-index:3;display:grid;justify-items:center;gap:3px;padding:5px 7px;border-radius:4px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none}.plan-scale-bar i{height:5px;border:1px solid currentColor;border-top:0}[data-theme=dark] .plan-walls .plan-room-area{fill:#46c7a01c}[data-theme=dark] .plan-walls .plan-wall-dimension,[data-theme=dark] .plan-walls .plan-area-label{fill:#e9f0f5;stroke:#353b43}[data-theme=dark] .plan-walls .plan-wall-endpoint.snapped,[data-theme=dark] .plan-walls .plan-active-wall-anchor{fill:#69c9e5}[data-theme=dark] .plan-walls .plan-angle-indicator circle{stroke:#69c9e5}@media(max-width:760px){.plan-toolbar-hint:not([hidden]){flex-basis:100%;order:10}.plan-metric-field{padding:2px}.plan-size{margin-left:auto}}:root{--surface: #f8f9fb;--bg: #eceff3;--line: #dce1e7;--text: #23282e;--muted: #5a6572;--accent: #087bfa;--hover: #eef1f5;--input: #fcfcfd;--node: #fcfcfd;--warning: #a35f00;color:var(--text);background:var(--bg);font-size:14px}[data-theme=dark]{--surface: #3a414a;--bg: #30353d;--line: #5b6470;--text: #f4f6f9;--muted: #d0d6de;--accent: #86c0ff;--hover: #48505a;--input: #424a54;--node: #424a54;--warning: #f0b25a}.app{min-height:500px}.app-header{height:50px;min-height:50px;padding:0 18px 0 13px;gap:16px;background:var(--surface);border-top:0;box-shadow:none}.app-header .brand{min-width:0;gap:8px}.app-header .brand-symbol{width:30px;height:32px}.app-header .brand-name{font-size:21px;font-weight:550;letter-spacing:-.6px}.app-header .brand-version{align-self:flex-end;margin:0 0 7px -3px;color:var(--muted);font-size:11px;font-weight:500;white-space:nowrap}.header-separator{height:20px;margin:0 6px}.project-title input{width:min(320px,100%);max-width:none;font-size:14px;font-weight:450;padding:6px 9px;border:1px solid transparent;background:transparent}.project-title input:hover{background:var(--hover)}.language-selector{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 7px;border:0;background:transparent;color:var(--text);font-size:12px;font-weight:550;border-radius:5px}.language-selector:hover,.language-selector[aria-expanded=true]{background:var(--hover)}.language-menu-wrap{position:relative;flex-shrink:0}.language-menu{position:absolute;z-index:30;top:calc(100% + 7px);right:0;min-width:164px;padding:4px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 8px 24px #17283a1c}.language-menu-item{display:flex;width:100%;min-height:36px;align-items:center;gap:9px;padding:0 9px;border-radius:4px;color:var(--text);text-align:left;font-size:13px}.language-menu-item:hover,.language-menu-item[aria-checked=true]{background:var(--hover)}.language-menu-item>span{flex:1}.language-menu-item>svg:last-child{color:var(--accent)}.export-option>strong{flex:1}.primary,.secondary{box-shadow:none}.primary,[data-theme=dark] .primary{background:#087bfa;border-color:#087bfa}.primary:hover{background:#0869d6}.secondary{background:var(--surface);border-color:var(--line)}.icon-button{width:34px;height:34px;color:var(--muted);border-radius:5px}.icon-button.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.app-workspace-shell,.app-workspace-content{display:flex;flex:1;min-width:0;min-height:0}.workspace-rail{width:50px;flex:0 0 50px;padding:12px 7px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);background:var(--surface);z-index:9}.workspace-rail-main,.workspace-rail-bottom{display:flex;flex-direction:column;gap:8px}.workspace-rail-item{position:relative;display:grid;place-items:center;width:35px;height:38px;padding:0;color:var(--muted)}.workspace-rail-item:hover{background:var(--hover)}.workspace-rail-item.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}.workspace-rail-item.active:before{content:"";position:absolute;left:-7px;width:2px;height:22px;background:var(--accent)}.workspace-rail-item span{display:none;position:absolute;left:44px;top:7px;padding:6px 9px;border-radius:4px;background:var(--text);color:var(--surface);font-size:12px;white-space:nowrap}.workspace-rail-item:hover span,.workspace-rail-item:focus-visible span{display:block}.editor-layout{min-width:0;position:relative;padding:16px;gap:20px;background:var(--bg)}.library,.space-sidebar{width:clamp(330px,25vw,380px);flex:0 0 auto;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.library[hidden],.space-sidebar[hidden]{display:none}.library>.panel-heading{min-height:60px;padding:12px 16px 8px 20px}.panel-heading h2,.space-sidebar-heading h2{font-size:16px;font-weight:550}.library .search{height:40px;margin:0 16px 14px;padding:8px 11px;border:0;background:var(--hover);border-radius:5px}.library .search input{font-size:14px}.library .library-scroll{scrollbar-width:thin}.library-category{display:flex;width:100%;align-items:center;gap:8px;border:0;border-radius:5px;color:var(--text);text-align:left;font-size:13px;font-weight:600;background:transparent}.library-category:hover{background:var(--hover)}.library-category>svg{order:2;margin-left:auto;color:var(--muted)}.library-category>span:not(.sr-only){flex:1}.library-row{margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}.library-row:last-child{border-bottom:0}.library-row:hover,.library-row.current{background:var(--hover);border-color:var(--line)}.library .library-item{border:0;border-radius:5px}.library .library-glyph{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;background:color-mix(in srgb,var(--symbol-color) 13%,var(--surface));color:var(--symbol-color);border:0;border-radius:50%}.library .library-glyph .network-symbol{width:100%;height:100%}.library .library-label{min-width:0}.library .library-brand{display:block;margin-top:2px;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.library-custom-logo{width:34px;height:34px;object-fit:contain}.library .library-label{flex:1}.library .library-label strong{font-size:14px;line-height:1.5;font-weight:500;color:var(--text)}.library-add{width:30px;height:30px;margin-right:3px;background:var(--hover);color:var(--muted);border:0}.library-add:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.library-replace{margin:0 16px 10px;padding:10px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-size:13px}.library-replace strong{display:inline}.library-footer{padding:8px 16px 12px;border-top:1px solid var(--line)}.library-footer button{font-size:13px}.library-footer p{margin:6px 0 0;font-size:12px;text-align:left;line-height:1.5}.network-symbol{display:grid;place-items:center;width:100%;height:100%;color:var(--symbol-color)!important;background-color:var(--symbol-tint);border-radius:50%}.network-symbol>svg{color:var(--symbol-color)!important;stroke:var(--symbol-color)!important}.workspace{position:relative;min-height:0;border:0;border-radius:0;overflow:hidden;background:var(--bg)}.canvas{flex:1;min-height:0}.canvas-context{position:absolute;left:16px;top:8px;display:flex;align-items:center;gap:9px;color:var(--text);background:var(--surface);padding:10px 13px;border:1px solid var(--line);border-radius:5px;font-size:14px;z-index:3}.canvas-context svg{color:var(--muted)}.toolbar{position:absolute;left:50%;transform:translate(-50%);z-index:6;width:max-content;max-width:calc(100% - 24px);height:48px;gap:3px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 2px 6px #182d4610}.toolbar .icon-button,.tool-menu>summary{width:33px;height:34px;border-radius:4px}.tool-divider{height:22px;margin:0 4px}.tool-menu{position:relative}.tool-menu>summary{display:grid;place-items:center;cursor:pointer;color:var(--muted);list-style:none}.tool-menu>summary::-webkit-details-marker{display:none}.tool-menu[open]>summary,.tool-menu>summary:hover{color:var(--accent);background:var(--hover)}.tool-menu-content{position:absolute;bottom:46px;right:-12px;width:245px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:7px;box-shadow:0 6px 25px #172e4414}.tool-menu-content>button{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:8px 10px;font-size:13px;text-align:left;border-radius:4px}.tool-menu-content>button:hover:not(:disabled){background:var(--hover)}.tool-check{margin-left:auto;color:var(--accent)}.zoom-control{display:flex;align-items:center;gap:3px;left:12px!important;bottom:14px!important;padding:4px;box-shadow:none;border:1px solid var(--line);border-radius:5px}.zoom-control button{width:30px;height:30px;display:grid;place-items:center;border-radius:4px}.zoom-control button:hover{background:var(--hover)}.zoom-control input{width:42px;font-size:13px;appearance:textfield}.zoom-control input::-webkit-inner-spin-button{appearance:none}.react-flow__minimap{top:10px;right:10px;bottom:auto;margin:0;border:1px solid var(--minimap-border);border-radius:6px;box-shadow:0 2px 8px #17283a14;opacity:.94}.react-flow__minimap:hover{opacity:1}.react-flow__minimap svg{display:block}.canvas-empty h2{font-size:22px;font-weight:500;letter-spacing:normal}.canvas-empty p{font-size:14px;line-height:1.8}.canvas-empty .empty-symbol{display:none}.device-node.network-device:not(.rack-mounted){border:1px solid color-mix(in srgb,var(--line) 88%,var(--text));background:var(--surface);border-radius:7px;box-shadow:0 1px 3px #182d4608;filter:none}.device-node.network-device:not(.rack-mounted):before{display:none}.device-node.network-device:not(.rack-mounted):hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.device-node.network-device.is-selected:not(.rack-mounted){border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}.diagram-equipment{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;border-radius:inherit;overflow:hidden}.equipment-card-header{display:flex;align-items:center;flex:1;min-height:0;gap:9px;padding:6px 8px}.equipment-card-symbol{align-self:center;flex:0 0 38px;width:38px;height:38px;display:grid;align-items:center;border-radius:50%}.equipment-card-symbol>.network-symbol{width:100%;height:100%}.equipment-brand-logo{width:22px;height:22px;position:absolute;top:10px;right:10px;object-fit:contain}.equipment-card-identity{min-width:0;flex:1}.diagram-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:var(--text);line-height:21px}.equipment-card-subtitle{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-card-info{display:flex;align-items:center;gap:10px;min-width:0;flex:0 0 21px;padding:2px 8px 4px 54px;border-top:0;color:var(--muted);font-size:12px;line-height:18px}.vm-collapse-toggle{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:1px 5px;border-radius:4px;color:var(--muted);font-size:11px}.vm-collapse-toggle:hover{color:var(--accent);background:var(--hover)}.vm-child{display:flex;align-items:center;gap:7px;padding:4px 7px;border:1px solid color-mix(in srgb,#7559c5 24%,var(--line));border-radius:6px;background:color-mix(in srgb,#7559c5 5%,var(--surface));color:#7559c5;box-shadow:0 1px 3px #182d4608}.vm-child-copy{display:flex;min-width:0;flex:1;flex-direction:column;line-height:15px}.vm-child-copy strong,.vm-child-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vm-child-copy strong{color:var(--text);font-size:11px;font-weight:600}.vm-child-copy small{color:var(--muted)}.vm-child .react-flow__handle{width:6px;height:6px}.diagram-detail,.equipment-card-metric{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.diagram-detail{flex:1;font-variant-numeric:tabular-nums}.equipment-card-metric{flex:0 1 auto;max-width:50%;margin-left:auto}.equipment-card-metric:only-child{max-width:100%;margin-left:0}.equipment-card-header .node-logo{position:static;flex:0 0 20px;width:20px;height:20px;padding:0;background:transparent}.network-device:not(.rack-mounted) .node-lock{top:5px;right:5px;z-index:1;background:transparent}.network-device.is-locked:not(.rack-mounted) .equipment-card-header{padding-right:24px}.inspector{width:320px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.inspector>.panel-heading{height:54px;padding:12px 18px}.selection-heading{min-height:74px;padding:15px 18px}.selection-heading strong{font-size:16px}.selection-heading small{font-size:12px}.selection-icon{border:0;background:transparent}.tabs{gap:20px;padding:0 18px}.tabs button{font-size:13px;padding:12px 0}.inspector-body{padding:20px}.field{gap:7px;margin-bottom:17px}.field>span,.section-label{font-size:13px;color:var(--muted);font-weight:450;letter-spacing:normal;text-transform:none}.field input,.field select,.field textarea{padding:9px 10px;font-size:14px;border-radius:5px}.position-lock{border:0;border-bottom:1px solid var(--line);background:transparent;font-size:13px}.position-lock small{display:none}.special-workspace{padding:16px;margin:0;gap:24px;border:0;border-radius:0;background:var(--bg)}.space-sidebar-heading{padding:19px 20px 14px;min-height:64px;border:0}.space-sidebar-heading .space-icon,.space-sidebar-heading p{display:none}.space-search{margin:0 16px 16px}.space-search input{height:40px;padding:0 12px;background:var(--hover);border:0;font-size:14px}.rack-add-device select{height:36px;font-size:13px}.space-inventory{flex:1}.inventory-device{border:0;border-bottom:1px solid var(--line);border-radius:0}.inventory-device:hover{border-color:var(--line)}.device-icon{background:transparent;border-radius:0}.unit-pill{background:none;font-size:13px;color:var(--muted)}.unit-scale-control{padding:16px;gap:12px}.unit-scale-control label,.unit-scale-control select{font-size:13px}.space-main{padding:0}.space-heading{min-height:54px;margin-bottom:20px;max-width:none}.space-heading h1{font-size:18px;font-weight:500}.space-kicker,.space-heading p{display:none}.rack-board-list{overflow-x:auto;padding-bottom:20px}.rack-board-heading{flex-wrap:wrap}.rack-size-field input{font-size:13px}.space-empty{padding:16px 4px;font-size:14px}.space-empty-state h2{font-size:22px;font-weight:500}.space-empty-state p{font-size:14px;line-height:1.8}.space-empty-state>span{border:0;background:none}.plan-workspace{position:relative}.plan-sidebar{order:2;width:310px}.plan-main{order:1;position:relative;min-width:0;overflow:hidden}.plan-heading{min-height:44px;margin-bottom:14px;align-items:flex-start;gap:14px}.plan-picker{z-index:7;position:relative;min-width:190px;max-width:320px}.plan-picker>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.plan-picker>summary::-webkit-details-marker{display:none}.plan-picker>summary>span:first-of-type{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.picker-chevron{margin-left:auto;color:var(--muted)}.plan-picker-content{position:absolute;top:48px;left:0;width:320px;max-height:calc(100dvh - 165px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding-bottom:16px;box-shadow:0 6px 22px #16263616}.plan-picker-content .space-sidebar-heading{min-height:0;padding:16px}.plan-picker-content .space-sidebar-heading .icon-button{display:none}.plan-create-button{margin:0 16px 10px}.plan-list{padding:0 12px 12px}.plan-list-item{min-height:56px;border:0;border-radius:4px}.plan-list-item strong{font-size:14px}.plan-list-item small{font-size:12px}.plan-list-icon{background:none;border:0}.plan-heading-fields{display:flex;flex-direction:column;align-items:stretch;margin:4px 16px 0;padding-top:16px;border-top:1px solid var(--line);gap:14px}.plan-heading-fields label>span{font-size:12px}.plan-heading-fields input,.plan-heading-fields select{height:36px;font-size:14px}.plan-actions{gap:8px;margin-left:auto}.plan-toolbar{position:absolute;z-index:5}.plan-toolbar button{font-size:13px;min-height:34px}.plan-toolbar .plan-delete-wall>svg{color:#c44747}.plan-toolbar-hint,.plan-size{display:none}.plan-scroll{padding:8px 0 70px}.plan-stage{border:0;border-radius:0;box-shadow:none}.plan-side-section{padding:20px;border:0;gap:8px}.plan-side-section>strong{font-size:16px;font-weight:500}.plan-side-section>small{font-size:13px;line-height:1.6}.plan-footer{min-height:30px;font-size:12px;border:0}.plan-device{box-shadow:none}.plan-device-copy strong{font-size:13px}.plan-device-copy small{font-size:12px}.plan-future-hint{display:none}[data-theme=dark] .rack-dropzone{background:#383d43}[data-theme=dark] .rack-unit-row{background:none;color:#b2bdc9}[data-theme=dark] .rack-installed-device{color:#afc0d3}@media(max-width:1250px){.library,.rack-workspace .space-sidebar{width:310px}.inspector{width:290px}.plan-sidebar{width:270px}.toolbar{gap:1px;padding:5px}.tool-divider{margin:0 2px}}@media(max-width:900px){.editor-layout{padding:12px}.inspector{position:absolute;top:12px;bottom:12px;right:12px;z-index:8;width:300px;box-shadow:0 4px 20px #15283e18}.plan-sidebar{width:240px}.plan-actions .secondary{font-size:12px}.plan-picker{min-width:130px}.react-flow__minimap{display:none}}@media(max-width:680px){.app-header{height:50px;min-height:50px;flex-wrap:nowrap;gap:7px;padding:0 9px}.app-header .brand-name,.app-header .brand-version,.header-separator{display:none}.app-header .brand{min-width:0}.app-header .brand-symbol{width:28px;height:30px}.project-title input{min-width:0;font-size:13px;padding:5px}.app-header .primary{padding:6px 8px}.app-header .primary>span,.app-header .primary>svg:last-child{display:none}.workspace-rail{width:44px;flex-basis:44px;padding:10px 4px}.editor-layout{padding:6px}.library{position:absolute;top:6px;bottom:6px;left:6px;width:min(330px,calc(100% - 12px));z-index:7;box-shadow:0 4px 20px #15283e18}.library .library-label,.library .library-item>span:nth-child(2){display:flex}.library .panel-heading,.library .search,.library .library-footer{display:flex}.library .library-footer{display:block}.toolbar{max-width:calc(100% - 8px)}.toolbar .icon-button,.tool-menu>summary{width:27px}.tool-divider{margin:0 1px}.canvas-context{left:8px}.inspector{top:6px;bottom:6px;right:6px;max-width:calc(100% - 12px)}.special-workspace{overflow:auto;gap:14px}.rack-workspace .space-sidebar{width:280px}.plan-workspace{flex-direction:column;overflow:auto}.plan-sidebar{width:100%;min-height:240px;max-height:330px;flex:0 0 auto}.plan-actions .secondary{min-width:34px}.plan-picker-content{width:min(300px,calc(100vw - 78px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}.rack-installed-device>strong{line-height:14px;font-size:11px}.rack-installed-device>button{width:16px;height:16px;flex-basis:16px}.rack-installed-device .rack-device-height{height:15px;border:0;padding:0;background:transparent}.rack-device-height select{line-height:14px}.plan-toolbar-hint:not([hidden]){display:block;position:absolute;left:50%;transform:translate(-50%);max-width:310px;width:max-content;padding:8px 12px;font-size:13px;color:var(--text);white-space:normal;text-align:center;background:var(--surface);border-radius:4px}.toolbar{bottom:92px}.network-device .react-flow__handle{z-index:2;opacity:0}.network-device:hover .react-flow__handle,.network-device.is-selected .react-flow__handle,.react-flow:has(.react-flow__connection) .network-device .react-flow__handle{opacity:1}.library-footer button{color:var(--text)}[data-theme=dark] .icon-button.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}@media(max-width:680px){.toolbar{bottom:92px}.plan-main{height:calc(100dvh - 90px);min-height:500px;flex:0 0 auto}}.equipment-display-settings{margin-top:20px;padding-top:4px;border-top:1px solid var(--line)}.equipment-position-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 0 14px;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.equipment-switch-track{display:inline-flex;align-items:center;flex:0 0 34px;height:20px;padding:3px;border-radius:12px;background:var(--muted)}.equipment-switch-track>span{width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .12s ease}.equipment-position-switch[aria-checked=true] .equipment-switch-track{background:var(--accent)}.equipment-position-switch[aria-checked=true] .equipment-switch-track>span{transform:translate(14px)}.equipment-position-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.equipment-display-dimensions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.equipment-display-dimensions .field{min-width:0}.dimension-reset-button{grid-column:1 / -1;justify-self:end;display:inline-flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid transparent;border-radius:5px;color:var(--muted);background:transparent;font:inherit;font-size:11px;cursor:pointer}.dimension-reset-button:hover:not(:disabled){border-color:var(--line);color:var(--accent);background:var(--hover)}.dimension-reset-button:disabled{opacity:.45;cursor:not-allowed}.equipment-display-settings>.section-label{border-top:0;margin-top:8px}.diagram-equipment.has-brand-logo .equipment-card-header{padding-right:42px}.network-device.is-locked:has(.has-brand-logo) .node-lock{top:38px;right:13px}.device-kind-hypervisor .equipment-card-header{flex:0 0 76px;align-items:center;border-bottom:1px solid var(--line)}.hypervisor-content{flex:1;min-height:0;background:color-mix(in srgb,var(--accent) 3%,var(--surface));color:var(--muted);font-size:11px;padding:4px 12px}.hypervisor-tools{position:absolute;bottom:3px;right:10px;display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.hypervisor-tools button{display:grid;place-items:center;border:0;padding:2px;color:var(--text);background:var(--surface);border-radius:3px;cursor:pointer}.hypervisor-tools button:disabled{opacity:.35;cursor:default}.hypervisor-tools button:hover:not(:disabled){background:var(--hover)}.vm-child>.network-symbol{width:24px;height:24px;flex:0 0 24px}.vm-child:has(.equipment-brand-logo){padding-right:34px}.vm-child .equipment-brand-logo{width:16px;height:16px;top:7px;right:8px}.vm-child-copy small{font-size:10px}.device-node.network-device.vm-child{flex-direction:row;align-items:center;position:relative}.vm-child-copy{overflow:hidden}.logo-import-button{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px}.default-icon-card>strong{display:block;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.default-icon-card>button{display:inline-flex;align-items:center;gap:5px;margin:8px}.rack-add-device{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.rack-add-device>select{grid-column:1 / -1}.rack-inventory-item{border-bottom:1px solid var(--line)}.rack-port-config{padding:0 8px 7px}.rack-port-config>summary{color:var(--muted);font-size:11px;cursor:pointer}.rack-port-config-list{display:grid;gap:4px;max-height:210px;overflow:auto;padding:6px 0 0}.rack-port-config-row{display:grid;grid-template-columns:minmax(0,1fr) 66px 24px;align-items:center;gap:4px}.rack-port-config-row input,.rack-port-config-row select{min-width:0;width:100%;height:26px;padding:0 5px;font-size:10px}.rack-port-config-row button{width:24px;height:24px;display:grid;place-items:center;color:var(--muted)}.rack-port-config-row button:hover:not(:disabled){color:#b93838}.rack-inventory-item .inventory-device{border-bottom:0}.rack-port-strip{max-width:42%;flex:0 1 42%;display:flex;align-items:center;gap:1px;overflow:hidden;padding:2px 3px;border:1px solid #66727d;border-radius:2px}.rack-port-strip i{min-width:2px;height:6px;flex:1 1 3px;border-radius:1px}[data-theme=dark] .rack-installed-device>strong{color:#f3f5f7}.plan-toolbar{left:50%;bottom:20px;transform:translate(-50%);display:flex;align-items:center;flex-wrap:nowrap;gap:3px;width:max-content;max-width:calc(100% - 24px);height:48px;min-height:48px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 2px 6px #182d4610}.plan-toolbar .plan-tool-switch,.plan-toolbar .tool-group{display:inline-flex;align-items:center;flex:0 0 auto;gap:3px;padding:0;border:0;background:transparent}.plan-toolbar .icon-button,.plan-toolbar .plan-tool-mode,.plan-toolbar .plan-utility-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:4px;color:var(--muted)}.plan-toolbar .icon-button.active,.plan-toolbar .plan-tool-mode.active,.plan-toolbar .plan-utility-button.active{color:var(--accent);border-color:transparent;background:color-mix(in srgb,var(--accent) 10%,var(--surface));box-shadow:none}.plan-toolbar .tool-divider{display:block;flex:0 0 1px;height:22px;margin:0 4px;background:var(--line)}.plan-toolbar .plan-delete-wall>svg,.plan-toolbar .plan-delete-wall:disabled>svg{color:#c44747}.plan-toolbar .plan-scale-inline{display:inline-flex;align-items:center;flex:0 0 auto;gap:6px;padding:0 4px;color:var(--text);font-size:12px}.plan-toolbar .plan-scale-inline>span{font-size:12px}.plan-toolbar .plan-scale-inline input{width:54px;height:30px;padding:0 5px;text-align:right;border-radius:4px}.plan-toolbar .plan-scale-inline small{color:var(--muted);font-size:11px}.plan-toolbar .plan-metric-field{display:inline-flex;align-items:center;gap:5px}.plan-toolbar .plan-metric-field>span:first-child{font-size:11px}.plan-toolbar .plan-metric-field>span:last-child{gap:3px}.plan-toolbar .plan-metric-field input{width:54px;height:30px}.plan-toolbar .plan-dimension-toggle{gap:5px;padding:0 4px;font-size:11px}.plan-toolbar .plan-size{display:none}.plan-toolbar-hint:not([hidden]){bottom:54px}@media(max-width:900px){.plan-toolbar{flex-wrap:wrap;justify-content:center;height:auto}}.plan-walls .plan-angle-indicator{pointer-events:none}.plan-walls .plan-angle-indicator path{fill:none;stroke-width:1.5px;stroke-linecap:round}.plan-walls .plan-angle-indicator text{stroke-width:3px;paint-order:stroke;font-family:inherit;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.plan-walls .plan-wall-grip-hit{fill:transparent;stroke:transparent;cursor:grab;touch-action:none;pointer-events:all}.plan-walls .plan-wall-grip-hit:active{cursor:grabbing}.plan-walls .plan-wall-grip-center{fill:var(--surface);stroke:#69868e;stroke-width:2px}[data-theme=dark] .plan-walls .plan-wall-selected{stroke:#a3b9bf}[data-theme=dark] .plan-walls .plan-angle-indicator path{stroke:#a3b9bf}[data-theme=dark] .plan-walls .plan-angle-indicator text{fill:#e5edef;stroke:#353b43}[data-theme=dark] .plan-walls .plan-wall-grip-center{stroke:#a3b9bf}.plan-walls .plan-wall{fill:none;stroke:#53636a;stroke-linecap:square;stroke-linejoin:miter;filter:none}.plan-walls .plan-wall-selected{stroke:#53636a}.plan-walls .plan-wall-hit-area{fill:none!important;stroke:transparent!important;stroke-width:22px!important;stroke-linecap:round!important;filter:none!important;pointer-events:stroke}.plan-walls .plan-wall-endpoint{fill:#1689ad;stroke-width:1.5px}[data-theme=dark] .plan-walls .plan-wall-hit-area{stroke:transparent!important}[data-theme=dark] .plan-walls .plan-wall-endpoint{fill:#69c9e5;stroke:#353b43}.plan-walls .plan-wall-endpoint-target{pointer-events:none}.plan-walls .plan-wall-endpoint-target.interactive{cursor:crosshair;pointer-events:all}.plan-walls .plan-wall-endpoint-hit{fill:transparent;stroke:transparent;pointer-events:all}.plan-walls .plan-wall-snap-ring{stroke-width:1.5px;opacity:.72;vector-effect:non-scaling-stroke;transition:fill .12s ease,stroke .12s ease,opacity .12s ease,stroke-width .12s ease}.plan-walls .plan-wall-snap-ring.active{stroke-width:2.5px;opacity:1}[data-theme=dark] .plan-walls .plan-wall-snap-ring{opacity:.82}[data-theme=dark] .plan-walls .plan-wall-snap-ring.active{stroke-width:2.5px;opacity:1}.plan-stage.pan-tool{cursor:grab;-webkit-user-select:none;user-select:none}.plan-stage.pan-tool:active{cursor:grabbing}.plan-stage.selecting-area{cursor:crosshair;-webkit-user-select:none;user-select:none}.plan-selection-rectangle{position:absolute;z-index:5;border:1px solid #1989ad;pointer-events:none}.plan-walls .plan-wall.plan-wall-selected{stroke:#1689ad;opacity:1}[data-theme=dark] .plan-walls .plan-wall.plan-wall-selected{stroke:#69c9e5}.quote-workspace{min-width:0;min-height:0;flex:1;display:grid;background:var(--bg)}.quote-library{min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface)}.quote-library-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.quote-library-heading h2{margin:0;color:var(--text);font-size:15px;font-weight:650}.quote-library-heading p{margin:5px 0 0;color:var(--muted)}.quote-library-mark{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:7px;color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.quote-search{height:36px;display:flex;align-items:center;gap:8px;margin:0 14px 12px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--bg)}.quote-search input{width:100%;min-width:0;border:0;outline:0;color:var(--text);background:transparent;font-size:12px}.quote-template-list{min-height:0;flex:1;overflow:auto}.quote-template{width:100%;display:flex;align-items:center;color:var(--muted);text-align:left}.quote-template-symbol-slot{width:36px;height:36px}.quote-template-symbol.network-symbol{width:32px;height:32px}.quote-template:hover:not(:disabled){color:var(--accent);background:var(--hover)}.quote-template-copy{min-width:0;flex:1;display:flex;flex-direction:column}.quote-template strong{overflow:hidden;color:var(--text);font-weight:550;text-overflow:ellipsis;white-space:nowrap}.quote-template small{color:var(--muted)}.quote-template-add{flex:0 0 auto}.quote-empty-library{padding:12px;color:var(--muted);font-size:12px}.quote-free-line{display:flex;align-items:center;justify-content:center;gap:7px;border:1px dashed var(--line);border-radius:6px;color:var(--accent);font-size:12px}.quote-free-line:hover:not(:disabled){background:var(--hover)}.quote-main{min-width:0;display:flex;flex-direction:column}.quote-main{overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.quote-table-scroll{overflow-x:auto;overflow-y:visible}.quote-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.quote-heading h1{margin:1px 0 4px;color:var(--text);font-size:25px;font-weight:650;letter-spacing:-.025em}.quote-heading p{margin:0;color:var(--muted);font-size:12px}.quote-heading p strong{color:var(--text);font-weight:550}.quote-eyebrow{margin-bottom:4px!important;color:var(--accent)!important;font-size:11px!important}.quote-actions{display:flex;align-items:center}.quote-actions button,.quote-import-actions button{min-height:36px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.quote-notice{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:5px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));color:var(--text);font-size:12px}.quote-notice button{display:grid;place-items:center;width:24px;height:24px;color:var(--muted)}.quote-sheet{min-width:0;overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:0 2px 9px #132a3a08}.quote-sheet-top{min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 15px;border-bottom:1px solid var(--line)}.quote-sheet-top>div{display:flex;align-items:center;gap:9px}.quote-sheet-top strong{color:var(--text);font-size:13px;font-weight:600}.quote-sheet-top span{color:var(--muted);font-size:11px}.quote-table{width:100%;min-width:1060px;border-collapse:collapse;table-layout:fixed}.quote-table th{padding:0 8px;border-bottom:1px solid var(--line);background:var(--bg);color:var(--muted);font-weight:600;text-align:left;white-space:nowrap}.quote-table th:first-child,.quote-table td:first-child{padding-left:14px;width:18%}.quote-table th:nth-child(2){width:12%}.quote-table th:nth-child(3){width:15%}.quote-table th:nth-child(4){width:11%}.quote-table th:nth-child(5){width:7%}.quote-table th:nth-child(6){width:8%}.quote-table th:nth-child(7){width:12%}.quote-table th:nth-child(8){width:11%}.quote-table th:last-child{width:42px}.quote-table td{padding:5px 7px;border-bottom:1px solid var(--line);color:var(--text);font-size:12px}.quote-table tbody tr:last-child td{border-bottom:0}.quote-table td input{width:100%;min-width:0;height:32px;padding:0 6px;border:1px solid transparent;border-radius:4px;outline:0;color:var(--text);background:transparent;font-size:12px}.quote-item-cell{min-width:0;display:flex;align-items:center}.quote-line-symbol-slot{display:grid;place-items:center;flex:0 0 30px}.quote-item-cell input{flex:1}.quote-table td input:hover:not(:disabled),.quote-table td input:focus{border-color:var(--line);background:var(--surface)}.quote-table td input:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}.quote-table td input::placeholder{color:color-mix(in srgb,var(--muted) 56%,transparent)}.quote-table td input[type=number]{font-variant-numeric:tabular-nums}.quote-table td .quote-number,.quote-table td .quote-unit{text-align:center}.quote-price{height:32px;display:flex;align-items:center;padding-right:7px;border:1px solid transparent;border-radius:4px;color:var(--muted)}.quote-price:focus-within,.quote-price:hover{border-color:var(--line)}.quote-price input{flex:1;text-align:right}.quote-price>span{font-size:11px}.quote-line-total{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.quote-source-label{display:inline-block;max-width:100%;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.quote-remove{width:28px;height:28px;color:var(--muted)}.quote-remove:hover:not(:disabled){color:#bd4242;background:color-mix(in srgb,#bd4242 8%,var(--surface))}.quote-empty-row{height:260px!important;display:table-cell;color:var(--muted)!important;text-align:center}.quote-empty-row>*{display:block;margin:8px auto}.quote-empty-row>svg{color:color-mix(in srgb,var(--accent) 55%,var(--muted))}.quote-empty-row>strong{color:var(--text);font-size:14px}.quote-empty-row>span{font-size:12px}.quote-empty-row>button{display:inline-flex;align-items:center;gap:6px;margin-top:12px}.quote-total{min-height:57px;display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:0 17px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--accent) 3%,var(--surface))}.quote-total span{color:var(--muted);font-size:12px}.quote-total strong{color:var(--text);font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.quote-import-dialog>p{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.5}.quote-source-option{min-height:57px;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.quote-source-option+.quote-source-option{margin-top:7px}.quote-source-option input{width:16px;height:16px;accent-color:var(--accent)}.quote-source-option>span{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.quote-source-option strong{color:var(--text);font-size:12px;font-weight:600}.quote-source-option small{color:var(--muted);font-size:11px}.quote-source-option em{min-width:25px;color:var(--muted);font-size:11px;font-style:normal;text-align:right}.quote-import-summary{margin-top:12px;padding:9px 10px;border-radius:4px;background:var(--bg);color:var(--text);font-size:12px}.quote-import-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}@media(max-width:900px){.quote-heading{align-items:flex-start;flex-direction:column}}@media(max-width:650px){.quote-workspace{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.quote-library{min-height:200px;max-height:265px;border-right:0;border-bottom:1px solid var(--line)}.quote-template-list{display:flex;gap:5px;overflow:auto}.quote-template{min-width:175px;border:1px solid var(--line)}.quote-actions{width:100%;flex-wrap:wrap}}:root{--workspace-panel-radius: 6px;--workspace-control-height: 34px}.editor-layout,.special-workspace{gap:12px;padding:12px}.library,.space-sidebar,.quote-library{width:clamp(290px,22vw,340px);flex:0 0 clamp(290px,22vw,340px);min-width:0;border:1px solid var(--line);border-radius:var(--workspace-panel-radius);background:var(--surface)}.quote-workspace{grid-template-columns:clamp(290px,22vw,340px) minmax(0,1fr)}.library>.panel-heading,.space-sidebar-heading,.quote-library-heading{min-height:58px;padding:11px 14px;border-bottom:1px solid var(--line)}.panel-heading h2,.space-sidebar-heading h2,.quote-library-heading h2{margin:0;color:var(--text);font-size:14px;font-weight:600}.quote-library-heading p{margin-top:3px;font-size:11px}.library .search,.space-search,.quote-search{height:var(--workspace-control-height);min-height:var(--workspace-control-height);margin:10px 12px 12px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:var(--bg)}.library .search input,.space-search input,.quote-search input{height:100%;font-size:12px}.library .library-scroll,.space-inventory,.quote-template-list{scrollbar-width:thin}.library .library-scroll{padding:0 10px 12px}.library .library-section h3{margin:10px 0 4px}.library-category{min-height:32px;padding:5px 7px}.library .library-item{min-height:44px;gap:9px;padding:5px 7px}.space-inventory{padding:0 12px 12px}.inventory-device{min-height:58px;gap:10px;padding:7px 4px}.device-icon{width:40px;height:40px;flex:0 0 40px}.inventory-copy strong{font-size:13px;font-weight:550}.inventory-copy small{font-size:11px}.rack-add-device{padding:0 12px 12px;gap:7px}.rack-add-device select,.rack-port-count input,.plan-heading-fields input,.plan-heading-fields select{min-height:var(--workspace-control-height);border-radius:5px;font-size:12px}.rack-board{flex-basis:min(380px,100%)}.space-heading,.quote-heading{min-height:54px;margin-bottom:4px;gap:14px}.space-heading h1,.quote-heading h1{font-size:22px;font-weight:600;letter-spacing:-.02em}.space-heading p,.quote-heading p{font-size:12px;line-height:1.45}.quote-main{gap:14px;padding:20px clamp(16px,2.5vw,32px)}.quote-library-heading{padding:11px 14px}.quote-search{margin-top:12px}.quote-template-list{padding:0 8px 10px}.quote-template{min-height:54px;justify-content:flex-start;gap:9px;padding:7px 8px;border-radius:5px}.quote-template-copy{gap:2px}.quote-template-symbol-slot{min-width:36px;flex:0 0 36px!important;display:grid!important;place-items:center;flex-direction:unset!important}.quote-template strong{font-size:12px;line-height:1.3}.quote-template small{font-size:11px;line-height:1.25}.quote-template-add{margin-left:auto;color:var(--muted)}.quote-free-line{min-height:var(--workspace-control-height);margin:6px 12px 12px}.quote-sheet{border-radius:var(--workspace-panel-radius)}.quote-table th{height:40px;font-size:11px}.quote-table td{height:50px}.quote-item-cell{gap:6px}.quote-line-symbol-slot{width:30px;height:30px}.quote-line-symbol.network-symbol{width:28px;height:28px}.primary,.secondary{min-height:var(--workspace-control-height);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;border-radius:5px;font-size:12px;font-weight:550;line-height:1}.icon-button,.workspace-rail-item,.plan-toolbar button,.toolbar .icon-button,.tool-menu>summary{transition:color .14s ease,background-color .14s ease,border-color .14s ease}.workspace-rail-item{border-radius:5px}.quote-actions{gap:7px}.quote-actions button{min-height:var(--workspace-control-height)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.workspace-rail-item:focus-visible,.legal-tabs button:focus-visible,.modal button:focus-visible,.modal a:focus-visible,.rack-installed-device:focus-visible,.plan-wall-hit-area:focus-visible,.plan-wall-endpoint-target:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.legal-page{display:flex;flex-direction:column;min-height:0;max-height:min(76vh,760px)}.legal-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px 0;border-bottom:1px solid var(--line)}.legal-tabs button{min-height:36px;padding:0 10px;border-bottom:2px solid transparent;color:var(--muted)}.legal-tabs button[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.legal-content{overflow:auto;padding:18px 22px 26px;color:var(--text)}.legal-content h1{margin:0 0 18px;font-size:22px;font-weight:650}.legal-content section{margin:0 0 20px}.legal-content h2{margin:0 0 7px;font-size:15px;font-weight:650}.legal-content p{margin:0 0 7px;color:var(--text);font-size:13px;line-height:1.65;white-space:pre-line}.legal-content p:has(+p){margin-bottom:7px}@media(max-width:1000px){.editor-layout,.special-workspace{gap:9px;padding:9px}.library,.space-sidebar,.quote-library,.quote-workspace{--workspace-panel-width: 270px}.library,.space-sidebar,.quote-library{width:270px;flex-basis:270px}.quote-workspace{grid-template-columns:270px minmax(0,1fr)}}@media(max-width:680px){.editor-layout,.special-workspace{padding:7px;gap:8px}.quote-main{flex:0 0 auto;padding:15px 12px}.quote-heading{gap:10px}.quote-template{min-height:48px}}.quote-main{min-height:0;overflow:hidden}.quote-sheet{min-height:0;flex:1 1 auto;display:flex;flex-direction:column}.quote-sheet-top,.quote-total{flex:0 0 auto}.quote-table-scroll{min-height:0;flex:1 1 auto;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin}@media(max-width:650px){.quote-workspace{min-height:0;overflow:hidden}.quote-library{flex:0 0 auto}.quote-main{width:100%;min-height:0;flex:1 1 0;overflow:hidden}}:root{--danger: #bd4242;--success: #2e9d76;--canvas-grid: #d4dce4;--minimap-node: #7f97ab;--minimap-container: #dbe4ec;--minimap-mask: #b9c5d180;--minimap-border: #c9d1da;--edge-label-bg: #f1f4f7;--edge-label-text: #587086;--edge-label-selected: #1c627b;--rack-rail: #303943;--rack-unit: #edf0f3;--rack-inset: #d4dae0;--rack-row-line: #cbd2d9;--rack-unit-label: #536372;--rack-device-top: #f9fafb;--rack-device-bottom: #dbe1e6;--rack-device-edge: #8794a0;--rack-device-highlight: #fff;--rack-device-shadow: #bac3cb;--rack-port-bg: #26313b;--rack-port-edge: #66727d;--rack-port: #a8b4bd;--rack-port-inset: #46515b;--port-dot-border: #a9bdcb;--port-dot-fill: #d4e0e8;--plan-surface: var(--surface);--plan-grid: #60798a0b;--plan-wall: #53636a;--plan-wall-active: #1689ad;--plan-anchor: #1689ad;--plan-label-text: #425a62;--plan-label-halo: var(--surface);--plan-area: #16765e;--plan-area-fill: #3da78b12;--plan-selection: #1989ad;--plan-calibration: #8a5bd6;--rack-frame-border: #4b6071;--overview-bg: #eaf1f6;--overview-ink: #678a9d;--modal-scrim: #172c4566}[data-theme=dark]{--danger: #ff9a9a;--success: #58cea0;--canvas-grid: #4a525d;--minimap-node: #a9bacb;--minimap-container: #4c5864;--minimap-mask: #191c2194;--minimap-border: #646d79;--edge-label-bg: #414852;--edge-label-text: #dde5ec;--edge-label-selected: #7ecfe2;--rack-rail: #1b2026;--rack-unit: #4a535d;--rack-inset: #505b66;--rack-row-line: #4c5661;--rack-unit-label: #c1cbd4;--rack-device-top: #646e79;--rack-device-bottom: #505a64;--rack-device-edge: #68747e;--rack-device-highlight: #5a646e;--rack-device-shadow: #2a3036;--rack-port-bg: #171c21;--rack-port-edge: #66727d;--rack-port: #8996a1;--rack-port-inset: #303a43;--port-dot-border: #647587;--port-dot-fill: #485868;--plan-surface: #353b43;--plan-grid: #b9c8d00d;--plan-wall: #aab6bc;--plan-wall-active: #75cce0;--plan-anchor: #75cce0;--plan-label-text: #e3ebef;--plan-label-halo: #353b43;--plan-area: #79d7b8;--plan-area-fill: #46c7a01c;--plan-selection: #75cce0;--plan-calibration: #b795eb;--rack-frame-border: #667987;--overview-bg: #43535f;--overview-ink: #a7bdcb;--modal-scrim: #0b0e12a6}[data-theme=dark] .network-symbol{background-color:color-mix(in srgb,var(--symbol-tint) 24%,var(--bg))}[data-theme=dark] .network-symbol>svg{color:color-mix(in srgb,var(--symbol-color) 62%,#fff)!important;stroke:color-mix(in srgb,var(--symbol-color) 62%,#fff)!important}[data-theme=dark] .network-device:not(.rack-mounted) .network-symbol>svg{color:var(--symbol-color)!important;stroke:var(--symbol-color)!important}.canvas,[data-theme=dark] .canvas{background:var(--bg)}.react-flow__controls-button{border-color:var(--line)!important;background:var(--surface)!important;fill:var(--text)!important}.react-flow__minimap{border-color:var(--line);background:var(--surface)}[data-theme=dark] .react-flow__minimap{background:var(--surface)}[data-theme=dark] .react-flow__edge-textbg{fill:var(--edge-label-bg)}.modal::backdrop{background:var(--modal-scrim)}.project-list>button{color:var(--text)}.project-list>button:hover,.export-option:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.loading{color:var(--accent)}.overview-icon{color:var(--overview-ink);background:var(--overview-bg)}.device-node.rack-frame{border-color:var(--rack-frame-border)}.rack-heading{border-bottom-color:var(--rack-frame-border)}.canvas-feedback{color:var(--feedback-text, #7a5a23);background:var(--feedback-bg, #fff8e9);border-color:var(--feedback-line, #dfc695)}[data-theme=dark] .canvas-feedback{--feedback-text: #ecd69e;--feedback-bg: #403820;--feedback-line: #6a5c33}.position-lock.locked{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.rack-unit-board{border-color:var(--rack-device-edge)}.rack-unit-row{border-color:var(--rack-row-line)}.rack-unit-row>span,.rack-port-count-label{color:var(--rack-unit-label)}.rack-installed-device{border-color:var(--rack-device-edge)}.rack-installed-device>svg{color:var(--muted)}.rack-installed-device>strong{color:var(--text)}.rack-port-strip{border-color:var(--rack-port-edge);background:var(--rack-port-bg)}.rack-port-strip i{background:var(--rack-port);box-shadow:inset 0 0 0 1px var(--rack-port-inset)}.rack-port-strip i.connected{background:var(--success)}[data-theme=dark] .rack-unit-board{border-color:var(--rack-device-edge);background:linear-gradient(90deg,var(--rack-rail) 0 7px,var(--rack-unit) 7px calc(100% - 7px),var(--rack-rail) calc(100% - 7px));box-shadow:inset 0 0 0 3px var(--rack-inset),0 2px 5px #0006}[data-theme=dark] .rack-unit-row{border-color:var(--rack-row-line)}[data-theme=dark] .rack-installed-device{border-color:var(--rack-device-edge);background:linear-gradient(180deg,var(--rack-device-top),var(--rack-device-bottom));box-shadow:inset 0 1px var(--rack-device-highlight),inset 0 -1px var(--rack-device-shadow)}[data-theme=dark] .rack-installed-device>strong,[data-theme=dark] .rack-port-count-label{color:var(--rack-unit-label)}.plan-stage{border-color:var(--line);background-color:var(--plan-surface);background-image:linear-gradient(var(--plan-grid) 1px,transparent 1px),linear-gradient(90deg,var(--plan-grid) 1px,transparent 1px)}.plan-image-background{position:absolute;z-index:0;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.plan-pdf-background{z-index:0}.plan-walls .plan-room-area{fill:var(--plan-area-fill)}.plan-walls .plan-wall,.plan-walls .plan-wall-selected{stroke:var(--plan-wall)}.plan-walls .plan-wall-selected{opacity:1;filter:none}.plan-walls .plan-wall-endpoint,.plan-walls .plan-active-wall-anchor{fill:var(--plan-anchor)}.plan-walls .plan-wall-endpoint{stroke:var(--plan-surface)}.plan-walls .plan-wall-dimension{fill:var(--plan-label-text);stroke:var(--plan-label-halo)}.plan-walls .plan-area-label{fill:var(--plan-area);stroke:var(--plan-label-halo)}.plan-walls .plan-wall-preview{stroke:var(--plan-wall-active)}.plan-walls .plan-angle-indicator path{stroke:var(--plan-wall-active)}.plan-walls .plan-angle-indicator text{fill:var(--plan-label-text);stroke:var(--plan-label-halo)}.plan-walls .plan-wall-snap-ring{fill:color-mix(in srgb,var(--plan-anchor) 12%,transparent);stroke:var(--plan-anchor)}.plan-walls .plan-wall-snap-ring.active{fill:color-mix(in srgb,var(--plan-anchor) 35%,transparent);stroke:var(--plan-wall-active)}.plan-selection-rectangle{border-color:var(--plan-selection);background:color-mix(in srgb,var(--plan-selection) 12%,transparent)}[data-theme=dark] .plan-walls .plan-wall,[data-theme=dark] .plan-walls .plan-wall-selected{stroke:var(--plan-wall)}[data-theme=dark] .plan-walls .plan-wall-selected{opacity:1;filter:none}[data-theme=dark] .plan-walls .plan-wall-endpoint,[data-theme=dark] .plan-walls .plan-active-wall-anchor{fill:var(--plan-anchor);stroke:var(--plan-label-halo)}[data-theme=dark] .plan-walls .plan-wall-preview,[data-theme=dark] .plan-walls .plan-angle-indicator path{stroke:var(--plan-wall-active)}[data-theme=dark] .plan-walls .plan-wall-dimension,[data-theme=dark] .plan-walls .plan-area-label,[data-theme=dark] .plan-walls .plan-angle-indicator text{stroke:var(--plan-label-halo)}[data-theme=dark] .plan-walls .plan-wall-dimension,[data-theme=dark] .plan-walls .plan-angle-indicator text{fill:var(--plan-label-text)}[data-theme=dark] .plan-walls .plan-area-label{fill:var(--plan-area)}[data-theme=dark] .plan-walls .plan-wall-snap-ring{fill:color-mix(in srgb,var(--plan-anchor) 12%,transparent);stroke:var(--plan-anchor)}[data-theme=dark] .plan-walls .plan-wall-snap-ring.active{fill:color-mix(in srgb,var(--plan-anchor) 35%,transparent);stroke:var(--plan-wall-active)}[data-theme=dark] .plan-selection-rectangle{border-color:var(--plan-selection);background:color-mix(in srgb,var(--plan-selection) 12%,transparent)}.plan-device{border-color:var(--line);background:color-mix(in srgb,var(--surface) 95%,var(--accent))}.plan-rack{border-color:color-mix(in srgb,var(--muted) 78%,var(--line))}.placed-indicator{background:var(--success)}.port-dots i{border-color:var(--port-dot-border);background:var(--port-dot-fill)}[data-theme=dark] .react-flow__edge-path{filter:brightness(1.3) saturate(1.12)}.danger,.quote-remove:hover:not(:disabled),.rack-port-config-row button:hover:not(:disabled),.rack-installed-device>button:hover,.plan-device>button:hover{color:var(--danger)!important}.toast.error,.field-error{color:var(--danger)}.field input[aria-invalid=true]{border-color:var(--danger)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 76%,transparent)}button:disabled,input:disabled,select:disabled,textarea:disabled{color:color-mix(in srgb,var(--muted) 78%,var(--surface))}.rack-workspace{--rack-metal: #d8e0e6;--rack-metal-edge: #8998a4;--rack-face: #edf1f4;--rack-cable-copper: #a66835;--rack-cable-fiber: #7950ad;--rack-cable-dac: #147c72;--rack-cable-other: #526b7d}[data-theme=dark] .rack-workspace{--rack-metal: #343d46;--rack-metal-edge: #64717c;--rack-face: #424b54;--rack-cable-copper: #edaa71;--rack-cable-fiber: #c0a0f2;--rack-cable-dac: #65d7c2;--rack-cable-other: #aebdcc}.rack-workspace .space-main{min-width:0;overflow:auto;padding:8px 12px 24px}.rack-workspace .space-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}.rack-view-controls{display:flex;align-items:end;gap:10px;margin-left:auto}.rack-view-controls label{display:grid;gap:4px;color:var(--muted);font-size:11px}.rack-view-controls select{height:34px;min-width:102px;padding:0 8px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--surface)}.rack-board-list{display:flex;align-items:flex-start;gap:12px;max-width:none;overflow:auto;padding:4px 4px 24px}.rack-board{width:772px;flex:0 0 772px;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 1px 3px #102c460b}.rack-board-heading{min-height:42px;gap:10px;margin-bottom:12px}.rack-delete-button{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;margin-left:2px;border:1px solid var(--line);border-radius:5px;color:var(--muted);background:var(--surface)}.rack-delete-button:hover:not(:disabled){color:var(--danger);border-color:color-mix(in srgb,var(--danger) 48%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.rack-delete-button:disabled{opacity:.5;cursor:not-allowed}.rack-board-heading>input{min-width:120px;font-size:15px}.rack-board-icon{display:grid;flex:0 0 30px}.rack-usage{padding:4px 7px;border-radius:4px;background:var(--hover);color:var(--muted);font-size:12px}.rack-size-field{gap:6px;font-size:11px}.rack-size-field select,.rack-size-field input{height:32px;min-width:74px;padding:0 7px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--surface)}.rack-dropzone{width:100%;overflow:auto;padding:2px;border:1px solid var(--line);border-radius:5px;background:var(--bg)}.rack-unit-board{position:relative;box-sizing:border-box;min-width:744px;overflow:hidden;border:2px solid var(--rack-metal-edge);border-radius:4px;background:linear-gradient(90deg,var(--rack-metal) 0 44px,var(--rack-face) 44px calc(100% - 44px),var(--rack-metal) calc(100% - 44px));box-shadow:inset 0 0 0 5px var(--rack-metal),inset 0 0 0 7px var(--rack-metal-edge),0 2px 7px #17212c1c}.rack-unit-row{position:relative;z-index:0;display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:7px;padding:0 5px;border-bottom:1px solid var(--rack-metal-edge);color:var(--muted);background:transparent}.rack-unit-row:first-child{border-top:1px solid var(--rack-metal-edge)}.rack-unit-row>span{text-align:center;font-size:12px;font-variant-numeric:tabular-nums}.rack-unit-row i{height:4px;border-radius:4px;background:var(--rack-metal-edge);opacity:.62}.rack-installed-device{position:absolute;z-index:auto;display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;overflow:hidden;padding:0 3px;border:1px solid var(--rack-metal-edge);border-radius:3px;color:var(--text);background:var(--rack-face);box-shadow:inset 0 1px #ffffff70,inset 0 -1px #00000012;cursor:grab}.rack-installed-device:active{cursor:grabbing}.rack-installed-device.rack-device-locked{cursor:not-allowed;border-style:dashed}.rack-installed-device.link-device-focused{border-color:#168b68;box-shadow:0 0 0 2px #20a87855,inset 0 1px #ffffff70,inset 0 -1px #00000012}.rack-installed-device.link-device-dimmed{opacity:.72}.rack-face-header{position:relative;z-index:8;display:grid;grid-template-columns:16px minmax(54px,auto) minmax(0,1fr) auto 15px 16px;align-items:center;gap:3px;flex:0 0 13px;min-width:0;height:13px;border-bottom:1px solid var(--rack-metal-edge)}.rack-face-icon{display:grid;place-items:center}.rack-face-icon .network-symbol{width:13px;height:13px}.rack-face-header>strong{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:650}.rack-face-header>small{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:7px}.rack-brand-logo,.rack-brand-logo-spacer{width:14px;height:14px;box-sizing:border-box;display:block;justify-self:center;align-self:center;padding:2px;object-fit:contain;border-radius:3px}.rack-brand-logo{background:var(--surface)}.rack-face-header>button{width:15px;height:14px;display:grid;place-items:center;color:var(--muted);border-radius:3px}.rack-device-height{height:14px;max-width:none;padding:0 2px;border:1px solid var(--rack-metal-edge);border-radius:3px;background:var(--surface);color:var(--text);font-size:9px}.rack-device-height select{width:32px;height:12px;font-size:8px}.rack-front-ports{position:relative;z-index:8;display:grid;grid-auto-rows:12px;align-content:start;gap:1px 2px;min-height:0;flex:1 1 auto;padding:0}.rack-front-port{position:relative;z-index:9;min-width:0;width:25px;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;gap:2px;padding:0 1px;border:1px solid var(--rack-port-edge);border-radius:2px;color:var(--text);box-shadow:inset 0 1px #ffffff1c;cursor:crosshair;font-size:8px;line-height:1;font-variant-numeric:tabular-nums}.rack-front-port>i{width:4px;height:4px;flex:0 0 4px;border-radius:50%;background:#71808c}.rack-front-port.connected{border-color:var(--success);background:color-mix(in srgb,var(--success) 14%,var(--rack-port-well))}.rack-front-port.connected>i{background:var(--success);box-shadow:0 0 4px color-mix(in srgb,var(--success) 45%,transparent)}.rack-front-port.pending{border-color:#c27c22;background:#fff1d8;color:#613c11;outline:2px solid #d99142;outline-offset:0}.rack-front-port.link-selected{outline:2px solid var(--accent);outline-offset:0}.rack-front-port.link-focused{border-color:#168b68;background:#d6f5e8;color:#075d43;outline:2px solid #20a878;outline-offset:1px;box-shadow:0 0 7px #20a87870}.rack-front-port.port-hovered{outline:2px solid var(--accent);outline-offset:1px}.rack-front-port.link-dimmed{opacity:.38}.rack-front-port:hover:not(:disabled){border-color:var(--accent);filter:brightness(1.15)}.rack-front-port:disabled{cursor:default;opacity:.9}.rack-front-port.port-incompatible{border-color:var(--danger);outline:2px solid color-mix(in srgb,var(--danger) 45%,transparent);outline-offset:1px;animation:rack-port-reject .22s ease-in-out 2 alternate}@keyframes rack-port-reject{to{transform:translateY(-1px)}}.rack-cabling-layer{position:absolute;z-index:6;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.rack-cabling-layer .rack-cable-visible{pointer-events:stroke;cursor:pointer;opacity:.76;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #0003)}.rack-cable.dimmed .rack-cable-visible{opacity:.16}.rack-cable.active .rack-cable-visible{opacity:1;filter:drop-shadow(0 0 3px currentColor)}[data-theme=dark] .rack-front-port.link-focused{border-color:#42d3a0;background:#163f34;color:#b9ffe4}.rack-workspace{--rack-port-well: #f4f6f8;--rack-port-edge: #8795a0;--rack-port-label: #263744}[data-theme=dark] .rack-workspace{--rack-port-well: #303a43;--rack-port-edge: #84929d;--rack-port-label: #edf2f6}.rack-front-port{background:var(--rack-port-well)}.rack-front-port[data-port-type=RJ45]>i{border-radius:1px}.rack-front-port[data-port-type=SFP]>i,.rack-front-port[data-port-type="SFP+"]>i{border-radius:1px;transform:rotate(45deg)}.rack-front-port[data-port-type=QSFP]>i{width:5px;height:5px;flex-basis:5px;border-radius:1px}[data-theme=dark] .rack-front-port.pending{background:#553f22;color:#ffdfa8;border-color:#d69b4b}.rack-board-legend{margin:8px 44px 0;color:var(--muted);font-size:11px}.physical-link-item{width:100%;border:1px solid transparent;text-align:left;cursor:pointer}.physical-link-item.selected{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface))}.physical-link-editor{display:grid;gap:5px;padding:9px 0 12px;border-top:1px solid var(--line);color:var(--text);font-size:11px}.physical-link-editor>span{color:var(--muted)}.physical-link-editor label{display:grid;gap:4px;color:var(--muted)}.physical-link-editor select{height:30px;padding:0 7px;border:1px solid var(--line);border-radius:4px;color:var(--text);background:var(--surface)}.physical-link-delete{justify-self:start;display:flex;align-items:center;gap:6px;padding:5px 7px;color:var(--danger);border-radius:4px}.physical-link-delete:hover:not(:disabled){background:var(--hover)}[data-theme=dark]{--topology-node-border: #7d8994;--topology-symbol-surface: #edf2f5}[data-theme=dark] .device-node.network-device:not(.rack-mounted):not(.is-selected){border-color:var(--topology-node-border)}[data-theme=dark] .device-node.network-device:not(.rack-mounted):hover{border-color:var(--accent)}[data-theme=dark] .device-node.network-device.is-selected:not(.rack-mounted){border-color:var(--accent)}[data-theme=dark] .network-device:not(.rack-mounted) .network-symbol{background-color:var(--topology-symbol-surface)}@media(max-width:900px){.rack-workspace .space-main{min-width:0}.rack-view-controls{margin-left:0}}.toast{position:fixed;top:60px;bottom:auto;left:50%;transform:translate(-50%);z-index:1000;width:max-content;max-width:min(560px,calc(100vw - 32px));padding:8px 8px 8px 16px;box-shadow:0 8px 30px #19344126}.toast .icon-button{width:28px;height:28px}.app-header{z-index:20}.mode-switch{display:inline-flex;flex-shrink:0;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.mode-switch button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:13px}.mode-switch button:hover{color:var(--text)}.mode-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #17283a1f}.mode-switch button[aria-pressed=true]:last-child{color:var(--accent)}.mode-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.preferences-button{display:inline-grid;place-items:center;width:36px;height:36px;border:0;border-radius:7px;background:transparent;color:var(--text)}.preferences-button:hover,.preferences-button[aria-expanded=true]{background:var(--hover)}.language-menu{min-width:190px}.menu-group-label{padding:6px 9px 4px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.menu-separator{height:1px;margin:4px 2px;background:var(--line)}.export-button{position:relative}.export-badge{position:absolute;top:-4px;right:-4px;width:11px;height:11px;border:2px solid var(--surface);border-radius:50%;background:var(--warning)}.backup-callout{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin-bottom:14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warning) 35%,transparent);border-radius:8px;background:color-mix(in srgb,var(--warning) 9%,var(--surface));color:var(--text);font-size:13px}.backup-callout>svg{margin-top:1px;color:var(--warning)}.backup-callout>div:first-of-type{display:flex;flex-direction:column;gap:2px}.backup-callout strong{color:var(--warning);font-weight:600}.backup-callout span{color:var(--muted)}.backup-callout-actions{grid-column:2;display:flex;gap:8px;margin-top:6px}.backup-callout-actions .primary{min-height:32px;padding:0 14px}.backup-callout-later{min-height:32px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit}.backup-callout-later:hover{background:var(--hover);color:var(--text)}@media(max-width:760px){.mode-switch button{padding:0 8px}.mode-switch button span{display:none}}@media(max-width:680px){.plan-actions{flex-wrap:wrap;max-width:100%;gap:6px}.plan-actions .secondary{min-width:0}}.space-search{display:flex;align-items:center;gap:8px;color:var(--muted)}.space-search input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--text)}.space-search:focus-within,.quote-search:focus-within{border-color:var(--accent)}.quote-total{flex-wrap:wrap;row-gap:6px}.quote-vat-rate{display:inline-flex;align-items:center;gap:5px;margin-left:6px;color:var(--muted);font-size:12px}.quote-vat-rate input{width:58px;height:28px;padding:0 6px;border:1px solid var(--line);border-radius:5px;background:var(--input);color:var(--text);font:inherit;text-align:right;font-variant-numeric:tabular-nums}.quote-vat-rate input:focus{border-color:var(--accent);outline:none}.quote-total .quote-total-excl,.quote-total .quote-total-vat{font-size:14px;font-weight:600}.quote-total .quote-total-incl{font-size:17px}.quote-table-scroll{position:relative}.logo-picker-search{display:flex;align-items:center;gap:6px;height:30px;margin-bottom:6px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--input);color:var(--muted)}.logo-picker-search input,.logo-picker-search input:focus{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;box-shadow:none;background:transparent;color:var(--text);font:inherit;font-size:12.5px}.logo-picker-search:focus-within{border-color:var(--accent)}.logo-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(32px,1fr));gap:4px;max-height:148px;padding:4px;overflow-y:auto;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.logo-option{display:grid;place-items:center;aspect-ratio:1;min-width:0;padding:4px;border:1px solid transparent;border-radius:6px;background:var(--input);color:var(--muted);cursor:pointer}.logo-option img{width:100%;height:100%;object-fit:contain}.logo-option:hover{border-color:var(--line)}.logo-option[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.logo-option:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.logo-option:disabled{cursor:default;opacity:.5}.logo-picker-empty{grid-column:1 / -1;margin:6px;color:var(--muted);font-size:12px}.logo-library-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 6px}.logo-library-tools .logo-picker-search{flex:1 1 220px;margin:0;height:36px}.logo-library h3{margin:18px 0 6px}.logo-library h3+.muted{margin:0 0 8px;font-size:12px}.logo-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;max-height:210px;overflow-y:auto;padding:2px}.logo-tiles>.muted{grid-column:1 / -1;margin:4px 0;font-size:12px}.logo-tile{position:relative;display:grid;place-items:center;aspect-ratio:1;padding:7px;border:1px solid var(--line);border-radius:8px;background:var(--input);cursor:pointer}.logo-tile img{width:100%;height:100%;object-fit:contain}.logo-tile.is-static{cursor:default}.logo-tile:not(.is-static):hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.logo-tile[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.logo-tile:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.logo-tile-add{position:absolute;right:2px;bottom:2px;padding:1px;border-radius:50%;background:var(--accent);color:#fff}.logo-editor{display:grid;grid-template-columns:52px 1fr 1fr auto;align-items:end;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.logo-editor .field{margin:0}.logo-editor-preview{display:grid;place-items:center;width:52px;height:52px;padding:6px;border-radius:8px;background:var(--input)}.logo-editor-preview img{width:100%;height:100%;object-fit:contain}@media(max-width:560px){.logo-editor{grid-template-columns:52px 1fr auto}.logo-editor .field:nth-of-type(2){grid-column:2 / 3}}.tool-menu.has-active>summary{position:relative;color:var(--accent)}.tool-menu.has-active>summary:after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.filters-tool .tool-menu-content{width:260px;max-height:min(64vh,520px);overflow-y:auto}.filters-menu{display:flex;flex-direction:column;gap:10px;padding:4px}.filters-menu fieldset{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:2px}.filters-menu legend{margin-bottom:4px;padding:0 4px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.filter-option{display:flex;align-items:center;gap:8px;min-height:32px;padding:2px 6px;border-radius:5px;color:var(--text);font-size:13px;cursor:pointer}.filter-option:hover{background:var(--hover)}.filter-option input{margin:0;accent-color:var(--accent)}.filter-option .filter-symbol.network-symbol{width:22px;height:22px;flex:0 0 22px}.filter-vlan{margin:0;padding:0 4px}.filters-reset{min-height:32px}.filters-chip{position:absolute;top:12px;left:12px;z-index:6;display:flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:12px;font-weight:550}.filters-chip button{padding:3px 10px;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-size:12px;cursor:pointer}.react-flow__node.filter-dimmed,.react-flow__edge.filter-dimmed{opacity:.22;transition:opacity .15s ease}.react-flow__node.filter-highlight .device-node{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}.react-flow__edge.filter-highlight path{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 60%,transparent))}.quick-search-scrim{position:fixed;inset:0;z-index:1100;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;background:var(--modal-scrim)}.quick-search{width:min(560px,100%);overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 18px 50px #0f1c2a40}.quick-search-field{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted)}.quick-search .quick-search-field input,.quick-search .quick-search-field input:focus{flex:1;min-width:0;height:auto;padding:0;border:0;outline:0;box-shadow:none;background:transparent;color:var(--text);font:inherit;font-size:15px}.quick-search-field kbd{padding:1px 6px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font:inherit;font-size:11px}.quick-search ul{max-height:min(50vh,420px);margin:0;padding:6px;overflow-y:auto;list-style:none}.quick-search li[role=option]{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:6px;cursor:pointer}.quick-search li[aria-selected=true]{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.quick-search .quick-search-symbol.network-symbol{width:30px;height:30px;flex:0 0 30px}.quick-search-copy{display:flex;min-width:0;flex-direction:column}.quick-search-copy strong{overflow:hidden;color:var(--text);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.quick-search-copy small{color:var(--muted);font-size:12px}.quick-search-empty{padding:14px 8px;color:var(--muted);font-size:13px;text-align:center}.quick-search-hint{margin:0;padding:8px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.addressing-workspace{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:14px;padding:20px 24px;overflow-y:auto;background:var(--bg)}.addressing-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}.addressing-heading h1{margin:1px 0 4px;color:var(--text);font-size:25px;font-weight:650;letter-spacing:-.025em}.addressing-heading p{margin:0;color:var(--muted);font-size:12px}.addressing-summary{display:flex;gap:8px;flex-wrap:wrap}.addressing-summary>span{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12px}.addressing-summary strong{color:var(--text)}.addressing-summary .has-issues{border-color:color-mix(in srgb,var(--warning) 40%,var(--line));color:var(--warning)}.addressing-summary .has-issues strong{color:var(--warning)}.addressing-sheet{min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--workspace-panel-radius);background:var(--surface)}.addressing-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line)}.addressing-search{flex:1 1 260px;max-width:420px}.addressing-toggle{display:inline-flex;align-items:center;gap:7px;color:var(--text);font-size:13px;cursor:pointer}.addressing-toggle input{accent-color:var(--accent)}.addressing-table-scroll{position:relative;overflow-x:auto}.addressing-table{width:100%;min-width:980px;border-collapse:collapse;font-size:13px}.addressing-table th{height:38px;padding:0 8px;border-bottom:1px solid var(--line);background:var(--bg);color:var(--muted);font-size:12px;font-weight:600;text-align:left;white-space:nowrap}.addressing-table td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.addressing-table th:first-child,.addressing-table td:first-child{padding-left:14px;width:23%}.addressing-table tr.has-issues td{background:color-mix(in srgb,var(--warning) 5%,var(--surface))}.addressing-device{display:flex;align-items:center;gap:9px;min-width:0}.addressing-device .addressing-symbol.network-symbol{width:30px;height:30px;flex:0 0 30px}.addressing-device>span{display:flex;min-width:0;flex:1;flex-direction:column}.addressing-device strong{overflow:hidden;color:var(--text);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.addressing-device small{color:var(--muted);font-size:11px}.addressing-locate{width:28px;height:28px;color:var(--muted);opacity:.7}.addressing-locate:hover{color:var(--accent);opacity:1}.addressing-site{color:var(--muted);white-space:nowrap}.addressing-input{width:100%;min-width:90px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text);font-family:var(--font-mono);font-size:12.5px}.addressing-input:hover:not(:disabled){border-color:var(--line);background:var(--input)}.addressing-input:focus{border-color:var(--accent);background:var(--input);outline:0}.addressing-input[aria-invalid=true]{border-color:color-mix(in srgb,var(--warning) 60%,transparent);color:var(--warning)}.addressing-check{min-width:220px}.addressing-check ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}.addressing-check li{display:flex;align-items:flex-start;gap:6px;color:var(--warning);font-size:12px;line-height:1.4}.addressing-check li svg{flex:0 0 auto;margin-top:2px}.addressing-ok{display:inline-flex;align-items:center;gap:5px;color:var(--success);font-size:12px}.addressing-empty{padding:34px 14px!important;color:var(--muted);text-align:center}@media(max-width:680px){.addressing-workspace{padding:14px 12px}.addressing-heading h1{font-size:21px}}.title-block{margin:6px 0 0;padding:10px 0 0;border:0;border-top:1px solid var(--line)}.title-block-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.title-block-head small{color:var(--muted);font-size:11.5px}.mini-switch{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border:0;background:transparent;color:var(--text);font:inherit;font-size:12.5px;font-weight:550;cursor:pointer}.mini-switch-track{display:inline-flex;align-items:center;width:26px;height:15px;padding:2px;border-radius:999px;background:color-mix(in srgb,var(--muted) 55%,var(--line));transition:background .12s ease}.mini-switch-track>span{width:11px;height:11px;border-radius:50%;background:#fff;transition:transform .12s ease}.mini-switch[aria-checked=true] .mini-switch-track{background:var(--accent)}.mini-switch[aria-checked=true] .mini-switch-track>span{transform:translate(11px)}.mini-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.title-block:disabled .mini-switch{cursor:default;opacity:.6}.title-block-body{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:8px 12px;margin-top:10px}.title-block-title{grid-column:1 / -1}.title-block-body .field{margin:0;gap:3px}.title-block-body .field>span{color:var(--muted);font-size:11.5px}.title-block-body .field input{height:30px;padding:0 9px;font-size:12.5px}.title-block-body>.mini-switch{grid-column:1 / -1;justify-self:start;font-weight:450;color:var(--muted)}
