/* Detections layer: clusters, fan-out spokes, live panel, new-detection badges. Existing dots are unchanged. */
.geo-pin.det-hidden{display:none}
.det-cluster{background:none;border:0}
.det-cluster::after{content:'';position:absolute;left:31px;top:64px;width:2px;height:16px;background:#4fd1c5;pointer-events:none}
.det-cluster.is-open::after{display:none}
.det-cluster-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;
  background:rgba(16,25,25,.92);border:2px solid #4fd1c5;color:#e8f4f2;box-shadow:0 0 0 4px rgba(79,209,197,.18);cursor:pointer;line-height:1.05;text-align:center}
.det-cluster-badge strong{font-size:18px}
.det-cluster-badge small{font-size:9px;color:#a9c7c2;max-width:58px}
.det-cluster-badge em{font-style:normal;font-size:9px;font-weight:700;color:#101919;background:#ffd166;border-radius:8px;padding:1px 5px;margin-top:2px}
.det-cluster-badge.all-expired{border-color:#6b7d7a;box-shadow:none;opacity:.8}
.det-cluster-badge.has-new{border-color:#ffd166;box-shadow:0 0 0 4px rgba(255,209,102,.25)}
.det-cluster.is-open .det-cluster-badge{transform:scale(.7)}
.det-cluster:focus-visible .det-cluster-badge{outline:2px solid #fff;outline-offset:3px}
.det-spoke{stroke:#4fd1c5}.det-spoke.det-wifi{stroke:#8fb8ff}.det-spoke.det-ble{stroke:#4fd1c5}
.det-fan-note{background:none;border:0}
.det-fan-note span{display:block;font-size:11px;color:#d7e6e3;background:rgba(16,25,25,.85);border-radius:6px;padding:3px 6px;text-align:center}
.geo-pin.det-new::after{content:'NEW';position:absolute;top:-10px;right:-14px;font:700 8px/1 system-ui,sans-serif;color:#101919;background:#ffd166;border-radius:6px;padding:2px 3px}
.geo-pin.det-pulse::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid #ffd166;animation:det-pulse 1.6s ease-out infinite;pointer-events:none}
@keyframes det-pulse{from{transform:scale(.6);opacity:.9}to{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion: reduce){.geo-pin.det-pulse::before{animation:none}}
.det-panel{position:absolute;top:96px;left:12px;z-index:800;width:300px;max-height:calc(100% - 200px);display:flex;flex-direction:column;
  background:rgba(16,25,25,.94);border:1px solid #2b4540;border-radius:10px;color:#e8f4f2;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.det-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #2b4540}
.det-toggle{background:none;border:0;color:inherit;cursor:pointer;padding:0;text-align:left;font:inherit}
.det-toggle span{color:#a9c7c2;font-size:12px}
.det-window{font-size:12px;color:#a9c7c2;display:flex;gap:6px;align-items:center}
.det-window select{background:#0b1514;color:#e8f4f2;border:1px solid #3c5650;border-radius:5px;padding:2px 4px}
.det-note{margin:0;padding:6px 12px;font-size:11px;color:#8fa9a4}
.det-list{list-style:none;margin:0;padding:4px 6px 8px;overflow-y:auto;display:grid;gap:4px}
.det-row{width:100%;display:grid;gap:4px;text-align:left;background:#132220;border:1px solid transparent;border-radius:7px;padding:8px 9px;color:inherit;cursor:pointer}
.det-row:hover,.det-row:focus-visible{border-color:#4fd1c5;outline:none}
.det-row.is-new{border-color:#ffd166}
.det-row-top{display:flex;align-items:center;gap:7px;min-width:0}
.det-row-top strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.det-proto{flex:none;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:700 10px/1 system-ui,sans-serif;color:#101919;background:#4fd1c5}
.det-proto.det-wifi{background:#8fb8ff}
.det-badge{font-style:normal;font-size:10px;font-weight:700;color:#101919;background:#ffd166;border-radius:6px;padding:1px 5px}
.det-signal{height:4px;border-radius:2px;background:linear-gradient(90deg,#4fd1c5 calc(var(--s)*100%),#2b4540 calc(var(--s)*100%))}
.det-meta{font-size:11px;color:#a9c7c2}
.det-empty{font-size:12px;color:#8fa9a4;padding:8px 6px}
.det-panel.collapsed .det-note,.det-panel.collapsed .det-list{display:none}
.map-canvas.signal-mode .det-panel{display:none}
@media (max-width:680px){
  .det-panel{top:118px;bottom:auto;right:64px;left:10px;width:auto;max-height:55%;z-index:1150}
  .det-head{padding:6px 10px}.det-window{font-size:11px}
}
