body {
  background: #fbf5ea;
  color: #2b1a16;
  font: 1rem/1.45 system-ui, sans-serif;
}

.admin {
  width: min(100% - 2rem, 76rem);
  margin: 1.5rem auto 3rem;
}

.admin h1 { font-size: clamp(1.6rem, 4vw, 2.5rem); }
.admin h2 { font-size: 1.25rem; }

.admin__header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.admin__header h1 { flex: 1 0 100%; }

.admin__login, .admin__search {
  max-width: 32rem;
}

.admin__search {
  margin-bottom: 1.5rem;
}

.admin__search > a {
  display: inline-block;
  margin-bottom: 0.75rem;
}

.admin__editor {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 1.25rem;
  align-items: start;
}

.admin label:not(:has([type="checkbox"])) {
  display: block;
  font-weight: 600;
  margin: 0.6rem 0 0.25rem;
}

.admin input:not([type="checkbox"], [type="hidden"]), .admin textarea {
  display: block;
  width: 100%;
  border: 1px solid #a99180;
  border-radius: 0.35rem;
  padding: 0.55rem;
  background: #fff;
  color: inherit;
  font: inherit;
}

.admin fieldset {
  margin-top: 0.75rem;
  padding: 0.5rem;
  border: 1px solid #a99180;
  border-radius: 0.35rem;
}

.admin fieldset label {
  display: inline-block;
  margin-right: 0.55rem;
}

.admin button, .admin a.admin__button {
  border: 1px solid #7e1e2a;
  border-radius: 0.35rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  color: #661722;
  font: inherit;
  cursor: pointer;
  text-decoration: none;
}

.admin button.admin__primary {
  margin-top: 0.8rem;
  background: #7e1e2a;
  color: #fff;
}

.admin button.admin__danger { margin-top: 1rem; }
.admin__error { color: #8d1f24; }

#admin-map {
  height: clamp(18rem, 48vh, 33rem);
  margin-top: 0.55rem;
  border-radius: 0.4rem;
  isolation: isolate;
}

.admin__coordinates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.admin__marker {
  background: #7e1e2a;
  border: 3px solid white;
  border-radius: 50%;
  box-shadow: 0 1px 5px #0007;
  cursor: grab;
}

@media (max-width: 720px) {
  .admin__editor { grid-template-columns: minmax(0, 1fr); }
}

.admin__preview > p { margin: 0.5rem 0 1rem; }

.admin__diff {
  border: 1px solid #a99180;
  border-radius: 0.35rem;
  background: #fff;
  padding: 0.65rem 0.85rem;
  margin: 0.6rem 0;
}

.admin__diff summary {
  cursor: pointer;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.admin__diff summary span, .admin__diff summary small { font-weight: 400; }

.admin__diff dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 0.75rem;
  margin: 0.75rem 0 0;
}

.admin__diff dt {
  grid-column: 1 / -1;
  font-weight: 600;
}

.admin__diff dd {
  margin: 0 0 0.35rem;
  padding: 0.5rem;
  background: #fbf5ea;
  border-radius: 0.25rem;
  overflow-wrap: anywhere;
}

.admin__diff dd span {
  display: block;
  white-space: pre-wrap;
}

.admin__preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1rem;
}

.admin__preview-actions button.admin__primary { margin-top: 0; }

.admin__csv-toggle, .admin__diff summary input {
  cursor: pointer;
}

.admin__csv-toggle input, .admin__diff summary input {
  margin-right: 0.25rem;
}
