.topology-view{--topology-ink:#f3f6f8;--topology-muted:#b3bec9;--topology-edge:#778492;position:relative;isolation:isolate;color:var(--topology-ink);overflow-wrap:anywhere;font-family:"Space Grotesk",system-ui,sans-serif}
.topology-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0 12px}.topology-eyebrow{margin:0 0 8px;color:#778492;font-family:"IBM Plex Mono",monospace;font-size:.67rem;letter-spacing:.16em}.topology-title{margin:0;font-size:clamp(1.4rem,3vw,2rem);font-weight:600;letter-spacing:-.045em}.topology-source-kind{flex:none;padding:8px 12px;border:1px solid #344457;border-radius:999px;font-family:"IBM Plex Mono",monospace;font-size:.64rem;color:#b3bec9}
.topology-provenance{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 15px;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:#b3bec9}.topology-limit{color:#b3bec9;font-size:.78rem;line-height:1.65;max-width:90ch}.topology-empty{padding:30px 0 12px;font-size:1.1rem;color:#f3f6f8}.topology-toolbar{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:20px 0}.topology-filter{display:grid;gap:7px;font-size:.75rem;color:#b3bec9}.topology-filter select{font:inherit;min-height:40px;max-width:100%;border:1px solid #344457;border-radius:7px;background:#111820;color:#f3f6f8;padding:8px 35px 8px 10px}.topology-legend{display:flex;flex-wrap:wrap;gap:8px 15px;list-style:none;margin:0;padding:0!important;font-family:"IBM Plex Mono",monospace;font-size:.62rem}.topology-legend li{display:flex;align-items:center;gap:6px}.topology-legend li:before{content:"";width:6px;height:6px;border-radius:50%;background:#b3bec9}.topology-legend .topology-legend__changed:before{background:#ff5267}.topology-legend .topology-legend__test:before{background:#778492}.topology-legend .topology-legend__outside:before{background:transparent;outline:1px solid #dfb060}
.topology-map{position:relative;min-height:250px;padding:26px 20px;border:1px solid #25313e;border-radius:12px;background-color:#080b0f;background-image:radial-gradient(ellipse at 50% 50%,#17202a55,transparent 65%),radial-gradient(#25313e66 .6px,transparent .7px);background-size:auto,18px 18px;overflow:hidden}.topology-columns{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,5vw,65px);align-items:start}.topology-column{min-width:0}.topology-column__title{margin:0 0 18px!important;font-family:"IBM Plex Mono",monospace;font-weight:400;font-size:.65rem!important;letter-spacing:.035em;color:#b3bec9!important;text-transform:uppercase}.topology-column__empty{font-size:.7rem;line-height:1.6;color:#778492!important}.topology-node{position:relative;z-index:1;display:grid;gap:8px;width:100%;min-height:69px;margin:0 0 13px;padding:13px 12px;text-align:left;border:1px solid #344457;border-radius:7px;background:#111820;color:#f3f6f8;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s}.topology-node__path{font-family:"IBM Plex Mono",monospace;font-size:.67rem;line-height:1.45;overflow-wrap:anywhere}.topology-node__scope{font-size:.6rem;line-height:1.4;color:#778492}.topology-node--changed{border-left:2px solid #ff5267}.topology-node--outside{border-style:dashed;border-color:#dfb06066}.topology-node--outside .topology-node__scope{color:#dfb060}.topology-node:hover,.topology-node.is-connected{border-color:#b3bec9;background:#17202a}.topology-node.is-selected{border-color:#ff5267;background:#17202a;box-shadow:0 0 0 1px #ff526722,0 0 30px #c7233e12}.topology-node.is-selected .topology-node__scope{color:#b3bec9}.topology-node:focus-visible,.topology-filter select:focus-visible,.topology-source-link:focus-visible,.topology-coverage summary:focus-visible{outline:2px solid #ff5267;outline-offset:4px}.topology-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;color:#778492;overflow:hidden}.topology-edge{stroke:#778492;stroke-width:1;fill:none;opacity:.3;vector-effect:non-scaling-stroke}.topology-edge.is-active{stroke:#ff5267;stroke-width:1.5;opacity:.9;stroke-dasharray:7 5;animation:topology-flow 12s linear infinite}.topology-count{margin:13px 0;font-size:.7rem;color:#778492!important;line-height:1.65}
.topology-selection{margin-top:22px;border-top:1px solid #25313e;padding-top:20px;min-width:0}.topology-selection h4{font-family:"IBM Plex Mono",monospace;font-size:.85rem!important;overflow-wrap:anywhere;margin:0 0 10px!important}.topology-selection__hint{color:#b3bec9;font-size:.8rem}.topology-selection__identity{font-family:"IBM Plex Mono",monospace;font-size:.64rem;color:#778492!important}.topology-relationship{padding:15px 0;border-bottom:1px solid #25313e}.topology-relationship__title{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:#f3f6f8!important;line-height:1.6}.topology-citation{margin-top:12px;border-left:1px solid #344457;padding-left:12px;min-width:0}.topology-citation__location{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:#b3bec9!important;margin:0 0 7px!important}.topology-citation__quote{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-family:"IBM Plex Mono",monospace;font-size:.69rem;line-height:1.7;color:#f3f6f8;margin:0 0 8px}.topology-source-link{display:inline-block;font-size:.73rem;color:#b3bec9;min-height:28px;text-underline-offset:4px}.topology-outside-note{color:#dfb060!important;font-size:.73rem}.topology-coverage{padding:16px 0 8px;border-top:1px solid #25313e;margin-top:22px}.topology-coverage summary{width:fit-content;cursor:pointer;font-size:.8rem;line-height:1.5;color:#b3bec9}.topology-coverage p,.topology-coverage li{font-size:.73rem;line-height:1.65;color:#b3bec9}.topology-coverage ul{padding-left:18px}
@keyframes topology-flow{to{stroke-dashoffset:-120}}
.topology-offscreen .topology-edge.is-active{animation-play-state:paused}
@media(max-width:700px){.topology-header{align-items:start;flex-direction:column;gap:12px}.topology-map{padding:22px 16px}.topology-columns{grid-template-columns:1fr;gap:24px}.topology-column__title{margin-bottom:12px!important}.topology-node{max-width:100%;padding-right:24px;min-height:66px}.topology-node__path{font-size:.72rem}.topology-legend{font-size:.61rem}.topology-toolbar{align-items:start;flex-direction:column}.topology-provenance{font-size:.65rem;gap:8px 14px}.topology-relationship__title{font-size:.68rem}.topology-selection__identity{word-break:break-all}}
@media(prefers-reduced-motion:reduce){.topology-node{transition:none}.topology-edge.is-active{animation:none;stroke-dasharray:none}}
