html,body,#root{min-height:100%;margin:0}body{color:#182230;background:#eef2f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{letter-spacing:0}.app-layout{min-height:100vh}.app-sider{background:#fff;border-right:1px solid #d8dee8}.brand-title{margin:20px 24px 18px}.app-header{background:#fff;border-bottom:1px solid #d8dee8;justify-content:space-between;align-items:center;gap:16px;height:auto;min-height:68px;padding:12px 24px;display:flex}.app-header h3,.panel-header h4{margin:0}.eyebrow{color:#667085;font-size:12px;display:block}.app-content{padding:20px}.page-stack,.toolbar-row{width:100%}.toolbar-row{align-items:center}.panel{background:#fff;border:1px solid #d8dee8;border-radius:6px;width:100%;overflow:hidden}.panel-header{border-bottom:1px solid #e5e9f0;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:12px 16px;display:flex}.panel-extra{flex:none}.panel-body{padding:16px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;width:100%;display:grid}.stat-panel{background:#fff;border:1px solid #d8dee8;border-radius:6px;min-height:86px;padding:14px 16px}.positive{color:#067647}.negative{color:#b42318}.two-column,.config-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;width:100%;display:grid}.config-grid{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)}.login-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #d8dee8;border-radius:6px;width:min(420px,100%);padding:24px}.login-mode{width:100%;margin-bottom:18px}.loading-state{place-items:center;min-height:220px;display:grid}.table-link{text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:0;overflow:hidden}.template-list{gap:8px;display:grid}.template-row{width:100%;min-height:76px;color:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #d8dee8;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.template-row strong,.template-row small{text-overflow:ellipsis;display:block;overflow:hidden}.template-row small{color:#667085;margin-top:4px}.template-row.selected{background:#eff6ff;border-color:#93c5fd}.server-select,.version-select{min-width:min(340px,100%)}.protocol-select{min-width:140px}.source-filter{width:min(260px,100%)}.topology-board{grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr) minmax(180px,.8fr);gap:14px;min-height:360px;display:grid}.topology-column,.topology-canvas{background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;flex-direction:column;gap:10px;padding:12px;display:flex}.topology-canvas{background-color:#f8fafc;background-image:linear-gradient(90deg,#2563eb0d 1px,#0000 1px),linear-gradient(0deg,#2563eb0d 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:22px 22px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;justify-content:center}.topology-node,.topology-edge{color:#182230;text-align:left;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:100%;min-height:58px;padding:10px 12px}.topology-node strong,.topology-node small{text-overflow:ellipsis;display:block;overflow:hidden}.topology-node small{color:#667085;margin-top:3px}.topology-node.inbound{border-left:4px solid #0ea5e9}.topology-node.outbound{border-left:4px solid #22c55e}.topology-node.global{border-left:4px solid #64748b}.topology-node.selected,.topology-node.route-source,.topology-edge.selected{background:#eff6ff;border-color:#60a5fa;box-shadow:0 0 0 2px #2563eb1f}.topology-edges{gap:8px;display:grid}.topology-edge{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.edge-arrow{color:#2563eb;font-weight:700}.traffic-chart{background:#f8fafc;border:1px solid #d8dee8;border-radius:6px;align-items:end;gap:8px;min-height:220px;padding:12px;display:flex;overflow-x:auto}.traffic-bar{justify-content:center;align-items:end;gap:3px;width:28px;min-width:28px;height:180px;display:flex}.traffic-up,.traffic-down{border-radius:999px 999px 0 0;width:10px;min-height:4px}.traffic-up{background:#0ea5e9}.traffic-down{background:#22c55e}.json-editor{font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55;min-height:420px!important}.json-output,.diff-output,.log-lines,.code-box{color:#f8fafc;background:#101828;border-radius:6px;max-width:100%;padding:12px;overflow:auto}.json-output,.diff-output,.log-lines{white-space:pre;min-height:180px;margin:0;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.55}.diff-output{min-height:120px}.log-lines{min-height:80px}.code-box{color:#e2e8f0;white-space:pre-wrap;word-break:break-all}.code-box .ant-typography,.json-output .ant-typography{color:inherit}.error-list{margin:8px 0 0;padding-left:18px}.ant-table-cell{vertical-align:middle}.ant-btn{min-width:32px}@media (width<=900px){.two-column,.config-grid,.topology-board{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start}}@media (width<=720px){.app-content,.panel-body{padding:12px}.stat-grid{grid-template-columns:1fr}.server-select,.version-select,.source-filter{width:100%}.toolbar-row .ant-space-item{max-width:100%}}
