.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))}:root{--bg-shell: #020408;--bg-sidebar: #0a1520;--bg-sidebar-header: #060f18;--bg-topbar: #090f15;--bg-panel: #090f15;--bg-surface: #0d1520;--bg-surface-alt: #060b10;--bg-chip: #0d1520;--bg-table-head: #060b10;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .13);--border-input: rgba(255, 255, 255, .13);--text-primary: #e8f0f8;--text-title: #ffffff;--text-muted: #7a96a8;--text-faint: #63829b;--text-disabled: #3d5468;--accent: #ffffff;--accent-text: #ffffff;--accent-hover: #e8edf2;--accent-bg: rgba(255, 255, 255, .08);--accent-strong-bg: rgba(255, 255, 255, .13);--accent-border: rgba(255, 255, 255, .28);--accent-bright: #ffffff;--accent-blue: #ffffff;--accent-blue-bg: rgba(255, 255, 255, .08);--accent-yellow: #f59e0b;--accent-yellow-bg: rgba(245, 158, 11, .12);--accent-yellow-text: #f59e0b;--accent-link: #ffb066;--success: #10b981;--success-text: #34d399;--success-bg: rgba(16, 185, 129, .12);--success-strong-bg: rgba(16, 185, 129, .18);--success-border: rgba(16, 185, 129, .35);--success-bright: #34d399;--danger-text: #fb7185;--danger-border: rgba(244, 63, 94, .35);--danger-bg: rgba(244, 63, 94, .14);--danger-dot: #f43f5e;--shadow-1: 0 1px 3px rgba(0, 0, 0, .4);--shadow-2: 0 2px 14px rgba(0, 0, 0, .5);--shadow-3: 0 10px 30px rgba(0, 0, 0, .55);--shadow-modal: 0 24px 70px rgba(0, 0, 0, .6);--radius-control: 9px;--radius-card: 14px;--radius-panel: 12px;--radius-pill: 999px;--focus-ring: 0 0 0 3px rgba(255, 255, 255, .22);--history-tx: #ffffff;--history-rx: #7a96a8;--history-grid: rgba(255, 255, 255, .06);--history-axis: rgba(255, 255, 255, .12);--history-crosshair: rgba(255, 255, 255, .35);--history-plot-bg: #020408;--btn-primary-border: #ffffff;--btn-primary-bg: #ffffff;--btn-primary-color: #050505;--btn-primary-shadow: 0 1px 2px rgba(0, 0, 0, .35);--btn-primary-border-h: #dce2e8;--btn-primary-bg-h: #dce2e8;--btn-primary-color-h: #050505;--btn-primary-shadow-h: 0 6px 18px rgba(255, 255, 255, .12);--btn-secondary-border: rgba(255, 255, 255, .09);--btn-secondary-bg: linear-gradient(145deg, #202228, #15161a);--btn-secondary-color: #aeb3bd;--btn-secondary-shadow: 0 1px 0 rgba(255, 255, 255, .07) inset, 0 1px 2px rgba(0, 0, 0, .47), 0 5px 14px rgba(0, 0, 0, .13);--btn-secondary-border-h: rgba(255, 255, 255, .18);--btn-secondary-bg-h: linear-gradient(145deg, #282a30, #191a1e);--btn-secondary-color-h: #f0f1f3;--btn-secondary-shadow-h: 0 1px 0 rgba(255, 255, 255, .09) inset, 0 2px 3px rgba(0, 0, 0, .5), 0 9px 20px rgba(0, 0, 0, .27);--btn-danger-border: transparent;--btn-danger-bg: linear-gradient(145deg, #fb7185, #f43f5e);--btn-danger-color: #ffffff;--btn-danger-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 1px 2px rgba(0, 0, 0, .3), 0 4px 14px rgba(244, 63, 94, .3);font-family:Poppins,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);background:var(--bg-shell);color-scheme:dark}:root[data-theme=light]{--bg-shell: #f4f4f5;--bg-sidebar: #ffffff;--bg-sidebar-header: #ffffff;--bg-topbar: #f4f4f5;--bg-panel: #ffffff;--bg-surface: #ffffff;--bg-surface-alt: #f7f7f8;--bg-chip: #efeff1;--bg-table-head: #f7f7f8;--border: #e6e6e8;--border-strong: #d4d4d8;--border-input: #d4d4d8;--text-primary: #18181b;--text-title: #09090b;--text-muted: #71717a;--text-faint: #8b8b93;--text-disabled: #a1a1aa;--accent: #09090b;--accent-text: #09090b;--accent-hover: #000000;--accent-bg: rgba(9, 9, 11, .05);--accent-strong-bg: rgba(9, 9, 11, .09);--accent-border: rgba(9, 9, 11, .18);--accent-bright: #000000;--accent-blue: #09090b;--accent-blue-bg: rgba(9, 9, 11, .05);--accent-yellow: #f59e0b;--accent-yellow-bg: rgba(245, 158, 11, .12);--accent-yellow-text: #92400e;--accent-link: #b45309;--success: #16a34a;--success-text: #15803d;--success-bg: rgba(22, 163, 74, .1);--success-strong-bg: rgba(22, 163, 74, .16);--success-border: rgba(22, 163, 74, .28);--success-bright: #16a34a;--danger-text: #b91c1c;--danger-border: rgba(220, 38, 38, .28);--danger-bg: rgba(220, 38, 38, .1);--danger-dot: #dc2626;--shadow-1: 0 1px 2px rgba(9, 9, 11, .04);--shadow-2: 0 8px 24px rgba(9, 9, 11, .06);--shadow-3: 0 18px 48px rgba(9, 9, 11, .08);--shadow-modal: 0 28px 70px rgba(9, 9, 11, .14);--focus-ring: 0 0 0 3px rgba(9, 9, 11, .12);--modal-backdrop: rgba(9, 9, 11, .35);--history-tx: #0a0a0a;--history-rx: #52525b;--history-grid: rgba(9, 9, 11, .07);--history-axis: rgba(9, 9, 11, .14);--history-crosshair: rgba(9, 9, 11, .32);--history-plot-bg: #ffffff;--btn-primary-border: #09090b;--btn-primary-bg: #09090b;--btn-primary-color: #ffffff;--btn-primary-shadow: 0 1px 2px rgba(9, 9, 11, .14);--btn-primary-border-h: #000000;--btn-primary-bg-h: #000000;--btn-primary-color-h: #ffffff;--btn-primary-shadow-h: 0 6px 18px rgba(9, 9, 11, .16);--btn-secondary-border: #d4d4d8;--btn-secondary-bg: #ffffff;--btn-secondary-color: #3f3f46;--btn-secondary-shadow: 0 1px 2px rgba(9, 9, 11, .04);--btn-secondary-border-h: #a1a1aa;--btn-secondary-bg-h: #f4f4f5;--btn-secondary-color-h: #09090b;--btn-secondary-shadow-h: 0 1px 2px rgba(9, 9, 11, .06);--btn-danger-border: transparent;--btn-danger-bg: #dc2626;--btn-danger-color: #ffffff;--btn-danger-shadow: 0 1px 2px rgba(220, 38, 38, .2);color-scheme:light}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}body{margin:0;background:var(--bg-shell)}button,input,select{font:inherit}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:var(--bg-shell)}.login-panel{width:min(360px,calc(100vw - 32px));display:grid;gap:14px;padding:24px;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}.login-panel h1{margin:0;font-size:26px}.login-logo-slot{display:grid;place-items:center;min-height:72px;color:var(--text-primary)}.login-logo-slot.compact{min-height:36px;justify-content:start}.login-logo-slot img{display:block;max-width:100%;max-height:180px;object-fit:contain}.login-panel input,.topology-name,.form-grid input,.form-grid select{width:100%;min-width:0;border:1px solid var(--border-input);border-radius:8px;padding:10px 12px;background:var(--bg-surface-alt);color:var(--text-primary);outline:none}.login-panel button,.save-button,.logout-button{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;border:1px solid var(--btn-primary-border);border-radius:8px;padding:10px 12px;background:var(--btn-primary-bg);color:var(--btn-primary-color);box-shadow:var(--btn-primary-shadow);cursor:pointer;font-weight:700}.action-row .save-button,.element-footer .element-save-button{width:auto}.logout-button{margin-top:auto;background:var(--bg-chip);color:var(--text-primary)}.logout-button:hover{filter:brightness(1.08)}.save-button:hover{border-color:var(--btn-primary-border-h);background:var(--btn-primary-bg-h);color:var(--btn-primary-color-h);box-shadow:var(--btn-primary-shadow-h);filter:none}.secondary-button:hover{border-color:var(--btn-secondary-border-h);background:var(--btn-secondary-bg-h);color:var(--btn-secondary-color-h);box-shadow:var(--btn-secondary-shadow-h);filter:none}.danger-button:hover,.icon-action-button.danger:hover{border-color:var(--danger-dot);background:color-mix(in srgb,var(--danger-bg) 65%,var(--danger-dot));filter:none}.icon-action-button:hover:not(.danger){border-color:var(--btn-secondary-border-h);background:var(--btn-secondary-bg-h);color:var(--btn-secondary-color-h);filter:none}.side-nav{display:grid;gap:6px}.nav-item{width:100%;display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;padding:10px 12px;background:transparent;color:var(--text-muted);text-align:left;cursor:pointer}.nav-item:hover{background:var(--bg-chip)}.nav-item.active{border-color:var(--border-strong);background:var(--bg-chip);color:var(--text-primary);font-weight:700}.sidebar-save{display:grid;gap:10px;padding-top:10px;border-top:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand strong,.brand span,.brand small{display:block}.brand span,.brand small{color:var(--text-muted);font-size:13px}.brand small{color:var(--text-faint);font-size:11px}.brand-with-logo{display:grid;gap:4px;flex:1;min-width:0}.brand-with-logo span{color:var(--text-muted);font-size:13px}.brand-with-logo small{color:var(--text-faint);font-size:11px}.host-list{display:flex;flex-direction:column;gap:8px;overflow:auto}.host-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--bg-panel);color:var(--text-primary);text-align:left;cursor:pointer}.host-row small{color:var(--text-muted)}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--text-disabled)}.status-dot.up{background:var(--success)}.status-dot.down{background:var(--danger-dot)}.status-dot.maintenance{background:var(--accent-yellow)}.content-shell{position:relative;min-width:0;min-height:0;overflow:auto;background:var(--bg-shell)}.top-header-tabs{position:sticky;top:0;z-index:20;display:flex;justify-content:flex-end;gap:8px;padding:10px 24px;border-bottom:1px solid var(--border);background:#050607f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.top-header-tabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-input);border-radius:8px;padding:8px 11px;background:var(--bg-panel);color:var(--text-primary);cursor:pointer}.top-header-tabs button.active{border-color:var(--accent);color:#fff}.page{min-height:100%;padding:24px}.narrow-page{max-width:760px}.page-header{margin-bottom:18px}.page-header h1{margin:0 0 4px;font-size:28px;line-height:1.2}.page-header p{margin:0;color:var(--text-muted)}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px;align-items:stretch}.dashboard-panels{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px;align-items:stretch}.dashboard-panels--3col{grid-template-columns:repeat(3,1fr);align-items:stretch}.dashboard-panels--2col{grid-template-columns:5fr 7fr;align-items:start}.panel--online,.panel--activity{height:260px;display:flex;flex-direction:column;overflow:hidden}.panel--online .activity-list,.panel--activity .activity-list{flex:1;min-height:0;overflow-y:auto;align-content:start;scrollbar-width:thin;scrollbar-color:var(--border-input) var(--bg-surface-alt)}.panel--online .activity-list::-webkit-scrollbar,.panel--activity .activity-list::-webkit-scrollbar{width:4px}.panel--online .activity-list::-webkit-scrollbar-track,.panel--activity .activity-list::-webkit-scrollbar-track{background:var(--bg-surface-alt)}.panel--online .activity-list::-webkit-scrollbar-thumb,.panel--activity .activity-list::-webkit-scrollbar-thumb{background:var(--border-input);border-radius:4px}.panel--events{height:260px;display:flex;flex-direction:column;overflow:hidden}.panel--events .event-list--scroll{flex:1;min-height:0;overflow-y:auto;align-content:start;scrollbar-width:thin;scrollbar-color:var(--border-input) var(--bg-surface-alt)}.panel--events .event-list--scroll::-webkit-scrollbar{width:4px}.panel--events .event-list--scroll::-webkit-scrollbar-track{background:var(--bg-surface-alt)}.panel--events .event-list--scroll::-webkit-scrollbar-thumb{background:var(--border-input);border-radius:4px}.event-list--scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-input) var(--bg-surface-alt)}.activity-list{display:grid;gap:6px;align-content:start}.activity-row{display:grid;grid-template-columns:10px minmax(110px,auto) minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface-alt);font-size:13px}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--success-bright)}.activity-dot.login{background:var(--accent-hover)}.activity-dot.edit{background:#facc15}.activity-dot.online{background:var(--success-bright)}.activity-row--log{grid-template-columns:10px minmax(110px,.9fr) minmax(0,1.4fr) 148px}.activity-row--simple{border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;padding:7px 4px}.activity-row--simple:last-child{border-bottom:none}.activity-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-action{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.activity-time{color:var(--text-muted);font-size:12px;white-space:nowrap;text-align:right}.activity-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.activity-page-btn{background:var(--bg-panel);border:1px solid var(--border-input);border-radius:5px;color:var(--text-primary);font-size:12px;padding:4px 12px;cursor:pointer;transition:background .15s,border-color .15s}.activity-page-btn:hover:not(:disabled){background:var(--bg-chip);border-color:var(--border-strong)}.activity-page-btn:disabled{opacity:.35;cursor:default}.activity-page-info{font-size:12px;color:var(--text-muted);min-width:48px;text-align:center}.summary-card,.panel{border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}.summary-card{display:grid;gap:6px;padding:16px;min-width:0;align-content:center;text-align:left}.summary-card span{color:var(--text-muted);font-size:13px}.summary-card strong{font-size:24px;font-weight:700;line-height:1.15;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.summary-card span{color:#6b7b87;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.summary-card.ok{border-left:5px solid var(--success)}.summary-card.warning{border-left:5px solid var(--accent-yellow)}.summary-card.danger{border-left:5px solid var(--danger-dot)}.panel{padding:18px;display:flex;flex-direction:column}.panel h2{margin:0 0 14px;font-size:18px;flex-shrink:0}.panel-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-header-row h2{margin:0}.event-list,.user-list,.server-list{display:grid;gap:8px;align-content:start}.panel--bandwidth{max-height:260px;min-height:0}.panel--bandwidth .event-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-input) var(--bg-surface-alt)}.event-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt);min-width:0}.event-row span:last-child,.user-row span{color:var(--text-muted)}.empty-state,.form-status{margin:0;color:var(--text-muted)}.workbench{height:100%;display:grid;grid-template-columns:1fr;min-height:0}.workbench-panel{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:18px;border-right:1px solid var(--border);background:var(--bg-sidebar)}.workbench-panel .page-header{margin-bottom:0}.map-stage{position:relative;min-width:0;min-height:0;display:block;background:var(--bg-shell)}.editor-map-header{position:absolute;top:14px;left:14px;z-index:35;display:inline-flex;align-items:center;gap:8px;max-width:min(440px,calc(100% - 110px));border:1px solid var(--border);border-radius:12px;padding:7px 10px 7px 7px;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);color:var(--text-title);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.editor-map-header button{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel);color:var(--text-primary);cursor:pointer}.editor-map-header button:hover{border-color:var(--border-strong);background:var(--bg-chip)}.editor-map-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.editor-side-toolbar{position:absolute;top:14px;right:14px;z-index:35;width:58px;display:grid;gap:10px;justify-items:center;border:1px solid var(--border);border-radius:12px;padding:8px;background:var(--bg-sidebar)f2;box-shadow:0 18px 44px #00000073}.editor-actions{display:grid;gap:6px;justify-items:center}.tool-button{width:42px;height:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;border:1px solid var(--border);border-radius:10px;padding:0;background:var(--bg-panel);color:var(--text-primary);cursor:pointer}.tool-button svg,.create-tool-button svg{width:18px;height:18px;flex:0 0 auto}.tool-button:hover{border-color:var(--border-strong);background:var(--bg-chip)}.tool-button.active{border-color:var(--accent);background:var(--btn-primary-bg);color:var(--btn-primary-color)}.tool-button.danger{color:var(--text-primary)}.tool-button.danger.active{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.create-tool-wrap{position:relative;flex:0 0 auto}.create-tool-button{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-chip);color:var(--text-primary);cursor:pointer}.create-tool-button:hover,.create-tool-button.active{border-color:var(--accent);background:var(--accent-bg)}.create-tool-menu{position:absolute;top:0;right:calc(100% + 10px);z-index:100;min-width:220px;display:grid;gap:6px;border:1px solid var(--border-strong);border-radius:12px;padding:8px;background:var(--bg-panel);box-shadow:var(--shadow-modal)}.editor-side-actions{display:grid;gap:6px;width:100%;justify-items:center;padding-top:8px;border-top:1px solid var(--border)}.save-tool-button{border-color:var(--btn-primary-border);background:var(--btn-primary-bg);color:var(--btn-primary-color)}.toolbar-divider{width:1px;height:22px;background:var(--border);margin:0 2px;flex-shrink:0}.tool-button-wrap{position:relative;flex:0 0 auto}.tool-count-badge{position:absolute;bottom:2px;right:2px;background:var(--accent);color:#fff;font-size:9px;font-weight:700;min-width:14px;height:14px;border-radius:7px;padding:0 2px;display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1}.tool-count-badge--danger{background:var(--danger-dot)}.create-tool-menu button{min-height:38px;display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;padding:9px 10px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.create-tool-menu button:hover,.create-tool-menu button.active{border-color:var(--border-strong);background:var(--accent-bg);color:var(--text-title)}.create-tool-cable-section{display:flex;align-items:center;gap:6px;padding:6px 10px 2px;color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid var(--border);margin-top:2px;-webkit-user-select:none;user-select:none}.create-tool-cable-btn{min-height:34px;display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;padding:7px 10px 7px 20px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer;font-size:13px}.create-tool-cable-btn:hover,.create-tool-cable-btn.active{border-color:var(--border-strong);background:var(--accent-bg);color:var(--text-title)}.cable-routing-icon{display:block;width:26px;height:14px;flex-shrink:0;background:none;position:relative}.cable-routing-icon:before{content:"";position:absolute;left:0;right:0;background:currentColor;border-radius:2px;opacity:.7}.cable-routing-icon--straight:before{top:6px;height:2px}.cable-routing-icon--malleable:before{top:50%;height:2px;transform:translateY(-50%);border-radius:99px;box-shadow:0 -4px 0 -1px currentColor,0 4px 0 -1px currentColor;background:linear-gradient(90deg,transparent 0%,currentColor 30%,transparent 50%,currentColor 70%,transparent 100%)}.host-picker-panel{position:fixed;top:78px;right:22px;z-index:44;width:min(360px,calc(100vw - 44px));max-height:calc(100vh - 106px);overflow:auto;display:grid;gap:12px;border:1px solid var(--border-strong);border-radius:14px;padding:14px;background:var(--bg-panel);box-shadow:var(--shadow-modal);scrollbar-width:none}.host-picker-panel::-webkit-scrollbar{display:none}.host-picker-controls{display:grid;gap:10px}.host-picker-controls label{display:grid;gap:6px;color:var(--text-muted);font-size:12px}.host-picker-controls select,.host-picker-controls input{width:100%;min-height:40px;border:1px solid var(--border-strong);border-radius:8px;padding:0 11px;background:var(--bg-surface);color:var(--text-primary);outline:none}.host-picker-controls select:focus,.host-picker-controls input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.host-picker-list{display:grid;gap:8px}.server-locked-input{cursor:not-allowed;opacity:.7;background:var(--bg-surface)!important;border-color:var(--bg-chip)!important;color:var(--text-muted)!important}.field-hint{color:var(--text-faint);font-weight:400;font-size:11px}.host-picker-count{margin:0;color:var(--text-muted);font-size:12px}.host-picker-item{display:grid;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--bg-panel);color:var(--text-primary);text-align:left;cursor:grab}.host-picker-item:hover{border-color:var(--border-strong);background:var(--bg-chip)}.host-picker-item:active{cursor:grabbing}.host-picker-item strong,.host-picker-item small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-picker-item small{margin-top:2px;color:var(--text-muted)}.host-picker-item{-webkit-user-select:none;user-select:none}.host-picker-item--selected{background:var(--bg-chip);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.host-picker-item--selected:hover{background:var(--accent-bg);border-color:var(--accent-hover)}.host-picker-footer{padding-top:4px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.host-picker-edit-menu-wrap{position:relative}.host-picker-edit-btn{height:30px;padding:0 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--bg-surface);color:var(--text-muted);font-size:12px;cursor:pointer;white-space:nowrap}.host-picker-edit-btn:hover{background:var(--bg-chip);color:var(--text-primary);border-color:var(--accent-border)}.host-picker-edit-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:60;min-width:180px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:10px;padding:4px;box-shadow:var(--shadow-3);display:grid;gap:2px}.host-picker-edit-dropdown button{width:100%;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer}.host-picker-edit-dropdown button:hover{background:var(--bg-chip);color:var(--text-primary)}.palette-list{display:flex;flex-direction:column;gap:8px}.palette-item{min-height:44px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:9px;background:var(--bg-panel);color:var(--text-primary);cursor:grab}.palette-item:active{cursor:grabbing}.palette-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-bind-control{display:grid;gap:6px;color:var(--text-muted);font-weight:700}.node-bind-control select{width:100%;color:var(--text-primary);font-weight:400}.canvas{min-width:0;min-height:0;height:100%}.canvas--alignable{position:relative;overflow:hidden}.align-guide{position:absolute;background:#4096ff;opacity:.75;pointer-events:none;z-index:5}.align-guide--vertical{top:0;bottom:0;width:1px}.align-guide--horizontal{left:0;right:0;height:1px}.element-editor-panel{position:fixed;top:78px;right:22px;z-index:45;width:min(520px,calc(100vw - 44px));max-height:calc(100vh - 106px);overflow:auto;display:grid;gap:14px;border:1px solid var(--border-strong);border-radius:14px;padding:18px;background:var(--bg-panel);color:var(--text-primary);box-shadow:var(--shadow-modal);scrollbar-width:none}.element-editor-panel::-webkit-scrollbar{display:none}.element-editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.element-editor-header h2{margin:0;color:var(--text-title);font-size:18px;line-height:1.2}.element-kicker{display:block;margin-bottom:3px;color:var(--text-faint);font-size:12px;font-weight:700;text-transform:uppercase}.element-close-button{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface-alt);color:var(--text-primary);cursor:pointer}.element-summary{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center;border:1px solid var(--border-strong);border-radius:8px;padding:12px;background:var(--bg-panel)}.element-summary strong,.element-summary span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-summary span{margin-top:3px;color:var(--text-muted);font-size:12px}.element-preview-dot{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface-alt);color:var(--text-muted)}.element-preview-dot.up{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.element-preview-dot.down{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.element-preview-dot.maintenance{border-color:color-mix(in srgb,var(--accent-yellow) 35%,var(--border));background:var(--accent-yellow-bg);color:var(--accent-yellow-text)}.element-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:4px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-panel)}.element-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;min-height:40px;padding:9px 12px;background:transparent;color:var(--text-muted);cursor:pointer}.element-tabs button.active{background:var(--btn-primary-bg);color:var(--btn-primary-color)}.element-form{display:grid;gap:12px}.element-section{display:grid;gap:12px;border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--bg-surface-alt)}.element-section-title{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:13px;font-weight:800}.element-form label{display:grid;gap:6px;color:var(--text-muted);font-size:12px;font-weight:700}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-label-row small{color:var(--text-faint);font-size:12px;font-weight:600}.element-form input,.element-form select{width:100%;min-height:42px;border:1px solid var(--border-input);border-radius:8px;padding:10px 12px;background:var(--bg-surface);color:var(--text-primary);font-weight:400;outline:none}.host-search-box{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface-alt);padding:0 8px;margin-bottom:4px;transition:border-color .15s;color:var(--text-faint)}.host-search-box input{flex:1;border:none!important;background:transparent!important;padding:7px 0!important;min-height:unset!important;font-size:12px;color:var(--text-primary);outline:none;box-shadow:none}.host-search-box:focus-within{border-color:var(--accent)}.element-form input:focus,.element-form select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.position-visual-box{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border-strong);border-radius:8px;padding:10px 12px;background:var(--bg-chip);color:var(--text-muted)}.position-visual-box strong{color:var(--text-primary);font-size:12px}.two-col-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}.signal-label-tx{color:var(--success-text);font-weight:700;font-size:12px}.signal-label-rx{color:var(--accent-hover);font-weight:700;font-size:12px}.endpoint-select-row{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:end}.swap-endpoints-btn{height:32px;padding:0 8px;background:var(--bg-chip);border:1px solid var(--border-strong);border-radius:6px;color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;align-self:end;margin-bottom:2px}.swap-endpoints-btn:hover{background:var(--border-strong);color:var(--text-primary)}.cable-type-selector{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.cable-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;border-radius:7px;border:1.5px solid var(--border-input);background:var(--bg-surface);color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s;flex:1;min-width:48px}.cable-type-btn:hover{border-color:var(--accent);color:var(--text-primary)}.cable-type-btn.active{border-color:var(--accent);background:var(--bg-chip);color:var(--text-primary)}.cable-type-line{display:block;width:100%;height:3px;border-radius:2px}.cable-type-wave-preview{display:block;width:100%;overflow:visible}.cable-type-clear{padding:4px 8px;border-radius:6px;border:1px solid var(--border-input);background:transparent;color:var(--border-strong);font-size:11px;cursor:pointer;flex-shrink:0}.cable-routing-toggle{display:flex;gap:6px;margin-top:4px}.cable-routing-btn{flex:1;padding:5px 10px;border-radius:7px;border:1.5px solid var(--border-input);background:var(--bg-surface);color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.cable-routing-btn:hover{border-color:var(--accent);color:var(--text-primary)}.cable-routing-btn.active{border-color:var(--accent);background:var(--bg-chip);color:var(--text-primary)}.edge-add-waypoint{width:16px;height:16px;border-radius:50%;background:var(--bg-surface);border:1.5px dashed var(--accent-hover);display:flex;align-items:center;justify-content:center;color:var(--accent-hover);font-size:12px;line-height:1;cursor:pointer;pointer-events:all;-webkit-user-select:none;user-select:none;opacity:.85;transition:opacity .15s,background .15s}.edge-add-waypoint:hover{opacity:1;background:var(--bg-chip)}.cable-type-clear:hover{color:var(--text-primary);border-color:var(--text-faint)}.color-row{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;align-items:center}.color-row input[type=color]{width:46px;height:42px;min-height:42px;border-radius:8px;padding:4px;cursor:pointer}.element-checkbox{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:10px!important}.element-field-label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;margin-top:4px}.element-checkbox input{width:auto;margin-top:3px}.element-checkbox span,.element-checkbox small{display:block}.advanced-toggle{display:flex!important;grid-template-columns:none;align-items:center;justify-content:space-between}.advanced-toggle input{width:44px;height:24px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-strong);border-radius:999px;background:var(--bg-chip);cursor:pointer;position:relative}.advanced-toggle input:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text-faint);transition:transform .15s ease,background .15s ease}.advanced-toggle input:checked{background:var(--btn-primary-bg);border-color:var(--text-faint)}.advanced-toggle input:checked:before{transform:translate(19px);background:var(--btn-primary-color)}.status-item-panel{display:grid;gap:12px;border:0;border-radius:8px;padding:0;background:transparent}.status-item-header{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.status-item-header h3{margin:0;font-size:14px}.status-item-header button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);border-radius:6px;padding:7px 8px;background:var(--bg-chip);color:var(--text-primary);cursor:pointer}.status-item-header>span{border-radius:999px;padding:5px 8px;background:var(--success-bg);color:var(--success-text);font-size:12px;font-weight:700}.host-badges{display:flex;flex-wrap:wrap;gap:6px}.host-badges span{border-radius:999px;padding:5px 8px;background:var(--bg-chip);color:var(--text-muted);font-size:12px}.iface-diagnostics{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text-muted);padding:4px 0}.iface-diagnostics span{padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-surface-alt)}.interface-metric-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--bg-surface-alt);color:var(--text-muted);font-size:12px}.iface-name{grid-column:1 / -1;color:var(--text-primary);font-weight:700}.iface-no-traffic{grid-column:1 / -1;color:var(--text-faint);font-style:italic}.iface-rx{color:#5ba4cf}.iface-tx{color:#e8a838}.iface-speed,.iface-util{color:var(--text-faint)}.iface-status{grid-column:1 / -1}.iface-status--up{color:var(--success-text)}.iface-status--down{color:var(--danger-text)}.iface-status--unknown{color:var(--text-muted)}.traffic-filter-toggle{display:flex;flex-direction:row!important;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);cursor:pointer;padding:4px 0}.traffic-filter-toggle input[type=checkbox]{width:15px;height:15px;min-height:unset;cursor:pointer;flex-shrink:0}.iface-select-group{display:flex;flex-direction:column;gap:5px;min-width:0}.iface-select-label{font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.iface-search-box{display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface-alt);padding:0 8px;transition:border-color .15s}.iface-search-box:focus-within{border-color:var(--border-strong)}.iface-search-box svg{color:var(--text-faint);flex-shrink:0}.iface-search-box input{flex:1;border:none!important;background:transparent!important;padding:7px 0!important;min-height:unset!important;font-size:12px;color:var(--text-primary)}.iface-search-box input:focus{outline:none;box-shadow:none}.iface-search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;color:var(--text-faint);cursor:pointer;border-radius:3px;min-height:unset!important;height:auto!important}.iface-search-clear:hover{color:var(--text-primary);background:var(--bg-chip)}.status-values-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.status-values-grid label span{display:flex;align-items:center;gap:7px}.status-indicator{width:9px;height:9px;border-radius:50%}.status-indicator.online{background:#39d98a}.status-indicator.offline{background:#ff5c68}.element-checkbox small{color:var(--text-faint);font-weight:400}.element-footer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:4px}.element-footer button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;padding:10px 8px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.element-delete-button{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.element-delete-button:hover{border-color:var(--danger-dot);background:color-mix(in srgb,var(--danger-bg) 70%,var(--danger-dot))}.element-dark-button,.element-cancel-button{border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-color);box-shadow:var(--btn-secondary-shadow)}.element-dark-button:hover,.element-cancel-button:hover{border-color:var(--btn-secondary-border-h);background:var(--btn-secondary-bg-h);color:var(--btn-secondary-color-h);box-shadow:var(--btn-secondary-shadow-h)}.element-save-button{border:1px solid var(--btn-primary-border);background:var(--btn-primary-bg);color:var(--btn-primary-color);box-shadow:var(--btn-primary-shadow)}.element-save-button:hover:not(:disabled){border-color:var(--btn-primary-border-h);background:var(--btn-primary-bg-h);color:var(--btn-primary-color-h);box-shadow:var(--btn-primary-shadow-h)}.element-save-button:disabled{opacity:.45;cursor:not-allowed}.viewer-page{display:flex;flex-direction:column;gap:20px}.viewer-empty{color:var(--text-faint);font-size:.9rem}.viewer-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.viewer-map-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 16px 20px;background:var(--bg-surface-alt);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s;text-align:center}.viewer-map-card:hover{background:var(--bg-chip);border-color:#2e3d52;color:var(--text-primary)}.viewer-map-card strong{font-size:.95rem;color:var(--text-primary);font-weight:600}.viewer-map-card span{font-size:.78rem;color:var(--text-faint)}.viewer-live{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg-shell);overflow:hidden}.viewer-fullscreen{border-radius:0;border:none}.viewer-fs-name{position:absolute;top:14px;left:16px;z-index:20;font-size:12px;font-weight:600;color:var(--text-primary);letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none}.viewer-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-surface-alt);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.viewer-bar-title{display:flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600;color:var(--text-primary);flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0;padding:0;border:0;background:transparent;cursor:pointer;text-align:left;font-family:inherit}.viewer-bar-title:hover{color:var(--text-title)}.viewer-bar-btn{display:flex;align-items:center;justify-content:center;padding:5px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.viewer-bar-btn:hover{background:var(--bg-chip);color:var(--text-primary)}.viewer-exit:hover{background:var(--danger-bg);color:var(--danger-dot);border-color:var(--danger-border)}.viewer-canvas-wrap{flex:1;overflow:hidden;min-height:0}.shared-viewer-shell{display:flex;align-items:center;justify-content:center;height:100dvh;background:var(--bg-panel);color:var(--text-muted)}.shared-viewer-loading,.shared-viewer-error{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;color:var(--text-muted)}.shared-viewer-error h2{color:var(--text-muted);margin:0}.shared-viewer-error p{margin:0;max-width:340px}.shared-viewer-live{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-shell)}.shared-viewer-expiry{font-size:11px;color:var(--text-faint);margin-left:auto;margin-right:8px}.shared-viewer-ws-status{display:flex;align-items:center;color:var(--text-faint);margin-left:6px}.share-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.share-panel{width:min(440px,calc(100vw - 44px));top:78px;right:22px}.share-active-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto;scrollbar-width:none}.share-active-list::-webkit-scrollbar{display:none}.share-active-item{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border-strong);border-radius:8px;padding:10px 12px;background:var(--bg-surface-alt);transition:border-color .15s}.share-active-item--new{border-color:var(--accent-border);background:var(--accent-bg)}.share-active-url{font-size:11px;color:var(--text-faint);word-break:break-all;line-height:1.5}.share-active-meta{font-size:11px;color:var(--text-muted)}.share-active-actions{display:flex;gap:6px;flex-wrap:wrap}.share-active-btn{font-size:12px;padding:6px 10px;min-height:unset;gap:5px;border-radius:6px}.share-active-btn--danger{color:var(--danger-dot);border-color:var(--danger-border)}.share-active-btn--danger:hover{background:var(--danger-bg);border-color:var(--danger-border)}.form-grid{display:grid;gap:14px}.form-grid label{display:grid;gap:6px;color:var(--text-muted);font-weight:700}.form-grid input,.form-grid select{width:100%;color:var(--text-primary);font-weight:400}.form-grid select[multiple]{scrollbar-width:thin;scrollbar-color:var(--border-input) var(--bg-surface-alt)}.form-grid select[multiple]::-webkit-scrollbar{width:6px}.form-grid select[multiple]::-webkit-scrollbar-track{background:var(--bg-surface-alt);border-radius:0 8px 8px 0}.form-grid select[multiple]::-webkit-scrollbar-thumb{background:var(--border-input);border-radius:8px}.action-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--btn-secondary-border);border-radius:8px;padding:10px 12px;background:var(--btn-secondary-bg);color:var(--btn-secondary-color);box-shadow:var(--btn-secondary-shadow);cursor:pointer}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--danger-border);border-radius:8px;padding:10px 12px;background:var(--danger-bg);color:var(--danger-text);cursor:pointer}.icon-action-button{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--btn-secondary-border);border-radius:8px;background:var(--btn-secondary-bg);color:var(--btn-secondary-color);box-shadow:var(--btn-secondary-shadow);cursor:pointer}.icon-action-button.danger{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.secondary-button:disabled,.danger-button:disabled,.icon-action-button:disabled{cursor:not-allowed;opacity:.6}.admin-layout{display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:16px;align-items:start}.check-row{display:flex!important;grid-template-columns:none;align-items:center;gap:8px;font-weight:600!important}.check-row input{width:auto}.user-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt)}.permission-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;align-items:start}.permission-users-panel,.permission-audit-panel,.permission-editor-panel{min-width:0}.permission-editor-panel{grid-row:span 2}.permission-user-list,.permission-audit-list{display:grid;gap:10px}.permission-user-button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:1px solid var(--border);border-radius:8px;padding:12px;background:var(--bg-surface-alt);color:var(--text-primary);text-align:left;cursor:pointer}.permission-user-button.active{border-color:var(--accent);background:var(--bg-surface)}.permission-user-button strong,.permission-user-button small{display:block}.permission-user-button small,.permission-editor-header p,.permission-map-cell small,.permission-audit-row span,.permission-audit-row small{color:var(--text-muted)}.permission-user-button em{font-style:normal;color:#9fb3c8;font-size:12px}.permission-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.permission-editor-header h2,.permission-editor-header p{margin:0}.permission-summary,.permission-bulk-row,.permission-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.permission-bulk-row{margin-bottom:14px}.danger-text{color:var(--danger-text)}.permission-table{display:grid;border:1px solid var(--border);border-radius:8px;overflow:hidden}.permission-table-row{display:grid;grid-template-columns:minmax(180px,1fr) repeat(2,minmax(112px,130px)) minmax(170px,220px);align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid var(--border);background:var(--bg-surface-alt)}.permission-section-title{margin:18px 0 10px;color:var(--text-primary);font-size:15px}.permission-table-row:last-child{border-bottom:0}.permission-table-head{background:var(--bg-table-head);color:var(--text-muted);font-size:12px;font-weight:700;text-transform:uppercase}.permission-map-cell strong,.permission-map-cell small{display:block}.permission-check{display:inline-flex;align-items:center;gap:8px;color:var(--text-muted);font-weight:600}.permission-check input{width:16px;height:16px}.permission-check span{font-size:13px}.permission-state-cell{display:flex;flex-wrap:wrap;gap:6px}.permission-pill{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:3px 8px;background:var(--accent-bg);color:var(--accent-text);font-size:12px;font-weight:700}.permission-pill.muted{background:var(--bg-chip);color:var(--text-faint)}.permission-save-row{justify-content:flex-end;margin-top:14px}.permission-audit-row{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt)}.dashboard-action-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.dashboard-action-panel h2,.dashboard-action-panel p{margin:0}.dashboard-action-panel p{margin-top:4px;color:var(--text-muted)}.branding-sections{display:grid;gap:28px}.branding-block{display:grid;gap:14px}.branding-block-header{display:flex;align-items:flex-start;gap:10px;color:#7fa8c0;padding-bottom:12px;border-bottom:1px solid var(--bg-chip)}.branding-block-header strong{display:block;color:var(--text-muted);font-size:15px}.branding-block-header span{display:block;color:var(--text-faint);font-size:13px;margin-top:2px}.branding-layout{display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr);gap:16px;align-items:stretch}.branding-layout--nav{grid-template-columns:minmax(280px,400px) auto;align-items:start}.branding-form{display:grid;gap:14px;align-content:start}.branding-form label{display:grid;gap:7px;color:var(--text-muted);font-size:13px;font-weight:600}.branding-form input[type=range]{width:100%}.branding-form input[type=number]{width:100%;min-height:40px;border:1px solid var(--border-input);border-radius:8px;padding:0 10px;background:var(--bg-surface-alt);color:var(--text-primary);font-size:13px}.branding-upload-zone{border:1px dashed #2e4a6a;border-radius:10px;padding:16px;cursor:pointer;transition:border-color .15s,background .15s;background:var(--bg-surface-alt);display:grid;place-items:center;min-height:110px}.branding-upload-zone:hover{border-color:var(--accent);background:var(--bg-panel)}.branding-upload-placeholder{display:grid;place-items:center;gap:6px;color:#4a6280;text-align:center}.branding-upload-placeholder span{font-size:13px;color:#7fa8c0}.branding-upload-placeholder small{font-size:11px;color:#4a6280}.branding-upload-thumb{max-width:100%;max-height:80px;object-fit:contain;border-radius:6px}.range-row{display:flex;align-items:center;gap:10px}.range-row input[type=range]{flex:1}.range-value{font-size:12px;color:#7fa8c0;min-width:38px;text-align:right}.color-label-text{display:block;margin-bottom:4px}.color-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--border-input);border-radius:8px;padding:4px 10px;background:var(--bg-surface-alt)}.color-input-wrap input[type=color]{width:28px;height:28px;border:none;background:none;padding:0;cursor:pointer;border-radius:4px}.color-hex{font-size:12px;color:var(--text-muted);font-family:monospace}.branding-preview-wrap{display:grid;gap:12px;align-content:start;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel);padding:18px}.preview-label{margin:0;font-size:11px;font-weight:700;color:#4a6280;text-transform:uppercase;letter-spacing:.08em}.login-preview-screen{display:grid;place-items:center;min-height:420px;border:1px solid var(--bg-chip);border-radius:8px;background:var(--bg-shell);padding:18px}.login-panel.preview{pointer-events:none}.nav-logo-preview{border:1px solid var(--bg-chip);border-radius:8px;background:var(--bg-shell);padding:16px;min-width:200px}.nav-logo-preview-sidebar{background:var(--bg-panel);border-radius:8px;padding:14px 16px;display:flex;align-items:center}.nav-logo-preview-default{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:14px;font-weight:600}.nav-logo-img{display:block;max-width:100%;object-fit:contain}.favicon-thumb{width:64px;height:64px;object-fit:contain;image-rendering:pixelated}.favicon-preview{border:1px solid var(--bg-chip);border-radius:8px;background:var(--bg-shell);padding:16px}.favicon-preview-tab{display:inline-flex;align-items:center;gap:6px;background:var(--bg-chip);border:1px solid #2e3f52;border-bottom:none;border-radius:6px 6px 0 0;padding:6px 12px;font-size:13px;color:var(--text-muted);max-width:160px;overflow:hidden;white-space:nowrap}.favicon-preview-tab img{display:block;flex-shrink:0;object-fit:contain;image-rendering:pixelated}.server-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt)}.map-list{display:grid;gap:10px}.map-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt)}.map-row-clickable{cursor:pointer;transition:border-color .15s,background .15s}.map-row-clickable:hover{border-color:#2e4a6a;background:var(--bg-panel)}.map-row-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.map-row strong,.map-row span,.map-row small{display:block}.map-row-title{display:flex;align-items:center;gap:8px}.topology-type-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.04em;flex-shrink:0}.topology-type-badge--isp{background:var(--accent-bg);color:var(--accent-text);border:1px solid var(--accent-border)}.topology-type-badge--corporate{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.topology-type-badge--telecom{background:color-mix(in srgb,#9333ea 12%,var(--bg-panel));color:#7e22ce;border:1px solid color-mix(in srgb,#9333ea 28%,transparent)}.onu-panel{display:flex;flex-direction:column;gap:8px;padding:12px 16px;height:100%;overflow-y:auto}.onu-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.onu-panel-meta{display:flex;flex-direction:column;gap:2px}.onu-panel-server{font-size:11px;font-weight:600;color:var(--text-title)}.onu-panel-updated{font-size:10px;color:var(--text-faint)}.onu-panel-actions{display:flex;align-items:center;gap:6px}.onu-autorefresh-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);cursor:pointer}.onu-refresh-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-chip);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.onu-refresh-btn:hover:not(:disabled){background:var(--accent-bg);color:var(--text-title)}.onu-refresh-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin .8s linear infinite}.onu-summary{display:flex;gap:6px;flex-wrap:wrap}.onu-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px}.onu-badge--online{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.onu-badge--offline{background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border)}.onu-badge--unknown{background:var(--bg-chip);color:var(--text-faint);border:1px solid var(--border)}.onu-error{font-size:12px;color:var(--danger-text);background:var(--danger-bg);border:1px solid var(--danger-border);padding:8px 10px;border-radius:6px;margin:0}.onu-loading{font-size:12px;color:var(--text-faint);text-align:center;padding:24px 0;margin:0}.onu-panel-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;text-align:center;color:var(--text-faint)}.onu-panel-empty p{font-size:12px;margin:0;color:var(--text-muted)}.onu-panel-empty small{font-size:11px;color:var(--text-faint)}.onu-list{display:flex;flex-direction:column;gap:4px}.onu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-surface)}.onu-item--online{border-color:var(--success-border)}.onu-item--offline{border-color:var(--danger-border)}.onu-item-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.onu-item-body strong{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.onu-item-body small{font-size:10px;color:var(--text-faint)}.onu-status-label{font-size:10px;font-weight:700;letter-spacing:.05em;flex-shrink:0}.onu-status-label--online{color:var(--success-bright)}.onu-status-label--offline{color:var(--danger-text)}.onu-status-label--unknown{color:var(--text-faint)}.onu-rename-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;padding:3px 5px;border-radius:4px;display:flex;align-items:center;flex-shrink:0;margin-right:2px}.onu-rename-btn:hover{background:var(--bg-chip);color:var(--text-primary)}.onu-rename-row{display:flex;align-items:center;gap:4px;width:100%}.onu-rename-input{flex:1;background:var(--bg-surface);border:1px solid var(--border-input);border-radius:4px;color:var(--text-primary);font-size:12px;padding:2px 6px;outline:none;min-width:0}.onu-rename-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.onu-rename-confirm,.onu-rename-cancel{background:none;border:none;cursor:pointer;padding:3px 5px;border-radius:4px;display:flex;align-items:center;flex-shrink:0}.onu-rename-confirm{color:var(--success-bright)}.onu-rename-confirm:hover{background:var(--success-bg)}.onu-rename-cancel{color:var(--danger-text)}.onu-rename-cancel:hover{background:var(--danger-bg)}.onu-original-name{color:var(--text-faint);font-style:italic}.onu-rename-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-backdrop);z-index:9999;display:flex;align-items:center;justify-content:center}.onu-rename-modal{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:14px;padding:20px 24px;min-width:320px;max-width:480px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-modal)}.onu-rename-modal-header{display:flex;flex-direction:column;gap:2px}.onu-rename-modal-header span{font-weight:600;font-size:14px;color:var(--text-title)}.onu-rename-modal-header small{color:var(--text-muted);font-size:11px;font-family:monospace}.onu-rename-modal-input{background:var(--bg-surface);border:1px solid var(--border-input);border-radius:8px;color:var(--text-primary);font-size:13px;padding:8px 10px;outline:none;width:100%;box-sizing:border-box}.onu-rename-modal-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.onu-rename-modal-hint{font-size:11px;color:var(--text-faint);text-align:right}.empty-create-button{width:100%;min-height:180px;display:grid;place-items:center;border:1px dashed var(--border-input);border-radius:8px;background:var(--bg-surface-alt);color:var(--text-muted);cursor:pointer}.server-row strong,.server-row span,.server-row small{display:block}.items-inspection{display:grid;gap:12px;margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.inspection-host-list{display:grid;gap:8px}.inspection-host{border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-alt)}.inspection-host summary{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer}.inspection-host summary span{color:var(--text-muted);font-size:12px}.inspection-items{display:grid;gap:6px;padding:0 10px 10px}.inspection-item{display:grid;gap:3px;border:1px solid var(--border-strong);border-radius:6px;padding:8px;background:var(--bg-panel)}.inspection-item code{color:var(--text-primary);overflow-wrap:anywhere}.inspection-item small{color:var(--text-muted)}.map-row span,.map-row small,.server-row span,.server-row small{color:var(--text-muted);overflow-wrap:anywhere}.row-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.user-row strong,.user-row span{display:block}.role-pill,.state-pill{border-radius:999px;padding:4px 8px;background:var(--bg-chip);color:var(--text-primary);font-size:12px;text-transform:capitalize}.state-pill.active{background:var(--bg-chip);color:var(--text-primary)}.device-node{--node-icon-size: 56px;position:relative;width:max-content;min-width:calc(var(--node-icon-size) * 1.35);display:grid;justify-items:center;gap:calc(var(--node-icon-size) * .15);border:0;background:transparent;box-shadow:none;overflow:visible}.device-node.no-background{background:transparent;box-shadow:none}.device-node.label-above .topology-icon-wrap{order:2}.device-node.label-above .topology-label{order:1}.device-node.up{color:var(--success)}.device-node.down{color:var(--danger-dot)}.device-node.maintenance{color:var(--accent-yellow)}.topology-icon-wrap{position:relative;width:calc(var(--node-icon-size) * 1.35);height:var(--node-icon-size);display:grid;place-items:center;border:0;background:transparent;color:#2b78b8;box-shadow:none}.topology-icon-wrap svg{width:100%;height:100%;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;filter:none}.topology-icon-wrap .diagram-glyph .glyph-body{fill:currentColor;stroke:#dcebfadb;stroke-width:1.2}.topology-icon-wrap .diagram-glyph .glyph-body-stroke{fill:none;stroke:currentColor;stroke-width:4}.topology-icon-wrap .diagram-glyph .glyph-mark{fill:none;stroke:#f8fbff;stroke-width:2.4}.topology-icon-wrap .diagram-glyph .glyph-dot{fill:#f8fbff;stroke:none}.topology-icon-wrap .switch-glyph{width:calc(var(--node-icon-size) * 1.65)}.topology-icon-wrap.icon-router{color:#2479bd}.topology-icon-wrap.icon-switch,.topology-icon-wrap.icon-network{color:#2a74a6}.topology-icon-wrap.icon-firewall{color:#b45555}.topology-icon-wrap.icon-radio{color:#596fba}.topology-icon-wrap.icon-server{color:var(--text-faint)}.topology-icon-wrap.icon-lte{color:#0ea5e9}.topology-icon-wrap.icon-olt{color:var(--success)}.topology-icon-wrap.icon-onu{color:var(--success-text)}.topology-icon-wrap.icon-cloud{color:var(--accent-hover)}.custom-icon-img{width:100%;height:100%;object-fit:contain}.topology-status{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border:2px solid var(--bg-shell);border-radius:50%;background:var(--text-disabled)}.topology-status.up{background:#30d17d}.topology-status.down{background:#ef4f5f}.topology-status.maintenance{background:var(--accent-yellow)}.topology-label{max-width:180px;display:grid;justify-items:center;gap:2px;color:var(--text-primary);text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.8)}.topology-label strong,.topology-label span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topology-label strong{font-size:inherit}.font-size-control{display:grid;grid-template-columns:36px 1fr 36px;gap:4px}.font-size-btn{height:42px;display:grid;place-items:center;border:1px solid var(--border-input);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font-size:18px;font-weight:600;line-height:1;cursor:pointer;padding:0}.font-size-btn:hover{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-title)}.topology-label span{color:var(--text-muted);font-size:.9em}.node-ip{color:#64a0c8;font-size:.85em;font-family:monospace;letter-spacing:.02em}.error{margin:0;color:#ff8b8b;font-size:13px}.react-flow{background:var(--bg-shell);color:var(--text-primary)}.device-node .react-flow__handle{opacity:0;pointer-events:none;width:1px;height:1px;min-width:1px;min-height:1px;border:none;background:transparent}.react-flow__controls-button,.react-flow__minimap{background:var(--bg-panel);border-color:var(--border-input);color:var(--text-primary)}.react-flow__controls-button svg{fill:var(--text-primary)}.react-flow__edge-text{fill:#d7e2e7;font-size:12px;font-weight:700}.react-flow__edge-textbg{fill:var(--bg-shell);fill-opacity:.9}.link-edge-iflabel{display:inline-flex;flex-direction:column;align-items:center;gap:1px;width:max-content;white-space:nowrap;background:color-mix(in srgb,var(--bg-panel) 88%,transparent);border:1px solid var(--border-strong);border-radius:4px;padding:2px 6px;font-size:10px;line-height:1.3}.iflabel-name{color:var(--text-primary);font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iflabel-dir{color:#586878;font-weight:400;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.link-edge-iflabel.port-up{border-color:var(--success)}.link-edge-iflabel.port-up .iflabel-name{color:#6ee7b7}.link-edge-iflabel.port-down{border-color:var(--danger-dot)}.link-edge-iflabel.port-down .iflabel-name{color:#fca5a5}@media(max-width:1100px)and (min-width:821px){.summary-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:980px){.page .admin-layout,.page .branding-layout,.page .branding-layout--nav{grid-template-columns:1fr}.stats-grid,.stats-grid--4,.stats-grid--5{grid-template-columns:repeat(2,1fr)}.dashboard-insights,.dashboard-lower{grid-template-columns:1fr}}.sidebar-backdrop,.mobile-nav-toggle{display:none}@media(max-width:820px){.app-shell,.app-shell.collapsed,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;z-index:120;top:0;bottom:0;left:0;width:min(300px,88vw);display:flex;flex-direction:column;gap:0;padding:0;padding-bottom:env(safe-area-inset-bottom);border-right:1px solid var(--border-strong);background:var(--bg-sidebar);transform:translate(-105%);box-shadow:18px 0 48px #0000006b;transition:transform .22s ease;overflow:hidden}.app-shell.mobile-sidebar-open .sidebar,.mobile-sidebar-open .sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;z-index:110;top:0;right:0;bottom:0;left:0;display:block;border:0;background:#00000094;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.app-shell.mobile-sidebar-open .sidebar-backdrop,.mobile-sidebar-open .sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}.mobile-nav-toggle{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;margin:0;padding:0;border:1px solid var(--border);border-radius:2px;background:var(--bg-panel);color:var(--text-primary);cursor:pointer}.mobile-nav-toggle svg{width:19px;height:19px;stroke:currentColor;fill:none}.viewer-mobile-nav{position:fixed;top:12px;left:12px;z-index:40;display:grid}.app-shell.collapsed .sb-wordmark-text,.app-shell.sidebar-collapsed .sb-wordmark-text,.sidebar--collapsed .sb-wordmark-text,.app-shell.collapsed .nav-btn>span:not(.nav-icon),.app-shell.sidebar-collapsed .nav-btn>span:not(.nav-icon),.sidebar--collapsed .nav-btn>span:not(.nav-icon),.app-shell.collapsed .sb-sect,.app-shell.sidebar-collapsed .sb-sect,.sidebar--collapsed .sb-sect,.app-shell.collapsed .platform-version-copy,.app-shell.sidebar-collapsed .platform-version-copy,.sidebar--collapsed .platform-version-copy{display:revert}.app-shell.collapsed .sb-wordmark-text,.app-shell.sidebar-collapsed .sb-wordmark-text,.sidebar--collapsed .sb-wordmark-text{display:flex}.app-shell.collapsed .nav-btn,.app-shell.sidebar-collapsed .nav-btn,.sidebar--collapsed .nav-btn{justify-content:flex-start;padding:0 12px}.app-shell.collapsed .sidebar-toggle,.app-shell.sidebar-collapsed .sidebar-toggle,.sidebar--collapsed .sidebar-toggle{height:60px;padding:0 16px;justify-content:space-between}.app-shell.collapsed .platform-version-mark,.app-shell.sidebar-collapsed .platform-version-mark,.sidebar--collapsed .platform-version-mark{display:none}.app-shell.collapsed .toggle-icon,.app-shell.sidebar-collapsed .toggle-icon,.sidebar--collapsed .toggle-icon{transform:none}:root:not([data-theme=light]) .sidebar{background:#000;border-right-color:#ffffff2e}.shell-main{width:100%;min-width:0;max-width:100vw}.topbar{height:56px;padding:0 12px;gap:6px}.content-shell{overflow-x:hidden}.page{padding:18px 14px 28px}.page-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:18px}.page-head h1{font-size:26px;letter-spacing:-.6px}.page-head h1 br{display:none}.stats-grid,.stats-grid--4,.stats-grid--5,.summary-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:104px;padding:14px}.stat-value{font-size:24px}.dashboard-insights,.dashboard-lower,.dashboard-panels,.dashboard-panels--2col,.dashboard-panels--3col{grid-template-columns:1fr}.availability-body{flex-direction:column;height:auto;align-items:flex-start;gap:16px;padding-top:12px}.workbench{grid-template-columns:1fr;grid-template-rows:200px 1fr}.workbench-panel{border-right:0;border-bottom:1px solid var(--border)}.element-editor-panel,.host-picker-panel{inset:auto 8px 8px 8px;width:auto;max-height:min(78vh,720px)}.element-footer,.status-item-header,.status-values-grid,.two-col-fields{grid-template-columns:1fr}.viewer-map-grid{grid-template-columns:1fr 1fr;gap:10px}.page .viewer-map-card{min-height:120px;padding:14px}.perm-shell{grid-template-columns:1fr}.perm-subject-list,.perm-audit-list{max-height:260px}.perm-table-row,.perm-table-head{grid-template-columns:minmax(0,1.3fr) 64px 64px minmax(100px,1fr);padding:0 10px;gap:4px}.perm-footer{flex-direction:column;align-items:stretch}.perm-footer-actions{margin-left:0;width:100%}.perm-footer-actions .save-button,.perm-footer-actions .secondary-button{flex:1}.page .admin-tabs{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.page .user-row,.page .server-row,.page .map-row,.page .group-row{grid-template-columns:1fr;align-items:start}.page .row-actions{justify-content:flex-start}.page .branding-form.panel,.page .branding-form{border-right:0;border-bottom:1px solid var(--border)}.page .login-preview-screen{min-height:380px;padding:12px}.login-card.preview{transform:scale(.86)}.top-header-tabs{height:auto;min-height:52px;padding:8px 12px;gap:6px;flex-wrap:wrap}}@media(max-width:480px){.stats-grid,.stats-grid--4,.stats-grid--5,.summary-grid,.viewer-map-grid{grid-template-columns:1fr}.page{padding:14px 12px 24px}.topbar{padding:0 10px}.page-head h1{font-size:24px}.perm-table-row{grid-template-columns:minmax(0,1fr) 52px 52px}.perm-table-row>.perm-state,.perm-table-head>span:last-child{display:none}.page .admin-tabs{grid-template-columns:1fr 1fr}.login-page{padding:12px;align-items:center}.login-card{width:100%;border-radius:12px}.login-card-header,.login-card-body{padding:18px}}.icons-panel{display:grid;gap:18px}.admin-header{display:flex;align-items:center;gap:10px;grid-column:1 / -1;padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:4px}.admin-header h2{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.admin-status{font-size:.82rem;color:var(--accent-hover);margin:0}.admin-empty{color:var(--text-faint);font-size:.85rem;margin:0}.icon-upload-form{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg-panel);border:1px solid var(--border);border-radius:12px}.icon-upload-form-row{display:flex;align-items:center;gap:10px}.icon-upload-name-wrap{position:relative;flex:1;min-width:0}.icon-upload-name-wrap svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.icon-upload-form input[type=text]{width:100%;box-sizing:border-box;min-height:42px;padding:10px 12px 10px 34px;background:var(--bg-surface);border:1px solid var(--border-input);border-radius:8px;color:var(--text-primary);font-size:.875rem;transition:border-color .15s,box-shadow .15s}.icon-upload-form input[type=text]::placeholder{color:var(--text-disabled)}.icon-upload-form input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.icon-upload-form input[type=text]:disabled{opacity:.5}.icon-upload-form small{color:var(--text-faint);font-size:.76rem}.icon-upload-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;min-height:42px;background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);border-radius:8px;color:var(--btn-primary-color);font-size:.875rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s;flex-shrink:0}.icon-upload-btn:hover{background:var(--btn-primary-bg-h);border-color:var(--btn-primary-border-h);color:var(--btn-primary-color-h)}.icon-upload-btn.disabled{opacity:.45;cursor:not-allowed}.icon-pack-actions{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}.icon-pack-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;min-height:36px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:8px;color:var(--text-primary);font-size:.82rem;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.icon-pack-btn:hover:not(:disabled):not(.disabled){background:var(--accent-bg);border-color:var(--accent-border);color:var(--text-title)}.icon-pack-btn:disabled,.icon-pack-btn.disabled{opacity:.4;cursor:not-allowed}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}.icon-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 12px 14px;min-height:140px;background:var(--bg-surface-alt);border:1px solid var(--border);border-radius:8px;text-align:center;transition:border-color .15s,background .15s}.icon-card:hover{border-color:#2e3d52;background:var(--bg-panel)}.icon-card img{width:64px;height:64px;object-fit:contain}.icon-card span{font-size:.78rem;color:var(--text-muted);word-break:break-word;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-card-remove{position:absolute;top:6px;right:6px;padding:4px;background:transparent;border:none;color:var(--text-faint);cursor:pointer;border-radius:4px;display:flex;align-items:center}.icon-card-remove:hover{background:#1e293b;color:var(--danger-dot)}.custom-icon-preview{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px}.custom-icon-preview img{max-width:48px;max-height:48px;object-fit:contain}.edge-tooltip,.device-tooltip{position:relative;min-width:148px;max-width:180px;padding:8px 8px 7px;border:1px solid rgba(255,255,255,.22);border-radius:0;background:#000;box-shadow:none;color:#8d8d8d;font-family:Arial,Helvetica Neue,sans-serif;font-size:9px;line-height:1.25;white-space:normal;-webkit-backdrop-filter:none;backdrop-filter:none;animation:mapTipIn .14s ease-out}.device-tooltip-toolbar{pointer-events:none}.device-tooltip .edge-tooltip-history-btn{pointer-events:all}.react-flow__node:has(.device-node.is-hover-info){z-index:10000!important}.edge-history-seg-btn:disabled{opacity:.35;cursor:not-allowed}.edge-history-seg--wrap{flex-wrap:wrap;max-width:min(720px,100%)}.device-history-alerts{display:grid;gap:8px;max-width:920px;width:min(920px,100%);margin:0 auto;padding:8px 16px 24px}.device-history-alert{display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(255,255,255,.14);background:#000;color:#8d8d8d}.device-history-alert-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.device-history-alert-sev{font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#fff}.device-history-alert strong{color:#fff;font-size:13px;font-weight:400}.device-history-alert small,.device-history-alert time{color:#686868;font-size:11px}.device-history-alert.is-resolved{opacity:.72}.device-history-alert.severity-5 .device-history-alert-sev{color:#ef4444}.device-history-alert.severity-4 .device-history-alert-sev{color:#f97316}.device-history-alert.severity-3 .device-history-alert-sev{color:#eab308}.device-history-alert.severity-2 .device-history-alert-sev{color:#60a5fa}.device-history-alert.severity-1 .device-history-alert-sev{color:#94a3b8}:root[data-theme=light] .device-history-alert{background:#fff;border-color:#d4d4d8;color:#52525b}:root[data-theme=light] .device-history-alert strong{color:#111}.device-tooltip{position:absolute;left:50%;z-index:1000;pointer-events:auto;transform:translate(-50%)}.device-tooltip.above:not(.device-tooltip-portal){bottom:calc(100% + 10px)}.device-tooltip.below:not(.device-tooltip-portal){top:calc(100% + 10px)}.device-tooltip.device-tooltip-portal{position:fixed;right:auto;bottom:auto;animation:mapTipPortalIn .14s ease-out}.device-tooltip.device-tooltip-simple{min-width:120px;max-width:180px;padding:8px}@keyframes mapTipPortalIn{0%{opacity:0}to{opacity:1}}.map-tip-accent{position:absolute;top:-1px;left:-1px;width:2px;height:calc(100% + 2px);background:#fff}@keyframes mapTipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.edge-tooltip{animation:mapTipEdgeIn .14s ease-out}@keyframes mapTipEdgeIn{0%{opacity:0}to{opacity:1}}.edge-tooltip-header,.device-tooltip-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding:0 0 6px 6px;border-bottom:1px solid rgba(255,255,255,.14)}.edge-tooltip-kicker,.device-tooltip-kicker{color:#686868;font-size:8px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase}.edge-tooltip-status,.device-tooltip-status{display:inline-flex;align-items:center;gap:5px;border-radius:0;padding:2px 6px;font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff}.edge-tooltip-status i,.device-tooltip-status i{width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #ffffff1f}.edge-tooltip-status.is-up,.device-tooltip-status.device-tooltip-up{color:#fff;border-color:#ffffff73}.edge-tooltip-status.is-down,.device-tooltip-status.device-tooltip-down{color:#8d8d8d;border-color:#ffffff29}.edge-tooltip-status.is-down i,.device-tooltip-status.device-tooltip-down i{background:#8d8d8d;box-shadow:none}.device-tooltip-status.device-tooltip-maintenance{color:#cfcfcf;border-color:#ffffff47}.device-tooltip-status.device-tooltip-unknown{color:#686868;border-color:#ffffff24}.device-tooltip-title,.edge-tooltip-title{margin:0 0 2px;padding-left:6px;color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:11px;font-weight:400;letter-spacing:-.2px;line-height:1.15;overflow:hidden;text-overflow:ellipsis}.edge-tooltip-title{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-bottom:6px;font-size:10px;letter-spacing:-.15px;white-space:normal}.edge-tooltip-arrow{color:#4a4a4a;font-size:11px;font-weight:400}.device-tooltip-subtitle{margin:0 0 8px;padding-left:6px;color:#686868;font-size:10px;letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edge-tooltip-ifaces{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 8px;padding:0 0 0 6px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.edge-tooltip-ifaces>div{min-width:0;display:grid;gap:3px;padding:7px 8px 7px 0}.edge-tooltip-ifaces>div+div{padding-left:8px;border-left:1px solid rgba(255,255,255,.12)}.edge-tooltip-ifaces span,.map-tip-cell span,.map-tip-gauge-head span,.edge-tooltip-metric-label,.device-tooltip-metric-label,.edge-tooltip-section,.device-tooltip-label,.edge-tooltip-label{color:#686868;font-size:8px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase}.edge-tooltip-ifaces strong,.map-tip-cell strong{overflow:hidden;color:#fff;font-size:10px;font-weight:400;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.map-tip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 8px;padding-left:6px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.map-tip-cell{min-width:0;display:grid;gap:3px;padding:7px 8px 7px 0}.map-tip-cell+.map-tip-cell{padding-left:8px;border-left:1px solid rgba(255,255,255,.12)}.edge-tooltip-metrics,.device-tooltip-metrics,.map-tip-gauges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 8px;padding-left:6px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.map-tip-gauges{grid-template-columns:1fr;border:0;padding-left:6px;gap:7px;margin-bottom:8px}.edge-tooltip-metric,.device-tooltip-metric{min-width:0;display:flex;flex-direction:column;gap:4px;padding:8px 8px 8px 0;border:0;border-radius:0;background:transparent}.edge-tooltip-metric+.edge-tooltip-metric,.device-tooltip-metric+.device-tooltip-metric{padding-left:8px;border-left:1px solid rgba(255,255,255,.12)}.edge-tooltip-metric-label.edge-tooltip-tx,.edge-tooltip-metric-label.edge-tooltip-rx{color:#686868}.edge-tooltip-metric-value,.device-tooltip-metric-value{color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:12px;font-weight:400;letter-spacing:-.2px;font-variant-numeric:tabular-nums}.map-tip-gauge{display:grid;gap:5px;margin:0;padding-left:0}.map-tip-gauge-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.map-tip-gauge-head strong{color:#fff;font-size:10px;font-weight:400;letter-spacing:0;font-variant-numeric:tabular-nums}.map-tip-bar{display:block;height:1px;background:#222;overflow:visible;position:relative}.map-tip-bar i{display:block;height:1px;background:#fff}.map-tip-bar.warning i,.map-tip-bar.critical i{background:#fff}.map-tip-alert{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;margin-top:0;padding:8px 0 0 6px;border-top:1px solid rgba(255,255,255,.12)}.map-tip-alert-count{width:24px;height:24px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:0;color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:11px;font-weight:400;letter-spacing:-.2px}.map-tip-alert strong,.map-tip-alert small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-tip-alert strong{color:#fff;font-size:10px;font-weight:400}.map-tip-alert small{margin-top:2px;color:#686868;font-size:9px;letter-spacing:.2px}.map-tip-ok{margin-top:0;padding:8px 0 0 6px;border-top:1px solid rgba(255,255,255,.12);color:#686868;font-size:9px;letter-spacing:1px;text-transform:uppercase}.edge-tooltip-section{margin:0 0 5px;padding-left:6px}.edge-tooltip-radio{color:#686868!important}.edge-tooltip-history-btn{width:calc(100% - 6px);margin:2px 0 0 6px;height:24px;border:1px solid #fff;border-radius:0;background:#fff;color:#000;font-family:Arial,Helvetica Neue,sans-serif;font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.edge-tooltip-history-btn:hover{background:transparent;color:#fff}.device-tooltip-row,.edge-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:18px;padding-left:6px}.device-tooltip-value,.edge-tooltip-value{color:#fff;font-weight:400;text-align:right;font-variant-numeric:tabular-nums}.edge-tooltip-role{font-size:9px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#fff}.edge-tooltip-role.primary,.edge-tooltip-role.backup{color:#fff}.edge-tooltip-tx,.edge-tooltip-rx,.edge-tooltip-up,.edge-tooltip-down,.device-tooltip-up,.device-tooltip-down,.device-tooltip-maintenance,.device-tooltip-unknown{color:#fff;font-weight:400}.edge-tooltip-divider{border-top:1px solid rgba(255,255,255,.12);margin:6px 0}:root[data-theme=light] .edge-tooltip,:root[data-theme=light] .device-tooltip{border-color:#111;background:#fff;color:#666;box-shadow:none}:root[data-theme=light] .map-tip-accent{background:#111}:root[data-theme=light] .edge-tooltip-header,:root[data-theme=light] .device-tooltip-header,:root[data-theme=light] .map-tip-grid,:root[data-theme=light] .edge-tooltip-ifaces,:root[data-theme=light] .edge-tooltip-metrics,:root[data-theme=light] .device-tooltip-metrics,:root[data-theme=light] .map-tip-alert,:root[data-theme=light] .map-tip-ok,:root[data-theme=light] .edge-tooltip-divider{border-color:#d8d8d8}:root[data-theme=light] .edge-tooltip-ifaces>div+div,:root[data-theme=light] .map-tip-cell+.map-tip-cell,:root[data-theme=light] .edge-tooltip-metric+.edge-tooltip-metric,:root[data-theme=light] .device-tooltip-metric+.device-tooltip-metric{border-left-color:#d8d8d8}:root[data-theme=light] .device-tooltip-title,:root[data-theme=light] .edge-tooltip-title,:root[data-theme=light] .edge-tooltip-metric-value,:root[data-theme=light] .device-tooltip-metric-value,:root[data-theme=light] .map-tip-cell strong,:root[data-theme=light] .map-tip-gauge-head strong,:root[data-theme=light] .edge-tooltip-ifaces strong,:root[data-theme=light] .map-tip-alert strong,:root[data-theme=light] .device-tooltip-value,:root[data-theme=light] .edge-tooltip-value,:root[data-theme=light] .edge-tooltip-status,:root[data-theme=light] .device-tooltip-status,:root[data-theme=light] .edge-tooltip-role{color:#111}:root[data-theme=light] .edge-tooltip-kicker,:root[data-theme=light] .device-tooltip-kicker,:root[data-theme=light] .device-tooltip-subtitle,:root[data-theme=light] .map-tip-ok,:root[data-theme=light] .edge-tooltip-ifaces span,:root[data-theme=light] .map-tip-cell span,:root[data-theme=light] .map-tip-gauge-head span,:root[data-theme=light] .edge-tooltip-metric-label,:root[data-theme=light] .device-tooltip-metric-label{color:#777}:root[data-theme=light] .map-tip-bar{background:#e4e4e4}:root[data-theme=light] .map-tip-bar i,:root[data-theme=light] .edge-tooltip-status i,:root[data-theme=light] .device-tooltip-status i{background:#111;box-shadow:0 0 0 3px #11111114}:root[data-theme=light] .map-tip-alert-count,:root[data-theme=light] .edge-tooltip-status,:root[data-theme=light] .device-tooltip-status{border-color:#111;color:#111}:root[data-theme=light] .edge-tooltip-history-btn{border-color:#111;background:#111;color:#fff}:root[data-theme=light] .edge-tooltip-history-btn:hover{background:transparent;color:#111}.edge-history-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;background:radial-gradient(1200px 500px at 50% -10%,rgba(255,255,255,.05),transparent 55%),var(--bg-shell);display:flex;flex-direction:column;color:var(--text-primary)}.edge-history-screen{flex:1;min-height:0;width:100%;max-width:none;margin:0;display:flex;flex-direction:column;padding:28px 40px 32px;gap:22px}.edge-history-screen-header{display:flex;align-items:flex-start;gap:18px;flex:0 0 auto}.edge-history-back{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-strong);background:transparent;color:var(--text-primary);border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.04em;padding:10px 16px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.edge-history-back:hover{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-title)}.edge-history-screen-heading{display:flex;flex-direction:column;gap:4px;min-width:0;padding-top:2px}.edge-history-screen-heading small{color:var(--text-faint);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.edge-history-screen-heading strong{color:var(--text-title);font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.05}.edge-history-screen-heading span{color:var(--text-muted);font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edge-history-screen-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto}.edge-history-seg{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:#ffffff08}.edge-history-seg-btn{border:0;background:transparent;color:var(--text-muted);border-radius:999px;font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;cursor:pointer;transition:background .15s,color .15s}.edge-history-seg-btn:hover{color:var(--text-primary)}.edge-history-seg-btn.active{background:#fff;color:#050505}:root[data-theme=light] .edge-history-seg-btn.active{background:#111;color:#fff}.edge-history-screen-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:18px}.edge-history-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;flex:0 0 auto;max-width:none}.edge-history-metric-card{border:1px solid var(--border);border-radius:16px;background:var(--bg-surface-alt);padding:18px 20px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}.edge-history-metric-top{display:flex;align-items:center;gap:8px}.edge-history-metric-dot{width:8px;height:8px;border-radius:50%;background:var(--history-tx)}.edge-history-metric-dot.rx{background:var(--history-rx)}.edge-history-metric-label{color:var(--text-faint);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.edge-history-metric-value{color:var(--text-title);font-size:28px;font-weight:650;letter-spacing:-.03em;line-height:1.15;white-space:nowrap;overflow:visible}.edge-history-metric-sub{display:flex;flex-wrap:wrap;gap:12px 18px;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.04em}.edge-history-metric-sub span{white-space:nowrap}.edge-history-chart-wrap{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:16px;background:var(--bg-surface-alt);padding:14px;overflow:visible}.edge-history-chart-legend{display:flex;align-items:center;gap:16px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;flex:0 0 auto}.edge-history-chart-legend span{display:inline-flex;align-items:center;gap:7px}.edge-history-chart-legend i{width:18px;height:2px;border-radius:2px;background:var(--history-tx);display:inline-block}.edge-history-chart-legend i.rx{background:var(--history-rx)}.edge-history-chart-period{margin-left:auto;color:var(--text-faint)}.edge-history-chart-row{flex:1;min-height:0;display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;gap:6px;align-items:stretch}.edge-history-yaxis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:4px 0;min-width:0;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:0;white-space:nowrap;line-height:1;font-variant-numeric:tabular-nums}.edge-history-yaxis-mirror{visibility:hidden;pointer-events:none;align-items:flex-start}.edge-history-chart-main{position:relative;min-width:0;min-height:0;display:flex;cursor:crosshair}.edge-history-point-tip{position:absolute;top:12px;z-index:5;min-width:168px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:10px;background:#080c12f0;box-shadow:0 10px 28px #00000073;pointer-events:none;white-space:nowrap}.edge-history-point-tip-right{transform:translate(12px)}.edge-history-point-tip-left{transform:translate(calc(-100% - 12px))}.edge-history-point-tip-time{color:var(--text-faint);font-size:11px;font-weight:700;letter-spacing:.04em;margin-bottom:8px;font-variant-numeric:tabular-nums}.edge-history-point-tip-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;font-weight:650;margin-top:4px}.edge-history-point-tip-row span{letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.edge-history-point-tip-row span.tx{color:var(--history-tx)}.edge-history-point-tip-row span.rx{color:var(--history-rx)}.edge-history-point-tip-row strong{color:var(--text-title);font-weight:650;font-variant-numeric:tabular-nums}.edge-history-chart{display:block;width:100%;height:64px;background:transparent;overflow:visible}.edge-history-grid-line{stroke:var(--history-grid)}.edge-history-axis-line{stroke:var(--history-axis)}.edge-history-line-tx{stroke:var(--history-tx)}.edge-history-line-rx{stroke:var(--history-rx)}.edge-history-crosshair-line{stroke:var(--history-crosshair)}.edge-history-point-tx{fill:var(--history-plot-bg);stroke:var(--history-tx)}.edge-history-point-rx{fill:var(--history-plot-bg);stroke:var(--history-rx)}.edge-history-chart-lg{flex:1;min-height:260px;height:100%;width:100%}.edge-history-status{color:var(--text-muted);font-size:14px;font-weight:600;letter-spacing:.04em;padding:48px 0;text-align:center;margin:auto}.edge-history-error{color:var(--danger-text);white-space:normal;max-width:520px}@media(max-width:820px){.edge-history-screen{padding:18px 16px 20px;gap:16px}.edge-history-screen-header{flex-direction:column;gap:14px}.edge-history-screen-heading strong{font-size:28px}.edge-history-metrics{grid-template-columns:1fr}.edge-history-metric-value{font-size:24px}.edge-history-chart-lg{min-height:220px}.edge-history-screen-toolbar{flex-direction:column;align-items:stretch}.edge-history-seg{width:100%}.edge-history-seg-btn{flex:1;text-align:center}}.login-panel .secondary-button{width:100%;display:flex}.login-totp-hint{font-size:13px;color:#9ca3af;margin:0;text-align:center;line-height:1.5}.totp-code-input{font-size:26px;font-weight:600;letter-spacing:.4em;text-align:center;padding:14px 12px;max-width:100%}.totp-backup-codes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;padding:12px;background:var(--bg-surface-alt);border:1px solid var(--border-input);border-radius:8px}.totp-backup-codes code{font-size:13px;letter-spacing:.05em;color:var(--text-primary);text-align:center}.totp-admin-section{display:grid;gap:10px;padding:12px;border:1px solid var(--border-input);border-radius:8px;background:var(--bg-surface-alt)}.totp-admin-header{display:flex;align-items:center;gap:7px;font-size:13px}.totp-admin-setup{display:grid;gap:10px}.totp-admin-setup img{border-radius:6px;justify-self:start}.totp-admin-setup p{font-size:13px;margin:0;color:#9ca3af}.status-dot.bw-warning{background:#b45309}.event-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px}.event-row-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}.event-row-body strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.event-detail{color:var(--text-faint);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.event-badge--danger{background:#ef44441f;border:1px solid var(--danger-dot);color:var(--danger-dot)}.event-badge--warning{background:#f59e0b1f;border:1px solid var(--accent-yellow);color:var(--accent-yellow)}.event-badge--ok{background:#1d9a641f;border:1px solid var(--success);color:var(--success)}.panel--danger h2{color:var(--danger-dot)}.panel--bandwidth h2{color:var(--accent-yellow)}button,a,input,select,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}body{margin:0;background:var(--bg-shell);color:var(--text-primary)}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:var(--bg-shell);color:var(--text-muted);padding:16px}.login-panel{width:min(400px,calc(100vw - 32px));display:grid;gap:14px;padding:28px;border:1px solid var(--border);border-radius:16px;background:var(--bg-panel);box-shadow:var(--shadow-modal);overflow:hidden}.login-panel h1{margin:0 0 4px;font-size:20px;font-weight:700;letter-spacing:-.3px;color:var(--text-title)}.login-panel .login-totp-hint{margin:0 0 4px;color:var(--text-faint);font-size:12px}.login-panel input,.topology-name,.form-grid input,.form-grid select{width:100%;min-width:0;height:42px;border:1px solid var(--border-input);border-radius:var(--radius-control);padding:0 12px;background:var(--bg-surface);color:var(--text-primary);outline:none}.login-panel input:focus,.topology-name:focus,.form-grid input:focus,.form-grid select:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.login-panel>button[type=submit],.save-button{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;height:43px;border:1px solid var(--btn-primary-border);border-radius:10px;padding:0 12px;background:var(--btn-primary-bg);color:var(--btn-primary-color);font-weight:700;cursor:pointer;box-shadow:var(--btn-primary-shadow)}.login-panel>button[type=submit]:hover,.save-button:hover{border-color:var(--btn-primary-border-h);background:var(--btn-primary-bg-h);color:var(--btn-primary-color-h);box-shadow:var(--btn-primary-shadow-h);transform:translateY(-2px);filter:none}.login-panel>button[type=submit]:active,.save-button:active{transform:translateY(0) scale(.98)}.login-panel .secondary-button,.secondary-button{border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-color);box-shadow:var(--btn-secondary-shadow);font-weight:600;border-radius:10px;cursor:pointer}.login-panel .secondary-button:hover,.secondary-button:hover{border-color:var(--btn-secondary-border-h);background:var(--btn-secondary-bg-h);color:var(--btn-secondary-color-h);box-shadow:var(--btn-secondary-shadow-h);filter:none;transform:translateY(-1px)}.app-shell{height:100vh;height:100dvh;display:grid;grid-template-columns:236px minmax(0,1fr);overflow:hidden;background:var(--bg-shell);transition:grid-template-columns .2s ease}.app-shell.collapsed,.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar{min-height:0;display:flex;flex-direction:column;gap:0;padding:0;border-right:1px solid var(--border-strong);background:var(--bg-sidebar);min-width:0;overflow:hidden}.sidebar-toggle{height:64px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:11px;width:100%;margin:0;padding:0 18px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:var(--bg-sidebar-header);color:inherit;cursor:pointer}.sb-wordmark{display:flex;align-items:center;gap:11px;min-width:0}.brand-mark{width:34px;height:34px;flex:0 0 auto;object-fit:contain}.sb-wordmark-text{display:flex;flex-direction:column;text-align:left;min-width:0}.sb-wordmark-text strong{font-size:15px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-wordmark-text small{margin-top:3px;color:var(--text-faint);font-size:8px;letter-spacing:1.2px;text-transform:uppercase}.toggle-icon{width:28px;height:28px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--border);border-radius:8px;background:var(--bg-chip);color:var(--text-muted);transition:transform .2s,background .16s}.toggle-icon svg{width:13px;height:13px;fill:currentColor}.sb-nav{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:0;scrollbar-width:thin;scrollbar-color:var(--border-input) transparent}.sb-sect{padding:16px 10px 7px;margin-top:2px;color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase}.nav-btn{width:100%;height:42px;display:flex;align-items:center;gap:11px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--text-muted);font-size:13px;font-weight:600;text-align:left;cursor:pointer;position:relative;white-space:nowrap}.nav-btn:hover{background:var(--bg-chip);color:var(--text-primary)}.nav-btn.active{background:var(--accent-bg);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--accent-border)}.nav-btn.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 4px 4px 0;background:var(--accent)}.nav-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:15px;height:15px;color:inherit}.nav-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-btn.active .nav-icon{color:var(--accent-text)}.nav-btn.active .nav-icon svg{stroke:var(--accent-text)}.platform-version{flex:0 0 auto;display:flex;align-items:center;gap:9px;margin:0 12px 14px;padding:11px 12px;border-top:1px solid var(--border);color:var(--text-faint)}.platform-version-mark{display:none;width:26px;height:26px;place-items:center;border:1px solid var(--border-strong);border-radius:2px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}.platform-version-copy{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:2px 7px}.platform-version-copy small{grid-column:1 / -1;color:var(--text-faint);font-size:7px;font-weight:700;letter-spacing:1.4px}.platform-version-copy strong{color:var(--text-muted);font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.platform-version-copy em{overflow:hidden;color:var(--text-faint);font: 8px ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}.sidebar-save{display:grid;gap:10px;margin:0 10px 8px;padding-top:10px;border-top:1px solid var(--border)}.sidebar-save .topology-name,.sidebar-save .save-button{width:100%}.sidebar-error{margin:0 14px 8px;font-size:11px}.app-shell.collapsed .sb-wordmark-text,.app-shell.collapsed .nav-btn>span:not(.nav-icon),.app-shell.collapsed .sb-sect,.app-shell.collapsed .platform-version-copy,.app-shell.sidebar-collapsed .sb-wordmark-text,.app-shell.sidebar-collapsed .nav-btn>span:not(.nav-icon),.app-shell.sidebar-collapsed .sb-sect,.app-shell.sidebar-collapsed .platform-version-copy,.sidebar--collapsed .sb-wordmark-text,.sidebar--collapsed .nav-btn>span:not(.nav-icon),.sidebar--collapsed .sb-sect,.sidebar--collapsed .platform-version-copy{display:none}.app-shell.collapsed .platform-version,.app-shell.sidebar-collapsed .platform-version,.sidebar--collapsed .platform-version{justify-content:center;margin-inline:8px;padding-inline:0}.app-shell.collapsed .platform-version-mark,.app-shell.sidebar-collapsed .platform-version-mark,.sidebar--collapsed .platform-version-mark{display:grid}.app-shell.collapsed .toggle-icon,.app-shell.sidebar-collapsed .toggle-icon,.sidebar--collapsed .toggle-icon{transform:rotate(180deg)}.app-shell.collapsed .sidebar-toggle,.app-shell.sidebar-collapsed .sidebar-toggle,.sidebar--collapsed .sidebar-toggle{padding:0;justify-content:center}.app-shell.collapsed .nav-btn,.app-shell.sidebar-collapsed .nav-btn,.sidebar--collapsed .nav-btn{justify-content:center;padding:0}.app-shell.collapsed .sb-nav,.app-shell.sidebar-collapsed .sb-nav,.sidebar--collapsed .sb-nav{padding-left:8px;padding-right:8px}.app-shell.collapsed .sidebar-save,.app-shell.sidebar-collapsed .sidebar-save,.sidebar--collapsed .sidebar-save{display:none}:root:not([data-theme=light]) .sidebar{border-right-color:#ffffff2e;background:#000}:root:not([data-theme=light]) .sidebar-toggle{border-bottom-color:#ffffff2e;background:#000}.sidebar-toggle{height:72px;padding:0 20px}.sidebar-toggle:hover{background:#ffffff09}.brand-mark{width:31px;height:31px}.sb-wordmark{gap:13px}.sb-wordmark-text strong{color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:14px;font-weight:600;letter-spacing:1.2px}.toggle-icon{width:30px;height:30px;border-color:#ffffff2e;border-radius:2px;background:transparent;color:#aaa}.sidebar-toggle:hover .toggle-icon{border-color:#ffffff61;background:#ffffff0f}.sb-nav{padding:18px 12px 14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.sb-sect{padding:20px 12px 8px;color:#686868;font-size:9px;font-weight:600;letter-spacing:1.8px}.nav-btn{height:44px;gap:13px;padding:0 12px;border-radius:2px;color:#8d8d8d;font-size:12px;font-weight:500;letter-spacing:.15px}.nav-btn:hover{background:#ffffff0b;color:#fff}.nav-btn.active{background:transparent;color:#fff;box-shadow:none}.nav-btn.active:before{top:12px;bottom:12px;width:2px;border-radius:0;background:#fff}.nav-icon svg{width:16px;height:16px;stroke-width:1.5}.nav-btn.active .nav-icon,.nav-btn.active .nav-icon svg{color:#fff;stroke:#fff}.app-shell.collapsed .sidebar-toggle,.app-shell.sidebar-collapsed .sidebar-toggle,.sidebar--collapsed .sidebar-toggle{height:72px}:root[data-theme=light] .sidebar{border-right-color:#d8d8d8;background:#fff;box-shadow:1px 0 #00000006}:root[data-theme=light] .sidebar-toggle{border-bottom-color:#d8d8d8;background:#fff}:root[data-theme=light] .sidebar-toggle:hover{background:#f2f2ef}:root[data-theme=light] .sb-wordmark-text strong{color:#111}:root[data-theme=light] .toggle-icon{border-color:#d8d8d8;background:#f4f4f1;color:#666}:root[data-theme=light] .sb-sect{color:#777770}:root[data-theme=light] .nav-btn{color:#666}:root[data-theme=light] .nav-btn:hover{background:#f3f3f3;color:#000}:root[data-theme=light] .nav-btn.active{background:#eeeeeb;color:#000}:root[data-theme=light] .nav-btn.active:before{top:10px;bottom:10px;width:2px;background:#000}:root[data-theme=light] .nav-btn.active .nav-icon,:root[data-theme=light] .nav-btn.active .nav-icon svg{color:#000;stroke:#000}@media(min-width:721px)and (max-width:980px){.app-shell,.app-shell.collapsed,.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.sidebar .sb-wordmark-text,.sidebar .nav-btn>span:not(.nav-icon),.sidebar .sb-sect,.sidebar .platform-version-copy{display:none}.sidebar .sidebar-toggle{padding:0;justify-content:center}.sidebar .sb-nav{padding-right:8px;padding-left:8px}.sidebar .nav-btn{justify-content:center;padding:0}.sidebar .platform-version{justify-content:center;margin-inline:8px;padding-inline:0}.sidebar .platform-version-mark{display:grid}}.content-shell{background:var(--bg-shell);min-width:0;min-height:0;overflow:auto}.content-shell--dashboard{background:#000}:root[data-theme=light] .content-shell--dashboard{background:#f5f5f3}.top-header-tabs{height:64px;align-items:center;justify-content:flex-end;gap:4px;padding:0 28px;border-bottom:0;background:var(--bg-shell);-webkit-backdrop-filter:none;backdrop-filter:none}.top-header-tabs button{height:40px;border:1px solid transparent;border-radius:9px;padding:0 12px;background:transparent;color:var(--text-muted);font-weight:600}.top-header-tabs button:hover{background:var(--bg-chip);color:var(--text-primary)}.top-header-tabs button.active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-primary)}.page{padding:32px clamp(20px,3vw,44px) 44px}.page-header h1{margin:6px 0 5px;color:var(--text-title);font-size:clamp(26px,2.2vw,32px);font-weight:700;letter-spacing:-.8px;line-height:1.15}.page-header p{color:var(--text-muted);font-size:13px}.panel{border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);box-shadow:var(--shadow-1)}.host-row{border:1px solid var(--border);border-radius:9px;background:var(--bg-panel);color:var(--text-primary)}.summary-card,.stat-card,.map-card,.card{border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);box-shadow:var(--shadow-1)}.error{color:var(--danger-text)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.page-head small,.panel header small{color:var(--accent-text);font-size:10px;font-weight:700;letter-spacing:1px}.page-head h1{margin:6px 0 5px;color:var(--text-title);font-size:clamp(26px,2.2vw,32px);font-weight:700;letter-spacing:-.8px}.page-head p{margin:0;color:var(--text-muted);font-size:13px}.live{display:flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--success-border);border-radius:999px;background:var(--success-bg);color:var(--success-text);font-size:11px}.live i{width:6px;height:6px;border-radius:50%;background:var(--success)}.metric-group-label{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--text-faint);font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.metric-group-line{flex:1;height:1px;background:var(--border)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stat-card{position:relative;min-height:112px;padding:18px;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);overflow:hidden}.stat-card:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent 75%);opacity:.6}.stat-label{color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.stat-value{margin-top:12px;color:var(--text-primary);font-size:30px;font-weight:800;letter-spacing:-1px;line-height:1}.stat-sub{margin-top:8px;color:var(--text-faint);font-size:11px}.stat-icon{position:absolute;top:18px;right:18px;width:36px;height:36px;display:grid;place-items:center;border-radius:3px}.stat-icon svg{width:17px;height:17px}.stat-icon.accent{background:var(--accent-bg)}.stat-icon.accent svg{fill:var(--accent-text)}.stat-icon.blue{background:var(--accent-blue-bg)}.stat-icon.blue svg{fill:var(--accent-blue)}.stat-icon.green{background:var(--success-bg)}.stat-icon.green svg{fill:var(--success-text)}.stat-icon.red{background:var(--danger-bg)}.stat-icon.red svg{fill:var(--danger-text)}.stat-icon.yellow{background:var(--accent-yellow-bg)}.stat-icon.yellow svg{fill:var(--accent-yellow-text)}.stat-card-action{cursor:pointer}.stat-card-action:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dashboard-insights{display:grid;grid-template-columns:1.05fr 1.2fr 1fr;gap:14px;margin-bottom:22px}.insight-card{min-height:230px;padding:18px;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel)}.insight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.insight-kicker{display:block;margin-bottom:3px;color:var(--text-faint);font-size:8px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.insight-head h3{margin:0;color:var(--text-primary);font-size:13px;font-weight:700}.badge-pill{padding:4px 10px;border-radius:999px;border:1px solid var(--success-border);background:var(--success-bg);color:var(--success-text);font-size:10px;font-weight:700}.period-label{color:var(--text-faint);font-size:10px}.availability-body{height:170px;display:flex;align-items:center;gap:22px}.availability-ring{--availability:0;width:120px;height:120px;flex:0 0 120px;display:grid;place-items:center;position:relative;border-radius:50%;background-image:conic-gradient(var(--success) calc(var(--availability)*1%),var(--border) 0)}.availability-ring:after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;background:var(--bg-panel)}.availability-ring>div{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.availability-ring strong{color:var(--text-primary);font-size:23px;line-height:1}.availability-ring span{margin-top:4px;color:var(--text-faint);font-size:9px}.availability-legend{flex:1;display:flex;flex-direction:column;gap:13px}.availability-legend>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:8px;color:var(--text-faint);font-size:10px}.availability-legend strong{color:var(--text-primary);font-size:11px}.legend-dot{width:7px;height:7px;border-radius:50%}.legend-dot.green{background:var(--success)}.legend-dot.red{background:var(--danger-dot)}.legend-dot.gray{background:var(--text-faint)}.bar-chart{display:flex;flex-direction:column;gap:18px;padding-top:22px}.chart-row-label{display:flex;justify-content:space-between;margin-bottom:7px;color:var(--text-faint);font-size:10px}.chart-row-label strong{color:var(--text-primary)}.chart-track{height:8px;border-radius:3px;overflow:hidden;background:var(--border)}.bar{display:block;height:100%;border-radius:3px}.bar.green{background:var(--success)}.bar.red{background:var(--danger-dot)}.bar.blue{background:var(--accent-blue)}.alarm-list{display:flex;flex-direction:column;margin-top:12px}.alarm-row{min-height:54px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.alarm-row:last-child{border-bottom:0}.alarm-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:3px}.alarm-icon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.alarm-row small{margin-top:2px;overflow:hidden;color:var(--text-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.alarm-row em{color:var(--text-muted);font-size:11px;font-style:normal;font-weight:700}.alarm-icon.critical{color:var(--danger-text);background:var(--danger-bg)}.alarm-icon.warning{color:var(--accent-yellow-text);background:var(--accent-yellow-bg)}.alarm-icon.success{color:var(--success-text);background:var(--success-bg)}.alarm-row>div{display:flex;flex-direction:column;min-width:0}.alarm-row strong{color:var(--text-primary);font-size:10px;font-weight:700}.alarm-row span{margin-top:2px;overflow:hidden;color:var(--text-faint);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.alarm-row b{color:var(--text-muted);font-size:11px}.alarm-row .status-ok{color:var(--success-text);font-size:9px}.link-btn{border:0;background:transparent;color:var(--accent-link);font-size:11px;font-weight:700;cursor:pointer}.stat-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.stat-icon.accent{color:var(--accent-text)}.stat-icon.blue{color:var(--accent-blue)}.stat-icon.green{color:var(--success-text)}.stat-icon.red{color:var(--danger-text)}.stat-icon.yellow{color:var(--accent-yellow-text)}.dashboard-lower{display:grid;grid-template-columns:1fr 1.2fr;gap:14px;margin-bottom:22px}.dashboard-lower .insight-card{min-height:260px;display:flex;flex-direction:column}.dashboard-lower .activity-list,.dashboard-lower .event-list{flex:1;min-height:0;overflow:auto;margin-top:12px}.live.offline{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.live.offline i{background:var(--danger-dot)}.stats-grid--4{grid-template-columns:repeat(4,1fr)}.stats-grid--5{grid-template-columns:repeat(5,1fr)}.insight-card--section{margin-bottom:22px}.stat-value--compact{margin-top:22px;font-size:18px;letter-spacing:-.4px;line-height:1.25;white-space:normal}.dashboard-content{position:relative;isolation:isolate;min-height:100%;padding-top:0;background:#000}.dashboard-content:before{content:"";position:absolute;z-index:-1;top:0;left:0;right:0;height:430px;pointer-events:none;background:linear-gradient(110deg,transparent 0 54%,rgba(255,255,255,.035) 54.1% 54.25%,transparent 54.35%),linear-gradient(70deg,transparent 0 72%,rgba(255,255,255,.022) 72.1% 72.22%,transparent 72.32%),radial-gradient(ellipse 54% 95% at 84% 0%,rgba(255,255,255,.055),transparent 68%)}.dashboard-content .page-head{min-height:290px;align-items:center;margin:0 0 42px;padding:48px 0;border-bottom:1px solid rgba(255,255,255,.18)}.dashboard-content .page-head>div{max-width:720px}.dashboard-content .page-head small{color:#aaa;font-size:10px;font-weight:600;letter-spacing:2.6px}.dashboard-content .page-head h1{max-width:720px;margin:16px 0;color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:clamp(34px,3.8vw,54px);font-weight:400;letter-spacing:-2.2px;line-height:1.03}.dashboard-content .page-head p{max-width:590px;color:#a6a6a6;font-size:14px;line-height:1.75}.dashboard-content .live{align-self:center;padding:10px 15px;border-color:#ffffff40;border-radius:2px;background:transparent;color:#fff;font-size:10px;letter-spacing:1.1px;text-transform:uppercase}.dashboard-content .live i{box-shadow:0 0 0 5px var(--success-bg),0 0 18px var(--success)}.dashboard-content .live.offline{border-color:#f43f5e73;color:var(--danger-text);background:transparent}.dashboard-content .metric-group-label{gap:16px;margin:0 0 16px;color:#aaa;font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase}.dashboard-content .metric-group-line{opacity:.75}.dashboard-content .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:44px;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.dashboard-content .stat-card{min-width:0;min-height:166px;padding:27px 28px;border:0;border-right:1px solid rgba(255,255,255,.18);border-radius:0;background:transparent;box-shadow:none}.dashboard-content .stat-card:last-child{border-right:0}.dashboard-content .stat-card:hover{z-index:1;transform:none;border-color:#ffffff2e;background:#ffffff0b;box-shadow:inset 0 2px #fff}.dashboard-content .stat-card:after{display:none}.dashboard-content .stat-label{color:#aaa;font-size:10px;font-weight:600;letter-spacing:1.25px;text-transform:uppercase}.dashboard-content .stat-value{margin-top:25px;color:#fff;font-family:Arial,Helvetica Neue,sans-serif;font-size:46px;font-weight:400;letter-spacing:-2.2px}.dashboard-content .stat-value--compact{margin-top:28px;font-size:18px;letter-spacing:-.5px;line-height:1.3}.dashboard-content .stat-sub{overflow:hidden;color:#777;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.dashboard-content .stat-icon{top:23px;right:24px;width:34px;height:34px;border-radius:50%;background:transparent!important;border:1px solid var(--border);color:#fff}.dashboard-content .stat-icon svg{width:14px;height:14px;fill:none;stroke:currentColor}.dashboard-content .dashboard-insights,.dashboard-content .dashboard-lower{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 44px;padding:1px;background:#ffffff2e}.dashboard-content .dashboard-lower{grid-template-columns:1fr 1.2fr}.dashboard-content .insight-card{min-width:0;min-height:300px;padding:28px;border:0;border-radius:0;background:#090909;box-shadow:none}.dashboard-content .insight-card--section{margin-bottom:44px;border:1px solid rgba(255,255,255,.18);background:#090909}.dashboard-content .insight-kicker{font-size:10px;letter-spacing:1.15px;color:#888}.dashboard-content .insight-head h3{color:#fff;font-size:16px;font-weight:500}.dashboard-content .availability-body{height:205px;justify-content:space-between;gap:20px}.dashboard-content .availability-ring{filter:none}.dashboard-content .bar-chart{padding-top:34px}.dashboard-content .chart-track{height:3px;border-radius:0;background:#292929}.dashboard-content .bar{border-radius:0}.dashboard-content .alarm-row{min-height:64px}.dashboard-content .badge-pill,.dashboard-content .period-label{color:#888;border-color:#ffffff29;background:transparent}.dashboard-content .empty-state{color:#777}.dashboard-content .activity-name,.dashboard-content .alarm-row strong{color:#fff}.dashboard-content .activity-action,.dashboard-content .activity-time,.dashboard-content .alarm-row small{color:#777}.events-panel{display:flex;flex-direction:column;padding-bottom:0!important}.events-panel .events-list{flex:1}.table-pagination{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px;padding:10px 16px;border-top:1px solid rgba(255,255,255,.14);background:#050505}.table-pagination>div{display:flex;align-items:center;gap:4px;overflow-x:auto}.table-pagination button{min-width:32px;height:32px;padding:0 10px;border:1px solid transparent;border-radius:2px;background:transparent;color:#777;font-size:10px;font-weight:600;cursor:pointer}.table-pagination button:hover:not(:disabled){border-color:#fff3;color:#fff}.table-pagination button.active{border-color:#fff;background:#fff;color:#000}.table-pagination button:disabled{opacity:.3;cursor:not-allowed}:root[data-theme=light] .table-pagination{border-top-color:#d1d1cb;background:#fafaf8}:root[data-theme=light] .table-pagination button{color:#62625d}:root[data-theme=light] .table-pagination button:hover:not(:disabled){border-color:#aaa9a2;color:#111}:root[data-theme=light] .table-pagination button.active{border-color:#111;background:#111;color:#fff}@media(max-width:720px){.table-pagination{justify-content:center;flex-wrap:wrap}.table-pagination>button{order:2}.table-pagination>div{width:100%;justify-content:flex-start;order:1}}@media(max-width:1180px){.dashboard-content .dashboard-insights{grid-template-columns:1fr 1fr}.dashboard-content .dashboard-insights .insight-card:last-child{grid-column:1 / -1}.dashboard-content .stat-card{padding:23px 20px}.dashboard-content .stat-value{font-size:39px}}@media(max-width:900px){.dashboard-content .page-head{min-height:230px}.dashboard-content .page-head h1{font-size:40px}.dashboard-content .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-content .stat-icon{display:none}.dashboard-content .dashboard-insights,.dashboard-content .dashboard-lower{grid-template-columns:1fr}.dashboard-content .dashboard-insights .insight-card:last-child{grid-column:auto}}@media(max-width:720px){.dashboard-content .page-head{min-height:0;align-items:flex-start;padding:30px 0}.dashboard-content .page-head h1{font-size:32px;letter-spacing:-1.2px}.dashboard-content .page-head .live{margin-top:8px}.dashboard-content .stats-grid{grid-template-columns:1fr}.dashboard-content .stat-card,.dashboard-content .stat-card:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.dashboard-content .stat-card:last-child{border-bottom:0}.dashboard-content .dashboard-insights,.dashboard-content .dashboard-lower{display:block;padding:0;background:transparent}.dashboard-content .insight-card{margin-bottom:12px;border:1px solid var(--border)}}:root[data-theme=light] .dashboard-content{background:#f5f5f3;color:#242422}:root[data-theme=light] .dashboard-content:before{background:linear-gradient(110deg,transparent 0 54%,rgba(0,0,0,.035) 54.1% 54.25%,transparent 54.35%),linear-gradient(70deg,transparent 0 72%,rgba(0,0,0,.022) 72.1% 72.22%,transparent 72.32%),radial-gradient(ellipse 54% 95% at 84% 0%,rgba(0,0,0,.045),transparent 68%)}:root[data-theme=light] .dashboard-content .page-head{border-bottom-color:#c9c9c3}:root[data-theme=light] .dashboard-content .page-head small{color:#666660}:root[data-theme=light] .dashboard-content .page-head h1{color:#080808}:root[data-theme=light] .dashboard-content .page-head p{color:#62625d}:root[data-theme=light] .dashboard-content .live{border-color:#aaa9a2;color:#111;background:#ffffff8c}:root[data-theme=light] .dashboard-content :is(.metric-group-label,.insight-kicker){color:#696963}:root[data-theme=light] .dashboard-content .stats-grid{border-color:#c9c9c3}:root[data-theme=light] .dashboard-content .stat-card{border-right-color:#c9c9c3}:root[data-theme=light] .dashboard-content .stat-card:hover{border-color:#c9c9c3;background:#ffffffb8;box-shadow:inset 0 2px #111}:root[data-theme=light] .dashboard-content .stat-label{color:#62625d}:root[data-theme=light] .dashboard-content .stat-value{color:#090909}:root[data-theme=light] .dashboard-content .stat-sub{color:#777770}:root[data-theme=light] .dashboard-content .stat-icon{border-color:#c9c9c3;color:#111}:root[data-theme=light] .dashboard-content .dashboard-insights,:root[data-theme=light] .dashboard-content .dashboard-lower{background:#c9c9c3}:root[data-theme=light] .dashboard-content .insight-card,:root[data-theme=light] .dashboard-content .insight-card--section{background:#fff;border-color:#c9c9c3}:root[data-theme=light] .dashboard-content .insight-head h3,:root[data-theme=light] .dashboard-content .activity-name,:root[data-theme=light] .dashboard-content .alarm-row strong{color:#090909}:root[data-theme=light] .dashboard-content .chart-track{background:#e8e8e4}@media(max-width:1100px){.stats-grid,.stats-grid--4,.stats-grid--5{grid-template-columns:repeat(2,1fr)}.dashboard-insights,.dashboard-lower{grid-template-columns:1fr}}@media(max-width:640px){.stats-grid,.stats-grid--4,.stats-grid--5{grid-template-columns:1fr}.page-head{flex-direction:column;align-items:flex-start;gap:14px}.availability-body{flex-direction:column;height:auto}}.page-head h1 br{display:block}.page-head small{color:var(--accent-text);font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.page .panel,.page .branding-block,.page .icons-panel{border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);box-shadow:var(--shadow-1)}.page .panel{padding:0;overflow:hidden}.page .panel>h2,.page .panel .panel-header-row,.page .form-grid>h2,.page .admin-header{min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text-primary);font-size:15px;font-weight:700}.page .panel-header-row h2,.page .admin-header h2{margin:0;font-size:15px;font-weight:700;color:var(--text-primary)}.page .form-grid,.page .panel.form-grid{display:grid;gap:14px;padding:0 0 18px}.page .form-grid>h2{margin-bottom:0}.page .form-grid>label,.page .form-grid>.action-row,.page .form-grid>.check-row,.page .form-grid>.form-status,.page .form-grid>.field-hint{margin-left:18px;margin-right:18px}.page .form-grid label{display:grid;gap:6px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.page .form-grid input,.page .form-grid select,.page .form-grid textarea,.page .topology-name,.branding-form input,.branding-form select,.icon-upload-name-wrap input{width:100%;min-width:0;height:42px;border:1px solid var(--border-input);border-radius:var(--radius-control);padding:0 12px;background:var(--bg-surface);color:var(--text-primary);outline:none;font-size:13px;text-transform:none;letter-spacing:0;font-weight:500}.page .form-grid select[multiple]{height:auto;min-height:84px;padding:8px}.page .form-grid input:focus,.page .form-grid select:focus,.page .form-grid textarea:focus,.branding-form input:focus,.icon-upload-name-wrap input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.page .field-hint,.page .form-grid small{color:var(--text-faint);font-size:10px;font-weight:500;letter-spacing:0;text-transform:none}.page .action-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.page .save-button,.page button.save-button{width:auto;min-width:120px;height:40px;padding:0 16px;border:1px solid var(--btn-primary-border);border-radius:8px;background:var(--btn-primary-bg);color:var(--btn-primary-color);font-weight:700;font-size:12px;box-shadow:var(--btn-primary-shadow)}.page .save-button:hover{border-color:var(--btn-primary-border-h);background:var(--btn-primary-bg-h);color:var(--btn-primary-color-h);box-shadow:var(--btn-primary-shadow-h);transform:translateY(-1px);filter:none}.page .secondary-button,.page .icon-upload-btn,.page .empty-create-button{height:40px;padding:0 14px;border:1px solid var(--btn-secondary-border);border-radius:8px;background:var(--btn-secondary-bg);color:var(--btn-secondary-color);font-weight:600;font-size:12px;box-shadow:var(--btn-secondary-shadow);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.page .secondary-button:hover,.page .icon-upload-btn:hover{border-color:var(--btn-secondary-border-h);background:var(--btn-secondary-bg-h);color:var(--btn-secondary-color-h);box-shadow:var(--btn-secondary-shadow-h);filter:none;transform:translateY(-1px)}.page .admin-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:14px;align-items:start}@media(max-width:980px){.page .admin-layout{grid-template-columns:1fr}}.page .map-list,.page .server-list,.page .user-list,.page .group-list{display:flex;flex-direction:column}.page .map-row,.page .server-row,.page .user-row,.page .group-row,.page .host-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;padding:12px 18px;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;color:var(--text-primary)}.page .map-row:first-child,.page .server-row:first-child,.page .user-row:first-child{border-top:0}.page .map-row:hover,.page .server-row:hover,.page .user-row:hover,.page .map-row-clickable:hover{background:var(--bg-chip)}.page .map-row>div:first-child,.page .server-row>div:first-child,.page .user-row>div:first-child{display:grid;gap:3px;min-width:0}.page .map-row strong,.page .server-row strong,.page .user-row strong{color:var(--text-primary);font-size:13px;font-weight:700}.page .map-row span,.page .server-row span,.page .user-row span,.page .map-row small,.page .server-row small,.page .user-row small{color:var(--text-faint);font-size:11px}.page .row-actions{display:flex;gap:6px;flex-shrink:0}.page .icon-action-button{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:3px;background:var(--bg-chip);color:var(--text-muted);cursor:pointer}.page .icon-action-button:hover{border-color:var(--accent-border);color:var(--text-primary);background:var(--accent-bg)}.page .icon-action-button.danger:hover{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger-bg)}.page .empty-state,.page .viewer-empty,.page .admin-empty,.page .form-status{margin:16px 18px;color:var(--text-faint);font-size:12px}.page .empty-create-button{width:calc(100% - 36px);height:120px;margin:18px;border-style:dashed;border-color:var(--border-strong);background:transparent;box-shadow:none;color:var(--text-faint)}.page .empty-create-button:hover{border-color:var(--accent-border);color:var(--text-primary);background:var(--accent-bg);transform:none}.page .element-tabs,.page .admin-tabs{display:grid;gap:6px;padding:6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel)}.page .element-tabs button,.page .admin-tabs button{height:38px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer}.page .element-tabs button:hover,.page .admin-tabs button:hover{background:var(--bg-chip);color:var(--text-primary)}.page .element-tabs button.active,.page .admin-tabs button.active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-primary)}.page .topology-type-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-chip);color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.page .viewer-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.page .viewer-map-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:140px;padding:18px;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);color:var(--text-primary);text-align:left;cursor:pointer;box-shadow:var(--shadow-1);position:relative;overflow:hidden}.page .viewer-map-card:after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent 75%);opacity:.6}.page .viewer-map-card:hover{border-color:var(--accent-border);background:var(--bg-chip)}.page .viewer-map-card strong{font-size:15px;font-weight:700}.page .viewer-map-card span{color:var(--text-faint);font-size:12px}.page .viewer-map-card svg{color:var(--text-muted)}.page .branding-block{overflow:hidden}.page .branding-block-header{min-height:60px;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);color:var(--text-muted)}.page .branding-block-header strong{display:block;color:var(--text-primary);font-size:14px}.page .branding-block-header span{color:var(--text-faint);font-size:11px}.page .branding-layout,.page .branding-layout--nav{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:14px;padding:18px}@media(max-width:900px){.page .branding-layout,.page .branding-layout--nav{grid-template-columns:1fr}}.page .branding-form.panel,.page .branding-preview-wrap{border:1px solid var(--border);border-radius:3px;background:var(--bg-surface-alt);box-shadow:none}.page .branding-upload-zone{border:1px dashed var(--border-strong);border-radius:3px;background:var(--bg-panel);color:var(--text-faint)}.page .branding-upload-zone:hover{border-color:var(--accent-border);background:var(--accent-bg)}.page .icons-panel{padding:18px}.page .icon-upload-form{display:grid;gap:8px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.page .icon-upload-form-row{display:flex;flex-wrap:wrap;gap:10px}.page .icon-upload-name-wrap{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;color:var(--text-faint)}.page .check-row{display:flex!important;align-items:center;gap:10px;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;font-weight:600!important;color:var(--text-primary)!important}.page .check-row input[type=checkbox]{width:16px;height:16px}.page .items-inspection{margin:0 18px 18px;padding:14px;border:1px solid var(--border);border-radius:3px;background:var(--bg-surface-alt)}.page-header{margin-bottom:24px}.page-header h1{margin:6px 0 5px;color:var(--text-title);font-size:clamp(26px,2.2vw,32px);font-weight:700;letter-spacing:-.8px}.page-header p{margin:0;color:var(--text-muted);font-size:13px}.login-page,.login-screen{width:100%;min-height:100dvh;display:grid;place-items:center;padding:16px;background:var(--bg-shell);color:var(--text-muted);font-family:Poppins,ui-sans-serif,system-ui,sans-serif}.login-card{width:min(400px,calc(100vw - 32px));border:1px solid var(--border);border-radius:16px;background:var(--bg-panel);box-shadow:var(--shadow-modal);overflow:hidden}.login-card.preview{width:min(360px,100%);pointer-events:none;transform:scale(.92);transform-origin:top center}.login-card-header{display:flex;align-items:center;gap:12px;padding:24px 28px 22px;background:var(--bg-sidebar-header)!important;border-bottom:2px solid var(--accent)}.login-brand{width:40px;height:40px;flex:0 0 auto;object-fit:contain}.login-card-header strong{display:block;color:var(--text-title);font-size:17px;font-weight:800;letter-spacing:-.3px}.login-card-header strong span{color:var(--accent)}.login-card-header small{display:block;margin-top:2px;color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.login-card-body{padding:28px}.login-card h1{margin:0 0 4px;color:var(--text-title);font-size:20px;font-weight:700}.login-card p{margin:0 0 22px;color:var(--text-faint);font-size:12px}.login-card form,.login-card label{display:flex;flex-direction:column}.login-card form{gap:14px}.login-card label{gap:6px;color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.login-card input{height:42px;width:100%;padding:0 12px;border:1px solid var(--border-input);border-radius:9px;outline:0;background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}.login-card input:focus-visible,.login-card input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.login-card button[type=submit],.login-card-body>form>button:not(.login-back){height:43px;margin-top:2px;border:1px solid var(--btn-primary-border);border-radius:10px;background:var(--btn-primary-bg);color:var(--btn-primary-color);font-weight:700;cursor:pointer;box-shadow:var(--btn-primary-shadow)}.login-card button[type=submit]:hover,.login-card-body>form>button:not(.login-back):hover{border-color:var(--btn-primary-border-h);background:var(--btn-primary-bg-h);color:var(--btn-primary-color-h);box-shadow:var(--btn-primary-shadow-h);transform:translateY(-2px)}.login-card button.login-back{height:34px;margin:0;border:0;background:transparent;color:var(--text-muted);box-shadow:none;font-size:10px;font-weight:600;cursor:pointer}.login-card button.login-back:hover{background:var(--accent-bg);color:var(--text-primary);transform:none}.login-error{padding:9px 11px;border:1px solid var(--danger-border);border-radius:7px;background:var(--danger-bg);color:var(--danger-text);font-size:11px}.login-2fa-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:4px}.login-2fa-heading>span{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--success-bg);color:var(--success-text);font-weight:900}.login-2fa-heading h1{margin:0 0 4px}.login-2fa-heading p{margin:0}.two-factor-code-field input{text-align:center;font-size:21px!important;font-weight:800;letter-spacing:.35em;font-variant-numeric:tabular-nums}.two-factor-code-field small{color:var(--text-faint);font-size:9px;font-weight:500;letter-spacing:0;text-transform:none}.page .branding-sections{display:grid;gap:14px}.page .branding-block{display:block;overflow:hidden;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel);box-shadow:var(--shadow-1)}.page .branding-block-header{min-height:64px;display:flex;align-items:center;gap:12px;margin:0;padding:16px 18px;border-bottom:1px solid var(--border);color:var(--text-muted);background:var(--bg-surface-alt)}.page .branding-block-header strong{display:block;color:var(--text-primary);font-size:14px;font-weight:700}.page .branding-block-header span{display:block;margin-top:2px;color:var(--text-faint);font-size:11px}.page .branding-layout,.page .branding-layout--nav{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1.05fr);gap:0;align-items:stretch;padding:0}.page .branding-form.panel,.page .branding-form{display:grid;gap:14px;align-content:start;margin:0;padding:18px;border:0;border-right:1px solid var(--border);border-radius:0;background:var(--bg-panel);box-shadow:none}.page .branding-form>label{display:grid;gap:6px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.page .branding-form .action-row,.page .branding-form .form-status,.page .branding-form .two-col-fields{margin-left:0;margin-right:0}.page .branding-preview-wrap{display:flex;flex-direction:column;gap:12px;margin:0;padding:18px;border:0;border-radius:0;background:var(--bg-surface-alt);box-shadow:none;min-height:100%}.page .preview-label{margin:0;color:var(--text-faint);font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.page .login-preview-screen{flex:1;display:grid;place-items:center;min-height:480px;padding:20px;border:1px solid var(--border);border-radius:3px;background:var(--bg-shell)}.page .branding-upload-zone{min-height:120px;border:1px dashed var(--border-strong);border-radius:3px;background:var(--bg-surface-alt)}.page .two-col-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.page .color-input-wrap{display:flex;align-items:center;gap:10px;height:42px;padding:0 10px;border:1px solid var(--border-input);border-radius:var(--radius-control);background:var(--bg-surface)}.page .color-input-wrap input[type=color]{width:28px;height:28px;padding:0;border:0;background:transparent;cursor:pointer}.page .color-hex,.page .range-value{color:var(--text-muted);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.page .nav-logo-preview,.page .favicon-preview{border:1px solid var(--border);border-radius:3px;background:var(--bg-shell);padding:16px}.page .nav-logo-preview-sidebar{display:flex;align-items:center;gap:11px;height:64px;padding:0 18px;border:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0;background:var(--bg-sidebar-header)}@media(max-width:980px){.page .branding-layout,.page .branding-layout--nav{grid-template-columns:1fr}.page .branding-form.panel,.page .branding-form{border-right:0;border-bottom:1px solid var(--border)}.page .login-preview-screen{min-height:420px}}.shell-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg-shell)}.topbar{position:sticky;top:0;z-index:30;height:64px;flex:0 0 auto;display:flex;align-items:center;justify-content:flex-start;gap:4px;padding:0 28px;border:0;background:var(--bg-shell)}.topbar-spacer{flex:1;min-width:0}.topbar-btn{position:relative;width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;margin:0;padding:0;border:0;border-radius:2px;background:transparent;color:var(--text-muted);cursor:pointer;line-height:1;transition:background .15s,color .15s}.topbar-btn:hover{background:#ffffff0f;color:var(--text-primary)}:root[data-theme=light] .topbar-btn:hover{background:#1111110f}.topbar-btn svg{width:18px;height:18px;stroke:currentColor;fill:none}.shell-main .content-shell{flex:1;min-height:0;overflow:auto}.shell-main-viewer .content-shell{overflow:hidden}.viewer-mobile-nav{display:none}.shell-main .viewer-live{min-height:calc(100% + -0px)}.page .admin-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-width:720px;margin-bottom:18px;padding:6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-panel)}.perm-shell{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr) minmax(220px,280px);gap:14px;align-items:start}.perm-subjects,.perm-editor,.perm-audit,.perm-loading{min-width:0;overflow:hidden}.perm-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--bg-surface-alt)}.perm-panel-head h2{margin:4px 0 0;color:var(--text-title);font-size:16px;font-weight:700;letter-spacing:-.3px}.perm-panel-head p{margin:6px 0 0;color:var(--text-faint);font-size:12px}.perm-kicker{display:block;color:var(--text-faint);font-size:9px;font-weight:800;letter-spacing:.9px;text-transform:uppercase}.perm-subject-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 12px 0;padding:4px;border:1px solid var(--border);border-radius:3px;background:var(--bg-surface-alt)}.perm-subject-tabs button{height:34px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer}.perm-subject-tabs button.active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-primary)}.perm-subject-list,.perm-audit-list{display:flex;flex-direction:column;gap:0;max-height:min(70vh,820px);overflow:auto;padding:8px}.perm-subject-btn{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;width:100%;padding:10px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.perm-subject-btn:hover{background:var(--bg-chip)}.perm-subject-btn.active{border-color:var(--accent-border);background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}.perm-subject-btn.dirty em{color:var(--accent-yellow-text)}.perm-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:3px;background:var(--bg-chip);border:1px solid var(--border);color:var(--text-primary);font-size:12px;font-weight:800}.perm-subject-copy{min-width:0;display:grid;gap:2px}.perm-subject-copy strong,.perm-subject-copy small,.perm-subject-copy em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-subject-copy strong{font-size:13px}.perm-subject-copy small,.perm-subject-copy em{color:var(--text-faint);font-size:11px;font-style:normal}.perm-editor-head{align-items:center}.perm-badges{display:flex;flex-wrap:wrap;gap:8px}.perm-block{padding:16px 18px 0}.perm-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.perm-block-head h3{margin:0;color:var(--text-primary);font-size:13px;font-weight:700}.perm-block-head small{color:var(--text-faint);font-size:11px}.perm-table{border:1px solid var(--border);border-radius:3px;overflow:hidden;background:var(--bg-panel)}.perm-table-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 88px 88px minmax(140px,1fr);align-items:center;gap:8px;min-height:56px;padding:0 14px;border-top:1px solid var(--border)}.perm-table-row:first-child{border-top:0}.perm-table-head{min-height:42px;background:var(--bg-table-head);color:var(--text-faint);font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}.perm-table-row:not(.perm-table-head):hover{background:var(--bg-chip)}.perm-resource{min-width:0;display:grid;gap:2px}.perm-resource strong,.perm-resource small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-resource strong{color:var(--text-primary);font-size:13px}.perm-resource small{color:var(--text-faint);font-size:11px}.perm-check{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;cursor:pointer}.perm-check input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.perm-check-box{width:18px;height:18px;border:1px solid var(--border-input);border-radius:3px;background:var(--bg-surface);box-shadow:inset 0 1px #ffffff0a;transition:border-color .15s,background .15s,box-shadow .15s}.perm-check input:checked+.perm-check-box{border-color:var(--accent);background:var(--accent);box-shadow:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23050505' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E");background-size:12px 12px;background-position:center;background-repeat:no-repeat}:root[data-theme=light] .perm-check input:checked+.perm-check-box{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E")}.perm-check input:disabled+.perm-check-box{opacity:.45}.perm-check-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.perm-state{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}.perm-pill{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--border);border-radius:999px;background:var(--accent-bg);color:var(--text-primary);font-size:10px;font-weight:700;letter-spacing:.2px}.perm-pill.view{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.perm-pill.edit{border-color:var(--accent-border);background:var(--accent-strong-bg);color:var(--text-primary)}.perm-pill.muted{background:var(--bg-chip);color:var(--text-faint)}.perm-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:14px 18px 18px;border-top:1px solid var(--border)}.perm-footer-hint{color:var(--text-faint);font-size:12px}.perm-footer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.perm-audit-row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border-bottom:1px solid var(--border)}.perm-audit-row:last-child{border-bottom:0}.perm-audit-tag{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 7px;border-radius:3px;font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}.perm-audit-tag.menu{background:var(--accent-bg);color:var(--text-primary);border:1px solid var(--accent-border)}.perm-audit-tag.map{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.perm-audit-row strong,.perm-audit-row span,.perm-audit-row small{display:block}.perm-audit-row strong{color:var(--text-primary);font-size:12px}.perm-audit-row span{margin-top:2px;color:var(--text-muted);font-size:11px}.perm-audit-row small{margin-top:3px;color:var(--text-faint);font-size:10px}.page .role-pill,.page .state-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-chip);color:var(--text-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.page .state-pill.active{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.page .user-row,.page .group-row{display:grid;grid-template-columns:minmax(0,1.4fr) auto auto auto auto;align-items:center;gap:10px}@media(max-width:1200px){.perm-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.perm-audit{grid-column:1 / -1}.perm-audit-list{max-height:280px}}@media(max-width:860px){.perm-shell{grid-template-columns:1fr}.perm-table-row{grid-template-columns:minmax(0,1fr) 72px 72px minmax(110px,1fr)}.page .admin-tabs{max-width:none}.page .user-row,.page .group-row{grid-template-columns:minmax(0,1fr);align-items:start}}:root[data-theme=light] .iface-rx{color:#0369a1}:root[data-theme=light] .iface-tx{color:#a16207}:root[data-theme=light] .login-panel,:root[data-theme=light] .element-editor-panel,:root[data-theme=light] .host-picker-panel,:root[data-theme=light] .onu-rename-modal,:root[data-theme=light] .create-tool-menu{background:#fff;border-color:#e4e4e7;box-shadow:0 24px 60px #09090b1f}:root[data-theme=light] .element-section,:root[data-theme=light] .element-summary,:root[data-theme=light] .host-picker-item,:root[data-theme=light] .palette-item,:root[data-theme=light] .share-active-item,:root[data-theme=light] .interface-metric-summary,:root[data-theme=light] .onu-item,:root[data-theme=light] .inspection-item,:root[data-theme=light] .user-row,:root[data-theme=light] .permission-audit-row{background:#fafafa;border-color:#e4e4e7}:root[data-theme=light] .element-tabs,:root[data-theme=light] .cable-type-btn,:root[data-theme=light] .cable-routing-btn,:root[data-theme=light] .host-search-box,:root[data-theme=light] .iface-search-box{background:#f4f4f5;border-color:#e4e4e7}:root[data-theme=light] .element-tabs button.active,:root[data-theme=light] .cable-type-btn.active,:root[data-theme=light] .cable-routing-btn.active{background:#09090b;color:#fff;border-color:#09090b}:root[data-theme=light] .element-form input,:root[data-theme=light] .element-form select,:root[data-theme=light] .host-picker-controls input,:root[data-theme=light] .host-picker-controls select,:root[data-theme=light] .login-panel input,:root[data-theme=light] .form-grid input,:root[data-theme=light] .form-grid select,:root[data-theme=light] .form-grid textarea,:root[data-theme=light] .branding-form input,:root[data-theme=light] .branding-form select,:root[data-theme=light] .onu-rename-modal-input,:root[data-theme=light] .onu-rename-input,:root[data-theme=light] .page .form-grid input,:root[data-theme=light] .page .form-grid select,:root[data-theme=light] .page .form-grid textarea{background:#fff;border-color:#d4d4d8;color:#18181b}:root[data-theme=light] .element-form input:focus,:root[data-theme=light] .element-form select:focus,:root[data-theme=light] .host-picker-controls input:focus,:root[data-theme=light] .host-picker-controls select:focus,:root[data-theme=light] .login-panel input:focus,:root[data-theme=light] .form-grid input:focus,:root[data-theme=light] .form-grid select:focus,:root[data-theme=light] .onu-rename-modal-input:focus,:root[data-theme=light] .page .form-grid input:focus,:root[data-theme=light] .page .form-grid select:focus,:root[data-theme=light] .page .form-grid textarea:focus{border-color:#09090b;box-shadow:0 0 0 3px #09090b1a}:root[data-theme=light] .page .panel,:root[data-theme=light] .page .branding-block,:root[data-theme=light] .page .icons-panel{background:#fff;border-color:#e4e4e7;border-radius:12px;box-shadow:0 1px 2px #09090b0a}:root[data-theme=light] .page .panel>h2,:root[data-theme=light] .page .panel .panel-header-row,:root[data-theme=light] .page .form-grid>h2,:root[data-theme=light] .page .admin-header{background:#fafafa;border-bottom-color:#e4e4e7;color:#09090b}:root[data-theme=light] .page .map-row:hover,:root[data-theme=light] .page .server-row:hover,:root[data-theme=light] .page .user-row:hover,:root[data-theme=light] .page .group-row:hover,:root[data-theme=light] .page .host-row:hover{background:#f4f4f5}:root[data-theme=light] .secondary-button,:root[data-theme=light] .page .secondary-button,:root[data-theme=light] .icon-action-button:not(.danger),:root[data-theme=light] .element-close-button,:root[data-theme=light] .host-picker-edit-btn,:root[data-theme=light] .status-item-header button,:root[data-theme=light] .onu-refresh-btn,:root[data-theme=light] .edge-history-back,:root[data-theme=light] .element-dark-button,:root[data-theme=light] .element-cancel-button,:root[data-theme=light] .font-size-btn{background:#fff;border-color:#d4d4d8;color:#3f3f46;box-shadow:none}:root[data-theme=light] .secondary-button:hover,:root[data-theme=light] .page .secondary-button:hover,:root[data-theme=light] .icon-action-button:not(.danger):hover,:root[data-theme=light] .element-close-button:hover,:root[data-theme=light] .host-picker-edit-btn:hover,:root[data-theme=light] .onu-refresh-btn:hover:not(:disabled),:root[data-theme=light] .edge-history-back:hover,:root[data-theme=light] .element-dark-button:hover,:root[data-theme=light] .element-cancel-button:hover,:root[data-theme=light] .font-size-btn:hover{background:#f4f4f5;border-color:#a1a1aa;color:#09090b;filter:none}:root[data-theme=light] .save-button,:root[data-theme=light] .page .save-button,:root[data-theme=light] .login-panel button,:root[data-theme=light] .save-tool-button,:root[data-theme=light] .icon-upload-btn,:root[data-theme=light] .element-save-button,:root[data-theme=light] .edge-tooltip-history-btn:hover{background:#09090b;border-color:#09090b;color:#fff;box-shadow:0 1px 2px #09090b1f}:root[data-theme=light] .danger-button,:root[data-theme=light] .icon-action-button.danger,:root[data-theme=light] .element-delete-button{background:#dc262614;border-color:#dc262647;color:#b91c1c;box-shadow:none}:root[data-theme=light] .danger-button:hover,:root[data-theme=light] .icon-action-button.danger:hover,:root[data-theme=light] .element-delete-button:hover{background:#dc262624;border-color:#dc2626;color:#991b1b}:root[data-theme=light] .tool-button,:root[data-theme=light] .create-tool-button{background:#fff;border-color:#e4e4e7;color:#18181b}:root[data-theme=light] .tool-button:hover,:root[data-theme=light] .create-tool-button:hover{background:#f4f4f5;border-color:#d4d4d8}:root[data-theme=light] .tool-button.active,:root[data-theme=light] .create-tool-button.active,:root[data-theme=light] .save-tool-button{background:#09090b;border-color:#09090b;color:#fff}:root[data-theme=light] .edge-history-overlay{background:radial-gradient(1000px 420px at 50% -8%,rgba(9,9,11,.04),transparent 55%),#f4f4f5}:root[data-theme=light] .edge-history-metric-card,:root[data-theme=light] .edge-history-chart-wrap{background:#fff;border-color:#e4e4e7}:root[data-theme=light] .edge-history-seg{background:#efeff1;border-color:#e4e4e7}:root[data-theme=light] .edge-history-seg-btn.active{background:#09090b;color:#fff}:root[data-theme=light] .edge-history-point-tip{background:#fff;border-color:#d4d4d8;box-shadow:0 10px 28px #09090b1f}:root[data-theme=light] .edge-history-point-tip-time{color:#71717a}:root[data-theme=light] .edge-history-point-tip-row strong{color:#09090b}:root[data-theme=light] .edge-history-point-tip-row span:not(.tx):not(.rx){color:#71717a}:root[data-theme=light] .sidebar{background:#fff;border-right-color:#d8d8d8;box-shadow:1px 0 #00000006}:root[data-theme=light] .topbar,:root[data-theme=light] .shell-main{background:#f4f4f5}:root[data-theme=light] .topology-type-badge--telecom{background:#7e22ce14;color:#7e22ce;border-color:#7e22ce38}:root[data-theme=light] .login-totp-hint,:root[data-theme=light] .totp-hint{color:var(--text-muted)}:root[data-theme=light] .permission-table-head{background:#f4f4f5;color:#71717a}:root[data-theme=light] .host-picker-item--selected{background:#09090b0d;border-color:#09090b}:root[data-theme=light] .position-visual-box{background:#f4f4f5;border-color:#e4e4e7}.reports-page .page-head{align-items:flex-end}.reports-export-btn{height:40px;min-width:140px}.reports-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:end;justify-content:space-between;margin-bottom:16px}.reports-kind-tabs{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--bg-surface-alt)}.reports-kind-tab{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;min-height:36px;padding:0 14px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:700;cursor:pointer}.reports-kind-tab.active{background:var(--btn-primary-bg);color:var(--btn-primary-color)}.reports-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.reports-filters label{display:grid;gap:6px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.reports-filters select,.reports-search-box{min-width:220px;height:40px;border:1px solid var(--border-input);border-radius:8px;background:var(--bg-surface);color:var(--text-primary)}.reports-filters select{padding:0 12px}.reports-search-box{display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--text-faint)}.reports-search-box input{flex:1;border:0;outline:none;background:transparent;color:var(--text-primary);font-size:13px;min-width:0}.reports-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.reports-summary article{border:1px solid var(--border);border-radius:12px;background:var(--bg-panel);padding:14px 16px;display:grid;gap:6px}.reports-summary small{color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.reports-summary strong{color:var(--text-title);font-size:18px;font-weight:700}.reports-table-panel{overflow:hidden}.reports-chart-panel{margin-top:16px;overflow:hidden}.reports-chart-legend{display:flex;align-items:center;gap:14px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.reports-chart-legend span{display:inline-flex;align-items:center;gap:6px}.reports-chart-legend i{width:16px;height:2px;border-radius:2px;background:var(--history-tx, #3b82f6);display:inline-block}.reports-chart-legend i.rx{background:var(--history-rx, #22c55e)}.reports-chart-wrap{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:10px;padding:4px 16px 16px;min-height:240px}.reports-chart-plot{display:flex;flex-direction:column;gap:8px;min-width:0}.reports-chart-yaxis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:8px 0 28px;color:var(--text-muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.reports-chart-main{position:relative;min-height:220px;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface-alt);overflow:hidden}.reports-chart-xaxis{position:relative;height:18px;color:var(--text-muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.reports-chart-xaxis.is-dense{height:20px;font-size:10px;letter-spacing:-.01em}.reports-chart-xaxis span{position:absolute;top:0;transform:translate(-50%);white-space:nowrap}.reports-chart-xaxis span.is-start{transform:translate(0)}.reports-chart-xaxis span.is-end{transform:translate(-100%)}.reports-chart-svg{width:100%;height:220px;display:block}.reports-chart-grid{stroke:var(--border);stroke-width:1}.reports-chart-line-tx{stroke:var(--history-tx, #3b82f6)}.reports-chart-line-rx{stroke:var(--history-rx, #22c55e)}.reports-chart-crosshair{stroke:var(--text-muted);stroke-width:1;opacity:.55}.reports-chart-point-tx{fill:var(--history-tx, #3b82f6);stroke:#fff;stroke-width:1.5}.reports-chart-point-rx{fill:var(--history-rx, #22c55e);stroke:#fff;stroke-width:1.5}.reports-chart-tip{position:absolute;top:12px;transform:translate(10px);z-index:2;display:flex;flex-direction:column;gap:2px;min-width:140px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text-primary);box-shadow:0 8px 24px #0000001f;pointer-events:none;font-size:11px}.reports-chart-tip.left{transform:translate(calc(-100% - 10px))}.reports-chart-tip strong{color:var(--text-title);font-size:11px;margin-bottom:2px}.reports-pdf-chart{margin-top:20px}.reports-pdf-chart .reports-chart-panel{margin-top:0;border:1px solid #e4e4e7;box-shadow:none}.reports-count-pill{border:1px solid var(--border);border-radius:999px;padding:4px 10px;background:var(--bg-chip);color:var(--text-muted);font-size:11px;font-weight:700}.reports-empty{padding:48px 18px;text-align:center;color:var(--text-muted);font-size:14px}.reports-table-wrap{overflow:auto;max-height:calc(100vh - 360px)}.reports-table{width:100%;border-collapse:collapse;font-size:12px}.reports-table th,.reports-table td{padding:12px 16px;border-top:1px solid var(--border);text-align:left;vertical-align:top;white-space:nowrap}.reports-table th{position:sticky;top:0;z-index:1;background:var(--bg-table-head);color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-top:0}.reports-table td strong{display:block;color:var(--text-title);font-size:12px}.reports-table td small{display:block;margin-top:2px;color:var(--text-faint);font-size:11px}.reports-table td.is-warn{color:var(--accent-yellow-text);font-weight:700}.reports-table td.is-critical{color:var(--danger-text);font-weight:800}.reports-status,.reports-severity{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.reports-status-ok{background:var(--success-bg);color:var(--success-text)}.reports-status-alerta{background:var(--accent-yellow-bg);color:var(--accent-yellow-text)}.reports-status-crítico,.reports-status-critico,.reports-status-down,.reports-severity.rank-5,.reports-severity.rank-4{background:var(--danger-bg);color:var(--danger-text)}.reports-severity.rank-3{background:var(--accent-yellow-bg);color:var(--accent-yellow-text)}.reports-severity.rank-2,.reports-severity.rank-1,.reports-severity.rank-0{background:var(--bg-chip);color:var(--text-muted)}@media(max-width:900px){.reports-summary{grid-template-columns:1fr}.reports-toolbar{align-items:stretch}.reports-filters,.reports-filters label,.reports-filters select,.reports-search-box{width:100%;min-width:0}}:root[data-theme=light] .reports-kind-tabs{background:#f4f4f5;border-color:#e4e4e7}:root[data-theme=light] .reports-kind-tab.active{background:#09090b;color:#fff}:root[data-theme=light] .reports-summary article,:root[data-theme=light] .reports-table-panel,:root[data-theme=light] .reports-chart-panel{background:#fff;border-color:#e4e4e7}:root[data-theme=light] .reports-chart-main{background:#fafafa;border-color:#e4e4e7}:root[data-theme=light] .reports-chart-tip{background:#fff;border-color:#e4e4e7;box-shadow:0 10px 28px #0f172a1f}.reports-export-actions{display:flex;flex-wrap:wrap;gap:8px}.reports-export-actions .save-button,.reports-export-actions .secondary-button,.reports-export-btn{width:auto;min-width:132px}.reports-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.reports-filters-grid input[type=datetime-local]{width:100%;min-width:0;height:40px;border:1px solid var(--border-input);border-radius:8px;padding:0 12px;background:var(--bg-surface);color:var(--text-primary)}.reports-history-error,.reports-history-loading{margin:0 0 12px}.reports-filters-grid label{min-width:0}.reports-filters-grid select,.reports-filters-grid .reports-search-box{width:100%;min-width:0}.reports-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.reports-select-btn{height:32px;padding:0 10px;font-size:11px}.reports-check-col{width:36px;text-align:center}.reports-table tr.is-selected td{background:color-mix(in srgb,var(--accent-bg) 70%,transparent)}:root[data-theme=light] .reports-table tr.is-selected td{background:#09090b0a}.reports-pdf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;background:var(--modal-backdrop, rgba(9, 9, 11, .45));display:grid;place-items:center;padding:24px}.reports-pdf-modal{width:min(980px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;gap:0;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-modal);overflow:hidden}.reports-pdf-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface-alt)}.reports-pdf-modal-header small{display:block;color:var(--text-faint);font-size:10px;font-weight:700;letter-spacing:.1em}.reports-pdf-modal-header strong{display:block;margin-top:4px;color:var(--text-title);font-size:18px}.reports-pdf-modal-header span{display:block;margin-top:4px;color:var(--text-muted);font-size:12px}.reports-pdf-modal-actions{display:flex;flex-wrap:wrap;gap:8px}.reports-pdf-modal-actions .save-button,.reports-pdf-modal-actions .secondary-button{width:auto;min-width:120px;height:40px}.reports-pdf-modal-body{overflow:auto;padding:20px;background:#ececef}.reports-pdf-sheet{background:#fff;color:#111;border:1px solid #d4d4d8;border-radius:8px;padding:28px;box-shadow:0 10px 30px #09090b14;font-size:12px}.reports-pdf-sheet h1{margin:0 0 8px;font-size:20px;color:#09090b}.reports-pdf-sheet .meta{margin:0 0 18px;color:#52525b;line-height:1.5}.reports-pdf-sheet table{width:100%;border-collapse:collapse}.reports-pdf-sheet th,.reports-pdf-sheet td{border:1px solid #d4d4d8;padding:8px;text-align:left;vertical-align:top}.reports-pdf-sheet th{background:#f4f4f5;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.reports-pdf-sheet small{color:#71717a}.reports-pdf-modal-hint{padding:12px 20px 16px;border-top:1px solid var(--border);color:var(--text-muted);font-size:12px;background:var(--bg-panel)}@media(max-width:720px){.reports-pdf-modal-header{flex-direction:column}.reports-pdf-modal-actions,.reports-pdf-modal-actions .save-button,.reports-pdf-modal-actions .secondary-button{width:100%}}.maps-editor-page .page-head{margin-bottom:28px}.maps-editor-layout{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.25fr);gap:16px;align-items:start}.maps-create-panel,.maps-list-panel{overflow:hidden}.maps-create-head,.maps-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border)}.maps-create-head h2,.maps-list-head h2{margin:4px 0 0;color:var(--text-primary);font-size:16px;font-weight:600}.maps-create-body{display:grid;gap:18px;padding:20px}.maps-field{display:grid;gap:8px}.maps-field>span{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.maps-field input{width:100%;height:42px;padding:0 12px;border:1px solid var(--border-input);border-radius:2px;outline:0;background:var(--bg-surface);color:var(--text-primary);font-size:13px}.maps-field input:focus{border-color:var(--text-primary);box-shadow:0 0 0 2px #ffffff14}.maps-field-empty{margin:0;padding:14px;border:1px dashed var(--border-strong);color:var(--text-faint);font-size:12px;line-height:1.5}.maps-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.maps-type-card{display:grid;gap:4px;min-height:68px;padding:12px;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--text-muted);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.maps-type-card strong{color:inherit;font-size:12px;font-weight:600}.maps-type-card small{color:var(--text-faint);font-size:10px}.maps-type-card:hover{border-color:var(--border-strong);color:var(--text-primary);background:#ffffff08}.maps-type-card.active{border-color:var(--text-primary);background:var(--text-primary);color:var(--bg-shell)}.maps-type-card.active small{color:inherit;opacity:.72}.maps-server-chips{display:grid;gap:8px}.maps-server-chip{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:54px;padding:10px 12px;border:1px solid var(--border);border-radius:2px;background:transparent;color:var(--text-muted);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.maps-server-chip span:last-child{min-width:0;display:grid;gap:3px}.maps-server-chip strong{overflow:hidden;color:var(--text-primary);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.maps-server-chip small{overflow:hidden;color:var(--text-faint);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.maps-server-check{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:2px;color:var(--bg-shell)}.maps-server-chip:hover{border-color:var(--border-strong);background:#ffffff08}.maps-server-chip.active{border-color:#ffffff73;background:#ffffff0d}.maps-server-chip.active .maps-server-check{border-color:#fff;background:#fff;color:#050505}.maps-create-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:4px}.primary-action,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:2px;font-size:12px;font-weight:700;cursor:pointer;transition:transform .15s,background .15s,color .15s,border-color .15s}.primary-action{border:1px solid var(--text-primary);background:var(--text-primary);color:var(--bg-shell)}.primary-action:hover:not(:disabled){background:transparent;color:var(--text-primary);transform:translateY(-1px)}.primary-action:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-ghost{border:0;background:transparent;color:var(--text-muted);min-height:34px;padding:0 10px}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0d}.maps-create-panel .form-status{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:2px;background:#ffffff08;color:var(--text-muted);font-size:12px}.maps-create-panel .form-status--error{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.maps-list-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.maps-search{display:flex;align-items:center;gap:8px;min-width:min(240px,100%);height:38px;padding:0 11px;border:1px solid var(--border-input);border-radius:2px;background:var(--bg-surface);color:var(--text-faint)}.maps-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text-primary);font-size:12px}.maps-list-labels,.maps-row{display:grid;grid-template-columns:minmax(160px,1.4fr) minmax(120px,1.1fr) minmax(90px,.7fr) auto;align-items:center;gap:14px}.maps-list-labels{min-height:34px;padding:0 18px;background:var(--bg-table-head);color:var(--text-faint);font-size:9px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.maps-row{min-height:72px;padding:12px 18px}.maps-row.is-editing{box-shadow:inset 2px 0 #fff;background:#ffffff09}.maps-row-main{min-width:0;display:grid;gap:4px}.maps-row-main small{color:var(--text-faint);font-size:10px}.maps-row-servers{min-width:0}.maps-row-servers span{display:block;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.maps-row-meta{display:grid;gap:3px;color:var(--text-faint);font-size:11px}.maps-empty{display:grid;place-items:center;gap:8px;min-height:260px;padding:32px 24px;text-align:center;color:var(--text-faint)}.maps-empty-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:4px;border:1px solid var(--border-strong);border-radius:50%;color:var(--text-primary)}.maps-empty strong{color:var(--text-primary);font-size:14px;font-weight:600}.maps-empty span{max-width:320px;font-size:12px;line-height:1.5}:root[data-theme=light] .maps-type-card.active{border-color:#111;background:#111;color:#fff}:root[data-theme=light] .maps-server-chip.active{border-color:#111;background:#1111110a}:root[data-theme=light] .maps-server-chip.active .maps-server-check{border-color:#111;background:#111;color:#fff}:root[data-theme=light] .maps-row.is-editing{box-shadow:inset 2px 0 #111;background:#11111109}:root[data-theme=light] .maps-field input:focus{box-shadow:0 0 0 2px #11111114}@media(max-width:1100px){.maps-list-labels{display:none}.maps-row{grid-template-columns:1fr auto;gap:10px}.maps-row-servers,.maps-row-meta{grid-column:1}}@media(max-width:980px){.maps-editor-layout{grid-template-columns:1fr}.maps-list-head{flex-direction:column}.maps-list-tools,.maps-search{width:100%}}@media(max-width:640px){.maps-type-grid{grid-template-columns:1fr}.maps-create-actions,.maps-create-actions .primary-action,.maps-create-actions .secondary-button{width:100%}}.maps-editor-page .page-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.maps-list-panel--full{width:100%}.maps-empty .primary-action{margin-top:10px}.maps-toast{margin:14px 0 0;padding:10px 12px;border:1px solid var(--border);border-radius:2px;background:#ffffff08;color:var(--text-muted);font-size:12px}.maps-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;display:grid;place-items:center;padding:20px;background:#0000009e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.maps-modal{width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.18);border-radius:2px;background:#090909;box-shadow:var(--shadow-modal);overflow:hidden}.maps-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.12)}.maps-modal-header small{display:block;color:#888;font-size:10px;font-weight:700;letter-spacing:1.4px}.maps-modal-header strong{display:block;margin-top:6px;color:#fff;font-size:18px;font-weight:500}.maps-modal-header span{display:block;margin-top:6px;color:#777;font-size:12px;line-height:1.45}.maps-modal-close{flex:0 0 auto;width:34px;height:34px;padding:0;min-height:34px}.maps-modal-body{display:grid;gap:18px;padding:20px;overflow:auto}.maps-modal-body .form-status{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:2px;background:#ffffff08;color:var(--text-muted);font-size:12px}.maps-modal-body .form-status--error{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger-text)}.maps-modal-footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding:14px 20px;border-top:1px solid rgba(255,255,255,.12);background:#050505}:root[data-theme=light] .maps-modal{border-color:#d1d1cb;background:#fff}:root[data-theme=light] .maps-modal-header,:root[data-theme=light] .maps-modal-footer{border-color:#e2e2de;background:#fafaf8}:root[data-theme=light] .maps-modal-header strong{color:#090909}:root[data-theme=light] .maps-modal-header small,:root[data-theme=light] .maps-modal-header span{color:#777770}:root[data-theme=light] .maps-modal-overlay{background:#10182873}@media(max-width:640px){.maps-editor-page .page-head-actions,.maps-editor-page .page-head-actions .primary-action,.maps-modal-footer,.maps-modal-footer .primary-action,.maps-modal-footer .secondary-button{width:100%}}
