@charset "UTF-8";
:root{color-scheme:dark;--bg:#07191feb;--edge:#72bbbc55;--mint:#80edd0;--text:#dbe8e9;--muted:#91b0b8;--yellow:#e7e68b;--top:66px;--bottom:62px}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--text);background:#142e32;font-size:14px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button:hover{color:var(--mint)}a{color:var(--mint)}[hidden]{display:none!important}#map{position:absolute;inset:0}.map-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 90px 100px #01111966,inset 0 -45px 60px #01111944}.glass{background:linear-gradient(130deg,#0a2129ef,#07191feb);border:1px solid var(--edge);border-radius:3px 16px 3px 16px;box-shadow:0 8px 35px #0005,inset 0 1px #aeffea10;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.topbar{position:absolute;inset:0 0 auto;height:var(--top);display:flex;align-items:center;gap:26px;padding:0 26px;background:#06191ff2;border-bottom:1px solid #8ac7c72b;z-index:20;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#d5e9ea;letter-spacing:4px;font-size:23px;font-weight:500;white-space:nowrap}.brand svg{width:35px;fill:none;stroke:#b2d8dd;stroke-width:1.1}.brand small{align-self:start;font-size:9px;letter-spacing:1px;color:#6b9099;margin-top:7px}.topbar nav{display:flex;align-items:stretch;height:100%;gap:24px;padding:0 20px;border-left:1px solid #3d606433}.topbar nav button{position:relative;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;padding:0}.nav-active{color:var(--mint)}.nav-active:after{content:"";position:absolute;bottom:16px;left:0;right:0;height:1px;background:var(--mint)}.search-wrap{display:flex;position:relative;align-items:center;max-width:480px;flex:1;border:1px solid #58818a99;border-radius:2px 10px 2px 10px;height:36px;background:#0e27304d}.search-wrap>span{font-size:26px;margin:0 12px;color:#96bbc4;line-height:1}.search-wrap input{background:none;border:0;color:var(--text);width:100%;height:100%;font-size:12px;letter-spacing:.6px;padding-right:12px}.search-wrap input::placeholder{color:#89a5ad}.search-results{position:absolute;top:45px;left:0;width:100%;padding:7px;max-height:350px;overflow:auto}.search-results button{width:100%;display:flex;justify-content:space-between;text-align:left;padding:12px 10px;font-size:13px}.search-results button:hover{background:#61d4b515}.search-results small{color:var(--muted);margin-left:12px}.search-results p{margin:12px;color:var(--muted);font-size:12px}.demo-badge{border:1px solid #e7e68b88;border-radius:3px;color:var(--yellow);font-size:10px;padding:5px 9px;letter-spacing:1px}.topbar time{font-size:11px;letter-spacing:1px;white-space:nowrap;font-variant-numeric:tabular-nums}.view-heading{position:absolute;top:90px;left:28px;text-shadow:0 2px 8px #001820c9;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2px;color:#a4d9d8}.view-heading h1{font-size:25px;font-weight:400;letter-spacing:.3px;margin:7px 0 5px}.view-subtitle{font-size:11px;color:#c4d9d8}.left-panel{position:absolute;left:26px;top:179px;width:235px;padding:18px 16px;z-index:8}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1.9px;color:#b4d9dd;font-weight:500}.corner-dot{width:5px;height:5px;background:var(--mint);box-shadow:0 0 10px #80edd044}.country-tabs{display:flex;margin:17px 0 20px;gap:8px}.country-tabs button{flex:1;font-size:11px;text-transform:uppercase;border:1px solid #55767b70;padding:7px;border-radius:2px}.country-tabs button:hover{border-color:var(--mint);background:#80edd010}.section-label{font-size:9px;letter-spacing:1.8px;color:#7198a3;margin:0 0 9px}.switch-row{display:flex;align-items:center;justify-content:space-between;position:relative;min-height:39px;cursor:pointer;font-size:12px;border-bottom:1px solid #8bc6c00a}.switch-row>span:first-child{display:flex;align-items:center;gap:12px}.switch-row i{font-style:normal;font-size:20px;color:#adced3;width:20px;text-align:center}.switch-row input{position:absolute;right:0;width:33px;height:22px;margin:0;opacity:0;cursor:pointer}.switch{width:31px;height:17px;border-radius:20px;background:#28414a;border:1px solid #76949e66;pointer-events:none;transition:background .2s}.switch:after{content:"";display:block;width:11px;height:11px;background:#83a0ab;border-radius:50%;margin:2px;transition:transform .2s}.switch-row input:checked+.switch{background:#217f7166;border-color:#57d3b688}.switch-row input:checked+.switch:after{transform:translateX(13px);background:#9dffe5;box-shadow:0 0 9px #80edd04d}.switch-row input:focus-visible+.switch{outline:2px solid var(--mint);outline-offset:4px}.divider{border-top:1px solid #73969b39;margin:16px 0}.source-line{display:flex;align-items:center;gap:7px;color:#92b4ba;font-size:10px;line-height:1.5;margin:9px 0 0}.status-dot{display:inline-block;flex-shrink:0;width:5px;height:5px;background:#cca866;border-radius:50%}.status-dot.on{background:#80edd0;box-shadow:0 0 8px #80edd055}.status-dot.error{background:#e2977e}.mode-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.segmented{display:flex;border:1px solid #5c879377;border-radius:3px;overflow:hidden}.segmented button{font-size:11px;padding:7px 12px}.segmented .active{background:#4bd4b026;box-shadow:inset 0 0 0 1px #80edd0aa;color:#abffe5}.quality-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#9dbac1}.quality-label select{font-size:10px;background:#0a232a;border:1px solid #5c879344;border-radius:2px;padding:5px 2px;color:var(--text)}.subtle{font-size:10px;line-height:1.6;color:#789fa5;margin:12px 0 0}.scene-panel{position:absolute;left:26px;bottom:100px;width:235px;padding:16px;z-index:7}.scene-panel>.panel-title{font-size:9px;margin-bottom:12px}.scene-panel>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:10px 0;border-bottom:1px solid #7aacaa19;font-size:11px}.scene-panel>button:last-child{border:0;padding-bottom:0}.scene-panel small{display:block;color:#6f959e;font-size:9px;margin-top:4px}.scene-icon{font-size:22px;color:#96c3bb}.scene-panel>button>span:nth-child(2){flex:1}.traffic-panel{position:absolute;right:26px;top:90px;width:274px;padding:18px;z-index:8}.small-button{font-size:20px;line-height:10px;padding:4px;color:#96c1c6}.traffic-summary{display:flex;justify-content:space-between;align-items:center;margin:23px 0 18px}.traffic-summary strong{font-size:40px;font-weight:300;font-variant-numeric:tabular-nums;line-height:1}.traffic-summary span{display:block;color:#7d9fa8;font-size:10px;margin-top:5px;letter-spacing:.5px}.traffic-summary svg{width:82px;height:58px;fill:none;stroke:#64978d24;stroke-width:.75}.traffic-summary .pulse{stroke:#71bca9;stroke-width:1.2}.traffic-toolbar{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#89acb3;border-top:1px solid #6590983b;border-bottom:1px solid #6590983b;padding:7px 0}.traffic-toolbar button{font-size:18px}.traffic-tip{font-size:10px;color:#91adb3;line-height:1.6;margin:13px 0}.aircraft-list{max-height:min(28vh,240px);overflow:auto;scrollbar-width:thin;scrollbar-color:#315d60 transparent;min-height:80px}.aircraft-row{display:grid;width:100%;grid-template-columns:23px 1fr auto;align-items:center;text-align:left;border-top:1px solid #78a4ab1d;padding:11px 1px;gap:8px}.aircraft-row:hover,.aircraft-row.selected{background:#80edd010}.aircraft-row>i{font-size:19px;color:#9ac7cb;font-style:normal}.aircraft-row strong{font-size:12px;font-weight:400;letter-spacing:.7px}.aircraft-row small{display:block;font-size:9px;color:#6f97a2;margin-top:3px}.aircraft-row>span:last-child{text-align:right;font-size:11px;color:#a5c3c7;font-variant-numeric:tabular-nums}.empty{font-size:11px;line-height:1.7;color:#9eb4b9;margin:15px 0}.outline-button{width:100%;display:flex;justify-content:space-between;align-items:center;border:1px solid #76cfbe91;background:#52cdb30b;border-radius:2px;margin-top:16px;padding:10px 12px;font-size:11px}.legend{display:flex;gap:15px;align-items:center;font-size:8px;color:#779da4;margin:16px 0 1px}.legend span{display:flex;align-items:center;gap:4px}.legend-plane{font-style:normal;color:#b7dbe1}.legend-selected{display:block;border:1px solid #80edd0;width:8px;height:8px}.map-controls{position:absolute;bottom:126px;right:28px;z-index:10;display:flex;flex-direction:column;gap:10px}.map-controls button{display:flex;align-items:center;justify-content:center;background:#09232aed;backdrop-filter:blur(10px);border:1px solid #73a2a663;width:42px;height:40px;font-size:24px;box-shadow:0 4px 12px #0002}.map-controls>#north{height:64px;flex-direction:column;border-radius:4px 12px 4px 12px}.map-controls small{font-size:8px;color:#81b3be;letter-spacing:2px;margin-top:3px}.map-controls #compass-arrow{font-size:27px;transition:transform .15s}.zoom-buttons button+button{border-top:0}.bottom-bar{position:absolute;bottom:43px;left:26px;right:26px;min-height:40px;display:flex;align-items:center;padding:0 18px;gap:28px;border-radius:2px 10px 2px 10px;z-index:6;font-size:9px;letter-spacing:1.2px}.view-badge{display:flex;gap:8px;align-items:center;color:#b9dedf}.coordinates{color:#749ca7;font-variant-numeric:tabular-nums}.detail-steps{display:flex;align-items:center;gap:12px;margin-left:auto;color:#52767d;font-size:8px}.detail-steps i{display:block;width:32px;height:1px;background:#477b7655}.detail-steps .lit{color:#9dd4c6}.zoom-readout{color:#87b4bd;font-variant-numeric:tabular-nums}.map-note{position:absolute;bottom:18px;left:28px;font-size:9px;color:#b2c9c9;text-shadow:0 1px 3px #000;letter-spacing:.3px;z-index:6}.maplibregl-ctrl-bottom-right{bottom:10px!important;right:22px!important;max-width:58%}.maplibregl-ctrl-attrib{font-size:9px!important;background:#06191fd9!important;color:#8faeb5!important;border-radius:3px!important}.maplibregl-ctrl-attrib a{color:#aac9cd!important}.maplibregl-ctrl-scale{margin-bottom:92px!important;margin-left:286px!important;background:#06191f85!important;border-color:#a6c3bd!important;color:#bed9d5!important;font-size:10px!important;padding:1px 4px}.maplibregl-ctrl-attrib-button{filter:invert(.8)}#leader-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:9}#leader-lines path{fill:none;stroke:#a8f5df;stroke-width:1;opacity:.85}#leader-lines circle{fill:#b6ffe9;stroke:#133a36;stroke-width:1}#flight-cards{position:absolute;inset:0;pointer-events:none;z-index:10}.flight-card{position:absolute;width:220px;pointer-events:auto;background:linear-gradient(135deg,#17383add,#091f29eb);backdrop-filter:blur(16px);border:1px solid #8bcebcbb;border-radius:3px 12px 3px 12px;box-shadow:0 5px 24px #0005;user-select:none;overflow:hidden}.flight-card.stale{border-color:#dba97199}.flight-card header{display:flex;align-items:center;padding:10px 11px 7px;cursor:grab;touch-action:none;gap:8px}.flight-card header:active{cursor:grabbing}.flight-card header strong{font-size:13px;letter-spacing:1px;font-weight:500;color:#bcffe9;flex:1}.flight-card .drag-dots{color:#709e9f;font-size:15px;line-height:1}.flight-card header button{padding:2px 4px;color:#bed9d8;font-size:16px}.flight-card .card-meta{padding:0 12px 9px;font-size:10px;letter-spacing:.5px;color:#94b4bb}.flight-card .card-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;padding:10px 12px;border-top:1px solid #b2f4d920}.flight-card .card-stats small{font-size:8px;color:#85a6ad;display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:.7px}.flight-card .card-stats b{font-size:13px;font-weight:400;font-variant-numeric:tabular-nums}.flight-card footer{display:flex;justify-content:space-between;padding:7px 12px;background:#03171d55;font-size:9px;color:#75acb4}.flight-card footer button{color:#a7dccc;font-size:9px;padding:0}.flight-card.stale footer{color:#e5bc87}#notice{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);max-width:min(450px,85vw);padding:12px 18px;background:#102c34eb;border:1px solid #7fa6a677;border-radius:5px;font-size:12px;line-height:1.6;z-index:25;box-shadow:0 6px 20px #0005}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:15px;padding:24px 30px;z-index:30}.loading small{display:block;margin-top:8px;color:#86a7ae;font-size:10px}.loader{width:24px;height:24px;border:1px solid #78908e66;border-top-color:#80edd0;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fatal{position:absolute;top:35%;left:50%;transform:translateX(-50%);width:min(500px,90vw);padding:25px;z-index:31}.fatal h2{font-weight:400}.fatal p{line-height:1.7;color:#a8c1c5}.fatal button{border:1px solid var(--mint);padding:10px 15px}dialog{max-width:560px;width:90vw;max-height:85vh;overflow:auto;background:#092128;color:#d3e4e5;border:1px solid #6facaa77;border-radius:4px 18px 4px 18px;padding:32px;box-shadow:0 20px 100px #000a}dialog::backdrop{background:#020e16aa;backdrop-filter:blur(6px)}dialog h2{font-weight:300;font-size:29px;line-height:1.2;margin:16px 0 24px}dialog h3{font-weight:500;font-size:13px;margin:23px 0 10px}dialog p{font-size:12px;line-height:1.8;color:#a2bdc2}dialog small{font-size:10px;color:#6d969e}.dialog-close{position:absolute;right:15px;top:12px;font-size:24px}.mobile-only{display:none}.icon-button{font-size:24px}
@media(max-height:840px) and (min-width:801px){.left-panel{top:155px;padding:14px 16px}.view-heading{top:84px}.view-heading h1{font-size:22px;margin:4px 0}.view-subtitle{display:none}.switch-row{min-height:31px}.divider{margin:11px 0}.country-tabs{margin:12px 0 14px}.scene-panel{padding:12px 16px}.scene-panel>button{padding:7px 0}.scene-panel small{display:none}.scene-panel .panel-title{margin-bottom:4px}.scene-icon{font-size:18px}.subtle{margin-top:8px}.scene-panel{bottom:99px}.traffic-summary{margin:16px 0}}
@media(min-width:801px) and (max-height:690px){.scene-panel{display:none}.left-panel{top:139px}.subtle{font-size:9px}.view-heading{top:80px}.view-heading .eyebrow{display:none}.view-heading h1{font-size:20px}.traffic-panel{top:82px}.traffic-tip{display:none}.aircraft-list{max-height:155px}}
@media(max-width:1100px){.topbar{gap:15px;padding:0 20px}.brand{font-size:20px;gap:8px}.topbar nav{padding:0 12px;gap:15px}.topbar time{display:none}.traffic-panel{width:245px;right:18px}.left-panel,.scene-panel{left:18px;width:220px}.view-heading{left:20px}.bottom-bar{left:18px;right:18px;gap:14px}.coordinates{display:none}.maplibregl-ctrl-scale{margin-left:255px!important}.detail-steps{gap:8px}.detail-steps i{width:20px}}
@media(max-width:800px){:root{--top:59px}.topbar{padding:0 14px;gap:10px}.brand{font-size:19px;letter-spacing:3px}.brand svg{width:28px}.brand small,.topbar nav,.demo-badge{display:none}.search-wrap{height:32px;max-width:none}.search-wrap input{font-size:11px}.search-wrap>span{margin:0 8px;font-size:22px}.mobile-only{display:block}.view-heading{left:17px;top:77px}.view-heading h1{font-size:22px;margin:6px 0}.view-heading .eyebrow{font-size:8px}.view-subtitle{display:none}.left-panel{display:none;top:118px;left:14px;width:232px;max-height:calc(100dvh - 205px);overflow:auto;z-index:22}.left-panel.open{display:block}.scene-panel{left:14px;bottom:93px;width:auto;max-width:calc(100% - 79px);display:flex;padding:8px;gap:8px;z-index:6}.scene-panel .panel-title{display:none}.scene-panel>button{width:auto;gap:6px;padding:3px 7px!important;border:0;font-size:10px}.scene-panel small,.scene-panel>button>span:last-child{display:none}.scene-icon{font-size:18px}.scene-panel>button[data-view=lapland]{display:none}.traffic-panel{top:76px;right:14px;width:195px;padding:12px;max-height:calc(100dvh - 225px);overflow:auto}.traffic-panel .panel-title{font-size:9px;letter-spacing:1px}.traffic-panel .traffic-summary{margin:13px 0}.traffic-summary strong{font-size:30px}.traffic-summary svg{width:60px;height:40px}.traffic-summary span{font-size:9px}.traffic-tip{font-size:9px;margin:9px 0}.aircraft-list{max-height:145px}.aircraft-row{padding:8px 0;gap:5px;grid-template-columns:18px 1fr auto}.aircraft-row strong,.aircraft-row>span:last-child{font-size:10px}.aircraft-row small{font-size:8px}.traffic-toolbar{font-size:8px}.outline-button{margin-top:10px;font-size:10px;padding:9px}.legend{display:none}.traffic-panel.collapsed{width:166px}.bottom-bar{left:14px;right:14px;bottom:45px;padding:0 12px;gap:12px;min-height:34px;font-size:8px}.detail-steps{display:none}.zoom-readout{margin-left:auto}.map-note{left:15px;bottom:28px;font-size:8px}.map-note span{display:none}.map-controls{right:15px;bottom:94px;gap:6px}.map-controls button{width:35px;height:33px;font-size:21px}.map-controls>#north{height:52px}.maplibregl-ctrl-scale{margin-left:17px!important;margin-bottom:143px!important}.maplibregl-ctrl-attrib{font-size:8px!important;max-width:100%;white-space:normal!important;line-height:12px!important;padding:2px 5px!important}.maplibregl-ctrl-bottom-right{right:12px!important;bottom:6px!important;max-width:92%}.flight-card{width:196px}.flight-card .card-stats{gap:7px;padding:8px 11px}.flight-card .card-stats b{font-size:12px}.flight-card header strong{font-size:12px}.loading{padding:18px 20px;min-width:250px;font-size:12px}.search-results{width:min(310px,calc(100vw - 30px));left:auto;right:0}.traffic-panel.collapsed #traffic-body{display:none}}
@media(max-width:480px){.view-heading h1{font-size:17px;max-width:150px}.traffic-panel{width:166px}.traffic-summary svg{display:none}.traffic-panel .traffic-tip{display:none}.traffic-panel:not(.collapsed){top:134px}.search-wrap>span{display:none}.search-wrap input{padding-left:8px}.brand{font-size:17px;gap:7px;letter-spacing:2px}.brand svg{width:25px}.view-heading{top:77px}.scene-panel>button{font-size:9px}.scene-icon{font-size:17px}.map-note{bottom:30px}.traffic-toolbar span{font-size:8px;max-width:120px}.aircraft-row{grid-template-columns:16px 1fr}.aircraft-row>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Keep map controls and destination buttons clear of the floating panels. */
@media(min-width:801px){.map-controls{right:320px}}
@media(max-height:840px) and (min-width:801px){.scene-panel{left:282px;bottom:100px;width:auto;display:flex;gap:12px;padding:9px 12px;max-width:calc(100% - 620px)}.scene-panel .panel-title{display:none}.scene-panel>button{border:0;gap:7px;font-size:10px}.scene-panel>button>span:last-child{display:none}.scene-panel small{display:none}}
@media(max-width:1100px) and (min-width:801px){.map-controls{right:278px}.scene-panel{left:253px;max-width:calc(100% - 570px)}.scene-panel>button[data-view=lapland]{display:none}}
