.leaflet-container {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
}

.leaflet-container a {
  color: var(--color-primary);
}

.leaflet-control-zoom {
  overflow: hidden;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-panel) !important;
}

.leaflet-control-zoom a {
  width: 34px !important;
  height: 34px !important;
  border-bottom: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  background: var(--color-surface) !important;
  color: var(--color-text) !important;
  font-size: 18px !important;
  line-height: 32px !important;
}

.leaflet-control-zoom a:last-child {
  border-bottom: 0 !important;
}

.leaflet-control-zoom a:hover {
  background: var(--color-surface-muted) !important;
  color: var(--color-primary) !important;
}

.leaflet-control-zoom a:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: -2px;
}

.leaflet-control-scale-line {
  border-color: var(--color-border-strong);
  border-top: 0;
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-size: 0.6875rem;
}

.leaflet-control-attribution {
  background: var(--color-surface) !important;
  color: var(--color-text-subtle) !important;
  font-size: 0.6875rem !important;
}

.leaflet-control-attribution a {
  color: var(--color-primary) !important;
}

.leaflet-popup-content-wrapper {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-popup);
}

.leaflet-popup-tip {
  background: var(--color-surface);
}

.leaflet-popup-content {
  margin: 12px 14px;
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  line-height: 1.45;
}

.leaflet-popup-close-button {
  top: 6px !important;
  right: 6px !important;
  width: 24px !important;
  height: 24px !important;
  border-radius: var(--radius-sm);
  color: var(--color-text-subtle) !important;
  font-size: 18px !important;
  line-height: 22px !important;
}

.leaflet-popup-close-button:hover {
  background: var(--color-surface-muted);
  color: var(--color-text) !important;
}

.feature-popup {
  min-width: 180px;
  max-width: 320px;
}

.feature-popup-title {
  margin-bottom: 8px;
  color: var(--color-text);
  font-size: 0.875rem;
  font-weight: 700;
}

.feature-popup-table th,
.feature-popup-table td {
  padding: 3px 0;
  border-bottom: 1px solid var(--color-border);
  font-size: 0.75rem;
  text-align: left;
  vertical-align: top;
}

.feature-popup-table tr:last-child th,
.feature-popup-table tr:last-child td {
  border-bottom: 0;
}

.feature-popup-table th {
  width: 42%;
  padding-right: 10px;
  color: var(--color-text-subtle);
  font-weight: 600;
}

.feature-popup-table td {
  color: var(--color-text);
  overflow-wrap: anywhere;
}

.feature-popup-empty {
  color: var(--color-text-subtle);
  font-size: 0.75rem;
}

.search-marker {
  background: transparent;
  border: 0;
}

.search-marker svg {
  filter: drop-shadow(0 2px 3px rgba(7, 29, 65, 0.35));
}
