/* Shared CTA alignment: icon boxes never participate in a text baseline. */
button,.cta-with-icon{vertical-align:middle}
.cta-with-icon,#fleet-night.cta-with-icon{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px}
.cta-icon{display:block;flex:none;width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
button>svg,button>.cta-icon,a>.cta-icon{flex-shrink:0;align-self:center}
.scene-tools button,.small-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.small-icon{min-width:24px;min-height:24px;padding:0;flex-shrink:0}
.small-icon .cta-icon{width:16px;height:16px}
.scene-tools .cta-icon{width:18px;height:18px}
.flight-symbol,.chevron{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}
button.cta-with-icon span{align-self:center}
.attribution button.cta-with-icon{padding:1px 0;border-top:1px solid transparent}
/* One silhouette for tail artwork; logos keep their original outline. */
img.tail-artwork{object-fit:fill;mask:url('/static/tail-mask.svg') center / 100% 100% no-repeat;-webkit-mask:url('/static/tail-mask.svg') center / 100% 100% no-repeat;border-radius:0;padding:0}
.airline-tail-badge img.tail-artwork{height:auto;aspect-ratio:5/4}
/* Header action buttons share one right-aligned cluster. */
.panel-heading #close-flights{margin-left:0}

/* Airport selection replaces the former brand and duplicate switcher. */
.airport-picker{position:relative;flex:0 0 250px;width:250px}.airport-picker .brand-symbol{position:absolute;left:17px;top:50%;transform:translateY(-50%) rotate(-15deg);font-size:27px;z-index:1;pointer-events:none}.topbar .brand.airport-switch{display:block;width:100%;min-width:0;height:56px;padding:0 42px 0 55px;appearance:none;-webkit-appearance:none;border:1px solid var(--border);border-radius:14px;color:var(--text);font:600 16px var(--sans);letter-spacing:.04em;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a4b2c2' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.airport-switch option{background:#172333;color:#eef2f7;font-size:14px}
.attribution .site-name{white-space:nowrap;font-weight:600}
@media(max-width:720px){.airport-picker{flex:1 1 180px;width:auto}.airport-picker .brand-symbol{left:13px;font-size:24px}.topbar .brand.airport-switch{width:100%;height:54px;padding-left:43px;padding-right:32px;font-size:14px;border-radius:10px;background-position:right 10px center}.topbar .search-wrap{width:100%;margin-left:0}}

.topbar .search,.topbar .top-status{height:56px}
@media(max-width:720px){.topbar .search,.topbar .top-status{height:54px}}

/* Time shares the attribution size; the search trigger sits beside the picker. */
.attribution #clock{display:inline-block;flex:0 0 56px;width:56px;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:center}
.environment-panel{left:81px;right:auto;max-height:calc(100dvh - 130px - var(--operations-clearance))}
@media(max-width:720px){.environment-panel{left:65px;right:auto;top:132px;width:min(320px,calc(100vw - 79px));max-height:calc(100dvh - 145px - var(--operations-clearance))}}
/* Keep every attribution item at one explicit size on iOS, including buttons. */
.map-footer{position:fixed;left:24px;right:24px;bottom:10px;display:flex;align-items:center;gap:12px;pointer-events:none}.map-footer>*{pointer-events:auto}.map-footer .attribution{position:static;flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:7px 15px;font:9px/1.6 var(--sans);color:#fff;text-shadow:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}.attribution>*,.attribution button.cta-with-icon{font:inherit!important;line-height:inherit!important;letter-spacing:normal;-webkit-text-size-adjust:100%;text-size-adjust:100%}.attribution .scale{margin-left:auto}.search-trigger{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:11px}.search-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.search-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:24px max(24px,calc((100vw - 900px)/2));border:0;border-radius:0;background:#101d2cfb;overflow:hidden;color:var(--text)}.search-dialog[open]{display:flex;flex-direction:column}.search-dialog::backdrop{background:#101d2c}.search-dialog-header{display:flex;align-items:center;justify-content:space-between;flex:none;margin-bottom:24px}.search-dialog-header h2{font-size:23px;font-weight:600;margin:0}.search-dialog-header button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px}.search-dialog .search-wrap{position:static;width:100%;min-height:0;flex:1;display:flex;flex-direction:column}.search-dialog .search{height:58px;flex:none;border-radius:12px}.search-dialog .search input{font-size:16px}.search-dialog #clear-search{font-size:12px;color:var(--muted);white-space:nowrap;padding:10px}.search-count{font-size:12px;margin:18px 0 10px;color:var(--muted)}#search-list-wrap{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0}.search-dialog .search-results{position:static;max-height:none;overflow:visible;padding:0}.search-dialog .search-results button{padding:18px 14px;border-bottom:1px solid var(--border);border-radius:0;font-size:15px;gap:20px;text-align:left}.search-dialog .search-results button:hover{background:#b9d9f60c}.search-dialog .search-results small{font-size:11px;white-space:nowrap}.search-dialog .empty-search{font-size:14px;padding:25px 0}
@media(max-width:720px){.map-footer{left:14px;right:14px;bottom:max(7px,env(safe-area-inset-bottom));gap:10px}.map-footer .attribution{font-size:9px;gap:4px 10px}.attribution .scale{display:none}.search-dialog{padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.search-dialog-header{margin-bottom:18px}.search-dialog-header h2{font-size:20px}}

/* Bottom annotations participate in layout instead of sharing fixed coordinates. */
.attribution .footer-metrics{margin-left:auto;display:inline-flex;flex-wrap:nowrap;align-items:center;gap:18px;white-space:nowrap;flex-shrink:0}
.footer-metrics .scale{margin-left:0;flex:none;white-space:nowrap}
.footer-metrics .scale i{flex:none}
.footer-metrics .scene-version{position:static;display:inline;white-space:nowrap;font:inherit;color:inherit;text-shadow:none}
.scene-hud{position:fixed;left:28px;right:81px;bottom:var(--operations-clearance);display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;pointer-events:none}
.scene-hud .view-caption{position:static;min-width:0;flex:1;display:flex;flex-wrap:wrap;gap:5px 10px;align-items:center}
.scene-hud .view-caption #view-name{overflow-wrap:anywhere}
.scene-hud .view-caption small{display:block;flex:none;white-space:nowrap;margin:0}
.scene-hud .caption-line{flex:none}
.scene-hud .gesture-hint{position:static;flex:none;max-width:45%;text-align:right;line-height:1.5}
@media(max-width:1000px){.scene-hud .gesture-hint{display:none}}
@media(max-width:720px){.scene-hud{left:14px;right:65px;gap:8px}.scene-hud .view-caption{column-gap:8px}.footer-metrics .scene-version{display:none}.attribution .footer-metrics{display:none}}
