@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.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 .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.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-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.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.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.ripple-container{overflow:hidden;position:relative}.ripple-container .ripple{animation:ripple-effect .42s ease-out;background:#00000026;border-radius:50%;pointer-events:none;position:absolute;transform:scale(0)}@keyframes ripple-effect{to{opacity:0;transform:scale(3.2)}}.rack-node{background:#fafbfc;border:1px solid #d3d7df;border-radius:10px;box-sizing:border-box;font-size:12px;position:relative}.rack-title{background:linear-gradient(90deg,#b7d0ff,#e8ffc2);border-bottom:1px solid #d6d9df;border-top-left-radius:9px;border-top-right-radius:9px;color:#1f2937;font-weight:600;height:36px;line-height:36px;padding:0 12px}.rack-info{background:#fff;border-bottom:1px solid #e1e4ea;color:#4b5563;font-size:11px;padding:8px 12px}.rack-ru-labels{background:#f7f8fa;border-right:1px solid #e0e3ea;display:flex;flex-direction:column;left:0;position:absolute;top:80px;width:40px;z-index:1}.rack-ru-label{align-items:center;border-bottom:1px dotted #d7dce3;color:#6b7280;display:flex;font-size:10px;justify-content:center}.rack-ru-bg{background:repeating-linear-gradient(180deg,#0000 0,#0000 23px,#e6e8ec 0,#e6e8ec 24px);pointer-events:none;position:absolute;right:0;z-index:0}.server-node,.switch-node{box-shadow:0 1px 2px #0000000f;color:#1f2937;cursor:pointer;font-size:12px;overflow:hidden;position:relative;transition:all .15s ease-out;width:180px}.switch-node{align-items:center;background:#ffbf75;border-radius:6px;display:flex;height:22px;justify-content:space-between;padding:0 10px}.switch-node:hover{background:#ffaa2b}.switch-title{font-weight:500;line-height:1.2;overflow:visible;text-overflow:clip;white-space:normal;word-break:break-all}.switch-ip{color:#6b7280;font-size:10px}.server-node{align-items:center;background:#e8e7e3;border-radius:6px;display:flex;height:22px;justify-content:space-between;padding:0 10px}.server-node:hover{background:#d8d7d4}.server-title{font-weight:500;line-height:1.2;overflow:visible;text-overflow:clip;white-space:normal;word-break:break-all}.server-ip{color:#6b7280;font-size:10px}.react-flow__node-server.selected .server-node,.react-flow__node-switch.selected .switch-node{background:#e0ecff;box-shadow:0 0 0 2px #2563ebe6}.pod-wires-node{align-items:center;background:#eee;border-radius:16px;box-sizing:border-box;color:#1f2937;display:flex;flex-direction:column;font-size:14px;gap:4px;height:80px;justify-content:flex-start;padding:8px 14px 10px}.pod-wires-title{font-weight:600}.pod-wires-subtitle{color:#4b5563;font-weight:400;opacity:.85}.react-flow__edge.edge-base .react-flow__edge-path,.react-flow__edge.edge-base path{stroke:#797b7d;stroke-width:1;opacity:.8;transition:stroke-width .2s,stroke .2s,opacity .2s}.react-flow__edge.edge-highlighted .react-flow__edge-path,.react-flow__edge.edge-highlighted path,.react-flow__edge.edge-highlighted.selected .react-flow__edge-path,.react-flow__edge.edge-highlighted.selected path,.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selected path{stroke:#2563eb!important;stroke-width:3;opacity:1;z-index:1000}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:#1e293b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f5f966;border-radius:4px}::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:4px;-webkit-transition:all .2s ease;transition:all .2s ease}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}.content-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000001f;border-radius:12px;margin:16px 0;padding:24px;transition:all .3s ease}a{color:#3b82f6;text-decoration:none;transition:color .2s ease}a:hover{color:#2563eb}::selection{background:#3b82f64d;color:#1e293b}.MuiCard-root{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000001f;transition:all .3s ease}.chart-container{background:#ffffffe6;border:1px solid #0000001f;border-radius:12px;height:300px;padding:1rem;width:100%}@keyframes gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.gradient-bg{animation:gradient 15s ease infinite;background:linear-gradient(-45deg,#0070f3,#7928ca,#0070f3);background-size:200% 200%}.topology-container{background:#ffffffe6;border:1px solid #0000001f;border-radius:12px;padding:1rem}.topology-node{cursor:pointer}.topology-link,.topology-node{transition:all .3s ease}@media (max-width:600px){.content-section{margin:1rem 0;padding:1rem}.chart-container{height:200px}}
/*# sourceMappingURL=main.6cdb9495.css.map*/