.ring-topology{margin-bottom:14px;overflow:hidden;background:radial-gradient(circle at 8% 0,rgba(86,182,194,.14),transparent 31%),linear-gradient(145deg,rgba(97,175,239,.06),transparent 55%),var(--panel,#121212);border:1px solid rgba(86,182,194,.3);border-radius:12px;box-shadow:0 16px 42px rgba(0,0,0,.24)}
.ring-topology>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px 10px;border-bottom:1px solid rgba(86,182,194,.16)}
.ring-topology>header>div:first-child{display:grid;gap:3px}.ring-topology>header span,.ring-topology>footer span{color:var(--muted);font-size:9px;letter-spacing:.8px;text-transform:uppercase}.ring-topology>header strong{color:var(--cyan,#56b6c2);font-size:12px;font-weight:700}
.ring-topology-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.ring-topology-stats span{padding:4px 7px;background:rgba(255,255,255,.035);border:1px solid var(--line,#2a2a2a);border-radius:999px}.ring-topology-stats b{color:var(--text);font-size:11px}
.ring-topology-alert{display:flex;gap:10px;align-items:center;padding:8px 14px;color:var(--amber,#f59e0b);background:rgba(245,158,11,.08);border-bottom:1px solid rgba(245,158,11,.2);font-size:11px}.ring-topology-alert strong{flex:0 0 auto}.ring-topology-alert span{color:#d7c39a;line-height:1.35}
.ring-deployment-rail{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:9px 14px;border-bottom:1px solid rgba(86,182,194,.12)}.ring-deployment-rail>strong{padding-top:5px;color:var(--muted);font-size:9px;letter-spacing:1px}.ring-deployment-rail>div{display:flex;flex-wrap:wrap;gap:6px}.ring-deployment-rail>div>span{display:grid;grid-template-columns:auto auto;gap:1px 7px;padding:5px 7px;background:rgba(255,255,255,.025);border:1px solid var(--line,#2a2a2a);border-radius:6px}.ring-deployment-rail>div>span.is-good{border-color:rgba(152,195,121,.35)}.ring-deployment-rail>div>span.is-bad{border-color:rgba(224,108,117,.5)}.ring-deployment-rail b{color:var(--text);font-size:9px}.ring-deployment-rail code{color:var(--cyan,#56b6c2);font-size:9px}.ring-deployment-rail small{grid-column:1/-1;color:var(--muted);font-size:8px}.ring-deployment-rail .is-empty{color:var(--muted);font-size:10px;line-height:1.4}.ring-deployment-note{align-self:center;padding:4px 7px!important;color:var(--muted);background:rgba(229,192,123,.04)!important;border-color:rgba(229,192,123,.18)!important;font-size:9px;line-height:1.35}.ring-deployment-note b{color:var(--yellow,#e5c07b)}
.ring-topology-canvas{width:100%;min-width:0;padding:2px 6px;background:radial-gradient(circle at 50% 42%,rgba(97,175,239,.07),transparent 52%),#0e1114}.ring-topology svg{display:block;width:100%;height:auto;max-height:570px}.ring-world-grid path{fill:none;stroke:rgba(97,175,239,.05);stroke-width:1}.ring-world-land path{fill:rgba(97,175,239,.085);stroke:rgba(86,182,194,.22);stroke-width:.75;stroke-linejoin:round}.ring-world-source{fill:rgba(127,132,142,.62);font-size:7px;letter-spacing:.7px;text-anchor:end}
.ring-topology-origin circle{fill:rgba(97,175,239,.13);stroke:var(--blue,#61afef);stroke-width:1.5;filter:drop-shadow(0 0 8px rgba(97,175,239,.45))}.ring-topology-origin text{fill:var(--blue,#61afef);font-size:8px;font-weight:750;letter-spacing:.8px;text-anchor:middle}
.ring-topology-region{fill:var(--muted);font-size:11px;font-weight:700;letter-spacing:.65px;text-transform:uppercase}.ring-topology-node rect{fill:rgba(20,20,20,.97);stroke:var(--line,#2a2a2a);stroke-width:1}.ring-topology-node.is-healthy rect{stroke:rgba(152,195,121,.58)}.ring-topology-node.is-draining rect,.ring-topology-node.is-warn rect{stroke:rgba(245,158,11,.82);filter:drop-shadow(0 0 4px rgba(245,158,11,.2))}.ring-topology-node.is-bad rect{stroke:rgba(224,108,117,.9);filter:drop-shadow(0 0 5px rgba(224,108,117,.28))}.ring-topology-id{fill:var(--text);font-family:"JetBrains Mono",Monaco,Consolas,monospace;font-size:11px;font-weight:700}.ring-topology-route-label{fill:var(--muted);font-size:8px;letter-spacing:.5px;text-anchor:end;text-transform:uppercase}.ring-topology-meta{fill:#b5bac4;font-size:9px}.ring-topology-version{fill:var(--muted);font-family:"JetBrains Mono",Monaco,Consolas,monospace;font-size:8px}.ring-topology-node.is-warn .ring-topology-version{fill:var(--yellow,#e5c07b)}.ring-topology-node.is-bad .ring-topology-version{fill:var(--red,#e06c75)}
.ring-topology-node{cursor:zoom-in;transform-box:fill-box;transform-origin:center;transition:transform .2s ease,filter .2s ease}.ring-topology-node:focus{outline:none;filter:drop-shadow(0 0 7px rgba(97,175,239,.8))}.ring-topology-node.is-expanded{cursor:zoom-out;transform:scale(1.65);filter:drop-shadow(0 8px 18px rgba(0,0,0,.8))}.ring-topology-expanded-detail{fill:#d8dde5;font-size:8px;opacity:0;pointer-events:none;transition:opacity .15s ease}.ring-topology-node.is-expanded .ring-topology-expanded-detail{opacity:1}.ring-topology-node.is-expanded .ring-topology-meta,.ring-topology-node.is-expanded .ring-topology-version{opacity:0}
.ring-topology-mobile article{transform-origin:center;transition:transform .2s ease,background .2s ease}.ring-topology-mobile article.is-expanded{position:relative;z-index:2;transform:scale(1.08);background:#181c20;box-shadow:0 8px 18px rgba(0,0,0,.65)}
.ring-topology-trunk,.ring-topology-route{fill:none;stroke-width:2;stroke-dasharray:7 7;animation:ring-route-flow 1.35s linear infinite}.ring-topology-trunk{stroke-width:2.5;opacity:.9}.ring-topology-trunk.is-default,.ring-topology-route.is-default{stroke:var(--blue,#61afef)}.ring-topology-trunk.is-redirect,.ring-topology-route.is-redirect{stroke:var(--purple,#c678dd);stroke-width:3;filter:drop-shadow(0 0 4px rgba(198,120,221,.55))}.ring-topology-trunk.is-standby,.ring-topology-route.is-standby{stroke:rgba(127,132,142,.28);stroke-width:1;stroke-dasharray:2 7;animation:none}.ring-topology-city circle:first-child{fill:var(--blue,#61afef);stroke:#d8eeff;stroke-width:1}.ring-topology-city.is-redirect circle:first-child{fill:var(--purple,#c678dd)}.ring-topology-city.is-standby circle:first-child{fill:var(--muted);opacity:.6}.ring-topology-city-pulse{fill:none;stroke:rgba(97,175,239,.45);stroke-width:1;animation:ring-city-pulse 2s ease-out infinite}.ring-topology-city.is-redirect .ring-topology-city-pulse{stroke:rgba(198,120,221,.55)}.ring-topology-city text{fill:#d6d9df;font-size:9px;font-weight:700;letter-spacing:.45px}.ring-topology-city[data-topology-city="syd"] text{text-anchor:end}
.ring-topology-mobile{display:none}.ring-topology>footer{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:8px 14px 10px;border-top:1px solid rgba(86,182,194,.12)}.ring-topology>footer span:before{display:inline-block;width:6px;height:6px;margin-right:5px;background:var(--muted);border-radius:50%;content:""}.ring-topology>footer .is-redirect:before{background:var(--purple,#c678dd)}.ring-topology>footer .is-default:before{background:var(--blue,#61afef)}.ring-topology>footer .is-standby:before{opacity:.45}.ring-topology>footer .is-draining:before{background:var(--amber,#f59e0b)}.ring-topology>footer .is-software:before{background:var(--red,#e06c75)}.ring-topology>footer em{margin-left:auto;color:var(--muted);font-size:9px;font-style:normal}.ring-topology-empty{padding:18px;color:var(--muted);font-size:12px}
@keyframes ring-route-flow{to{stroke-dashoffset:-28}}@keyframes ring-city-pulse{0%{opacity:.9}100%{opacity:0}}
@media(max-width:600px){.ring-topology>header{align-items:flex-start;padding:10px}.ring-topology-stats{max-width:56%}.ring-topology-stats span{padding:3px 5px;letter-spacing:.2px}.ring-topology-alert{align-items:flex-start;padding:8px 10px}.ring-deployment-rail{grid-template-columns:1fr;padding:8px 10px}.ring-deployment-rail>div{display:grid;grid-template-columns:1fr 1fr}.ring-topology-canvas{display:none}.ring-topology-mobile{display:grid;gap:8px;padding:9px 10px}.ring-topology-mobile>section{overflow:hidden;background:rgba(0,0,0,.17);border:1px solid var(--line,#2a2a2a);border-radius:8px}.ring-topology-mobile>section>header{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-bottom:1px solid var(--line,#2a2a2a)}.ring-topology-mobile>section>header strong{color:var(--text);font-size:12px}.ring-topology-mobile>section>header span{color:var(--muted);font-size:11px}.ring-topology-mobile article{display:grid;grid-template-columns:4px 1fr;gap:8px;padding:8px 9px}.ring-topology-mobile article+article{border-top:1px solid var(--line,#2a2a2a)}.ring-topology-mobile article>i{width:4px;min-height:50px;border-radius:4px;background:var(--muted);opacity:.4}.ring-topology-mobile article>i.is-default{background:var(--blue,#61afef);opacity:1;box-shadow:0 0 7px rgba(97,175,239,.45)}.ring-topology-mobile article>i.is-redirect{background:var(--purple,#c678dd);opacity:1;box-shadow:0 0 7px rgba(198,120,221,.55)}.ring-topology-mobile article>div>strong{color:var(--cyan,#56b6c2);font-family:"JetBrains Mono",Monaco,Consolas,monospace;font-size:12px}.ring-mobile-route{float:right;color:var(--muted);font-size:11px;text-transform:uppercase}.ring-topology-mobile p{margin:4px 0 2px;color:#c9cbd0;font-size:11px;line-height:1.35}.ring-topology-mobile small{display:block;color:var(--muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere}.ring-topology>footer{gap:7px;padding:7px 10px}.ring-topology>footer em{width:100%;margin-left:0;font-size:9px}}
@media(max-width:390px){.ring-topology>header{display:grid}.ring-topology-stats{max-width:none;justify-content:flex-start}.ring-deployment-rail>div{grid-template-columns:1fr}.ring-topology-mobile{padding:7px}.ring-topology-mobile>section>header{display:grid}.ring-topology>footer span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.ring-topology-route,.ring-topology-trunk,.ring-topology-city-pulse{animation:none}}
