.today-location-form-region { min-width: 0; overflow-wrap: anywhere; }
.today-location-form-region form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.4rem 0.75rem; max-width: 34rem; }
.today-location-form-region label { display: block; }
.today-location-form-region input { box-sizing: border-box; min-width: 0; width: 100%; }
.today-location-form-region button, .today-location-reset { grid-column: 1 / -1; }
.today-location-form-region .today-location-hint { grid-column: 1 / -1; margin: 0; font-size: 0.85em; opacity: 0.8; }
.today-location-form-region button { overflow-wrap: normal; }
.today-location-quick { justify-self: stretch; }
.today-location-quick ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.1em; margin: 0; padding: 0; list-style: none; }
.today-location-quick li { white-space: nowrap; }
.today-location-quick a { display: inline-block; padding: 0.2rem 0; color: #f6b66e; font-weight: 400; text-decoration: underline; text-underline-offset: 0.18em; }
.today-location-quick a:hover { color: #ffd29d; }
.today-location-quick a:focus-visible { outline: 2px solid #f6b66e; outline-offset: 2px; border-radius: 0.1rem; }
.today-location-quick a[aria-busy="true"], .today-location-quick a.today-location-quick__selected { color: #fff0d8; text-decoration-thickness: 2px; }

/* Map + coordinate field: one control. The field bar is joined to the map's
   bottom edge, sharing its border and radius, and never overlaps the map. */
.today-location-picker {
  margin-top: 1rem;
  background: #16181d;
  border: 1px solid rgba(235, 169, 101, .45);
  border-radius: .35rem;
}
.today-location-picker .today-location-map {
  border: 0;
  border-bottom: 1px solid rgba(235, 169, 101, .38);
  border-radius: calc(.35rem - 1px) calc(.35rem - 1px) 0 0;
}
.today-location-coords { padding: .7rem .8rem .75rem; }
.today-location-form-region .today-location-coords label { margin-bottom: .35rem; }
.today-location-coords__row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: stretch; }
.today-location-form-region .today-location-coords input {
  flex: 999 1 11rem;
  width: auto;
  font-size: 1.0625rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .01em;
  scroll-margin-block: 5rem;
}
.today-location-form-region .today-location-coords input[aria-invalid="true"] { border-color: #f0a15a; }
.today-location-form-region .today-location-coords button { flex: 1 0 auto; grid-column: auto; }
.today-location-coords .today-location-hint,
.today-location-coords .today-location-map-hint,
.today-location-coords .today-location-coords-status {
  margin: .45rem 0 0;
  color: #d8c7b1;
  font: 400 .85rem/1.4 system-ui, sans-serif;
  opacity: 1;
}
.today-location-coords .today-location-map-hint { margin-top: .2rem; color: #bfae98; }
.today-location-coords .today-location-map-hint[hidden] { display: none; }
.today-location-coords .today-location-coords-status { color: #ffe0b8; }
.today-location-coords .today-location-coords-status:empty { display: none; }

/* The dot, once today_location_map_controller makes it a control. */
.today-location-map__marker[tabindex] { cursor: grab; touch-action: none; }
.today-location-map__marker[tabindex]::before { position: absolute; inset: -.9rem; border-radius: 50%; content: ""; }
.today-location-map__marker:focus-visible { outline: 3px solid #fff2d9; outline-offset: 3px; }
.today-location-picker--dragging .today-location-map__marker { cursor: grabbing; transition: none; }
@media (prefers-reduced-motion: reduce) {
  .today-location-map__marker { transition: none; }
}
