:root{
  --bg:#0f172a; --panel:#111827; --panel2:#1f2937; --text:#e5e7eb; --muted:#9ca3af;
  --accent:#38bdf8; --border:#334155; --civil:#60a5fa; --mil:#ef4444; --train:#f59e0b; --svc:#22c55e; --services:#22c55e; --gov:#8b5cf6; --blue:#38bdf8;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
.app-header{background:#102033;color:#fff;padding:12px 18px;border-bottom:3px solid #2f78ff}
.app-header h1{margin:0;font-size:22px;line-height:1.15}.version{font-size:14px;background:#2f78ff;padding:2px 7px;border-radius:999px;vertical-align:middle}.app-header p{margin:4px 0 0;font-size:13px;color:#cbd5e1}
.app-shell{height:calc(100vh - 73px);display:flex;gap:12px;padding:12px}.map-panel{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 3px 14px rgba(15,23,42,.08)}
.toolbar{padding:10px;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab,.controls button{border:1px solid var(--border);background:#f8fafc;border-radius:10px;padding:8px 10px;font-weight:700;color:#1e293b;cursor:pointer}.tab.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.controls,.display-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.controls label,.display-options label{font-size:13px;color:#334155;font-weight:700}.controls select{margin-left:4px;border:1px solid var(--border);border-radius:8px;padding:6px;background:#fff}.display-options input{vertical-align:middle}#map{flex:1;min-height:420px;background:#dbeafe}#statusBar{padding:8px 12px;border-top:1px solid var(--border);font-size:13px;color:var(--muted);background:#fff}
.list-panel{width:330px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 3px 14px rgba(15,23,42,.08);display:flex;flex-direction:column;overflow:hidden}.list-heading{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline}.list-heading h2{margin:0;font-size:18px}#counts{font-size:13px;color:var(--muted)}#aircraftList{overflow:auto;padding:8px}.aircraft-row{border:1px solid var(--border);border-left-width:5px;border-radius:10px;background:#fff;margin-bottom:8px;padding:9px 10px;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s}.aircraft-row:hover{background:#f8fbff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(15,23,42,.08)}.aircraft-row.selected{outline:2px solid #2563eb;background:#eff6ff}.row-main{display:flex;justify-content:space-between;gap:8px}.row-title{font-weight:800;font-size:15px}.row-distance{font-size:13px;color:var(--muted);white-space:nowrap}.row-sub{font-size:13px;color:#475569;margin-top:2px}.row-meta{font-size:12px;color:#64748b;margin-top:4px}.cat-military{border-left-color:var(--mil)}.cat-training{border-left-color:var(--train)}.cat-services{border-left-color:var(--services)}.cat-government{border-left-color:var(--gov)}.cat-civil{border-left-color:var(--civil)}
.plane-icon{font-size:22px;line-height:22px;text-align:center;text-shadow:0 1px 2px rgba(255,255,255,.85);transform-origin:center center}.plane-icon span{display:block;transform-origin:center center}.plane-military{color:var(--mil)}.plane-training{color:var(--train)}.plane-services{color:var(--services)}.plane-government{color:var(--gov)}.plane-civil{color:var(--civil)}.plane-selected{filter:drop-shadow(0 0 5px #2563eb) drop-shadow(0 0 8px #2563eb)}.my-location{background:#2563eb;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 3px rgba(37,99,235,.25)}
.popup-card{min-width:220px;max-width:280px}.popup-card h3{margin:0 0 2px;font-size:18px}.popup-sub{color:#475569;font-weight:700;margin-bottom:6px}.popup-photo{width:100%;height:125px;object-fit:cover;border-radius:10px;background:#e2e8f0;margin:6px 0}.badge{display:inline-block;border-radius:999px;padding:2px 8px;font-size:12px;color:#fff;font-weight:800}.badge-military{background:var(--mil)}.badge-training{background:var(--train)}.badge-services{background:var(--services)}.badge-government{background:var(--gov)}.badge-civil{background:var(--civil)}.popup-grid{font-size:13px;margin-top:6px}.popup-grid div{display:flex;justify-content:space-between;border-top:1px solid #e5e7eb;padding:3px 0}.popup-grid strong{margin-right:10px}.mobile-label{display:none}
.radar-mode body{}body.radar-active{background:#020b05;color:#d8ffe1}body.radar-active .app-header{background:#001a0a;border-bottom-color:#22c55e}body.radar-active .map-panel,body.radar-active .list-panel,body.radar-active .toolbar,body.radar-active #statusBar{background:#03120a;border-color:#14532d;color:#d8ffe1}body.radar-active .tab,body.radar-active .controls button,body.radar-active select{background:#062012;color:#d8ffe1;border-color:#166534}body.radar-active .tab.active{background:#16a34a;border-color:#22c55e;color:#001a0a}body.radar-active .aircraft-row{background:#05190e;border-color:#14532d;color:#d8ffe1}body.radar-active .row-sub,body.radar-active .row-meta,body.radar-active #counts,body.radar-active #statusBar{color:#86efac}body.radar-active #map{filter:brightness(.72) contrast(1.25) saturate(.6) hue-rotate(55deg)}body.radar-active .leaflet-tile-pane{filter:brightness(.45) contrast(1.3) saturate(.25) hue-rotate(70deg)}
@media (max-width: 850px){
  .app-header{padding:10px 12px}.app-header h1{font-size:19px}.app-header p{font-size:11px}.app-shell{height:auto;min-height:calc(100vh - 64px);display:block;padding:8px}.map-panel{height:70vh;min-height:520px;margin-bottom:8px}.list-panel{width:100%;height:38vh;min-height:260px}.toolbar{gap:7px;align-items:stretch}.tabs{width:100%;display:grid;grid-template-columns:1fr .7fr 1fr}.tab{padding:8px 5px;font-size:12px}.desktop-label{display:none}.mobile-label{display:inline}.controls{width:100%;justify-content:space-between}.controls label{font-size:12px}.controls button{font-size:12px;padding:7px 8px}.display-options{width:100%;justify-content:space-between;font-size:12px}.plane-icon{font-size:20px;line-height:20px}.popup-card{max-width:230px}.popup-photo{height:105px}#map{min-height:380px}
}


/* v26.1: restore v25 appearance and aircraft icons while keeping v26 scale/logic */
html,body{background:var(--bg)!important;color:var(--text)!important;font-family:Arial,Helvetica,sans-serif!important;}
.app-header{background:linear-gradient(135deg,#0f172a,#1e293b)!important;border-bottom:1px solid var(--border)!important;color:var(--text)!important;padding:12px 16px!important;}
.app-header h1{font-size:22px!important;letter-spacing:.3px!important;}
.version{background:transparent!important;color:var(--accent)!important;font-weight:700!important;padding:0!important;border-radius:0!important;font-size:13px!important;}
.app-header p{color:var(--muted)!important;}
.app-shell{background:var(--bg)!important;gap:0!important;padding:0!important;}
.map-panel{background:var(--panel)!important;border:0!important;border-radius:0!important;box-shadow:none!important;}
.toolbar{background:linear-gradient(135deg,#0f172a,#1e293b)!important;border-bottom:1px solid var(--border)!important;color:var(--text)!important;}
.tab,.controls button{border:1px solid var(--border)!important;background:var(--panel2)!important;color:var(--text)!important;border-radius:999px!important;padding:8px 11px!important;font-size:13px!important;}
.tab.active{background:var(--accent)!important;color:#082f49!important;border-color:var(--accent)!important;font-weight:700!important;}
.controls label,.display-options label{color:var(--muted)!important;font-size:12px!important;}
.controls select{background:#0b1220!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:999px!important;}
.display-options input{accent-color:var(--accent)!important;}
#map{background:#111827!important;}
#statusBar{background:rgba(15,23,42,.8)!important;color:var(--muted)!important;border-top:1px solid var(--border)!important;}
.list-panel{background:var(--panel)!important;border:0!important;border-left:1px solid var(--border)!important;border-radius:0!important;box-shadow:none!important;}
.list-heading{border-bottom:1px solid var(--border)!important;color:var(--text)!important;}
.list-heading h2{color:var(--text)!important;}
#counts{color:var(--muted)!important;}
.aircraft-row{border:1px solid var(--border)!important;background:#0b1220!important;border-radius:12px!important;color:var(--text)!important;}
.aircraft-row:hover{border-color:#64748b!important;background:#0b1220!important;}
.aircraft-row.selected{border-color:var(--accent)!important;box-shadow:0 0 0 2px rgba(56,189,248,.25)!important;background:#0b1220!important;outline:none!important;}
.row-title{color:var(--text)!important;}
.row-sub{color:var(--muted)!important;}
.row-meta{color:#cbd5e1!important;}
.cat-military{border-left-color:var(--mil)!important;}.cat-training{border-left-color:var(--train)!important;}.cat-services{border-left-color:var(--svc)!important;}.cat-government{border-left-color:var(--gov)!important;}.cat-civil{border-left-color:var(--civil)!important;}
.plane-icon{font-size:24px!important;line-height:24px!important;text-align:center!important;text-shadow:0 2px 6px rgba(0,0,0,.8)!important;transform-origin:center center!important;background:transparent!important;border:0!important;}
.plane-icon .rotor{display:block!important;transform-origin:center center!important;}
.plane-icon .glyph{display:block!important;}
.marker-civil .glyph{color:var(--civil)!important;}.marker-military .glyph{color:var(--mil)!important;}.marker-training .glyph{color:var(--train)!important;}.marker-services .glyph{color:var(--svc)!important;}.marker-government .glyph{color:var(--gov)!important;}
.marker-selected .glyph{filter:drop-shadow(0 0 7px #fff)!important;animation:pulse 1s infinite!important;}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}
.ring-label,.range-label{color:#0f172a!important;background:rgba(255,255,255,.72)!important;border:1px solid rgba(14,165,233,.45)!important;border-radius:999px!important;font-size:11px!important;font-weight:700!important;text-align:center!important;line-height:18px!important;box-shadow:0 1px 4px rgba(15,23,42,.18)!important;}
.popup-card h3{color:#111827!important;}.popup-sub{color:#374151!important;}.popup-grid{color:#111827!important;}
@media (max-width:850px){
  .app-header h1{font-size:18px!important}.app-header p{font-size:12px!important}.app-shell{display:block!important;padding:0!important}.map-panel{height:58vh!important;min-height:360px!important;margin-bottom:0!important}.list-panel{width:100%!important;height:auto!important;min-height:320px!important;border-left:0!important;border-top:1px solid var(--border)!important}.toolbar{gap:6px!important}.tab{font-size:12px!important;padding:7px 9px!important}.plane-icon{font-size:30px!important;line-height:30px!important}.popup-card{max-width:235px!important}.popup-photo{height:115px!important}
}


/* v27: mobile formatting only - no aircraft logic, colour or icon changes */
@media (max-width:850px){
  .app-header{
    padding:8px 10px!important;
  }
  .app-header h1{
    font-size:17px!important;
    line-height:1.15!important;
  }
  .version{
    font-size:12px!important;
  }
  .app-header p{
    font-size:10.5px!important;
    line-height:1.25!important;
    margin-top:3px!important;
  }
  .app-shell{
    min-height:calc(100vh - 58px)!important;
  }
  .map-panel{
    height:62vh!important;
    min-height:430px!important;
  }
  .toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    padding:8px!important;
    align-items:stretch!important;
  }
  .tabs{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr .72fr 1fr!important;
    gap:6px!important;
  }
  .tab{
    width:100%!important;
    min-height:34px!important;
    padding:7px 5px!important;
    font-size:11.5px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    text-align:center!important;
  }
  .controls{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr auto!important;
    gap:6px!important;
    align-items:end!important;
  }
  .controls label{
    display:flex!important;
    flex-direction:column!important;
    gap:3px!important;
    font-size:11px!important;
    line-height:1.1!important;
  }
  .controls select{
    width:100%!important;
    margin-left:0!important;
    padding:6px 8px!important;
    font-size:12px!important;
  }
  .controls button{
    min-height:33px!important;
    padding:6px 9px!important;
    font-size:11.5px!important;
    white-space:nowrap!important;
  }
  .display-options{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:6px!important;
  }
  .display-options label{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    background:rgba(31,41,55,.9)!important;
    border:1px solid var(--border)!important;
    border-radius:999px!important;
    padding:6px 4px!important;
    font-size:11.5px!important;
    white-space:nowrap!important;
  }
  .list-panel{
    min-height:300px!important;
  }
  .list-heading{
    padding:9px 12px!important;
  }
  .list-heading h2{
    font-size:16px!important;
  }
  #aircraftList{
    padding:7px!important;
  }
  .aircraft-row{
    margin-bottom:7px!important;
    padding:8px 9px!important;
  }
  .row-title{
    font-size:14px!important;
  }
  .row-sub{
    font-size:12.5px!important;
  }
  .row-meta{
    font-size:11.5px!important;
  }
  #statusBar{
    padding:6px 9px!important;
    font-size:11.5px!important;
  }
}

@media (max-width:420px){
  .map-panel{
    height:64vh!important;
    min-height:440px!important;
  }
  .controls{
    grid-template-columns:1fr 1fr!important;
  }
  .controls button{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  .tab{
    font-size:11px!important;
    padding-left:3px!important;
    padding-right:3px!important;
  }
}


/* v28: mobile collapsible controls only. Desktop unchanged. */
.mobile-controls-toggle{
  display:none;
}

@media (max-width:850px){
  .mobile-controls-toggle{
    display:block!important;
    width:100%!important;
    border:1px solid var(--border)!important;
    background:var(--panel2)!important;
    color:var(--text)!important;
    border-radius:999px!important;
    padding:8px 10px!important;
    font-size:13px!important;
    font-weight:700!important;
    text-align:center!important;
  }

  .toolbar:not(.controls-open) .tabs,
  .toolbar:not(.controls-open) .controls,
  .toolbar:not(.controls-open) .display-options{
    display:none!important;
  }

  .toolbar{
    padding:7px 8px!important;
  }

  .map-panel{
    height:76vh!important;
    min-height:560px!important;
  }

  .toolbar.controls-open + #map{
    min-height:360px!important;
  }

  .toolbar:not(.controls-open) + #map{
    min-height:500px!important;
  }
}

@media (max-width:420px){
  .map-panel{
    height:78vh!important;
    min-height:570px!important;
  }
  .toolbar:not(.controls-open) + #map{
    min-height:510px!important;
  }
}

/* v29: Radar Mode visual refinement only */
body.radar-active{
  background:#000904!important;
  color:#b9ffca!important;
}
body.radar-active .app-header{
  background:linear-gradient(135deg,#001506,#00280d)!important;
  border-bottom:1px solid #16a34a!important;
  box-shadow:0 0 18px rgba(34,197,94,.22)!important;
}
body.radar-active .version{
  color:#7cff9a!important;
  text-shadow:0 0 8px rgba(34,197,94,.75)!important;
}
body.radar-active .map-panel,
body.radar-active .list-panel,
body.radar-active .toolbar,
body.radar-active #statusBar{
  background:#020d06!important;
  border-color:#14532d!important;
  color:#b9ffca!important;
}
body.radar-active .toolbar{
  background:linear-gradient(135deg,#001506,#052e16)!important;
}
body.radar-active .tab,
body.radar-active .controls button,
body.radar-active .mobile-controls-toggle{
  background:#031a0a!important;
  color:#b9ffca!important;
  border-color:#166534!important;
}
body.radar-active .tab.active{
  background:#22c55e!important;
  color:#001b08!important;
  border-color:#86efac!important;
}
body.radar-active .controls select{
  background:#020d06!important;
  color:#b9ffca!important;
  border-color:#166534!important;
}
body.radar-active #map{
  background:#000904!important;
  filter:none!important;
}
body.radar-active .leaflet-tile-pane{
  filter:brightness(.18) contrast(1.65) saturate(.15) hue-rotate(80deg)!important;
}
body.radar-active .leaflet-overlay-pane svg path{
  filter:drop-shadow(0 0 4px rgba(34,197,94,.4));
}
body.radar-active .ring-label,
body.radar-active .range-label{
  color:#b9ffca!important;
  background:rgba(0,20,8,.78)!important;
  border-color:rgba(34,197,94,.65)!important;
  box-shadow:0 0 8px rgba(34,197,94,.35)!important;
}
body.radar-active .aircraft-row{
  background:#020d06!important;
  border-color:#14532d!important;
  color:#b9ffca!important;
}
body.radar-active .aircraft-row.selected{
  border-color:#86efac!important;
  box-shadow:0 0 0 2px rgba(34,197,94,.28)!important;
}
body.radar-active .row-title,
body.radar-active .row-sub,
body.radar-active .row-meta,
body.radar-active #counts,
body.radar-active #statusBar{
  color:#86efac!important;
}
body.radar-active .plane-icon .glyph{
  color:#39ff6a!important;
  text-shadow:0 0 8px rgba(57,255,106,.9),0 0 16px rgba(57,255,106,.5)!important;
  opacity:.82;
}
body.radar-active .marker-selected .glyph{
  color:#eaffef!important;
  filter:drop-shadow(0 0 8px #39ff6a) drop-shadow(0 0 16px #39ff6a)!important;
  opacity:1;
}
body.radar-active .plane-icon.sweep-hit .glyph{
  color:#ffffff!important;
  opacity:1!important;
  filter:drop-shadow(0 0 7px #ffffff) drop-shadow(0 0 14px #39ff6a) drop-shadow(0 0 22px #39ff6a)!important;
  transform:scale(1.28)!important;
}
body.radar-active .my-location{
  background:#39ff6a!important;
  border-color:#eaffef!important;
  box-shadow:0 0 0 3px rgba(57,255,106,.25),0 0 16px rgba(57,255,106,.65)!important;
}
body.radar-active .leaflet-popup-content-wrapper,
body.radar-active .leaflet-popup-tip{
  background:#021107!important;
  color:#b9ffca!important;
  border:1px solid #166534!important;
}
body.radar-active .popup-card h3,
body.radar-active .popup-sub,
body.radar-active .popup-grid{
  color:#b9ffca!important;
}

/* v30.1 radar sweep labels - Radar Mode only */
body.radar-active .radar-painted-label{
  pointer-events:none;
  opacity:0;
  animation:radarLabelFade 2.8s ease-out forwards;
  z-index:650!important;
}
body.radar-active .radar-label-inner{
  display:inline-block;
  min-width:72px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#baffc9;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;
  line-height:1.05;
  font-weight:800;
  letter-spacing:.04em;
  text-shadow:0 0 5px rgba(57,255,106,1), 0 0 12px rgba(57,255,106,.8);
  box-shadow:none;
  white-space:nowrap;
}
body.radar-active .radar-label-inner small{
  display:block;
  margin-top:2px;
  color:#6dff91;
  font-size:9px;
  font-weight:700;
  letter-spacing:0;
  max-width:132px;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:0 0 5px rgba(57,255,106,.9), 0 0 10px rgba(57,255,106,.55);
}
@keyframes radarLabelFade{
  0%{opacity:0; transform:translate(0,-2px) scale(.96);}
  12%{opacity:1; transform:translate(0,-4px) scale(1);}
  70%{opacity:1; transform:translate(0,-4px) scale(1);}
  100%{opacity:0; transform:translate(0,-7px) scale(.98);}
}


.header-link{
  display:inline-block;
  padding:6px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--panel2);
  color:var(--text);
  text-decoration:none;
  font-size:13px;
  font-weight:700;
}
.header-link:hover{
  color:var(--accent);
  border-color:var(--accent);
}


/* v30.5 help/header polish */
.header-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 12px!important;
  border:1px solid var(--border)!important;
  border-radius:999px!important;
  background:var(--panel2)!important;
  color:var(--text)!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.header-link:hover{
  color:var(--accent)!important;
  border-color:var(--accent)!important;
  box-shadow:0 0 10px rgba(56,189,248,.18)!important;
}

.help-shell{
  min-height:calc(100vh - 73px);
  background:var(--bg);
  padding:16px;
}
.help-wrap{
  max-width:1120px;
  margin:0 auto;
}
.help-hero{
  background:linear-gradient(135deg,#0f172a,#1e293b);
  border:1px solid var(--border);
  border-radius:16px;
  padding:18px 20px;
  margin-bottom:14px;
  box-shadow:0 3px 14px rgba(15,23,42,.18);
}
.help-hero h2{
  margin:0 0 6px;
  color:var(--text);
  font-size:24px;
}
.help-hero p{
  margin:0;
  color:var(--muted);
  line-height:1.45;
}
.help-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.help-panel{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 3px 14px rgba(15,23,42,.12);
}
.help-panel.full{
  grid-column:1 / -1;
}
.help-panel h3{
  margin:0;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  background:linear-gradient(135deg,#0f172a,#1e293b);
  color:var(--accent);
  font-size:17px;
}
.help-panel .panel-body{
  padding:14px;
}
.help-panel p{
  margin:0 0 10px;
  color:#cbd5e1;
  line-height:1.5;
}
.help-table{
  width:100%;
  border-collapse:collapse;
  color:var(--text);
  font-size:14px;
}
.help-table th,
.help-table td{
  border-bottom:1px solid var(--border);
  padding:9px 8px;
  text-align:left;
  vertical-align:top;
}
.help-table th{
  color:var(--accent);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.help-table tr:last-child td{
  border-bottom:0;
}
.help-table td:first-child{
  color:#ffffff;
  font-weight:800;
  white-space:nowrap;
}
.help-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.help-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:1px solid var(--border);
  background:var(--panel2);
  color:var(--text);
  border-radius:999px;
  padding:9px 13px;
  font-weight:800;
}
.help-actions a:hover{
  color:var(--accent);
  border-color:var(--accent);
}
.help-note{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.version-box{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.version-box span{
  border:1px solid var(--border);
  background:#0b1220;
  border-radius:999px;
  padding:6px 10px;
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}
@media (max-width:850px){
  .app-header > div{
    flex-direction:column!important;
    gap:8px!important;
    padding-right:0!important;
  }
  .app-header .header-link{
    font-size:12px!important;
    padding:6px 10px!important;
  }
  .help-shell{
    padding:10px;
  }
  .help-grid{
    grid-template-columns:1fr;
  }
  .help-hero h2{
    font-size:20px;
  }
  .help-table{
    font-size:13px;
  }
  .help-table td:first-child{
    white-space:normal;
  }
}


/* v30.8 Aircraft colour legend and test-icon trigger */
.map-panel{
  position:relative!important;
}

.aircraft-legend{
  position:absolute;
  left:12px;
  bottom:48px;
  z-index:750;
  background:rgba(15,23,42,.88);
  border:1px solid var(--border);
  border-radius:12px;
  padding:8px 10px;
  min-width:130px;
  backdrop-filter:blur(4px);
  box-shadow:0 2px 10px rgba(0,0,0,.35);
  cursor:pointer;
  user-select:none;
}

.aircraft-legend:hover,
.aircraft-legend.test-active{
  border-color:rgba(59,130,246,.95);
  box-shadow:0 0 0 1px rgba(59,130,246,.35),0 2px 10px rgba(0,0,0,.35);
}

.legend-hint{
  float:right;
  font-size:10px;
  font-weight:700;
  color:var(--muted);
  opacity:.75;
  text-transform:uppercase;
}

.aircraft-legend.test-active .legend-hint{
  color:#93c5fd;
  opacity:1;
}

.test-badge{
  display:inline-block;
  margin-left:5px;
  padding:1px 5px;
  border-radius:999px;
  border:1px solid var(--border);
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
  vertical-align:middle;
}

.legend-title{
  font-size:12px;
  font-weight:700;
  color:var(--text);
  margin-bottom:6px;
}

.legend-row{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--text);
  margin:3px 0;
}

.legend-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}

.legend-military{background:var(--mil);}
.legend-training{background:var(--train);}
.legend-services{background:var(--svc);}
.legend-government{background:var(--gov);}
.legend-civil{background:var(--civil);}

body.radar-active .aircraft-legend{
  background:rgba(0,15,5,.88);
  border-color:#166534;
}

@media (max-width:850px){
  .aircraft-legend{
    left:8px;
    bottom:42px;
    min-width:115px;
    padding:7px 8px;
  }

  .legend-title{
    font-size:11px;
  }

  .legend-row{
    font-size:11px;
  }
}

/* v30.3: animated mobile controls drawer - slower deliberate opening */
@media (max-width:850px){
  .toolbar{
    overflow:hidden!important;
    transition:
      padding .45s cubic-bezier(.16,.84,.22,1),
      box-shadow .45s ease!important;
  }

  .toolbar .tabs,
  .toolbar .controls,
  .toolbar .display-options{
    overflow:hidden!important;
    max-height:180px!important;
    opacity:1!important;
    transform:translateY(0) scaleY(1)!important;
    transform-origin:top center!important;
    transition:
      max-height .55s cubic-bezier(.16,.84,.22,1),
      opacity .38s ease,
      transform .55s cubic-bezier(.16,.84,.22,1),
      margin .45s ease!important;
    will-change:max-height,opacity,transform;
  }

  .toolbar:not(.controls-open) .tabs,
  .toolbar:not(.controls-open) .controls,
  .toolbar:not(.controls-open) .display-options{
    display:grid!important;
    max-height:0!important;
    opacity:0!important;
    transform:translateY(-8px) scaleY(.78)!important;
    pointer-events:none!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }

  .toolbar.controls-open{
    box-shadow:0 0 18px rgba(56,189,248,.12)!important;
  }

  .toolbar.controls-open .tabs,
  .toolbar.controls-open .controls,
  .toolbar.controls-open .display-options{
    pointer-events:auto!important;
  }

  .mobile-controls-toggle{
    transition:
      background .28s ease,
      border-color .28s ease,
      box-shadow .28s ease,
      transform .28s ease!important;
  }

  .toolbar.controls-open .mobile-controls-toggle{
    box-shadow:0 0 12px rgba(56,189,248,.18)!important;
  }

  body.radar-active .toolbar.controls-open{
    box-shadow:0 0 18px rgba(34,197,94,.18)!important;
  }

  body.radar-active .toolbar.controls-open .mobile-controls-toggle{
    box-shadow:0 0 12px rgba(34,197,94,.22)!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .toolbar,
  .toolbar .tabs,
  .toolbar .controls,
  .toolbar .display-options,
  .mobile-controls-toggle{
    transition:none!important;
  }
}


/* v30.3: slower, more deliberate mobile controls drawer animation */
@media (max-width:850px){
  .toolbar{
    transition:
      padding .9s cubic-bezier(.16,.84,.22,1),
      box-shadow .9s ease!important;
  }

  .toolbar .tabs,
  .toolbar .controls,
  .toolbar .display-options{
    transition:
      max-height 1.05s cubic-bezier(.16,.84,.22,1),
      opacity .82s ease,
      transform 1.05s cubic-bezier(.16,.84,.22,1),
      margin .9s ease!important;
  }

  .mobile-controls-toggle{
    transition:
      background .55s ease,
      border-color .55s ease,
      box-shadow .55s ease,
      transform .55s ease!important;
  }
}


/* v30.4.1: iPhone/mobile fixed controls bar protection
   Keeps the Controls button in its own fixed-height toolbar area so Leaflet cannot overlap it. */
@media (max-width:850px){
  .map-panel{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    overflow:hidden!important;
  }

  .toolbar{
    position:relative!important;
    z-index:900!important;
    flex:0 0 auto!important;
    min-height:52px!important;
    width:100%!important;
    overflow:hidden!important;
    border-bottom:1px solid var(--border)!important;
  }

  .mobile-controls-toggle{
    position:relative!important;
    z-index:910!important;
    display:block!important;
    min-height:38px!important;
    line-height:1.2!important;
  }

  #map{
    position:relative!important;
    z-index:1!important;
    min-height:0!important;
    height:100%!important;
    flex:0 1 auto!important;
  }

  #statusBar{
    position:relative!important;
    z-index:20!important;
    flex:0 0 auto!important;
  }

  .leaflet-container{
    z-index:1!important;
  }
}

@media (max-width:420px){
  .toolbar{
    min-height:54px!important;
  }
}


/* v30.4.3: true collapsed mobile toolbar gap fix
   The visible gap was caused by hidden toolbar rows still reserving grid row gaps. */
@media (max-width:850px){
  .toolbar:not(.controls-open){
    gap:0!important;
    row-gap:0!important;
    padding:7px 8px 3px 8px!important;
  }

  .toolbar:not(.controls-open) .tabs,
  .toolbar:not(.controls-open) .controls,
  .toolbar:not(.controls-open) .display-options{
    max-height:0!important;
    min-height:0!important;
    height:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin-top:0!important;
    margin-bottom:0!important;
    border-top:0!important;
    border-bottom:0!important;
  }

  .toolbar.controls-open{
    gap:7px!important;
    row-gap:7px!important;
  }
}

@media (max-width:420px){
  .toolbar:not(.controls-open){
    gap:0!important;
    row-gap:0!important;
    padding:7px 8px 3px 8px!important;
  }
}


/* v30.7: keep the original fixed-wing aircraft glyph; add crisp SVG icons only for helicopter, drone and Red Arrows */
.plane-icon .glyph{
  width:100%!important;
  height:100%!important;
  color:inherit!important;
}
.aircraft-svg{
  width:100%!important;
  height:100%!important;
  display:block!important;
  overflow:visible!important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.65)) drop-shadow(0 0 4px currentColor)!important;
  shape-rendering:geometricPrecision!important;
}
.aircraft-shape{fill:currentColor!important;stroke:none!important;}
.aircraft-line{fill:none!important;stroke:currentColor!important;stroke-width:5!important;stroke-linecap:round!important;stroke-linejoin:round!important;}
.aircraft-line.thin{stroke-width:3!important;}
.aircraft-dot{fill:currentColor!important;stroke:none!important;}
.aircraft-cut{fill:#06111f!important;stroke:none!important;opacity:.92!important;}
.marker-civil{color:var(--civil)!important;}
.marker-military{color:var(--mil)!important;}
.marker-training{color:var(--train)!important;}
.marker-services{color:var(--svc)!important;}
.marker-government{color:var(--gov)!important;}
.aircraft-type-fixedwing .glyph{font-family:Arial,Helvetica,sans-serif!important;}
.marker-selected .aircraft-svg{filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px currentColor)!important;animation:pulse 1s infinite!important;}

/* Inline help-page SVG icon samples */
.icon-sample{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:8px;color:var(--civil);font-size:32px;text-shadow:0 2px 6px rgba(0,0,0,.8)}
.icon-sample svg{width:34px;height:34px;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.65)) drop-shadow(0 0 4px currentColor)}
.icon-military{color:var(--mil)!important}.icon-training{color:var(--train)!important}.icon-services{color:var(--svc)!important}.icon-government{color:var(--gov)!important}.icon-civil{color:var(--civil)!important}

/* v30.13: safe main-map squawk alerts. Halo is a Leaflet circleMarker, not part of the aircraft marker, so it cannot move the icon away from its map position. */
.squawk-test-btn{
  border:1px solid var(--border)!important;
  background:var(--panel2)!important;
  color:var(--text)!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
.squawk-test-btn:hover,
.squawk-test-btn.active-test{
  border-color:#f59e0b!important;
  color:#fbbf24!important;
  box-shadow:0 0 10px rgba(245,158,11,.25)!important;
}
.squawk-badge{
  display:inline-block;
  margin-left:5px;
  padding:1px 6px;
  border-radius:999px;
  color:#fff;
  font-size:10px;
  line-height:1.25;
  vertical-align:middle;
  font-weight:900;
}
.squawk-emergency,.squawk-hijack{background:#ef4444;}
.squawk-radio{background:#f59e0b;color:#111827;}
.squawk-lowflying{background:#d946ef;}
.aircraft-row.alert-emergency,
.aircraft-row.alert-hijack{border-color:#ef4444!important;box-shadow:0 0 0 1px rgba(239,68,68,.35)!important;}
.aircraft-row.alert-radio{border-color:#f59e0b!important;box-shadow:0 0 0 1px rgba(245,158,11,.35)!important;}
.aircraft-row.alert-lowflying{border-color:#d946ef!important;box-shadow:0 0 0 1px rgba(217,70,239,.35)!important;}
.popup-alert{
  border-radius:10px;
  padding:7px 9px;
  margin-bottom:7px;
  color:#fff;
  font-weight:900;
  font-size:13px;
  line-height:1.15;
  text-align:center;
}
.popup-alert span{font-size:11px;font-weight:800;opacity:.95;}
.popup-alert-emergency,.popup-alert-hijack{background:#dc2626;}
.popup-alert-radio{background:#f59e0b;color:#111827;}
.popup-alert-lowflying{background:#c026d3;}
body.radar-active .squawk-test-btn{
  background:#031a0a!important;
  color:#b9ffca!important;
  border-color:#166534!important;
}
@media (max-width:850px){
  .squawk-test-btn{
    width:100%!important;
    min-height:31px!important;
    padding:6px 8px!important;
    font-size:11.5px!important;
  }
}

/* v30.14: BBMF overlay ring. This is a separate Leaflet circleMarker, not part of the aircraft marker, so it cannot affect map-position locking. */
.bbmf-badge{
  display:inline-block;
  margin-left:5px;
  padding:1px 6px;
  border-radius:999px;
  border:1px solid #fbbf24;
  background:rgba(251,191,36,.14);
  color:#fbbf24;
  font-size:10px;
  line-height:1.25;
  vertical-align:middle;
  font-weight:900;
}
.aircraft-row.bbmf-aircraft{
  border-color:#fbbf24!important;
  box-shadow:0 0 0 1px rgba(251,191,36,.35)!important;
}
.popup-bbmf{
  border:1px solid #fbbf24;
  background:rgba(251,191,36,.13);
  color:#fbbf24;
  border-radius:10px;
  padding:7px 9px;
  margin-bottom:7px;
  font-weight:900;
  font-size:13px;
  line-height:1.15;
  text-align:center;
}
.popup-bbmf span{
  font-size:11px;
  font-weight:800;
  color:#fde68a;
}
.legend-bbmf{
  width:10px;
  height:10px;
  border:2px solid #fbbf24;
  border-radius:50%;
  background:transparent;
  display:inline-block;
}
body.radar-active .bbmf-badge,
body.radar-active .popup-bbmf{
  border-color:#fbbf24!important;
  color:#fbbf24!important;
  box-shadow:0 0 10px rgba(251,191,36,.18)!important;
}


/* v30.17: main map shared station selector */
#stationSelect{
  min-width:170px;
}
@media (max-width:850px){
  #stationSelect{
    min-width:0!important;
    width:100%!important;
  }
}


/* v30.20: main map mobile landscape repair
   Portrait layout remains unchanged. In phone landscape, keep the map usable,
   compact the header/toolbar, and put the aircraft list beside the map.
*/
@media (max-height:520px) and (orientation:landscape){
  html,
  body{
    height:100svh!important;
    min-height:100svh!important;
    overflow:hidden!important;
  }

  .app-header{
    padding:5px 8px!important;
  }

  .app-header h1{
    font-size:15px!important;
    line-height:1!important;
  }

  .app-header p{
    display:none!important;
  }

  .app-shell{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 235px!important;
    gap:0!important;
    height:calc(100svh - 34px)!important;
    min-height:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  .map-panel{
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    overflow:hidden!important;
  }

  .toolbar{
    min-height:0!important;
    padding:4px 6px!important;
    gap:4px!important;
  }

  .mobile-controls-toggle{
    min-height:28px!important;
    padding:4px 8px!important;
    font-size:11px!important;
  }

  .toolbar.controls-open .tabs,
  .toolbar.controls-open .controls,
  .toolbar.controls-open .display-options{
    max-height:92px!important;
  }

  .tab,
  .controls button,
  .squawk-test-btn{
    min-height:26px!important;
    padding:4px 6px!important;
    font-size:10px!important;
  }

  .controls label,
  .display-options label{
    font-size:10px!important;
  }

  .controls select{
    padding:3px 5px!important;
    font-size:10px!important;
  }

  #map{
    min-height:0!important;
    height:100%!important;
  }

  #statusBar{
    padding:3px 6px!important;
    font-size:10px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .list-panel{
    width:auto!important;
    height:100%!important;
    min-height:0!important;
    border-left:1px solid var(--border)!important;
    border-top:0!important;
  }

  .list-heading{
    padding:6px 8px!important;
  }

  .list-heading h2{
    font-size:14px!important;
  }

  #aircraftList{
    padding:5px!important;
  }

  .aircraft-row{
    padding:6px 7px!important;
    margin-bottom:5px!important;
  }

  .row-title{
    font-size:12px!important;
  }

  .row-sub,
  .row-meta{
    font-size:10.5px!important;
  }

  .aircraft-legend{
    bottom:28px!important;
    left:8px!important;
    transform:scale(.86)!important;
    transform-origin:left bottom!important;
  }
}


/* v30.20.3: public-facing startup notice wording and compact mobile controls */
.startup-notice{
  position:fixed;
  inset:0;
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(4,10,20,.78);
  backdrop-filter:blur(3px);
}
.startup-notice-hidden{display:none!important;}
.startup-notice-card{
  max-width:560px;
  width:min(560px,100%);
  background:#152235;
  color:#eaf6ff;
  border:1px solid rgba(125,211,252,.28);
  border-radius:18px;
  padding:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.45);
}
.startup-notice-card h2{margin:0 0 10px;font-size:22px;}
.startup-notice-card p{margin:9px 0;line-height:1.38;color:#d7e8f7;}
.startup-notice-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:15px;}
.startup-notice-actions a,
.startup-notice-actions button{
  border:1px solid rgba(125,211,252,.28);
  border-radius:999px;
  padding:9px 14px;
  background:#1b2c44;
  color:#eaf6ff;
  text-decoration:none;
  font-weight:700;
}
.startup-notice-actions button{cursor:pointer;background:#38bdf8;color:#07111f;border-color:#38bdf8;}
@media (max-width:850px){
  #useLocationBtn{display:none!important;}
  .startup-notice{align-items:flex-start;padding-top:22px;}
  .startup-notice-card{padding:15px;border-radius:15px;}
  .startup-notice-card h2{font-size:19px;}
  .startup-notice-card p{font-size:13px;}
  .startup-notice-actions{justify-content:stretch;}
  .startup-notice-actions a,
  .startup-notice-actions button{flex:1;text-align:center;}
}


/* v30.20.4: public site status popup */
.header-button{font:inherit;cursor:pointer}
.site-status-modal{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(2,8,23,.78);backdrop-filter:blur(3px)}
.site-status-hidden{display:none!important}
.site-status-card{max-width:620px;width:min(620px,100%);background:linear-gradient(180deg,#0f172a,#07111f);color:#e5f5ff;border:1px solid rgba(56,189,248,.38);border-radius:18px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.55)}
.site-status-card h2{margin:0 0 12px;color:#e0f2fe;font-size:22px}
.site-status-card p{margin:9px 0;line-height:1.38;color:#d7e8f7}
.site-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.site-status-grid div{background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.24);border-radius:14px;padding:11px;text-align:center}
.site-status-grid strong{display:block;font-size:24px;color:#7dd3fc;margin-bottom:4px}
.site-status-grid span{font-size:12px;color:#cfe6f5}
.site-status-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:15px}
.site-status-actions a,.site-status-actions button{border:1px solid rgba(56,189,248,.38);border-radius:999px;padding:9px 14px;background:#07111f;color:#e5f5ff;text-decoration:none;font-weight:700}
.site-status-actions button{cursor:pointer;background:#38bdf8;color:#07111f;border-color:#38bdf8}
@media(max-width:700px){.site-status-modal{align-items:flex-start;padding-top:18px}.site-status-card{padding:15px;border-radius:15px}.site-status-card h2{font-size:19px}.site-status-card p{font-size:13px}.site-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.site-status-grid strong{font-size:21px}.site-status-actions{justify-content:stretch}.site-status-actions a,.site-status-actions button{flex:1;text-align:center}.app-header .header-button{padding:5px 8px;font-size:12px}}

.admin-version-link{color:inherit;text-decoration:none;opacity:.75}
.admin-version-link:hover{opacity:1;text-decoration:underline}


/* v30.20.22: collapsible aircraft legend and separate Test Icons button */
.legend-toggle{
  float:right;
  margin-left:8px;
  font-weight:900;
  color:var(--muted);
}
.legend-content{
  display:block;
}
.aircraft-legend.legend-collapsed .legend-content{
  display:none!important;
}
.aircraft-legend.legend-collapsed{
  min-width:auto!important;
}
.aircraft-legend .legend-title{
  cursor:pointer;
  margin-bottom:0!important;
}
.aircraft-legend:not(.legend-collapsed) .legend-title{
  margin-bottom:6px!important;
}
.test-icons-btn{
  border:1px solid var(--border)!important;
  background:var(--panel2)!important;
  color:var(--text)!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
.test-icons-btn:hover,
.test-icons-btn.active-test{
  border-color:#38bdf8!important;
  color:#7dd3fc!important;
  box-shadow:0 0 10px rgba(56,189,248,.25)!important;
}
body.radar-active .test-icons-btn{
  background:#031a0a!important;
  color:#b9ffca!important;
  border-color:#166534!important;
}
@media (max-width:850px){
  .test-icons-btn{
    width:100%!important;
    min-height:31px!important;
    padding:6px 8px!important;
    font-size:11.5px!important;
  }
}


/* v30.20.23: Air Ambulance special halo */
.air-ambulance-badge{
  display:inline-block;
  margin-left:5px;
  padding:1px 6px;
  border-radius:999px;
  border:1px solid #22c55e;
  background:rgba(34,197,94,.15);
  color:#86efac;
  font-size:10px;
  line-height:1.25;
  vertical-align:middle;
  font-weight:900;
}
.aircraft-row.air-ambulance-aircraft{
  border-color:#22c55e!important;
  box-shadow:0 0 0 1px rgba(34,197,94,.35)!important;
}
.popup-air-ambulance{
  border:1px solid #22c55e;
  background:rgba(34,197,94,.13);
  color:#22c55e;
  border-radius:10px;
  padding:7px 9px;
  margin-bottom:7px;
  font-weight:900;
  font-size:13px;
  line-height:1.15;
  text-align:center;
}
.popup-air-ambulance span{
  font-size:11px;
  font-weight:800;
  color:#86efac;
}
.legend-air-ambulance{
  width:12px;
  height:12px;
  border:3px solid #22c55e;
  border-radius:50%;
  background:transparent;
  display:inline-block;
  box-shadow:0 0 6px rgba(34,197,94,.6);
}
body.radar-active .air-ambulance-badge,
body.radar-active .popup-air-ambulance{
  border-color:#22c55e!important;
  color:#86efac!important;
  box-shadow:0 0 10px rgba(34,197,94,.2)!important;
}


/* v30.20.25: keep aircraft popup close button visible on small screens */
.leaflet-popup-content-wrapper{
  max-height:calc(100vh - 90px)!important;
  overflow:auto!important;
}
.leaflet-popup-content{
  margin:14px 16px!important;
}
@media (max-width:850px){
  .leaflet-popup-content-wrapper{
    max-height:calc(100svh - 95px)!important;
  }
  .popup-card{
    max-width:min(240px, calc(100vw - 74px))!important;
  }
  .leaflet-popup{
    margin-top:8px!important;
  }
}


/* v30.20.28: mobile floating aircraft details card */
.mobile-aircraft-modal{
  position:fixed;
  inset:0;
  z-index:12000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  background:rgba(2,8,23,.44);
  backdrop-filter:blur(2px);
}
.mobile-aircraft-hidden{
  display:none!important;
}
.mobile-aircraft-card{
  position:relative;
  width:min(320px, calc(100vw - 28px));
  max-height:calc(100svh - 34px);
  overflow:auto;
  background:#ffffff;
  color:#111827;
  border-radius:16px;
  box-shadow:0 18px 50px rgba(0,0,0,.55);
  padding:10px;
}
.mobile-aircraft-close{
  position:sticky;
  top:0;
  float:right;
  z-index:2;
  width:34px;
  height:34px;
  border:0;
  border-radius:999px;
  background:#0f172a;
  color:#ffffff;
  font-size:24px;
  line-height:30px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.3);
}
.mobile-aircraft-card .popup-card{
  max-width:none!important;
  min-width:0!important;
  width:100%!important;
  padding-top:4px;
}
.mobile-aircraft-card .popup-photo{
  height:135px!important;
}
@media (min-width:851px){
  .mobile-aircraft-modal{
    display:none!important;
  }
}
body.radar-active .mobile-aircraft-card{
  background:#021107;
  color:#b9ffca;
  border:1px solid #166534;
}
body.radar-active .mobile-aircraft-close{
  background:#16a34a;
  color:#001b08;
}


/* v30.20.53 Sky Transit desktop UI inspired by the working concept screen */
.map-panel{position:relative;}
.sky-transit-ui{display:none;position:absolute;left:12px;right:12px;top:116px;bottom:42px;pointer-events:none;z-index:650;}
body.sky-transit-ui-visible .sky-transit-ui{display:block;}
.sky-transit-info-card{pointer-events:auto;background:rgba(15,23,42,.92);color:#e5edf8;border:1px solid rgba(148,163,184,.35);box-shadow:0 8px 22px rgba(2,6,23,.28);border-radius:12px;padding:12px 14px;font-size:13px;backdrop-filter:blur(4px);}
.sky-transit-main-panel{position:absolute;left:0;top:205px;width:245px;}
.sky-transit-legend-panel{position:absolute;left:0;top:388px;width:245px;}
.sky-transit-guide-panel{position:absolute;left:0;top:548px;width:245px;}
.sky-transit-selected-panel{position:absolute;right:0;top:0;width:285px;}
.sky-card-title{font-weight:900;font-size:14px;letter-spacing:.02em;margin-bottom:10px;color:#fff;}
.sky-card-row{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(148,163,184,.22);padding:6px 0;}
.sky-card-row:first-of-type{border-top:0;}
.sky-card-row span{color:#cbd5e1;}
.sky-card-row strong{color:#fff;white-space:nowrap;}
.sky-card-subtitle{color:#cbd5e1;margin-top:8px;font-size:12px;}
.sky-card-big{font-size:18px;font-weight:900;color:#fff;margin:3px 0 6px;}
.sky-card-target{border:1px solid #facc15;color:#facc15;border-radius:10px;padding:9px 10px;margin-bottom:8px;text-align:center;font-weight:900;background:rgba(250,204,21,.08);}
.sky-card-note{color:#cbd5e1;font-size:12px;font-style:italic;margin-top:8px;}
.sky-transit-guide-panel p{margin:8px 0;color:#dbeafe;line-height:1.35;}
.sky-legend-row{display:flex;align-items:center;gap:10px;margin:8px 0;color:#e5edf8;}
.sky-line{display:inline-block;width:30px;border-top:3px dashed #94a3b8;}
.sky-line-target{border-color:#f59e0b;}
.sky-line-track{border-color:#94a3b8;}
.sky-dot{width:18px;height:18px;border-radius:50%;display:inline-block;border:2px solid #facc15;box-shadow:0 0 10px rgba(250,204,21,.65);}
.sky-dot-strong{animation:skyPulse 1.05s ease-in-out infinite;}
.sky-target-label{display:none!important;}
.sky-halo{filter:drop-shadow(0 0 5px rgba(250,204,21,.8));}
.sky-halo-possible{animation:skyPulse 1.4s ease-in-out infinite;}
.sky-halo-high{animation:skyPulse 0.9s ease-in-out infinite;}
@keyframes skyPulse{0%,100%{stroke-opacity:.45;opacity:.55;}50%{stroke-opacity:1;opacity:1;}}
.popup-sky-transit{border:1px solid #facc15!important;background:#1c1605!important;color:#fffbeb!important;border-radius:10px!important;padding:10px!important;margin-bottom:10px!important;box-shadow:0 0 14px rgba(250,204,21,.22);}
.popup-sky-transit strong{display:block;color:#facc15;margin-bottom:6px;}
.popup-sky-transit div{font-size:12px;color:#fde68a;margin-top:2px;}
.sky-popup-safety{color:#fecaca!important;margin-top:6px!important;}
body.sky-transit-active .sky-target-marker{transform:scale(.86);}
@media (max-width: 1100px){.sky-transit-main-panel,.sky-transit-legend-panel,.sky-transit-guide-panel{display:none}.sky-transit-selected-panel{display:none}.sky-transit-ui{display:none!important}}

/* v30.20.53 Sky Transit desktop panel polish */
.sky-transit-ui{top:60px;bottom:36px;}
.sky-transit-info-card{background:rgba(15,23,42,.94);border-color:rgba(96,165,250,.32);box-shadow:0 10px 24px rgba(2,6,23,.36);}
.sky-transit-main-panel{left:12px;top:92px;width:245px;}
.sky-transit-legend-panel{left:12px;top:278px;width:245px;}
.sky-transit-guide-panel{left:12px;top:438px;width:245px;max-height:190px;overflow:hidden;}
.sky-transit-selected-panel{right:12px;top:10px;width:292px;padding:14px 16px;border-color:rgba(250,204,21,.38);}
.sky-card-title{font-size:15px;margin-bottom:12px;}
.sky-card-row{padding:7px 0;}
.sky-card-big{font-size:19px;}
.sky-transit-stats-panel{pointer-events:auto;position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;background:rgba(15,23,42,.95);color:#e5edf8;border:1px solid rgba(96,165,250,.32);box-shadow:0 10px 24px rgba(2,6,23,.34);border-radius:12px;padding:10px 18px;min-width:520px;backdrop-filter:blur(5px);}
.sky-stats-icon{font-size:24px;line-height:1;margin-right:2px;}
.sky-stat{border-left:1px solid rgba(148,163,184,.25);padding-left:16px;min-width:92px;}
.sky-stat:first-of-type{border-left:0;padding-left:0;}
.sky-stat span{display:block;font-size:11px;color:#cbd5e1;white-space:nowrap;}
.sky-stat strong{display:block;font-size:18px;color:#fff;margin-top:2px;white-space:nowrap;}
.sky-stat-wide strong{font-size:14px;margin-top:5px;}
@media (max-width: 1100px){.sky-transit-stats-panel{display:none!important}}


/* v30.20.53: robust desktop Sky Transit panel layout - stacked, no overlap */
@media (min-width: 1101px){
  body.sky-transit-ui-visible .sky-transit-ui{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .sky-transit-ui{
    left:12px;
    right:12px;
    top:12px;
    bottom:40px;
    max-height:calc(100% - 52px);
    overflow:visible;
  }
  .sky-transit-main-panel,
  .sky-transit-legend-panel,
  .sky-transit-guide-panel{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:245px;
    margin:0!important;
    box-sizing:border-box;
  }
  .sky-transit-guide-panel{
    max-height:170px;
    overflow:auto;
  }
  .sky-transit-guide-panel p{
    margin:7px 0;
  }
  .sky-transit-selected-panel{
    position:absolute!important;
    right:12px;
    top:10px;
    width:292px;
  }
  .sky-transit-selected-panel:empty{
    display:none!important;
  }
  .sky-transit-stats-panel{
    bottom:10px;
    min-width:560px;
  }
}

/* v30.20.54: polished desktop Sky Transit layout from concept screen */
#map{position:relative;}
@media (min-width:1101px){
  body.sky-transit-ui-visible .sky-transit-ui{
    display:flex!important;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .sky-transit-ui{
    position:absolute!important;
    left:10px!important;
    right:10px!important;
    top:10px!important;
    bottom:10px!important;
    z-index:650;
    pointer-events:none;
    overflow:visible!important;
  }
  .sky-transit-info-card{
    pointer-events:auto;
    width:260px!important;
    box-sizing:border-box;
    background:rgba(15,23,42,.94)!important;
    border:1px solid rgba(96,165,250,.28)!important;
    border-radius:10px!important;
    box-shadow:0 8px 20px rgba(2,6,23,.30)!important;
    padding:10px 12px!important;
    font-size:12px!important;
    line-height:1.28;
    backdrop-filter:blur(5px);
  }
  .sky-transit-main-panel,
  .sky-transit-summary-panel,
  .sky-transit-legend-panel,
  .sky-transit-guide-panel{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    margin:0!important;
  }
  .sky-transit-main-panel{min-height:0;}
  .sky-transit-guide-panel{
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:12px!important;
  }
  .sky-card-title{
    margin:0 0 8px!important;
    padding:0!important;
    font-size:15px!important;
    font-weight:900!important;
    color:#fff!important;
    letter-spacing:.02em;
  }
  .sky-card-row{
    padding:5px 0!important;
    border-top:1px solid rgba(148,163,184,.20)!important;
  }
  .sky-card-row span{color:#dbeafe;}
  .sky-card-row strong{font-weight:900;color:#fff;}
  .sky-card-total{border-top-color:rgba(148,163,184,.35)!important;margin-top:2px;}
  .sky-card-subtitle{font-size:11px;margin-top:8px;color:#dbeafe;}
  .sky-card-big{font-size:20px!important;line-height:1.1;margin:3px 0 7px!important;color:#fff;}
  .sky-transit-guide-panel p{margin:6px 0!important;line-height:1.35!important;color:#e5edf8!important;}
  .sky-summary-icon{display:inline-block;width:18px;font-size:18px;line-height:14px;margin-right:6px;text-align:center;vertical-align:-2px;}
  .sky-summary-strong{color:#22c55e;text-shadow:0 0 8px rgba(34,197,94,.7);}
  .sky-summary-possible{color:#facc15;text-shadow:0 0 8px rgba(250,204,21,.7);}
  .sky-summary-other{color:#60a5fa;text-shadow:0 0 8px rgba(96,165,250,.5);}
  .sky-legend-row{margin:6px 0!important;gap:9px!important;}
  .sky-line{width:30px!important;}
  .sky-dot{width:16px!important;height:16px!important;}
  .sky-transit-selected-panel{
    position:absolute!important;
    right:12px!important;
    top:10px!important;
    width:285px!important;
    border-color:rgba(250,204,21,.36)!important;
  }
  .sky-transit-selected-panel:empty{display:none!important;}
  .sky-transit-stats-panel{
    position:absolute!important;
    left:50%!important;
    bottom:10px!important;
    transform:translateX(-50%)!important;
    min-width:540px!important;
    padding:10px 18px!important;
    gap:18px!important;
    border-radius:12px!important;
    background:rgba(15,23,42,.95)!important;
    border:1px solid rgba(96,165,250,.28)!important;
    box-shadow:0 8px 20px rgba(2,6,23,.30)!important;
  }
  body.sky-transit-ui-visible .aircraft-legend{
    left:auto!important;
    right:12px!important;
    bottom:12px!important;
    z-index:760!important;
    min-width:170px;
    max-width:260px;
  }
  body.sky-transit-ui-visible .leaflet-left{
    left:278px!important;
  }
  body.sky-transit-ui-visible .leaflet-bottom.leaflet-right{
    right:8px!important;
    bottom:4px!important;
  }
}

/* v30.20.62: right-hand Sky Transit stack inside the map area */
@media (min-width:1101px){
  .sky-transit-right-stack{
    position:absolute!important;
    right:12px!important;
    top:10px!important;
    width:285px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    pointer-events:none!important;
    z-index:755!important;
  }
  .sky-transit-right-stack .sky-transit-info-card{
    width:285px!important;
    pointer-events:auto!important;
  }
  .sky-transit-selected-panel,
  .sky-transit-analysis-panel,
  .sky-transit-types-panel{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    margin:0!important;
  }
  .sky-transit-selected-panel{
    border-color:rgba(96,165,250,.30)!important;
  }
  .sky-transit-analysis-panel{
    border-color:rgba(250,204,21,.38)!important;
  }
  .sky-transit-types-panel{
    border-color:rgba(96,165,250,.28)!important;
  }
  .sky-card-title-flex{
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
  }
  .sky-type-dot{
    display:inline-block;
    width:20px;
    text-align:center;
    margin-right:6px;
    font-size:16px;
    vertical-align:-1px;
    filter:drop-shadow(0 0 4px rgba(96,165,250,.35));
  }
  .sky-type-civil{color:#60a5fa;}
  .sky-type-military{color:#ef4444;}
  .sky-type-services{color:#22c55e;}
  .sky-type-training{color:#a855f7;}
  .sky-type-government{color:#f97316;}

  .sky-type-airambulance{color:#22c55e;}
  .sky-type-bbmf{color:#facc15;}
  body.sky-transit-ui-visible .aircraft-legend{
    display:none!important;
  }
}
@media (max-width:1100px){
  .sky-transit-right-stack{display:none!important;}
}

/* v30.20.62: small polish only - dark theme for Tests/Sky Transit selectors */
.display-options select,
.sky-mode-control select,
#mobileTestSelect{
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.2!important;
  color:var(--text)!important;
  background:#0b1220!important;
  border:1px solid var(--border)!important;
  border-radius:999px!important;
  padding:6px 28px 6px 10px!important;
  min-height:32px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.display-options select:focus,
.sky-mode-control select:focus,
#mobileTestSelect:focus{
  outline:none!important;
  border-color:var(--accent)!important;
  box-shadow:0 0 0 2px rgba(56,189,248,.18)!important;
}
.sky-mode-control,
.mobile-test-control{
  font-family:Arial,Helvetica,sans-serif!important;
  color:var(--muted)!important;
}


/* v30.20.62: Sky Transit usable-centre view and restored aircraft type expander */
@media (min-width:1101px){
  body.sky-transit-ui-visible .sky-transit-right-stack{
    top:10px!important;
    bottom:auto!important;
  }
  body.sky-transit-ui-visible .sky-transit-types-panel{
    position:absolute!important;
    right:12px!important;
    bottom:52px!important;
    top:auto!important;
    width:285px!important;
    z-index:780!important;
    pointer-events:auto!important;
  }
  .sky-types-toggle{cursor:pointer;user-select:none;}
  .sky-types-content{display:block;}
  .sky-transit-types-panel.sky-types-collapsed .sky-types-content{display:none!important;}
  .sky-transit-types-panel.sky-types-collapsed{padding-bottom:10px!important;}
  .sky-transit-stats-panel .sky-stat span{line-height:1.15;}
}


/* v30.20.62: Sky Transit Aircraft Types panel alignment and legend colours */
@media (min-width:1101px){
  body.sky-transit-ui-visible .sky-transit-types-panel{
    right:12px!important;
    bottom:82px!important;
    top:auto!important;
    width:285px!important;
    max-height:calc(100% - 120px)!important;
    overflow:hidden!important;
  }
  body.sky-transit-ui-visible .sky-transit-right-stack{
    right:12px!important;
    top:10px!important;
    bottom:auto!important;
    width:285px!important;
    max-height:calc(100% - 330px)!important;
  }
  .sky-type-dot{
    display:inline-block!important;
    width:10px!important;
    height:10px!important;
    margin-right:10px!important;
    border-radius:50%!important;
    vertical-align:middle!important;
    font-size:0!important;
    line-height:0!important;
    box-sizing:border-box!important;
    filter:drop-shadow(0 0 4px rgba(255,255,255,.18))!important;
  }
  .sky-type-military{background:#ef4444!important;border:0!important;}
  .sky-type-training{background:#f59e0b!important;border:0!important;}
  .sky-type-services{background:#22c55e!important;border:0!important;}
  .sky-type-airambulance{background:transparent!important;border:3px solid #22c55e!important;}
  .sky-type-government{background:#8b5cf6!important;border:0!important;}
  .sky-type-civil{background:#60a5fa!important;border:0!important;}
  .sky-type-bbmf{background:transparent!important;border:3px solid #facc15!important;}
  .sky-transit-types-panel .sky-card-row span:first-child{
    display:flex!important;
    align-items:center!important;
  }
}


/* v30.20.62: align Aircraft Types panel lower edge with visitor stats bar lower edge */
@media (min-width:1101px){
  body.sky-transit-ui-visible .sky-transit-types-panel{
    bottom:10px!important;
  }
}


/* v30.20.62: collapsed Aircraft Types matches visitor stats bar depth */
@media (min-width:1101px){
  body.sky-transit-ui-visible .sky-transit-types-panel{
    bottom:10px!important;
  }
  body.sky-transit-ui-visible .sky-transit-types-panel.sky-types-collapsed{
    height:64px!important;
    min-height:64px!important;
    max-height:64px!important;
    padding:0 18px!important;
    display:flex!important;
    align-items:center!important;
    box-sizing:border-box!important;
  }
  body.sky-transit-ui-visible .sky-transit-types-panel.sky-types-collapsed .sky-card-title,
  body.sky-transit-ui-visible .sky-transit-types-panel.sky-types-collapsed .sky-types-toggle{
    width:100%!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    font-size:16px!important;
    font-weight:900!important;
    line-height:1!important;
    text-transform:none!important;
    letter-spacing:0!important;
  }
  body.sky-transit-ui-visible .sky-transit-types-panel .sky-types-toggle span:first-child{
    text-transform:none!important;
    letter-spacing:0!important;
  }
}

/* v30.20.65: mobile control tidy - Sound in header, Tests in control grid */
.header-sound-control{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  cursor:pointer!important;
  user-select:none!important;
}
.header-sound-control input{accent-color:var(--accent)!important;}

.mobile-labelled-control .mobile-control-title,
.sky-mode-control,
.controls label{
  font-family:Arial,Helvetica,sans-serif!important;
}

@media (max-width:700px){
  .app-header > div:first-child{
    gap:8px!important;
  }
  .app-header > div:first-child > div:last-child{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    justify-content:flex-start!important;
    align-items:center!important;
  }
  .header-link,
  .header-button,
  .header-sound-control{
    min-height:28px!important;
    padding:6px 10px!important;
    border-radius:999px!important;
    font-size:11px!important;
    line-height:1!important;
  }
  .header-sound-control{
    min-width:80px!important;
  }

  .toolbar.controls-open .controls{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    align-items:end!important;
  }
  .controls > label,
  .controls > .mobile-test-control,
  .controls > .sky-mode-control{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:3px!important;
    margin:0!important;
    color:var(--muted)!important;
    font-size:10.5px!important;
    font-weight:700!important;
    line-height:1.1!important;
  }
  .controls > button,
  .controls select,
  .controls > .mobile-test-control select,
  .controls > .sky-mode-control select{
    width:100%!important;
    min-width:0!important;
    height:32px!important;
    min-height:32px!important;
    box-sizing:border-box!important;
    border-radius:999px!important;
    font-size:11px!important;
    font-weight:700!important;
    padding:5px 8px!important;
    margin:0!important;
  }
  .controls > button#useLocationBtn{
    grid-column:1 / -1!important;
    max-width:none!important;
    height:32px!important;
  }
  .display-options{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .display-options label{
    min-height:32px!important;
    height:32px!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:5px 6px!important;
    border-radius:999px!important;
    font-size:11px!important;
  }
}


/* v30.20.66: mobile label indentation restored */
@media (max-width:700px){
  .controls > label,
  .controls > .mobile-test-control,
  .controls > .sky-mode-control{
    text-indent:14px!important;
  }

  .controls > label select,
  .controls > .mobile-test-control select,
  .controls > .sky-mode-control select{
    text-indent:0!important;
  }

  .mobile-labelled-control .mobile-control-title{
    display:block!important;
    padding-left:14px!important;
    box-sizing:border-box!important;
    text-indent:0!important;
  }
}


/* v30.20.68: likely airport arrivals - tighter stable-track filter */
#likelyAirportSelect{min-width:145px;}
.likely-panel{margin:10px 10px 12px;padding:10px;border:1px solid rgba(56,189,248,.35);border-radius:12px;background:rgba(15,23,42,.78);box-shadow:0 8px 22px rgba(0,0,0,.18);}
.likely-hidden{display:none;}
.likely-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px;}
.likely-heading h3{margin:0;font-size:15px;color:#e0f2fe;}
.likely-heading span{font-size:12px;color:#bae6fd;text-align:right;}
.likely-hits{display:flex;flex-direction:column;gap:7px;}
.likely-hit{width:100%;text-align:left;border:1px solid rgba(148,163,184,.30);border-radius:10px;background:rgba(30,41,59,.82);color:#e5e7eb;padding:8px 9px;cursor:pointer;}
.likely-hit:hover{background:rgba(51,65,85,.94);}
.likely-hit-main{display:flex;justify-content:space-between;gap:8px;align-items:center;}
.likely-hit-main strong{font-size:13px;}
.likely-hit-main em{font-style:normal;font-size:12px;color:#cbd5e1;white-space:nowrap;}
.likely-hit-meta{display:block;margin-top:3px;font-size:12px;color:#94a3b8;}
.likely-hit-strong{border-color:rgba(34,197,94,.65);}
.likely-hit-likely{border-color:rgba(250,204,21,.65);}
.likely-hit-possible{border-color:rgba(56,189,248,.55);}
.likely-note,.likely-empty{margin-top:8px;font-size:11px;line-height:1.35;color:#94a3b8;}
.likely-badge{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;color:#082f49;background:#38bdf8;vertical-align:middle;}
.likely-badge-strong{color:#052e16;background:#22c55e;}
.likely-badge-likely{color:#422006;background:#facc15;}
.likely-badge-possible{color:#082f49;background:#38bdf8;}
.aircraft-row.likely-strong{box-shadow:inset 3px 0 0 #22c55e;}
.aircraft-row.likely-likely{box-shadow:inset 3px 0 0 #facc15;}
.aircraft-row.likely-possible{box-shadow:inset 3px 0 0 #38bdf8;}
@media (max-width:850px){#likelyAirportSelect{min-width:120px}.likely-panel{margin:8px 8px 10px;}}
