:root{--ink: #e6edf5;--muted: #8796a6;--panel: rgba(16, 24, 34, .86);--panel-solid: #141e2a;--line: rgba(200, 220, 240, .12);--accent: #ff8a3d;--bg: #0e1621;--chip: rgba(255, 255, 255, .06);--label-bg: rgba(20, 30, 42, .85);--district: #c3cfdc;--river: #6fb0e6;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink)}.theme-light{--ink: #1f2a36;--muted: #6b7a89;--panel: rgba(255, 255, 255, .86);--panel-solid: #ffffff;--line: rgba(31, 42, 54, .12);--accent: #e8590c;--bg: #e7edf3;--chip: #ffffff;--label-bg: rgba(255, 255, 255, .85);--district: #46525f;--river: #3d7fb3}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink)}#app canvas{display:block}.labels{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}#loading{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg);font-size:15px;color:var(--muted);transition:opacity .6s;z-index:3}#loading.done{opacity:0;pointer-events:none}.label{font-size:12px;font-weight:600;color:var(--ink);background:var(--label-bg);border:1px solid var(--line);border-radius:6px;padding:2px 6px;white-space:nowrap;pointer-events:none}.label.runway{background:var(--ink);color:#fff;border:0;font-size:13px}.label.hangar{font-weight:500;color:var(--muted)}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.card{position:absolute;pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 6px 24px #1f2a3614}.card.main{top:14px;left:14px;width:290px}.card h1{margin:2px 0 4px;font-size:24px;letter-spacing:-.02em}.card h2{margin:2px 0 8px;font-size:20px}.codes{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--accent)}.status{font-size:13px;color:var(--muted)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2fb344;margin-right:6px;box-shadow:0 0 0 3px #2fb34433}.dot.off{background:#c0c6cc;box-shadow:none}.presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.presets button,.follow{font:inherit;font-size:12px;border:1px solid var(--line);background:var(--chip);border-radius:999px;padding:5px 11px;cursor:pointer;color:var(--ink)}.presets button:hover,.follow:hover{border-color:var(--accent)}.toggles{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:12px;font-size:13px}.toggle{display:flex;align-items:center;gap:6px;cursor:pointer}.toggle input{accent-color:var(--accent)}.card.detail{top:14px;right:14px;width:260px;overflow:hidden}.card.detail.hidden{display:none}.stripe{position:absolute;left:0;top:0;bottom:0;width:5px}.close{position:absolute;top:8px;right:10px;border:0;background:none;font-size:22px;color:var(--muted);cursor:pointer}.card table{width:100%;border-collapse:collapse;font-size:13px}.card td{padding:4px 0;border-bottom:1px solid var(--line)}.card td:last-child{text-align:right;font-variant-numeric:tabular-nums}.follow{margin-top:12px;width:100%}.follow.active{background:var(--accent);color:#fff;border-color:var(--accent)}.attribution{position:absolute;right:10px;bottom:8px;font-size:11px;color:var(--muted);background:var(--panel);padding:2px 8px;border-radius:6px;pointer-events:auto}.ac-label{pointer-events:auto;cursor:pointer;font-size:11px;font-weight:600;color:#fff;background:#1f2a36d1;padding:2px 6px;border-radius:5px;white-space:nowrap;transition:opacity .4s}.ac-label.ground{background:#1f2a3699;font-weight:500}.ac-label.vehicle{background:#ffc400;color:#1f2a36;font-size:10px}.label.stand{font-size:10px;font-weight:700;padding:1px 4px;color:#1f2a36;background:#ffd84d;border-color:#1f2a3640}.route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;margin:4px 0 10px}.route .ap{font-size:20px;font-weight:700;letter-spacing:-.01em}.route .ap small{display:block;font-size:11px;font-weight:500;color:var(--muted)}.route .ap:last-child{text-align:right}.route .arrow{color:var(--muted)}.bar{height:4px;border-radius:2px;background:var(--line);margin-bottom:10px;overflow:hidden}.bar>div{height:100%;background:var(--accent)}.airline{font-size:12px;color:var(--muted);margin:-6px 0 6px}.note{font-size:11px;color:var(--muted);margin-top:8px}.label.district{background:none;border:0;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--district);text-shadow:0 0 3px var(--bg),0 0 6px var(--bg)}.label.landmark{background:#1f2a36;color:#fff;border:0}.label.river{background:none;border:0;font-style:italic;color:var(--river);text-shadow:0 0 3px var(--bg)}.card.main .head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.menu-toggle{border:1px solid var(--line);background:var(--chip);color:var(--ink);border-radius:9px;width:34px;height:34px;font-size:16px;cursor:pointer}.card.main.collapsed{width:auto}.card.main.collapsed .drawer{display:none}.setting{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px;color:var(--muted)}.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{font:inherit;font-size:12px;border:0;background:none;color:var(--ink);padding:4px 9px;cursor:pointer}.seg button.active{background:var(--accent);color:#fff;font-weight:600}.minimap{position:absolute;left:14px;bottom:14px;pointer-events:auto;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:50%;width:220px;height:220px;box-shadow:0 6px 24px #00000040}.minimap canvas{display:block;border-radius:50%;cursor:pointer}.minimap .zoom{position:absolute;right:-6px;bottom:-4px;display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);background:var(--panel-solid);border:1px solid var(--line);border-radius:999px;padding:2px 4px}.minimap .zoom button{border:0;background:none;color:var(--ink);font-size:15px;width:22px;cursor:pointer}.ac-label.air{background:var(--accent);color:#fff;font-size:12px;font-weight:700;box-shadow:0 2px 10px #ff8a3d73}.ac-label.selected{background:#fff;color:#1f2a36;outline:2px solid var(--accent)}@media (max-width: 700px){.attribution{left:172px;font-size:9px}.card.main{width:calc(100% - 28px);box-sizing:border-box}.card.main.collapsed{width:auto}.card.detail{top:auto;bottom:180px;right:10px;width:230px}.minimap{width:150px;height:150px}.minimap canvas{width:150px!important;height:150px!important}}
