html,body,#root{width:100%;height:100%;margin:0}*{box-sizing:border-box}body{color:#f5f7f9;background:#111820;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{-webkit-user-select:none;user-select:none}.app{grid-template-rows:68px auto minmax(0,1fr) 34px;width:100%;height:100%;display:grid;overflow:hidden}.topbar{background:#111820;border-bottom:1px solid #2b3540;justify-content:space-between;align-items:center;padding:0 22px;display:flex}.topbar h1{letter-spacing:.08em;margin:0;font-size:20px;line-height:1}.topbar-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.area-tools{align-items:center;gap:6px;display:flex}.area-location-field{height:34px;display:flex}.area-location-field input,.area-radius-field input{color:#f5f7f9;background:#17222c;border:1px solid #526170;outline:none}.area-location-field input{border-radius:6px 0 0 6px;width:185px;padding:6px 9px}.area-location-field button,.area-save-button,.area-clear-button{color:#f5f7f9;cursor:pointer;background:#263440;border:1px solid #526170;font-size:11px;font-weight:700}.area-location-field button{border-left:0;border-radius:0 6px 6px 0}.area-radius-field{color:#9eb0be;border:1px solid #526170;border-radius:6px;align-items:center;height:34px;font-size:11px;display:flex}.area-radius-field input{border:0;border-radius:6px 0 0 6px;width:57px;height:100%;padding:5px 3px 5px 8px}.area-radius-field span{padding-right:7px}.area-save-button{background:#087f8c;border-radius:6px;height:34px;padding:0 10px}.area-clear-button{border-radius:6px;width:28px;height:34px}.area-tools button:disabled{opacity:.45;cursor:default}.area-radius-label{color:#07323b;white-space:nowrap;font-weight:800}.file-picker-button{color:#f5f7f9;cursor:pointer;background:#263440;border:1px solid #526170;border-radius:6px;justify-content:center;align-items:center;min-height:34px;padding:7px 11px;font-size:12px;font-weight:700;display:inline-flex}.file-picker-button:hover{background:#31414e;border-color:#83919e}.file-picker-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.subtitle{color:#8e9ba8;letter-spacing:.05em;margin-top:4px;font-size:11px;display:block}.status{color:#aeb8c2;align-items:center;font-size:12px;display:flex}.status-dot{background:#43c47a;border-radius:50%;width:8px;height:8px;margin-right:7px}.error-text{color:#ff9a9a}@media (width<=760px){.app{grid-template-rows:92px auto minmax(0,1fr) 34px}.topbar{padding:0 12px}.topbar-actions{flex-direction:column-reverse;align-items:flex-end;gap:5px}.area-tools{order:3;width:calc(100vw - 24px)}.area-location-field{flex:1}.area-location-field input{width:100%}.status{white-space:nowrap;text-overflow:ellipsis;max-width:62vw;overflow:hidden}.file-picker-button{min-height:30px;padding:5px 9px}}.filter-controls{min-height:0}.filter-controls-collapsed{background:#18212a;border-bottom:1px solid #2b3540;align-items:center;min-height:36px;padding:0 18px;display:flex}.filterbar,.categorybar,.altitudebar{border-bottom:1px solid #2b3540;align-items:center;gap:8px;padding:0 18px;display:flex}.filterbar{background:#18212a;flex-wrap:wrap;min-height:52px;padding-top:7px;padding-bottom:7px}.categorybar{background:#141c24;flex-wrap:wrap;min-height:48px;padding-top:7px;padding-bottom:7px}.altitudebar{background:#18212a;flex-wrap:wrap;min-height:48px;padding-top:7px;padding-bottom:7px}.filter-label{color:#8795a2;letter-spacing:.04em;text-transform:uppercase;min-width:74px;font-size:11px;font-weight:700}.filterbar button,.categorybar button,.altitudebar button{color:#b7c0c8;cursor:pointer;background:#202b35;border:1px solid #34404c;border-radius:6px;padding:7px 11px;transition:background .12s,border-color .12s,color .12s,opacity .12s}.filterbar button:hover,.categorybar button:hover,.altitudebar button:hover{color:#fff;border-color:#61707e}.filterbar button.active,.categorybar button.active,.altitudebar button.active{color:#fff;background:#3b4753;border-color:#7a8895}.categorybar button:not(.active){opacity:.48}.categorybar button.obstacle-filter{margin-left:5px}.categorybar button.obstacle-filter.active{border-color:#b65a5a}.category-count{background:#ffffff14;border-radius:8px;margin-left:7px;padding:1px 5px;font-size:10px;display:inline-block}.filter-count{color:#9aa7b3;margin-left:auto;font-size:12px}.notam-search{flex:0 290px;min-width:190px;margin-left:8px;position:relative}.notam-search input{color:#fff;background:#101820;border:1px solid #465563;border-radius:6px;outline:none;width:100%;padding:7px 34px 7px 10px;font-size:12px}.notam-search input::placeholder{color:#6f7e8b}.notam-search input:focus{border-color:#8293a2;box-shadow:0 0 0 2px #8293a21f}.notam-search input::-webkit-search-cancel-button{display:none}.filterbar .search-clear-button{color:#8e9ca8;background:0 0;border-color:#0000;min-width:27px;margin:0;padding:2px 7px;font-size:18px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.filterbar .search-clear-button:hover{color:#fff;background:#202b35;border-color:#465563}.notam-search-count{color:#8f9ca8;white-space:nowrap;font-size:11px}.collapsed-search-indicator{color:#d9e0e5;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#25323d;border:1px solid #617180;border-radius:6px;align-items:center;gap:7px;max-width:330px;margin-left:10px;padding:4px 8px;font-size:11px;display:inline-flex;overflow:hidden}.collapsed-search-indicator:hover{color:#fff;border-color:#91a0ad}.collapsed-search-indicator span{color:#aab5be;flex:none;font-size:15px;line-height:.8}.filter-collapse-button{white-space:nowrap;align-items:center;gap:7px;margin-left:10px;font-size:11px;display:inline-flex;color:#c5cdd4!important;padding:5px 9px!important}.filter-collapse-button span{color:#91a0ad;font-size:15px;line-height:.7}.collapsed-filter-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.filter-controls-collapsed .filter-count{margin-left:0}.filter-controls-collapsed .filter-collapse-button{cursor:pointer;background:#202b35;border:1px solid #34404c;border-radius:6px;margin-left:0}.filter-controls-collapsed .filter-collapse-button:hover{border-color:#61707e;color:#fff!important}.filter-reset-all-button{white-space:nowrap;margin-left:auto}.filter-reset-all-button:disabled{opacity:.42;cursor:default}.filter-controls-collapsed .filter-reset-all-button{color:#c5cdd4;cursor:pointer;background:#202b35;border:1px solid #34404c;border-radius:6px;padding:5px 9px;font-size:11px}.filter-controls-collapsed .filter-reset-all-button:hover:not(:disabled){color:#fff;border-color:#61707e}.category-placeholder{color:#65727f;font-size:12px}.altitude-description{color:#768491;margin-left:8px;font-size:11px}.altitude-input-group{color:#b7c0c8;align-items:center;gap:7px;font-size:12px;display:flex}.altitude-input-group label{align-items:center;gap:7px;display:flex}.altitude-band-separator{color:#8997a3}.altitude-input-group input{color:#fff;text-align:right;background:#202b35;border:1px solid #556370;border-radius:6px;outline:none;width:78px;padding:7px 8px;font-weight:700}.altitude-input-group input:focus{border-color:#93a4b3}.altitude-reset-button{color:#cbd4db;cursor:pointer;background:#202b35;border:1px solid #53616d;border-radius:6px;padding:7px 9px;font-size:11px}.altitude-reset-button:hover:not(:disabled){color:#fff;border-color:#81909c}.altitude-reset-button:disabled{opacity:.42;cursor:default}.altitude-description-error{color:#e0a0a0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-wrapper{min-width:0;min-height:0;position:relative;overflow:hidden}.map{width:100%;height:100%}.leaflet-container{background:#dce3e7}.weather-toggle{z-index:1050;color:#edf2f6;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111820eb;border:1px solid #ffffff47;border-radius:7px;align-items:center;gap:8px;min-height:34px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:14px;left:54px;box-shadow:0 3px 12px #00000040}.weather-toggle:hover,.weather-toggle.active{background:#182832fa;border-color:#7ca9bc}.weather-toggle-icon{color:#183745;letter-spacing:.05em;background:#d8e7ed;border-radius:4px;justify-content:center;align-items:center;width:25px;height:20px;font-size:9px;font-weight:900;display:inline-flex}.weather-active-dot{background:#43c47a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #43c47a26}.ctr-toggle{z-index:1050;color:#edf2f6;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111820eb;border:1px solid #ffffff47;border-radius:7px;align-items:center;gap:8px;min-height:34px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:14px;left:154px;box-shadow:0 3px 12px #00000040}.ctr-toggle:hover,.ctr-toggle.active{background:#2d261af7;border-color:#d8ad52}.ctr-toggle-icon{color:#3d2e0d;letter-spacing:.04em;background:#f1d486;border-radius:4px;justify-content:center;align-items:center;width:28px;height:20px;font-size:8px;font-weight:900;display:inline-flex}.ctr-legend{z-index:1040;color:#e8edf1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111820f0;border:1px solid #4d5660;border-radius:7px;width:285px;padding:10px 11px;position:absolute;top:56px;left:154px;box-shadow:0 4px 16px #0000004d}.ctr-legend-title{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px;display:flex}.ctr-legend-title strong{font-size:12px}.ctr-legend-title span{color:#95a0aa;font-size:9px}.ctr-legend-items{grid-template-columns:1fr 1fr;gap:5px 8px;display:grid}.ctr-legend-items span{color:#bdc6cd;align-items:center;gap:5px;font-size:9px;display:inline-flex}.ctr-legend-items i{border-top:3px solid;width:14px;height:0}.ctr-legend-items i.active{border-color:#df3d50}.ctr-legend-items i.inactive{border-color:#77848e}.ctr-legend-items i.derived{border-color:#f07832;border-top-style:dashed}.ctr-legend-items i.unknown{border-color:#d69b24}.ctr-legend small{color:#7f8b94;margin-top:8px;font-size:8px;line-height:1.35;display:block}.ctr-legend p{color:#f2dda0;background:#4d421e;border-radius:4px;margin:7px 0 0;padding:5px 6px;font-size:8px;line-height:1.3}.ctr-hover-label,.ctr-map-label{box-shadow:none;color:#fff;text-align:center;background:#141a1fe6;border:1px solid #141a1fa6;border-radius:4px;font-size:9px;font-weight:800}.ctr-map-label{padding:2px 4px;line-height:1.15}.ctr-map-label:before{display:none}.ctr-map-label.active,.ctr-map-label.notam-active{border-color:#df3d50}.ctr-map-label.inactive,.ctr-map-label.notam-inactive{border-color:#77848e}.ctr-map-label.derived-active,.ctr-map-label.derived-inactive{border-color:#f07832}.ctr-map-label.unknown,.ctr-map-label.notam-review{border-color:#d69b24}.ctr-popup{color:#25313a;font-size:11px}.ctr-popup header{border-bottom:1px solid #d7dde1;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.ctr-popup header>div{flex-direction:column;gap:2px;display:flex}.ctr-popup header strong{color:#17232b;font-size:13px}.ctr-popup header span{color:#71808b;font-size:9px}.ctr-status-badge{background:#d69b24;border-radius:5px;flex-shrink:0;padding:4px 7px;font-weight:900;color:#fff!important;font-size:9px!important}.ctr-status-badge.active,.ctr-status-badge.notam-active{background:#c92f43}.ctr-status-badge.inactive,.ctr-status-badge.notam-inactive{background:#6f7a82}.ctr-status-badge.derived-active{background:#dd6428}.ctr-status-badge.derived-inactive{background:#7d8991}.ctr-popup-grid{grid-template-columns:1fr 1fr;gap:7px 12px;margin:9px 0;display:grid}.ctr-popup-grid div{min-width:0}.ctr-popup-grid dt{color:#78858e;text-transform:uppercase;font-size:8px}.ctr-popup-grid dd{color:#26343d;margin:1px 0 0;font-weight:700}.ctr-popup-warning,.ctr-popup-note{color:#5a4515;background:#fff1cf;border-radius:4px;margin:7px 0;padding:6px 7px;line-height:1.35}.ctr-popup-note{color:#4d5a63;background:#eef2f4}.ctr-notam-button{color:#5f6c74;background:#eef1f3;border:1px solid #bcc5cb;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:9px;padding:7px 9px;font-size:10px;font-weight:900;display:flex}.ctr-notam-button.active{color:#67460e;cursor:pointer;background:#fff3d7;border-color:#d28f24}.ctr-notam-button span{font-size:8px;font-weight:700}.ctr-notam-detail{border-top:1px solid #d5dce0;margin-top:8px;padding-top:8px}.ctr-notam-detail>div{justify-content:space-between;gap:10px;display:flex}.ctr-notam-detail>div span{color:#7c8890;font-size:8px}.ctr-notam-detail>div span.active{color:#b52f3e;font-weight:800}.ctr-notam-detail p{color:#81550c;margin:4px 0;font-size:9px;font-weight:800}.ctr-notam-detail pre{color:#e9eff3;white-space:pre-wrap;background:#172029;border-radius:4px;max-height:210px;margin:5px 0 0;padding:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;line-height:1.35;overflow:auto}.ctr-popup footer{color:#87939a;border-top:1px solid #d5dce0;margin-top:9px;padding-top:7px;font-size:8px;line-height:1.35}.weather-panel{z-index:1100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#111820f5;border:1px solid #43515d;border-radius:9px;width:520px;max-width:calc(100% - 28px);max-height:calc(100% - 68px);position:absolute;bottom:14px;left:14px;overflow-y:auto;box-shadow:0 8px 30px #00000061}.weather-panel-header{background:#18212aeb;border-bottom:1px solid #34404b;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:9px 10px 9px 14px;display:flex}.weather-panel-header>div{flex-direction:column;gap:2px;display:flex}.weather-panel-header strong{color:#fff;font-size:14px}.weather-panel-header span{color:#8e9ba7;font-size:10px}.weather-close{color:#cbd3da;cursor:pointer;background:#202b35;border:1px solid #43505c;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:21px;line-height:1;display:inline-flex}.weather-close:hover{color:#fff;border-color:#768591}.weather-layer-row{border-bottom:1px solid #303b46;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.weather-layer-switch{color:#edf2f5;cursor:pointer;align-items:center;gap:9px;font-size:12px;font-weight:700;display:inline-flex}.weather-layer-switch input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.weather-switch-track{background:#35414b;border:1px solid #65727d;border-radius:10px;align-items:center;width:34px;height:19px;padding:2px;transition:border-color .12s,background .12s;display:inline-flex}.weather-switch-track span{background:#c8d0d6;border-radius:50%;width:13px;height:13px;transition:transform .12s,background .12s}.weather-layer-switch input:checked+.weather-switch-track{background:#235e73;border-color:#4eb3d4}.weather-layer-switch input:checked+.weather-switch-track span{background:#fff;transform:translate(15px)}.weather-layer-switch input:focus-visible+.weather-switch-track{outline-offset:2px;outline:2px solid #8fc8dc}.weather-layer-source{color:#84929e;white-space:nowrap;font-size:10px}.weather-layer-row-secondary{border-top:1px solid #303b46}.aviation-weather-summary{border-bottom:1px solid #303b46;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px 10px;display:flex}.flight-category-legend{flex-wrap:wrap;gap:6px 10px;display:flex}.flight-category-legend span{color:#aeb9c2;align-items:center;gap:4px;font-size:9px;font-weight:700;display:inline-flex}.flight-category-legend i{border:1px solid #ffffffb3;border-radius:50%;width:8px;height:8px}.flight-category-legend i.stale{background:#7d878f}.aviation-weather-counts{color:#8795a0;white-space:nowrap;font-size:9px}.weather-timeline{padding:12px 14px 10px;transition:opacity .12s}.weather-timeline.disabled{opacity:.45}.weather-time-summary{align-items:center;gap:8px;min-height:27px;margin-bottom:8px;display:flex}.weather-time-summary>div{align-items:baseline;gap:5px;display:inline-flex}.weather-time-summary strong{color:#fff;font-size:13px}.weather-time-summary>div>span{color:#7f8d99;font-size:9px}.weather-frame-kind{color:#dce4e9;letter-spacing:.02em;border-radius:5px;align-items:center;min-height:21px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-flex}.weather-frame-kind.analysis{background:#304957}.weather-frame-kind.current{color:#e6fff1;background:#286044}.weather-frame-kind.forecast{color:#fff4d2;background:#695421}.weather-frame-kind.unavailable{background:#3b4650}.weather-loading{color:#9cabb7;margin-left:auto;font-size:10px}.weather-playback-row{grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.weather-play-button,.weather-now-button{color:#e2e8ec;cursor:pointer;background:#202b35;border:1px solid #4d5b67;border-radius:6px;min-height:31px;padding:5px 9px;font-size:10px}.weather-play-button{padding:4px;font-size:12px}.weather-play-button:hover:not(:disabled),.weather-now-button:hover:not(:disabled){color:#fff;border-color:#80909c}.weather-play-button:disabled,.weather-now-button:disabled{opacity:.42;cursor:default}.weather-playback-row input,.weather-opacity-row input{accent-color:#4eb3d4;cursor:pointer;min-width:0}.weather-playback-row input:disabled,.weather-opacity-row input:disabled{cursor:default}.weather-timeline-scale{color:#71808c;height:17px;margin:2px 70px 4px 43px;font-size:8px;position:relative}.weather-timeline-scale span{position:absolute;top:0}.weather-timeline-scale span:first-child{left:0}.weather-timeline-scale span:nth-child(2){left:42.86%;transform:translate(-50%)}.weather-timeline-scale span:last-child{right:0}.weather-opacity-row{color:#91a0ab;grid-template-columns:auto minmax(80px,1fr) 38px;align-items:center;gap:9px;margin-top:5px;font-size:10px;display:grid}.weather-opacity-row strong{color:#cbd4da;text-align:right;font-size:10px}.weather-message{color:#aebbc5;background:#24333d;border-radius:5px;margin:0 14px 9px;padding:6px 8px;font-size:9px;line-height:1.35}.weather-message.warning{color:#f1dda0;background:#50451f}.weather-message.error{color:#ffc1c1;background:#542c2c}.weather-disclaimer{color:#71808c;border-top:1px solid #2f3a44;padding:8px 14px 10px;font-size:8px;line-height:1.35}.aviation-weather-label{box-shadow:none;color:#fff;letter-spacing:.03em;background:#111820db;border:1px solid #1118208c;border-radius:3px;margin:0;padding:1px 4px;font-size:9px;font-weight:800}.aviation-weather-label:before{display:none}.synoptic-weather-label{box-shadow:none;color:#fff;background:#005b60e0;border:1px solid #00464b8c;border-radius:3px;margin:0;padding:1px 3px;font-size:8px;font-weight:800}.synoptic-weather-label:before{display:none}.synoptic-badge{background:#007d82;border-radius:5px;padding:4px 7px;font-weight:900;color:#fff!important;font-size:9px!important}.synoptic-weather-summary{color:#9fb2bd}.synoptic-cloud-layers{color:#245157;background:#e8f3f3;border-radius:4px;margin:0 0 8px;padding:5px 7px;font-weight:700}.synoptic-legend-dot{background:#00a8a8;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.aviation-weather-popup{color:#25313a;font-size:11px}.aviation-weather-popup header{border-bottom:1px solid #d9e0e4;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.aviation-weather-popup header>div{flex-direction:column;gap:2px;display:flex}.aviation-weather-popup header strong{color:#17242d;font-size:16px}.aviation-weather-popup header span{color:#687680;font-size:10px}.flight-category-badge{border:1px solid #0000002e;border-radius:5px;justify-content:center;align-items:center;min-width:42px;min-height:24px;padding:3px 7px;font-weight:900;display:inline-flex;color:#fff!important;font-size:10px!important}.aviation-weather-observation-time{color:#64727c;margin:8px 0;font-size:9px}.aviation-weather-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin:0 0 8px;display:grid}.aviation-weather-grid div{background:#eef2f4;border-radius:4px;min-width:0;padding:5px 7px}.aviation-weather-grid dt{color:#7a8790;text-transform:uppercase;margin-bottom:1px;font-size:8px;font-weight:700}.aviation-weather-grid dd{color:#21313b;margin:0;font-size:10px;font-weight:700}.aviation-weather-present-weather{color:#304755;background:#e7eef3;border-radius:4px;margin:0 0 8px;padding:5px 7px;font-weight:700}.aviation-weather-popup section{margin-top:8px}.aviation-weather-popup h4{color:#273842;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 4px;font-size:10px;display:flex}.aviation-weather-popup h4 span{color:#71808a;font-size:8px;font-weight:500}.aviation-weather-popup pre{color:#e8eef2;white-space:pre-wrap;overflow-wrap:anywhere;background:#18242d;border-radius:4px;max-height:116px;margin:0;padding:7px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:9px;line-height:1.4;overflow:auto}.notam-group-count{min-width:18px;box-shadow:none;color:#fff;text-align:center;pointer-events:none;background:0 0;border:0;border-radius:9px;margin:0;padding:0 3px;font-size:10px;font-weight:800;line-height:18px}.notam-group-count:before{display:none}.notam-group-popup{max-height:510px;padding-right:5px;overflow-y:auto}.notam-group-header{z-index:2;color:#fff;background:#17212a;border-radius:5px;justify-content:space-between;align-items:baseline;gap:12px;margin:-2px 0 10px;padding:7px 8px;display:flex;position:sticky;top:0}.notam-group-header span{color:#aeb9c2;font-size:11px}.notam-group-item{border-bottom:1px solid #c8d0d6;margin-bottom:12px;padding-bottom:12px}.notam-group-item:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.popup-warning{color:#554500;background:#fff3cd;border-radius:4px;margin-bottom:8px;padding:6px 8px;font-size:11px;line-height:1.35}.popup-badges{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.popup-badge{color:#25313a;background:#e8edf2;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-block}.popup-status-active{color:#7f1012;background:#f4cccc}.popup-status-trigger{color:#6f4800;background:#ffe4aa}.popup-status-deactivated{color:#485761;background:#dce2e6}.popup-quality{color:#24485b;background:#dceaf2}.popup-source-note{color:#294b5d;background:#e9f3f8;border-radius:4px;margin-bottom:8px;padding:6px 8px;font-size:11px;line-height:1.35}.popup-source-note a{color:#145f88;font-weight:700}.unmappable-toggle{z-index:1050;color:#edf2f6;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#111820eb;border:1px solid #ffffff47;border-radius:7px;align-items:center;gap:9px;padding:9px 11px;transition:border-color .12s,background .12s,transform .12s;display:flex;position:absolute;top:14px;right:14px;box-shadow:0 3px 12px #00000040}.unmappable-toggle:hover{background:#18212afa;border-color:#8b9aa8}.unmappable-toggle strong{color:#18212a;background:#d0d7dd;border-radius:11px;justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 6px;font-size:11px;display:inline-flex}.unmappable-toggle-open{opacity:0;pointer-events:none}.unmappable-panel{z-index:1200;background:#111820;border-left:1px solid #35414c;flex-direction:column;width:410px;max-width:46vw;animation:.15s ease-out unmappable-slide-in;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 26px #00000052}@keyframes unmappable-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.unmappable-panel-header{background:#18212a;border-bottom:1px solid #303b46;justify-content:space-between;align-items:center;min-height:66px;padding:12px 14px 12px 16px;display:flex}.unmappable-panel-title{color:#fff;font-size:15px;font-weight:700}.unmappable-panel-subtitle{color:#8d9aa6;margin-top:3px;font-size:11px}.unmappable-close{color:#c5ced5;cursor:pointer;background:#202b35;border:1px solid #394652;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:23px;line-height:1;display:flex}.unmappable-close:hover{color:#fff;border-color:#71808d}.unmappable-panel-info{color:#8f9ca8;background:#141c24;border-bottom:1px solid #2c3741;padding:10px 16px;font-size:10px;line-height:1.4}.unmappable-filter-option{color:#c4ced7;cursor:pointer;align-items:center;gap:8px;margin-top:10px;display:flex}.unmappable-filter-option input{accent-color:#62c98b}.unmappable-reset-read{color:#e2c6c6;font:inherit;cursor:pointer;background:#2d2325;border:1px solid #6c4b4b;border-radius:5px;margin-top:11px;padding:6px 9px}.unmappable-reset-read:hover:not(:disabled){color:#fff;background:#39282b;border-color:#a66b6b}.unmappable-reset-read:disabled{opacity:.55;cursor:wait}.unmappable-list{scrollbar-width:thin;scrollbar-color:#4b5965 #141c24;flex:1;min-height:0;padding:10px;overflow-y:auto}.unmappable-card{color:#d8dfe5;background:#1b252e;border:1px solid #34404b;border-radius:8px;margin-bottom:9px;padding:12px;transition:border-color .12s,background .12s,opacity .12s}.unmappable-card-read{opacity:.66;background:#171f27;border-color:#2c363f}.unmappable-card-read .unmappable-id{color:#b8c2ca}.unmappable-card:last-child{margin-bottom:0}.unmappable-card-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;display:flex}.unmappable-card-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.unmappable-read-toggle{color:#b9c4cd;cursor:pointer;align-items:center;gap:5px;font-size:10px;font-weight:600;display:flex}.unmappable-read-toggle input{accent-color:#62c98b;margin:0}.unmappable-read-toggle input:disabled{cursor:wait}.unmappable-id{color:#fff;letter-spacing:.02em;font-size:13px}.unmappable-category{color:#d4dce3;text-transform:uppercase;letter-spacing:.03em;background:#34414d;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.unmappable-category-airspace{background:#4b3a43}.unmappable-category-activity{background:#3e4555}.unmappable-category-uas{background:#454056}.unmappable-category-obstacle{background:#56393a}.unmappable-category-aerodrome{background:#354c50}.unmappable-category-navaid_comms{background:#3a4657}.unmappable-category-other{background:#41464b}.unmappable-header{color:#c8d1d9;margin-bottom:8px;font-size:11px;font-weight:700;line-height:1.35}.unmappable-validity{color:#8e9ca8;flex-direction:column;gap:2px;margin-bottom:8px;font-size:10px;line-height:1.35;display:flex}.unmappable-validity>div{overflow-wrap:anywhere}.unmappable-validity span{color:#687784;text-transform:uppercase;min-width:38px;margin-right:4px;font-weight:700;display:inline-block}.unmappable-warning{color:#f1dfa7;background:#554c2e;border-radius:5px;margin-bottom:8px;padding:6px 7px;font-size:10px;line-height:1.35}.unmappable-reason{color:#9ca9b4;background:#78879517;border-left:3px solid #788795;margin-bottom:8px;padding:6px 7px;font-size:10px;line-height:1.35}.unmappable-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#e1e6ea;font-size:11px;line-height:1.43}.unmappable-empty{color:#86939e;text-align:center;border:1px dashed #44515d;border-radius:8px;margin:12px;padding:18px;font-size:12px;line-height:1.5}.drop-hint{z-index:900;color:#e8edf1;pointer-events:none;background:#10171ee0;border:1px solid #ffffff2e;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:9px 16px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #00000038}.drop-hint strong{font-size:12px}.drop-hint span{color:#9ba7b2;font-size:11px}.drop-overlay{z-index:1500;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c1319c7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.drop-overlay>div{background:#18212a;border:2px dashed #98a8b6;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:24px 32px;display:flex;box-shadow:0 10px 40px #00000059}.drop-overlay strong{letter-spacing:.05em;font-size:16px}.drop-overlay span{color:#9facb8;font-size:12px}footer{color:#697785;background:#111820;border-top:1px solid #2b3540;justify-content:space-between;align-items:center;padding:0 18px;font-size:10px;display:flex}@media (width<=900px){.filter-count,.altitude-description{display:none}.notam-search{flex-basis:240px}.unmappable-panel{width:390px;max-width:70vw}}@media (width<=620px){.status{display:none}.filter-label{min-width:auto}.filter-collapse-button{margin-left:auto}.collapsed-search-indicator{max-width:42vw}.unmappable-panel{width:100%;max-width:100%}.unmappable-toggle{top:10px;right:10px}.weather-toggle{min-height:32px;padding:6px 8px;top:10px;left:50px}.ctr-toggle{min-height:32px;padding:6px 8px;top:10px;left:139px}.ctr-toggle>span:nth-child(2){display:none}.ctr-legend{width:auto;top:50px;left:8px;right:8px}.weather-panel{width:auto;max-width:none;max-height:calc(100% - 58px);bottom:8px;left:8px;right:8px}.weather-time-summary{flex-wrap:wrap}.weather-loading{margin-left:0}.weather-timeline-scale{margin-right:62px}.aviation-weather-summary{flex-direction:column;align-items:flex-start;gap:7px}.aviation-weather-counts{white-space:normal}.aviation-weather-grid{grid-template-columns:1fr}}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* UI/Weather update overrides */
html,
body,
#root {
  width: 100%;
  height: 100%;
  margin: 0;
}

