/* Air traffic map, filters, markers, trails, fullscreen, and aircraft list UI. */
.air-location-panel-host { flex: 1 1 100%; min-width: min(100%, 560px); }

.air-map-panel { padding-bottom: 20px; }

.air-toolbar { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 12px; }

.air-toolbar h2 { margin-bottom: 0; font-size: 1rem; }

.air-public-updated { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; color: var(--muted); font-size: 0.76rem; font-weight: 720; }

.air-presets { margin: 0 0 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(36, 124, 95, 0.06); }

.air-presets > summary { display: flex; min-height: 42px; align-items: center; gap: 12px; padding: 0 14px; color: var(--ink); font-size: 0.8rem; font-weight: 760; cursor: pointer; list-style: none; }

.air-presets > summary::-webkit-details-marker { display: none; }

.air-presets > summary::before { color: var(--accent); content: "▸"; }

.air-presets[open] > summary::before { content: "▾"; }

.air-presets > summary span { margin-right: auto; }

.air-presets > summary small { color: var(--muted); font-size: 0.7rem; font-weight: 650; }

.air-presets-body { display: grid; grid-template-columns: minmax(180px, 0.4fr) minmax(0, 1fr); gap: 10px 14px; align-items: center; padding: 12px 14px 14px; border-top: 1px solid var(--line); }

.air-presets-copy { margin: 0; color: var(--muted); font-size: 0.72rem; line-height: 1.4; }

.air-preset-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }

.air-saved-presets { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 8px; align-items: center; }

.air-saved-presets label { display: inline-flex; min-height: 34px; align-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); overflow: hidden; }

.air-saved-presets label > span { padding: 0 9px; color: var(--muted); font-size: 0.7rem; font-weight: 760; }

.air-preset-status { grid-column: 1 / -1; min-height: 1.25em; margin: -3px 0 0; color: var(--accent); font-size: 0.7rem; font-weight: 720; }

.air-view-options, .air-advanced { margin: 0 0 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, 0.24); }

.air-advanced { margin: 10px 0 0; }

.air-view-options > summary, .air-advanced > summary, .air-diagnostics > summary, .air-setup-note > summary, .air-filters > summary, .air-filter-group > summary { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; padding: 0 14px; color: var(--ink); font-size: 0.8rem; font-weight: 760; cursor: pointer; list-style: none; }

.air-view-options > summary::-webkit-details-marker, .air-advanced > summary::-webkit-details-marker, .air-diagnostics > summary::-webkit-details-marker, .air-setup-note > summary::-webkit-details-marker, .air-filters > summary::-webkit-details-marker, .air-filter-group > summary::-webkit-details-marker { display: none; }

.air-view-options > summary::before, .air-advanced > summary::before, .air-diagnostics > summary::before, .air-setup-note > summary::before, .air-filters > summary::before, .air-filter-group > summary::before { color: var(--accent); content: "▸"; }

.air-view-options[open] > summary::before, .air-advanced[open] > summary::before, .air-diagnostics[open] > summary::before, .air-setup-note[open] > summary::before, .air-filters[open] > summary::before, .air-filter-group[open] > summary::before { content: "▾"; }

.air-view-options > summary span, .air-advanced > summary span, .air-diagnostics > summary span, .air-setup-note > summary span, .air-filters > summary span, .air-filter-group > summary span { margin-right: auto; }

.air-view-options summary small, .air-advanced summary small, .air-setup-note summary small { color: var(--muted); font-size: 0.7rem; font-weight: 650; }

.air-view-options .air-public-controls { margin: 0; padding: 12px 14px 14px; border-top: 1px solid var(--line); }

.air-advanced-content { display: grid; gap: 14px; }

.air-advanced-content > .air-actions { justify-content: flex-start; }

.air-photo-query-status { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 0.72rem; line-height: 1.4; }

.air-photo-query-status[data-state="ok"] { color: var(--accent); font-weight: 740; }

.air-photo-query-status[data-state="warning"] { color: var(--accent-2); font-weight: 740; }

.air-photo-override { margin: 0; }

.air-photo-override fieldset { display: grid; gap: 12px; margin: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(36, 124, 95, 0.05); }

.air-photo-override legend { padding: 0 6px; color: var(--ink); font-size: 0.82rem; font-weight: 780; }

.air-photo-override-copy { margin: 0; color: var(--muted); font-size: 0.72rem; line-height: 1.45; }

.air-photo-override-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }

.air-photo-override-grid label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 0.66rem; font-weight: 780; letter-spacing: 0.04em; text-transform: uppercase; }

