@font-face{font-family:Cond;src:url(/radar/assets/heading.woff2);font-display:swap}@font-face{font-family:DM;src:url(/radar/assets/ui.woff2);font-display:swap}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#10171c;color:#edf2ef;font-family:DM,"Segoe UI",sans-serif;font-size:14px}button,a{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid #ffcc73;outline-offset:3px}.shell{max-width:1600px;width:92%;margin:auto}header{background:#141c21;border-bottom:1px solid #303a40}.top{height:72px;display:flex;align-items:center;gap:20px}.brand,.clock{display:flex;align-items:center;gap:10px}.brand img{border-radius:9px}.brand b{font-size:22px;letter-spacing:-.8px}.divider{height:23px;width:1px;background:#3e484c}.service,.clock span{color:#adb9bb}.clock{margin-left:auto;font-size:13px}.clock time,.status,#count,.mono,.mapScale,.flightInfo,.refresh,.island,.aCode{font-family:"SFMono-Regular",Consolas,monospace}.clock time{font-size:17px;color:#e7eedd;letter-spacing:1px}.clockIcon{width:14px;height:14px;border-radius:100%;border:1.5px solid #a5b7ac;position:relative}.clockIcon:after{content:"";position:absolute;left:5px;top:2px;width:3px;height:4px;border-left:1px solid;border-bottom:1px solid}.titleRow{padding:36px 0 25px;display:flex;align-items:end;justify-content:space-between;gap:18px}.kicker{font:600 10px/1.3 Consolas,monospace;letter-spacing:2px;color:#c8d1ce;display:flex;gap:9px;align-items:center}.kickerLine{width:23px;height:2px;background:#f4c273}h1,h2,h3{margin:0}h1,h2{font-family:Cond,Impact,"Arial Narrow",sans-serif;font-weight:600;line-height:1.05}h1{margin-top:6px;font-size:clamp(40px,4.5vw,76px);letter-spacing:-.018em}h1 em{font-style:normal;color:#edc582}nav{display:flex;padding:4px;border:1px solid #344047;border-radius:9px;background:#192227;gap:2px}nav button{border:none;background:none;color:#bec7ca;padding:9px 16px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:7px}nav button[aria-pressed=true]{background:#34423e;color:#ecf5de}i[data-icon]{display:inline-flex;align-items:center;justify-content:center;font-style:normal}i[data-icon] svg{width:18px;height:18px;display:block}.layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(267px,24vw,350px);gap:16px;align-items:stretch}.mapCard,aside,#airPanel{background:#182126;border:1px solid #37434a;border-radius:13px;overflow:hidden}.mapHead,.mapFoot,.asideHeading,.refresh{display:flex;align-items:center}.mapHead{height:57px;padding:0 21px;justify-content:space-between;border-bottom:1px solid #35424a}.mapHead>div{display:flex;align-items:center;gap:9px}.mapHead i{color:#b9cbae}.mapHead b{font-weight:600}.status{border:1px solid #4d5755;border-radius:4px;padding:5px 8px;color:#c1c7bf;font-size:10px;letter-spacing:1px;text-transform:uppercase}.status.live{color:#b4deac;border-color:#48614c;background:#24392d}.status.live:before{content:"";display:inline-block;width:6px;height:6px;background:#a5d69a;border-radius:50%;margin-right:6px}.status.old{color:#f3c57c;border-color:#6b5940}.mapStage{position:relative;overflow:hidden;background:radial-gradient(ellipse at 48% 52%,#2b414b,#17262e);height:clamp(410px,36vw,610px)}#map{width:100%;height:100%;touch-action:none;cursor:grab;display:block}#map:active{cursor:grabbing}.island{fill:#e3ecea;paint-order:stroke;stroke:#1c2d36;stroke-width:3.4px;text-anchor:middle;letter-spacing:1.2px;font-size:12px;font-weight:bold;pointer-events:none}.flightMarker{cursor:pointer}.flightMarker:focus{outline:none}.flightMarker:focus use,.flightMarker:hover use{fill:#fff3c6}.flightMarker text{font:10px Consolas,monospace;letter-spacing:.3px;fill:#f7d594}.north{position:absolute;pointer-events:none;right:18px;top:14px;text-align:center;color:#c3d2cf;font:11px Consolas,monospace}.north i{display:block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:15px solid #c7d5d1;margin:4px auto}.mapTools{position:absolute;right:14px;bottom:16px;display:grid;gap:4px}.mapTools button,.refresh button{height:34px;width:34px;border:1px solid #485861;border-radius:5px;background:#1c2a31;color:#d4dfdc;display:grid;place-items:center;font-size:21px}.mapTools button:hover,.refresh button:hover{background:#34464c}.mapScale{position:absolute;bottom:15px;left:18px;color:#a6b7bf;font-size:10px;pointer-events:none}.mapScale i{display:block;border:1px solid #9aadb6;border-top:none;height:4px;margin-top:3px}.mapFoot{min-height:43px;gap:23px;padding:9px 18px;color:#d2dad8;font-size:11px}.mapFoot span{display:flex;align-items:center;gap:7px}.mapFoot a{margin-left:auto}a{color:#afc6c4;text-decoration:none}a:hover{text-decoration:underline}.miniPlane{color:#efbf6b}.miniPlane svg{width:14px!important;height:14px!important}.aptDot{display:inline-block;border:1.5px solid #acdaca;width:8px;height:8px;border-radius:2px}.asideTitle{padding:22px 19px 15px}.asideHeading{justify-content:space-between;margin-top:5px}.asideHeading h2,#airPanel h2{font-size:35px}#count{font-size:15px;padding:4px 8px;color:#efca8e;background:#30302c;border:1px solid #514b3c;border-radius:5px}aside{display:flex;flex-direction:column}#traffic{overflow:auto;flex:1;max-height:clamp(350px,32vw,535px)}.fRow{display:flex;gap:12px;align-items:center;text-align:left;width:100%;border:0;border-top:1px solid #354047;background:none;padding:15px 17px;color:#d8e1df}.fRow:hover,.fRow.sel{background:#242f34}.planeBox{width:36px;height:36px;flex:none;display:grid;place-items:center;background:#303333;color:#f3c77b;border:1px solid #484b47;border-radius:7px}.record{min-width:0;flex:1}.record b{font:600 16px Consolas,monospace;display:block;letter-spacing:.3px}.record small{display:block;font-size:11px;color:#acbbbc;margin-top:4px}.flightInfo{font-size:11px;text-align:right;color:#d5dfdd}.detail{margin:0 17px 12px;padding:12px;border:1px solid #43524e;border-radius:7px;font:12px/1.7 Consolas,monospace;color:#c7d8cd}.refresh{gap:8px;justify-content:space-between;border-top:1px solid #354047;padding:13px 17px;font-size:10px;color:#b7c5c3;line-height:1.5}.refresh button{width:30px;height:30px}.empty{padding:18px;color:#c7d1cb;line-height:1.5}.airTitle{padding:24px}.airTitle h2{margin-top:8px}.airTitle p{margin:9px 0 0;color:#becacb}#airportGrid{padding:0 24px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.airportCard{display:flex;flex-direction:column;gap:8px;border:1px solid #3c484b;border-radius:8px;padding:15px;background:#1e2a30;color:#e0e7e5}.airportCard:hover{background:#26373d;text-decoration:none}.aCode{color:#edc582;font-size:12px;letter-spacing:1px}.airportCard small{color:#b9ccc5}footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 1px 24px;color:#9eaeaf;font-size:11px}footer>span:last-child{text-align:right;font-size:10px;line-height:1.55}footer b{color:#6d807f;margin:0 4px}[hidden]{display:none!important}
@media(max-width:850px){.layout{grid-template-columns:minmax(0,1fr) 245px;gap:11px}.shell{width:95%}.titleRow{padding-top:25px}.mapStage{height:410px}nav button{padding:8px 11px}#airportGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:690px){.top{height:57px;gap:10px}.service,.divider{display:none}.shell{width:94%}.brand img{width:31px;height:31px}.brand b{font-size:19px}.clock{gap:7px}.clock span{font-size:11px}.clock time{font-size:14px}.titleRow{display:block;padding:23px 0 13px}.titleRow .kicker{font-size:9px}h1{font-size:clamp(36px,8vw,49px)}nav{width:max-content;margin-top:14px}.layout{display:flex;flex-direction:column}.mapHead{height:45px;padding:0 12px}.mapHead b{font-size:13px}.mapStage{height:clamp(260px,64vw,385px)}.mapTools{right:9px;bottom:9px;gap:3px}.mapTools button{height:30px;width:30px}.mapFoot{min-height:35px;gap:15px;padding:7px 10px;font-size:10px}.asideTitle{padding:14px 15px 10px}.asideHeading{margin-top:4px}.asideHeading h2{font-size:29px}#traffic{max-height:355px}.fRow{padding:11px 15px}.airTitle{padding:17px}#airportGrid{padding:0 15px 15px;gap:7px}.airportCard{padding:11px}.mapScale{bottom:10px;left:10px}footer{padding:14px 2px 24px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .15s}}
.detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px;line-height:1.35}.detail small,.airportLine span{display:block;font:11px/1.35 DM,sans-serif;color:#aebeb8}.detail strong{display:block;font-size:12px;overflow-wrap:anywhere;margin-top:3px}.routeField{grid-column:1/-1;border-block:1px solid #42504c;padding-block:10px}.airportLine{margin-top:8px}.airportLine strong{color:#f0d299}.airportLine span{margin-top:3px}
.brand h1{font:700 24px/1 DM,sans-serif;letter-spacing:-.8px;margin:0}.regionBar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 2px}.regionBar [role=status]{font:12px/1.4 Consolas,monospace;color:#c2d0ca;text-align:right}.mapStage{height:clamp(510px,72svh,850px)}.layout{grid-template-columns:minmax(0,1fr) clamp(245px,21vw,310px)}#traffic{max-height:68svh}
#flightDialog{position:fixed;inset:0;margin:auto;width:min(433px,94vw);max-height:85dvh;overflow-y:auto;border:1px solid #59655e;border-radius:15px;background:#19252a;color:#eef3ed;padding:0;box-shadow:0 20px 75px #0008}#flightDialog::backdrop{background:#081016b5}body:has(#flightDialog[open]){overflow:hidden}.dialogHead{position:sticky;top:0;background:#1c282d;display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #45514f}.dialogHead h2{font-size:36px;margin-top:4px}.dialogHead button{width:42px;height:42px;border-radius:50%;font-size:26px;background:#28363b;border:1px solid #56635f;color:#e4ece6}.dialogHead button:hover{background:#35474b}#flightDialog .detail{border:0;margin:0;background:none;padding:20px;gap:15px}#flightDialog .detail strong{font-size:14px}.signalNote{margin:15px 20px 0;color:#f1ca84}
@media(max-width:690px){.regionBar{padding:12px 1px}.regionBar [role=status]{font-size:10px}.mapStage{height:clamp(350px,64svh,660px)}.brand h1{font-size:21px}.mapTools button{width:38px;height:38px}.mapHead{height:38px}#flightDialog{max-height:82dvh}.dialogHead{padding:12px 16px}}
.regionBar{flex-wrap:wrap;gap:8px}.regionBar #updated{margin-left:auto}.refreshNow{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid #c99d55;background:#efc37e;color:#162127;border-radius:7px;padding:7px 12px;font-weight:600}.refreshNow:disabled{opacity:.72}#refreshNote:not(:empty){padding:7px 13px;border-bottom:1px solid #394745;color:#d5dacd;font-size:12px}#refreshNote:empty{display:none}.routeField{grid-row:1}

.fullMapToggle { position: absolute; top: 12px; left: 12px; min-height: 40px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid #72848c; border-radius: 12px; background: #192b34; color: white; font: 600 13px/1.25 system-ui,sans-serif; }
.fullMapToggle:hover { background: #304952; }
body.radar-expanded { overflow: hidden; }
.view-radar #radarMapPanel.expanded-map { position: fixed; inset: 0; z-index: 100; width: 100%; max-width: none; height: 100%; height: 100dvh; display: flex; flex-direction: column; background: #16242c; border: 0; border-radius: 0; }
.view-radar #radarMapPanel.expanded-map .mapStage { flex: 1 1 auto; height: auto; min-height: 0; }
.expanded-map .mapHead, .expanded-map .mapFoot { flex-shrink: 0; }
.expanded-map .mapFoot { padding-bottom: max(6px,env(safe-area-inset-bottom)); }
#flightDialog .dialogHead { z-index: 1; }
#aircraftPhoto { padding: 0 20px; }
.aircraft-photo { margin: 14px 0 0; }
.aircraft-photo img { display: block; width: 100%; height: clamp(135px,23vh,210px); object-fit: contain; border-radius: 10px; background: #eaf0f4; }
.aircraft-photo figcaption { margin-top: 6px; font: 13px/1.4 var(--guide-font,system-ui); color: var(--guide-ink,#214152); }
.aircraft-photo .photo-credits { display: block; font-size: 11px; margin-top: 3px; color: var(--guide-muted,#476478); }
.aircraft-photo a { color: var(--guide-blue,#246381); text-decoration: underline; }
.photo-notice { font-size: 13px; color: var(--guide-muted,#476478); margin: 14px 0 0; }

.photo-frame{position:relative}.photo-info{position:absolute;top:6px;right:6px;max-width:90%;text-align:right}.photo-info summary{margin-left:auto;list-style:none;cursor:pointer;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#153340e8;color:white;font:20px/1 system-ui}.photo-info summary::-webkit-details-marker{display:none}.photo-info[open] .photo-credits{background:#fff;color:#203844;border:1px solid #bdd0d6;border-radius:8px;padding:8px 10px;max-width:270px}.aircraft-photo figcaption{font-weight:650;margin-top:8px}.aircraft-photo figcaption[hidden]{display:none}
