#leafletMap {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #d7e3dd;
}

.leaflet-container {
  font-family: "DM Sans", sans-serif;
}

.leaflet-tile-pane {
  filter: saturate(1.12) contrast(1.04);
}

.leaflet-control-zoom {
  border: 0 !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(7, 26, 36, .16) !important;
}

.leaflet-control-zoom a,
.leaflet-control-layers {
  color: #050505 !important;
  background: rgba(255,255,255,.96) !important;
}

.leaflet-control-layers {
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 28px rgba(7, 26, 36, .17) !important;
  padding: 8px 10px !important;
}

.leaflet-control-layers label {
  font: 800 11px "DM Sans", sans-serif;
  color: #050505;
  padding: 4px 2px;
}

.leaflet-control-layers input {
  accent-color: #050505;
}

.leaflet-control-attribution {
  font-size: 9px;
}

.ds-map-pin {
  background: transparent;
  border: 0;
}

.ds-map-pin__bubble {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50% 50% 50% 12px;
  transform: rotate(-45deg);
  background: linear-gradient(145deg, #2d2d2d, #050505);
  color: #fff;
  border: 4px solid #fff;
  box-shadow: 0 7px 18px rgba(0, 0, 0, .28), 0 0 0 8px rgba(0, 0, 0, .12);
}

.ds-map-pin__bubble b {
  transform: rotate(45deg);
  font: 800 11px Manrope, sans-serif;
}

.ds-map-pin.selected .ds-map-pin__bubble {
  background: linear-gradient(145deg, #e4b85d, #b87821);
  box-shadow: 0 8px 22px rgba(184, 120, 33, .38), 0 0 0 10px rgba(228, 184, 93, .18);
}

.ds-cluster {
  background: rgba(0, 0, 0, .12);
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.ds-cluster span {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #050505;
  color: #fff;
  border: 3px solid #fff;
  box-shadow: 0 7px 20px rgba(7, 26, 36, .25);
  font: 800 12px Manrope, sans-serif;
}

.ds-popup .leaflet-popup-content-wrapper {
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(7, 26, 36, .22);
}

.ds-popup .leaflet-popup-content {
  margin: 14px;
  width: 245px !important;
}

.map-popup img {
  width: 100%;
  height: 105px;
  border-radius: 11px;
  object-fit: cover;
}

.map-popup h3 {
  margin: 9px 0 3px;
  font: 800 16px Manrope, sans-serif;
}

.map-popup p {
  margin: 0 0 10px;
  color: #6f6f6f;
  font-size: 11px;
}

.map-popup__facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin-bottom: 10px;
}

.map-popup__facts span {
  padding: 7px;
  background: #f6f6f6;
  border-radius: 8px;
  font-size: 10px;
}

.map-popup__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}

.map-popup__actions button,
.map-popup__actions a {
  border: 0;
  border-radius: 9px;
  min-height: 34px;
  display: grid;
  place-items: center;
  text-decoration: none;
  font-weight: 800;
  font-size: 10px;
}

.map-popup__actions button {
  background: #050505;
  color: white;
}

.map-popup__actions a {
  background: #f2e8d6;
  color: #050505;
}

.map-key {
  z-index: 500;
  box-shadow: 0 10px 30px rgba(7, 26, 36, .14);
}

.map-key a {
  color: #050505;
  font-weight: 800;
  text-decoration: none;
}

.location-source {
  margin-top: 10px;
  display: flex;
  gap: 8px;
}

.location-source a {
  color: #050505;
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}

.admin-card-title {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.admin-card-title h3 { margin: 0; }
.admin-card-title a { color: #050505; text-decoration: none; font-size: 11px; font-weight: 800; white-space: nowrap; }
.project-form { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.project-form label { color: #6f6f6f; font-size: 10px; font-weight: 800; }
.project-form label span { font-weight: 500; }
.project-form input,
.project-form textarea {
  display: block;
  width: 100%;
  margin-top: 6px;
  border: 1px solid #e2e2e2;
  border-radius: 10px;
  background: #fff;
  color: #050505;
  padding: 10px 11px;
  resize: vertical;
}
.google-url-field { grid-column: 1 / -1; }
.pin-verification { display: flex; gap: 10px; margin-top: 12px; padding: 11px; background: #f6f6f6; border-radius: 11px; }
.pin-verification span { color: #6f6f6f; font-weight: 800; }
.pin-verification p { margin: 0; font-size: 10px; }
.pin-verification.verified { background: #f2e8d6; color: #050505; }
.pin-verification.invalid { background: #f8e9e6; color: #9c3f33; }
.project-form-actions { display: flex; gap: 8px; margin-top: 12px; }
.project-form-actions button { flex: 1; }
.primary-btn:disabled { opacity: .42; cursor: not-allowed; }
.custom-project-list { margin-top: 14px; }
.custom-project-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 10px 0; border-top: 1px solid #e2e2e2; }
.custom-project-row strong { display: block; font-size: 11px; }
.custom-project-row span { color: #6f6f6f; font-size: 9px; }
.custom-project-row button { border: 0; width: 30px; height: 30px; border-radius: 8px; background: #f8e9e6; color: #b34b3d; }
.weekly-drop-card > code { display: block; padding: 11px 12px; border-radius: 10px; background: #050505; color: #f2e8d6; font-size: 11px; margin: 9px 0; user-select: all; }
.pipeline-run { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 9px 0; border-top: 1px solid #e2e2e2; font-size: 10px; }
.pipeline-run span { color: #6f6f6f; }
.pipeline-run b.published { color: #050505; }
.pipeline-run b.review { color: #b34b3d; }

@media (max-width: 900px) {
  #leafletMap { bottom: 48%; }
  .map-canvas { overflow: visible; }
  .map-key { display: flex; bottom: calc(48% + 10px); }
}

@media (max-width: 540px) {
  .map-key { display: none; }
  .project-form { grid-template-columns: 1fr; }
  .google-url-field { grid-column: auto; }
}