* {
  box-sizing: border-box;
}

body {
  font-family:
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  background: #111820;
  color: #f5f7f9;
}

button,
input {
  font: inherit;
}

button {
  user-select: none;
}

.app {
  display: grid;

  grid-template-rows:
    68px
    auto
    minmax(0, 1fr)
    34px;

  width: 100%;
  height: 100%;

  overflow: hidden;
}


/* -------------------------
   HEADER
------------------------- */

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 0 22px;

  background: #111820;

  border-bottom:
    1px solid #2b3540;
}

.topbar h1 {
  margin: 0;

  font-size: 20px;
  line-height: 1;
  letter-spacing: 0.08em;
}

.topbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 12px;
}

.area-tools {
  display: flex;
  align-items: center;
  gap: 6px;
}

.area-location-field {
  display: flex;
  height: 34px;
}

.area-location-field input,
.area-radius-field input {
  border: 1px solid #526170;
  background: #17222c;
  color: #f5f7f9;
  outline: none;
}

.area-location-field input {
  width: 185px;
  padding: 6px 9px;
  border-radius: 6px 0 0 6px;
}

.area-location-field button,
.area-save-button,
.area-clear-button {
  border: 1px solid #526170;
  background: #263440;
  color: #f5f7f9;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.area-location-field button {
  border-left: 0;
  border-radius: 0 6px 6px 0;
}

