/* Deliberately scoped to the SVG/HTML schematic world, never #telecom-live-map. */
[data-telecom-lab] .tl-schematic-world .nl-device {
    width: 148px; height: 112px; min-height: 112px; padding: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
[data-telecom-lab] .tl-schematic-world .nl-device:hover,
[data-telecom-lab] .tl-schematic-world .nl-device.is-selected,
[data-telecom-lab] .tl-schematic-world .nl-device.is-link-endpoint,
[data-telecom-lab] .tl-schematic-world .nl-device.is-route,
[data-telecom-lab] .tl-schematic-world .nl-device.is-route-failed { background: transparent; box-shadow: none; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol {
    width: 148px; height: 84px; flex: 0 0 84px; overflow: visible;
    fill: #266990; stroke: #164866; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round;
}
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-antenna { fill: #e1f3fa; stroke: #297698; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-rf { fill: #a76828; stroke: #774714; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-controller { fill: #5c6397; stroke: #3b426c; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-database { fill: #367f78; stroke: #225d58; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-satellite { fill: #536fa3; stroke: #304a76; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol.is-cloud { fill: #e3f2fb; stroke: #6397b4; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol .tl-detail { fill: none; stroke: #e6f4ff; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol .tl-signal { fill: none; stroke: #3688af; stroke-width: 2.5; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol .tl-screen { fill: #142d43; stroke: #9ac8df; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol .tl-led { fill: #6ee7b7; stroke: #6ee7b7; stroke-width: 3; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol .tl-trace { fill: none; stroke: #6ee7b7; stroke-width: 2; }
[data-telecom-lab] .tl-schematic-world .tl-schematic-symbol text { fill: #fff; stroke: none; text-anchor: middle; font: 700 14px system-ui, sans-serif; }
[data-telecom-lab] .tl-schematic-world .nl-device:hover .tl-schematic-symbol { filter: drop-shadow(0 2px 3px rgb(37 99 235 / 24%)); }
[data-telecom-lab] .tl-schematic-world .nl-device.is-selected .tl-schematic-symbol,
[data-telecom-lab] .tl-schematic-world .nl-device.is-link-endpoint .tl-schematic-symbol { filter: drop-shadow(0 0 3px #60a5fa); }
[data-telecom-lab] .tl-schematic-world .nl-device.is-route .tl-schematic-symbol { filter: drop-shadow(0 0 4px #22c55e); }
[data-telecom-lab] .tl-schematic-world .nl-device.is-route-failed .tl-schematic-symbol { filter: drop-shadow(0 0 4px #ef4444); }
[data-telecom-lab] .tl-schematic-world .nl-device-name {
    margin-top: 4px; max-width: 180px; flex-shrink: 0; padding: 0 4px;
    line-height: 16px; font-size: 12px; border-radius: 3px; background: var(--nl-port-label-bg);
}
[data-telecom-lab] .tl-schematic-world .nl-device-type { display: none; }
[data-telecom-lab] .tl-schematic-world .nl-port {
    width: 12px; height: 12px; right: auto; bottom: auto; z-index: 2;
    transform: translate(-50%, -50%); border: 2px solid var(--nl-device);
}
[data-telecom-lab] .tl-schematic-world .nl-port[data-port-kind="wireless"],
[data-telecom-lab] .tl-schematic-world .nl-port[data-port-kind="rf"],
[data-telecom-lab] .tl-schematic-world .nl-port[data-port-kind="coaxial"] { border-radius: 50%; box-shadow: 0 0 0 2px #c58b37; }
[data-telecom-lab] .tl-schematic-world .nl-port[data-port-kind="ethernet"] { border-radius: 3px; }
[data-telecom-lab] .tl-schematic-world .nl-port[data-port-kind="fiber"] { border-radius: 2px; box-shadow: 0 0 0 2px #a855f7; }
[data-telecom-lab] .tl-schematic-world .nl-port.is-pending { box-shadow: 0 0 0 4px rgb(124 58 237 / 35%); }
[data-telecom-lab] .tl-schematic-world .nl-device-signal-badge { top: 107px; bottom: auto; right: auto; left: 50%; transform: translateX(-50%); white-space: nowrap; }
[data-telecom-lab] .tl-schematic-world .nl-link-line { stroke-linejoin: round; stroke-linecap: round; }
