/* 현장 지도(홈) — 복공판 DP 대시보드의 마커·라벨·펄스 문법을 그대로 가져옴(pj-20260519-001 dashboard/index.html) */
.site-map { width: 100%; height: 100%; min-height: 840px; border-radius: var(--r-md); background: var(--ink-100); }
.site-map .leaflet-control-attribution { font-size: 10px; }
/* 마커 위 상시 라벨 — 말풍선 꼬리 없는 알약 */
.site-map .leaflet-tooltip.site-tip { padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line-2);
  box-shadow: var(--shadow-sm); font-family: var(--font-sans); font-size: 11px; background: #fff; }
.site-map .leaflet-tooltip.site-tip::before { display: none; }
.site-map .leaflet-tooltip.site-tip-alarm { border-color: var(--crit-500); box-shadow: 0 0 0 3px rgba(210,58,64,.18), var(--shadow-sm); }
/* 확대하면 상시 라벨이 지점을 가리므로 감춘다 */
.site-map.leaflet-tight .leaflet-tooltip.site-tip { opacity: 0; pointer-events: none; }
/* 알람 현장 — 레이더 펄스 헤일로 */
.site-map .site-pulse { display: block; width: 0; height: 0; }
.site-map .site-pulse::before, .site-map .site-pulse::after {
  content: ''; position: absolute; left: 0; top: 0; box-sizing: border-box;
  width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%;
  background: var(--pulse-color, var(--crit-500)); opacity: .5;
  animation: site-pulse-ring 1.8s var(--ease-standard) infinite; }
.site-map .site-pulse::after { animation-delay: .9s; }
@keyframes site-pulse-ring {
  0%   { transform: scale(.5); opacity: .5; }
  70%  { opacity: .08; }
  100% { transform: scale(3.6); opacity: 0; } }
.site-map .leaflet-popup-content { font-family: var(--font-sans); font-size: 13px; line-height: 1.5; margin: 12px 14px; }
.site-map .leaflet-popup-content a { color: var(--blue-600); font-weight: 600; text-decoration: none; }
.site-map .leaflet-popup-content-wrapper { border-radius: var(--r-md); box-shadow: var(--shadow-md); }
@media (prefers-reduced-motion: reduce) { .site-map .site-pulse::before, .site-map .site-pulse::after { animation: none; } }
/* 지도·위성 전환 — 분할 단추(pill). 활성은 파랑 채움 */
.site-map .site-base { display: inline-flex; padding: 3px; gap: 2px; background: #fff; border: 1px solid var(--line-2);
  border-radius: 999px; box-shadow: var(--shadow-sm); }
.site-map .site-base__btn { border: none; background: transparent; cursor: pointer; font-family: var(--font-sans);
  font-size: 12px; font-weight: 600; color: var(--fg2); padding: 5px 12px; border-radius: 999px; line-height: 1;
  transition: background var(--dur-fast), color var(--dur-fast); }
.site-map .site-base__btn:hover { background: var(--ink-50); color: var(--fg1); }
.site-map .site-base__btn.is-on { background: var(--blue-500); color: #fff; }
.site-map .site-base__btn:focus-visible { outline: 2px solid var(--blue-300); outline-offset: 1px; }