.area-radius-field {
  display: flex;
  align-items: center;
  height: 34px;
  border: 1px solid #526170;
  border-radius: 6px;
  color: #9eb0be;
  font-size: 11px;
}

.area-radius-field input {
  width: 57px;
  height: 100%;
  padding: 5px 3px 5px 8px;
  border: 0;
  border-radius: 6px 0 0 6px;
}

.area-radius-field span { padding-right: 7px; }
.area-save-button { height: 34px; padding: 0 10px; border-radius: 6px; background: #087f8c; }
.area-clear-button { width: 28px; height: 34px; border-radius: 6px; }
.area-tools button:disabled { opacity: .45; cursor: default; }
.area-radius-label { color: #07323b; font-weight: 800; white-space: nowrap; }

.file-picker-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 34px;
  padding: 7px 11px;

  border: 1px solid #526170;
  border-radius: 6px;

  background: #263440;
  color: #f5f7f9;

  font-size: 12px;
  font-weight: 700;

  cursor: pointer;
}

.file-picker-button:hover {
  border-color: #83919e;
  background: #31414e;
}

.file-picker-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.subtitle {
  display: block;

  margin-top: 4px;

  color: #8e9ba8;

  font-size: 11px;
  letter-spacing: 0.05em;
}

.status {
  display: flex;
  align-items: center;

  color: #aeb8c2;

  font-size: 12px;
}

.status-dot {
  width: 8px;
  height: 8px;

  margin-right: 7px;

  border-radius: 50%;

  background: #43c47a;
}

.error-text {
  color: #ff9a9a;
}

@media (max-width: 760px) {
  .app {
    grid-template-rows:
      92px
      auto
      minmax(0, 1fr)
      34px;
  }

  .topbar {
    padding: 0 12px;
  }

  .topbar-actions {
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 5px;
  }

  .area-tools { order: 3; width: calc(100vw - 24px); }
  .area-location-field { flex: 1; }
  .area-location-field input { width: 100%; }

  .status {
    max-width: 62vw;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .file-picker-button {
    min-height: 30px;
    padding: 5px 9px;
  }
}


/* -------------------------
   FILTERBARS
------------------------- */

.filter-controls {
  min-height: 0;
}

.filter-controls-collapsed {
  display: flex;
  align-items: center;

  min-height: 36px;
  padding: 0 18px;

  border-bottom:
    1px solid #2b3540;

  background: #18212a;
}

.filterbar,
.categorybar,
.altitudebar {
  display: flex;
  align-items: center;

  gap: 8px;

  padding: 0 18px;

  border-bottom:
    1px solid #2b3540;
}

.filterbar {
  min-height: 52px;

  padding-top: 7px;
  padding-bottom: 7px;

  flex-wrap: wrap;

  background: #18212a;
}

.categorybar {
  min-height: 48px;

  padding-top: 7px;
  padding-bottom: 7px;

  flex-wrap: wrap;

  background: #141c24;
}

.altitudebar {
  min-height: 48px;

  padding-top: 7px;
  padding-bottom: 7px;

  flex-wrap: wrap;

  background: #18212a;
}

.filter-label {
  min-width: 74px;

  color: #8795a2;

  font-size: 11px;
  font-weight: 700;

  letter-spacing: 0.04em;

  text-transform: uppercase;
}

.filterbar button,
.categorybar button,
.altitudebar button {
  border:
    1px solid #34404c;

  border-radius: 6px;

  padding: 7px 11px;

  background: #202b35;

  color: #b7c0c8;

  cursor: pointer;

  transition:
    background 120ms ease,
    border-color 120ms ease,
    color 120ms ease,
    opacity 120ms ease;
}

.filterbar button:hover,
.categorybar button:hover,
.altitudebar button:hover {
  border-color: #61707e;

  color: #ffffff;
}

.filterbar button.active,
.categorybar button.active,
.altitudebar button.active {
  background: #3b4753;

  border-color: #7a8895;

  color: #ffffff;
}

.categorybar button:not(.active) {
  opacity: 0.48;
}

.category-count {
  display: inline-block;

  margin-left: 7px;

  padding: 1px 5px;

  border-radius: 8px;

  background:
    rgba(
      255,
      255,
      255,
      0.08
    );

  font-size: 10px;
}

.filter-count {
  margin-left: auto;

  color: #9aa7b3;

  font-size: 12px;
}

.notam-search {
  position: relative;

  flex: 0 1 290px;

  min-width: 190px;
  margin-left: 8px;
}

.notam-search input {
  width: 100%;

  padding: 7px 34px 7px 10px;

  border:
    1px solid #465563;

  border-radius: 6px;

  background: #101820;
  color: #ffffff;

  font-size: 12px;

  outline: none;
}

.notam-search input::placeholder {
  color: #6f7e8b;
}

.notam-search input:focus {
  border-color: #8293a2;

  box-shadow:
    0 0 0 2px
    rgba(130, 147, 162, 0.12);
}

.notam-search input::-webkit-search-cancel-button {
  display: none;
}

.filterbar .search-clear-button {
  position: absolute;
  top: 50%;
  right: 4px;

  min-width: 27px;
  margin: 0;
  padding: 2px 7px;

  transform: translateY(-50%);

  border-color: transparent;

  background: transparent;
  color: #8e9ca8;

  font-size: 18px;
  line-height: 1;
}

.filterbar .search-clear-button:hover {
  border-color: #465563;

  background: #202b35;
  color: #ffffff;
}

.notam-search-count {
  color: #8f9ca8;

  font-size: 11px;
  white-space: nowrap;
}

.collapsed-search-indicator {
  display: inline-flex;
  align-items: center;

  gap: 7px;

  max-width: 330px;
  margin-left: 10px;
  padding: 4px 8px;

  overflow: hidden;

  border:
    1px solid #617180;

  border-radius: 6px;

  background: #25323d;
  color: #d9e0e5;

  font-size: 11px;
  white-space: nowrap;
  text-overflow: ellipsis;

  cursor: pointer;
}

.collapsed-search-indicator:hover {
  border-color: #91a0ad;

  color: #ffffff;
}

.collapsed-search-indicator span {
  flex: 0 0 auto;

  color: #aab5be;

  font-size: 15px;
  line-height: 0.8;
}

.filter-collapse-button {
  display: inline-flex;
  align-items: center;

  gap: 7px;

  margin-left: 10px;
  padding: 5px 9px !important;

  color: #c5cdd4 !important;

  font-size: 11px;
  white-space: nowrap;
}

.filter-collapse-button span {
  color: #91a0ad;

  font-size: 15px;
  line-height: 0.7;
}

.collapsed-filter-actions {
  display: flex;
  align-items: center;

  gap: 8px;

  margin-left: auto;
}

.filter-controls-collapsed .filter-count {
  margin-left: 0;
}

.filter-controls-collapsed .filter-collapse-button {
  margin-left: 0;

  border:
    1px solid #34404c;

  border-radius: 6px;

  background: #202b35;

  cursor: pointer;
}

.filter-controls-collapsed .filter-collapse-button:hover {
  border-color: #61707e;

  color: #ffffff !important;
}

.filter-reset-all-button {
  margin-left: auto;

  white-space: nowrap;
}

.filter-reset-all-button:disabled {
  opacity: 0.42;

  cursor: default;
}

.filter-controls-collapsed .filter-reset-all-button {
  padding: 5px 9px;

  border:
    1px solid #34404c;

  border-radius: 6px;

  background: #202b35;
  color: #c5cdd4;

  font-size: 11px;

  cursor: pointer;
}

.filter-controls-collapsed
  .filter-reset-all-button:hover:not(:disabled) {
  border-color: #61707e;

  color: #ffffff;
}

.category-placeholder {
  color: #65727f;

  font-size: 12px;
}

.altitude-description {
  margin-left: 8px;

  color: #768491;

  font-size: 11px;
}

.altitude-input-group {
  display: flex;
  align-items: center;

  gap: 7px;

  color: #b7c0c8;

  font-size: 12px;
}

.altitude-input-group label {
  display: flex;
  align-items: center;

  gap: 7px;
}

.altitude-band-separator {
  color: #8997a3;
}

.altitude-input-group input {
  width: 78px;

  padding: 7px 8px;

  border:
    1px solid #556370;

  border-radius: 6px;

  background: #202b35;

  color: #ffffff;

  font-weight: 700;

  text-align: right;

  outline: none;
}

.altitude-input-group input:focus {
  border-color: #93a4b3;
}

.altitude-reset-button {
  padding: 7px 9px;

  border:
    1px solid
    #53616d;

  border-radius: 6px;

  background: #202b35;
  color: #cbd4db;

  font-size: 11px;

  cursor: pointer;
}

.altitude-reset-button:hover:not(:disabled) {
  border-color: #81909c;

  color: #ffffff;
}

.altitude-reset-button:disabled {
  opacity: 0.42;

  cursor: default;
}

.altitude-description-error {
  color: #e0a0a0;
}

.visually-hidden {
  position: absolute;

  width: 1px;
  height: 1px;

  padding: 0;
  margin: -1px;

  overflow: hidden;
  clip: rect(0, 0, 0, 0);

  white-space: nowrap;

  border: 0;
}


/* -------------------------
   MAP
------------------------- */

.map-wrapper {
  position: relative;

  min-width: 0;
  min-height: 0;

  overflow: hidden;
}

.map {
  width: 100%;
  height: 100%;
}

.leaflet-container {
  background: #dce3e7;
}


/* -------------------------
   WEATHER
------------------------- */

.weather-toggle {
  position: absolute;

  z-index: 1050;

  top: 14px;
  left: 54px;

  display: inline-flex;
  align-items: center;

  gap: 8px;

  min-height: 34px;
  padding: 7px 10px;

  border:
    1px solid
    rgba(
      255,
      255,
      255,
      0.28
    );

  border-radius: 7px;

  background:
    rgba(
      17,
      24,
      32,
      0.92
    );

  color: #edf2f6;

  box-shadow:
    0 3px 12px
    rgba(
      0,
      0,
      0,
      0.25
    );

  font-size: 12px;
  font-weight: 700;

  cursor: pointer;

  backdrop-filter:
    blur(4px);
}

.weather-toggle:hover,
.weather-toggle.active {
  border-color: #7ca9bc;

  background:
    rgba(
      24,
      40,
      50,
      0.98
    );
}

.weather-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 25px;
  height: 20px;

  border-radius: 4px;

  background: #d8e7ed;
  color: #183745;

  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.weather-active-dot {
  width: 7px;
  height: 7px;

  border-radius: 50%;

  background: #43c47a;

  box-shadow:
    0 0 0 3px
    rgba(
      67,
      196,
      122,
      0.15
    );
}

.ctr-toggle {
  position: absolute;
  z-index: 1050;
  top: 14px;
  left: 154px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 7px;
  background: rgba(17, 24, 32, 0.92);
  color: #edf2f6;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.25);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  backdrop-filter: blur(4px);
}

.ctr-toggle:hover,
.ctr-toggle.active {
  border-color: #d8ad52;
  background: rgba(45, 38, 26, 0.97);
}

.ctr-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 20px;
  border-radius: 4px;
  background: #f1d486;
  color: #3d2e0d;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.ctr-legend {
  position: absolute;
  z-index: 1040;
  top: 56px;
  left: 154px;
  width: 285px;
  padding: 10px 11px;
  border: 1px solid #4d5660;
  border-radius: 7px;
  background: rgba(17, 24, 32, 0.94);
  color: #e8edf1;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(4px);
}

.ctr-legend-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
}

