*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#e8eef5;background:#0b1220}#app{display:flex;flex-direction:column;height:100%;height:100dvh;overflow:hidden}.bar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex:0 0 auto;padding:.55rem .9rem;background:#121a2b;border-bottom:1px solid #243047;z-index:1000;position:relative;min-width:0}.brand{flex:0 0 auto;font-weight:700;letter-spacing:.04em;text-transform:lowercase}.meta{min-width:0;font-size:.85rem;opacity:.85;text-align:right;overflow-wrap:anywhere}.main-row{display:flex;flex:1 1 auto;min-height:0;min-width:0}#map{flex:1 1 auto;min-width:0;height:100%;background:#0a101c}.scrubber{display:flex;align-items:center;gap:.75rem;flex:0 0 auto;padding:.5rem .9rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));background:#121a2b;border-top:1px solid #243047;font-size:.85rem;min-width:0}.scrubber label{display:flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0}.scrubber input[type=range]{flex:1 1 auto;min-width:0;width:100%}#scrub-time{flex:1 1 auto;min-width:0;opacity:.85;overflow-wrap:anywhere}#btn-live{flex:0 0 auto}button{background:#2a4a7a;color:#fff;border:0;border-radius:4px;padding:.35rem .7rem;cursor:pointer}button:hover{background:#3560a0}.plane-icon{background:transparent;border:0}.plane-marker{display:flex;align-items:center;gap:4px;white-space:nowrap;pointer-events:none}.plane-glyph{flex:0 0 auto;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:16px solid #ffcc66;filter:drop-shadow(0 0 2px #000);transform-origin:50% 70%}.dot-glyph{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:#7ec8ff;border:1px solid #0b1220;box-shadow:0 0 0 1px #7ec8ff66}.plane-label{font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;color:#f2f6fc;background:#0b1220c7;border:1px solid rgba(36,48,71,.9);border-radius:3px;padding:1px 5px;text-shadow:0 1px 1px rgba(0,0,0,.6)}@media (max-width: 639px){.bar{flex-wrap:wrap;align-items:flex-start}.scrubber{flex-wrap:wrap;row-gap:.45rem}.scrubber label{flex:1 1 100%}#scrub-time{flex:1 1 auto}}
