/* Connection layout shares the existing pan/zoom and search controller. */
.topology-chain-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; width: 100%; }
.topology-chain-controls[hidden] { display: none; }
.topology-chain-controls > span { color: var(--muted); font-size: .8rem; margin-right: auto; }
.topology-chain-controls button { min-height: 44px; padding: .45rem .65rem; width: auto; font-size: .8rem; }
#view-network .has-locality-layout .topology-scroll { background-color: #fff; background-image: radial-gradient(#d5dfdb .75px, transparent .75px); background-size: 20px 20px; }
.has-locality-layout .locality-node-card { fill: #fff; stroke: #d8e1e9; stroke-width: 1.5; cursor: pointer; pointer-events: all; }
.has-locality-layout .topology-node.enclosure .locality-node-card,
.has-locality-layout .topology-node.patch_panel .locality-node-card { stroke: #2b805b; stroke-width: 2; }
.has-locality-layout .topology-node.is-outside .locality-node-card { stroke-dasharray: 5 4; fill: #faf9f6; }
.has-locality-layout .topology-node text,
.has-locality-layout .topology-chain text { paint-order: normal; stroke: none; fill: var(--text); font-weight: 720; pointer-events: none; }
.has-locality-layout .topology-node .locality-node-subtitle,
.has-locality-layout .topology-chain .locality-node-subtitle { fill: var(--muted); font-weight: 500; }
.has-locality-layout .topology-node.is-selected .locality-node-card { fill: var(--navy); stroke: var(--navy); stroke-width: 2; }
.has-locality-layout .topology-node.is-selected > text { fill: #fff; }
.has-locality-layout .topology-node.is-selected .locality-node-subtitle { fill: #f4ded5; }
.has-locality-layout .topology-node.is-adjacent .locality-node-card,
.has-locality-layout .topology-chain.is-adjacent .locality-node-card { stroke: #2b805b; stroke-width: 2; }
.has-locality-layout .topology-node:focus .locality-node-card,
.has-locality-layout .topology-node:hover .locality-node-card,
.has-locality-layout .topology-chain:focus .locality-node-card,
.has-locality-layout .topology-chain:hover .locality-node-card { stroke: var(--navy); stroke-width: 3; }
.topology-chain { cursor: pointer; outline: none; }
.topology-chain .locality-node-card { fill: #f5faf6; stroke: #8fbaa3; stroke-width: 2; }
.has-locality-layout .locality-link-half { fill: none; vector-effect: non-scaling-stroke; pointer-events: none; }
.has-locality-layout .locality-link-tag rect { fill: #fff; stroke: #d7dfe8; stroke-width: 1; }
.has-locality-layout .locality-link-tag text { fill: #64748b; font-weight: 650; }
.has-locality-layout .locality-chain-toggle { cursor: pointer; outline: none; }
.has-locality-layout .locality-chain-toggle rect { fill: #e5f2eb; stroke: #89b7a0; stroke-width: 1; pointer-events: all; }
.has-locality-layout .locality-chain-toggle:focus rect,
.has-locality-layout .locality-chain-toggle:hover rect { stroke: var(--navy); stroke-width: 3; }
.has-locality-layout .locality-chain-toggle text { fill: #205f47; }
#topology-panel.has-locality-layout .topology-selection { max-height: 48%; }
@media (max-width: 600px) {
  .topology-chain-controls { gap: .35rem; }
  .topology-chain-controls > span { flex-basis: 100%; }
  .topology-chain-controls button { flex: 1; }
}

/* Equipment glyphs are shared with the node list; grouped markers never carry an equipment kind. */
.topology-kind-icon { color: var(--text); }
.topology-kind-heading .topology-kind-icon { flex: 0 0 auto; width: 20px; height: 20px; }
#topology .topology-kind-icon { color: #fff; }
#topology .topology-cluster .topology-kind-icon { color: var(--teal); }
.has-locality-layout #topology .topology-node .topology-kind-icon,
.has-locality-layout #topology .topology-chain .topology-kind-icon { color: var(--text); }
.has-locality-layout #topology .topology-node.is-selected .topology-kind-icon { color: #fff; }
.topology-kind-heading { display: flex; align-items: center; gap: .4rem; min-width: 0; }
.topology-kind-heading > span { min-width: 0; overflow-wrap: anywhere; }

.node-kind-legend .topology-kind-icon { width: 20px; height: 20px; flex: 0 0 auto; }
