/* /real-time-map — geolocated visits. Scope .gs-rt (checked against core *.css). */
.gs-rt{--rt-line:#E6EAF0;--rt-muted:#6B7280;--rt-ink:#111827;--rt-green:#1FA463}
.gs-rt .rt-bar{display:flex;align-items:center;gap:14px;padding:0 2px 12px;flex-wrap:wrap}
.gs-rt .rt-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.gs-rt .rt-title{font-size:14px;color:var(--rt-ink)}
.gs-rt .rt-clock{font-size:12px;color:var(--rt-muted);font-variant-numeric:tabular-nums}
.gs-rt .rt-spacer{flex:1}

.gs-rt .rt-live{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--rt-muted);cursor:pointer;user-select:none}
.gs-rt .rt-live input{position:absolute;opacity:0;width:0;height:0}
.gs-rt .rt-live-dot{width:8px;height:8px;border-radius:50%;background:#CBD5E1;flex:none;transition:background .15s}
.gs-rt .rt-live input:checked ~ .rt-live-dot{background:var(--rt-green);box-shadow:0 0 0 0 rgba(31,164,99,.6);animation:rt-ping 2s ease-out infinite}

.gs-rt .rt-sel{position:relative}
.gs-rt .rt-tool{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid var(--rt-line);
  border-radius:6px;background:#fff;color:#374151;font-size:13px;cursor:pointer}
.gs-rt .rt-tool:hover{background:#F7F9FC}
.gs-rt .rt-tool svg{width:15px;height:15px}
.gs-rt .rt-menu{position:absolute;top:38px;right:0;z-index:40;min-width:172px;background:#fff;border:1px solid var(--rt-line);
  border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.12);padding:5px}
.gs-rt .rt-menu button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;background:none;
  border-radius:5px;font-size:13px;color:#374151;cursor:pointer}
.gs-rt .rt-menu button:hover{background:#F3F6FB}

.gs-rt .rt-map{position:relative;border:1px solid var(--rt-line);border-radius:10px;background:#fff;overflow:hidden;padding:6px}
.gs-rt .rt-svg{display:block;width:100%;height:auto}
.gs-rt .rt-ocean{fill:#fff}
.gs-rt .rt-land{fill:#EEF1F5;stroke:#fff;stroke-width:.6}
.gs-rt .rt-loading,.gs-rt .rt-none{padding:56px 12px;text-align:center;color:var(--rt-muted);font-size:13px}
.gs-rt .rt-none{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;pointer-events:none}
.gs-rt .rt-dim{color:#9AA4B2}

/* the dot, and the sonar ping on anything seen in the last 5 minutes */
.gs-rt .rt-pin{cursor:pointer;stroke:#fff;stroke-width:1.2;opacity:.9;transition:opacity .12s}
.gs-rt .rt-pin:hover{opacity:1;stroke-width:2}
.gs-rt .rt-sonar{fill:none;stroke:var(--rt-green);stroke-width:1.5;transform-origin:center;
  transform-box:fill-box;animation:rt-sonar 2.4s cubic-bezier(.2,.6,.3,1) infinite;pointer-events:none}
@keyframes rt-sonar{0%{transform:scale(1);opacity:.65}70%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@keyframes rt-ping{0%{box-shadow:0 0 0 0 rgba(31,164,99,.55)}70%{box-shadow:0 0 0 7px rgba(31,164,99,0)}100%{box-shadow:0 0 0 0 rgba(31,164,99,0)}}
@media (prefers-reduced-motion:reduce){
  .gs-rt .rt-sonar{animation:none;opacity:.32}
  .gs-rt .rt-live input:checked ~ .rt-live-dot{animation:none}
}

.gs-rt .rt-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 2px 0;font-size:12px;color:var(--rt-muted)}
.gs-rt .rt-legend{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.gs-rt .rt-key{width:9px;height:9px;border-radius:50%;display:inline-block;margin-left:8px}
.gs-rt .rt-key.rt-k1{background:#1FA463;margin-left:0}
.gs-rt .rt-key.rt-k2{background:#5FBF8C}
.gs-rt .rt-key.rt-k3{background:#A8BDB2}
.gs-rt .rt-unplaced{margin-left:auto;color:#B45309;cursor:help}

/* tooltip — Matomo's content, GhostStat's skin */
.gs-rt .rt-tip{position:fixed;z-index:80;pointer-events:none;max-width:290px;background:#111827;color:#fff;
  border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.gs-rt .rt-tt-h{font-weight:600;font-size:13px;margin-bottom:4px}
.gs-rt .rt-tt-f{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.gs-rt .rt-tt-tech{color:#D1D5DB}
.gs-rt .rt-tt-p{color:#E5E7EB;margin-bottom:5px;word-break:break-word}
.gs-rt .rt-tt-m{color:#9CA3AF}
.gs-rt .rt-tt-go{margin-top:6px;padding-top:6px;border-top:1px solid #374151;color:#6EE7A8}

@media(max-width:640px){
  .gs-rt .rt-bar{gap:10px}
  .gs-rt .rt-unplaced{margin-left:0;width:100%}
}
