.map-location-editor {
  position: absolute;
  z-index: 20;
  right: 2.5%;
  bottom: 4.5%;
  width: min(62%, 260px);
  padding: 12px;
  border: 1px solid rgba(199, 150, 56, .9);
  border-radius: 14px;
  background: rgba(255, 251, 237, .96);
  color: #173f35;
  box-shadow: 0 8px 24px rgba(16, 42, 35, .24);
  font: 700 clamp(11px, 2.8cqw, 14px)/1.2 Georgia, "Songti SC", serif;
}

.map-editor-heading,
.map-editor-actions,
.map-editor-fields {
  display: flex;
  align-items: center;
  gap: 6px;
}

.map-editor-heading { justify-content: space-between; margin-bottom: 9px; white-space: nowrap; cursor: move; touch-action: none; }
.map-editor-heading span { color: #a16c18; font-size: .88em; }
.map-editor-heading-actions { display: flex; align-items: center; gap: 6px; }
.map-editor-heading-actions button {
  width: 27px;
  height: 27px;
  padding: 0;
  border-radius: 50%;
  cursor: pointer;
}
.map-location-editor.is-collapsed { width: auto; padding-bottom: 3px; }
.map-location-editor.is-collapsed .map-editor-heading { margin-bottom: 0; }
.map-location-editor.is-collapsed .map-editor-body { display: none; }
.map-editor-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-bottom: 9px; }
.map-editor-tabs a {
  padding: 6px;
  border: 1px solid #cfad67;
  border-radius: 8px;
  color: #315c50;
  text-align: center;
  text-decoration: none;
}
.map-editor-tabs a.is-active { background: #1d5a49; color: #fff9e8; }
.map-location-editor label { display: grid; gap: 4px; }
.map-location-editor select,
.map-location-editor input,
.map-location-editor button {
  min-width: 0;
  padding: 6px 7px;
  border: 1px solid #cfad67;
  border-radius: 8px;
  background: #fffdf5;
  color: #173f35;
  font: inherit;
}
.map-location-editor select { width: 100%; margin-top: 4px; }
.map-editor-fields { margin-top: 8px; }
.map-editor-fields label { flex: 1; }
.map-editor-fields input { width: 100%; }
.map-editor-fields input:disabled { background: #e8e4d6; color: #777066; cursor: not-allowed; }
.map-location-editor p { margin: 8px 0; font-weight: 400; line-height: 1.35; }
.map-editor-actions button { flex: 1; cursor: pointer; }
.map-editor-actions button:first-child { background: #1d5a49; color: #fff9e8; }
.map-location-editor output { display: block; min-height: 1.2em; margin-top: 6px; color: #a16c18; text-align: center; }
.map-location-editor ~ .map-instruction { display: none; }

.morning-map-screen:has(.map-location-editor) .map-location { cursor: grab; }
.morning-map-screen:has(.map-location-editor) .map-location:active { cursor: grabbing; }
