.ac-photo{aspect-ratio:3 / 2;width:100%;border-radius:4px;border:1px solid var(--border);overflow:hidden;position:relative;background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08);background-size:200% 100%;animation:ac-photo-skel 1.4s linear infinite}.ac-photo.no-photo{animation:none;background:#ffffff08;display:flex;align-items:center;justify-content:center;color:var(--muted)}.ac-photo .no-photo-inner{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;letter-spacing:.3px}.ac-photo .no-photo-inner svg{opacity:.7}.ac-photo img{display:block;width:100%;height:100%;object-fit:cover;background:#0a0c10;animation:ac-photo-fade .25s ease}.ac-photo a{position:relative;display:block;width:100%;height:100%}.ac-photo .photo-credit{position:absolute;bottom:4px;right:4px;background:#0009;color:#eee;font-size:9px;letter-spacing:.3px;padding:1px 5px;border-radius:2px;pointer-events:none}@keyframes ac-photo-skel{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ac-photo-fade{0%{opacity:0}to{opacity:1}}.airport-code[data-title]{border-bottom:1px dotted currentColor;cursor:help}#airport-tooltip{position:fixed;z-index:10000;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:11px;line-height:1.3;max-width:240px;pointer-events:none;box-shadow:0 2px 8px #00000080}#airport-tooltip.tip-help{max-width:320px;padding:6px 10px;line-height:1.4;text-align:left;white-space:normal}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-left:2px;color:var(--muted);opacity:.7;cursor:help;vertical-align:baseline}.help-icon:hover,.help-icon:focus{opacity:1;outline:none}.help-icon svg{display:block}.alt-tag{font-size:10px;color:var(--muted);font-weight:400}.plane-icon,.receiver-icon{background:transparent!important;border:none!important}.receiver-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid #0e1116;box-shadow:0 0 0 1px var(--accent);margin:1px}.plane-label{background:#0e1116cc;color:#fff;font-size:10px;padding:1px 4px;border-radius:2px;white-space:nowrap;font-family:ui-monospace,monospace;border:1px solid var(--border)}#detail-panel{position:absolute;top:10px;bottom:10px;left:330px;width:420px;z-index:1000;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow-y:auto;font-size:12px;line-height:1.5;box-shadow:0 2px 10px #00000080;opacity:0;visibility:hidden;transform:translate(-14px);pointer-events:none;transition:opacity .2s ease,transform .2s ease,left .22s ease,visibility 0s linear .2s}#detail-panel.open{opacity:1;visibility:visible;transform:translate(0);pointer-events:auto;transition:opacity .2s ease,transform .2s ease,left .22s ease,visibility 0s}#detail-header{display:flex;justify-content:space-between;align-items:center;padding:6px 6px 0;position:sticky;top:0;background:var(--panel);z-index:2;border-top-left-radius:8px;border-top-right-radius:8px}#detail-header:before{content:"";flex:1}#detail-watch{width:28px;height:28px;padding:0;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;margin-right:4px}#detail-watch:hover{color:var(--text);background:#1d222b}#detail-watch.watched{color:#fbbf24;border-color:#fbbf24}#detail-watch.watched svg{fill:currentColor}#detail-content{padding:2px 14px 14px}#detail-close{width:28px;height:28px;padding:0;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center}#detail-close svg{display:block}#detail-close:hover{color:var(--text);background:#1d222b}.ac-panel{display:flex;flex-direction:column;gap:10px}.ac-panel .ac-photo{margin:0}.ac-panel .ac-photo img{border-radius:4px}.panel-head{display:flex;flex-direction:column;gap:3px;padding-right:32px}.panel-title-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.panel-title-row .pop-callsign{font-size:16px}.panel-title-row .pop-icao{font-size:11px;color:var(--muted)}.panel-title-row .pop-flag{display:inline-flex;cursor:help;vertical-align:-2px}.panel-title-row .pop-flag:empty{display:none}.panel-title-row .pop-flag .flag-icon{width:22px;height:16px}.panel-subline{font-size:11px;color:var(--muted)}.panel-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.panel-badges:not(:has(:not([hidden]))){display:none}.badge{font-size:10px;font-family:ui-monospace,monospace;padding:1px 6px;border-radius:10px;background:#ffffff0f;border:1px solid var(--border);color:var(--muted);letter-spacing:.3px}.badge.wtc-m{background:#5da8ff1a;color:#a5c9ff;border-color:#5da8ff59}.badge.wtc-h{background:#f59e0b21;color:#fbbf24;border-color:#f59e0b66}.badge.wtc-j{background:#a78bfa26;color:#c4b5fd;border-color:#a78bfa73}.phase-taxi{background:#94a3b824;color:#cbd5e1;border-color:#94a3b859}.phase-climb{background:#6ee7b726;color:#6ee7b7;border-color:#6ee7b759}.phase-cruise{background:#5da8ff21;color:#a5c9ff;border-color:#5da8ff59}.phase-descent{background:#fbbf2421;color:#fbbf24;border-color:#fbbf2466}.phase-approach{background:#f871712b;color:#fca5a5;border-color:#f8717166}.pop-ground{font-size:9px;padding:1px 5px;border-radius:3px;background:#374151;color:#e5e7eb;letter-spacing:.5px;font-weight:600}.pop-signal-lost{font-size:9px;padding:1px 5px;border-radius:3px;background:#4a1818;color:#fecaca;letter-spacing:.5px;font-weight:600}.leaflet-marker-icon.ac-stale{filter:grayscale(1) opacity(.55)}.panel-mini-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:3px}.panel-route{background:#ffffff08;border:1px solid var(--border);border-radius:4px;padding:7px 10px;font-size:13px}.route-ticket{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}.route-ticket .route-end{min-width:0}.route-ticket .route-end:last-child{text-align:right}.route-ticket .route-code{font-size:15px;font-weight:600;font-family:ui-monospace,monospace;color:var(--text)}.route-ticket .route-name{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-ticket .route-name:empty{display:none}.route-ticket .route-arrow{color:var(--muted);font-size:16px;padding:2px 4px 0;align-self:start}.pop-progress{margin-top:8px}.pop-progress-track{position:relative;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.pop-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent);border-radius:2px;transition:width .5s ease}.pop-progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}.pop-wx{display:flex;flex-direction:column;gap:3px;margin-top:8px;font-size:11px;color:var(--muted)}.pop-wx .wx-cell[hidden]{display:none}.pop-wx .wx-line{display:inline-flex;gap:5px;align-items:center;font-variant-numeric:tabular-nums;cursor:help}.pop-wx .wx-icon{flex:0 0 auto;opacity:.9}.pop-wx .wx-clear{color:#f0b73a}.pop-wx .wx-partly{color:#e0c77a}.pop-wx .wx-thunder{color:#f7c945}.panel-live-indicator{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:10px 0 2px;padding:0}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);transition:background .2s ease,box-shadow .2s ease}.panel-live-indicator.is-live{color:#6ee7b7}.panel-live-indicator.is-live .live-dot{background:#6ee7b7;animation:live-pulse 1.8s ease-in-out infinite}@keyframes live-pulse{0%,to{box-shadow:0 0 0 2px #6ee7b74d}50%{box-shadow:0 0 0 5px #6ee7b71f}}.panel-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.panel-meta .metric{background:#ffffff08;border:1px solid var(--border);border-radius:4px;padding:6px 8px;overflow:hidden}.panel-meta .metric .label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.panel-meta .metric .val{font-size:13px;margin-top:1px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.panel-met{background:#ffffff08;border:1px solid var(--border);border-radius:4px;padding:7px 10px}.panel-met .panel-met-sub{font-size:9px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}.panel-met-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.panel-met-grid .metric{background:#ffffff0a;border:1px solid var(--border);border-radius:4px;padding:6px 8px;overflow:hidden}.panel-met-grid .metric .label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.panel-met-grid .metric .val{font-size:13px;margin-top:1px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-variant-numeric:tabular-nums}.panel-met-grid .metric .val .met-sub{font-size:10px;color:var(--muted)}.panel-profile{background:#ffffff08;border:1px solid var(--border);border-radius:4px;padding:6px 8px 4px}.panel-profile .pop-alt-profile,.panel-profile .pop-spd-profile{display:block;width:100%;color:var(--muted)}.panel-profile .pop-alt-profile{height:40px}.panel-profile .pop-spd-profile{height:24px;margin-top:2px;border-top:1px dashed rgba(255,255,255,.07);padding-top:2px}.panel-links{display:flex;flex-wrap:wrap;gap:4px}.panel-links a{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;text-align:center;font-size:10px;letter-spacing:.2px;padding:5px 6px;border-radius:4px;color:var(--muted);text-decoration:none;background:#ffffff08;border:1px solid var(--border)}.panel-links a:hover{background:#1d222b;color:var(--text)}.panel-links .link-icon{opacity:.7;flex-shrink:0}.panel-links a:hover .link-icon{opacity:1}.panel-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-top:8px;border-top:1px solid var(--border)}.panel-stats .stat{display:flex;flex-direction:column;gap:1px;font-variant-numeric:tabular-nums}.panel-stats .stat-label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.panel-stats .stat-val{font-size:12px;color:var(--text)}@media (max-width: 600px){#detail-panel{position:fixed;width:auto;inset:0;margin:0;border-radius:0;z-index:2000;transform:translateY(20px)}#detail-panel.open{transform:translateY(0)}body.compact-mode #detail-panel{left:0}}
