.st-map { width: 100%; min-height: 240px; border-radius: 0.75rem; overflow: hidden; position: relative; z-index: 0; background: #e5e7eb; }
.st-map--loading::after { content: ''; position: absolute; top: 10px; right: 10px; width: 14px; height: 14px; border: 2px solid #2563eb; border-top-color: transparent; border-radius: 50%; animation: st-spin 0.8s linear infinite; z-index: 1000; }
@keyframes st-spin { to { transform: rotate(360deg); } }
.st-marker__pin { display: block; width: 22px; height: 22px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.4); }
.st-popup { font-size: 13px; line-height: 1.35; min-width: 190px; }
.st-popup h4 { margin: 0 0 6px; font-weight: 600; font-size: 14px; }
.st-popup table { border-collapse: collapse; width: 100%; }
.st-popup td { padding: 1px 4px 1px 0; vertical-align: top; }
.st-popup td:first-child { color: #6b7280; white-space: nowrap; }
.st-popup .st-badge { display: inline-block; padding: 1px 7px; border-radius: 999px; color: #fff; font-size: 11px; font-weight: 600; }
.st-popup .st-actions { margin-top: 8px; display: flex; gap: 6px; flex-wrap: wrap; }
.st-popup .st-actions a { font-size: 12px; font-weight: 600; color: #2563eb; text-decoration: none; }
.leaflet-container { font-family: inherit; }
.dark .leaflet-tile { filter: brightness(0.85) contrast(1.05); }
.dark .leaflet-popup-content-wrapper, .dark .leaflet-popup-tip { background: #1f2937; color: #f3f4f6; }
.dark .st-popup td:first-child { color: #9ca3af; }
