@keyframes aircraft-fade-in{0%{opacity:0}to{opacity:1}}@keyframes debugToastFade{0%{opacity:0;transform:translateX(-50%) translateY(-10px)}15%{opacity:1;transform:translateX(-50%) translateY(0)}85%{opacity:1}to{opacity:0}}:root{--green:#1DB95C;--purple:#662FFF;--orange:#FF6200;--bg:#141F24;--text:#f1f5f9;--border:#2a4148;--bg-subtle:rgba(42, 65, 72, 0.3);--hover-bg:rgba(42, 65, 72, 0.5);--padding:16px;--gap:30px;--border-radius-sm:8px;--border-radius-md:12px;--border-radius:16px;--ease-smooth:cubic-bezier(0.4, 0, 0.2, 1);--t-instant:0.1s ease;--t-fast:0.2s ease;--t-normal:0.3s ease;--t-smooth:0.3s var(--ease-smooth);--transition-speed:0.3s;--particle-opacity:0.95;--vh:1vh;--crosshair-top:35%;accent-color:#2a4148;--safe-top:0px;--safe-bottom:0px;--safe-left:0px;--safe-right:0px}@supports (padding-top:env(safe-area-inset-top)){:root{--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);--safe-left:env(safe-area-inset-left);--safe-right:env(safe-area-inset-right)}}*,body,html{margin:0;padding:0}*{box-sizing:border-box}body,html{height:100vh;height:100dvh;width:100%;font-family:Inter,sans-serif;color:var(--text);background:var(--bg);overflow:hidden;-webkit-text-size-adjust:100%}body{-webkit-overflow-scrolling:touch;overscroll-behavior:none}@supports (height:100dvh){#map,body,html{height:100dvh!important}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}#map,.leaflet-container::before{top:0;left:0;background:#000!important}#map{position:fixed;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;z-index:1;overflow:hidden;touch-action:pan-x pan-y}#map .leaflet-tile-pane,.leaflet-container,.leaflet-map-pane,.leaflet-tile-pane{background:#000!important}.leaflet-container::before{content:"";position:absolute;width:100%;height:100%;z-index:-1;pointer-events:none}.leaflet-particle-layer{overflow:hidden;will-change:transform;z-index:400!important;pointer-events:none;position:absolute!important}#centerPopup.altitude-only #centerWindspeed,#centerPopup.altitude-only .wind-content .separator,.leaflet-control-attribution,.leaflet-control-zoom{display:none!important}.leaflet-overlay-pane{z-index:200}.leaflet-overlay-pane canvas,.leaflet-overlay-pane svg,.leaflet-zoom-animated{will-change:transform}.leaflet-marker-pane{z-index:600}#centerCrosshair,#centerPopup{position:fixed;top:var(--crosshair-top);z-index:5;pointer-events:none;opacity:0}#centerPopup{left:calc(50% + 12px);transform:translateY(calc(-100% - 12px));background:rgba(20,31,36,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--border-radius-md) 12px 12px 0;padding:12px;box-shadow:0 8px 24px rgba(0,0,0,.4);font-size:14px;font-weight:600;display:flex;flex-direction:column;gap:0;color:var(--text);white-space:nowrap;width:150px;min-width:140px;overflow:hidden;transition:opacity var(--t-normal),gap .3s ease,width .3s ease,min-width .3s ease}#centerPopup.altitude-only{width:80px;min-width:80px}#centerPopup.visible{opacity:1}#centerPopup.plane-mode{gap:4px;width:auto;min-width:0;max-width:calc(100vw - 80px)}#centerPopup .first-line{display:flex;align-items:center;gap:8px;justify-content:center;min-height:1.4em}#centerPopup.plane-mode .first-line{justify-content:flex-start}#centerPopup .separator{color:var(--border);font-weight:400;margin:0 3px}#centerPopup .wind-content{display:inline-flex;align-items:center;gap:6px}#centerPopup.plane-mode .wind-content{display:none}#centerPopup .plane-content{display:none;align-items:center;gap:6px}#centerPopup.plane-mode .plane-content{display:inline-flex}#centerPopup .second-line{overflow:hidden;font-size:13px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:8px;max-height:0;opacity:0;transition:max-height .25s ease,opacity .25s ease}#centerPopup.plane-mode .second-line{max-height:2em;opacity:1}#centerPopup .plane-arrow{font-size:16px;line-height:1}#centerPopup .plane-callsign{overflow:hidden;white-space:nowrap}#centerPopup.plane-mode~#centerCrosshair{opacity:0!important}#centerCrosshair{left:50%;transform:translate(-50%,-50%);width:24px;height:24px;transition:opacity var(--t-normal)}#centerCrosshair.visible{opacity:1}#centerCrosshair::after,#centerCrosshair::before{content:"";position:absolute;background:var(--bg)}#centerCrosshair::before{left:50%;top:0;width:2px;height:100%;transform:translateX(-50%)}#centerCrosshair::after{top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.info{position:absolute;bottom:calc(90px + var(--gap));left:var(--padding);z-index:20;width:350px;background:var(--bg);border-radius:var(--border-radius);box-shadow:0 10px 30px rgba(0,0,0,.5);border:1px solid var(--border);overflow:hidden}.info-header,.logo{display:flex;align-items:center}.info-header{background:var(--bg);min-height:80px;border-bottom:1px solid var(--border);outline:0;gap:8px;padding:0 var(--padding);cursor:pointer;transition:background-color var(--t-fast)}@media (hover:hover){.info-header:hover{background:var(--hover-bg)}}.info.collapsed .info-header{border-bottom:none}.logo{justify-content:center;font-size:40px;color:var(--purple);padding:0;margin:0}.title{flex:1;font-size:22px;font-weight:700;color:var(--text);padding-left:4px}.header-buttons,.language-tab{display:flex;align-items:center;position:relative;z-index:2}.header-buttons{gap:8px}.language-tab{background:0 0;border:1px solid var(--border);color:var(--text);font-size:22px;padding:8px 12px;cursor:pointer;transition:background-color var(--t-fast),border-color var(--t-fast);border-radius:var(--border-radius-sm);justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline:0;font-family:inherit;min-width:48px;height:48px}.language-tab.active,.language-tab:hover{background-color:var(--hover-bg);border-color:var(--orange)}.language-option:focus-visible,.language-tab:focus-visible,.toggle-button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.language-option:focus-visible{background:var(--hover-bg)}.current-flag{display:block;font-size:22px;line-height:1}.toggle-button{background:0 0;border:1px solid var(--border);color:var(--text);padding:8px 12px;cursor:pointer;transition:background-color var(--t-fast),border-color var(--t-fast),transform var(--t-smooth);border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;outline:0;min-width:48px;height:48px;position:relative;z-index:2}.toggle-button:hover{background-color:var(--hover-bg);border-color:var(--orange)}.toggle-button svg{display:block;transition:transform var(--t-smooth)}.info.collapsed .toggle-button svg{transform:rotate(180deg)}.content{position:relative;overflow:hidden;transition:max-height var(--t-smooth)}.info.collapsed .content{max-height:0}.info-panel{padding:0;opacity:1;visibility:visible;transition:opacity var(--t-fast);pointer-events:auto;position:relative}.info.show-language .info-panel,.language-panel{opacity:0;visibility:hidden;pointer-events:none}.language-panel{padding:var(--padding);position:absolute;top:0;left:0;right:0;bottom:0;transition:opacity var(--t-fast);z-index:2;background:var(--bg);overflow-y:auto}.info.show-language .language-panel{opacity:1;visibility:visible;pointer-events:auto}.language-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.language-option{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-subtle);border:2px solid transparent;border-radius:var(--border-radius-md);text-decoration:none;color:var(--text);transition:background-color var(--t-fast),border-color var(--t-fast);cursor:pointer}.language-option.current,.language-option:hover{background:var(--hover-bg)}.language-option.current{border-color:var(--orange)}.lang-flag{font-size:24px;line-height:1;flex-shrink:0}.lang-name{font-size:15px;font-weight:500}.arrow{margin-left:auto;color:var(--text);transition:transform var(--t-smooth);display:flex;align-items:center}.arrow svg{display:block}.disclaimer.open .arrow,.info.collapsed .arrow{transform:rotate(180deg)}.section{padding:var(--padding);border-bottom:1px solid var(--border)}.section:last-child{border-bottom:none}.legend{display:flex;align-items:center;gap:12px;font-size:14px;margin-bottom:12px}.legend:last-child{margin-bottom:0}.gradient,.line{width:60px;height:6px;border-radius:3px}.line{background:var(--orange);box-shadow:0 0 8px rgba(255,98,0,.5)}.gradient{background:linear-gradient(to right,var(--green),var(--purple),var(--orange))}.disclaimer{background:rgba(153,73,29,.6);border:1px solid rgba(180,85,30,.7);border-radius:var(--border-radius-sm);cursor:pointer;margin-top:16px;transition:background-color var(--t-fast)}.disclaimer:hover{background:rgba(153,73,29,.75)}.disclaimer-header{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;padding:12px var(--padding);text-transform:uppercase;letter-spacing:.05em;color:rgba(255,212,196,.95)}.disclaimer-text{font-size:11px;line-height:1.6;max-height:0;overflow:hidden;padding:0 var(--padding);color:rgba(255,212,196,.9);transition:max-height var(--t-smooth),padding var(--t-smooth)}.disclaimer.open .disclaimer-text{max-height:200px;padding:0 var(--padding) 12px var(--padding)}.disclaimer .arrow{color:rgba(255,212,196,.95)}.credits{font-size:12px;line-height:1.5;margin-top:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}.credits-row{display:flex;flex-direction:column;gap:2px}.credit-label{color:#7f8c96;font-size:11px;font-weight:400;letter-spacing:.05em}.credit-value{color:var(--text);font-size:12px;font-weight:400;display:flex;align-items:center;gap:6px}.credit-value a{color:var(--text);text-decoration:none;transition:color var(--t-fast)}.credit-value a:hover{color:var(--orange)}.api-status-dot{width:6px;height:6px;border-radius:50%;background:#666;flex-shrink:0;transition:background-color var(--t-smooth)}.api-status-dot.status-green{background:#1db95c}.api-status-dot.status-orange{background:#ff6200}.api-status-dot.status-red{background:#ef4444}.api-status-dot.status-yellow{background:#eab308}@media (max-width:1024px){.info{position:fixed;top:calc(var(--padding) + var(--safe-top, 0px));left:calc(var(--padding) + var(--safe-left, 0px));bottom:auto;width:calc(100% - (var(--padding)*2) - var(--safe-left, 0px) - var(--safe-right, 0px));max-width:none}}.controls{position:absolute;bottom:var(--padding);left:var(--padding);right:var(--padding);z-index:10;background:var(--bg);border-radius:var(--border-radius);box-shadow:0 10px 30px rgba(0,0,0,.5);padding:0;display:flex;align-items:stretch;overflow:hidden;border:1px solid var(--border);height:90px}.btn-container,.cell{border-right:1px solid var(--border)}.btn-container,button{display:flex;align-items:stretch;width:180px}button{width:100%;height:100%;padding:0 var(--padding);background:0 0;color:#fff;border:0;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;letter-spacing:.05em;align-items:center;justify-content:center;gap:8px;text-transform:uppercase;transition:background-color var(--t-fast)}button:hover:not(.active){background-color:rgba(255,98,0,.15)}.dot,button.active{background:var(--orange)}button.active{opacity:.9;transition:opacity var(--t-fast)}.offline button:hover,button.active:hover{opacity:1}.dot{width:8px;height:8px;border-radius:50%}.active .dot{background:#fff}.cell{display:flex;align-items:center;justify-content:center;height:100%}.cell:last-child{border-right:none}.cell.country,.cell.date{width:170px}.cell.slider,select{padding:0 var(--padding)}.cell.slider{flex:1}select{height:100%;width:100%;border:0;font-size:15px;font-family:inherit;background:0 0;color:#fff;cursor:pointer;appearance:none;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:background-color var(--t-fast);outline:0}select:hover{background-color:var(--hover-bg)}.time-display,.time-slider{display:flex;align-items:center}.time-slider{gap:var(--padding);width:100%}.time-display{font-size:15px;font-weight:700;color:var(--text);width:72px;justify-content:center;text-transform:uppercase;letter-spacing:.05em;transition:color var(--t-fast);user-select:none;-webkit-user-select:none}.footer-links a:hover,.time-display.hovering,.time-display.selecting{color:var(--orange)}.slider-container{position:relative;height:6px;background:var(--border);border-radius:3px;flex:1}.loading,input[type=range]{position:absolute;top:0;left:0;border-radius:3px}.loading{height:100%;width:0%;background:var(--orange);z-index:1;will-change:width;transform:translateZ(0)}.loading.animating{transition:width .6s cubic-bezier(.25,.46,.45,.94)}.loading.complete{transition:width .3s ease-out,opacity .8s ease .2s;opacity:0}input[type=range]{width:100%;height:6px;background:0 0;outline:0;appearance:none;z-index:2}input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:24px;border-radius:4px;background:var(--orange);cursor:pointer;box-shadow:0 2px 8px rgba(255,98,0,.5);margin-top:-9px;transition:transform var(--t-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}input[type=range]::-webkit-slider-runnable-track{width:100%;height:6px;cursor:pointer;background:0 0;border-radius:3px}.emoji{font-size:36px;cursor:pointer;pointer-events:auto}.emoji img{display:block;pointer-events:none}.offline button,.tooltip{color:#fff;font-size:12px;white-space:nowrap}.offline,.tooltip{position:fixed;display:none}.tooltip{background:rgba(26,26,26,.95);padding:6px 10px;border-radius:6px 6px 6px 0;font-weight:600;pointer-events:none;z-index:1000;max-width:200px;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:left,top;transform:translateZ(0)}.offline{left:50%;top:calc(var(--safe-top) + var(--padding));transform:translateX(-50%);background:var(--bg);border:1px solid var(--border);color:var(--text);padding:12px 16px;border-radius:var(--border-radius-md);box-shadow:0 10px 30px rgba(0,0,0,.5);z-index:100;font-size:13px;font-weight:500;max-width:calc(100vw - 2*var(--padding) - var(--safe-left) - var(--safe-right));margin:0 calc(var(--padding) + var(--safe-left));word-wrap:break-word;align-items:center;gap:12px}.offline[style*="display: flex"]{display:flex!important}.offline button{padding:8px 16px;background:var(--orange);border:0;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;font-family:inherit;letter-spacing:.05em;text-transform:uppercase;transition:opacity var(--t-fast);margin-left:auto;opacity:.9}.aircraft-marker{pointer-events:none;opacity:1}.aircraft-marker.aircraft-new{animation:aircraft-fade-in .4s ease-out forwards}.aircraft-marker.aircraft-stale{opacity:.4!important}.aircraft-marker.aircraft-stale .aircraft-icon-container{filter:grayscale(50%)}.aircraft-marker.aircraft-landed{opacity:.3!important}.aircraft-marker.aircraft-landed .aircraft-icon-container{filter:grayscale(80%)}.aircraft-icon-container{padding:6px!important;display:flex;align-items:center;justify-content:center;transform-origin:center;transition:none}.aircraft-icon-container img,.aircraft-icon-container svg{width:100%;height:100%}@media (max-width:1024px){.aircraft-icon-container{padding:4px!important}#map,body,html{height:100vh;height:100dvh}.controls,.info{position:fixed;height:auto;left:calc(var(--padding) + var(--safe-left))}.info{top:calc(var(--safe-top) + var(--padding));width:calc(100vw - calc(var(--padding)*2) - var(--safe-left) - var(--safe-right));right:auto;bottom:auto}.controls{flex-wrap:wrap;bottom:calc(var(--safe-bottom) + var(--padding));right:calc(var(--padding) + var(--safe-right));width:auto;border-radius:var(--border-radius)}.info-header{transition:none}.info-header:active,.info-header:hover{background:var(--bg)}.btn-container{border-right:none;border-bottom:1px solid var(--border);width:100%;height:64px}.cell,button{height:64px}button{padding:0 var(--padding)}.cell{border-bottom:1px solid var(--border)}.cell.country{width:50%;border-right:1px solid var(--border)}.cell.date,.cell.slider{width:50%;border-right:none}.cell.slider{width:100%;border-bottom:none}body{-webkit-overflow-scrolling:touch;overscroll-behavior:none}#map{touch-action:pan-x pan-y}input[type=range]{height:44px;margin-top:-19px}input[type=range]::-webkit-slider-thumb{width:32px;height:32px;margin-top:-13px}select{font-size:16px;background-size:16px 16px}}@media (max-width:640px){.aircraft-icon-container{padding:3px!important}.language-selector-inline{font-size:22px;padding:4px;text-align:center;width:36px;height:32px}#centerPopup.plane-mode{max-width:calc(100vw - 40px);font-size:13px}#centerPopup .plane-content{gap:4px}#centerPopup .separator{margin:0 2px}#centerPopup .second-line{font-size:12px}#centerPopup .plane-arrow{font-size:14px}.time-display{font-size:15px;user-select:none;-webkit-user-select:none}.time-display.hovering,.time-display.selecting{color:var(--orange)!important}}.coffee-link{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;padding:12px var(--padding);background:0 0;border:1px solid var(--border);border-radius:var(--border-radius-sm);color:var(--text);font-size:12px;font-weight:700;letter-spacing:.05em;text-decoration:none;transition:background-color var(--t-fast),border-color var(--t-fast);cursor:pointer}.coffee-link:hover{background:var(--hover-bg);border-color:var(--orange)}.coffee-emoji{font-size:14px}.footer-links{font-size:12px;text-align:center;margin-top:16px}.footer-links a{color:#94a3b8;text-decoration:none;transition:color var(--t-fast)}.footer-links .separator{color:var(--border);margin:0 6px}.debug-info-label{background:0 0!important;border:0!important}.debug-toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#fff;padding:10px 20px;border-radius:8px;font-family:"Inter",monospace;font-size:14px;font-weight:500;z-index:9999;pointer-events:none;animation:debugToastFade 1.5s ease-out forwards}.leaflet-overlay-pane path.debug-arrow{stroke-linecap:round;stroke-linejoin:round}