.ctr-legend-title strong { font-size: 12px; }
.ctr-legend-title span { color: #95a0aa; font-size: 9px; }

.ctr-legend-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 8px;
}

.ctr-legend-items span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #bdc6cd;
  font-size: 9px;
}

.ctr-legend-items i {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border: 2px solid #f8fafb;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(18, 25, 31, 0.55);
}

.ctr-legend-items i.active { background: #df3d50; }
.ctr-legend-items i.inactive { background: #77848e; }
.ctr-legend-items i.derived { background: #f07832; }
.ctr-legend-items i.unknown { background: #d69b24; }

.ctr-legend small {
  display: block;
  margin-top: 8px;
  color: #7f8b94;
  font-size: 8px;
  line-height: 1.35;
}

.ctr-legend p {
  margin: 7px 0 0;
  padding: 5px 6px;
  border-radius: 4px;
  background: #4d421e;
  color: #f2dda0;
  font-size: 8px;
  line-height: 1.3;
}

.ctr-hover-label,
.ctr-map-label {
  border: 1px solid rgba(20, 26, 31, 0.65);
  border-radius: 4px;
  background: rgba(20, 26, 31, 0.9);
  box-shadow: none;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  text-align: center;
}

.ctr-map-label { padding: 2px 4px; line-height: 1.15; }
.ctr-map-label::before { display: none; }
.ctr-map-label.active,
.ctr-map-label.notam-active { border-color: #df3d50; }
.ctr-map-label.inactive,
.ctr-map-label.notam-inactive { border-color: #77848e; }
.ctr-map-label.derived-active,
.ctr-map-label.derived-inactive { border-color: #f07832; }
.ctr-map-label.unknown,
.ctr-map-label.notam-review { border-color: #d69b24; }

.ctr-popup { color: #25313a; font-size: 11px; }

.ctr-popup header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #d7dde1;
}

.ctr-popup header > div { display: flex; flex-direction: column; gap: 2px; }
.ctr-popup header strong { color: #17232b; font-size: 13px; }
.ctr-popup header span { color: #71808b; font-size: 9px; }

.ctr-status-badge {
  flex-shrink: 0;
  padding: 4px 7px;
  border-radius: 5px;
  background: #d69b24;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 900;
}

.ctr-status-badge.active,
.ctr-status-badge.notam-active { background: #c92f43; }
.ctr-status-badge.inactive,
.ctr-status-badge.notam-inactive { background: #6f7a82; }
.ctr-status-badge.derived-active { background: #dd6428; }
.ctr-status-badge.derived-inactive { background: #7d8991; }

.ctr-popup-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px 12px;
  margin: 9px 0;
}

.ctr-popup-grid div { min-width: 0; }
.ctr-popup-grid dt { color: #78858e; font-size: 8px; text-transform: uppercase; }
.ctr-popup-grid dd { margin: 1px 0 0; color: #26343d; font-weight: 700; }

.ctr-popup-warning,
.ctr-popup-note {
  margin: 7px 0;
  padding: 6px 7px;
  border-radius: 4px;
  background: #fff1cf;
  color: #5a4515;
  line-height: 1.35;
}

.ctr-popup-note { background: #eef2f4; color: #4d5a63; }

.ctr-notam-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin-top: 9px;
  padding: 7px 9px;
  border: 1px solid #bcc5cb;
  border-radius: 5px;
  background: #eef1f3;
  color: #5f6c74;
  font-size: 10px;
  font-weight: 900;
}

.ctr-notam-button.active { border-color: #d28f24; background: #fff3d7; color: #67460e; cursor: pointer; }
.ctr-notam-button span { font-size: 8px; font-weight: 700; }

.ctr-notam-detail { margin-top: 8px; padding-top: 8px; border-top: 1px solid #d5dce0; }
.ctr-notam-detail > div { display: flex; justify-content: space-between; gap: 10px; }
.ctr-notam-detail > div span { color: #7c8890; font-size: 8px; }
.ctr-notam-detail > div span.active { color: #b52f3e; font-weight: 800; }
.ctr-notam-detail p { margin: 4px 0; color: #81550c; font-size: 9px; font-weight: 800; }
.ctr-notam-detail pre {
  max-height: 210px;
  margin: 5px 0 0;
  padding: 7px;
  overflow: auto;
  border-radius: 4px;
  background: #172029;
  color: #e9eff3;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 9px;
  line-height: 1.35;
  white-space: pre-wrap;
}

.ctr-popup footer {
  margin-top: 9px;
  padding-top: 7px;
  border-top: 1px solid #d5dce0;
  color: #87939a;
  font-size: 8px;
  line-height: 1.35;
}

.weather-panel {
  position: absolute;

  z-index: 1100;

  left: 14px;
  bottom: 14px;

  width: 520px;
  max-width: calc(100% - 28px);
  max-height: calc(100% - 68px);

  overflow-y: auto;

  border:
    1px solid #43515d;

  border-radius: 9px;

  background:
    rgba(
      17,
      24,
      32,
      0.96
    );

  box-shadow:
    0 8px 30px
    rgba(
      0,
      0,
      0,
      0.38
    );

  backdrop-filter:
    blur(6px);
}

.weather-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  min-height: 54px;
  padding: 9px 10px 9px 14px;

  border-bottom:
    1px solid #34404b;

  background:
    rgba(
      24,
      33,
      42,
      0.92
    );
}

.weather-panel-header > div {
  display: flex;
  flex-direction: column;

  gap: 2px;
}

.weather-panel-header strong {
  color: #ffffff;

  font-size: 14px;
}

.weather-panel-header span {
  color: #8e9ba7;

  font-size: 10px;
}

.weather-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 32px;
  height: 32px;
  padding: 0;

  border:
    1px solid #43505c;

  border-radius: 6px;

  background: #202b35;
  color: #cbd3da;

  font-size: 21px;
  line-height: 1;

  cursor: pointer;
}

.weather-close:hover {
  border-color: #768591;

  color: #ffffff;
}

.weather-layer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  padding: 11px 14px;

  border-bottom:
    1px solid #303b46;
}

.weather-layer-switch {
  display: inline-flex;
  align-items: center;

  gap: 9px;

  color: #edf2f5;

  font-size: 12px;
  font-weight: 700;

  cursor: pointer;
}

.weather-layer-switch input {
  position: absolute;

  width: 1px;
  height: 1px;

  opacity: 0;
  pointer-events: none;
}

.weather-switch-track {
  display: inline-flex;
  align-items: center;

  width: 34px;
  height: 19px;
  padding: 2px;

  border:
    1px solid #65727d;

  border-radius: 10px;

  background: #35414b;

  transition:
    border-color 120ms ease,
    background 120ms ease;
}

.weather-switch-track span {
  width: 13px;
  height: 13px;

  border-radius: 50%;

  background: #c8d0d6;

  transition:
    transform 120ms ease,
    background 120ms ease;
}

.weather-layer-switch input:checked
  + .weather-switch-track {
  border-color: #4eb3d4;

  background: #235e73;
}

.weather-layer-switch input:checked
  + .weather-switch-track span {
  transform: translateX(15px);

  background: #ffffff;
}

.weather-layer-switch input:focus-visible
  + .weather-switch-track {
  outline:
    2px solid #8fc8dc;

  outline-offset: 2px;
}

.weather-layer-source {
  color: #84929e;

  font-size: 10px;
  white-space: nowrap;
}

.weather-layer-row-secondary {
  border-top:
    1px solid #303b46;
}

.aviation-weather-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  padding: 9px 14px 10px;

  border-bottom:
    1px solid #303b46;
}

.flight-category-legend {
  display: flex;
  flex-wrap: wrap;

  gap: 6px 10px;
}

.flight-category-legend span {
  display: inline-flex;
  align-items: center;

  gap: 4px;

  color: #aeb9c2;

  font-size: 9px;
  font-weight: 700;
}

.flight-category-legend i {
  width: 8px;
  height: 8px;

  border:
    1px solid
    rgba(255, 255, 255, 0.7);

  border-radius: 50%;
}

.flight-category-legend i.stale {
  background: #7d878f;
}

.aviation-weather-counts {
  color: #8795a0;

  font-size: 9px;
  white-space: nowrap;
}

.weather-timeline {
  padding: 12px 14px 10px;

  transition: opacity 120ms ease;
}

.weather-timeline.disabled {
  opacity: 0.45;
}

.weather-time-summary {
  display: flex;
  align-items: center;

  gap: 8px;

  min-height: 27px;
  margin-bottom: 8px;
}

.weather-time-summary > div {
  display: inline-flex;
  align-items: baseline;

  gap: 5px;
}

.weather-time-summary strong {
  color: #ffffff;

  font-size: 13px;
}

.weather-time-summary > div > span {
  color: #7f8d99;

  font-size: 9px;
}

.weather-frame-kind {
  display: inline-flex;
  align-items: center;

  min-height: 21px;
  padding: 2px 7px;

  border-radius: 5px;

  color: #dce4e9;

  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.weather-frame-kind.analysis {
  background: #304957;
}

.weather-frame-kind.current {
  background: #286044;

  color: #e6fff1;
}

.weather-frame-kind.forecast {
  background: #695421;

  color: #fff4d2;
}

.weather-frame-kind.unavailable {
  background: #3b4650;
}

.weather-loading {
  margin-left: auto;

  color: #9cabb7;

  font-size: 10px;
}

.weather-playback-row {
  display: grid;

  grid-template-columns:
    34px
    minmax(0, 1fr)
    auto;

  align-items: center;

  gap: 9px;
}

.weather-play-button,
.weather-now-button {
  min-height: 31px;
  padding: 5px 9px;

  border:
    1px solid #4d5b67;

  border-radius: 6px;

  background: #202b35;
  color: #e2e8ec;

  font-size: 10px;

  cursor: pointer;
}

.weather-play-button {
  padding: 4px;

  font-size: 12px;
}

.weather-play-button:hover:not(:disabled),
.weather-now-button:hover:not(:disabled) {
  border-color: #80909c;

  color: #ffffff;
}

.weather-play-button:disabled,
.weather-now-button:disabled {
  opacity: 0.42;

  cursor: default;
}

.weather-playback-row input,
.weather-opacity-row input {
  min-width: 0;

  accent-color: #4eb3d4;

  cursor: pointer;
}

.weather-playback-row input:disabled,
.weather-opacity-row input:disabled {
  cursor: default;
}

.weather-timeline-scale {
  position: relative;

  height: 17px;
  margin: 2px 70px 4px 43px;

  color: #71808c;

  font-size: 8px;
}

.weather-timeline-scale span {
  position: absolute;
  top: 0;
}

.weather-timeline-scale span:first-child {
  left: 0;
}

.weather-timeline-scale span:nth-child(2) {
  left: 42.86%;

  transform: translateX(-50%);
}

.weather-timeline-scale span:last-child {
  right: 0;
}

.weather-opacity-row {
  display: grid;

  grid-template-columns:
    auto
    minmax(80px, 1fr)
    38px;

  align-items: center;

  gap: 9px;

  margin-top: 5px;

  color: #91a0ab;

  font-size: 10px;
}

.weather-opacity-row strong {
  color: #cbd4da;

  font-size: 10px;
  text-align: right;
}

.weather-message {
  margin: 0 14px 9px;
  padding: 6px 8px;

  border-radius: 5px;

  background: #24333d;
  color: #aebbc5;

  font-size: 9px;
  line-height: 1.35;
}

.weather-message.warning {
  background: #50451f;
  color: #f1dda0;
}

.weather-message.error {
  background: #542c2c;
  color: #ffc1c1;
}

.weather-disclaimer {
  padding: 8px 14px 10px;

  border-top:
    1px solid #2f3a44;

  color: #71808c;

  font-size: 8px;
  line-height: 1.35;
}

.aviation-weather-label {
  margin: 0;
  padding: 1px 4px;

  border:
    1px solid
    rgba(17, 24, 32, 0.55);

  border-radius: 3px;

  background:
    rgba(17, 24, 32, 0.86);
  box-shadow: none;

  color: #ffffff;

  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.03em;
}

.aviation-weather-label::before {
  display: none;
}

.synoptic-weather-label {
  margin: 0;
  padding: 1px 3px;
  border: 1px solid rgba(0, 70, 75, 0.55);
  border-radius: 3px;
  background: rgba(0, 91, 96, 0.88);
  box-shadow: none;
  color: #fff;
  font-size: 8px;
  font-weight: 800;
}

.synoptic-weather-label::before { display: none; }

.synoptic-badge {
  padding: 4px 7px;
  border-radius: 5px;
  background: #007d82;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 900;
}

.synoptic-weather-summary { color: #9fb2bd; }
.synoptic-cloud-layers {
  margin: 0 0 8px;
  padding: 5px 7px;
  border-radius: 4px;
  background: #e8f3f3;
  color: #245157;
  font-weight: 700;
}
.synoptic-legend-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-right: 5px;
  border-radius: 50%;
  background: #00a8a8;
}

.aviation-weather-popup {
  color: #25313a;

  font-size: 11px;
}

.aviation-weather-popup header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 10px;

  padding-bottom: 8px;

  border-bottom:
    1px solid #d9e0e4;
}

.aviation-weather-popup header > div {
  display: flex;
  flex-direction: column;

  gap: 2px;
}

.aviation-weather-popup header strong {
  color: #17242d;

  font-size: 16px;
}

.aviation-weather-popup header span {
  color: #687680;

  font-size: 10px;
}

.flight-category-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 42px;
  min-height: 24px;
  padding: 3px 7px;

  border:
    1px solid
    rgba(0, 0, 0, 0.18);

  border-radius: 5px;

  color: #ffffff !important;

  font-size: 10px !important;
  font-weight: 900;
}

.aviation-weather-observation-time {
  margin: 8px 0;

  color: #64727c;

  font-size: 9px;
}

.aviation-weather-grid {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 6px 10px;

  margin: 0 0 8px;
}

.aviation-weather-grid div {
  min-width: 0;
  padding: 5px 7px;

  border-radius: 4px;

  background: #eef2f4;
}

.aviation-weather-grid dt {
  margin-bottom: 1px;

  color: #7a8790;

  font-size: 8px;
  font-weight: 700;
  text-transform: uppercase;
}

.aviation-weather-grid dd {
  margin: 0;

  color: #21313b;

  font-size: 10px;
  font-weight: 700;
}

.aviation-weather-present-weather {
  margin: 0 0 8px;
  padding: 5px 7px;

  border-radius: 4px;

  background: #e7eef3;
  color: #304755;

  font-weight: 700;
}

.aviation-weather-popup section {
  margin-top: 8px;
}

.aviation-weather-popup h4 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;

  gap: 8px;

  margin: 0 0 4px;

  color: #273842;

  font-size: 10px;
}

.aviation-weather-popup h4 span {
  color: #71808a;

  font-size: 8px;
  font-weight: 500;
}

.aviation-weather-popup pre {
  max-height: 116px;
  margin: 0;
  padding: 7px 8px;

  overflow: auto;

  border-radius: 4px;

  background: #18242d;
  color: #e8eef2;

  font-family:
    "SFMono-Regular",
    Consolas,
    "Liberation Mono",
    monospace;
  font-size: 9px;
  line-height: 1.4;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.notam-group-count {
  min-width: 18px;

  margin: 0;
  padding: 0 3px;

  border: 0;
  border-radius: 9px;

  background: transparent;
  box-shadow: none;

  color: #ffffff;

  font-size: 10px;
  font-weight: 800;
  line-height: 18px;

  text-align: center;
  pointer-events: none;
}

.notam-group-count::before {
  display: none;
}

.notam-group-popup {
  max-height: 510px;
  overflow-y: auto;
  padding-right: 5px;
}

.notam-group-header {
  position: sticky;
  z-index: 2;
  top: 0;

  display: flex;
  align-items: baseline;
  justify-content: space-between;

  gap: 12px;

  margin: -2px 0 10px;
  padding: 7px 8px;

  border-radius: 5px;

  background: #17212a;
  color: #ffffff;
}

.notam-group-header span {
  color: #aeb9c2;
  font-size: 11px;
}

.notam-group-item {
  margin-bottom: 12px;
  padding-bottom: 12px;

  border-bottom: 1px solid #c8d0d6;
}

.notam-group-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}


/* -------------------------
   LEAFLET POPUP
------------------------- */

.popup-warning {
  padding: 6px 8px;

  margin-bottom: 8px;

  background: #fff3cd;

  border-radius: 4px;

  color: #554500;

  font-size: 11px;

  line-height: 1.35;
}

.popup-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}

.popup-badge {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  background: #e8edf2;
  color: #25313a;
  font-size: 10px;
  font-weight: 700;
}

.popup-status-active {
  background: #f4cccc;
  color: #7f1012;
}

.popup-status-trigger {
  background: #ffe4aa;
  color: #6f4800;
}

.popup-status-deactivated {
  background: #dce2e6;
  color: #485761;
}

.popup-quality {
  background: #dceaf2;
  color: #24485b;
}

.popup-source-note {
  padding: 6px 8px;
  margin-bottom: 8px;
  border-radius: 4px;
  background: #e9f3f8;
  color: #294b5d;
  font-size: 11px;
  line-height: 1.35;
}

.popup-source-note a {
  color: #145f88;
  font-weight: 700;
}


/* -------------------------
   UNMAPPABLE TOGGLE
------------------------- */

.unmappable-toggle {
  position: absolute;

  z-index: 1050;

  top: 14px;
  right: 14px;

  display: flex;
  align-items: center;

  gap: 9px;

  padding: 9px 11px;

  border:
    1px solid
    rgba(
      255,
      255,
      255,
      0.28
    );

  border-radius: 7px;

  background:
    rgba(
      17,
      24,
      32,
      0.92
    );

  color: #edf2f6;

  box-shadow:
    0 3px 12px
    rgba(
      0,
      0,
      0,
      0.25
    );

  cursor: pointer;

  backdrop-filter:
    blur(4px);

  transition:
    border-color 120ms ease,
    background 120ms ease,
    transform 120ms ease;
}

.unmappable-toggle:hover {
  border-color: #8b9aa8;

  background:
    rgba(
      24,
      33,
      42,
      0.98
    );
}

.unmappable-toggle strong {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  min-width: 24px;
  height: 22px;

  padding: 0 6px;

  border-radius: 11px;

  background: #d0d7dd;

  color: #18212a;

  font-size: 11px;
}

.unmappable-toggle-open {
  opacity: 0;
  pointer-events: none;
}


/* -------------------------
   UNMAPPABLE PANEL
------------------------- */

.unmappable-panel {
  position: absolute;

  z-index: 1200;

  top: 0;
  right: 0;
  bottom: 0;

  display: flex;
  flex-direction: column;

  width: 410px;
  max-width: 46vw;

  background: #111820;

  border-left:
    1px solid #35414c;

  box-shadow:
    -8px 0 26px
    rgba(
      0,
      0,
      0,
      0.32
    );

  animation:
    unmappable-slide-in
    150ms ease-out;
}

@keyframes unmappable-slide-in {
  from {
    transform:
      translateX(100%);
  }

  to {
    transform:
      translateX(0);
  }
}

.unmappable-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;

  min-height: 66px;

  padding: 12px 14px 12px 16px;

  border-bottom:
    1px solid #303b46;

  background: #18212a;
}

.unmappable-panel-title {
  color: #ffffff;

  font-size: 15px;
  font-weight: 700;
}

.unmappable-panel-subtitle {
  margin-top: 3px;

  color: #8d9aa6;

  font-size: 11px;
}

.unmappable-close {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 34px;
  height: 34px;

  padding: 0;

  border:
    1px solid #394652;

  border-radius: 6px;

  background: #202b35;

  color: #c5ced5;

  font-size: 23px;
  line-height: 1;

  cursor: pointer;
}

.unmappable-close:hover {
  border-color: #71808d;

  color: #ffffff;
}

.unmappable-panel-info {
  padding: 10px 16px;

  border-bottom:
    1px solid #2c3741;

  background: #141c24;

  color: #8f9ca8;

  font-size: 10px;
  line-height: 1.4;
}

.unmappable-filter-option {
  display: flex;
  align-items: center;

  gap: 8px;

  margin-top: 10px;

  color: #c4ced7;

  cursor: pointer;
}

.unmappable-filter-option input {
  accent-color: #62c98b;
}

.unmappable-reset-read {
  margin-top: 11px;
  padding: 6px 9px;

  border:
    1px solid
    #6c4b4b;

  border-radius: 5px;

  background: #2d2325;
  color: #e2c6c6;

  font: inherit;

  cursor: pointer;
}

.unmappable-reset-read:hover:not(:disabled) {
  border-color: #a66b6b;

  background: #39282b;
  color: #ffffff;
}

.unmappable-reset-read:disabled {
  opacity: 0.55;

  cursor: wait;
}

.unmappable-list {
  flex: 1;

  min-height: 0;

  padding: 10px;

  overflow-y: auto;

  scrollbar-width: thin;

  scrollbar-color:
    #4b5965
    #141c24;
}


/* -------------------------
   UNMAPPABLE CARD
------------------------- */

.unmappable-card {
  margin-bottom: 9px;

  padding: 12px;

  border:
    1px solid #34404b;

  border-radius: 8px;

  background: #1b252e;

  color: #d8dfe5;

  transition:
    border-color 120ms ease,
    background 120ms ease,
    opacity 120ms ease;
}

.unmappable-card-read {
  border-color: #2c363f;

  background: #171f27;

  opacity: 0.66;
}

.unmappable-card-read .unmappable-id {
  color: #b8c2ca;
}

.unmappable-card:last-child {
  margin-bottom: 0;
}

.unmappable-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 10px;

  margin-bottom: 7px;
}

.unmappable-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: 8px;
}

.unmappable-read-toggle {
  display: flex;
  align-items: center;

  gap: 5px;

  color: #b9c4cd;

  font-size: 10px;
  font-weight: 600;

  cursor: pointer;
}

.unmappable-read-toggle input {
  margin: 0;

  accent-color: #62c98b;
}

.unmappable-read-toggle input:disabled {
  cursor: wait;
}

.unmappable-id {
  color: #ffffff;

  font-size: 13px;

  letter-spacing: 0.02em;
}

.unmappable-category {
  flex-shrink: 0;

  padding: 2px 6px;

  border-radius: 4px;

  background: #34414d;

  color: #d4dce3;

  font-size: 9px;
  font-weight: 700;

  text-transform: uppercase;

  letter-spacing: 0.03em;
}

.unmappable-category-airspace {
  background: #4b3a43;
}

.unmappable-category-activity {
  background: #3e4555;
}

.unmappable-category-uas {
  background: #454056;
}

.unmappable-category-obstacle {
  background: #56393a;
}

.unmappable-category-aerodrome {
  background: #354c50;
}

.unmappable-category-navaid_comms {
  background: #3a4657;
}

.unmappable-category-other {
  background: #41464b;
}

.unmappable-header {
  margin-bottom: 8px;

  color: #c8d1d9;

  font-size: 11px;
  font-weight: 700;

  line-height: 1.35;
}

.unmappable-validity {
  display: flex;
  flex-direction: column;

  gap: 2px;

  margin-bottom: 8px;

  color: #8e9ca8;

  font-size: 10px;

  line-height: 1.35;
}

.unmappable-validity > div {
  overflow-wrap: anywhere;
}

.unmappable-validity span {
  display: inline-block;

  min-width: 38px;

  margin-right: 4px;

  color: #687784;

  font-weight: 700;

  text-transform: uppercase;
}

.unmappable-warning {
  margin-bottom: 8px;

  padding: 6px 7px;

  border-radius: 5px;

  background: #554c2e;

  color: #f1dfa7;

  font-size: 10px;

  line-height: 1.35;
}

.unmappable-reason {
  margin-bottom: 8px;

  padding: 6px 7px;

  border-left:
    3px solid #788795;

  background:
    rgba(
      120,
      135,
      149,
      0.09
    );

  color: #9ca9b4;

  font-size: 10px;

  line-height: 1.35;
}

.unmappable-text {
  white-space: pre-wrap;

  overflow-wrap: anywhere;

  color: #e1e6ea;

  font-size: 11px;

  line-height: 1.43;
}

.unmappable-empty {
  margin: 12px;

  padding: 18px;

  border:
    1px dashed #44515d;

  border-radius: 8px;

  color: #86939e;

  font-size: 12px;

  line-height: 1.5;

  text-align: center;
}


/* -------------------------
   DRAG & DROP
------------------------- */

.drop-hint {
  position: absolute;

  z-index: 900;

  left: 50%;
  bottom: 24px;

  transform:
    translateX(-50%);

  display: flex;
  flex-direction: column;
  align-items: center;

  gap: 2px;

  padding: 9px 16px;

  border:
    1px solid
    rgba(
      255,
      255,
      255,
      0.18
    );

  border-radius: 8px;

  background:
    rgba(
      16,
      23,
      30,
      0.88
    );

  color: #e8edf1;

  box-shadow:
    0 5px 20px
    rgba(
      0,
      0,
      0,
      0.22
    );

  pointer-events: none;
}

.drop-hint strong {
  font-size: 12px;
}

.drop-hint span {
  color: #9ba7b2;

  font-size: 11px;
}

.drop-overlay {
  position: absolute;

  z-index: 1500;

  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background:
    rgba(
      12,
      19,
      25,
      0.78
    );

  backdrop-filter:
    blur(2px);
}

.drop-overlay > div {
  display: flex;
  flex-direction: column;
  align-items: center;

  gap: 5px;

  padding: 24px 32px;

  border:
    2px dashed #98a8b6;

  border-radius: 12px;

  background: #18212a;

  box-shadow:
    0 10px 40px
    rgba(
      0,
      0,
      0,
      0.35
    );
}

.drop-overlay strong {
  font-size: 16px;

  letter-spacing: 0.05em;
}

.drop-overlay span {
  color: #9facb8;

  font-size: 12px;
}


/* -------------------------
   FOOTER
------------------------- */

footer {
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 0 18px;

  background: #111820;

  border-top:
    1px solid #2b3540;

  color: #697785;

  font-size: 10px;
}


/* -------------------------
   RESPONSIVE
------------------------- */

@media (
  max-width: 900px
) {
  .filter-count {
    display: none;
  }

  .altitude-description {
    display: none;
  }

  .notam-search {
    flex-basis: 240px;
  }

  .unmappable-panel {
    width: 390px;
    max-width: 70vw;
  }
}


@media (
  max-width: 620px
) {
  .status {
    display: none;
  }

  .filter-label {
    min-width: auto;
  }

  .filter-collapse-button {
    margin-left: auto;
  }

  .collapsed-search-indicator {
    max-width: 42vw;
  }

  .unmappable-panel {
    width: 100%;
    max-width: 100%;
  }

  .unmappable-toggle {
    top: 10px;
    right: 10px;
  }

  .weather-toggle {
    top: 10px;
    left: 50px;

    min-height: 32px;
    padding: 6px 8px;
  }

  .ctr-toggle {
    top: 10px;
    left: 139px;
    min-height: 32px;
    padding: 6px 8px;
  }

  .ctr-toggle > span:nth-child(2) { display: none; }

  .ctr-legend {
    top: 50px;
    right: 8px;
    left: 8px;
    width: auto;
  }

  .weather-panel {
    right: 8px;
    bottom: 8px;
    left: 8px;

    width: auto;
    max-width: none;
    max-height: calc(100% - 58px);
  }

  .weather-time-summary {
    flex-wrap: wrap;
  }

  .weather-loading {
    margin-left: 0;
  }

  .weather-timeline-scale {
    margin-right: 62px;
  }

  .aviation-weather-summary {
    align-items: flex-start;
    flex-direction: column;

    gap: 7px;
  }

  .aviation-weather-counts {
    white-space: normal;
  }

  .aviation-weather-grid {
    grid-template-columns: 1fr;
  }
}

/* UI/Weather update 1 */
.ctr-legend-title > div {
  display: flex;
  align-items: center;
  gap: 7px;
}

.ctr-legend-close {
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #a9b4bc;
  font-size: 18px;
  line-height: 20px;
  cursor: pointer;
}

.ctr-legend-close:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.ctr-arp-label {
  margin: 0;
  padding: 1px 4px;
  border: 1px solid rgba(20, 26, 31, 0.65);
  border-radius: 3px;
  background: rgba(20, 26, 31, 0.82);
  box-shadow: none;
  color: #ffffff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.03em;
  pointer-events: none;
}

.ctr-arp-label::before { display: none; }
.ctr-arp-label.active,
.ctr-arp-label.notam-active { border-color: #df3d50; }
.ctr-arp-label.inactive,
.ctr-arp-label.notam-inactive { border-color: #77848e; }
.ctr-arp-label.derived-active,
.ctr-arp-label.derived-inactive { border-color: #f07832; }
.ctr-arp-label.unknown,
.ctr-arp-label.notam-review { border-color: #d69b24; }

.ctr-airport-summary {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid #cbd3d8;
}

.ctr-airport-summary strong {
  color: #17232b;
  font-size: 13px;
}

.ctr-airport-summary span {
  color: #71808b;
  font-size: 9px;
}

.ctr-sector-card + .ctr-sector-card {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 2px solid #e0e5e8;
}
/* Airport marker collision layout v3 -------------------------------------- */
.ctr-airport-div-icon,
.aviation-weather-div-icon,
.aerodrome-notam-div-icon {
  background: transparent !important;
  border: 0 !important;
}

.ctr-airport-div-icon {
  overflow: visible;
  pointer-events: auto;
}

.ctr-airport-marker-shape {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 13px;
  height: 13px;
  transform: translate(-50%, -50%);
  border: 2px solid #f8fafb;
  border-radius: 50%;
  background: var(--ctr-color, #d69b24);
  box-shadow:
    0 0 0 1px rgba(18, 25, 31, 0.55),
    0 2px 6px rgba(18, 25, 31, 0.35);
}

.ctr-airport-marker-code {
  position: absolute;
  left: 50%;
  top: calc(50% + 10px);
  transform: translateX(-50%);
  padding: 1px 4px;
  border-radius: 3px;
  background: rgba(20, 26, 31, 0.86);
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: 0.03em;
  white-space: nowrap;
  pointer-events: none;
}

.aviation-weather-div-icon {
  overflow: visible;
  pointer-events: auto;
  cursor: pointer;
  touch-action: manipulation;
}

.aviation-weather-shape {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  transform: translate(-50%, -50%) rotate(45deg);
  border: 2px solid #f8fafb;
  border-radius: 3px;
  background: var(--wx-color, #77838b);
  box-shadow:
    0 0 0 1px rgba(18, 25, 31, 0.55),
    0 2px 6px rgba(18, 25, 31, 0.4);
}

.aviation-weather-shape > span {
  transform: rotate(-45deg);
  color: #fff;
  font-size: 7px;
  font-weight: 950;
  line-height: 1;
  letter-spacing: -0.03em;
}

.aerodrome-notam-div-icon {
  overflow: visible;
  pointer-events: auto;
}

.aerodrome-notam-shape {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  border: 2px solid #f8fafb;
  border-radius: 3px;
  background: var(--notam-color, #d7191c);
  box-shadow:
    0 0 0 1px rgba(18, 25, 31, 0.55),
    0 2px 6px rgba(18, 25, 31, 0.4);
}

.aerodrome-notam-shape > span {
  color: #fff;
  font-size: 8px;
  font-weight: 950;
  line-height: 1;
}



/* Aviation weather local visibility warning */
.aviation-weather-local-warning {
  margin: 0 0 8px;
  padding: 5px 7px;
  border: 1px solid #d99a35;
  border-radius: 4px;
  background: #fff1d6;
  color: #694714;
  font-weight: 700;
}

.mil-aip-expired-warning{color:#ffe5a3;background:#4d3915;border:1px solid #d69b24;border-radius:6px;align-items:center;gap:6px;padding:6px 9px;white-space:nowrap;font-size:11px;display:flex}
.mil-aip-expired-warning strong{color:#fff1c7;font-size:11px}
.mil-aip-expired-warning span:last-child{color:#dfc98e;font-size:10px}

/* Nautical-mile map scale */
.nautical-scale-control {
  margin-left: 10px;
  margin-bottom: 10px;
  pointer-events: none;
}

.nautical-scale-bar {
  position: relative;
  height: 8px;
  box-sizing: border-box;
  border-left: 2px solid #18222b;
  border-right: 2px solid #18222b;
  border-bottom: 2px solid #18222b;
  background: rgba(255, 255, 255, 0.72);
}

.nautical-scale-label {
  position: absolute;
  left: -2px;
  bottom: 7px;
  padding: 1px 4px;
  white-space: nowrap;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.88);
  color: #18222b;
  font-size: 11px;
  font-weight: 700;
  line-height: 15px;
}

.weather-review-overlay{z-index:2200;background:#070c11d1;backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.weather-review-dialog{background:#111820;border:1px solid #4b5965;border-radius:10px;flex-direction:column;width:min(920px,100%);max-height:min(860px,calc(100vh - 48px));display:flex;overflow:hidden;box-shadow:0 16px 60px #00000094}.weather-review-header{background:#18212a;border-bottom:1px solid #34404b;justify-content:space-between;align-items:center;gap:18px;min-height:66px;padding:12px 14px 12px 18px;display:flex}.weather-review-header>div{flex-direction:column;gap:3px;display:flex}.weather-review-header strong{color:#fff;letter-spacing:.04em;font-size:15px}.weather-review-header span{color:#91a0ab;font-size:10px}.weather-review-close{color:#cbd3da;cursor:pointer;background:#202b35;border:1px solid #43505c;border-radius:6px;flex:0 0 auto;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:22px;line-height:1;display:inline-flex}.weather-review-close:hover:not(:disabled){color:#fff;border-color:#768591}.weather-review-close:disabled{opacity:.45;cursor:default}.weather-review-body{min-height:0;padding:16px 18px 18px;overflow-y:auto}.weather-review-intro{color:#aeb9c2;margin:0 0 16px;font-size:11px;line-height:1.5}.weather-review-section{margin-top:18px}.weather-review-section:first-of-type{margin-top:0}.weather-review-section h3{color:#eef3f6;letter-spacing:.03em;margin:0 0 9px;font-size:12px}.weather-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.weather-review-grid-regions{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-review-item{color:#dbe2e7;cursor:pointer;background:#18242d;border:1px solid #34424d;border-radius:7px;align-items:flex-start;gap:9px;min-width:0;padding:9px 10px;transition:border-color .12s,background .12s;display:flex}.weather-review-item:hover{background:#1d2b35;border-color:#5c6c79}.weather-review-item input{accent-color:#43c47a;flex:0 0 auto;margin:2px 0 0}.weather-review-item>span{flex-direction:column;gap:2px;min-width:0;display:flex}.weather-review-item strong{color:#f3f6f8;font-size:11px;line-height:1.25}.weather-review-item small{color:#8f9da8;font-size:9px;line-height:1.35}.weather-review-error{color:#ffc2c2;background:#542c2c;border-radius:6px;margin-top:14px;padding:8px 10px;font-size:10px;line-height:1.4}.weather-review-note{color:#74838f;margin-top:14px;font-size:9px;line-height:1.4}.weather-review-actions{background:#151f27;border-top:1px solid #34404b;justify-content:flex-end;align-items:center;gap:9px;padding:12px 14px;display:flex}.weather-review-actions button{cursor:pointer;border-radius:6px;min-height:36px;padding:7px 13px;font-size:10px;font-weight:800}.weather-review-cancel{color:#c7d0d7;background:#222e38;border:1px solid #4c5b67}.weather-review-confirm{color:#fff;background:#087f8c;border:1px solid #37a4ad}.weather-review-actions button:disabled{opacity:.4;cursor:default}.weather-review-confirm:hover:not(:disabled){background:#0b919f}@media (max-width:720px){.weather-review-overlay{padding:8px}.weather-review-dialog{max-height:calc(100vh - 16px)}.weather-review-grid,.weather-review-grid-regions{grid-template-columns:1fr}.weather-review-actions{flex-direction:column-reverse;align-items:stretch}.weather-review-actions button{width:100%}}

/* V40 weather review polish */
.weather-review-header strong { font-size: 16px; }
.weather-review-header span { font-size: 11px; }
.weather-review-intro { font-size: 12px; }
.weather-review-section h3 { font-size: 13px; }
.weather-review-item strong { font-size: 13px; }
.weather-review-item small { font-size: 11px; }
.weather-review-note { font-size: 10px; }
.weather-review-actions button { font-size: 11px; }

.weather-review-all {
  margin-bottom: 14px;
  background: #1d2b35;
  border-color: #61727f;
}

/* V40 weather-review readability pass */
.weather-review-dialog {
  width: min(980px, 100%);
}

.weather-review-header strong {
  font-size: 19px;
}

.weather-review-header span {
  font-size: 13px;
}

.weather-review-intro {
  font-size: 14px;
  line-height: 1.55;
}

.weather-review-section h3 {
  font-size: 15px;
}

.weather-review-item {
  padding: 11px 12px;
  gap: 11px;
}

.weather-review-item strong {
  font-size: 15px;
  line-height: 1.3;
}

.weather-review-item small {
  font-size: 13px;
  line-height: 1.4;
}

.weather-review-item input {
  margin-top: 3px;
  transform: scale(1.2);
  transform-origin: top left;
}

.weather-review-note {
  font-size: 12px;
}

.weather-review-actions button {
  min-height: 40px;
  font-size: 14px;
}

.weather-review-all {
  padding: 12px 13px;
}

