.city-map {
  height: clamp(320px, 52vh, 540px);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  isolation: isolate;
}

.map-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}

.map-controls label {
  min-width: 0;
  max-width: min(100%, 28rem);
  color: var(--text-soft);
  font-size: .875rem;
  font-weight: 650;
}

.map-controls select {
  appearance: none;
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  margin-top: 5px;
  padding: 10px 40px 10px 13px;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%235e879f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 13px center;
  font-size: 1rem;
  cursor: pointer;
}

.map-controls select:hover { border-color: var(--accent); }

@media (max-width: 560px) {
  .map-controls label { width: 100%; }
}
