.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.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{color-scheme:dark;font-family:Space Grotesk,IBM Plex Sans,ui-sans-serif,system-ui,sans-serif;background:#06111d;color:#e8f5ff}*{box-sizing:border-box}body{margin:0;min-width:1280px;background:radial-gradient(circle at 20% 10%,#123252 0,transparent 28%),#06111d}button,input{font:inherit}.boot,.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,rgba(33,150,243,.22),transparent 34%),#06111d}.boot{gap:16px;align-content:center;color:#9fb8cd}.login-card{width:420px;padding:28px;border:1px solid rgba(99,187,255,.22);border-radius:24px;background:linear-gradient(145deg,#0b1f32eb,#06111deb);box-shadow:0 30px 90px #0006}.brand-row{display:flex;align-items:center;gap:14px;margin-bottom:28px}.brand-row h1{margin:0;font-size:26px}.brand-row p,.brand-row span{display:block;margin:2px 0 0;color:#81a0b9;font-size:13px}.brand-row.compact{margin-bottom:32px}.brand-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;color:#7be7ff;font-weight:800;background:linear-gradient(145deg,#07365e,#0a1020);border:1px solid rgba(82,185,255,.42);box-shadow:inset 0 0 24px #00aeff3d,0 0 32px #00aeff2e}.login-card label{display:grid;gap:8px;margin:18px 0;color:#adc6d9}.login-card input,.confirm{width:100%;padding:13px 14px;border-radius:14px;border:1px solid rgba(126,184,224,.2);background:#030d18b3;color:#e8f5ff;outline:none}.login-card button,.detail button{border:0;border-radius:14px;padding:12px 16px;background:#1287df;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.error{color:#ff8090;padding:8px 0}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh;transition:grid-template-columns .22s ease}.app-shell.map-mode.chrome-hidden{grid-template-columns:0 1fr}.sidebar{padding:22px 16px;background:#030d18d1;border-right:1px solid rgba(126,184,224,.12);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden;transition:opacity .2s ease,transform .2s ease,padding .2s ease,border-color .2s ease}.app-shell.chrome-hidden .sidebar{opacity:0;transform:translate(-18px);padding-inline:0;border-color:transparent;pointer-events:none}.sidebar button{width:100%;height:48px;margin:6px 0;display:flex;align-items:center;gap:12px;color:#b7cee1;background:transparent;border:1px solid transparent;border-radius:14px;padding:0 14px;cursor:pointer}.sidebar button.active,.sidebar button:hover{color:#e8f5ff;background:#2a89cf2e;border-color:#53b4ff3d}main{padding:22px 24px;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1{margin:0;font-size:28px;letter-spacing:-.03em}.topbar p{margin:4px 0 0;color:#8da8bd}.top-actions{display:flex;align-items:center;gap:10px}.user-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#0b1f32cc;border:1px solid rgba(126,184,224,.18);color:#bad1e5}.ghost-btn{border:1px solid rgba(126,184,224,.2);border-radius:999px;padding:10px 14px;background:#0b1f329e;color:#bad1e5;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.ghost-btn:hover{color:#fff;border-color:#5dbeff73}.metrics-row{display:grid;grid-template-columns:repeat(8,minmax(110px,1fr));gap:8px;margin:12px 0}.metrics-strip .metric{min-height:52px;padding:9px 11px;border-radius:14px}.metrics-strip .metric strong{margin-top:3px;font-size:19px}.metrics-strip .metric span,.metrics-strip .metric small{font-size:11px}.metric{min-height:86px;border:1px solid rgba(126,184,224,.16);border-radius:16px;padding:14px;background:linear-gradient(180deg,#0d2338d9,#071422bf)}.metric span{display:block;color:#a5bbcf;font-size:13px}.metric strong{display:block;margin-top:8px;font-size:27px;letter-spacing:-.04em}.metric small{color:#60e181}.metric.critical strong{color:#ff5d72}.metric.warning strong{color:#ffc35c}.metric.healthy strong{color:#60e181}.workspace{display:grid;grid-template-columns:minmax(780px,1fr) 380px;gap:18px;height:calc(100vh - 172px)}.map-workspace{height:calc(100vh - 132px);min-height:680px}.map-workspace .scene-card{height:100%}.split-screen{display:grid;grid-template-columns:minmax(480px,1fr) 440px;gap:18px;height:calc(100vh - 172px)}.content-grid{display:grid;grid-template-columns:minmax(520px,1fr) minmax(420px,.75fr);gap:18px;height:calc(100vh - 172px)}.panel{overflow:auto;border-radius:24px;border:1px solid rgba(126,184,224,.16);background:linear-gradient(180deg,#0b1f32d1,#040d17db);padding:18px;box-shadow:inset 0 1px #ffffff0a}.panel-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:16px}.panel h2{margin:0;font-size:21px;letter-spacing:-.03em}.panel p,.panel-head p{margin:4px 0 0;color:#90a9bd}.inline-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.form-grid label{display:grid;gap:7px;color:#adc6d9;font-size:13px}.inline-form input,.form-grid input,select{width:100%;padding:12px 13px;border-radius:14px;border:1px solid rgba(126,184,224,.2);background:#030d18b3;color:#e8f5ff;outline:none}.panel button,.inline-form button{border:0;border-radius:14px;padding:12px 16px;background:#1287df;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.scene-card{position:relative;overflow:hidden;border-radius:24px;border:1px solid rgba(126,184,224,.16);background:#071523;box-shadow:inset 0 0 80px #167ad314}.topology-warning{margin:-8px 0 14px;padding:10px 14px;border-radius:14px;border:1px solid rgba(255,179,71,.24);background:#ffb34717;color:#ffd495}.overlay-note{position:absolute;z-index:5;left:20px;top:20px;padding:12px 14px;border-radius:14px;background:#020c16b8;color:#b9d2e8;border:1px solid rgba(126,184,224,.18)}.overlay-note.error{color:#ff8090}.scene-fallback{height:100%;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;padding:28px;color:#b9d2e8;background:radial-gradient(circle at 50% 35%,rgba(255,76,99,.12),transparent 38%),#071523}.scene-fallback h2{margin:0}.scene-fallback p{max-width:520px;margin:0;color:#91aabe}.scene-fallback button{border:0;border-radius:14px;padding:11px 15px;background:#1287df;color:#fff;cursor:pointer}.scene-legend{display:flex;gap:10px;padding:8px 10px;border-radius:999px;background:#030d18b8;border:1px solid rgba(126,184,224,.16);color:#9fb8cd;font-size:11px;white-space:nowrap;pointer-events:none}.scene-legend span{display:inline-flex;align-items:center;gap:5px}.scene-legend i{width:18px;height:3px;border-radius:999px;display:inline-block;box-shadow:0 0 12px currentColor}.scene-legend .placement{background:#35a7ff;color:#35a7ff}.scene-legend .runs{background:#50f48e;color:#50f48e}.scene-legend .db{background:#ffbf5a;color:#ffbf5a}.scene-controls-hint{position:absolute;right:18px;bottom:18px;display:flex;flex-wrap:wrap;gap:7px;max-width:min(560px,calc(100% - 36px));padding:8px 10px;border-radius:999px;background:#030d18ad;border:1px solid rgba(126,184,224,.16);color:#a9c0d3;font-size:11px;pointer-events:none}.scene-controls-hint span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.cluster-flow-shell{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 14% 18%,rgba(53,167,255,.16),transparent 28%),radial-gradient(circle at 78% 74%,rgba(68,240,120,.08),transparent 30%),linear-gradient(145deg,#071523,#030d18)}.cluster-flow-shell .react-flow{width:100%;height:100%}.cluster-flow-shell .react-flow__pane{cursor:grab}.cluster-flow-shell .react-flow__pane:active{cursor:grabbing}.cluster-flow-shell .react-flow__attribution{display:none}.cluster-flow-shell .react-flow__controls{border:1px solid rgba(126,184,224,.18);border-radius:16px;overflow:hidden;background:#030d18c2;box-shadow:0 18px 52px #00000042}.cluster-flow-shell .react-flow__controls-button{background:#061422b8;border-bottom:1px solid rgba(126,184,224,.12);color:#d8edff}.cluster-flow-shell .react-flow__controls-button:hover{background:#1287df3d}.cluster-flow-shell .react-flow__minimap{border-radius:18px;overflow:hidden;border:1px solid rgba(126,184,224,.18);background:#030d18bd;box-shadow:0 18px 52px #0000003d}.flow-dock{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:calc(100vw - 360px);padding:9px;border:1px solid rgba(126,184,224,.18);border-radius:999px;background:#030d18c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 52px #00000047}.flow-dock button{min-height:34px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(126,184,224,.14);border-radius:999px;padding:8px 12px;background:#0b1f32c7;color:#bcd5e8;cursor:pointer}.flow-dock button:hover,.flow-dock button.active{color:#fff;border-color:#53b4ff80;background:#1287df57}.flow-dock button:disabled{opacity:.38;cursor:not-allowed}.flow-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 11px;border-radius:999px;border:1px solid rgba(126,184,224,.16);background:#030d18b8;color:#9fb8cd;font-size:11px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.flow-legend span{display:inline-flex;align-items:center;gap:6px}.flow-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;box-shadow:0 0 14px currentColor}.flow-legend .healthy{background:#44f078;color:#44f078}.flow-legend .warning{background:#ffb347;color:#ffb347}.flow-legend .critical{background:#ff4c63;color:#ff4c63}.flow-node{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:14px;color:#e8f5ff;border:1px solid rgba(126,184,224,.18);border-radius:22px;background:linear-gradient(145deg,#102b44eb,#05121fe8),radial-gradient(circle at 88% 0%,rgba(83,180,255,.12),transparent 36%);box-shadow:inset 0 1px #ffffff0d,0 18px 46px #0003;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease}.react-flow__node:hover .flow-node,.flow-node.selected{transform:translateY(-2px);border-color:#53b4ff94;box-shadow:inset 0 1px #ffffff0f,0 20px 54px #0088ff24}.flow-node.critical{border-color:#ff4c639e;box-shadow:0 0 0 1px #ff4c6329,0 20px 56px #ff4c631a}.flow-node.warning{border-color:#ffb3477a}.flow-node.unknown{opacity:.86}.flow-node-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start}.flow-node-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;color:#70d6ff;background:#1287df29;border:1px solid rgba(83,180,255,.22)}.flow-node-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;letter-spacing:-.03em}.flow-node-host .flow-node-head strong{font-size:19px}.flow-node-head small{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fa9bd;font-size:11px}.flow-node-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end}.flow-node-metrics span,.flow-node-metrics b{min-width:0;padding:8px 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:12px;border:1px solid rgba(126,184,224,.1);background:#0000002e;font-size:11px;color:#cfe5f7}.flow-node-metrics b{color:#88dfff;font-weight:700}.flow-node em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffb7c0;font-size:11px;font-style:normal}.flow-node-worker{border-radius:19px}.flow-node-workload{background:linear-gradient(145deg,#09302ae6,#05121fe6)}.flow-node-dependency{background:linear-gradient(145deg,#382307e0,#05121fe6)}.flow-node-hardware{background:linear-gradient(145deg,#25193ee6,#05121fe6)}.flow-node-network{background:linear-gradient(145deg,#072b3ae6,#05121fe6)}.flow-node-db-table{background:linear-gradient(145deg,#232446e6,#05121fe6)}.flow-node-collapsed{place-items:center;text-align:center;border-style:dashed;background:#030d18b8}.flow-handle{width:9px!important;height:9px!important;border:1px solid rgba(255,255,255,.82)!important;background:#35a7ff!important;box-shadow:0 0 14px #35a7ffb3}.topology-flow-edge{fill:none;stroke:#4caeff;stroke-width:2.2;opacity:.72;filter:drop-shadow(0 0 8px rgba(76,174,255,.42))}.topology-flow-edge.runs{stroke:#50f48e;filter:drop-shadow(0 0 8px rgba(80,244,142,.32))}.topology-flow-edge.db_connection{stroke:#ffbf5a;filter:drop-shadow(0 0 10px rgba(255,191,90,.48))}.topology-flow-edge.hardware{stroke:#a889ff;filter:drop-shadow(0 0 8px rgba(168,137,255,.34))}.topology-flow-edge.network_link{stroke:#6ae2ff;filter:drop-shadow(0 0 8px rgba(106,226,255,.4))}.topology-flow-edge.foreign_key{stroke:#b79cff;filter:drop-shadow(0 0 8px rgba(183,156,255,.42))}.topology-flow-edge.contains{stroke:#6f8ca4;opacity:.42;filter:none}.topology-flow-edge.critical{stroke:#ff4c63;stroke-width:3;opacity:1;filter:drop-shadow(0 0 12px rgba(255,76,99,.64))}.flow-edge-label{position:absolute;padding:4px 7px;border-radius:999px;border:1px solid rgba(126,184,224,.16);background:#030d18c7;color:#a9c0d3;font-size:10px;pointer-events:all;white-space:nowrap}.topology-drawer{position:absolute;z-index:14;left:22px;right:22px;bottom:18px;width:auto;max-height:min(42vh,430px);overflow:auto;padding:18px;border:1px solid rgba(126,184,224,.2);border-radius:24px;background:linear-gradient(180deg,#0b1f32ed,#040d17f2);box-shadow:0 26px 90px #00000073,inset 0 1px #ffffff0d;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.inspector-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding-bottom:13px;border-bottom:1px solid rgba(126,184,224,.12)}.inspector-header small{color:#73d2ff;text-transform:uppercase;letter-spacing:.1em}.inspector-header h2{margin:4px 0;font-size:24px;letter-spacing:-.04em}.inspector-header p{margin:0;color:#8fa9bd}.inspector-header button{border:1px solid rgba(126,184,224,.16);border-radius:999px;background:#0000002e;color:#b7cee1;padding:9px 12px;cursor:pointer}.inspector-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.inspector-action{width:100%;justify-content:center;margin-bottom:4px}.topology-drawer h3{margin:18px 0 10px}.mono-alert-list,.hardware-problem-list{display:grid;gap:8px}.mono-alert-list div,.hardware-problem-list div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border-radius:14px;border:1px solid rgba(126,184,224,.1);background:#0000002e}.mono-alert-list svg{color:#ffb347}.mono-alert-list span,.hardware-problem-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono-alert-list b,.hardware-problem-list small{color:#9fb8cd;font-size:11px;white-space:nowrap}.hardware-problem-list div{grid-template-columns:auto minmax(0,1fr)}.hardware-problem-list small{grid-column:2;overflow:hidden;text-overflow:ellipsis}.command-backdrop{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:start center;padding-top:78px;background:#01060c61;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.command-palette{width:min(720px,calc(100% - 44px));max-height:min(76vh,720px);overflow:auto;padding:12px;border:1px solid rgba(126,184,224,.2);border-radius:24px;background:linear-gradient(180deg,#0b1f32f5,#040d17fa);box-shadow:0 30px 90px #0000007a}.command-input{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:12px;border-radius:17px;border:1px solid rgba(126,184,224,.16);background:#0003;color:#8bdcff;margin-bottom:10px}.command-input input{width:100%;border:0;outline:0;background:transparent;color:#e8f5ff}.command-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin:5px 0;padding:10px 11px;border:1px solid rgba(126,184,224,.1);border-radius:15px;background:#00000029;color:#dbeeff;text-align:left;cursor:pointer}.command-row:hover{background:#1287df33;border-color:#53b4ff59}.command-row.passive{cursor:default;opacity:.82}.command-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-row b{color:#8fa9bd;font-size:11px;font-weight:600;white-space:nowrap}.topology-map-2d{position:relative;width:100%;height:100%;min-height:560px;overflow:hidden;background:radial-gradient(circle at 18% 16%,rgba(53,167,255,.16),transparent 32%),radial-gradient(circle at 74% 72%,rgba(68,240,120,.08),transparent 30%),linear-gradient(145deg,#081726,#04101d);cursor:grab}.topology-map-2d:active{cursor:grabbing}.topology-svg{width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none}.map-toolbar{position:absolute;z-index:6;left:18px;top:18px;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid rgba(126,184,224,.18);border-radius:999px;background:#030d18c7;box-shadow:0 16px 40px #00000042;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.map-toolbar span{padding:0 9px;color:#83a4bd;font-size:12px}.map-toolbar button{border:1px solid rgba(126,184,224,.14);border-radius:999px;padding:8px 11px;background:#0b1f32d1;color:#b7cee1;cursor:pointer}.map-toolbar button:hover,.map-toolbar button.active{color:#fff;border-color:#53b4ff73;background:#1287df57}.map-toolbar button:disabled{opacity:.38;cursor:not-allowed}.map-title{fill:#e8f5ff;font:700 28px Space Grotesk,IBM Plex Sans,sans-serif;letter-spacing:-.03em}.map-subtitle{fill:#8fa9bd;font:500 14px Space Grotesk,IBM Plex Sans,sans-serif}.focused-shell{fill:#061422bd;stroke:#7eb8e02e;stroke-width:1;filter:drop-shadow(0 24px 60px rgba(0,0,0,.28))}.focused-shell.healthy{stroke:#44f0784d}.focused-shell.warning{stroke:#ffb34761}.focused-shell.critical{stroke:#ff4c6380}.map-foreign-card{width:100%;height:100%;overflow:hidden;pointer-events:auto}.map-host-card{width:100%;height:100%;padding:18px;display:grid;gap:14px;align-content:start;text-align:left;color:#e8f5ff;border:1px solid rgba(126,184,224,.18);border-radius:26px;background:linear-gradient(145deg,#102b44eb,#05121fe6),radial-gradient(circle at 85% 0%,rgba(83,180,255,.14),transparent 35%);box-shadow:inset 0 1px #ffffff0d,0 20px 50px #0003;cursor:pointer}.map-host-card:hover{transform:translateY(-2px);border-color:#53b4ff6b}.map-host-card.critical{border-color:#ff4c638c;box-shadow:0 0 0 1px #ff4c631f,0 20px 50px #ff4c6314}.map-host-card.warning{border-color:#ffb34770}.map-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:start}.map-card-head strong{display:block;font-size:22px;letter-spacing:-.04em}.map-card-head span{display:block;color:#8fa9bd;font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-card-head b{padding:5px 9px;border-radius:999px;background:#00000040;color:#bde6ff;font-size:11px;font-weight:700;text-transform:uppercase}.map-card-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.map-card-metrics span{padding:10px 9px;border:1px solid rgba(126,184,224,.1);border-radius:14px;background:#0000002e;color:#cde4f6;font-size:12px;text-align:center;white-space:nowrap}.map-worker-strip{display:flex;flex-wrap:wrap;gap:7px;min-height:64px;align-content:flex-start}.map-worker-strip i,.map-worker-strip em{max-width:152px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 9px;border-radius:999px;border:1px solid rgba(126,184,224,.12);background:#0003;color:#a9c0d3;font-style:normal;font-size:12px}.map-worker-strip i.healthy{color:#7dffa7;border-color:#44f0783d}.map-worker-strip i.warning{color:#ffd495;border-color:#ffb3473d}.map-worker-strip i.critical{color:#ff91a0;border-color:#ff4c6352}.map-section-title{margin-bottom:12px;color:#84d9ff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.map-hardware-column,.map-workload-column,.map-dependency-column{height:100%;padding:16px;overflow:hidden;border:1px solid rgba(126,184,224,.14);border-radius:24px;background:#040f1bbd;box-shadow:inset 0 1px #ffffff0a}.map-worker-grid{height:calc(100% - 28px);overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(142px,auto);gap:12px;padding-right:4px}.map-worker-card{min-width:0;min-height:142px;display:grid;grid-template-rows:auto 1fr;gap:10px;padding:12px;color:#e8f5ff;text-align:left;border:1px solid rgba(126,184,224,.14);border-radius:18px;background:#071828c7;cursor:pointer}.map-worker-card:hover{border-color:#53b4ff6b;background:#0a2238d1}.map-worker-card.critical{border-color:#ff4c6375}.map-worker-card.warning{border-color:#ffb3475c}.map-worker-card>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.map-worker-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.map-worker-card b{color:#8fa9bd;font-size:11px;white-space:nowrap}.map-worker-card section{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;overflow:hidden}.map-worker-card span,.map-worker-card em{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 7px;border-radius:999px;border:1px solid rgba(126,184,224,.1);background:#0003;color:#b7cee1;font-style:normal;font-size:11px}.map-worker-card span.healthy{border-color:#44f0782e;color:#9fffc0}.map-worker-card span.warning{border-color:#ffb34738;color:#ffd495}.map-worker-card span.critical{border-color:#ff4c6347;color:#ff9ead}.hardware-rail{height:calc(100% - 26px);display:grid;gap:9px;overflow:auto;padding-right:4px}.hardware-rail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-content:start;padding:11px;border-radius:15px;border:1px solid rgba(126,184,224,.1);background:#0000002e}.hardware-rail-row span{color:#cde4f6;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hardware-rail-row b{font-size:12px;white-space:nowrap}.hardware-rail-row b.healthy{color:#60e181}.hardware-rail-row b.critical{color:#ff8090}.hardware-rail-row small{grid-column:1 / -1;color:#9fb8cd;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hardware-board{height:calc(100% - 28px);overflow:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(96px,auto);gap:10px;padding-right:4px}.hardware-tile{min-width:0;display:grid;gap:4px;align-content:start;padding:11px;border-radius:16px;border:1px solid rgba(126,184,224,.12);background:linear-gradient(145deg,#081c2ddb,#0000002e)}.hardware-tile span{color:#6ed7ff;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.hardware-tile strong{color:#f0f8ff;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hardware-tile small,.hardware-tile em{color:#9fb8cd;font-size:10px;font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis}.hardware-tile.cpu{border-color:#35a7ff38}.hardware-tile.memory{border-color:#7eb8e02e}.hardware-tile.disk{border-color:#ffbf5a33}.hardware-tile.network{border-color:#50f48e33}.hardware-tile.fan,.hardware-tile.sensor{border-color:#8273ff33}.hardware-tile.critical{border-color:#ff4c63a3;background:linear-gradient(145deg,#400c17e6,#00000038)}.hardware-tile.warning{border-color:#ffb34794;background:linear-gradient(145deg,#3a220bd6,#0000002e)}.hardware-tile.unknown{opacity:.78}.dependency-node{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;align-items:center;padding:11px;margin-bottom:10px;border-radius:15px;border:1px solid rgba(126,184,224,.12);background:#0000002e}.dependency-node svg{color:#ffbf5a;grid-row:span 2}.dependency-node span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dependency-node small{color:#8fa9bd;font-size:11px}.dependency-node.critical{border-color:#ff4c6370}.map-alert-list{display:grid;gap:9px;max-height:calc(100% - 28px);overflow:auto;padding-right:4px}.map-alert-list div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border-radius:14px;border:1px solid rgba(255,76,99,.22);background:#ff4c6314}.map-alert-list svg{color:#ff8090}.map-alert-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-alert-list b{color:#ffadba;font-size:11px;white-space:nowrap}.map-edge{fill:none;stroke:#35a7ff;stroke-width:2.4;stroke-linecap:round;opacity:.78;stroke-dasharray:10 8;animation:mapEdgeFlow 1.4s linear infinite;filter:drop-shadow(0 0 8px currentColor)}.map-edge.placement{stroke:#35a7ff}.map-edge.dependency{stroke:#ffbf5a}.map-edge.healthy{opacity:.7}.map-edge.warning{stroke:#ffb347;opacity:.9}.map-edge.critical{stroke:#ff4c63;opacity:1;stroke-width:3}@keyframes mapEdgeFlow{to{stroke-dashoffset:-18}}.map-minimap{position:absolute;right:18px;bottom:18px;width:160px;padding:10px;border:1px solid rgba(126,184,224,.16);border-radius:18px;background:#030d18bd;color:#8fa9bd;font-size:10px;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 16px 42px #0000003d;pointer-events:none}.map-minimap svg{width:100%;height:auto;margin-top:4px}.map-minimap rect{fill:#7eb8e033;stroke:#7eb8e02e}.map-minimap rect.healthy{fill:#44f0785c}.map-minimap rect.warning{fill:#ffb34766}.map-minimap rect.critical{fill:#ff4c6373}.map-minimap rect.selected{stroke:#fff;stroke-width:2}.deck-label{padding:5px 9px;border-radius:999px;background:#030d18b8;border:1px solid rgba(83,180,255,.22);color:#86d7ff;font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none}.node-label{min-width:104px;text-align:center;padding:5px 8px;border-radius:10px;background:#030d18b8;border:1px solid rgba(126,184,224,.18);color:#e8f5ff;box-shadow:0 12px 28px #0003;pointer-events:none}.node-label span{display:block;font-size:9px;color:#68d8ff;letter-spacing:.11em}.node-label strong{display:block;font-size:12px;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-label small{display:block;color:#96afc4;font-size:10px;white-space:nowrap}.node-label.host{min-width:132px}.node-label.worker{min-width:94px;padding:5px 7px;opacity:.9}.node-label.worker strong{max-width:98px;font-size:11px}.node-label.workload{min-width:96px;padding:5px 7px}.node-label.workload strong{font-size:11px;max-width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-label.critical{border-color:#ff4c6399}.node-label.warning{border-color:#ffb34799}.node-label.healthy{border-color:#44f07857}.node-label.selected{transform:scale(1.06)}.detail{overflow:auto;border-radius:24px;border:1px solid rgba(126,184,224,.16);background:linear-gradient(180deg,#0b1f32db,#040d17e0);padding:18px;box-shadow:inset 0 1px #ffffff0a}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid rgba(126,184,224,.12)}.detail-header h2{margin:4px 0}.detail-header small,.detail-header p,.muted{color:#90a9bd}.status-dot{width:14px;height:14px;min-width:14px;max-width:14px;min-height:14px;max-height:14px;flex:0 0 14px;align-self:center;aspect-ratio:1 / 1;border-radius:50%;background:#7894ad;box-shadow:0 0 20px currentColor}.status-dot.healthy{background:#44f078;color:#44f078}.status-dot.warning{background:#ffb347;color:#ffb347}.status-dot.critical{background:#ff4c63;color:#ff4c63}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.info{padding:12px;border-radius:14px;background:#0000002e;border:1px solid rgba(126,184,224,.1)}.info svg{width:18px;color:#62c8ff}.info span{display:block;color:#8fa9bd;font-size:12px;margin-top:5px}.info strong{display:block;margin-top:3px;font-size:14px;overflow-wrap:anywhere}.detail h3{margin:20px 0 10px}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.detail button.danger{background:#b52f45}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.tabs button{border:1px solid rgba(126,184,224,.14);background:#0000002e;color:#9fb8cd;border-radius:999px;padding:8px 10px;cursor:pointer}.tabs button.active{color:#fff;background:#1287df4d;border-color:#53b4ff61}.empty-detail{min-height:180px;display:grid;place-items:center;text-align:center;color:#91aabe}.list{display:grid;gap:10px}.alert,.action-item,.row,.section-line{display:flex;gap:10px;padding:10px;border-radius:14px;background:#0000002e;border:1px solid rgba(126,184,224,.1)}.table-list{display:grid;gap:10px;min-width:0;max-height:100%}.row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(90px,.7fr) auto;align-items:center;text-align:left;color:#dbeeff;min-width:0}.panel button.row,button.row,.table-list .row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(90px,.7fr) auto;justify-content:initial;align-items:center;gap:10px;padding:10px;background:#0000002e;color:#dbeeff;border:1px solid rgba(126,184,224,.1);border-radius:14px}.panel button.row:hover,button.row:hover{background:#1287df29}.row.active{border-color:#53b4ff73;background:#1287df2e}.row.nested{margin-left:18px;width:calc(100% - 18px);opacity:.9}.row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.row small{color:#8fa9bd;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row b{color:#bfe2ff;font-size:12px;font-weight:600;justify-self:end;white-space:nowrap}.row svg{flex:0 0 auto}.section-line{align-items:center;justify-content:space-between}.section-line span{flex:1}.disk-card{padding:10px;border-radius:16px;border:1px solid rgba(126,184,224,.12);background:#00000024}.mini-grid{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:8px;margin-top:10px}.mini-grid .metric{min-height:64px;padding:10px}.mini-grid .metric strong{font-size:18px}.alert svg{color:#ffb347;flex:0 0 auto}.alert strong{font-size:13px}.alert p{margin:3px 0 0;color:#9bb3c8;font-size:12px}.alert.large{align-items:flex-start}.alert.large strong{font-size:15px}.compact-list .action-item{align-items:center;justify-content:space-between;font-size:12px;color:#b7cee1}.action-item{flex-wrap:wrap;align-items:center}.action-item span{flex:1}.action-item pre,.diagnostic{width:100%;max-height:220px;overflow:auto;margin:8px 0 0;padding:10px;border-radius:12px;background:#00000052;color:#b7cee1;white-space:pre-wrap;font-size:11px}.discovery-run{display:grid;gap:8px}.network-map-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.network-device-card,.network-link-row,.db-table-card{min-width:0;padding:11px;border-radius:16px;border:1px solid rgba(126,184,224,.12);background:#00000029}.network-device-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.network-device-card div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 9px;align-items:center}.network-device-card strong,.db-table-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-device-card small{grid-column:2;color:#8fa9bd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-device-card b,.network-link-row b{color:#86d7ff;font-size:11px;white-space:nowrap}.network-link-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center}.network-link-row.unlinked{border-style:dashed;opacity:.82}.network-link-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-link-row small{color:#8fa9bd;white-space:nowrap}.db-table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}.db-table-card{display:grid;gap:5px}.db-table-card small,.db-table-card span{color:#8fa9bd;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-topology-list{display:grid;gap:10px;margin-top:14px}.host-topology-list h3{margin:4px 0}.worker-card{padding:11px;border-radius:16px;border:1px solid rgba(126,184,224,.12);background:#00000029}.worker-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin-bottom:8px}.worker-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-card-head small{color:#8fa9bd;white-space:nowrap}.app-chip-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 0;color:#cfe5f7;font-size:12px}.app-chip-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-chip-row b{color:#8fa9bd;font-size:11px}.tight{margin-top:14px;font-size:12px}button:disabled{opacity:.55;cursor:not-allowed}
