/* Airport popups share the light route workspace palette on both map hosts. */
.flight-route-marker[data-route-marker-overlay] { color: transparent; }
.flight-route-marker-overlay { position: absolute; top: 50%; left: 50%; width: 28px; height: 28px; max-width: none; transform: translate(-50%, -50%); pointer-events: none; }
.maplibregl-popup.bulletin-airport-window {
  --airport-paper: #fff;
  --airport-ink: #172b45;
  --airport-muted: #586b82;
  --airport-line: #d6e0ec;
  --airport-soft: #f4f7fb;
  --airport-accent: #1763dc;
  --airport-accent-hover: #1253bc;
  --airport-accent-ink: #fff;
  --airport-radius: 6px;
  --airport-shadow: 0 8px 24px rgb(15 23 42 / 16%);
  --airport-text: 13px;
  --airport-caption: 12px;
  --airport-title: 20px;
  --airport-value: 32px;
  z-index: 5;
  width: min(360px, calc(100vw - 24px));
  color: var(--airport-ink);
  font: 400 var(--airport-text)/1.4 Arial, sans-serif;
}
.bulletin-airport-window.maplibregl-popup .maplibregl-popup-content {
  box-sizing: border-box;
  width: 100%;
  padding: 20px;
  border: 1px solid var(--airport-line);
  border-radius: var(--airport-radius);
  background: var(--airport-paper);
  color: var(--airport-ink);
  box-shadow: var(--airport-shadow);
}
.bulletin-airport-window.maplibregl-popup .maplibregl-popup-tip { border-color: transparent; }
.bulletin-airport-window.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.bulletin-airport-window.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.bulletin-airport-window.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { border-top-color: var(--airport-paper); }
.bulletin-airport-window.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.bulletin-airport-window.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.bulletin-airport-window.maplibregl-popup-anchor-top-right .maplibregl-popup-tip { border-bottom-color: var(--airport-paper); }
.bulletin-airport-window.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--airport-paper); }
.bulletin-airport-window.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--airport-paper); }
.bulletin-airport-window .bulletin-airport-popup { margin: 0; padding: 0; }
.bulletin-airport-popup-header { display: flex; align-items: center; gap: 12px; padding-right: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--airport-line); }
.bulletin-airport-popup-icon { width: 40px; height: 40px; flex: 0 0 40px; }
.bulletin-airport-popup-identity { display: grid; gap: 4px; min-width: 0; }
.bulletin-airport-popup-code { font-size: var(--airport-title); font-weight: 600; }
.bulletin-airport-popup-name { color: var(--airport-muted); overflow-wrap: anywhere; }
.bulletin-airport-popup-distances { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 20px 0 16px; }
.bulletin-airport-popup-distance { min-width: 0; padding-right: 12px; }
.bulletin-airport-popup-distance + .bulletin-airport-popup-distance { padding-left: 12px; padding-right: 0; border-left: 1px solid var(--airport-line); }
.bulletin-airport-popup-distance dt { color: var(--airport-muted); font-size: var(--airport-caption); font-weight: 400; }
.bulletin-airport-popup-distance dd { margin: 0; }
.bulletin-airport-popup-distance .bulletin-airport-popup-value { margin: 4px 0 8px; font-size: var(--airport-value); font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.bulletin-airport-popup-unit { margin-left: 4px; font-size: var(--airport-text); font-weight: 400; }
.bulletin-airport-popup-endpoint { font-weight: 600; overflow-wrap: anywhere; }
.bulletin-airport-popup-endpoint-name { color: var(--airport-muted); font-size: var(--airport-caption); overflow-wrap: anywhere; }
.bulletin-airport-popup-note { margin: 0 0 16px; color: var(--airport-muted); font-size: var(--airport-caption); }
.bulletin-airport-popup-actions { display: grid; gap: 8px; }
.bulletin-airport-window .bulletin-airport-popup-action {
  display: flex; justify-content: center; align-items: center; gap: 8px;
  width: 100%; min-height: 36px; margin: 0; padding: 8px 12px;
  border: 1px solid var(--airport-line); border-radius: 4px;
  background: var(--airport-paper); color: var(--airport-accent);
  font: 600 var(--airport-text)/1.4 Arial, sans-serif; cursor: pointer;
}
.bulletin-airport-window .bulletin-airport-popup-action:hover { background: var(--airport-soft); border-color: var(--airport-accent); }
.bulletin-airport-window .bulletin-airport-popup-action.is-primary { background: var(--airport-accent); color: var(--airport-accent-ink); border-color: var(--airport-accent); }
.bulletin-airport-window .bulletin-airport-popup-action.is-primary:hover { background: var(--airport-accent-hover); }
.bulletin-airport-window .bulletin-airport-popup-action:disabled { opacity: .5; cursor: default; }
.bulletin-airport-window .bulletin-airport-popup-action:focus-visible,
.bulletin-airport-window.maplibregl-popup .maplibregl-popup-close-button:focus-visible { outline: 2px solid var(--airport-accent); outline-offset: 2px; }
.bulletin-airport-popup-action-icon { font-size: var(--airport-title); line-height: 1; font-weight: 400; }
.bulletin-airport-window.maplibregl-popup .maplibregl-popup-close-button { width: 32px; height: 32px; top: 4px; right: 4px; border: 0; border-radius: 4px; background: transparent; color: var(--airport-muted); font-size: var(--airport-title); cursor: pointer; }
.bulletin-airport-window.maplibregl-popup .maplibregl-popup-close-button:hover { background: var(--airport-soft); color: var(--airport-ink); }
@media (max-width: 480px) {
  /* Keep the secondary coordinate readout from covering airport details. */
  .map-page:has(.bulletin-airport-window) .coordinate-readout { visibility: hidden; }
  .maplibregl-popup.bulletin-airport-window { --airport-value: 28px; }
  .bulletin-airport-window.maplibregl-popup .maplibregl-popup-content { padding: 16px; }
  .bulletin-airport-window .bulletin-airport-popup-action { min-height: 44px; }
  .bulletin-airport-window.maplibregl-popup .maplibregl-popup-close-button { width: 40px; height: 40px; }
  .bulletin-airport-popup-header { padding-right: 24px; }
}
