/* Basra streets map: controls stay readable while the map fills its viewport. */
.facility-map-tools { display: grid; gap: 6px; }
.facility-map-search { position: relative; z-index: 30; }
.facility-map-search input {
  display: block; width: 100%; min-width: 0; min-height: 36px;
  padding: 8px 11px; border: 1px solid #bdcdc8; border-radius: 8px;
  color: #193530; background: #fbfcf8; font: 500 12px/1.4 Arial, sans-serif;
}
.facility-map-search input:focus-visible { outline: 3px solid #f4be55; outline-offset: 2px; }
[data-map-search-results] {
  position: absolute; inset: calc(100% + 5px) 0 auto; max-height: 220px;
  overflow: auto; border-radius: 9px; border: 1px solid #c6d3cd;
  background: #fbfcf8; box-shadow: 0 12px 30px #10232155;
}
[data-map-search-results][hidden] { display: none; }
[data-map-search-results] button {
  display: block; width: 100%; padding: 9px 11px; border: 0;
  border-bottom: 1px solid #dce4dd; text-align: left;
  color: #193530; background: transparent; font: 600 12px/1.4 Arial, sans-serif; cursor: pointer;
}
[data-map-search-results] button:hover, [data-map-search-results] button:focus-visible { background: #e6eee1; }
[data-map-search-results] small { display: block; color: #60786d; font-size: 10px; font-weight: 400; }
[data-map-search-results] p { padding: 12px; margin: 0; color: #40594d; font: 12px/1.4 Arial, sans-serif; }
.facility-map-zoom button:focus-visible { outline: 3px solid #f4be55; outline-offset: 2px; }
[data-map-search-status] { color: #d5e2dd; margin: 0; font: 10px/1.3 Arial, sans-serif; }
.journey-map.has-detailed-map { min-height: 140px; background: #f2f0e7 !important; touch-action: pan-y; }
.journey-map.has-detailed-map:focus-visible { outline: 3px solid #f4be55; outline-offset: 2px; }
.has-detailed-map .journey-map-art { position: absolute; inset: 0; }
.has-detailed-map .journey-map-canvas { position: absolute; transform-origin: 0 0; aspect-ratio: auto; }
.has-detailed-map .journey-map-canvas > img { display: none; }
.basra-detail-map { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.basra-detail-map text { pointer-events: none; }
.has-detailed-map .facility-map-sites { pointer-events: none; }
.has-detailed-map .facility-map-cluster { pointer-events: auto; }
.journey-map.is-zoomed { cursor: grab; touch-action: none; }
.journey-map.is-dragging { cursor: grabbing; }
.has-detailed-map .map-anchor { transform: scale(calc(1 / var(--map-zoom, 1))); }
.has-detailed-map .facility-map-cluster {
  transform-origin: 50% 100%;
  transform: scale(calc(1 / var(--map-zoom, 1))) translateY(-9px);
  padding: 5px 6px; gap: 4px;
}
.has-detailed-map .facility-map-cluster::after { height: 9px; }
.has-detailed-map .facility-map-area { font-size: 11px; }
.has-detailed-map .facility-map-numbers { gap: 2px; }
.has-detailed-map .facility-map-numbers button { width: 28px; height: 28px; font-size: 13px; }
.facility-map-zoom {
  position: absolute; z-index: 8; top: 9px; left: 9px; display: grid;
  width: 38px; border: 1px solid #9cafaa; border-radius: 7px; overflow: hidden;
  background: #fbfcf7; box-shadow: 0 2px 8px #233e3b33; text-align: center;
}
.facility-map-zoom button {
  display: block; width: 100%; min-height: 32px; padding: 4px 2px;
  border: 0; background: #fbfcf7; color: #193b34; font: 700 21px/1 Arial, sans-serif; cursor: pointer;
}
.facility-map-zoom button:hover { background: #e4ece0; }
.facility-map-zoom button:disabled { opacity: .4; cursor: default; }
.facility-map-zoom [data-map-reset] { min-height: 28px; border-top: 1px solid #cbd5ce; font-size: 10px; }
[data-map-zoom-readout] { font: 700 10px/1.4 Arial, sans-serif; color: #526b62; }
.facility-map-north { position: absolute; z-index: 6; right: 12px; top: 9px; display: grid; color: #27463d; font: 700 25px/1 Arial, sans-serif; text-align: center; pointer-events: none; }
.facility-map-north b { font-size: 11px; }
.facility-map-scale { position: absolute; z-index: 6; left: 12px; bottom: 12px; pointer-events: none; }
[data-map-distance] {
  display: block; min-width: 8px; padding-top: 3px; border-top: 2px solid #2d4b43;
  color: #27463d; font: 700 10px/1.3 Arial, sans-serif; white-space: nowrap;
  text-shadow: 0 0 3px #fff, 0 0 3px #fff;
}
@media (max-width: 760px) {
  .journey-map-card { height: 42svh; min-height: 300px; }
  .journey-panel { max-height: calc(58svh - 159px); }
  .facility-map-tools { gap: 4px; }
  .facility-map-search input { min-height: 30px; padding: 5px 8px; font-size: 11px; }
  [data-map-search-status] { display: none; }
  .journey-map-card.is-expanded [data-map-search-status] { display: block; }
  .journey-map-card.is-expanded { min-height: 0; height: auto; }
  .journey-map-bottom > span:last-child { font-size: 7px; }
  .facility-map-credit { font-size: 7px; }
}
@media print {
  .facility-map-tools, .facility-map-zoom { display: none; }
}
