.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
:root{--app-bg:#f5f5f5;--app-surface:#fff;--app-border:#f0f0f0;--app-text:#000000e0;--app-text-secondary:#00000073;--app-primary:#1677ff;--app-shadow:0 1px 2px #0000000a;--mono:"SFMono-Regular", "Cascadia Code", Consolas, monospace;--paper:var(--app-bg);--surface:var(--app-surface);--ink:var(--app-text);--text-2:var(--app-text-secondary);--muted:var(--app-text-secondary);--dim:var(--app-text-secondary);--grey-1:var(--app-bg);--grey-2:var(--app-border);--grey-3:#8c8c8c;--hairline:1px solid var(--app-border);--hairline-subtle:1px solid var(--app-border);--swiss-blue:var(--app-primary);--positive:#52c41a;--warning:#faad14;--danger:#ff4d4f;--sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility}[data-theme=dark]{--app-bg:#000;--app-surface:#141414;--app-border:#303030;--app-text:#ffffffd9;--app-text-secondary:#ffffff73;--app-shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}html,body{background:var(--app-bg);max-width:100%;overflow-x:clip}body{color:var(--app-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5}button,input,textarea,select{font:inherit}.mono{font-family:var(--mono);font-feature-settings:"tnum"}.ant-app,.ant-layout{min-height:100%}.app-loading{background:var(--app-bg);place-items:center;min-height:100dvh;display:grid}.login-shell{background:var(--app-bg);flex-direction:column;justify-content:center;align-items:center;gap:32px;min-height:100dvh;padding:48px 24px;display:flex}.login-intro{text-align:center;width:min(560px,100%)}.login-kicker{font-size:12px;font-weight:600;color:var(--app-primary)!important}.login-intro h1.ant-typography{margin:12px 0;font-size:clamp(40px,7vw,64px);line-height:1.05}.login-intro h1 span{color:var(--app-primary)}.login-intro>p.ant-typography{max-width:520px;margin:0 auto;font-size:16px}.login-capabilities{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px;display:flex}.login-capabilities span{border:1px solid var(--app-border);color:var(--app-text-secondary);background:var(--app-surface);border-radius:999px;padding:5px 10px;font-size:12px}.login-card{width:min(420px,100%);box-shadow:var(--app-shadow)}.login-card .ant-card-body{padding:28px}.login-card .login-help.ant-typography{margin:16px 0 0;font-size:12px}@media (max-width:560px){.login-shell{align-items:stretch;padding:32px 16px}.login-card{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.console-layout{background:var(--app-bg);min-height:100dvh;overflow-x:clip}.console-main-layout{min-width:0;overflow-x:clip;background:var(--app-bg)!important}.console-sider{z-index:101;border-right:1px solid var(--app-border);height:100dvh;top:0;overflow:hidden auto;background:var(--app-surface)!important;position:sticky!important}.console-sider .ant-layout-sider-children{flex-direction:column;padding:16px 12px;display:flex}.console-sider-brand.ant-btn{width:100%;height:auto;min-height:52px;color:var(--app-text);text-align:left;white-space:normal;justify-content:flex-start;padding:8px 12px;overflow:hidden}.console-sider-brand.ant-btn .anticon{color:var(--app-primary);font-size:20px}.console-sider-brand-copy{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.3;display:flex}.console-sider-brand-copy strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.console-sider-brand-copy small{color:var(--app-text-secondary);font-size:11px;font-weight:400}.console-side-menu.ant-menu{background:0 0;flex:1;min-width:0;margin-top:16px;border-inline-end:0!important}.console-sider-status{border-top:1px solid var(--app-border);flex-direction:column;align-items:flex-start;gap:10px;margin-top:16px;padding:16px 12px 4px;display:flex}.console-mobile-navigation .ant-drawer-body{flex-direction:column;padding:12px;display:flex}.console-mobile-navigation .console-side-menu{flex:1}.console-header{z-index:100;border-bottom:1px solid var(--app-border);height:56px;box-shadow:var(--app-shadow);justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0;background:var(--app-surface)!important;padding-inline:24px!important}.console-header-leading{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.console-page-context{flex-direction:column;min-width:0;line-height:1.3;display:flex}.console-page-context small{color:var(--app-text-secondary);font-size:11px}.console-page-context strong{color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.console-header-actions{flex:none}.console-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.console-back.ant-btn{flex:none}.console-content{width:100%;min-width:0;max-width:1600px;margin:0 auto;padding:24px}.console-content>.ant-alert{margin-bottom:16px}.page-loading-skeleton{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;width:100%;max-width:960px;margin:0 auto;padding:24px}.page-loading-skeleton .ant-skeleton{margin-top:16px}.console-page,.network-topology-shell{width:100%;min-width:0}.console-page-heading,.page-heading{min-width:0}.console-page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.console-page-heading .ant-typography{margin-bottom:0}.console-page-heading h2.ant-typography{margin-top:0}.page-heading{margin-bottom:20px}.page-heading .ant-typography{margin-bottom:0}.page-heading h2.ant-typography{margin-top:0}.page-stats{margin-bottom:20px}.page-stats .ant-card,.page-stats .ant-statistic{height:100%}.page-state-card{place-items:center;min-height:240px;display:grid}.overview-heading,.services-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.overview-heading .ant-typography,.services-heading .ant-typography{margin-bottom:0}.overview-panel{height:100%}.overview-panel>.ant-card-body{min-height:260px}.overview-bottom-row{margin-top:16px}.overview-asset-row{cursor:pointer}.overview-asset-row:hover{background:color-mix(in srgb, var(--app-primary) 4%, transparent)}.overview-empty-hint{margin-top:16px}.finding-dot{background:var(--app-text-secondary);border-radius:50%;width:9px;height:9px;margin-top:7px;display:inline-block}.finding-dot-error{background:#ff4d4f}.finding-dot-warning{background:#faad14}.finding-dot-info{background:#1677ff}.gateway-card-native{cursor:pointer;height:100%}.gateway-card-native:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.gateway-card-content{width:100%}.gateway-card-address.ant-typography{margin:0}.topology-page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px;display:flex}.topology-page-heading .ant-typography{margin-bottom:0}.topology-page-heading h2.ant-typography{letter-spacing:-.02em;margin-top:0}.topology-overview-numbers{align-items:center;min-height:48px;display:flex}.topology-overview-number{border-left:1px solid var(--app-border);justify-content:center;align-items:baseline;gap:5px;min-width:72px;padding-inline:18px;display:inline-flex}.topology-overview-number strong{color:var(--app-text);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:25px;font-weight:650}.topology-overview-number small{color:var(--app-text-secondary);font-size:12px}.topology-overview-number.is-danger strong{color:#ff4d4f}.topology-commandbar{border:1px solid var(--app-border);background:var(--app-surface);box-shadow:0 1px 2px color-mix(in srgb, var(--app-text) 4%, transparent);border-radius:10px;grid-template-columns:auto minmax(280px,1fr) auto 144px;align-items:center;gap:12px;margin-bottom:24px;padding:12px;display:grid}.topology-commandbar .topology-device-search{width:100%}.topology-scope-switch{white-space:nowrap}.topology-status-filter{width:144px}.topology-search-option{flex-direction:column;gap:1px;min-width:0;padding-block:2px;display:flex}.topology-search-option .ant-typography{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.network-atlas{flex-direction:column;gap:28px;display:flex}.network-atlas-section{min-width:0}.network-atlas-section-heading{align-items:center;gap:12px;margin-bottom:12px;display:flex}.network-atlas-section-heading .ant-typography{margin:0;display:block}.network-atlas-section-heading h4.ant-typography{font-size:16px}.network-atlas-section-icon{width:36px;height:36px;color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 9%, transparent);border-radius:9px;flex:none;place-items:center;font-size:17px;display:grid}.network-atlas-section.is-warning .network-atlas-section-icon{color:#d48806;background:#faad141f}.network-region-grid{grid-template-columns:repeat(auto-fit,minmax(min(520px,100%),1fr));gap:16px;display:grid}.network-region-card{overflow:hidden}.network-region-card>.ant-card-head{background:color-mix(in srgb, var(--app-bg) 60%, var(--app-surface));min-height:48px;padding-inline:16px}.network-region-card>.ant-card-body{padding:16px}.network-region-title{align-items:center;gap:8px;display:flex}.network-region-title>span:nth-child(2){flex:1}.network-site-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:14px;display:grid}.network-site-card{min-width:0;min-height:226px;color:var(--app-text);text-align:left;border:1px solid var(--app-border);background:var(--app-surface);box-shadow:0 1px 2px color-mix(in srgb, var(--app-text) 3%, transparent);cursor:pointer;border-radius:10px;flex-direction:column;gap:14px;padding:17px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.network-site-card:hover{border-color:color-mix(in srgb, var(--app-primary) 52%, var(--app-border));box-shadow:0 8px 24px color-mix(in srgb, var(--app-text) 9%, transparent);transform:translateY(-2px)}.network-site-card:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.network-site-card-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.network-site-card-heading>div{flex-direction:column;min-width:0;display:flex}.network-site-card-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:650;overflow:hidden}.network-site-card-heading span{color:var(--app-text-secondary);font-size:12px}.network-site-card-heading>.anticon{color:var(--app-text-secondary);transition:transform .16s}.network-site-card:hover .network-site-card-heading>.anticon{color:var(--app-primary);transform:translate(3px)}.network-site-health{background:var(--app-border);border-radius:999px;gap:2px;height:4px;display:flex;overflow:hidden}.network-site-health i{min-width:0}.network-site-health .is-online{background:#52c41a}.network-site-health .is-warning{background:#faad14}.network-site-health .is-offline{background:#ff4d4f}.network-site-health .is-unknown{background:#bfbfbf}.network-site-metrics{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.network-site-metrics span{color:var(--app-text-secondary);flex-direction:column;font-size:11px;display:flex}.network-site-metrics b{color:var(--app-text);font-variant-numeric:tabular-nums;font-size:20px;font-weight:630;line-height:1.25}.network-site-prefixes,.network-site-assets{flex-wrap:wrap;gap:6px;display:flex}.network-site-prefixes span{color:color-mix(in srgb, var(--app-primary) 86%, var(--app-text));background:color-mix(in srgb, var(--app-primary) 8%, transparent);border-radius:5px;padding:3px 7px;font-size:11px}.network-site-prefixes span.is-empty{color:var(--app-text-secondary);background:var(--app-bg)}.network-site-assets{min-height:20px}.network-site-assets span{color:var(--app-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.network-site-assets span:not(:last-child):after{color:var(--app-border);content:"·";margin-left:6px}.network-site-footer{color:var(--app-text-secondary);border-top:1px solid var(--app-border);justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px;font-size:11px;display:flex}.network-site-footer .is-attention{color:#d4380d}.network-site-footer .is-healthy{color:#389e0d}.network-site-footer .is-muted{color:var(--app-text-secondary)}.site-topology-view{min-width:0;container-type:inline-size}.site-topology-breadcrumb{border:1px solid var(--app-border);background:var(--app-surface);border-radius:9px;align-items:center;gap:8px;min-height:48px;margin-bottom:14px;padding:5px 10px 5px 4px;display:flex}.site-topology-breadcrumb .ant-breadcrumb{min-width:0}.site-topology-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;min-width:0;display:grid}.site-context-card{height:clamp(696px,100dvh - 214px,876px);overflow:hidden}.site-context-card>.ant-card-body{flex-direction:column;height:100%;min-height:0;padding:18px;display:flex}.site-context-back{color:var(--app-text-secondary);align-self:flex-start;margin:-6px 0 10px -8px}.site-selected-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.site-selected-heading>div{min-width:0}.site-selected-heading .ant-typography{margin:0;display:block}.site-selected-heading h4.ant-typography{margin-block:3px 1px;font-size:18px}.site-selected-notes.ant-typography{margin:16px 0 0;font-size:12px}.site-selected-facts{border:1px solid var(--app-border);border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));margin-block:18px;display:grid;overflow:hidden}.site-selected-fact{background:color-mix(in srgb, var(--app-bg) 72%, var(--app-surface));flex-direction:column;justify-content:space-between;gap:6px;min-width:0;min-height:70px;padding:11px 12px;display:flex}.site-selected-fact:nth-child(odd){border-right:1px solid var(--app-border)}.site-selected-fact:nth-child(n+3){border-top:1px solid var(--app-border)}.site-selected-fact small{color:var(--app-text-secondary);font-size:10px}.site-selected-fact strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.site-context-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.site-context-heading .ant-typography{margin:0;display:block}.site-context-heading h4.ant-typography{font-size:16px}.site-context-metrics{border-block:1px solid var(--app-border);grid-template-columns:repeat(4,1fr);margin-block:18px;padding-block:14px;display:grid}.site-context-metrics .topology-overview-number{flex-direction:column;align-items:flex-start;gap:0;min-width:0;padding-inline:10px}.site-context-metrics .topology-overview-number:first-child{border-left:0;padding-left:0}.site-context-metrics .topology-overview-number strong{font-size:20px}.site-context-section+.site-context-section{margin-top:18px}.site-context-label.ant-typography{color:var(--app-text-secondary);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600;display:block}.site-prefix-list{overscroll-behavior:contain;flex-direction:column;gap:7px;max-height:190px;display:flex;overflow-y:auto}.site-prefix-row{background:color-mix(in srgb, var(--app-primary) 6%, var(--app-bg));border-radius:7px;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.site-prefix-row span{color:color-mix(in srgb, var(--app-primary) 85%, var(--app-text));font-size:12px}.site-prefix-row small{color:var(--app-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-asset-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow-y:auto}.site-device-section{flex-direction:column;flex:1;min-height:0;display:flex}.site-asset-row{width:100%;color:var(--app-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.site-asset-row:hover,.site-asset-row.is-active{background:color-mix(in srgb, var(--app-primary) 8%, transparent)}.site-asset-row>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.site-asset-row strong,.site-asset-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.site-asset-row strong{font-size:12px;font-weight:600}.site-asset-row small,.site-asset-row>.anticon{color:var(--app-text-secondary);font-size:10px}.site-network-card{min-width:0;overflow:hidden}.network-topology-stage{min-width:0}.site-network-card>.ant-card-head{min-height:58px;padding-inline:16px}.site-network-card>.ant-card-body{padding:0}.site-network-card-title{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.site-network-card-title>div:first-child{flex-direction:column;gap:1px;display:flex}.site-network-card-title>div:first-child span{color:var(--app-text-secondary);font-size:11px;font-weight:400}.site-network-legend{border-bottom:1px solid var(--app-border);flex-wrap:wrap;align-items:center;gap:16px;min-height:38px;padding-inline:16px;display:flex}.site-network-legend>.ant-typography{text-align:right;flex:1;min-width:180px;font-size:12px}.network-topology-canvas{background:color-mix(in srgb, var(--app-bg) 88%, var(--app-surface));height:clamp(600px,100dvh - 310px,780px);min-height:600px;position:relative;overflow:hidden}.network-graphin{width:100%;height:100%;min-height:inherit}.network-topology-stage:fullscreen{background:var(--app-bg);width:100vw;height:100dvh;padding:12px;display:flex}.readable-network-chart{width:100%;height:100%;min-height:inherit;position:relative;overflow:hidden}.readable-network-node,.readable-network-root-node{box-sizing:border-box;border:1px solid var(--app-border);color:var(--app-text);background:var(--app-surface);border-radius:12px;box-shadow:0 8px 24px #00000012}.readable-network-node{font:inherit;cursor:default;text-align:left;flex-direction:column;gap:6px;padding:9px 11px;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}button.readable-network-node{cursor:pointer}button.readable-network-node:hover,.readable-network-node[data-selected=true]{border-color:var(--app-primary);box-shadow:0 9px 28px color-mix(in srgb, var(--app-primary) 18%, transparent);transform:translateY(-1px)}.readable-network-node[data-status=warning],.readable-network-node[data-status=conflict]{border-inline-start:3px solid #faad14}.readable-network-node[data-status=offline]{border-inline-start:3px solid #ff4d4f}.readable-network-node-header,.readable-network-node-header>span,.readable-network-node-footer{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.readable-network-node-header>span{flex:1;justify-content:flex-start}.readable-network-node-header strong,.readable-network-node-header small,.readable-network-node-primary,.readable-network-node-footer small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.readable-network-node-header strong{font-size:12px;font-weight:650}.readable-network-node-header small,.readable-network-node-footer{color:var(--app-text-secondary);font-size:10px}.readable-network-node-primary{color:color-mix(in srgb, var(--app-primary) 72%, var(--app-text));font-size:12px}.readable-network-node-footer{border-top:1px solid var(--app-border);padding-top:5px}.readable-network-node-footer small:first-child{flex:1;min-width:0}.readable-network-root-node{color:var(--app-primary);justify-content:center;align-items:center;gap:10px;display:flex}.readable-network-root-node>.anticon{font-size:20px}.readable-network-root-node>span{flex-direction:column;min-width:0;display:flex}.readable-network-root-node small{color:var(--app-text-secondary);font-size:10px}.readable-network-root-node strong{color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.readable-network-controls{z-index:2;border:1px solid var(--app-border);background:var(--app-surface);border-radius:9px;padding:3px;display:flex;position:absolute;bottom:14px;left:14px;box-shadow:0 8px 24px #00000014}.network-topology-stage:fullscreen .site-network-card{border:0;flex-direction:column;width:100%;height:100%;display:flex}.network-topology-stage:fullscreen .site-network-card>.ant-card-head{flex:none}.network-topology-stage:fullscreen .site-network-card>.ant-card-body{flex-direction:column;flex:1;min-height:0;display:flex}.network-topology-stage:fullscreen .network-topology-canvas{flex:1;height:auto;min-height:0;max-height:none}.topology-line-legend{color:var(--app-text-secondary);align-items:center;gap:8px;font-size:12px;display:inline-flex}.topology-line-legend i{border-top:2px solid;width:28px;height:0;display:inline-block}@container (max-width:820px){.site-topology-layout{grid-template-columns:1fr}.site-context-card{order:2;height:auto}.site-context-card>.ant-card-body{height:auto}.site-asset-list{max-height:360px}}@media (prefers-reduced-motion:reduce){.readable-network-node{transition:none}button.readable-network-node:hover,.readable-network-node[data-selected=true]{transform:none}}.network-map-tooltip{min-width:220px;max-width:360px;color:var(--app-text);flex-direction:column;gap:4px;display:flex}.network-map-tooltip>strong{font-size:13px}.network-map-tooltip>small{color:var(--app-text-secondary);margin-bottom:6px}.network-map-tooltip-row{border-top:1px solid var(--app-border);grid-template-columns:72px minmax(0,1fr);gap:10px;padding-top:5px;font-size:12px;display:grid}.network-map-tooltip-row span{color:var(--app-text-secondary)}.network-map-tooltip-row b{overflow-wrap:anywhere;font-weight:500}.topology-layouting,.topology-empty{z-index:5;background:color-mix(in srgb, var(--app-bg) 75%, transparent);justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.topology-empty-card{min-height:300px}.topology-empty-card>.ant-card-body{place-items:center;min-height:300px;display:grid}.topology-loading{justify-content:center;align-items:center;gap:10px;min-height:240px;display:flex}.spatial-page-heading .ant-space{align-items:center}.spatial-page-heading h2.ant-typography{margin:0}.spatial-commandbar{border:1px solid var(--app-border);background:var(--app-surface);box-shadow:var(--app-shadow);border-radius:10px;grid-template-columns:minmax(190px,.6fr) minmax(280px,1fr) auto auto;align-items:center;gap:12px;margin-bottom:16px;padding:12px;display:grid}.spatial-site-select,.spatial-asset-search{width:100%}.spatial-workspace{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:16px;min-width:0;display:grid}.spatial-canvas-card{min-width:0;position:relative;overflow:hidden}.spatial-canvas-meta{z-index:5;pointer-events:none;position:absolute;top:14px;left:14px}.spatial-canvas-meta .ant-space{border:1px solid color-mix(in srgb, var(--app-border) 86%, transparent);background:color-mix(in srgb, var(--app-surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:7px 9px;box-shadow:0 4px 18px #00000014}.spatial-canvas-meta .ant-tag{margin-inline-end:0}.spatial-canvas{--spatial-floor-start:#f8fbff;--spatial-floor-end:#e3edfb;--spatial-active-start:#f2f8ff;--spatial-active-end:#d7e9ff;--spatial-side:#c6d4e5;--spatial-grid:#aabbd0;--spatial-shadow:#3d516a;background:radial-gradient(circle at 68% 22%, color-mix(in srgb, var(--app-primary) 8%, transparent), transparent 34%), linear-gradient(180deg, var(--app-surface), var(--app-bg));height:clamp(660px,100dvh - 230px,860px);min-height:660px;overflow:hidden}[data-theme=dark] .spatial-canvas{--spatial-floor-start:#263449;--spatial-floor-end:#1a2433;--spatial-active-start:#17375e;--spatial-active-end:#102843;--spatial-side:#101a28;--spatial-grid:#53647a;--spatial-shadow:#000}.spatial-scene{width:100%;height:100%;display:block;overflow:visible}.spatial-scene-backdrop ellipse{fill:color-mix(in srgb, var(--spatial-shadow) 14%, transparent)}.spatial-floor-side{fill:var(--spatial-side);stroke:color-mix(in srgb, var(--spatial-grid) 78%, transparent);stroke-width:1.4px}.spatial-floor-surface{fill:url(#spatial-floor-fill);stroke:color-mix(in srgb, var(--spatial-grid) 88%, var(--app-border));stroke-width:1.8px;cursor:pointer;transition:stroke .16s,filter .16s,opacity .16s}.spatial-svg-floor.is-active .spatial-floor-surface{fill:url(#spatial-floor-active);stroke:var(--app-primary);stroke-width:3px}.spatial-svg-floor.is-placeholder .spatial-floor-surface{opacity:.42;stroke-dasharray:9 7}.spatial-svg-floor.is-placeholder .spatial-floor-side{opacity:.34}.spatial-floor-surface:focus-visible,.spatial-svg-asset:focus-visible .spatial-marker{stroke:var(--app-primary);stroke-width:4px;outline:none}.spatial-floor-grid{pointer-events:none}.spatial-floor-grid line{stroke:var(--spatial-grid);stroke-width:1px;stroke-opacity:.45;stroke-dasharray:5 6}.spatial-floor-caption-object{overflow:visible}.spatial-floor-caption,.spatial-asset-caption{color:var(--app-text);border:1px solid color-mix(in srgb, var(--app-border) 92%, transparent);background:color-mix(in srgb, var(--app-surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;box-shadow:0 5px 18px #0000001f}.spatial-floor-caption{text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;width:160px;min-height:48px;padding:7px 9px}.spatial-floor-caption.is-active{border-color:color-mix(in srgb, var(--app-primary) 72%, var(--app-border));box-shadow:0 6px 22px color-mix(in srgb, var(--app-primary) 16%, transparent)}.spatial-floor-caption.is-placeholder{color:var(--app-text-secondary);background:color-mix(in srgb, var(--app-surface) 78%, transparent);border-style:dashed}.spatial-floor-caption strong,.spatial-floor-caption span{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.spatial-floor-caption strong{font-size:12px;font-weight:650}.spatial-floor-caption span{color:var(--app-text-secondary);font-size:10px}.spatial-svg-asset{cursor:pointer}.spatial-svg-asset>line{stroke:color-mix(in srgb, var(--app-text) 58%, transparent);stroke-width:2px;stroke-linecap:round}.spatial-marker{fill:var(--asset-status);stroke:var(--app-surface);stroke-width:4px;transition:r .14s,stroke-width .14s}.spatial-svg-asset:hover .spatial-marker,.spatial-svg-asset.is-selected .spatial-marker{r:11px;stroke-width:5px}.spatial-marker-halo{fill:color-mix(in srgb, var(--app-primary) 18%, transparent);stroke:var(--app-primary);stroke-width:1.5px;stroke-dasharray:3 3}.spatial-asset-caption{text-align:left;border-radius:7px;flex-direction:column;align-items:stretch;gap:2px;width:142px;min-height:48px;padding:6px 8px}.spatial-asset-caption:hover,.spatial-asset-caption.is-selected{border-color:var(--app-primary)}.spatial-asset-caption.is-selected{background:color-mix(in srgb, var(--app-primary) 10%, var(--app-surface))}.spatial-asset-caption>span{align-items:center;gap:6px;min-width:0;display:flex}.spatial-asset-caption i{border-radius:50%;flex:none;width:7px;height:7px}.spatial-asset-caption strong,.spatial-asset-caption small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spatial-asset-caption strong{font-size:11px;font-weight:650}.spatial-asset-caption small{color:var(--app-text-secondary);padding-left:13px;font-size:9px}.spatial-scene-compact .spatial-asset-caption{display:none}.spatial-scene-compact .spatial-svg-floor:not(.is-active){opacity:.78}.spatial-scene-hint{fill:var(--app-text-secondary);font-size:11px}.spatial-inspector-card{min-width:0}.spatial-inspector-card>.ant-card-body{flex-direction:column;height:100%;padding:18px;display:flex}.spatial-inspector-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.spatial-inspector-heading>div{min-width:0}.spatial-inspector-heading h4.ant-typography,.spatial-selected-asset h5.ant-typography{margin:2px 0 0}.spatial-inspector-heading>.anticon{width:34px;height:34px;color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 10%, transparent);border-radius:8px;flex:none;place-items:center;font-size:17px;display:grid}.spatial-floor-list{flex-direction:column;gap:4px;display:flex}.spatial-floor-row{width:100%;color:var(--app-text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.spatial-floor-row:hover,.spatial-floor-row.is-active{border-color:color-mix(in srgb, var(--app-primary) 32%, var(--app-border));background:color-mix(in srgb, var(--app-primary) 7%, transparent)}.spatial-floor-row>span:first-child{flex-direction:column;min-width:0;display:flex}.spatial-floor-row strong,.spatial-floor-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.spatial-floor-row strong{font-size:12px;font-weight:600}.spatial-floor-row small{color:var(--app-text-secondary);font-size:10px}.spatial-inspector-divider{border-top:1px solid var(--app-border);margin-block:18px}.spatial-selected-asset{flex-direction:column;gap:14px;display:flex}.spatial-selected-asset .ant-descriptions-item-label{width:72px;color:var(--app-text-secondary)}.spatial-legend{color:var(--app-text-secondary);border-top:1px solid var(--app-border);flex-wrap:wrap;gap:8px 12px;margin-top:auto;padding-top:18px;font-size:10px;display:flex}.spatial-legend span{align-items:center;gap:5px;display:inline-flex}.spatial-legend i{border-radius:50%;width:7px;height:7px;display:inline-block}.network-management-card>.ant-card-body{padding:0}.network-management-card .ant-table-wrapper{max-width:100%}.network-management-card .ant-table-content,.console-page .ant-table-content{overscroll-behavior-inline:contain}.network-management-card .ant-tabs-nav{margin:0;padding:0 20px}.device-intake-guide{margin-bottom:16px}.device-intake-toolbar{border-bottom:1px solid var(--app-border);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.device-intake-toolbar .ant-input-search{width:min(360px,100%)}.device-intake-toolbar-end{justify-content:flex-end}.device-intake-modal-alert{margin-bottom:20px}.device-intake-photo-uploader .ant-upload{padding-block:14px!important}.device-intake-photo-uploader .ant-upload-drag-icon{margin-bottom:4px!important}.network-asset-photo{object-fit:cover;border-radius:8px;width:min(320px,100%);max-height:220px;margin-bottom:16px}.responsive-table-toolbar{border-bottom:1px solid var(--app-border);align-items:center;gap:12px;padding:16px 20px;display:flex}.responsive-table-search{flex:1;min-width:240px;max-width:360px}.responsive-table-search .ant-input-affix-wrapper{width:100%}.responsive-table-filters{flex-wrap:wrap;gap:12px;display:flex}.responsive-table-filters .ant-select{min-width:160px}.responsive-table-result{white-space:nowrap;margin-left:auto}.responsive-table-toolbar-compact{border-bottom:1px solid var(--app-border);flex-direction:column;gap:10px;padding:16px;display:flex}.responsive-table-toolbar-compact .responsive-table-search{min-width:0;max-width:none}.responsive-filter-drawer{flex-direction:column;gap:16px;width:100%;display:flex}.responsive-filter-drawer .ant-select{width:100%}.network-table-primary,.network-table-stack{display:flex}.network-table-primary{align-items:center;gap:8px}.network-table-stack{flex-direction:column}.network-table-stack small{color:var(--app-text-secondary)}.service-name-button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;padding:0;display:flex}.service-name-button:hover strong{color:var(--app-primary)}.service-name-button span,.service-endpoint-preview{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.service-detail{flex-direction:column;gap:16px;display:flex}.service-detail-icon{color:var(--app-primary);font-size:18px}.network-clickable-row{cursor:pointer}.network-location-group-row>td{background:color-mix(in srgb, var(--app-primary) 4%, var(--app-surface))}.network-location-group-row .network-table-stack>strong{color:var(--app-primary)}.network-clickable-row:focus-within,.network-clickable-row:hover>td{background:color-mix(in srgb, var(--app-primary) 5%, var(--app-surface))!important}.collector-token-alert,.collector-create-row{margin-bottom:20px}.collector-token-value.ant-typography{overflow-wrap:anywhere;max-width:100%;margin:8px 0 0}.collector-create-row .ant-input{flex:1}.collector-endpoint{border:1px solid var(--app-border);background:var(--app-bg);border-radius:8px;padding:10px 12px}.collector-contract{margin-bottom:20px}.collector-example.ant-typography{white-space:pre;max-height:320px;margin-bottom:0;overflow:auto}.network-asset-detail{flex-direction:column;gap:16px;display:flex}.network-asset-addresses{margin-top:16px}.network-asset-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.network-asset-facts.ant-typography{white-space:pre-wrap;max-height:360px;margin-bottom:0;overflow:auto}.gateway-detail-drawer .ant-drawer-body{background:var(--app-bg);min-width:0;overflow-x:hidden}.gateway-detail{flex-direction:column;gap:16px;display:flex}.gateway-detail-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.gateway-notes{margin-bottom:0!important}.gateway-action-card{border-width:1px!important;border-color:var(--app-border)!important;background:var(--app-surface)!important}.gateway-action-card .ant-card-body{padding:24px}.gateway-action-content{justify-content:space-between;align-items:center;gap:24px;display:flex}.gateway-action-content .ant-typography{margin-bottom:0}.gateway-exit-node-card{border-color:var(--app-border)}.gateway-exit-node-content{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.gateway-exit-node-icon{width:40px;height:40px;color:var(--app-primary);background:color-mix(in srgb, var(--app-primary) 10%, transparent);border-radius:8px;place-items:center;font-size:18px;display:grid}.gateway-exit-node-copy{min-width:0}.gateway-exit-node-copy .ant-typography{margin-bottom:4px}.gateway-exit-node-message{margin-top:8px;display:block}.gateway-exit-node-editor,.gateway-subnet-router-editor{gap:12px;margin-top:16px;display:grid}.gateway-network-editor-section{border:1px solid var(--app-border);border-radius:8px;gap:12px;margin-top:16px;padding:16px;display:grid}.gateway-network-editor-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.gateway-subnet-inventory{margin-top:20px}.gateway-setup-options{gap:8px;margin:20px 0;display:grid}.gateway-setup-option{border:1px solid var(--app-border);width:100%;color:var(--app-text);background:var(--app-surface);text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:32px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:14px;display:grid}.gateway-setup-option:hover,.gateway-setup-option.selected{border-color:var(--app-primary)}.gateway-setup-option.selected{background:color-mix(in srgb, var(--app-primary) 8%, var(--app-surface))}.gateway-setup-option-icon{color:var(--app-primary);font-size:18px}.gateway-setup-option strong,.gateway-setup-option small{display:block}.gateway-setup-option small{color:var(--app-text-secondary)}.gateway-setup-option-check{color:var(--app-primary)}.gateway-setup-fields,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-span-2{grid-column:1/-1}.gateway-terminal-section{margin-top:8px}.gateway-terminal-heading .ant-typography{margin-bottom:4px}.gateway-terminal-frame{border:1px solid var(--app-border);border-radius:8px;height:520px;overflow:hidden}.gateway-drawer-title{flex-direction:column;display:flex}.gateway-drawer-title span{color:var(--app-text-secondary);font-size:12px}.gateway-drawer-title strong{font-size:18px}.onboarding-heading-simple h2.ant-typography{letter-spacing:normal;margin:0 0 4px;font-size:30px;font-weight:600}.onboarding-heading-simple p.ant-typography{margin:0;font-size:14px}.onboarding-main-card,.section-card,.agent-enrollment-card{box-shadow:var(--app-shadow);border-color:var(--app-border)!important;background:var(--app-surface)!important}.onboarding-page-simple{max-width:960px;margin:0 auto}.onboarding-main-card,.section-card{margin-bottom:16px}.onboarding-readiness{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.onboarding-setup-only{margin-top:16px}.agent-enrollment-list{gap:12px;display:grid}.agent-enrollment-item{border:1px solid var(--app-border);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.agent-enrollment-main{align-items:flex-start;gap:12px;min-width:0;display:flex}.agent-enrollment-state{background:#8c8c8c;border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.agent-enrollment-state.state-pending{background:#faad14}.agent-enrollment-state.state-approved{background:#52c41a}.agent-enrollment-meta{margin-top:4px;display:block}.onboarding-auto-name.ant-alert{margin-bottom:16px}.onboarding-terminal-shell{border:1px solid var(--app-border);background:#0d1117;border-radius:8px;overflow:hidden}.onboarding-terminal-toolbar{color:#f0f0f0;background:#161b22;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.onboarding-terminal-toolbar small{color:#8b949e;margin-left:auto}.terminal-dot{background:#ff4d4f;border-radius:50%;width:8px;height:8px}.terminal-dot.connected{background:#52c41a}.onboarding-terminal{height:360px}@media (max-width:1199px){.console-content{padding:20px}.topology-commandbar{grid-template-columns:auto minmax(0,1fr) 144px}.topology-commandbar>.ant-segmented:first-child{grid-area:1/1}.topology-device-search{grid-area:1/2}.topology-scope-switch{grid-area:2/1/auto/-1;justify-self:start}.topology-status-filter{grid-area:1/3}.spatial-commandbar{grid-template-columns:minmax(180px,.7fr) minmax(260px,1fr)}.spatial-commandbar>:nth-last-child(-n+2){justify-self:start}}@media (max-width:900px){.console-header{gap:8px;padding-inline:12px!important}.console-header-leading{gap:4px}.console-user-name{display:none}.console-content{padding:16px}.topology-page-heading{align-items:flex-start}.topology-commandbar{grid-template-columns:1fr}.topology-commandbar>.ant-segmented:first-child,.topology-commandbar>.topology-device-search,.topology-commandbar>.topology-scope-switch,.topology-commandbar>.topology-status-filter{grid-area:auto/1;justify-self:stretch;width:100%}.spatial-commandbar,.spatial-workspace{grid-template-columns:1fr}.spatial-inspector-card{min-height:420px}.spatial-canvas{height:60dvh;min-height:420px;max-height:620px}.topology-status-filter{width:100%}.site-topology-layout{grid-template-columns:1fr}.site-context-card{order:2;height:auto}.site-context-card>.ant-card-body{height:auto}.site-asset-list{max-height:360px}.network-topology-canvas{height:60dvh;min-height:420px;max-height:620px}}@media (max-width:640px){.console-content{padding:12px}.console-page-heading,.page-heading{flex-direction:column;gap:12px;align-items:stretch!important}.console-page-heading h2.ant-typography,.page-heading h2.ant-typography,.topology-page-heading h2.ant-typography{font-size:24px}.console-content .ant-card-head{padding-inline:16px}.console-content .ant-card-body{padding:16px}.network-management-card>.ant-card-body,.site-network-card>.ant-card-body{padding:0}.network-topology-canvas{height:54dvh;min-height:360px;max-height:520px}.spatial-canvas{height:56dvh;min-height:380px;max-height:540px}.network-topology-stage:fullscreen{padding:0}.site-network-legend>.ant-typography{text-align:left;min-width:100%}.site-prefix-list{max-height:240px}.device-intake-toolbar{flex-direction:column;align-items:stretch}.device-intake-toolbar .ant-input-search{width:100%}.device-intake-toolbar-end{align-items:flex-end}.page-heading>.ant-btn,.page-heading>.ant-space{width:100%}.page-heading>.ant-space .ant-btn{flex:1}.topology-page-heading{flex-direction:column;align-items:stretch}.topology-overview-numbers{justify-content:space-between;width:100%}.topology-overview-number{flex:1;padding-inline:10px}.network-region-card>.ant-card-body{padding:10px}.network-site-card{min-height:210px;padding:14px}.site-topology-breadcrumb{flex-direction:column;align-items:flex-start;padding:8px}.site-context-metrics{grid-template-columns:repeat(2,1fr)}.site-context-metrics .topology-overview-number{border-left:0;padding:6px 0}.site-network-card-title{flex-direction:column;align-items:flex-start;padding-block:10px}.site-network-card>.ant-card-head{min-height:84px}.site-network-legend{flex-wrap:wrap;gap:8px 14px;padding-block:8px}.gateway-detail-heading,.gateway-action-content,.gateway-network-editor-heading,.onboarding-readiness,.agent-enrollment-item{flex-direction:column;align-items:stretch}.gateway-exit-node-content,.gateway-setup-fields,.form-grid{grid-template-columns:1fr}.form-span-2{grid-column:auto}.responsive-filter-drawer .network-location-filter{width:100%;min-width:0}.responsive-table-toolbar-compact{padding:12px}.network-asset-detail-grid{grid-template-columns:1fr}}@media (max-width:480px){.console-header{padding-inline:8px!important}.console-role-tag{display:none}.console-header-actions{gap:0!important}.console-page-context small{display:none}.topology-overview-number{min-width:0;padding-inline:8px}.topology-overview-number strong{font-size:21px}.site-network-card-title>div:first-child span{white-space:normal}.responsive-table-toolbar-compact>.ant-flex{align-items:stretch}.responsive-table-result{margin-left:0}}
