*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;-webkit-overflow-scrolling:touch;background:#0a0e14;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0a0e14;display:flex;align-items:center;justify-content:center;transition:opacity .8s ease,visibility .8s ease}#loading-screen.done{opacity:0;visibility:hidden;pointer-events:none}#loading-content{display:flex;flex-direction:column;align-items:center;gap:2px}#loading-bar-track{width:180px;height:2px;background:#00e6761a;border-radius:1px;margin-top:16px;overflow:hidden}#loading-bar-fill{height:100%;width:0%;background:#00e676;border-radius:1px;transition:width .3s ease}#loading-status{font-family:Share Tech Mono,monospace;font-size:9px;letter-spacing:2px;color:#00e67659;margin-top:8px;text-transform:uppercase}#logo{position:absolute;top:16px;left:16px;z-index:10;display:flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none;pointer-events:none}.logo-mark{display:flex;align-items:center;gap:0;font-family:Share Tech Mono,monospace;font-size:26px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;line-height:1}.logo-on{color:#e0e0e0}.logo-vectr{color:#00e676}.logo-dot{color:#00e676;font-size:30px;line-height:1}.logo-tagline{font-family:Share Tech Mono,monospace;font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:#00e67680;margin-top:2px}#scanline-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,230,118,.015) 2px,rgba(0,230,118,.015) 4px)}#coords-display{position:absolute;bottom:56px;left:16px;z-index:11;font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:1px;color:#00e67699;pointer-events:none;-webkit-user-select:none;user-select:none}#status-bar{position:absolute;bottom:120px;right:16px;z-index:11;font-family:Share Tech Mono,monospace;font-size:9px;letter-spacing:1.5px;color:#00e67666;pointer-events:none;-webkit-user-select:none;user-select:none;text-align:right}.mapboxgl-ctrl-scale{background:#0a0e14b3!important;border-color:#00e67666!important;color:#00e67699!important;font-family:Share Tech Mono,monospace!important;font-size:10px!important;letter-spacing:1px!important;padding:2px 6px!important}.mapboxgl-ctrl-group{background:#0a0e14d9!important;border:1px solid rgba(0,230,118,.2)!important;border-radius:4px!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mapboxgl-ctrl-group button{border-bottom:1px solid rgba(0,230,118,.1)!important}.mapboxgl-ctrl-group button span{filter:invert(1) brightness(.7) sepia(1) hue-rotate(80deg) saturate(3)}.mapboxgl-ctrl-attrib{background:#0a0e1499!important;color:#ffffff4d!important;font-size:10px!important}.mapboxgl-ctrl-attrib a{color:#00e67666!important}.mapboxgl-ctrl-logo{display:none!important}.mapboxgl-user-location-dot{background-color:#00e676!important;box-shadow:0 0 8px #00e67699!important;animation:locPulse 2s ease-in-out infinite!important}@keyframes locPulse{0%,to{box-shadow:0 0 6px #00e67680}50%{box-shadow:0 0 18px #00e676e6,0 0 40px #00e6764d}}#wx-info{position:absolute;top:0;right:-380px;z-index:20;width:360px;max-width:90vw;height:100%;background:#080c12eb;border-left:1px solid rgba(0,230,118,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:Share Tech Mono,monospace;color:#00e676cc;transition:right .3s ease;overflow-y:auto;overflow-x:hidden}#wx-info.open{right:0}#wx-info-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(0,230,118,.15);font-size:12px;letter-spacing:2px;color:#00e67699}#wx-info-actions{display:flex;gap:8px}#wx-info-actions button{background:none;border:1px solid rgba(0,230,118,.2);border-radius:3px;color:#00e67699;font-family:Share Tech Mono,monospace;font-size:14px;padding:4px 8px;cursor:pointer;transition:all .2s}#wx-info-actions button:hover{border-color:#00e67680;color:#00e676}#wx-info-body{padding:12px 16px}.wx-section-label{font-size:10px;letter-spacing:2px;color:#00e67666;margin-bottom:8px;margin-top:16px;display:flex;align-items:center;gap:8px}.wx-section-label:first-child{margin-top:0}.wx-cache-tag{font-size:8px;padding:1px 5px;border:1px solid rgba(0,230,118,.25);border-radius:2px;color:#00e67680}.wx-current-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.wx-field{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;border-bottom:1px solid rgba(0,230,118,.06)}.wx-label{font-size:10px;letter-spacing:1px;color:#00e67666}.wx-value{font-size:12px;color:#00e676d9}.wx-condition{margin-top:8px;font-size:11px;letter-spacing:1px;color:#00e67680;text-align:center;padding:6px;border:1px solid rgba(0,230,118,.1);border-radius:3px}.wx-hourly{display:flex;gap:2px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;scrollbar-color:rgba(0,230,118,.2) transparent}.wx-hour{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;border:1px solid rgba(0,230,118,.08);border-radius:3px;min-width:52px}.wx-hour-time{font-size:9px;color:#00e67666;letter-spacing:.5px}.wx-hour-temp{font-size:13px;color:#00e676d9}.wx-hour-wind{font-size:9px;color:#00e67680}.wx-hour-pop{font-size:9px;color:#64b4ff99}.wx-daily{display:flex;flex-direction:column;gap:2px}.wx-day{display:flex;align-items:center;gap:12px;padding:5px 6px;border-bottom:1px solid rgba(0,230,118,.06);font-size:11px}.wx-day-name{width:36px;color:#00e67680;letter-spacing:1px}.wx-day-temps{flex:1;color:#00e676cc}.wx-day-wind{color:#00e67680;font-size:10px}.wx-day-pop{width:30px;text-align:right;color:#64b4ff99;font-size:10px}.wx-alerts{margin-bottom:12px}.wx-alert{padding:8px 10px;border:1px solid rgba(255,100,100,.3);border-radius:3px;margin-bottom:6px;background:#ff32320f}.wx-alert-event{font-size:11px;letter-spacing:1px;color:#ff7878e6;margin-bottom:2px}.wx-alert-source{font-size:9px;color:#ff787866;margin-bottom:4px}.wx-alert-desc{font-size:10px;color:#ffc8c880;line-height:1.4}.wx-no-key,.wx-error{text-align:center;padding:24px 12px;font-size:11px;letter-spacing:1.5px;color:#00e67659}.ov-slider-row{display:flex;align-items:center;gap:8px;padding:5px 12px;min-width:0}.ov-slider-label{font-size:9px;letter-spacing:1.5px;color:#00e67659;white-space:nowrap}.ov-slider-val{font-size:10px;color:#00e6768c;min-width:30px;text-align:right}#wx-opacity{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;height:3px;background:#00e67626;border-radius:2px;outline:none;cursor:pointer}#wx-opacity::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#00e676;box-shadow:0 0 6px #00e67680;cursor:pointer}#wx-opacity::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#00e676;box-shadow:0 0 6px #00e67680;border:none;cursor:pointer}.tab-text{font-size:9px;letter-spacing:2px;color:#00e67680}.tab-code{font-size:11px;letter-spacing:1.5px;color:#00e676}#overlay-sidebar{position:absolute;top:0;right:0;z-index:15;height:100%;display:flex;flex-direction:row;pointer-events:none;font-family:Share Tech Mono,monospace}#overlay-toggle{align-self:center;padding:12px 6px;background:#0a0e14e6;border:1px solid rgba(0,230,118,.25);border-right:none;border-radius:4px 0 0 4px;color:#00e676b3;font-family:Share Tech Mono,monospace;font-size:10px;letter-spacing:2px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);writing-mode:vertical-lr;text-orientation:mixed;transition:border-color .2s,color .2s;-webkit-user-select:none;user-select:none;pointer-events:auto;flex-shrink:0}#overlay-toggle:hover{border-color:#00e67680;color:#00e676}#overlay-sidebar-inner{width:220px;height:100%;background:#080c12f0;border-left:1px solid rgba(0,230,118,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;margin-right:-220px;transition:margin-right .3s ease}#overlay-sidebar.open #overlay-sidebar-inner{margin-right:0}#overlay-sidebar-header{padding:14px 16px;border-bottom:1px solid rgba(0,230,118,.15);font-size:12px;letter-spacing:2px;color:#00e67699;flex-shrink:0}#overlay-menu{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0;scrollbar-width:thin;scrollbar-color:rgba(0,230,118,.2) transparent}.ov-section{font-size:9px;letter-spacing:2px;color:#00e67659;padding:8px 12px 4px;border-top:1px solid rgba(0,230,118,.1)}.ov-section:first-child{border-top:none;padding-top:4px}.ov-row{display:flex;align-items:center;gap:8px;padding:5px 12px;cursor:pointer;font-size:11px;letter-spacing:1px;color:#00e6768c;transition:background .15s,color .15s}.ov-row:hover{background:#00e6760a;color:#00e676cc}.ov-row input[type=checkbox],.as-toggle-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid rgba(0,230,118,.3);border-radius:2px;background:transparent;cursor:pointer;position:relative;flex-shrink:0}.ov-row input[type=checkbox]:checked,.as-toggle-row input[type=checkbox]:checked{background:#00e67633;border-color:#00e67699}.ov-row input[type=checkbox]:checked:after,.as-toggle-row input[type=checkbox]:checked:after{content:"";position:absolute;top:1px;left:3px;width:4px;height:7px;border:solid #00e676;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.ov-swatch,.as-toggle-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.ov-label,.as-toggle-label{flex:1}.ov-hint{font-size:8px;letter-spacing:1px;color:#00e6764d;margin-left:4px}#airspace-toggles-inner .as-toggle-row{display:flex;align-items:center;gap:8px;padding:5px 12px;cursor:pointer;font-size:11px;letter-spacing:1px;color:#00e6768c;transition:background .15s,color .15s}#airspace-toggles-inner .as-toggle-row:hover{background:#00e6760a;color:#00e676cc}#wind-legend{position:absolute;bottom:96px;left:16px;z-index:10;display:flex;flex-direction:column;gap:3px;font-family:Share Tech Mono,monospace;pointer-events:none;-webkit-user-select:none;user-select:none}.wind-legend-title{font-size:9px;letter-spacing:2px;color:#ffffff80}.wind-legend-bar{width:140px;height:6px;border-radius:2px;border:1px solid rgba(255,255,255,.15)}.wind-legend-labels{display:flex;justify-content:space-between;width:140px;font-size:8px;letter-spacing:.5px;color:#ffffff73}#ap-sidebar{position:absolute;top:0;left:0;z-index:15;height:100%;display:flex;flex-direction:row;pointer-events:none;font-family:Share Tech Mono,monospace;color:#00e676cc}#ap-sidebar-inner{width:320px;max-width:80vw;height:100%;background:#080c12f0;border-right:1px solid rgba(0,230,118,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;margin-left:-320px;transition:margin-left .3s ease}#ap-sidebar.open #ap-sidebar-inner{margin-left:0}#ap-trigger{align-self:center;padding:12px 6px;background:#0a0e14e6;border:1px solid rgba(0,230,118,.25);border-left:none;border-radius:0 4px 4px 0;color:#00e676b3;font-family:Share Tech Mono,monospace;font-size:10px;letter-spacing:2px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);writing-mode:vertical-lr;text-orientation:mixed;transition:border-color .2s,color .2s;-webkit-user-select:none;user-select:none;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}#ap-trigger:hover{border-color:#00e67680;color:#00e676}#ap-sidebar-header{padding:14px 16px;border-bottom:1px solid rgba(0,230,118,.15);font-size:12px;letter-spacing:2px;color:#00e67699;flex-shrink:0}#ap-search{margin:10px 12px;padding:8px 10px;background:#00e6760a;border:1px solid rgba(0,230,118,.2);border-radius:3px;color:#00e676;font-family:Share Tech Mono,monospace;font-size:11px;letter-spacing:1px;outline:none;flex-shrink:0}#ap-search::placeholder{color:#00e6764d}#ap-search:focus{border-color:#00e67680}#ap-detail{padding:10px 14px 6px;border-bottom:1px solid rgba(0,230,118,.12);flex-shrink:0;max-height:45vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,230,118,.2) transparent}#ap-detail[hidden]{display:none}.ap-detail-name{font-size:13px;letter-spacing:1px;color:#00e676e6;margin-bottom:2px}.ap-detail-codes{font-size:11px;color:#00e67680;letter-spacing:1.5px;margin-bottom:4px}.ap-detail-tags{font-size:9px;letter-spacing:1px;color:#00e67659;margin-bottom:6px}.ap-detail-section{font-size:9px;letter-spacing:2px;color:#00e6764d;margin-top:8px;margin-bottom:4px;padding-top:6px;border-top:1px solid rgba(0,230,118,.08)}.ap-detail-row{display:flex;justify-content:space-between;align-items:baseline;padding:2px 0}.ap-detail-key{font-size:9px;letter-spacing:1px;color:#00e67666}.ap-detail-val{font-size:11px;color:#00e676bf}.ap-detail-val.ap-dim{color:#00e6764d;font-size:10px}#ap-list{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(0,230,118,.2) transparent}.ap-list-section{font-size:9px;letter-spacing:2px;color:#00e6764d;padding:10px 14px 4px;border-top:1px solid rgba(0,230,118,.1);position:sticky;top:0;background:#080c12f5;z-index:1}.ap-list-section:first-child{border-top:none}.ap-row{display:flex;align-items:center;gap:10px;padding:7px 14px;cursor:pointer;transition:background .15s}.ap-row:hover{background:#00e6760a}.ap-row.active{background:#00e67614}.ap-row-icao{font-size:11px;letter-spacing:1.5px;color:#00e676;width:48px;flex-shrink:0}.ap-row-name{flex:1;font-size:10px;letter-spacing:.5px;color:#00e6768c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap-row-iata{font-size:9px;letter-spacing:1px;color:#00e6764d;flex-shrink:0}.ap-list-empty{text-align:center;padding:24px 12px;font-size:11px;letter-spacing:1.5px;color:#00e67640}.airport-marker{cursor:pointer;animation:markerPulse 2s ease-in-out infinite}@keyframes markerPulse{0%,to{filter:drop-shadow(0 0 4px rgba(0,230,118,.4))}50%{filter:drop-shadow(0 0 12px rgba(0,230,118,.8))}}.wind-barb-marker{display:flex;flex-direction:column;align-items:center;pointer-events:none}.wind-barb-arrow{line-height:0}.wind-barb-label{font-family:Share Tech Mono,monospace;font-size:10px;letter-spacing:1px;color:#00e676;text-shadow:0 1px 3px rgba(0,0,0,.8);margin-top:-4px}@media(max-width:480px){#logo{top:12px;left:12px}.logo-mark{font-size:20px}.logo-tagline{font-size:8px}#coords-display{bottom:50px;left:12px;font-size:10px}#ap-trigger,#overlay-toggle{padding:16px 10px;font-size:11px;min-width:36px}.ov-row input[type=checkbox],.as-toggle-row input[type=checkbox]{width:18px;height:18px;min-width:18px}.ov-row input[type=checkbox]:checked:after,.as-toggle-row input[type=checkbox]:checked:after{top:2px;left:5px;width:5px;height:9px}.ov-row,#airspace-toggles-inner .as-toggle-row{padding:10px 12px;min-height:44px}.ap-row{padding:10px 14px;min-height:44px}#overlay-sidebar-inner{width:240px;margin-right:-240px}#overlay-sidebar.open #overlay-sidebar-inner{margin-right:0}#wx-info{width:100%;max-width:100vw;right:-100%}#ap-sidebar-inner{width:85vw;max-width:320px;margin-left:-85vw}#ap-sidebar.open #ap-sidebar-inner{margin-left:0}#ap-search{font-size:16px}#ap-detail{max-height:35vh}.flight-popup .mapboxgl-popup-content{max-width:200px}#wind-legend{bottom:80px}.wind-legend-bar,.wind-legend-labels{width:100px}}@supports (padding: env(safe-area-inset-top)){#logo{top:calc(16px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left))}#ap-trigger{padding-left:calc(6px + env(safe-area-inset-left))}#overlay-toggle{padding-right:calc(6px + env(safe-area-inset-right))}#coords-display{bottom:calc(56px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left))}.mapboxgl-ctrl-bottom-right{right:env(safe-area-inset-right)!important;bottom:env(safe-area-inset-bottom)!important}.mapboxgl-ctrl-bottom-left{left:env(safe-area-inset-left)!important;bottom:env(safe-area-inset-bottom)!important}}.flight-popup .mapboxgl-popup-content{background:#080c12eb;border:1px solid rgba(0,230,118,.3);border-radius:4px;padding:10px 12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000080}.flight-popup .mapboxgl-popup-tip{border-top-color:#080c12eb}.flight-popup .mapboxgl-popup-close-button{color:#00e67680;font-size:16px;padding:2px 6px}.flight-popup .mapboxgl-popup-close-button:hover{color:#00e676;background:transparent}