.air-photo-override-grid input, .air-photo-override-grid select { width: 100%; min-height: 36px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); color: var(--ink); font: inherit; font-size: 0.78rem; font-weight: 700; letter-spacing: normal; text-transform: none; }

.air-photo-override-grid input { padding: 0 10px; }

.air-photo-override-grid input[type="file"] { padding: 7px 9px; color: var(--muted); }

.air-advanced-access { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; padding-top: 14px; }

.air-advanced-access h3 { margin: 0 0 5px; font-size: 0.92rem; }

.air-advanced-access p { margin: 0; color: var(--muted); font-size: 0.76rem; line-height: 1.45; }

.air-setup-note { border: 1px solid var(--line); border-radius: 8px; background: rgba(36, 124, 95, 0.05); }

.air-setup-note p { margin: 0; padding: 0 14px 14px; color: var(--muted); font-size: 0.74rem; line-height: 1.5; }

.air-setup-note code { color: var(--ink); font-size: 0.72rem; }

.air-diagnostics { border: 1px solid var(--line); border-radius: 8px; }

.air-diagnostics .air-stats { padding: 0 12px; }

.air-error-log { display: grid; gap: 7px; margin: 0 12px 12px; }

.air-error-log p { margin: 0; padding: 9px 10px; border-radius: 7px; background: rgba(182, 107, 39, 0.08); color: var(--muted); font-size: 0.72rem; line-height: 1.4; }

.air-error-log time { display: block; margin-bottom: 2px; color: var(--accent-2); font-size: 0.66rem; font-weight: 730; }

.air-actions { display: flex; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

.air-public-controls { justify-content: flex-start; margin-bottom: 14px; }

.radius-control { display: inline-flex; min-height: 34px; align-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); overflow: hidden; }

.radius-control > span { padding: 0 8px 0 10px; color: var(--muted); font-size: 0.75rem; font-weight: 720; }

.track-control { display: inline-flex; min-height: 34px; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); color: var(--muted); font-size: 0.75rem; font-weight: 720; cursor: pointer; }

.trail-option::before { width: 18px; height: 0; border-top: 3px solid var(--trail-color); content: ""; }

.trail-option-estimated { --trail-color: #e4a64f; }

.trail-option-estimated::before { border-top-style: dashed; }

.trail-option-observed { --trail-color: #42d6a4; }

.trail-option-point::before { width: 9px; height: 9px; border: 1px solid rgba(20, 33, 25, 0.7); border-radius: 50%; background: #42d6a4; }

.air-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }

.air-stats > div { min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, 0.38); }

.air-stats span, .air-stats strong { display: block; overflow-wrap: anywhere; }

.air-stats span { color: var(--muted); font-size: 0.75rem; }

.air-stats strong { margin-top: 4px; font-size: 0.95rem; }

.air-stats small { display: block; margin-top: 6px; color: var(--muted); font-size: 0.72rem; line-height: 1.35; }

.provider-status::before { display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: #9aa39c; content: ""; }

.air-map-experience { position: relative; display: grid; gap: 10px; }

.air-map-experience > .air-view-options { margin-bottom: 0; }

.air-radar-toolbar { display: none; }

.air-fullscreen-tabs { display: none; }

.air-active-filter-bar { display: flex; min-width: 0; flex-wrap: wrap; gap: 7px; align-items: center; padding: 8px 10px; border: 1px solid rgba(36, 124, 95, 0.28); border-radius: 8px; background: rgba(36, 124, 95, 0.08); }

.air-active-filter-bar[hidden] { display: none; }

.air-active-filter-bar > strong { color: var(--ink); font-size: 0.72rem; white-space: nowrap; }

.air-filter-chips { display: flex; min-width: 0; flex: 1 1 260px; flex-wrap: wrap; gap: 5px; }

.air-filter-chips button, .air-filter-bar-clear { display: inline-flex; min-height: 28px; align-items: center; gap: 6px; padding: 3px 9px; border: 1px solid rgba(36, 124, 95, 0.3); border-radius: 999px; background: var(--panel-strong); color: var(--accent); font: inherit; font-size: 0.66rem; font-weight: 760; cursor: pointer; }

.air-filter-chips button span { font-size: 0.88rem; line-height: 1; }

.air-filter-bar-clear { margin-left: auto; border-color: var(--line); color: var(--muted); }

.air-filters { margin: 0; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, 0.24); }

.air-filters > summary small, .air-filter-group > summary small { color: var(--muted); font-size: 0.7rem; font-weight: 680; }

.air-filter-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.air-filter-heading p { margin: 0; color: var(--muted); font-size: 0.74rem; line-height: 1.45; }

.air-filter-group { border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); }

