/* Full-viewport map with chrome overlaid contextually (brief §5.16). */
.app-shell {
  position: fixed;
  inset: 0;
  overflow: hidden;
}

#map {
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
}

.map-chrome {
  position: absolute;
  z-index: 1000;
  display: flex;
  gap: 0.5rem;
  padding: 0.5rem;
  pointer-events: none; /* let the map receive gestures; buttons re-enable below */
}

.map-chrome > * {
  pointer-events: auto;
}

.map-chrome--top {
  top: 0;
  right: 0;
}

.map-chrome--bottom {
  bottom: 0;
  left: 0;
  right: 0;
  flex-direction: column;
  align-items: center;
  /* Keep clear of Leaflet's bottom-right attribution. */
  padding-bottom: 1.6rem;
}

/* In-map mode toggle: icon + text, ≥44px targets. */
.mode-toggle {
  display: inline-flex;
  background: var(--colour-bg);
  border: 1px solid var(--colour-border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.mode-toggle__btn {
  min-height: var(--tap-min);
  padding: 0 0.9rem;
  border: 0;
  background: transparent;
  color: var(--colour-text);
}

.mode-toggle__btn.is-active {
  background: var(--colour-chrome);
  color: var(--colour-chrome-text);
}

/* The placement-preview pin while placing. */
.placement-pin {
  display: block;
}
