/* Live Map only. The Schematic world is intentionally outside every selector. */
#telecom-live-map .tl-leaflet-custom-icon { background: transparent; border: 0; overflow: visible; }
#telecom-live-map .tl-map-custom-marker {
    position: relative; width: 104px; height: 80px; display: flex;
    flex-direction: column; align-items: center; pointer-events: auto; overflow: visible;
}
#telecom-live-map .tl-map-marker-icon {
    position: relative; width: 76px; height: 52px; display: flex; align-items: center;
    justify-content: center; border: 0; border-radius: 0; background: transparent;
    color: inherit; box-shadow: none; transition: filter .12s ease, transform .12s ease;
}
#telecom-live-map .tl-map-marker-icon:hover { transform: scale(1.06); filter: drop-shadow(0 2px 3px rgb(15 23 42 / 30%)); }
#telecom-live-map .tl-map-marker-icon.is-selected { filter: drop-shadow(0 0 4px #ef4444); transform: scale(1.08); }
#telecom-live-map .tl-live-map-symbol { width: 76px; height: 52px; overflow: visible; fill: #266990; stroke: #164866;
    stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; pointer-events: none; }
#telecom-live-map .tl-live-map-symbol.is-antenna { fill: #e1f3fa; stroke: #297698; }
#telecom-live-map .tl-live-map-symbol.is-rf { fill: #a76828; stroke: #774714; }
#telecom-live-map .tl-live-map-symbol.is-controller { fill: #5c6397; stroke: #3b426c; }
#telecom-live-map .tl-live-map-symbol.is-database { fill: #367f78; stroke: #225d58; }
#telecom-live-map .tl-live-map-symbol.is-satellite { fill: #536fa3; stroke: #304a76; }
#telecom-live-map .tl-live-map-symbol.is-cloud { fill: #e3f2fb; stroke: #6397b4; }
#telecom-live-map .tl-live-map-symbol .tl-detail { fill: none; stroke: #e6f4ff; }
#telecom-live-map .tl-live-map-symbol .tl-signal { fill: none; stroke: #3688af; stroke-width: 2.5; }
#telecom-live-map .tl-live-map-symbol .tl-screen { fill: #142d43; stroke: #9ac8df; }
#telecom-live-map .tl-live-map-symbol .tl-led { fill: #6ee7b7; stroke: #6ee7b7; stroke-width: 3; }
#telecom-live-map .tl-live-map-symbol .tl-trace { fill: none; stroke: #6ee7b7; stroke-width: 2; }
#telecom-live-map .tl-live-map-symbol text { fill: #fff; stroke: none; text-anchor: middle; font: 700 14px system-ui, sans-serif; }
#telecom-live-map .tl-map-marker-label {
    position: absolute; left: calc(52px + var(--tl-label-x)); top: calc(26px + var(--tl-label-y));
    width: var(--tl-label-width); max-width: 116px; margin: 0; z-index: 200;
    overflow: hidden; text-overflow: ellipsis; pointer-events: none; user-select: none;
}
#telecom-live-map .tl-map-port {
    position: absolute; z-index: 1400; display: block; width: 20px; height: 20px;
    min-width: 20px; min-height: 20px; pointer-events: auto !important; touch-action: none;
}
#telecom-live-map .tl-map-port.is-top { left: calc(52px + var(--tl-port-offset)); top: 0; transform: translate(-50%, -50%); }
#telecom-live-map .tl-map-port.is-bottom { left: calc(52px + var(--tl-port-offset)); top: 52px; transform: translate(-50%, -50%); }
#telecom-live-map .tl-map-port.is-left { left: 14px; top: calc(26px + var(--tl-port-offset)); transform: translate(-50%, -50%); }
#telecom-live-map .tl-map-port.is-right { left: 90px; top: calc(26px + var(--tl-port-offset)); transform: translate(-50%, -50%); }
#telecom-live-map .tl-map-port-dot {
    position: absolute; left: 50%; top: 50%; z-index: 1401;
    transform: translate(-50%, -50%); pointer-events: none;
}
#telecom-live-map .tl-map-port:hover .tl-map-port-dot { transform: translate(-50%, -50%) scale(1.35); }
#telecom-live-map .tl-map-port-label {
    position: absolute; z-index: 1402; margin: 0; pointer-events: none; white-space: nowrap;
}
#telecom-live-map .tl-map-port.is-top .tl-map-port-label {
    left: 50%; bottom: calc(100% + 2px); transform: translateX(-50%);
}
#telecom-live-map .tl-map-port.is-bottom .tl-map-port-label {
    left: 50%; top: calc(100% + 2px); transform: translateX(-50%);
}
#telecom-live-map .tl-map-port.is-left .tl-map-port-label {
    right: calc(100% + 2px); top: 50%; transform: translateY(-50%);
}
#telecom-live-map .tl-map-port.is-right .tl-map-port-label {
    left: calc(100% + 2px); top: 50%; transform: translateY(-50%);
}
#telecom-live-map .leaflet-overlay-pane path.tl-live-map-orthogonal { stroke-linecap: round; stroke-linejoin: round; }