.air-filter-options { display: grid; gap: 10px; padding: 12px 14px 14px; border-top: 1px solid var(--line); }

.air-filter-options > p { margin: 0; color: var(--muted); font-size: 0.7rem; line-height: 1.45; }

.air-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.air-filter-options label { display: grid; min-width: 0; gap: 5px; color: var(--muted); font-size: 0.7rem; font-weight: 720; }

.air-filter-check { display: flex !important; grid-column: 1 / -1; flex-direction: row; align-items: center; gap: 8px !important; }

.air-map-shell { position: relative; }

.air-map { width: 100%; height: clamp(400px, 62vh, 620px); overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #dce4df; }

.air-coverage-label { position: absolute; z-index: 500; top: 10px; left: 50%; padding: 6px 10px; transform: translateX(-50%); border: 1px solid rgba(182, 107, 39, 0.45); border-radius: 999px; background: rgba(27, 32, 28, 0.86); color: #fff; font-size: 0.7rem; font-weight: 730; pointer-events: none; backdrop-filter: blur(8px); }

.aircraft-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }

.aircraft-badge { display: inline-flex !important; min-height: 22px; align-items: center; padding: 0 8px; border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 999px; background: rgba(255, 255, 255, 0.09); color: rgba(255, 255, 255, 0.82) !important; font-size: 0.62rem !important; font-weight: 780; line-height: 1 !important; white-space: nowrap; }

.aircraft-badge[data-state="local"] { border-color: rgba(66, 214, 164, 0.46); background: rgba(66, 214, 164, 0.16); color: #bff7de !important; }

.air-map .leaflet-control-attribution { font-size: 10px; }

.air-map-location-control { overflow: hidden; border: 1px solid rgba(18, 29, 23, 0.22) !important; border-radius: 4px !important; background: #fff; box-shadow: 0 1px 5px rgba(10, 16, 12, 0.22); }

.air-map-location-button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; background: #fff; color: #17211b; cursor: pointer; }

.air-map-location-button:hover, .air-map-location-button:focus-visible { background: #f3f8f5; color: var(--accent); outline: none; }

.air-map-location-button[disabled] { opacity: 0.68; cursor: progress; }

.air-map-location-button[aria-busy="true"] svg { animation: air-location-pulse 0.95s ease-in-out infinite; }

@keyframes air-location-pulse {
  0%, 100% { opacity: 0.55; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.04); }
}

.airport-marker-shell { border: 0; background: transparent; }

.airport-marker { position: relative; display: inline-flex; min-width: 34px; min-height: 22px; align-items: center; justify-content: center; padding: 0 7px; border: 1px solid rgba(255, 255, 255, 0.82); border-radius: 999px; background: rgba(27, 32, 28, 0.82); color: #fff; font-size: 0.58rem; font-weight: 840; letter-spacing: 0.04em; box-shadow: 0 3px 12px rgba(10, 16, 12, 0.28); }

.airport-marker::before { width: 10px; height: 10px; margin-right: 4px; background: currentColor; clip-path: polygon(50% 0, 59% 37%, 100% 54%, 100% 68%, 58% 61%, 54% 100%, 46% 100%, 42% 61%, 0 68%, 0 54%, 41% 37%); content: ""; }

.airport-popup { display: grid; width: min(250px, 68vw); gap: 3px; color: #19201c; line-height: 1.35; }

.airport-popup strong { font-size: 0.9rem; }

.airport-popup span, .airport-popup small { color: #526057; font-size: 0.74rem; }

.aircraft-icon-shell { border: 0; background: transparent; }

.aircraft-icon { display: grid; width: 38px; height: 38px; place-items: center; transform: rotate(var(--aircraft-heading)); line-height: 1; }

.aircraft-symbol { display: block; width: 38px; height: 38px; overflow: visible; }

.aircraft-symbol.light, .aircraft-symbol.yellow { color: #f2c84b; }

.aircraft-symbol.large, .aircraft-symbol.blue { color: #2d80c9; }

.aircraft-symbol.rotorcraft { color: #63d889; }

.aircraft-symbol.fighter { color: #9b6cf0; }

.aircraft-symbol.gray { color: #8c9890; }

.aircraft-icon.on-ground .aircraft-symbol:not(.gray) { color: #d8893f; }

.aircraft-icon.subdued { opacity: 0.3; }

.aircraft-filtered-shell { display: grid !important; place-items: center; }

.aircraft-filtered-dot { display: block; width: 8px; height: 8px; border: 1px solid rgba(255, 255, 255, 0.82); border-radius: 50%; background: #718078; box-shadow: 0 1px 4px rgba(25, 32, 28, 0.25); opacity: 0.64; }

.aircraft-cluster-shell { border: 0; background: transparent; }

.aircraft-cluster { display: grid; width: 38px; height: 38px; place-items: center; border: 2px solid rgba(255, 255, 255, 0.9); border-radius: 50%; background: var(--accent); color: #fff; font-size: 0.78rem; font-weight: 800; box-shadow: 0 4px 16px rgba(25, 32, 28, 0.34); }

.aircraft-cluster.subdued { opacity: 0.3; }

.air-popup { display: grid; width: min(270px, 68vw); gap: 4px; color: #19201c; line-height: 1.35; }

.air-popup strong { font-size: 0.95rem; }

.air-popup span, .air-popup small { color: #526057; font-size: 0.76rem; }

.air-popup .air-popup-alert { color: #a65322; font-weight: 750; }

.air-map-foot { display: grid; gap: 7px; }

.air-replay { display: grid; gap: 8px; padding: 10px 12px; border: 1px solid rgba(36, 124, 95, 0.3); border-radius: 8px; background: color-mix(in srgb, var(--panel-strong) 92%, var(--accent) 8%); box-shadow: 0 5px 18px rgba(10, 16, 12, 0.08); }

.air-replay[hidden] { display: none; }

.air-replay-heading, .air-replay-export { display: flex; align-items: center; justify-content: space-between; gap: 8px; }

.air-replay-heading > span { display: grid; min-width: 0; gap: 1px; }

.air-replay-heading strong { color: var(--ink); font-size: 0.78rem; }

.air-replay-heading small, .air-replay-export > span { overflow: hidden; color: var(--muted); font-size: 0.65rem; text-overflow: ellipsis; white-space: nowrap; }

.air-replay-timeline { display: grid; grid-template-columns: auto minmax(120px, 1fr) auto auto; gap: 9px; align-items: center; }

.air-replay-range-label { display: flex; min-width: 0; }

.air-replay-range-label input { width: 100%; accent-color: var(--accent); cursor: pointer; }

.air-replay-toggle, .air-replay-live, .air-replay-export button { min-height: 30px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel-strong); color: var(--ink); font: inherit; font-size: 0.66rem; font-weight: 780; cursor: pointer; }

.air-replay-toggle { min-width: 68px; border-color: rgba(36, 124, 95, 0.4); color: var(--accent); }

.air-replay-live:disabled { opacity: 0.48; cursor: default; }

.air-replay-timeline time { min-width: 72px; color: var(--muted); font-size: 0.66rem; font-variant-numeric: tabular-nums; text-align: center; }

.air-replay-speed { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 0.63rem; font-weight: 720; }

.air-replay-speed select { min-height: 30px; padding: 4px 25px 4px 8px; border: 1px solid var(--line); border-radius: 999px; background-color: var(--panel-strong); color: var(--ink); font: inherit; font-size: 0.66rem; font-weight: 760; }

.air-replay-export { justify-content: flex-end; }

.air-replay-export > span { margin-right: auto; }

.air-map-legend { color: var(--muted); font-size: 0.72rem; }

.air-map-legend summary { display: flex; width: max-content; max-width: 100%; align-items: center; gap: 6px; padding: 4px 2px; cursor: pointer; list-style: none; }

.air-map-legend summary::-webkit-details-marker { display: none; }

.air-map-legend p { margin: 3px 0 0; padding: 8px 10px; border-left: 2px solid var(--accent); color: var(--muted); line-height: 1.45; }

.air-trail-legend { display: flex; flex-wrap: wrap; gap: 7px 13px; }

.air-trail-legend:not(.show-observed) .observed, .air-trail-legend:not(.show-estimated) .estimated, .air-trail-legend:not(.show-estimated) .projected, .air-trail-legend:not(.show-points) .point, .air-trail-legend:not(.show-gaps) .gap { display: none; }

.air-trail-legend span { display: inline-flex; align-items: center; gap: 6px; }

.air-trail-legend span::before { width: 22px; height: 0; border-top: 3px solid var(--trail-color); content: ""; }

.air-trail-legend .observed { --trail-color: #42d6a4; }

.air-trail-legend .estimated { --trail-color: #e4a64f; }

.air-trail-legend .estimated::before { border-top-style: dashed; }

.air-trail-legend .projected { --trail-color: #f3bd73; }

.air-trail-legend .projected::before { border-top-style: dashed; }

.air-trail-legend .gap { --trail-color: #ffcf70; }

.air-trail-legend .gap::before { border-top-style: dotted; }

.air-trail-legend .point::before { width: 8px; height: 8px; border: 1px solid rgba(20, 33, 25, 0.7); border-radius: 50%; background: #42d6a4; }

.air-type-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 8px 0 0; }

.air-type-legend span { display: inline-flex; align-items: center; gap: 5px; }

.air-type-legend span::before { width: 10px; height: 10px; border: 1px solid rgba(23, 33, 25, 0.6); border-radius: 50%; background: var(--legend-color); content: ""; }

.air-type-legend .light { --legend-color: #f2c84b; }

.air-type-legend .large { --legend-color: #2d80c9; }

.air-type-legend .rotorcraft { --legend-color: #63d889; }

.air-type-legend .fighter { --legend-color: #9b6cf0; }

.air-type-legend .ground { --legend-color: #d8893f; }

.air-type-legend .unknown { --legend-color: #8c9890; }

.legend-dot { width: 8px; height: 8px; margin-left: 8px; border-radius: 50%; background: #718078; }

.air-map-experience.is-fullscreen, .air-map-experience:fullscreen, .air-map-experience:-webkit-full-screen { --air-drawer-height: min(42dvh, 460px); position: fixed; z-index: 5000; inset: 0; display: grid; height: 100dvh; padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); grid-template-rows: auto auto minmax(0, 1fr) auto auto; gap: 8px; overflow: hidden; background: var(--bg); }

.air-map-experience.is-fullscreen .air-radar-toolbar, .air-map-experience:fullscreen .air-radar-toolbar, .air-map-experience:-webkit-full-screen .air-radar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 0 8px; }

.air-map-experience.is-fullscreen .air-radar-toolbar, .air-map-experience:fullscreen .air-radar-toolbar, .air-map-experience:-webkit-full-screen .air-radar-toolbar { grid-row: 1; }

.air-map-experience.is-fullscreen .air-active-filter-bar, .air-map-experience:fullscreen .air-active-filter-bar, .air-map-experience:-webkit-full-screen .air-active-filter-bar { grid-row: 2; margin: 0; }

.air-map-experience.is-fullscreen .air-map-shell, .air-map-experience:fullscreen .air-map-shell, .air-map-experience:-webkit-full-screen .air-map-shell { z-index: 1; grid-row: 3; min-height: 0; overflow: hidden; }

.air-map-experience.is-fullscreen .air-map, .air-map-experience:fullscreen .air-map, .air-map-experience:-webkit-full-screen .air-map { height: 100%; border-radius: 6px; }

.air-map-experience.is-fullscreen .air-fullscreen-tabs, .air-map-experience:fullscreen .air-fullscreen-tabs, .air-map-experience:-webkit-full-screen .air-fullscreen-tabs { display: grid; grid-row: 4; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }

.air-fullscreen-tabs button { min-height: 38px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-strong); color: var(--muted); font: inherit; font-size: 0.72rem; font-weight: 800; cursor: pointer; }

.air-fullscreen-tabs button[aria-selected="true"] { border-color: rgba(36, 124, 95, 0.55); background: rgba(36, 124, 95, 0.14); color: var(--accent); }

.air-fullscreen-tabs button:disabled { opacity: 0.44; cursor: default; }

.air-map-experience.is-fullscreen .air-map-foot, .air-map-experience:fullscreen .air-map-foot, .air-map-experience:-webkit-full-screen .air-map-foot,
.air-map-experience.is-fullscreen .air-filters, .air-map-experience:fullscreen .air-filters, .air-map-experience:-webkit-full-screen .air-filters,
.air-map-experience.is-fullscreen .air-view-options, .air-map-experience:fullscreen .air-view-options, .air-map-experience:-webkit-full-screen .air-view-options { position: relative; z-index: 20; display: none; grid-row: 5; width: 100%; max-height: var(--air-drawer-height); margin: 0; overflow: auto; background: var(--panel-strong); box-shadow: 0 12px 42px rgba(10, 16, 12, 0.34); }

.air-map-experience[data-fullscreen-drawer="replay"].is-fullscreen .air-map-foot, .air-map-experience[data-fullscreen-drawer="replay"]:fullscreen .air-map-foot, .air-map-experience[data-fullscreen-drawer="replay"]:-webkit-full-screen .air-map-foot,
.air-map-experience[data-fullscreen-drawer="filters"].is-fullscreen .air-filters, .air-map-experience[data-fullscreen-drawer="filters"]:fullscreen .air-filters, .air-map-experience[data-fullscreen-drawer="filters"]:-webkit-full-screen .air-filters,
.air-map-experience[data-fullscreen-drawer="map"].is-fullscreen .air-view-options, .air-map-experience[data-fullscreen-drawer="map"]:fullscreen .air-view-options, .air-map-experience[data-fullscreen-drawer="map"]:-webkit-full-screen .air-view-options { display: block; }

.air-map-experience.is-fullscreen .air-map-legend, .air-map-experience:fullscreen .air-map-legend, .air-map-experience:-webkit-full-screen .air-map-legend,
.air-map-experience.is-fullscreen .air-filters > summary, .air-map-experience:fullscreen .air-filters > summary, .air-map-experience:-webkit-full-screen .air-filters > summary,
.air-map-experience.is-fullscreen .air-view-options > summary, .air-map-experience:fullscreen .air-view-options > summary, .air-map-experience:-webkit-full-screen .air-view-options > summary { display: none; }

.air-map-experience.is-fullscreen .air-filter-body, .air-map-experience:fullscreen .air-filter-body, .air-map-experience:-webkit-full-screen .air-filter-body,
.air-map-experience.is-fullscreen .air-view-options .air-public-controls, .air-map-experience:fullscreen .air-view-options .air-public-controls, .air-map-experience:-webkit-full-screen .air-view-options .air-public-controls { border-top: 0; }

.air-map-experience.is-fullscreen .air-advanced, .air-map-experience:fullscreen .air-advanced, .air-map-experience:-webkit-full-screen .air-advanced { display: none; }

.air-radar-open { overflow: hidden; }

.nearby-aircraft { margin-top: 18px; }

.aircraft-list { display: grid; }

.aircraft-list-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-top: 1px solid var(--line); }

.aircraft-list-card:first-child { border-top: 0; }

.aircraft-row { display: grid; width: 100%; grid-template-columns: 38px minmax(0, 1fr) minmax(90px, auto); gap: 12px; align-items: center; padding: 12px 6px; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }

.aircraft-row:hover { background: rgba(36, 124, 95, 0.08); }

.aircraft-row-icon { display: grid; width: 34px; height: 34px; place-items: center; transform: rotate(calc(var(--aircraft-heading) - 45deg)); border-radius: 50%; background: rgba(36, 124, 95, 0.13); color: var(--accent); }

.aircraft-row > span:last-child { text-align: right; }

.aircraft-row strong, .aircraft-row span { display: block; overflow-wrap: anywhere; }

.aircraft-row strong { font-size: 0.9rem; }

.aircraft-row span { margin-top: 3px; color: var(--muted); font-size: 0.76rem; }

.aircraft-details-toggle { align-self: center; margin-right: 6px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel-strong); color: var(--accent); font: inherit; font-size: 0.72rem; font-weight: 780; cursor: pointer; }

.aircraft-details-toggle:hover, .aircraft-details-toggle:focus-visible { border-color: rgba(36, 124, 95, 0.35); background: rgba(36, 124, 95, 0.09); outline: none; }

.aircraft-details { display: grid; grid-column: 1 / -1; gap: 12px; padding: 0 10px 14px 56px; }

.aircraft-photo-card { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }

.aircraft-photo-card img { display: block; width: 100%; max-height: 150px; object-fit: cover; border-radius: 7px; background: rgba(36, 124, 95, 0.08); }

.aircraft-photo-card p { margin: 0; color: var(--muted); font-size: 0.72rem; line-height: 1.45; }

.aircraft-photo-card.placeholder { grid-template-columns: 1fr; border-style: dashed; }

.aircraft-photo-links { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 4px !important; }

.aircraft-detail-group { display: grid; gap: 8px; }

.aircraft-detail-group h3 { margin: 0; color: var(--accent); font-size: 0.76rem; letter-spacing: 0.04em; text-transform: uppercase; }

.aircraft-detail-group dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; margin: 0; }

.aircraft-detail-group div { min-width: 0; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }

.aircraft-detail-group dt { color: var(--muted); font-size: 0.62rem; font-weight: 760; letter-spacing: 0.04em; text-transform: uppercase; }

.aircraft-detail-group dd { margin: 3px 0 0; color: var(--ink); font-size: 0.82rem; font-weight: 740; overflow-wrap: anywhere; }

.aircraft-detail-group a { color: var(--accent); text-decoration-thickness: 0.08em; text-underline-offset: 0.18em; }

/* Keep the selected-flight card's geometry steady while route and photo enrichment arrive. */
.air-selection-panel.has-media-slot { grid-template-columns: minmax(0, 1fr) 150px; grid-template-areas: "main photo" "badges photo" "meta meta"; align-items: end; gap: 7px 16px; padding-right: 48px; }

.air-selection-panel.has-media-slot .air-selection-main { min-height: 55px; }

.air-selection-panel.has-media-slot .aircraft-badges { min-height: 20px; align-self: start; justify-self: start; align-content: start; max-width: none; gap: 4px; }

.air-selection-route { min-height: 1em; }

.air-selection-route-placeholder { visibility: hidden; }

.air-selection-photo-placeholder { display: grid; place-items: center; }

.air-selection-photo-placeholder::before { color: rgba(255, 255, 255, 0.34); content: "✈"; font-size: 1.65rem; transform: rotate(-18deg); }

.air-selection-sheet-toggle { display: none; }

@media (max-width: 820px) {
.air-toolbar { flex-direction: column; }

.air-actions { width: 100%; justify-content: flex-start; }

.air-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.air-map { height: min(70dvh, 620px); min-height: 520px; }
}

@media (max-width: 560px) {
.air-map-panel { padding: 16px; }

.air-map-experience:not(.is-fullscreen) > .air-active-filter-bar { order: -2; }

.air-map-experience:not(.is-fullscreen) > .air-map-shell { order: -1; }

.air-advanced-access { grid-template-columns: 1fr; }

.air-actions { display: grid; grid-template-columns: 1fr 1fr; }

.air-photo-override-grid { grid-template-columns: 1fr; }

.air-actions .air-location-panel-host { grid-column: 1 / -1; }

.air-presets-body { grid-template-columns: 1fr; }

.air-preset-actions { justify-content: flex-start; }

.air-saved-presets { display: grid; grid-template-columns: 1fr 1fr; }

.air-saved-presets label { grid-column: 1 / -1; }

.air-presets > summary { min-height: 46px; }

.air-presets > summary small { max-width: 44%; text-align: right; }

.air-filter-heading { align-items: flex-start; flex-direction: column; }

.air-filter-grid { grid-template-columns: 1fr; }

.air-stats { grid-template-columns: 1fr; }

.air-map { height: min(72dvh, 620px); min-height: 520px; }

.air-map-shell { --air-selection-sheet-height: 224px; --air-selection-peek-height: 76px; }

.air-selection-panel, .air-selection-panel.has-media-slot, .air-selection-panel.has-photo { right: 0; bottom: 0; left: 0; box-sizing: border-box; width: 100%; height: var(--air-selection-sheet-height); min-height: var(--air-selection-sheet-height); max-height: var(--air-selection-sheet-height); grid-template-columns: minmax(0, 1fr) clamp(118px, 36vw, 144px); grid-template-areas: "main photo" "badges photo" "meta meta"; gap: 6px 10px; align-items: start; padding: 23px 38px 12px 12px; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 14px 14px 0 0; overflow: hidden; transition: height 180ms ease, min-height 180ms ease, max-height 180ms ease; }

.air-selection-panel.has-media-slot .air-selection-main { min-height: 58px; }

.air-selection-panel.has-media-slot .aircraft-badges { min-height: 44px; }

.air-selection-panel.has-media-slot .air-selection-photo { width: 100%; height: 88px; min-height: 88px; align-self: start; }

.air-selection-sheet-toggle { position: absolute; z-index: 2; top: 0; left: 50%; display: grid; width: 68px; height: 24px; place-items: center; padding: 0; transform: translateX(-50%); border: 0; background: transparent; cursor: pointer; }

.air-selection-sheet-toggle > span { width: 34px; height: 4px; margin: 0; border-radius: 999px; background: rgba(255, 255, 255, 0.48); }

.air-selection-panel[data-sheet-state="peek"] { height: var(--air-selection-peek-height); min-height: var(--air-selection-peek-height); max-height: var(--air-selection-peek-height); grid-template-columns: minmax(0, 1fr); grid-template-areas: "main"; padding-top: 18px; }

.air-selection-panel[data-sheet-state="peek"] .air-selection-main { display: grid; min-height: 0; align-content: center; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; }

.air-selection-panel[data-sheet-state="peek"] .air-selection-main strong { align-self: end; }

.air-selection-panel[data-sheet-state="peek"] .air-selection-route { align-self: end; overflow: hidden; margin: 0; text-overflow: ellipsis; white-space: nowrap; }

.air-selection-panel[data-sheet-state="peek"] .air-selection-main > span:last-child, .air-selection-panel[data-sheet-state="peek"] .aircraft-badges, .air-selection-panel[data-sheet-state="peek"] .air-selection-meta, .air-selection-panel[data-sheet-state="peek"] .air-selection-photo { display: none; }

.air-map-shell:has(.air-selection-panel[data-sheet-state="summary"]:not([hidden])) .leaflet-bottom { bottom: calc(var(--air-selection-sheet-height) + 2px); }

.air-map-shell:has(.air-selection-panel[data-sheet-state="peek"]:not([hidden])) .leaflet-bottom { bottom: calc(var(--air-selection-peek-height) + 2px); }

.air-map-legend summary { width: 100%; justify-content: center; }

.air-replay { padding: 9px 10px; }

.air-replay-timeline { grid-template-columns: auto minmax(80px, 1fr) auto; gap: 7px; }

.air-replay-speed { grid-column: 2 / -1; justify-content: flex-end; }

.air-replay-export > span { max-width: 46%; }

.air-map-experience.is-fullscreen, .air-map-experience:fullscreen, .air-map-experience:-webkit-full-screen { --air-drawer-height: min(38dvh, 340px); display: grid; height: 100dvh; grid-template-rows: auto auto minmax(250px, 1fr) auto auto; gap: 7px; padding-bottom: max(10px, env(safe-area-inset-bottom)); overflow: hidden; }

.air-map-experience.is-fullscreen .air-map-shell, .air-map-experience:fullscreen .air-map-shell, .air-map-experience:-webkit-full-screen .air-map-shell { min-height: 0; }

.air-map-experience.is-fullscreen .air-map, .air-map-experience:fullscreen .air-map, .air-map-experience:-webkit-full-screen .air-map { min-height: 0; }

.air-map-experience.is-fullscreen .air-map-shell, .air-map-experience:fullscreen .air-map-shell, .air-map-experience:-webkit-full-screen .air-map-shell { --air-selection-sheet-height: 210px; }

.air-map-experience.is-fullscreen .air-selection-panel, .air-map-experience:fullscreen .air-selection-panel, .air-map-experience:-webkit-full-screen .air-selection-panel { right: 0; bottom: 0; left: 0; height: var(--air-selection-sheet-height); min-height: var(--air-selection-sheet-height); max-height: var(--air-selection-sheet-height); padding: 23px 38px 12px 12px; border-radius: 14px 14px 0 0; overflow: hidden; }

.air-map-experience.is-fullscreen .air-selection-panel[data-sheet-state="peek"], .air-map-experience:fullscreen .air-selection-panel[data-sheet-state="peek"], .air-map-experience:-webkit-full-screen .air-selection-panel[data-sheet-state="peek"] { height: var(--air-selection-peek-height); min-height: var(--air-selection-peek-height); max-height: var(--air-selection-peek-height); padding-top: 18px; }

.air-map-experience.is-fullscreen .aircraft-badge, .air-map-experience:fullscreen .aircraft-badge, .air-map-experience:-webkit-full-screen .aircraft-badge { min-height: 19px; padding: 0 7px; font-size: 0.55rem !important; }

.air-map-experience.is-fullscreen .air-map-foot, .air-map-experience:fullscreen .air-map-foot, .air-map-experience:-webkit-full-screen .air-map-foot { padding-bottom: 0; }

.air-map-experience.is-fullscreen .air-active-filter-bar, .air-map-experience:fullscreen .air-active-filter-bar, .air-map-experience:-webkit-full-screen .air-active-filter-bar { flex-wrap: nowrap; overflow-x: auto; }

.air-map-experience.is-fullscreen .air-filter-chips, .air-map-experience:fullscreen .air-filter-chips, .air-map-experience:-webkit-full-screen .air-filter-chips { flex-wrap: nowrap; flex-basis: auto; }

.air-map-experience.is-fullscreen .air-filter-chips button, .air-map-experience:fullscreen .air-filter-chips button, .air-map-experience:-webkit-full-screen .air-filter-chips button { flex: 0 0 auto; }

.air-map-experience.is-fullscreen .air-filter-bar-clear, .air-map-experience:fullscreen .air-filter-bar-clear, .air-map-experience:-webkit-full-screen .air-filter-bar-clear { flex: 0 0 auto; }

.aircraft-list-card { grid-template-columns: 1fr; }

.aircraft-row { grid-template-columns: 34px minmax(0, 1fr); }

.aircraft-row > span:last-child { grid-column: 2; text-align: left; }

.aircraft-details-toggle { width: max-content; margin: 0 0 10px 46px; }

.aircraft-details { padding: 0 6px 14px 46px; }

.aircraft-photo-card { grid-template-columns: 1fr; }

.aircraft-photo-card img { max-height: 190px; }

.aircraft-detail-group dl { grid-template-columns: 1fr; }
}
