.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.app{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;gap:1.5rem;padding:0 1rem;height:52px;background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 auto}.app-title{font-weight:600;letter-spacing:.02em}.mode-tabs{display:flex;gap:.25rem}.mode-tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:.3rem .8rem;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;font:inherit;line-height:1.1}.mode-tab:hover{background:var(--panel-2)}.mode-tab.is-active{background:var(--panel-2);border-color:var(--line);color:var(--text)}.mode-tab-label{font-size:.9rem;font-weight:600}.mode-tab-hint{font-size:.7rem;color:var(--text-muted)}.header-spacer{flex:1 1 auto}.ref-tab{padding:.35rem .8rem;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.85rem}.ref-tab:hover{background:var(--panel-2);color:var(--text)}.ref-tab.is-active{background:var(--panel-2);border-color:var(--accent);color:var(--text)}.app-body{flex:1 1 auto;min-height:0;position:relative}.diagram-mode{position:absolute;inset:0;display:flex}.canvas-host{position:relative;flex:1 1 auto;min-width:0}.diagram-sidebar{flex:0 0 280px;border-left:1px solid var(--line);background:var(--panel);overflow-y:auto}.sidebar-empty{padding:1rem;color:var(--text-muted);font-size:.82rem;line-height:1.5}.sidebar-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:6;width:22px;height:64px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--text-muted);border:1px solid var(--line);border-right:none;border-radius:8px 0 0 8px;cursor:pointer;font-size:.7rem}.sidebar-toggle:hover{color:var(--text);border-color:var(--accent)}.sidebar-toggle-dot{position:absolute;top:9px;width:8px;height:8px;border-radius:50%;background:var(--accent)}@media(pointer:coarse){.sidebar-toggle{width:30px;height:84px;font-size:.85rem}}.mode-placeholder{padding:2rem;max-width:60ch}.mode-placeholder h1{margin:0 0 .5rem}.mode-placeholder .muted{color:var(--text-muted);font-size:.9rem}.catalogue{position:absolute;inset:0;overflow:auto;padding:1.5rem 2rem 3rem}.catalogue-head h1{margin:0 0 .25rem}.catalogue-head .muted{color:var(--text-muted);font-size:.9rem;max-width:70ch;margin:0}.catalogue-head code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82em;background:var(--panel-2);padding:.05em .35em;border-radius:4px}.catalogue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1rem;margin-top:1.25rem}.catalogue-cell{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem .75rem .85rem;display:flex;flex-direction:column;align-items:center;gap:.6rem}.catalogue-cell.is-placeholder{border-style:dashed}.catalogue-art{height:132px;display:flex;align-items:center;justify-content:center;color:var(--text)}.catalogue-cell figcaption{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.cell-label{font-weight:600;font-size:.85rem}.cell-kind{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.72rem;color:var(--text-muted)}.cell-meta{font-size:.68rem;color:var(--text-muted)}.symbol-view{color:inherit}.symbol-port-dot{position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--panel);pointer-events:none}.sld-node{position:relative;color:var(--text)}.sld-node>svg{position:relative}.sld-state-bg{position:absolute;inset:2px 0;border-radius:7px;pointer-events:none}.sld-state-bg.is-closed{background:#d6584a33;box-shadow:inset 0 0 0 1.5px #d6584acc}.sld-state-bg.is-open{background:#5cb85c2e;box-shadow:inset 0 0 0 1.5px #5cb85ccc}.sld-state-bg.is-earthed{background:#d6a14a33;box-shadow:inset 0 0 0 1.5px #d6a14acc}.sld-label{position:absolute;font-size:9px;font-weight:600;color:var(--text-muted);cursor:pointer}.sld-label:hover{color:var(--text)}.sld-label.is-right{left:calc(100% + 6px);top:50%;transform:translateY(-50%);white-space:nowrap}.sld-label.is-below{left:50%;top:calc(100% + 4px);transform:translate(-50%);white-space:nowrap}.sld-label.is-earth{left:calc(100% + 8px);top:30px;transform:translateY(-50%);white-space:nowrap}.sld-label.is-earth-left{right:calc(100% + 8px);top:30px;transform:translateY(-50%);white-space:nowrap}.sld-label.is-rotated{top:0;left:16px;transform:translate(-100%);writing-mode:vertical-rl;text-orientation:mixed;max-height:96px;line-height:1.25;text-wrap:balance}.sld-label.is-rotated.is-flip{inset:auto 16px 0 auto;transform:translate(100%)}.sld-label.is-rotated.is-source{left:0}.sld-label.is-wrapped{left:50%;top:calc(100% + 4px);transform:translate(-50%);width:max-content;max-width:76px;text-align:center;line-height:1.15;white-space:normal}.sld-label.is-wrapped.is-above{top:auto;bottom:calc(100% + 3px)}.sld-label-num{position:absolute;top:-7px;left:-7px;min-width:15px;height:15px;padding:0 3px;box-sizing:border-box;border-radius:8px;background:var(--accent);color:#14151a;font-size:9px;font-weight:700;line-height:15px;text-align:center;cursor:pointer}.sld-node .react-flow__handle,.sld-composite .react-flow__handle{width:7px;height:7px;min-width:0;min-height:0;background:var(--accent);border:1.5px solid var(--panel);border-radius:50%}.react-flow__handle.sld-handle-hidden{opacity:0;pointer-events:none}.sld-composite{position:relative;width:100%;height:100%;border-radius:6px;background:#6ea8fe0d;color:var(--text)}.sld-composite:before{content:"";position:absolute;inset:0;border:1.5px dashed var(--line);border-radius:inherit;pointer-events:none}.sld-composite.is-expanded{background:#6ea8fe08}.sld-composite-header{position:absolute;top:0;left:0;right:0;height:24px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;font-size:10px}.sld-composite-tag{font-weight:700}.sld-composite-toggle{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;line-height:1;padding:2px 5px;border-radius:3px}.sld-composite-toggle:hover{background:var(--panel-2);color:var(--text)}.sld-composite-hint{position:absolute;inset:24px 0 0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;letter-spacing:.1em;pointer-events:none}.sld-port-label{position:absolute;font-size:8px;color:var(--text-muted);transform:translate(-50%,7px);pointer-events:none;white-space:nowrap}.react-flow__edge.sld-expose-edge .react-flow__edge-path{stroke-dasharray:4 3;opacity:.5}.react-flow__edge.sld-ehv .react-flow__edge-path{stroke:var(--volt-ehv)}.react-flow__edge.sld-hv .react-flow__edge-path{stroke:var(--volt-hv)}.react-flow__edge.sld-lv .react-flow__edge-path{stroke:var(--volt-lv)}.react-flow__edge.sld-bus-link .react-flow__edge-path{stroke-width:4}.sld-busbar.band-ehv{color:var(--volt-ehv)}.sld-busbar.band-hv{color:var(--volt-hv)}.sld-busbar.band-lv{color:var(--volt-lv)}.react-flow__node.is-locked{outline:1px dashed var(--accent);outline-offset:3px;border-radius:4px}.sld-substation{width:100%;height:100%;border:1px solid var(--line);border-radius:10px;background:#ffffff04;pointer-events:none}.sld-substation-name{position:absolute;top:6px;left:12px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);pointer-events:auto;cursor:pointer;padding:2px 5px;margin:-2px -5px;border-radius:4px}.sld-substation-name:hover{color:var(--text);background:var(--panel-2)}.sld-substation-name.is-above{top:-19px;left:2px}.sld-substation-name.is-below{top:calc(100% + 5px);left:2px}.sld-substation-name.is-left{top:0;left:-6px;transform:translate(-100%);writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap}.react-flow__node.selected .sld-substation{border-color:var(--accent)}.react-flow__node.selected .sld-substation-name{color:var(--accent)}@keyframes sld-select-pulse{0%,to{filter:drop-shadow(0 0 2px var(--accent))}50%{filter:drop-shadow(0 0 5px var(--accent)) drop-shadow(0 0 9px var(--accent))}}.diagram-mode .react-flow__node.selected .sld-node,.diagram-mode .react-flow__node.selected .sld-busbar,.diagram-mode .react-flow__node.selected .sld-composite{animation:sld-select-pulse 1.4s ease-in-out infinite}.diagram-mode .react-flow__node.selected .sld-node,.diagram-mode .react-flow__node.selected .sld-busbar{outline:1.5px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:4px;border-radius:5px}.diagram-mode .react-flow__node.selected{z-index:50!important}.sld-busbar{position:relative;color:var(--text)}.sld-busbar-tag{position:absolute;left:calc(100% + 8px);top:15px;transform:translateY(-50%);font-size:9px;font-weight:600;color:var(--text-muted);white-space:nowrap;cursor:pointer}.sld-busbar-tag:hover{color:var(--text)}.sld-busbar-tag.on-left{left:auto;right:calc(100% + 8px)}.sld-inspector{display:flex;flex-direction:column;gap:12px;padding:12px;box-sizing:border-box;width:100%}.insp-head{display:flex;align-items:center;gap:8px;margin:-12px -12px 0;padding:11px 12px;background:var(--panel-2);border-bottom:1px solid var(--line)}.insp-kind{flex:1;min-width:0;font-size:.92rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sld-inspector-title{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.insp-field{display:flex;flex-direction:column;gap:4px}.insp-field>span{font-size:.74rem;color:var(--text-muted)}.insp-field input:not([type=checkbox]),.insp-field select{width:100%;min-width:0;box-sizing:border-box;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.84rem;padding:6px 8px}.insp-field input:focus,.insp-field select:focus{outline:none;border-color:var(--accent)}.insp-field.insp-row{flex-direction:row;align-items:center;justify-content:space-between}.insp-row input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent)}.insp-subaction{display:flex;align-items:center;gap:6px;margin-top:-4px}.insp-subaction input{flex:1 1 auto;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.8rem;padding:6px 8px}.insp-subaction input:focus{outline:none;border-color:var(--accent)}.insp-subaction button{flex:0 0 auto;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;font-size:.78rem;padding:6px 10px}.insp-subaction button:hover{border-color:var(--accent)}.state-seg{display:inline-flex;align-self:flex-start}.state-seg button{background:var(--bg);border:1px solid var(--line);color:var(--text-muted);padding:5px 12px;cursor:pointer;font:inherit;font-size:.78rem;border-radius:0}.state-seg button+button{margin-left:-1px}.state-seg button:first-child{border-radius:6px 0 0 6px}.state-seg button:last-child{border-radius:0 6px 6px 0}.state-seg button.on{font-weight:600;position:relative;z-index:1}.state-seg button.on.is-closed{background:#d6584a;border-color:#d6584a;color:#fff}.state-seg button.on.is-open{background:#5cb85c;border-color:#5cb85c;color:#14151a}.state-seg button.on.is-earthed{background:#d6a14a;border-color:#d6a14a;color:#14151a}.seg-accent button.on{background:var(--accent);border-color:var(--accent);color:#14151a}.insp-card{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:8px;display:flex;flex-direction:column;gap:6px;margin-top:-6px}.sld-link{background:none;border:none;padding:0;color:var(--text-muted);font:inherit;font-size:.72rem;cursor:pointer;text-align:left}.sld-link:hover{color:var(--accent);text-decoration:underline}.sld-inspector-rows{display:flex;flex-direction:column;gap:3px;max-height:180px;overflow-y:auto}.sld-bay-help{margin:-4px 0 8px;font-size:.72rem;line-height:1.4;color:var(--text-muted)}.sld-bay-row{display:flex;align-items:center;gap:4px}.sld-bay-row button.sld-bay-role{flex:0 0 auto;min-width:64px;font-weight:600;font-size:.72rem;text-align:center}.sld-bay-row button.sld-bay-role.is-in{color:#d6584a;border-color:#d6584a80;background:#d6584a1f}.sld-bay-row button.sld-bay-role.is-out{color:var(--text-muted)}.sld-bay-move{display:inline-flex;flex:0 0 auto}.sld-bay-row .sld-bay-move button{border-radius:0;padding:2px 5px}.sld-bay-row .sld-bay-move button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.sld-bay-row .sld-bay-move button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px;border-left:none}.sld-bay-row button.sld-bay-remove{flex:0 0 auto;color:var(--text-muted)}.sld-bay-row button.sld-bay-remove:hover:not(:disabled){color:#d6584a;border-color:#d6584a}.sld-bay-num{flex:0 0 auto;font-size:.78rem;color:var(--text-muted)}.sld-bay-name{flex:1 1 auto;min-width:0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sld-bay-name.is-empty{color:var(--text-muted);font-style:italic}.sld-bay-empty{font-size:.78rem;color:var(--text-muted)}.sld-bay-row button,.sld-inspector-add button{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);cursor:pointer;font:inherit;font-size:.75rem;padding:2px 7px;line-height:1.2}.sld-bay-row button:hover:not(:disabled),.sld-inspector-add button:hover{border-color:var(--accent)}.sld-bay-row button:disabled{opacity:.35;cursor:default}.sld-inspector-add{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:6px}.sld-add-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.sld-add-label:after{content:":"}.palette-panel{margin:10px 0}.palette-panel .sld-palette{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.sld-palette{width:150px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}.sld-palette-title{padding:.4rem .6rem;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--line)}.sld-palette-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:2px}.sld-palette-item{display:flex;align-items:center;gap:8px;padding:4px 6px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);cursor:pointer;font:inherit;text-align:left}.sld-palette-item:hover{background:var(--panel-2);border-color:var(--line)}.sld-palette-art{flex:0 0 34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--text)}.sld-palette-label{font-size:.75rem;line-height:1.1}.sld-toolbar{display:flex;align-items:center;gap:4px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.sld-toolbar button{padding:.3rem .7rem;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;font-size:.8rem}.sld-toolbar button:hover:not(:disabled){border-color:var(--accent)}.sld-toolbar button:disabled{opacity:.4;cursor:default}.sld-toolbar button.is-on{border-color:var(--accent);color:var(--accent);background:var(--bg)}.sld-toolbar-sep{width:1px;align-self:stretch;background:var(--line);margin:2px}.canvas-host .react-flow__controls{box-shadow:0 2px 10px #00000080;border:1px solid var(--line);border-radius:7px;overflow:hidden}.canvas-host .react-flow__controls-button{width:26px;height:26px;background:var(--panel-2);border-bottom:1px solid var(--line)}.canvas-host .react-flow__controls-button:hover{background:var(--line)}.canvas-host .react-flow__controls-button svg{width:13px;height:13px;max-width:13px;max-height:13px;fill:var(--text)}.react-flow__minimap.sld-minimap{box-shadow:0 2px 10px #00000080;border:1px solid var(--line);border-radius:7px;overflow:hidden}.sld-edge-grab{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke}.sld-edge-grab.grab-v{cursor:ew-resize}.sld-edge-grab.grab-h{cursor:ns-resize}.sld-edge-grab:hover{stroke:var(--text);stroke-opacity:.22}.sld-edge-grab.is-pinned{stroke:var(--text);stroke-opacity:.08}.sld-edge-grab.is-pinned:hover{stroke-opacity:.22}.sld-legend{display:flex;gap:14px;align-items:center;padding:5px 11px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:.72rem;color:var(--text-muted)}.sld-legend-item{display:flex;align-items:center;gap:6px;white-space:nowrap}.sld-legend-swatch{width:16px;height:4px;border-radius:2px}.sld-menu{position:relative}.sld-menu-trigger{padding:.3rem .7rem;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;font-size:.8rem}.sld-menu-trigger:hover{border-color:var(--accent)}.sld-menu-backdrop{position:fixed;inset:0;z-index:10}.sld-menu-pop{position:absolute;top:calc(100% + 4px);right:0;z-index:11;min-width:172px;display:flex;flex-direction:column;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000080}.sld-menu-pop button{text-align:left;padding:6px 8px;background:transparent;border:none;border-radius:5px;color:var(--text);cursor:pointer;font:inherit;font-size:.8rem}.sld-menu-pop button:hover{background:var(--panel-2)}.sld-menu-sep{height:1px;background:var(--line);margin:4px 2px}.sld-menu-file{padding:4px 10px 6px;margin-bottom:2px;border-bottom:1px solid var(--line);font-size:.74rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.sld-menu-pop .sld-menu-danger{color:#e2796b}.sld-menu-confirm{padding:6px 8px;font-size:.76rem;color:var(--text-muted)}.sld-menu-confirm-row{display:flex;gap:6px;margin-top:6px}.sld-menu-confirm-row button{flex:1 1 auto;text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--panel-2)}.sld-menu-input{width:100%;margin-top:6px;padding:5px 7px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font-size:.8rem}.sld-menu-hint{display:block;margin-top:4px;font-size:.68rem;color:var(--text-muted)}.sld-inspector-note{margin:4px 0 0;font-size:.72rem;line-height:1.45;color:var(--text-muted)}.sld-palette-config{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;padding:6px;border-top:1px solid var(--line)}.sld-ways{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.72rem;color:var(--text-muted);padding:0 2px 2px}.sld-ways input{width:48px;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;font-size:.78rem;padding:2px 6px}.sld-config-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;flex:1 1 auto;min-width:0;text-align:left;padding:5px 8px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;font-size:.78rem}.sld-config-item:hover{border-color:var(--accent)}.sld-config-sub{font-size:.66rem;color:var(--text-muted)}.sld-config-row{display:flex;gap:4px;align-items:stretch}.sld-config-del{flex:0 0 auto;width:26px;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.7rem}.sld-config-del:hover{border-color:#e2796b;color:#e2796b}.sld-config-add{text-align:left;padding:5px 8px;background:transparent;border:1px dashed var(--line);border-radius:6px;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.75rem;margin-top:2px}.sld-config-add:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.sld-config-add:disabled{opacity:.4;cursor:default}.sld-config-save{display:flex;flex-direction:column;gap:4px;margin-top:2px}.sld-config-save select{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;padding:4px 6px}.sld-config-save input{flex:1 1 auto;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;font-size:.78rem;padding:3px 7px}.sld-config-save button{flex:0 0 auto;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;color:var(--text);cursor:pointer;font:inherit;font-size:.75rem;padding:3px 8px}.survey{height:100%;overflow-y:auto;width:100%;max-width:760px;margin:0 auto;padding:24px 24px 0;box-sizing:border-box}.survey-head h1{margin:0 0 4px;font-size:1.4rem}.survey-head .muted{margin:0 0 20px;max-width:60ch}.survey-empty{padding:24px 0}.survey-list{display:flex;flex-direction:column;gap:12px}.survey-sub{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.survey-sub.is-open{box-shadow:inset 3px 0 0 var(--accent)}.survey-sub-head{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;cursor:pointer}.survey-twisty{background:none;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;padding:8px;min-width:32px;transition:transform .15s ease}.survey-sub.is-open .survey-twisty{transform:rotate(90deg);color:var(--text)}.survey-sub-name{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:1rem;font-weight:600;padding:8px}.survey-sub-name:hover{border-color:var(--line)}.survey-sub-name:focus{border-color:var(--accent);outline:none;background:var(--bg)}.survey-pill{flex:none;white-space:nowrap;font-size:.72rem;color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--bg)}.survey-pill.is-warn{color:#d6a14a;border-color:#d6a14a66}.survey-del,.survey-confirm button,.survey-cancel{background:var(--bg);border:1px solid var(--line);color:var(--text-muted);border-radius:6px;padding:8px 12px;cursor:pointer;font:inherit;font-size:.8rem}.survey-del:hover{color:#d6584a;border-color:#d6584a66}.survey-confirm{display:flex;gap:6px}.survey-danger{background:#d6584a;border:1px solid #d6584a;color:#fff;border-radius:6px;padding:8px 12px;cursor:pointer;font:inherit;font-size:.8rem}.survey-equip{padding:10px 12px 14px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line)}.survey-none{padding:6px 4px;font-size:.85rem}.survey-item-wrap{border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden}.survey-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--panel-2)}.survey-item-tag{flex:none;width:132px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);padding:6px 8px;font:inherit;font-size:.92rem;font-weight:600}.survey-item-tag:hover{border-color:var(--line);background:var(--bg)}.survey-item-tag:focus{border-color:var(--accent);outline:none;background:var(--bg)}.survey-volt-chip{flex:none;font-size:.7rem;font-weight:700;line-height:1.2;border:1px solid currentColor;border-radius:999px;padding:2px 8px}.survey-volt-chip.is-ehv{color:var(--volt-ehv)}.survey-volt-chip.is-hv{color:var(--volt-hv)}.survey-volt-chip.is-lv{color:var(--volt-lv)}.survey-item-kind{flex:1;min-width:0;color:var(--text-muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.survey-item-del{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px 8px;font-size:.9rem}.survey-item-del:hover{color:#d6584a}.survey-add-equip{align-self:flex-start;margin-top:2px;background:var(--bg);border:1px dashed var(--line);color:var(--accent);border-radius:8px;padding:10px 14px;cursor:pointer;font:inherit;font-size:.9rem}.survey-add-equip:hover{border-color:var(--accent)}.survey-add-menu{display:flex;flex-direction:column;gap:8px;margin-top:2px}.survey-equip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.survey-equip-opt{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--text);font:inherit;font-size:.9rem;text-align:left}.survey-equip-opt .muted{font-size:.75rem}.survey-equip-opt:hover{border-color:var(--accent)}.survey-cancel{align-self:flex-start}.survey-add-sub{display:flex;gap:8px;margin-top:16px;position:sticky;bottom:0;z-index:2;padding:12px 0 18px;background:var(--bg);border-top:1px solid var(--line)}.survey-add-sub input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:12px;font:inherit;font-size:.95rem}.survey-add-sub input:focus{border-color:var(--accent);outline:none}.survey-add-sub button{background:var(--accent);border:none;color:#14151a;border-radius:8px;padding:12px 18px;cursor:pointer;font:inherit;font-size:.95rem;font-weight:600;white-space:nowrap}.survey .muted{color:var(--text-muted)}.survey-terms{display:flex;flex-direction:column;padding:2px 12px 6px}.survey-term{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--text);padding:9px 0}.survey-term+.survey-term{border-top:1px solid rgba(58,61,71,.5)}.survey-term-name{color:var(--text-muted)}.survey-term-device{display:flex;align-items:center;gap:10px}.survey-idgroup{flex:1;display:flex;min-width:0}.survey-idgroup input{position:relative}.survey-id-tag{flex:none;width:84px;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px 0 0 6px;color:var(--text);padding:5px 8px;font-size:.8rem;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.survey-id-name{flex:1;min-width:120px;margin-left:-1px;background:var(--panel);border:1px solid var(--line);border-radius:0 6px 6px 0;color:var(--text);padding:5px 9px;font:inherit;font-size:.84rem}.survey-term-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:83px}.survey-id-tag:focus,.survey-id-name:focus{border-color:var(--accent);outline:none;z-index:1}.survey-term-role-cap{flex:none;color:var(--text-muted);font-size:.72rem;text-transform:capitalize}.survey-term-rest{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;min-width:0}.survey-term-dir{flex:none;color:var(--text-muted);font-size:.72rem;white-space:nowrap}.survey-term-val{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.survey-term-val.is-linked{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 9px;font-size:.82rem}.survey-term-val.is-pending{color:#d6a14a;border:1px dashed rgba(214,161,74,.55);border-radius:6px;padding:4px 9px;font-size:.82rem}.survey-term-val.is-pending em{font-style:normal;font-size:.72rem;opacity:.8;margin-left:4px}.survey-term-x{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;font-size:.8rem}.survey-term-x:hover{color:#d6584a}.survey-term-set{flex:1;display:flex;align-items:center;gap:6px;min-width:0}.survey-term-set select,.survey-term-set input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:5px 7px;font:inherit;font-size:.82rem;min-width:0}.survey-term-set select:focus,.survey-term-set input:focus{border-color:var(--accent);outline:none}.survey-term-set .muted{font-size:.78rem;flex:none}.survey-term-suggest,.insp-suggest{background:none;border:1px dashed var(--line);color:var(--accent);border-radius:6px;padding:3px 9px;cursor:pointer;font:inherit;font-size:.74rem;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.survey-term-suggest:hover,.insp-suggest:hover{border-color:var(--accent)}.survey-term-mismatch,.insp-mismatch{background:#d6a14a1f;border:1px solid rgba(214,161,74,.5);color:#d6a14a;border-radius:6px;padding:3px 9px;cursor:pointer;font:inherit;font-size:.74rem;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.survey-term-mismatch:hover,.insp-mismatch:hover{border-color:#d6a14a}.insp-suggest,.insp-mismatch{align-self:flex-start;margin-top:2px}.survey-way-del{margin-left:auto;display:inline-flex;align-items:center;gap:4px}.survey-term-x~.survey-way-del{margin-left:0}.survey-way-del-x{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 6px;font-size:.9rem;line-height:1}.survey-way-del-x:hover{color:#d6584a}.survey-way-del-go{background:#d6584a;border:1px solid #d6584a;color:#fff;border-radius:6px;padding:4px 9px;cursor:pointer;font:inherit;font-size:.74rem;white-space:nowrap}.survey-way-del-keep{background:var(--bg);border:1px solid var(--line);color:var(--text-muted);border-radius:6px;padding:4px 9px;cursor:pointer;font:inherit;font-size:.74rem}.survey-board-actions{display:flex;gap:8px;padding:8px 12px 10px;border-top:1px solid var(--line)}.survey-board-actions button{background:none;border:1px dashed var(--line);color:var(--accent);border-radius:6px;padding:6px 12px;cursor:pointer;font:inherit;font-size:.8rem}.survey-board-actions button:hover{border-color:var(--accent)}.survey-term-state{display:inline-flex;align-items:center;flex:none}.survey-term-state .muted{font-size:.72rem;margin-right:8px}.survey-term-state button{background:var(--panel);border:1px solid var(--line);color:var(--text-muted);border-radius:0;padding:4px 11px;cursor:pointer;font:inherit;font-size:.76rem}.survey-term-state button:first-of-type{border-radius:6px 0 0 6px}.survey-term-state button:last-of-type{border-radius:0 6px 6px 0;margin-left:-1px}.survey-term-state button.on{font-weight:600;position:relative;z-index:1}.survey-term-state button.on.is-closed{background:#d6584a;border-color:#d6584a;color:#fff}.survey-term-state button.on.is-open{background:#5cb85c;border-color:#5cb85c;color:#14151a}.survey-item-np{flex:none;background:none;border:1px solid var(--line);color:var(--text-muted);border-radius:6px;padding:5px 9px;cursor:pointer;font:inherit;font-size:.78rem;white-space:nowrap}.survey-item-np:hover{border-color:var(--accent);color:var(--text)}.survey-item-np.has-data{color:var(--accent);border-color:var(--accent)}.survey-item-np.is-open{background:var(--bg);color:var(--text)}.survey-np{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.survey-np-field{display:flex;flex-direction:column;gap:3px}.survey-np-field input{background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:6px 8px;font:inherit;font-size:.82rem}.survey-np-field input:focus{border-color:var(--accent);outline:none}.survey-add-saved-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:4px 0 0}.survey-equip-opt.is-saved{border-style:dashed}.survey-add-config{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:12px}.survey-config-head{display:flex;align-items:center;gap:10px}.survey-config-back{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 11px;cursor:pointer;font:inherit;font-size:.95rem;line-height:1}.survey-config-back:hover{border-color:var(--accent)}.survey-config-title{font-size:.95rem;color:var(--text);font-weight:600}.survey-config-fields{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.survey-config-field{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-muted)}.survey-config-field select,.survey-config-field input{background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:6px 8px;font:inherit;font-size:.85rem}.survey-config-field input{width:56px}.survey-config-field select:focus,.survey-config-field input:focus{border-color:var(--accent);outline:none}.survey-config-fixed{font-size:.85rem;color:var(--text-muted);padding:4px 0}.survey-config-add{align-self:flex-start;background:var(--accent);border:none;color:#14151a;border-radius:8px;padding:10px 16px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:600}.survey-config-add:hover{filter:brightness(1.05)}.survey-suggest{border:1px solid var(--accent);border-radius:10px;background:var(--panel);padding:10px 12px;margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.survey-suggest-title{font-size:.8rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.survey-suggest-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.88rem}.survey-suggest-text{min-width:0}.survey-suggest-actions{display:flex;gap:6px;white-space:nowrap}.survey-suggest-actions button{background:var(--bg);border:1px solid var(--line);color:var(--text-muted);border-radius:6px;padding:5px 10px;cursor:pointer;font:inherit;font-size:.82rem}.survey-link{border-color:var(--accent)!important;color:var(--accent)!important}.survey-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.survey-head-row h1{margin:0}.survey-share{position:relative;flex:none;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit;font-size:.85rem;white-space:nowrap}.survey-share:hover{border-color:var(--accent)}.survey-share.is-due{border-color:var(--accent);color:var(--accent)}.survey-share-dot{position:absolute;top:-4px;right:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.survey-share-msg{flex:none;font-size:.78rem;color:#5cb85c}.survey-scroll-cue{position:sticky;bottom:92px;height:0;z-index:3;display:none;justify-content:flex-end;align-items:flex-end;padding-right:8px;pointer-events:none;opacity:0;transition:opacity .3s ease}.survey-scroll-cue.is-on{opacity:1}.survey-scroll-cue-chip{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid var(--accent);color:var(--accent);font-size:.95rem;transform:rotate(-90deg);animation:survey-cue-bob 1.6s ease-in-out infinite;box-shadow:0 2px 10px #00000059}@keyframes survey-cue-bob{0%,to{translate:0 0}50%{translate:0 5px}}@media(pointer:coarse){.survey-scroll-cue{display:flex}}@media(prefers-reduced-motion:reduce){.survey-scroll-cue-chip{animation:none}}.sw-toast{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--accent);border-radius:10px;padding:10px 14px;font-size:.88rem;color:var(--text);box-shadow:0 6px 24px #00000073}.sw-toast-go{background:var(--accent);border:none;color:#14151a;border-radius:6px;padding:6px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.sw-toast-x{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 6px;font-size:.8rem}@media(pointer:coarse){.survey button,.survey input,.survey select,.mode-tab,.ref-tab{touch-action:manipulation}.survey-term-state button{padding:8px 13px}.survey-term-set select,.survey-term-set input,.survey-id-tag,.survey-id-name{padding:9px 10px}.survey-share{padding:10px 16px}.survey-equip-opt{padding:13px 12px}.survey-add-equip{padding:12px 16px}.survey-twisty{padding:10px 12px;font-size:1.2rem}.survey-item-np,.survey-del{padding:9px 12px}}@media(max-width:700px){.app-header{gap:.6rem;padding:0 .6rem;overflow-x:auto;scrollbar-width:none}.app-header::-webkit-scrollbar{display:none}.mode-tab,.ref-tab,.sites-trigger{flex:none}.app-header:has(.mode-tabs) .app-title{display:none}.mode-tab-hint{display:none}.mode-tab{padding:.45rem .6rem;white-space:nowrap}.ref-tab{padding:.35rem .55rem}.sites-trigger{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.survey{padding:14px 12px 0}.survey-head h1{font-size:1.15rem;margin-bottom:2px}.survey-head .muted{font-size:.82rem;margin:0 0 12px}.survey-head-row{flex-wrap:wrap}.survey-sub-head{flex-wrap:wrap;row-gap:4px}.survey-sub-name{flex:1 1 calc(100% - 72px)}.survey-sub-head .survey-pill:first-of-type{margin-left:40px}.survey-sub-head .survey-del,.survey-sub-head .survey-confirm{margin-left:auto}.survey-item{flex-wrap:wrap;row-gap:6px}.survey-item-tag{width:110px}.survey-item-del{order:1;margin-left:auto}.survey-item-kind{order:2;flex:1 1 150px}.survey-item-np{order:3}.survey-term-device{flex-wrap:wrap;gap:6px 10px}.survey-idgroup{flex-basis:100%}.survey-term-chips{margin-left:0}.survey-equip{padding:8px 8px 12px}.survey-terms{padding:2px 8px 6px}}.ref-tab.ref-icon{padding:.35rem .55rem;font-size:1rem;line-height:1}.diagram-tr{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.ops-mode{position:absolute;inset:0;display:flex}.react-flow__edge.nrg-live .react-flow__edge-path{stroke:#d6584a}.react-flow__edge.nrg-dead .react-flow__edge-path{stroke:var(--text-muted);opacity:.4}.react-flow__edge.nrg-earthed .react-flow__edge-path{stroke:#d6a14a;stroke-dasharray:6 4}@keyframes nrg-fault-pulse{0%,to{opacity:1}50%{opacity:.4}}.react-flow__edge.nrg-fault .react-flow__edge-path{stroke:#ff2d8f;stroke-width:3.5;stroke-dasharray:7 4;animation:nrg-fault-pulse .85s ease-in-out infinite}.react-flow__node.nrg-live .sld-busbar{color:#d6584a}.react-flow__node.nrg-dead .sld-busbar{color:var(--text-muted);opacity:.5}.react-flow__node.nrg-earthed .sld-busbar{color:#d6a14a}.react-flow__node.nrg-earthed .sld-busbar svg line{stroke-dasharray:6 4}.react-flow__node.nrg-fault .sld-busbar{color:#ff2d8f}.react-flow__node.nrg-fault .sld-busbar svg line{stroke-dasharray:8 4}.sld-state-bg.is-changed{outline:2px dashed var(--text);outline-offset:2px}.ops-fault{max-width:240px;padding:8px 10px;background:#e0473a29;border:1px solid #e0473a;border-radius:8px;color:#ff9a8f;font-size:.76rem;font-weight:600;line-height:1.4}.sld-status-line{width:18px;height:0;border-top:3px solid;border-radius:2px;flex:none}.sld-status-line.is-live{border-top-color:#d6584a}.sld-status-line.is-dead{border-top-color:var(--text-muted);opacity:.45}.sld-status-line.is-earthedrun{border-top-color:#d6a14a;border-top-style:dashed}.sld-status-line.is-fault{border-top-color:#ff2d8f;border-top-style:dashed}.sld-status-swatch.is-changed{background:transparent;box-shadow:none;outline:2px dashed var(--text);outline-offset:-2px;border-radius:4px}.ops-pane{padding:14px;display:flex;flex-direction:column;gap:12px}.ops-pane-title{margin:0;font-size:.95rem}.ops-pane-hint{margin:0;font-size:.74rem;color:var(--text-muted);line-height:1.45}.ops-state{text-transform:capitalize}.ops-state.is-closed{color:#d6584a}.ops-state.is-open{color:#5cb85c}.ops-state.is-earthed{color:#d6a14a}.ops-steps{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}.ops-steps-head{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.ops-steps-tools{display:flex;gap:10px;align-items:center}.ops-clear{background:none;border:none;padding:0;color:var(--accent);font-size:.72rem;cursor:pointer;text-transform:none;letter-spacing:0}.ops-assign-hint{color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:5px;padding:5px 7px!important}.ops-step.is-blank .ops-step-text{color:var(--text-muted)}.ops-step.is-assigning{background:color-mix(in srgb,var(--accent) 22%,transparent);outline:1px dashed var(--accent)}.ops-zone-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.ops-zone-chip{display:inline-flex;align-items:center;gap:5px;background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--text);border-radius:11px;padding:2px 8px;font-size:.74rem;cursor:pointer}.ops-zone-chip:hover{background:color-mix(in srgb,var(--accent) 28%,transparent)}.ops-zone-chip-x{color:var(--text-muted);font-weight:700}.ops-step-pending b{color:var(--accent);font-weight:600}.ops-step-pending i{color:var(--text-muted)}.ops-step-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:.78rem}.ops-step{display:flex;align-items:center;gap:4px;border-radius:5px}.ops-step.is-selected{background:color-mix(in srgb,var(--accent) 22%,transparent);outline:1px solid var(--accent)}.ops-step-text{flex:1;min-width:0;text-align:left;background:none;border:none;color:inherit;font:inherit;padding:2px 4px;cursor:pointer;border-radius:4px}.ops-step-text:hover{background:var(--panel-2)}.ops-step-text b{font-weight:600}.ops-step-ctl{display:flex;gap:1px;flex:none}.ops-step-ctl button{background:none;border:none;padding:1px 3px;color:var(--text-muted);font-size:.82rem;line-height:1;cursor:pointer;border-radius:3px}.ops-step-ctl button:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.ops-step-ctl button:disabled{opacity:.3;cursor:default}.ops-step-ctl .ops-step-remove:hover:not(:disabled){color:#e0796b}@keyframes ops-flash{0%,to{filter:none}50%{filter:drop-shadow(0 0 5px var(--accent)) drop-shadow(0 0 9px var(--accent))}}.react-flow__node.is-flash{animation:ops-flash 1.1s ease-in-out infinite;z-index:60!important}.ops-step-nav-hint kbd{display:inline-block;min-width:1.1em;padding:0 4px;border:1px solid var(--border, #3a3a44);border-bottom-width:2px;border-radius:4px;background:color-mix(in srgb,var(--text) 8%,transparent);font-family:inherit;font-size:.92em;line-height:1.4;text-align:center}.ops-run-btn{width:100%;margin-top:10px;padding:7px 0;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);border-radius:6px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.8rem;font-weight:600;cursor:pointer}.ops-run-btn:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}.ops-run-bar{margin-top:10px;padding:9px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:7px;background:color-mix(in srgb,var(--accent) 10%,transparent)}.ops-run-status{display:flex;flex-direction:column;gap:2px;margin-bottom:7px}.ops-run-pos{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ops-run-op{font-size:.84rem;color:var(--text)}.ops-run-op b{color:var(--accent)}.ops-run-ctl{display:flex;gap:6px;align-items:center}.ops-run-ctl button{flex:1;padding:5px 0;border:1px solid var(--border, #3a3a44);border-radius:5px;background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);font-size:.85rem;cursor:pointer}.ops-run-ctl button:disabled{opacity:.35;cursor:not-allowed}.ops-run-ctl .ops-run-exit{flex:0 0 auto;padding:5px 10px;color:var(--text-muted)}.ops-run-bar .ops-pane-hint{margin:7px 0 0}.ops-step.is-done .ops-step-text{opacity:.5}.state-seg button:disabled{opacity:.35;cursor:not-allowed}.ops-interlock{color:#d6a14a}.ops-controls{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.ops-views{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px #00000059}.ops-view{padding:7px 16px;font-size:.78rem;background:transparent;color:var(--text-muted);border:none;cursor:pointer}.ops-view+.ops-view{border-left:1px solid var(--line)}.ops-view.is-active{background:var(--line);color:var(--text)}.ops-view:disabled{opacity:.45;cursor:default}.ops-hint{margin:0;max-width:240px;padding:7px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:.72rem;line-height:1.4;color:var(--text-muted)}.ops-zone-bar{display:flex;align-items:center;gap:8px}.ops-zonebtn{padding:7px 12px;font-size:.78rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer;box-shadow:0 6px 20px #00000059}.ops-zonebtn.is-active{background:var(--accent);border-color:var(--accent);color:#0b0c0f}.ops-print-btn{display:block;margin:0 0 8px auto;padding:7px 12px;font-size:.78rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer;white-space:nowrap;box-shadow:0 6px 20px #00000059}.ops-print-btn:hover{border-color:var(--accent)}.ops-zone-pick{font-size:.72rem;color:var(--accent)}.ops-picking .react-flow__pane{cursor:crosshair}.ops-zone-head{display:flex;justify-content:space-between;align-items:baseline}.ops-zone-target{margin:0;font-size:.82rem}.ops-zone-warn{margin:0;padding:7px 9px;border-radius:6px;font-size:.74rem;line-height:1.35;background:#d6a14a1f;border:1px solid rgba(214,161,74,.5);color:#e0b366}.ops-zone-warn.is-earth-on-live,.ops-zone-warn.is-not-dead{background:#e0473a1f;border-color:#e0473a8c;color:#e87a6f}.ops-gen-offer{display:flex;align-items:center;gap:9px;margin:0;padding:7px 9px;border-radius:6px;font-size:.74rem;line-height:1.35;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.ops-gen-offer span{flex:1}.ops-gen-start{flex-shrink:0;background:var(--accent);color:#08131f;border:none;border-radius:5px;padding:4px 10px;font-size:.74rem;font-weight:600;cursor:pointer}.ops-gen-start:hover{filter:brightness(1.08)}.ops-gen-accepted{margin:0;font-size:.72rem;color:var(--volt-lv, #6ea8fe)}.ops-plan-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px;font-size:.78rem;line-height:1.35}.ops-plan-step.k-secure{color:var(--text-muted)}.ops-plan-step.k-earth{font-weight:600}.ops-plan-step.k-instruction{list-style:none;margin-left:-14px;font-style:italic;color:var(--text-muted)}.ops-plan-step .vb-ehv{color:var(--volt-ehv)}.ops-plan-step .vb-hv{color:var(--volt-hv)}.ops-plan-step .vb-lv{color:var(--volt-lv)}.ops-plan-where{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:1px}.ops-plan-loc{font-size:.6rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--line);border-radius:4px;padding:0 5px}.ops-plan-plant{font-weight:600}.ops-plan-op{font-size:.82rem;opacity:.85}.ops-confirm{margin-top:4px;padding:8px 12px;font-size:.8rem;font-weight:600;background:var(--accent);border:none;border-radius:8px;color:#0b0c0f;cursor:pointer}.ops-confirm:hover{filter:brightness(1.08)}.wz-window{box-sizing:border-box;border:2px dashed #b66bff;border-radius:12px;background:repeating-linear-gradient(45deg,#a855f729 0 9px,#a855f70a 9px 18px);box-shadow:0 0 0 1px #b66bff40,0 0 22px #a855f740;pointer-events:none}.sld-edge-halo{fill:none;stroke:#a855f74d;stroke-width:20;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.react-flow__node.wz-iso{outline:2px solid #4e8cf2;outline-offset:2px;border-radius:6px}.react-flow__node.wz-earth{outline:2px solid #d6a14a;outline-offset:2px;border-radius:6px}.sld-status-key{width:132px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000059;display:flex;flex-direction:column;gap:6px;font-size:.74rem;color:var(--text)}.sld-status-title{font-weight:700;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.sld-status-row{display:flex;align-items:center;gap:8px}.sld-status-swatch{width:13px;height:13px;border-radius:4px;flex:none}.sld-status-swatch.is-closed{background:#d6584a40;box-shadow:inset 0 0 0 1.5px #d6584a}.sld-status-swatch.is-open{background:#5cb85c38;box-shadow:inset 0 0 0 1.5px #5cb85c}.sld-status-swatch.is-earthed{background:#d6a14a40;box-shadow:inset 0 0 0 1.5px #d6a14a}.sld-waykey{width:230px;max-height:46vh;overflow:auto;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000059;font-size:.72rem}.sld-waykey-title{font-weight:700;color:var(--text);margin-bottom:6px}.sld-waykey-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.sld-waykey-list li{display:flex;gap:7px;align-items:baseline}.sld-waykey-num{flex:0 0 auto;min-width:16px;height:16px;line-height:16px;border-radius:8px;background:var(--accent);color:#14151a;text-align:center;font-weight:700;font-size:9px}.sld-waykey-name{color:var(--text);min-width:0}.sld-waykey-tag{color:var(--text-muted)}.settings-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:9vh;z-index:50}.settings-dialog{display:flex;flex-direction:column;width:min(720px,94vw);max-height:80vh;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 50px #00000080;overflow:hidden}.settings-body{flex:1 1 auto;display:flex;min-height:0}.settings-nav{flex:0 0 184px;display:flex;flex-direction:column;gap:4px;padding:12px;border-right:1px solid var(--line);overflow-y:auto}.settings-navitem{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);cursor:pointer;font:inherit}.settings-navitem:hover{background:var(--panel-2)}.settings-navitem.is-active{background:var(--panel-2);border-color:var(--accent)}.settings-navitem-label{font-size:.85rem;font-weight:600}.settings-navitem-blurb{font-size:.72rem;color:var(--text-muted)}.settings-content{flex:1 1 auto;overflow-y:auto}.settings-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.settings-head h2{margin:0;font-size:.98rem}.settings-close{background:none;border:none;color:var(--text-muted);font-size:1.3rem;line-height:1;cursor:pointer}.settings-close:hover{color:var(--text)}.settings-section{padding:16px 18px}.settings-section h3{margin:0 0 4px;font-size:.85rem}.settings-section h3:not(:first-child){margin-top:20px}.settings-help{margin:0 0 12px;font-size:.78rem;color:var(--text-muted)}.settings-options{display:flex;flex-direction:column;gap:8px}.settings-option{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.settings-option input{grid-row:span 2;align-self:start;margin-top:2px;accent-color:var(--accent)}.settings-option.is-active{border-color:var(--accent);background:var(--panel-2)}.settings-option-label{font-weight:600;font-size:.85rem;color:var(--text)}.settings-option-hint{font-size:.76rem;line-height:1.4;color:var(--text-muted)}.sld-library-open{text-align:left;padding:7px 9px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;font-size:.8rem;font-weight:600}.sld-library-open:hover{border-color:var(--accent)}.lib-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding-top:7vh;z-index:55}.lib-dialog{display:flex;flex-direction:column;width:min(840px,94vw);height:min(80vh,640px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 50px #00000080;overflow:hidden}.lib-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line)}.lib-head h2{margin:0;font-size:.98rem}.lib-close{background:none;border:none;color:var(--text-muted);font-size:1.3rem;line-height:1;cursor:pointer}.lib-close:hover{color:var(--text)}.lib-body{flex:1 1 auto;display:flex;min-height:0}.lib-cats{flex:0 0 200px;display:flex;flex-direction:column;gap:4px;padding:12px;border-right:1px solid var(--line);overflow-y:auto}.lib-cat{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);cursor:pointer;font:inherit}.lib-cat:hover{background:var(--panel-2)}.lib-cat.is-active{background:var(--panel-2);border-color:var(--accent)}.lib-cat-label{font-size:.85rem;font-weight:600}.lib-cat-blurb{font-size:.72rem;line-height:1.3;color:var(--text-muted)}.lib-main{flex:1 1 auto;overflow-y:auto;padding:16px 18px}.lib-products{display:flex;flex-direction:column;gap:8px}.lib-product{display:flex;flex-direction:column;gap:3px;text-align:left;width:100%;padding:12px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;color:var(--text);cursor:pointer;font:inherit}.lib-product:hover{border-color:var(--accent)}.lib-product-name{font-size:.9rem;font-weight:600}.lib-product-desc{font-size:.76rem;line-height:1.4;color:var(--text-muted)}.lib-saved-row{display:flex;gap:6px;align-items:stretch}.lib-saved-row .lib-product{flex:1 1 auto}.lib-del{flex:0 0 auto;width:34px;background:transparent;border:1px solid var(--line);border-radius:8px;color:var(--text-muted);cursor:pointer}.lib-del:hover{border-color:#e2796b;color:#e2796b}.lib-empty{font-size:.82rem;line-height:1.5;color:var(--text-muted);max-width:46ch}.lib-foot{display:flex;align-items:center;padding:10px 18px;border-top:1px solid var(--line)}.lib-edit{background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.82rem;padding:6px 12px}.lib-edit:hover{border-color:var(--accent);color:var(--text)}.lib-manage{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px}.lib-manage-hint{margin:0;font-size:.82rem;line-height:1.5;color:var(--text-muted)}.lib-manage-newcat{display:flex;gap:6px}.lib-manage-cats{display:flex;flex-wrap:wrap;gap:6px}.lib-manage-cat{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;color:var(--text);font-size:.8rem;padding:3px 4px 3px 12px}.lib-manage-list{display:flex;flex-direction:column;gap:6px}.lib-manage-row{display:flex;align-items:center;gap:6px}.lib-manage-name{flex:0 0 26%;min-width:0}.lib-manage-descin{flex:1 1 auto;min-width:0}.lib-manage input,.lib-manage-catsel{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.85rem;padding:6px 8px}.lib-manage-newcat input{flex:1 1 auto;min-width:0}.lib-manage-newcat button{flex:0 0 auto;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font:inherit;padding:6px 12px}.lib-manage-newcat button:disabled{opacity:.4;cursor:default}.lib-manage-catsel{flex:0 0 auto}.lib-config{display:flex;flex-direction:column;gap:12px}.lib-back{align-self:flex-start;background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-size:.78rem;padding:0}.lib-config h3{margin:0;font-size:.95rem}.lib-config-desc{margin:-6px 0 2px;font-size:.78rem;color:var(--text-muted)}.lib-field{display:flex;flex-direction:column;gap:5px}.lib-field.lib-check{flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.lib-check input{width:16px;height:16px;flex:0 0 auto}.lib-field>span{font-size:.8rem;font-weight:600}.lib-field em{font-style:normal;font-weight:400;color:var(--text-muted)}.lib-field input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.85rem;padding:7px 9px}.lib-field input:focus{border-color:var(--accent);outline:none}.lib-row{display:flex;gap:16px;align-items:flex-start}.lib-field-ways{flex:0 0 110px}.lib-seg{display:flex;gap:0}.lib-seg button{background:var(--panel-2);border:1px solid var(--line);color:var(--text-muted);cursor:pointer;font:inherit;font-size:.82rem;padding:7px 16px}.lib-seg button:first-child{border-radius:6px 0 0 6px}.lib-seg button:last-child{border-radius:0 6px 6px 0;border-left:none}.lib-seg button.is-active{background:var(--accent);border-color:var(--accent);color:#14151a;font-weight:600}.lib-seg-sm button{padding:4px 9px;font-size:.78rem}.lib-waydev{flex:0 0 auto;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.8rem;padding:5px 6px}.lib-wizardsel{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.85rem;padding:6px 8px}.lib-wizardsel:disabled{opacity:.5}.lib-wayrow input{flex:1 1 auto;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;padding:6px 8px}.lib-waylist{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow-y:auto;padding-right:2px}.lib-wayrow{display:flex;align-items:center;gap:8px}.lib-wayno{flex:0 0 auto;width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;background:var(--panel-2);border:1px solid var(--line);color:var(--text-muted);font-size:.7rem;font-weight:700}.lib-wayrow input{flex:1 1 auto;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.82rem;padding:6px 8px}.lib-wayrow input:focus{border-color:var(--accent);outline:none}.lib-actions{display:flex;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--line)}.lib-add{background:var(--accent);border:none;color:#14151a;border-radius:8px;padding:9px 20px;cursor:pointer;font:inherit;font-size:.88rem;font-weight:600}.lib-add:hover{filter:brightness(1.05)}.print-overlay{position:fixed;inset:0;z-index:1200;display:flex;background:#0009}.print-controls{flex:0 0 280px;display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto}.print-controls h3{margin:0;font-size:1rem}.print-field{display:flex;flex-direction:column;gap:5px;font-size:.78rem;color:var(--text-muted)}.print-field input,.print-field select,.print-field textarea{background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);padding:7px 8px;font:inherit;font-size:.88rem}.print-field input:focus,.print-field select:focus,.print-field textarea:focus{border-color:var(--accent);outline:none}.print-field textarea{resize:vertical}.print-hint{margin:0;font-size:.75rem;color:var(--text-muted);line-height:1.4}.print-actions{display:flex;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.print-actions button{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:9px 0;cursor:pointer;font:inherit;font-size:.88rem;font-weight:600}.print-actions .print-go{background:var(--accent);border-color:var(--accent);color:#14151a}.print-actions button:hover{filter:brightness(1.08)}.print-preview{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:16px}.print-sheet-scaler{position:relative;flex:0 0 auto}.print-sheet{position:absolute;top:0;left:0;transform-origin:top left;background:#fff;overflow:hidden;box-shadow:0 10px 40px #00000080;--text: #000;--text-muted: #1a1a1a;--line: #000;--accent: #000;--volt-ehv: #000;--volt-hv: #000;--volt-lv: #000;--wd-chevron: #000;--panel: #fff;--panel-2: #fff;color:#000}.print-frame{position:absolute;inset:4mm;border:.4mm solid #000}.print-canvas{position:absolute;inset:0 0 13mm}.print-sheet .react-flow__edge-path,.print-sheet .sld-node svg *,.print-sheet .sld-busbar svg *,.print-sheet .sld-composite svg *{vector-effect:non-scaling-stroke}.print-sheet .sld-label,.print-sheet .sld-busbar-tag{font-size:calc(9px * var(--inv-z, 1))}.print-sheet .sld-substation-name{font-size:calc(11px * var(--inv-z, 1))}.print-sheet .sld-port-label{font-size:calc(8px * var(--inv-z, 1))}.print-sheet .sld-composite-header{font-size:calc(10px * var(--inv-z, 1))}.print-sheet .sld-composite-hint{font-size:calc(12px * var(--inv-z, 1))}.print-sheet .react-flow__handle{opacity:0!important;pointer-events:none}.print-sheet .react-flow__node,.print-sheet .react-flow__edge,.print-sheet .react-flow__pane,.print-sheet .sld-substation-name{pointer-events:none}.print-sheet .sld-edge-grab{display:none}.print-sheet .react-flow__node.is-locked{outline:none}.print-sheet .react-flow__attribution{display:none}.print-sheet .sld-composite{background:transparent}.print-sheet .sld-composite-toggle{display:none}.print-sheet .sld-substation{background:transparent;border:calc(1px * var(--inv-z, 1)) dashed #999}.print-sheet .sld-substation-name{color:#777}.print-sheet .react-flow__edge .react-flow__edge-path{stroke:#000}.print-sheet .sld-label-num{background:#fff;color:#000;box-shadow:inset 0 0 0 1px #000;font-size:calc(9px * var(--inv-z, 1));min-width:calc(15px * var(--inv-z, 1));height:calc(15px * var(--inv-z, 1));line-height:calc(15px * var(--inv-z, 1))}.print-notes{position:absolute;top:0;right:0;max-width:70mm;padding:2.5mm 3mm;background:#fff;border-left:.3mm solid #000;border-bottom:.3mm solid #000}.print-notes-title{font-size:8pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.5mm}.print-notes ol{margin:0;padding-left:4.5mm;font-size:6.5pt;line-height:1.45}.print-waykey{position:absolute;top:0;left:0}.print-waykey .sld-waykey{width:auto;max-width:70mm;max-height:none;overflow:visible;background:#fff;border:none;border-right:.3mm solid #000;border-bottom:.3mm solid #000;border-radius:0;box-shadow:none;font-size:6.5pt}.print-waykey .sld-waykey-num{background:#fff;color:#000;box-shadow:inset 0 0 0 1px #000}.print-titleblock{position:absolute;right:0;bottom:0;display:flex;background:#fff;border-top:.4mm solid #000;border-left:.4mm solid #000}.print-tb-cell{display:flex;flex-direction:column;gap:.8mm;padding:2mm 3mm;border-left:.25mm solid #000;min-width:22mm}.print-tb-cell:first-child{border-left:none}.print-tb-cell.print-tb-wide{min-width:50mm}.print-tb-cell span{font-size:5.5pt;text-transform:uppercase;letter-spacing:.08em;color:#333}.print-tb-cell strong{font-size:8pt;white-space:nowrap}.print-state .sld-state-bg.is-earthed{background:#1f9d3a29;box-shadow:inset 0 0 0 1.4px #1f9d3af2;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-state .sld-state-bg:not(.is-earthed){background:transparent;box-shadow:none}.print-state .react-flow__edge.nrg-live .react-flow__edge-path,.print-state .react-flow__edge.nrg-dead .react-flow__edge-path,.print-state .react-flow__edge.nrg-fault .react-flow__edge-path{stroke:#000;animation:none}.print-state .react-flow__edge.nrg-dead .react-flow__edge-path{opacity:.4}.print-state .react-flow__node.nrg-live .sld-busbar,.print-state .react-flow__node.nrg-dead .sld-busbar,.print-state .react-flow__node.nrg-fault .sld-busbar{color:#000}.print-state .react-flow__node.nrg-dead .sld-busbar{opacity:.4}.print-state .react-flow__edge.nrg-earthed .react-flow__edge-path{stroke:#1f9d3a;stroke-width:2.5;stroke-dasharray:7 4;opacity:1}.print-state .react-flow__node.nrg-earthed .sld-busbar{color:#1f9d3a}.print-state .react-flow__node.nrg-earthed .sld-busbar svg line{stroke-dasharray:6 4}.print-state .react-flow__node.wz-earth{outline-color:#1f9d3a}.print-state .react-flow__node.wz-iso{outline:none}.print-state .wz-window{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-key{position:absolute;left:0;bottom:0;padding:2.5mm 3mm;background:#fff;border-right:.3mm solid #000;border-top:.3mm solid #000;font-size:6.5pt;line-height:1.5}.print-key-title{font-size:7.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.5mm}.print-key-row{display:flex;align-items:center;gap:2mm;white-space:nowrap}.print-key-line{width:8mm;height:0;border-top:.6mm solid #000;flex:none}.print-key-line.is-live{border-top-color:#000}.print-key-line.is-dead{border-top-color:#000;opacity:.4}.print-key-line.is-earthed{border-top-width:.9mm;border-top-style:dashed;border-top-color:#1f9d3a}.print-key-swatch{width:6mm;height:3mm;flex:none;border-radius:1mm}.print-key-swatch.is-work{border:.4mm dashed #a855f7;background:repeating-linear-gradient(45deg,#a855f72e 0 1.5mm,#a855f70d 1.5mm 3mm);-webkit-print-color-adjust:exact;print-color-adjust:exact}@media print{#root{display:none!important}.print-overlay{position:static!important;display:block!important;background:none!important}.print-controls{display:none!important}.print-preview{display:block!important;padding:0!important;overflow:visible!important}.print-sheet-scaler{width:auto!important;height:auto!important}.print-sheet{position:static!important;transform:none!important;box-shadow:none!important}}.sched-mode{display:flex;height:100%;overflow:hidden}.sched-empty{margin:auto;max-width:520px;padding:32px;text-align:center;color:var(--text-muted)}.sched-empty h1{color:var(--text);font-size:1.2rem;margin:0 0 12px}.sched-controls{flex:0 0 290px;display:flex;flex-direction:column;gap:9px;padding:16px;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line)}.sched-controls h2{margin:0 0 4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sched-field{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:var(--text-muted)}.sched-field input{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;color:var(--text);font:inherit;font-size:.82rem}.sched-field-row{display:flex;gap:8px}.sched-field-row .sched-field{flex:1;min-width:0}.sched-hint{margin-top:6px;font-size:.7rem;line-height:1.5;color:var(--text-muted)}.sched-preview{flex:1;overflow:auto;padding:24px;display:flex;justify-content:center;background:#14151a}.sched-doc{width:100%;max-width:1400px;align-self:flex-start;background:#fff;color:#111;padding:22px 26px 40px;box-shadow:0 10px 40px #00000080;font-size:12px}.sched-doc-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid #111;padding-bottom:6px;margin-bottom:10px}.sched-doc-title{font-size:16px;font-weight:700;letter-spacing:.02em}.sched-doc-sub{font-size:12px;color:#444}.sched-header{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #111;margin-bottom:12px}.sched-hcell{display:flex;flex-direction:column;gap:2px;padding:5px 8px;border-right:1px solid #bbb;border-bottom:1px solid #bbb;min-width:0}.sched-hcell-wide{grid-column:span 2}.sched-hcell span{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#666}.sched-hcell strong{font-size:11px;font-weight:600;overflow-wrap:anywhere}.sched-notes{border:1px solid #bbb;border-left:3px solid #b26a00;padding:6px 10px;margin-bottom:12px;background:#fbf7ef}.sched-notes-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#555;margin-bottom:3px}.sched-notes ul{margin:0 0 4px;padding-left:16px;font-size:11px;line-height:1.45}.sched-note-item{display:flex;align-items:center;gap:4px}.sched-note-item .sched-edit{flex:1;font-size:11px}.sched-note-del{flex:none;border:1px solid #ccc;background:#fff;color:#555;font-size:10px;line-height:1;padding:2px 5px;border-radius:3px;cursor:pointer}.sched-note-del:hover{background:#fde2e0;color:#b00;border-color:#e3a9a3}.sched-note-add{border:1px dashed #c9b48a;background:transparent;color:#8a6d2f;font-size:10px;padding:2px 8px;border-radius:4px;cursor:pointer}.sched-note-add:hover{background:#fff}.sched-table{width:100%;border-collapse:collapse;table-layout:fixed}.sched-table th,.sched-table td{border:1px solid #bbb;padding:4px 7px;text-align:left;vertical-align:top}.sched-table thead th{background:#ececec;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#333;border-color:#111}.sched-table .c-item{width:34px;text-align:center;color:#555}.sched-table .c-loc{width:150px}.sched-table .c-plant{width:230px;font-weight:600}.sched-table .c-time{width:52px}.sched-table .c-by{width:56px}.sched-table .c-com{width:130px}.sched-table tr.sched-work td{text-align:center;font-weight:700;background:#fff3bf;border-color:#111;padding:7px}.sched-table .c-plant.vb-ehv{color:#1565c0}.sched-table .c-plant.vb-hv{color:#b26a00}.sched-table .c-plant.vb-lv{color:#2e7d32}.sched-edit.vb-ehv{color:#1565c0}.sched-edit.vb-hv{color:#b26a00}.sched-edit.vb-lv{color:#2e7d32}.sched-tools{display:flex;flex-wrap:wrap;gap:6px}.sched-tools button{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 9px;color:var(--text);font:inherit;font-size:.78rem;cursor:pointer}.sched-tools button:hover{background:var(--panel-2)}.sched-tools .sched-regen{margin-left:auto}.sched-tools .sched-regen.is-confirm{background:#d6584a;border-color:#d6584a;color:#fff}.sched-table .c-ctl{width:64px;padding:2px 3px;background:#fafafa}.sched-rowctl{display:flex;gap:1px}.sched-rowctl button{flex:1;border:1px solid #ccc;background:#fff;color:#555;font-size:11px;line-height:1;padding:3px 0;cursor:pointer;border-radius:3px}.sched-rowctl button:hover{background:#eee;color:#111}.sched-rowctl button.del:hover{background:#fde2e0;color:#b00;border-color:#e3a9a3}.sched-edit{width:100%;border:1px solid transparent;background:transparent;color:inherit;font:inherit;line-height:1.3;padding:1px 3px;border-radius:3px;box-sizing:border-box;display:block;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top}.sched-edit:hover{border-color:#ddd}.sched-edit:focus{outline:none;border-color:#6ea8fe;background:#fff}.c-plant .sched-edit{font-weight:600}.sched-note-row td{background:#f7f9fc}.sched-edit-note{font-style:italic;color:#334}.sched-edit-work{font-weight:700;text-align:center}.sched-tools button.sched-print{background:var(--accent);border-color:var(--accent);color:#14151a;font-weight:600}.sched-tools button.sched-print:hover{filter:brightness(1.08);background:var(--accent)}.print-check{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text);cursor:pointer}.print-check input{width:15px;height:15px}.sched-print-preview{flex:1;overflow:auto;padding:24px;display:flex;justify-content:center;background:#14151a}.sched-doc-print{align-self:flex-start;max-width:1100px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sched-doc-print .sched-cell-note{background:#f7f9fc;font-style:italic;color:#334}.sched-doc-print td{white-space:pre-wrap;overflow-wrap:anywhere}.sched-doc-print.bw .c-plant.vb-ehv,.sched-doc-print.bw .c-plant.vb-hv,.sched-doc-print.bw .c-plant.vb-lv{color:#111}.sched-doc-print.bw .sched-work td{background:#eee}.sched-doc-print.bw .sched-notes{border-left-color:#888;background:#f6f6f6}@media print{.sched-print-preview{display:block!important;overflow:visible!important;padding:0!important;background:none!important}.sched-doc-print{width:100%!important;max-width:none!important;align-self:stretch!important;box-shadow:none!important;padding:0!important;font-size:11px}.sched-doc-print .sched-table thead{display:table-header-group}.sched-doc-print .sched-table tr,.sched-doc-print .sched-notes,.sched-doc-print .sched-header{break-inside:avoid;page-break-inside:avoid}}.scenbar{display:flex;flex-direction:column;gap:6px}.scenbar-row{display:flex;align-items:center;gap:6px}.scenbar-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex:none}.scenbar-select,.scenbar-name{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;font-size:.82rem;padding:4px 6px}.scenbar-select:focus,.scenbar-name:focus{outline:none;border-color:var(--accent)}.scenbar-actions{display:flex;gap:2px;flex:none}.scenbar-actions button{background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;font-size:.8rem;line-height:1;padding:4px 6px;cursor:pointer}.scenbar-actions button:hover{background:var(--panel-2)}.scenbar-del.is-confirm{background:#d6584a;border-color:#d6584a;color:#fff;font-size:.68rem}.scenbar-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scenbar-kind{display:flex;align-items:center;gap:5px;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.scenbar-kind select{background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;font-size:.76rem;padding:3px 5px}.scenbar-status{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.scenbar-status button{background:var(--bg);border:none;color:var(--text-muted);font:inherit;font-size:.72rem;padding:3px 9px;cursor:pointer}.scenbar-status button+button{border-left:1px solid var(--line)}.scenbar-status button.on{background:var(--accent);color:#14151a;font-weight:600}.scenbar-drift{font-size:.72rem;line-height:1.35;color:#e0a23a;background:#e0a23a1a;border:1px solid rgba(224,162,58,.35);border-radius:5px;padding:4px 7px}.sched-controls>.scenbar{padding-bottom:9px;border-bottom:1px solid var(--line)}.ops-controls .scenbar{margin-top:2px;padding-top:6px;border-top:1px solid var(--line)}.sites-trigger{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sites-overlay{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;background:#0000008c;padding:24px}.sites-dialog{width:100%;max-width:640px;max-height:80vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 60px #00000080;overflow:hidden}.sites-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.sites-head h2{margin:0;font-size:1rem}.sites-close{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:6px}.sites-close:hover{background:var(--panel-2);color:var(--text)}.sites-intro{margin:0;padding:12px 16px 0;font-size:.78rem;line-height:1.5;color:var(--text-muted)}.sites-tools{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.sites-tools button{background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--text);font:inherit;font-size:.82rem;padding:7px 11px;cursor:pointer}.sites-tools button:hover{background:var(--panel-2)}.sites-tools .sites-primary{background:var(--accent);border-color:var(--accent);color:#14151a;font-weight:600}.sites-tools .sites-primary:hover{filter:brightness(1.08);background:var(--accent)}.sites-empty{padding:20px 16px 28px;font-size:.84rem;line-height:1.6;color:var(--text-muted);text-align:center}.sites-list{list-style:none;margin:0;padding:0 8px 12px;overflow-y:auto}.sites-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border-radius:8px}.sites-row:hover{background:var(--panel-2)}.sites-row.is-current{background:color-mix(in srgb,var(--accent) 12%,transparent)}.sites-row-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.sites-name{background:none;border:none;color:var(--text);font:inherit;font-size:.92rem;font-weight:600;text-align:left;cursor:pointer;padding:0;display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sites-name:hover{color:var(--accent)}.sites-badge{flex:none;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#14151a;background:var(--accent);border-radius:4px;padding:1px 5px}.sites-name-input{background:var(--bg);border:1px solid var(--accent);border-radius:6px;color:var(--text);font:inherit;font-size:.9rem;font-weight:600;padding:3px 6px;width:100%}.sites-date{font-size:.7rem;color:var(--text-muted)}.sites-row-actions{display:flex;gap:3px;flex:none}.sites-row-actions button{background:var(--bg);border:1px solid var(--line);border-radius:5px;color:var(--text);font:inherit;font-size:.76rem;line-height:1;padding:5px 7px;cursor:pointer}.sites-row-actions button:hover{background:var(--panel)}.sites-row-actions .sites-del.is-confirm{background:#d6584a;border-color:#d6584a;color:#fff;font-size:.7rem}:root{--band-ehv: #d6e6f5;--band-hv: #fbe6c8;--band-lv: #d8efd8;--volt-ehv: #3fa7d6;--volt-hv: #e0a23c;--volt-lv: #5cb85c;--wd-chevron: #d8a657;--bg: #1e1f24;--panel: #26282f;--panel-2: #2e313a;--line: #3a3d47;--text: #e6e7ea;--text-muted: #9a9da7;--accent: #6ea8fe;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}
