.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.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.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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{--primary:#1769aa;--navy:#102a43;--text:#1d2939;--muted:#667085;--border:#e4e7ec;--canvas:#f5f7fa;--success:#22a06b;--warning:#f79009;--danger:#f04438}*{box-sizing:border-box}html,body{background:var(--canvas);min-width:1180px;min-height:100%;color:var(--text);margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button,input{font:inherit}.app-boot{color:#667085;background:#f5f7fa;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;display:flex}.app-boot-mark{color:#fff;background:#1769aa;border-radius:10px;place-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:grid;box-shadow:0 8px 20px #1769aa33}.app-shell{min-height:100vh}.app-sider{z-index:20;inset:0 auto 0 0;overflow:hidden auto;box-shadow:2px 0 10px #102a431f;position:fixed!important}.app-sider+.ant-layout{margin-left:224px;transition:margin-left .2s}.ant-layout:has(>.app-sider.ant-layout-sider-collapsed)>.ant-layout{margin-left:72px}.app-logo{color:#fff;white-space:nowrap;border-bottom:1px solid #ffffff17;align-items:center;gap:11px;height:64px;padding:0 17px;display:flex}.brand-mark{color:#fff;background:#1677ff;border-radius:9px;flex:none;place-items:center;width:38px;height:38px;font-size:21px;display:grid;box-shadow:0 5px 14px #1677ff47}.app-logo b{letter-spacing:.4px;font-size:16px;display:block}.app-logo span{color:#9fb3c8;letter-spacing:1.4px;margin-top:1px;font-size:9px;display:block}.env-badge{color:#fff;background:#ffffff0d;border:1px solid #ffffff14;border-radius:7px;align-items:center;gap:9px;min-height:46px;margin:14px 12px 8px;padding:9px 10px;display:flex}.env-badge>.anticon{color:#8bb8e8;margin:auto}.env-badge div{flex:1;min-width:0}.env-badge b,.env-badge small{display:block}.env-badge b{font-size:12px}.env-badge small{color:#9fb3c8;margin-top:2px;font-size:10px}.env-badge .ant-tag{margin:0;font-size:10px;line-height:18px}.env-dot{background:#32d583;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #32d5831f}.app-menu{padding-bottom:24px;border-inline-end:none!important}.app-menu .ant-menu-item-group-title{letter-spacing:.8px;font-size:10px;color:#7290aa!important;padding:15px 22px 5px!important}.app-menu .ant-menu-item{color:#c9d8e7;border-radius:6px;width:calc(100% - 20px);height:40px;margin:3px 10px;line-height:40px}.app-menu .ant-menu-item-selected{color:#fff;box-shadow:inset 3px 0 #64b5f6}.menu-label{justify-content:space-between;align-items:center;width:100%;display:flex}.app-header{z-index:15;border-bottom:1px solid var(--border);align-items:center;gap:12px;height:64px;padding:0 24px 0 12px;display:flex;position:sticky;top:0;box-shadow:0 1px 4px #1018280a}.header-spacer,.filter-spacer{flex:1}.global-search{background:#f8fafc;border-color:#e4e7ec;width:270px}.user-button{align-items:center;gap:9px;height:48px!important;display:flex!important}.user-avatar{font-weight:700;color:#1769aa!important;background:#dbeafe!important}.user-button span{text-align:left;line-height:1.2}.user-button b,.user-button small{display:block}.user-button small{color:var(--muted);margin-top:3px;font-size:10px}.app-content{min-height:calc(100vh - 64px);padding:22px 24px 36px;overflow:hidden}.page-heading{justify-content:space-between;align-items:flex-end;margin-bottom:18px;display:flex}.page-heading h3{color:var(--text);margin:0 0 4px!important;font-size:22px!important;font-weight:650!important}.ant-card{border:1px solid #eef0f3;box-shadow:0 1px 2px #10182806}.ant-card .ant-card-head{border-bottom-color:#eef0f3;min-height:50px;padding:0 18px}.ant-card .ant-card-body{padding:18px}.metric-card{height:146px;overflow:hidden}.metric-card .ant-card-body{padding:18px 20px;position:relative}.metric-top{align-items:center;gap:10px;display:flex}.metric-icon{border-radius:8px;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.metric-card .ant-statistic{margin:5px 0 1px}.metric-hint{font-size:12px}.section-row{margin-top:16px}.chart-card{height:354px}.chart-card .ant-card-body{padding-bottom:12px}.instance-health{justify-content:center;align-items:center;gap:25px;height:180px;display:flex}.instance-health .ant-progress-text strong{font-size:20px;display:block}.instance-health .ant-progress-text small{color:var(--muted);font-size:10px;display:block}.health-breakdown{gap:12px;min-width:115px;display:grid}.health-breakdown div{color:var(--muted);align-items:center;gap:8px;display:flex}.health-breakdown b{color:var(--text);margin-left:auto}.dot{border-radius:50%;width:8px;height:8px}.dot.healthy,.topology-legend i.healthy{background:var(--success)}.dot.warning,.topology-legend i.warning{background:var(--warning)}.dot.critical,.topology-legend i.critical{background:var(--danger)}.dot.offline,.topology-legend i.offline{background:#98a2b3}.mini-stat-row{border-top:1px solid #f0f1f3;grid-template-columns:repeat(3,1fr);padding-top:14px;display:grid}.mini-stat-row.four{grid-template-columns:repeat(4,1fr);margin-top:8px}.mini-stat-row .ant-statistic{text-align:center}.mini-stat-row .ant-statistic-title{font-size:12px}.mini-stat-row .ant-statistic-content{font-size:17px}.success-text{color:var(--success)!important}.warning-text{color:#dc6803!important}.danger-text{color:var(--danger)!important}.muted-text{color:var(--muted)}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f0f7ff!important}.alert-list-item .ant-list-item-meta-avatar{min-width:48px}.alert-list-item .ant-list-item-meta-description{font-size:12px}.filter-card{margin-bottom:14px}.filter-card .ant-card-body,.topology-toolbar .ant-card-body{padding:13px 16px}.filter-row,.topology-toolbar .ant-card-body{align-items:center;gap:10px;display:flex}.table-card .ant-card-body{padding:0}.table-card .ant-table-cell{white-space:nowrap}.ant-table-thead>tr>th{color:#475467;font-size:12px;font-weight:600;background:#f8fafc!important}.status-tag{border:none;padding-inline:6px}.status-tag .ant-badge{margin-right:4px}.service-cell{align-items:center;gap:10px;display:flex}.service-cell>div:last-child{min-width:0}.service-cell .ant-typography{font-size:12px;display:block}.service-avatar{font-weight:700;color:#1769aa!important;background:#eaf3fc!important}.name-link{text-align:left;font-weight:600;height:auto!important;padding:0!important}.resource-cell{color:var(--muted);gap:12px;font-size:12px;display:flex}.service-grid-card{cursor:pointer;transition:all .18s}.service-grid-card:hover{border-color:#b8d6f1;transform:translateY(-2px);box-shadow:0 8px 20px #1769aa17}.service-grid-top{justify-content:space-between;align-items:flex-start;display:flex}.service-grid-stats{border-block:1px solid #f0f1f3;grid-template-columns:repeat(3,1fr);margin:16px 0;padding:12px 0;display:grid}.service-grid-stats span{color:var(--muted);font-size:12px}.service-grid-stats b{color:var(--text);margin-top:3px;font-size:14px;display:block}.back-button{margin:-6px 0 10px -10px}.service-hero{border:1px solid var(--border);background:#fff;border-bottom:0;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:19px 22px;display:flex}.hero-main{align-items:center;gap:15px;display:flex}.service-large-icon{color:#fff;background:#1769aa;border-radius:10px;flex:none;place-items:center;width:52px;height:52px;font-size:23px;font-weight:700;display:grid}.service-large-icon.small{width:44px;height:44px;font-size:19px}.service-hero h2{margin:0!important;font-size:24px!important}.hero-tags{margin-top:9px;display:flex}.service-meta{border-radius:0 0 8px 8px}.service-meta .ant-card-body{padding:14px 22px}.detail-tabs{margin-top:16px}.detail-tabs>.ant-card-body{padding:0}.detail-tabs .ant-tabs-nav{margin-bottom:0;padding:0 20px}.detail-tab-content{background:#f8fafc;padding:16px}.inner-card{height:100%;box-shadow:none}.health-score{text-align:center;flex-direction:column;align-items:center;padding:8px 0 20px;display:flex}.health-score h4{margin:14px 0 2px!important}.dep-icon{color:#1769aa;background:#eaf3fc;border-radius:8px;place-items:center;width:36px;height:36px;display:grid}.dep-icon.danger{color:var(--danger);background:#fee4e2}.topology-toolbar{margin-bottom:14px}.topology-legend{color:var(--muted);align-items:center;gap:16px;margin-left:auto;font-size:12px;display:flex}.topology-legend span{align-items:center;gap:5px;display:flex}.topology-legend i{border-radius:50%;width:8px;height:8px}.topology-card .ant-card-body{padding:0;position:relative}.topology-canvas{height:620px}.topology-summary{z-index:5;border:1px solid var(--border);background:#fffffff2;border-radius:7px;gap:24px;padding:10px 14px;display:flex;position:absolute;top:16px;left:16px;box-shadow:0 4px 12px #1018280f}.topology-summary .ant-statistic-title{font-size:11px}.topology-summary .ant-statistic-content{font-size:18px}.topology-node{border:1px solid #d0d5dd;border-left:4px solid var(--success);background:#fff;border-radius:8px;width:210px;padding:12px 14px;box-shadow:0 4px 10px #10182814}.topology-node:hover{box-shadow:0 7px 18px #1769aa26}.topology-node.topology-warning{border-left-color:var(--warning)}.topology-node.topology-critical{border-left-color:var(--danger)}.topology-node.topology-offline{opacity:.8;border-left-color:#98a2b3}.topology-node-head,.topology-node-meta,.topology-node-metrics{justify-content:space-between;align-items:center;display:flex}.topology-node-head{justify-content:flex-start;gap:7px;font-size:13px}.topology-status{border-radius:50%;width:7px;height:7px}.topology-node-meta{color:var(--muted);margin:8px 0;font-size:10px}.topology-node-metrics{border-top:1px solid #f0f1f3;padding-top:8px;font-size:10px}.react-flow__edge-textbg{rx:3px;ry:3px}.react-flow__controls{border:1px solid var(--border);box-shadow:none}.react-flow__minimap{border:1px solid var(--border);border-radius:5px}.drawer-title{align-items:center;gap:11px;margin-bottom:20px;display:flex}.drawer-title h4,.alert-detail-title h4{margin:0!important}.drawer-title .status-tag{margin-left:auto}.drawer-metric{justify-content:space-between;align-items:center;display:flex}.node-drawer h5{margin-top:24px}.risk-notice{color:#7a2e0e;background:#fffaeb;border:1px solid #fedf89;border-radius:7px;margin:0 0 18px;padding:12px 14px}.risk-notice p{margin:4px 0 0;font-size:12px}.alert-stat{border-top:3px solid}.alert-stat.critical{border-top-color:var(--danger)}.alert-stat.major{border-top-color:var(--warning)}.alert-stat.pending{border-top-color:#7a5af8}.alert-stat.processing{border-top-color:#1677ff}.alert-stat .ant-statistic-content{font-size:27px}.alert-stat>.ant-card-body>span{color:var(--muted);font-size:12px}.alert-detail-title{align-items:center;gap:10px;display:flex}.page-alert{margin-bottom:16px}.config-list-item{cursor:pointer;border-inline-start:3px solid #0000;margin:0 -18px;padding:12px 18px!important}.config-list-item:hover{background:#f8fafc}.config-list-item.selected{background:#f0f7ff;border-inline-start-color:#1769aa}.config-meta{margin-bottom:16px}.code-panel{color:#d0d5dd;background:#101828;border:1px solid #344054;border-radius:7px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.code-line{border-bottom:1px solid #1d2939;grid-template-columns:1fr 1.2fr;padding:8px 14px;display:grid}.code-line:last-child{border-bottom:0}.code-line b{color:#d1e9ff}.code-line .anticon{color:#fdb022;margin-right:7px}.log-card .ant-card-body{padding:0}.log-toolbar{color:#d0d5dd;background:#1d2939;border-radius:7px 7px 0 0;justify-content:space-between;align-items:center;height:45px;padding:0 14px;display:flex}.terminal-dot{border-radius:50%;width:10px;height:10px}.terminal-dot.red{background:#f04438}.terminal-dot.yellow{background:#fdb022}.terminal-dot.green{background:#32d583}.log-viewer{color:#d0d5dd;background:#101828;border-radius:0 0 7px 7px;min-height:390px;padding:10px 0;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.log-line{grid-template-columns:176px 55px 150px 100px 1fr;gap:10px;padding:5px 14px;display:grid}.log-line:hover{background:#1d2939}.log-time{color:#98a2b3}.log-level{font-weight:700}.log-level.error{color:#f97066}.log-level.warn{color:#fdb022}.log-level.info{color:#53b1fd}.log-service{color:#84adff}.log-line button{color:#b692f6;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.log-empty{text-align:center;color:#667085;padding:80px}.role-icon{color:#1769aa;background:#eaf3fc;border-radius:8px;padding:10px;font-size:18px}.readonly-banner{color:#175cd3;background:#eff8ff;border:1px solid #b2ddff;border-radius:7px;align-items:center;gap:11px;margin-bottom:14px;padding:11px 14px;display:flex}.readonly-banner>.anticon{font-size:19px}.readonly-banner>div{flex:1}.readonly-banner b,.readonly-banner span{display:block}.readonly-banner span{color:#475467;margin-top:2px;font-size:12px}.readonly-banner .ant-tag{margin:0}.resource-summary-row{margin-bottom:14px}.resource-summary-row .ant-card-body{padding:15px 18px}.resource-summary-row .ant-statistic-title{font-size:12px}.resource-summary-row .ant-statistic-content{font-size:24px}.resource-summary-row .ant-statistic-content-prefix{color:#1769aa;margin-right:8px;font-size:19px}.resource-tabs-card>.ant-card-body{padding:0}.resource-tabs-card .ant-tabs-nav{margin:0;padding:0 18px}.resource-tabs-card .ant-tabs-content-holder,.resource-tabs-card .ant-table-wrapper{padding:0}.resource-name-cell{align-items:center;gap:10px;display:flex}.resource-name-cell>div:last-child{min-width:0}.resource-name-cell .ant-typography{text-overflow:ellipsis;max-width:190px;font-size:11px;display:block;overflow:hidden}.resource-type-icon{color:#1769aa;background:#eaf3fc;border-radius:8px;flex:none;place-items:center;width:36px;height:36px;font-size:17px;display:grid}.resource-type-icon.large{width:48px;height:48px;font-size:22px}.resource-progress{align-items:center;gap:8px;min-width:100px;display:flex}.resource-progress .ant-progress{width:65px;margin:0}.resource-progress>span{min-width:34px;font-size:12px}.relation-insight{background:#f8fafc;border:1px solid #e4e7ec;border-radius:7px;align-items:flex-start;gap:12px;margin:16px 18px;padding:13px 15px;display:flex}.relation-insight>.anticon{color:#1769aa;margin-top:2px;font-size:20px}.relation-insight b,.relation-insight span{display:block}.relation-insight span{color:#667085;margin-top:3px;font-size:12px}.resource-detail-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.resource-detail-head>div:nth-child(2){flex:1;min-width:0}.resource-detail-head h4{margin:0!important}.resource-detail-head .ant-tag{margin:0}.resource-description{color:#475467;background:#f8fafc;border-radius:6px;padding:11px 13px}.resource-metric-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 22px;display:grid}.resource-metric-grid>div{background:#fff;border:1px solid #e4e7ec;border-radius:7px;padding:11px}.resource-metric-grid>div>span:first-child{color:#667085;margin-bottom:7px;font-size:11px;display:block}.resource-metric-grid .resource-progress{min-width:0}.resource-metric-grid .resource-progress .ant-progress{flex:1;width:auto}.resource-metric-value{font-size:18px}.resource-detail-head~h5{margin:22px 0 10px!important}.relation-list{gap:8px;display:grid}.relation-list>div{border:1px solid #e4e7ec;border-radius:6px;grid-template-columns:72px 62px 1fr auto;align-items:center;gap:8px;padding:9px 10px;font-size:12px;display:grid}.relation-list .ant-tag{margin:0}.login-page{background:#fff;grid-template-columns:58% 42%;min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:#0b2942;align-items:center;min-height:700px;padding:8vh 8vw;display:flex;position:relative;overflow:hidden}.login-brand-panel:before{content:"";border:90px solid #53b1fd12;border-radius:50%;width:560px;height:560px;position:absolute;top:-190px;right:-210px}.login-brand-panel:after{content:"";border:60px solid #53b1fd0f;border-radius:50%;width:280px;height:280px;position:absolute;bottom:-120px;left:-160px}.login-brand-content{z-index:1;max-width:600px;position:relative}.brand-mark.large{width:52px;height:52px;margin-bottom:28px;font-size:28px}.login-brand-content h1{letter-spacing:1px;color:#b9d9f3!important;margin:0 0 6px!important;font-size:19px!important}.login-brand-content h2{color:#fff!important;margin:0 0 18px!important;font-size:36px!important}.login-brand-content>p{color:#b8ccdc;max-width:530px;font-size:16px;line-height:1.8}.login-feature-grid{grid-template-columns:1fr 1fr;gap:26px 32px;margin-top:46px;display:grid}.login-feature-grid>div{align-items:flex-start;gap:13px;display:flex}.login-feature-grid .anticon{color:#84c5f4;background:#53b1fd1a;border-radius:8px;padding:9px;font-size:20px}.login-feature-grid b,.login-feature-grid small{display:block}.login-feature-grid b{margin-bottom:4px}.login-feature-grid small{color:#9fb3c8}.login-platform-status{color:#8eaabe;gap:8px;font-size:12px;display:flex;position:absolute;bottom:5vh;left:8vw}.login-form-panel{justify-content:center;align-items:center;padding:50px;display:flex;position:relative}.login-form-card{width:390px}.login-form-card h2{margin:0 0 5px!important;font-size:28px!important}.login-form-card>p{margin-bottom:28px}.login-form-card label{margin:18px 0 7px;font-size:13px;font-weight:600;display:block}.login-form-card .ant-btn-primary{height:46px;margin-top:24px;font-weight:600}.login-error{color:var(--danger);margin-top:10px;font-size:12px}.demo-account{color:#475467;background:#f5faff;border:1px solid #d1e9ff;border-radius:6px;justify-content:center;align-items:center;margin-top:20px;padding:10px 12px;font-size:12px;display:flex}.login-note{text-align:center;margin-top:12px;font-size:11px;display:block}.login-footer{color:#98a2b3;font-size:11px;position:absolute;bottom:24px}.mobile-brand{display:none}@media (width<=1366px){.app-content{padding:18px}.global-search{width:230px}.metric-card{height:138px}.login-brand-panel{padding:7vh 6vw}.login-platform-status{left:6vw}.login-feature-grid{gap:20px}.topology-canvas{height:560px}}@media (width<=1180px){.login-page{grid-template-columns:1fr;min-width:auto}.login-brand-panel{display:none}.login-form-panel{min-height:100vh}.mobile-brand{color:#1769aa;align-items:center;gap:8px;margin-bottom:28px;font-weight:700;display:flex}.mobile-brand .anticon{font-size:24px}}
