/* Shared 2D/3D shell; scoped overrides for the original directory layout. */
body.airport-map-focus{--focus-left:calc(var(--sidebar-collapsed,74px) + 20px);--focus-right:20px;--focus-top:20px}
body.airport-map-focus .main,body.airport-map-focus .dir-wrap{margin:0!important;padding:0!important;position:static!important;pointer-events:none}
body.airport-map-focus #profilePanel{position:fixed!important;inset:var(--focus-top) var(--focus-right) 20px var(--focus-left)!important;width:auto!important;height:auto!important;max-width:none!important;margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important;pointer-events:none!important}
body.airport-map-focus #profilePanel::before,body.airport-map-focus #profilePanel::after{display:none!important}
body.airport-map-focus .airport-focus-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:74px;padding:13px 16px 13px 164px;background:rgba(11,17,25,.96);border:1px solid var(--border,#303944);border-radius:14px;box-shadow:0 6px 22px #0003;pointer-events:auto}
body.airport-map-focus .airport-focus-identity{display:flex;align-items:center;gap:18px;min-width:0}
body.airport-map-focus .airport-focus-identity .ap-title{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;margin:0}
body.airport-map-focus .airport-focus-identity .icao{font-size:1.1rem;color:#e2bd68}
body.airport-map-focus .airport-focus-identity .airport-name-main{font-size:1.08rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:35vw}
body.airport-map-focus .airport-focus-identity .airport-city-line{font-size:.75rem;margin-top:3px;color:var(--muted,#acb6c5)}
body.airport-map-focus .airport-focus-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
body.airport-map-focus .airport-focus-actions .fav-image-btn{position:static!important;inset:auto!important;width:34px;height:34px;padding:6px;font-size:.9rem}
body.airport-map-focus .airport-focus-actions .airport-mode-switch{white-space:nowrap}
body.airport-map-focus [class^="airport-focus-"] button,body.airport-map-focus button[class^="airport-focus-"]{border:1px solid #3b4653;background:#17212d;color:#f1f4f8;border-radius:8px;padding:8px 12px;font-size:.76rem;font-weight:700;cursor:pointer}
body.airport-map-focus button[class^="airport-focus-"]:hover{border-color:#d5b26e;background:#222c36}
body.airport-map-focus button[class^="airport-focus-"]:focus-visible{outline:2px solid #e3bd67;outline-offset:3px}
body.airport-map-focus .airport-focus-status{position:absolute;top:86px;left:0;pointer-events:auto}
body.airport-map-focus .airport-focus-status .chip{background:#101923;border:1px solid #38414a;font-size:.7rem;box-shadow:0 4px 12px #0002}
body.airport-map-focus .top-search{position:fixed!important;left:calc(var(--focus-left) + 14px)!important;top:calc(var(--focus-top) + 17px)!important;width:140px!important;max-width:none!important;padding:0!important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;z-index:1100!important;pointer-events:auto}
body.airport-map-focus .top-search::before{display:none!important}
body.airport-map-focus .airport-focus-search-toggle{width:100%;min-height:36px;text-align:left}
body.airport-map-focus:not(.airport-search-open) .top-search>:not(.airport-focus-search-toggle){display:none!important}
body.airport-map-focus.airport-search-open .top-search{width:min(360px,calc(100vw - var(--focus-left) - 20px))!important;max-height:calc(100dvh - 100px)!important;padding:15px!important;background:#101821!important;border:1px solid #3b4653!important;border-radius:14px;box-shadow:0 18px 50px #0006!important;overflow:auto;top:calc(var(--focus-top) + 83px)!important;left:var(--focus-left)!important}
body.airport-map-focus.airport-search-open .airport-focus-search-toggle{display:none}
body.airport-map-focus .top-search-left{display:grid!important;grid-template-columns:1fr;gap:12px;width:100%!important;min-width:0!important}
body.airport-map-focus .top-search-title{display:block!important;width:auto!important;min-width:0!important}
body.airport-map-focus .top-search-title .sub{display:none}
body.airport-map-focus .top-search-input{width:100%!important;min-width:0!important;max-width:100%;display:block!important}
body.airport-map-focus .top-search-input input{width:100%;min-width:0;box-sizing:border-box}
body.airport-map-focus .top-search-right{display:flex!important;width:100%!important;gap:8px;margin:12px 0 0!important;justify-content:flex-start}
body.airport-map-focus .top-search-right .mini-note,body.airport-map-focus .top-search-right .badge-pill{display:none}
body.airport-map-focus #fav-container{position:static!important;inset:auto!important;width:100%!important;max-height:none!important;display:block!important;margin:15px 0 0!important;padding:12px 0 0!important;border:0!important;border-top:1px solid #303a45!important;background:none!important;overflow:visible!important}
body.airport-map-focus .fav-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px}
body.airport-map-focus .fav-card{min-height:0!important;padding:10px!important}
body.airport-map-focus .results-pop{position:relative;top:auto;margin-top:8px;max-height:260px;overflow:auto}
body.airport-map-focus #airportFocusDetails{position:absolute!important;top:86px!important;left:auto!important;right:0!important;bottom:auto!important;width:min(430px,100%)!important;height:auto!important;min-height:0!important;max-height:calc(100dvh - 190px)!important;display:flex!important;flex-direction:column!important;gap:0!important;margin:0!important;padding:16px!important;overflow:auto!important;background:#101821!important;border:1px solid #384452!important;border-radius:14px;box-shadow:0 18px 48px #0006!important;pointer-events:auto!important;z-index:1005}
body.airport-map-focus #airportFocusDetails[hidden]{display:none!important}
/* The details drawer uses plain labelled rows, rather than stacked badges. */
body.airport-map-focus #airportFocusDetails{width:min(420px,100%)!important;padding:0!important;gap:0!important;align-items:stretch!important;justify-content:flex-start!important;background:#0e1721!important;max-height:calc(100dvh - var(--focus-top) - var(--focus-header-height,80px) - 100px)!important}
body.airport-map-focus #airportFocusDetails,body.airport-map-focus #airportFocusDetails *{box-sizing:border-box}
body.airport-map-focus #airportFocusDetails>*,body.airport-map-focus #airportFocusDetails .airport-details-section{flex-shrink:0}
body.airport-map-focus #airportFocusDetails .airport-details-heading{display:flex;align-items:center;gap:12px;padding:19px 22px;border-bottom:1px solid #293440;background:#131e29}
body.airport-map-focus #airportFocusDetails .airport-details-heading>div:not(.airport-details-logo){flex:1;min-width:0}
body.airport-map-focus #airportFocusDetails h2{margin:0;font-size:1rem;font-weight:700;line-height:1.4}
body.airport-map-focus #airportFocusDetails .airport-details-heading p{margin:3px 0 0;color:#a6b5c4;font-size:.75rem;font-weight:400}
body.airport-map-focus #airportFocusDetails .airport-focus-details-close{margin:0;align-self:center;width:30px;height:30px;padding:0;font-size:21px;font-weight:400;background:transparent;border:0}
body.airport-map-focus #airportFocusDetails .airport-details-logo{width:36px;height:36px;min-height:0;position:relative;flex:none;overflow:hidden;border-radius:7px}
body.airport-map-focus #airportFocusDetails .airport-details-logo img{width:100%;height:100%;object-fit:contain}
body.airport-map-focus #airportFocusDetails .airport-details-section{padding:17px 22px!important;border:0!important;border-bottom:1px solid #26323e!important;display:block!important;min-height:0!important;max-height:none!important;width:100%!important;background:none!important}
body.airport-map-focus #airportFocusDetails h3{font-size:.67rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#d4b875;margin:0 0 9px}
body.airport-map-focus #airportFocusDetails .airport-details-row{display:grid;grid-template-columns:85px minmax(0,1fr);align-items:baseline;gap:12px;padding:6px 0}
body.airport-map-focus #airportFocusDetails .airport-details-row[hidden]{display:none!important}
body.airport-map-focus #airportFocusDetails .airport-details-label{font-size:.75rem;font-weight:400;color:#9fadb9}
body.airport-map-focus #airportFocusDetails .airport-details-value{font-size:.76rem;font-weight:500;min-width:0;color:#edf2f6;overflow-wrap:anywhere}
body.airport-map-focus #airportFocusDetails .airport-details-value .chip{border:0!important;border-radius:0!important;padding:0!important;margin:0!important;background:none!important;box-shadow:none!important;font-size:.76rem!important;font-weight:500!important;line-height:1.6;white-space:normal;gap:4px}
body.airport-map-focus #airportFocusDetails .airport-details-value .chip>i{display:none}
body.airport-map-focus #airportFocusDetails .airport-details-value #weather-summary-text,body.airport-map-focus #airportFocusDetails .airport-details-value #runway-summary-text{font-weight:500!important}
body.airport-map-focus #airportFocusDetails .airport-details-value strong{font-size:.88rem;font-weight:600}
body.airport-map-focus #airportFocusDetails .airport-details-section .kpi-strip{display:grid!important;grid-template-columns:1fr 1fr;gap:8px 25px;margin:0;padding:0}
body.airport-map-focus #airportFocusDetails .kpi-strip .kpi{display:flex;justify-content:space-between;padding:5px 0!important;border:0!important;background:none!important;border-radius:0;box-shadow:none}
body.airport-map-focus #airportFocusDetails .kpi .mut{font-size:.73rem;font-weight:400;color:#9fadb9}
body.airport-map-focus #airportFocusDetails .kpi .val{font-size:.8rem;font-weight:600}
body.airport-map-focus #airportFocusDetails .airport-details-actions{display:flex;gap:10px;padding:17px 22px}
body.airport-map-focus #airportFocusDetails .airport-details-actions .wallpaper-btn{margin:0;min-height:34px;width:auto!important;padding:8px 10px;background:#192430;border-color:#394858;color:#dbe4eb;border-radius:7px;font-size:.65rem;flex:1}
body.airport-map-focus #airportFocusDetails .airport-details-scenery{margin:0;padding:0 22px 18px;border:0}
body.airport-map-focus #airportFocusDetails .airport-details-scenery summary{font-size:.75rem;color:#b2c0cc;cursor:pointer;padding:3px 0}
body.airport-map-focus #airportFocusDetails .airport-details-scenery #airportAddonPanel{border:0;border-radius:0;background:none;margin-top:12px;min-height:0}
body.airport-map-focus #airportFocusDetails .airport-addon-card{padding:0;grid-template-columns:42px minmax(0,1fr);gap:12px}
body.airport-map-focus #airportFocusDetails .airport-addon-logo{height:42px;min-height:0;border-radius:6px}
body.airport-map-focus #airportFocusDetails .airport-addon-kicker,body.airport-map-focus #airportFocusDetails .airport-addon-paid{display:none}
body.airport-map-focus #airportFocusDetails .airport-addon-creator{font-size:.78rem}
body.airport-map-focus #airportFocusDetails .airport-details-scenery:has(#airportAddonPanel[hidden]){display:none}
body.airport-map-focus #airportFocusDetails section.airport-details-section{padding:17px 22px!important}
body.airport-map-focus .airport-focus-details-close{align-self:flex-end;margin-bottom:10px}
body.airport-map-focus #airportFocusDetails .airport-city-panel{display:none!important}
body.airport-map-focus #airportFocusDetails .airport-core{display:block!important;min-height:0!important;padding:0!important;border:0!important;height:auto!important}
body.airport-map-focus #airportFocusDetails .airport-core>div:empty{display:none}
body.airport-map-focus #airportFocusDetails .meta-line{display:flex!important;gap:7px!important;margin:0 0 16px!important;flex-wrap:wrap}
body.airport-map-focus #airportFocusDetails .meta-line .chip{display:inline-flex!important;white-space:normal;font-size:.73rem!important}
body.airport-map-focus #airportFocusDetails .airport-fuel-panel{display:block!important;width:100%;min-height:0!important;padding:0!important;border:0!important}
body.airport-map-focus #airportFocusDetails .fuel-card{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px}
body.airport-map-focus #airportFocusDetails .airport-logo-panel{display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;min-height:0!important;height:auto!important;padding:14px 0!important;border:0!important}
body.airport-map-focus #airportFocusDetails .airport-logo-box{display:block!important;width:60px;height:52px;min-height:0!important;flex:none}
body.airport-map-focus #airportFocusDetails .airport-logo-box img{width:100%;height:100%;object-fit:contain}
body.airport-map-focus #airportFocusDetails .wallpaper-btn{width:auto!important;flex:1;font-size:.62rem}
body.airport-map-focus #airportFocusDetails .airport-top-meta{position:static!important;display:block!important;margin:0!important;padding:12px 0!important;border-top:1px solid #303b46!important;min-height:0!important}
body.airport-map-focus #airportFocusDetails .airport-fact-strip{display:flex!important;flex-wrap:wrap;gap:7px}
body.airport-map-focus #airportFocusDetails .airport-fact-strip .chip:not(#weather-summary-row):not(#runway-summary-row){display:inline-flex!important}
body.airport-map-focus #airportFocusDetails .kpi-strip{display:flex!important;margin-top:12px;gap:7px;flex-wrap:wrap}
body.airport-map-focus #airportAddonPanel{position:static!important;inset:auto!important;display:block;width:100%!important;min-height:0!important;margin-top:12px;border-radius:9px;box-shadow:none!important}
body.airport-map-focus #airportAddonPanel[hidden]{display:none!important}
body.airport-map-focus .airport-focus-traffic{position:absolute!important;top:auto!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:auto!important;min-height:0!important;max-height:calc(100dvh - 185px)!important;margin:0!important;padding:0!important;background:rgba(10,16,24,.97)!important;border:1px solid #34404b!important;border-radius:13px!important;overflow:hidden!important;pointer-events:auto;box-shadow:0 8px 26px #0003!important;display:block!important}
body.airport-map-focus .airport-focus-traffic-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}
body.airport-map-focus .airport-focus-traffic-state{color:var(--muted,#a7b2c2);font-size:.72rem}
body.airport-map-focus .airport-focus-traffic:not(.airport-focus-open)>:not(.airport-focus-traffic-head){display:none!important}
body.airport-map-focus .airport-focus-traffic .traffic-resize-handle{display:none!important}
body.airport-map-focus .airport-focus-traffic>.section-tabs{display:flex!important;justify-content:flex-start!important;flex-wrap:wrap;padding:10px 14px!important;gap:7px;margin:0!important;background:none!important;border-top:1px solid #293640!important}
body.airport-map-focus .airport-focus-traffic>.section-tabs::before{display:none!important}
body.airport-map-focus .airport-focus-traffic .tab-chip,body.airport-map-focus .airport-focus-traffic #trafficExpandBtn{display:inline-flex!important}
body.airport-map-focus .airport-focus-traffic>.section{max-height:min(340px,45dvh)!important;overflow:auto!important;padding:12px!important}
body.airport-map-focus #profilePanel.traffic-expanded .airport-focus-traffic>.section{max-height:calc(100dvh - 280px)!important}
body.airport-map-focus .airport-map-zoom-control{top:112px!important;right:20px!important;z-index:1000}
body.airport-map-focus .leaflet-top.leaflet-right{top:265px;right:10px}
body.airport-map-focus .airport-layer-control{padding:0;overflow:hidden;background:#101821}
body.airport-map-focus .airport-layer-control:not(.airport-focus-layers-open)>:not(.airport-focus-layer-toggle){display:none!important}
body.airport-map-focus .airport-layer-control.airport-focus-layers-open{padding:10px}
body.airport-map-focus .airport-focus-layer-toggle{width:100%}
body.airport-map-focus #profilePanel{z-index:1001!important}
body.airport-map-focus .airport-map-zoom-control{top:calc(var(--focus-top) + 94px)!important}
body.airport-map-focus .airport-layer-control{position:relative!important;inset:auto!important;transform:none!important;width:auto!important;max-width:220px!important;padding:0!important;display:block!important}
body.airport-map-focus .airport-layer-control.airport-focus-layers-open{padding:10px!important}
body.airport-map-focus:not(.airport-search-open) #fav-container{display:none!important}
body.airport-map-focus .top-search{height:auto!important;min-height:0!important;display:block!important;right:auto!important;bottom:auto!important}
body.airport-map-focus .osm-status-pill{left:var(--focus-left)!important;bottom:88px!important;top:auto!important}
body.airport-map-focus{--focus-top:calc(var(--portal-topbar-h,0px) + var(--dev-impersonate-banner-h,0px) + 20px)}
body.airport-map-focus.airport-map-only .airport-focus-bar,body.airport-map-focus.airport-map-only .airport-focus-status{display:none!important}
body.airport-map-focus .airport-focus-status{top:calc(var(--focus-header-height,74px) + 12px)}
body.airport-map-focus #airportFocusDetails{top:calc(var(--focus-header-height,74px) + 12px)!important}
@media(max-width:1100px){body.airport-map-focus .airport-focus-identity .iata,body.airport-map-focus .airport-focus-identity .flag-img{display:none}body.airport-map-focus .airport-focus-identity{gap:10px}body.airport-map-focus .airport-focus-identity .airport-name-main{max-width:24vw}}
@media(max-width:760px){body.airport-map-focus{--focus-left:12px;--focus-right:12px;--focus-top:12px}body.airport-map-focus .airport-focus-bar{padding:12px;min-height:110px;align-items:flex-start;flex-wrap:wrap;gap:8px}body.airport-map-focus .airport-focus-identity{width:100%;gap:12px}body.airport-map-focus .airport-focus-identity .airport-name-main{max-width:53vw;font-size:1rem}body.airport-map-focus .airport-focus-actions{margin-left:auto;padding-left:122px;gap:6px}body.airport-map-focus .top-search{top:77px!important;left:24px!important;width:120px!important}body.airport-map-focus.airport-search-open .top-search{top:136px!important;left:12px!important;width:calc(100vw - 24px)!important}body.airport-map-focus .airport-focus-status{top:126px;max-width:calc(100% - 60px)}body.airport-map-focus #airportFocusDetails{top:126px!important;max-height:calc(100dvh - 220px)!important}body.airport-map-focus .airport-map-zoom-control{top:178px!important;right:12px!important}body.airport-map-focus .leaflet-top.leaflet-right{top:328px;right:2px}body.airport-map-focus .airport-focus-traffic-state{display:none}body.airport-map-focus .airport-focus-traffic>.section-tabs{gap:6px}body.airport-map-focus .airport-traffic-loading{white-space:normal}body.airport-map-focus .airport-lower-panel .traffic-grid{grid-template-columns:1fr!important}body.airport-map-focus .airport-focus-traffic .board-wrap{overflow:auto}body.airport-map-focus .airport-focus-traffic .board-row{min-width:560px!important}body.airport-map-focus .airport-focus-traffic>.section{max-height:40dvh!important}}
@media(max-width:760px){body.airport-map-focus{--focus-top:calc(var(--portal-topbar-h,0px) + var(--dev-impersonate-banner-h,0px) + 12px)}body.airport-map-focus .top-search{top:calc(var(--focus-top) + 65px)!important;width:100px!important}body.airport-map-focus.airport-search-open .top-search{top:calc(var(--focus-top) + 124px)!important;width:calc(100vw - 24px)!important}body.airport-map-focus .airport-focus-actions{padding-left:108px;gap:6px}body.airport-map-focus .airport-focus-actions .fav-image-btn{width:28px;height:30px}body.airport-map-focus .airport-focus-actions .airport-mode-switch{font-size:11px;padding:5px 7px}body.airport-map-focus .airport-focus-actions button.airport-focus-details-toggle{font-size:11px;padding:6px 8px}body.airport-map-focus .airport-map-zoom-control{top:calc(var(--focus-top) + 166px)!important}}
