@font-face{font-family:B612;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/b612-latin-400-normal-CC98FVm_.woff2)format("woff2"),url(/assets/b612-latin-400-normal-JbZ7xwUX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:B612;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/b612-latin-700-normal-BinQrnoB.woff2)format("woff2"),url(/assets/b612-latin-700-normal-B_Snq1wd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:B612 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/b612-mono-latin-400-normal-BDgzQEaT.woff2)format("woff2"),url(/assets/b612-mono-latin-400-normal-BMQz8jIs.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:B612 Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/b612-mono-latin-700-normal-wbdMaN5I.woff2)format("woff2"),url(/assets/b612-mono-latin-700-normal-BhNP4QrW.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{background-color:var(--bg-primary);background-image:linear-gradient(rgb(var(--accent-rgb) / .055) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--accent-rgb) / .055) 1px, transparent 1px);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:96px 96px}button,input,select,textarea{color:inherit;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-motion=off] *,:root[data-motion=off] :before,:root[data-motion=off] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#eceee6;--bg-card:#f8f9f4;--bg-elevated:#fdfdfa;--border:#c9cec0;--border-subtle:#dce0d4;--panel-bg:var(--bg-card);--accent:#1c6497;--accent-rgb:28 100 151;--accent-strong:#134a72;--on-accent:#fff;--accent-dim:rgb(var(--accent-rgb) / .1);--accent-micro:rgb(var(--accent-rgb) / .05);--magenta:#a3307a;--magenta-rgb:163 48 122;--magenta-dim:rgb(var(--magenta-rgb) / .12);--paper-rgb:253 253 250;--glass-bg:rgb(var(--paper-rgb) / .88);--glass-border:rgb(var(--ink-rgb) / .16);--glass-blur:blur(14px) saturate(1.2);--glass-bg-hover:rgb(var(--paper-rgb) / .98);--scrim:#0e16229e;--graticule:rgb(var(--accent-rgb) / .05);--accent-grad:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);--accent-grad-subtle:linear-gradient(135deg, rgb(var(--accent-rgb) / .14) 0%, rgb(var(--accent-rgb) / .04) 100%);--accent-glow:0 0 0 1px rgb(var(--accent-rgb) / .12);--accent-glow-strong:0 0 0 2px rgb(var(--accent-rgb) / .28);--shadow-rgb:40 52 44;--card-shadow:0 1px 2px rgb(var(--shadow-rgb) / .08), 0 2px 8px rgb(var(--shadow-rgb) / .05);--card-shadow-elevated:0 2px 6px rgb(var(--shadow-rgb) / .12), 0 12px 32px rgb(var(--shadow-rgb) / .12), 0 0 0 1px rgb(var(--ink-rgb) / .05);--border-accent:rgb(var(--accent-rgb) / .38);--border-active:rgb(var(--accent-rgb) / .58);--class-commercial:#1c6497;--class-private:#7e44a6;--private-rgb:126 68 166;--class-government:#b8324a;--gov-rgb:184 50 74;--class-cargo:#9a5e14;--cargo-rgb:154 94 20;--class-military:#b8324a;--class-unknown:#6f746d;--unknown-rgb:111 116 109;--slate-rgb:78 93 104;--ok:#2f6b3a;--warn:#8a5a14;--danger:#8e2f3e;--ink-rgb:27 42 53;--text-primary:#1b2a35;--text-secondary:#4e5d68;--text-dim:#646e69;--text-ghost:#b9bfb2;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"B612", system-ui, sans-serif;--font-mono:"B612 Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0f192c;--bg-card:#15213a;--bg-elevated:#1b2945;--border:#2a3b5a;--border-subtle:#1f2d4a;--accent:#7db9ea;--accent-rgb:125 185 234;--accent-strong:#a9d2f3;--on-accent:#0b1424;--magenta:#e585c2;--magenta-rgb:229 133 194;--paper-rgb:21 33 58;--glass-border:rgb(var(--ink-rgb) / .12);--scrim:#040810b8;--graticule:rgb(var(--accent-rgb) / .035);--shadow-rgb:2 6 14;--card-shadow:0 1px 2px rgb(var(--shadow-rgb) / .35), 0 2px 10px rgb(var(--shadow-rgb) / .25);--card-shadow-elevated:0 2px 8px rgb(var(--shadow-rgb) / .45), 0 16px 40px rgb(var(--shadow-rgb) / .45), 0 0 0 1px rgb(var(--ink-rgb) / .06);--class-commercial:#7db9ea;--class-private:#be9eea;--private-rgb:190 158 234;--class-government:#f07a8c;--gov-rgb:240 122 140;--class-cargo:#e6aa55;--cargo-rgb:230 170 85;--class-military:#f07a8c;--class-unknown:#929cae;--unknown-rgb:146 156 174;--slate-rgb:167 179 198;--ok:#7cc796;--warn:#e6aa55;--danger:#f07a8c;--ink-rgb:230 234 240;--text-primary:#e6eaf0;--text-secondary:#a7b3c6;--text-dim:#8291a8;--text-ghost:#34445f}.app-shell{flex-direction:column;height:100%;display:flex}.app-main{flex:1;min-height:0;overflow:hidden}.top-bar{height:54px;padding:0 20px;padding-top:env(safe-area-inset-top);box-sizing:content-box;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-subtle);z-index:100;view-transition-name:top-bar;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.top-bar-left{align-items:center;gap:18px;min-width:0;display:flex}.app-logo{color:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:8px;padding:0;display:flex}.app-logo-icon{width:24px;height:24px}.app-logo-dome,.app-logo-ground{stroke:var(--accent)}.app-logo-ground{opacity:.45}.app-logo-plane{fill:var(--magenta)}.app-name{font-family:var(--font-display);letter-spacing:.005em;color:var(--text-primary);font-size:22px;font-weight:700}.scan-status{background:rgb(var(--accent-rgb) / .08);border-radius:999px;align-items:center;gap:7px;min-width:0;padding:5px 11px 5px 9px;display:flex}.scan-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;position:relative}.scan-dot:after{content:"";color:var(--accent);animation:scan-ping 2.4s var(--ease-out) infinite;border:1.5px solid;border-radius:50%;position:absolute;inset:0}@keyframes scan-ping{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(3)}}@keyframes menu-slide-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}@keyframes row-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.scan-text{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.top-bar-right{align-items:center;gap:16px;display:flex}.status-info{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.hamburger{cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;transition:background .2s;display:flex}.hamburger:hover{background:rgb(var(--accent-rgb) / .08)}.hamburger span{background:var(--text-primary);width:18px;height:1.5px;transition:transform .26s var(--ease-out), opacity .16s ease;border-radius:1px;display:block}.hamburger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.menu-overlay{top:calc(60px + env(safe-area-inset-top));background:var(--bg-elevated);border:1px solid var(--border-subtle);z-index:99;width:248px;max-height:calc(100dvh - 80px);box-shadow:var(--card-shadow-elevated);transform-origin:100% 0;border-radius:16px;padding:6px;display:none;position:fixed;right:12px;overflow-y:auto}.menu-overlay.menu-open{animation:menu-slide-in .22s var(--ease-out) both;display:block}.menu-item{min-height:44px;color:var(--text-primary);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:0 12px;font-size:15px;transition:background .15s,color .15s;display:flex}.menu-item:hover{background:rgb(var(--accent-rgb) / .07)}.menu-item.active{color:var(--accent);background:rgb(var(--accent-rgb) / .1)}.menu-item svg{fill:currentColor;opacity:.85;flex-shrink:0;width:18px;height:18px}.menu-user{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;padding:8px 12px 6px;font-size:12px;overflow:hidden}.menu-divider{background:var(--border-subtle);height:1px;margin:6px 4px}.menu-theme{background:rgb(var(--ink-rgb) / .06);border-radius:10px;grid-template-columns:repeat(4,1fr);gap:2px;margin:2px 4px;padding:3px;display:grid}.menu-theme button{min-height:32px;font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:13px}.menu-theme button.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .2)}.menu-item-logout{color:var(--text-secondary)}.menu-item-logout:hover{color:var(--class-government);background:rgb(var(--gov-rgb) / .08)}.menu-version{color:var(--text-dim);padding:8px 12px 6px;font-size:12px}.tab-bar{display:none}@media (width<=900px){.top-bar{height:52px;padding-left:14px;padding-right:8px}.top-bar-left{flex:1;gap:10px}.status-info{display:none}.app-name{font-size:21px}.tab-bar{z-index:90;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-top:1px solid var(--border-subtle);view-transition-name:tab-bar;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.tab-bar-item{min-height:48px;font:inherit;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;display:flex}.tab-bar-item svg{fill:currentColor;width:22px;height:22px;transition:transform .24s var(--ease-spring)}.tab-bar-item.active{color:var(--accent)}.tab-bar-item.active svg{transform:translateY(-1px)scale(1.08)}.tab-bar-item:active svg{transform:scale(.9)}.app-shell:has(>.tab-bar){padding-bottom:calc(64px + env(safe-area-inset-bottom))}}.auth-screen{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:48px;height:100%;min-height:100dvh;padding:40px max(28px,6vw);display:grid;overflow-y:auto}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:24px;display:flex}.sky-dome.auth-dome{width:min(100%,380px);max-width:380px}.auth-tagline{max-width:18ch;font-family:var(--font-display);color:var(--text-primary);font-size:34px;font-weight:600;line-height:1.1}.auth-card{background:var(--panel-bg);border:1px solid var(--border-subtle);width:100%;max-width:400px;box-shadow:var(--card-shadow-elevated);border-radius:20px;padding:32px 32px 28px}.auth-logo{align-items:center;gap:8px;display:flex}.auth-logo .app-logo-icon{width:28px;height:28px}.auth-wordmark{font-family:var(--font-display);color:var(--text-primary);font-size:24px;font-weight:700}.auth-title{font-family:var(--font-display);color:var(--text-primary);margin-top:22px;font-size:34px;font-weight:700;line-height:1}.auth-subtitle{color:var(--text-secondary);margin-top:8px;font-size:15px;line-height:1.5}.auth-form{flex-direction:column;gap:14px;margin-top:22px;display:flex}.auth-label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:14px;display:flex}.auth-input{min-height:46px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;outline:none;padding:0 14px;font-size:16px}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .14)}.auth-error{color:var(--class-government);font-size:14px}.auth-notice{color:var(--warn);background:rgb(var(--cargo-rgb) / .12);border-radius:12px;margin-top:14px;padding:10px 12px;font-size:14px;line-height:1.45}.auth-btn{background:var(--accent);min-height:48px;color:var(--on-accent);cursor:pointer;transition:filter .15s, transform .15s var(--ease-out);border:0;border-radius:999px;margin-top:4px;font-size:16px}.auth-btn:hover:not(:disabled){filter:brightness(1.08)}.auth-btn:active:not(:disabled){transform:scale(.98)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-switch{color:var(--text-secondary);text-align:center;margin-top:16px;font-size:14px}.auth-link{font-size:inherit;color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.auth-help{color:var(--text-dim);font-size:13px;line-height:1.45}.auth-forgot-row{justify-content:flex-end;display:flex}@media (width<=900px){.auth-screen{grid-template-columns:1fr;align-content:start;justify-items:center;gap:8px;padding:24px 16px 40px}.sky-dome.auth-dome{width:150px}.auth-tagline{display:none}.auth-card{box-shadow:none;padding:24px 20px}}.guest-top-bar-actions{gap:8px}.guest-signin-link{padding:8px 10px;font-size:15px;text-decoration:none}.guest-signin-link:hover{text-decoration:underline}.guest-register-btn{min-height:38px;margin-top:0;padding:0 16px;font-size:15px}.guest-upsell{color:var(--text-secondary);text-align:center;margin:8px 0 24px;padding:0 16px;font-size:14px}.verify-banner{background:rgb(var(--accent-rgb) / .08);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;gap:10px;padding:8px 8px 8px 20px;font-size:13px;line-height:1.4;display:flex}.verify-banner strong{color:var(--text-primary);font-weight:400}.verify-banner-text{flex:1;min-width:0}.verify-banner-btn{background:var(--accent);min-height:32px;color:var(--on-accent);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;padding:0 12px;font-size:13px}.verify-banner-btn:disabled{opacity:.6;cursor:default}.verify-banner-close{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.verify-banner-close svg{width:12px;height:12px}.verify-banner-close:hover{background:rgb(var(--ink-rgb) / .06);color:var(--text-primary)}.verify-banner-error{color:var(--class-government);font-size:12px}@media (width<=900px){.verify-banner{padding-left:16px;font-size:12px}}.bottom-bar{border-top:1px solid var(--border-subtle);z-index:50;background:0 0;flex-shrink:0;justify-content:space-between;align-items:center;height:28px;padding:0 28px;display:flex}button.bottom-bar{border:none;border-top:1px solid var(--border-subtle);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:0}.bottom-bar span{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.bottom-bar:hover span{color:var(--text-secondary)}.settings-screen{height:100%;padding:28px 28px 48px;overflow-y:auto}.settings-form{flex-direction:column;gap:32px;max-width:640px;margin:0 auto;display:flex}.settings-section{flex-direction:column;gap:12px;display:flex}.settings-section-label{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:600}.settings-field{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.settings-field-row{gap:12px;display:flex}.settings-label{color:var(--text-secondary);justify-content:space-between;align-items:baseline;gap:8px;font-size:14px;display:flex}.settings-radius-value{font-family:var(--font-display);color:var(--text-primary);font-size:28px;font-weight:600}.settings-input{min-height:44px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:12px;outline:none;padding:0 14px;font-size:15px}.settings-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.settings-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-input::placeholder{color:var(--text-dim)}.settings-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .12)}.settings-slider{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:4px 0}.settings-slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--fill,30%), rgb(var(--ink-rgb) / .12) var(--fill,30%));border-radius:999px;height:6px}.settings-slider::-moz-range-track{background:linear-gradient(90deg, var(--accent) var(--fill,30%), rgb(var(--ink-rgb) / .12) var(--fill,30%));border-radius:999px;height:6px}.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bg-elevated);border:2px solid var(--accent);width:24px;height:24px;box-shadow:0 2px 6px rgb(var(--shadow-rgb) / .25);border-radius:50%;margin-top:-9px}.settings-slider::-moz-range-thumb{background:var(--bg-elevated);border:2px solid var(--accent);border-radius:50%;width:22px;height:22px}.settings-help{color:var(--text-secondary);max-width:60ch;font-size:14px;line-height:1.5}.settings-location-grid{grid-template-columns:minmax(0,1fr) 168px;align-items:center;gap:20px;display:grid}.settings-location-inputs{flex-direction:column;gap:12px;display:flex}.settings-radius-diagram{justify-content:center;display:flex}.settings-radius-diagram svg{width:100%;max-width:168px;height:auto}.theme-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.theme-option{border:1.5px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color .15s, transform .15s var(--ease-out);border-radius:14px;flex-direction:column;align-items:flex-start;gap:10px;padding:10px;font-size:14px;display:flex}.theme-option:active{transform:scale(.98)}.theme-option.active{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .14)}.theme-swatch{aspect-ratio:16/9;border:1px solid rgb(var(--ink-rgb) / .08);border-radius:8px;width:100%}.theme-swatch--light{background:linear-gradient(#f8f9f4,#eceee6)}.theme-swatch--dark{background:linear-gradient(#1b2945,#0f192c)}.theme-swatch--device{background:linear-gradient(105deg,#eceee6 50%,#0f192c 50%)}.theme-swatch--sun{background:linear-gradient(#24346a 0%,#3e62a0 45%,#f4b07a 100%)}.settings-toggle-row{color:var(--text-primary);cursor:pointer;align-items:center;gap:12px;font-size:15px;display:flex}.switch{appearance:none;background:rgb(var(--ink-rgb) / .18);cursor:pointer;border-radius:999px;flex-shrink:0;width:46px;height:28px;transition:background .2s;position:relative}.switch:after{content:"";width:22px;height:22px;transition:transform .25s var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.settings-actions{align-items:center;gap:14px;display:flex}.settings-btn-save{background:var(--accent);min-height:46px;color:var(--on-accent);cursor:pointer;transition:transform .15s var(--ease-out), filter .15s;border:0;border-radius:999px;padding:0 24px;font-size:15px}.settings-btn-save:hover{filter:brightness(1.08)}.settings-btn-save:active{transform:scale(.97)}.settings-btn-geo{border:1px solid var(--border);min-height:40px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;padding:0 16px;font-size:14px}.settings-btn-geo:hover{border-color:var(--text-dim)}.settings-saved{color:var(--ok);opacity:0;font-size:14px;transition:opacity .3s}.settings-saved.visible{opacity:1}.settings-geo-error{color:var(--class-government);font-size:14px}.settings-tips{border-top:1px solid var(--border-subtle);padding-top:16px}.settings-tips summary{font-family:var(--font-display);color:var(--text-primary);cursor:pointer;font-size:20px;font-weight:600;list-style-position:outside}.settings-tips-list{flex-direction:column;gap:8px;margin-top:10px;padding-left:18px;display:flex}.settings-tips-list li{color:var(--text-secondary);font-size:14px;line-height:1.5}@media (width<=900px){.settings-screen{height:auto;padding:20px 16px 28px;overflow:visible}.settings-form{gap:28px}.settings-location-grid{grid-template-columns:minmax(0,1fr) 112px;gap:12px}.theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}.empty-full{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:100%;padding:32px 20px;display:flex}.empty-icon{width:36px;height:36px;fill:var(--accent);margin-bottom:6px}.empty-title{font-family:var(--font-display);color:var(--text-primary);font-size:32px;font-weight:700;line-height:1.05}.empty-body{max-width:40ch;color:var(--text-secondary);font-size:15px;line-height:1.55}.empty-hint{color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-size:15px;text-decoration:underline}@media (width<=900px){.empty-full{min-height:calc(100dvh - 180px)}}.smart-photo{position:absolute;inset:0;overflow:hidden}.smart-photo-img{object-fit:cover;opacity:0;width:100%;max-width:none;height:100%;transition:opacity .35s;position:absolute;inset:0}.smart-photo-img.framed{object-fit:fill;inset:auto}.smart-photo-img.loaded{opacity:1}.smart-photo-backdrop{object-fit:cover;filter:blur(24px)saturate(1.1);opacity:.75;pointer-events:none;width:120%;height:120%;position:absolute;inset:-10%}.smart-photo-link{cursor:pointer}.log-detail{border-top:1px solid var(--border-subtle)}.log-detail-tabs{border-bottom:1px solid var(--border-subtle);scrollbar-width:none;align-items:center;gap:4px;padding:0 14px 0 18px;display:flex;overflow-x:auto}.log-detail-tabs::-webkit-scrollbar{display:none}.log-detail-tabs .log-share-btn{flex-shrink:0;margin-left:auto}.log-detail-tab{color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 10px 10px;font-size:14px;transition:color .12s,border-color .12s}.log-detail-tab:hover{color:var(--text-secondary)}.log-detail-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.log-detail-body{padding:16px 18px 20px 22px}.log-tab-content{align-items:flex-start;gap:28px;display:flex}.log-tab-details .log-detail-col{min-width:220px}.log-detail-col{flex-direction:column;flex:1;gap:0;max-width:380px;display:flex}.log-detail-section-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.log-detail-row{justify-content:space-between;align-items:baseline;gap:16px;padding:7px 0;display:flex}.log-detail-row+.log-detail-row{border-top:1px solid var(--border-subtle)}.log-detail-label{color:var(--text-secondary);flex-shrink:0;font-size:13px}.log-detail-value{color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.log-photo-section{flex:0 0 320px;min-width:0}.log-photo-unavailable{color:var(--text-dim);font-size:13px}.log-photo-frame{aspect-ratio:16/10;background:var(--bg-card);box-shadow:var(--card-shadow);border-radius:12px;position:relative;overflow:hidden}.log-photo-credit{text-overflow:ellipsis;white-space:nowrap;color:#1e3c55d9;background:rgb(var(--paper-rgb) / .78);z-index:2;border-radius:2px;max-width:calc(100% - 12px);padding:2px 5px;font-size:11px;text-decoration:none;position:absolute;bottom:6px;left:6px;overflow:hidden}a.log-photo-credit:hover{color:var(--accent);text-decoration:underline}.log-photo-frame .photo-match-label{font-size:11px;top:6px;left:6px;right:auto}.log-photo-zoom-btn{width:26px;height:26px;color:var(--text-primary);background:rgb(var(--paper-rgb) / .78);border:1px solid var(--glass-border);cursor:zoom-in;z-index:2;border-radius:3px;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:6px;right:6px}.log-photo-zoom-btn:hover{background:rgb(var(--paper-rgb) / .95)}.log-photo-frame .photo-silhouette-type{font-size:14px}.log-lightbox{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:zoom-out;background:#060a12e6;justify-content:center;align-items:center;padding:40px;animation:.18s lightbox-fade;display:flex;position:fixed;inset:0}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.log-lightbox-close{width:36px;height:36px;color:var(--text-secondary);background:rgb(var(--paper-rgb) / .7);border:1px solid var(--glass-border);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:16px;transition:color .12s,border-color .12s,background .12s;display:flex;position:absolute;top:18px;right:22px}.log-lightbox-close:hover{color:var(--text-primary);border-color:var(--border-accent);background:var(--glass-bg-hover)}.log-lightbox-inner{cursor:default;flex-direction:column;gap:10px;max-width:min(1200px,92vw);max-height:92vh;display:flex}.log-lightbox-img{object-fit:contain;border:1px solid var(--glass-border);max-width:100%;max-height:80vh;box-shadow:0 8px 32px rgb(var(--shadow-rgb) / .18);background:var(--bg-card);border-radius:5px}.log-lightbox-meta{justify-content:space-between;align-items:center;gap:16px;display:flex}.log-lightbox-caption{font-family:var(--font-display);color:var(--text-primary);font-size:13px}.log-lightbox-source{color:#ece8dcd9;font-size:12px;text-decoration:none}a.log-lightbox-source:hover{text-decoration:underline}.log-lightbox-note{color:#e9c48a;font-size:12px}.log-rarity-chip,.log-rarity-tier-pill,.log-rarity-bar,.log-rarity-summary{--tier-rare:var(--magenta);--tier-rare-bg:var(--magenta-dim);--tier-rare-border:rgb(var(--magenta-rgb) / .4);--tier-int:var(--class-cargo);--tier-int-bg:rgb(var(--cargo-rgb) / .12);--tier-int-border:rgb(var(--cargo-rgb) / .34);--tier-note:var(--accent);--tier-note-bg:rgb(var(--accent-rgb) / .1);--tier-note-border:rgb(var(--accent-rgb) / .3);--tier-routine:var(--text-dim);--tier-routine-bg:rgb(var(--slate-rgb) / .1);--tier-routine-border:rgb(var(--slate-rgb) / .25)}.log-rarity-chip{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:12px;line-height:1}.log-rarity-chip.tier-rare{color:var(--tier-rare);background:var(--tier-rare-bg)}.log-rarity-chip.tier-interesting{color:var(--tier-int);background:var(--tier-int-bg)}.log-rarity-chip.tier-noteworthy{color:var(--tier-note);background:var(--tier-note-bg)}.log-tab-rarity .log-detail-col{flex:1;min-width:0;max-width:520px}.log-rarity-summary{border:1px solid var(--glass-border);background:rgb(var(--paper-rgb) / .4);border-radius:5px;flex-direction:column;gap:10px;margin-bottom:14px;padding:12px 14px;display:flex}.log-rarity-summary.tier-rare{border-color:var(--tier-rare-border);background:var(--tier-rare-bg)}.log-rarity-summary.tier-interesting{border-color:var(--tier-int-border);background:var(--tier-int-bg)}.log-rarity-summary.tier-noteworthy{border-color:var(--tier-note-border);background:var(--tier-note-bg)}.log-rarity-summary.tier-routine{border-color:var(--tier-routine-border);background:var(--tier-routine-bg)}.log-rarity-score-row{align-items:baseline;gap:6px;display:flex}.log-rarity-score{font-family:var(--font-display);color:var(--text-primary);font-size:28px;font-weight:600}.log-rarity-score-out{color:var(--text-dim);margin-right:auto;font-size:12px}.log-rarity-tier-pill{border:1px solid #0000;border-radius:3px;padding:4px 9px;font-size:12px;line-height:1}.log-rarity-tier-pill.tier-rare{color:var(--tier-rare);border-color:var(--tier-rare-border)}.log-rarity-tier-pill.tier-interesting{color:var(--tier-int);border-color:var(--tier-int-border)}.log-rarity-tier-pill.tier-noteworthy{color:var(--tier-note);border-color:var(--tier-note-border)}.log-rarity-tier-pill.tier-routine{color:var(--tier-routine);border-color:var(--tier-routine-border)}.log-rarity-bar{background:rgb(var(--ink-rgb) / .04);border-radius:2px;width:100%;height:4px;overflow:hidden}.log-rarity-bar-fill{height:100%;transition:width .3s}.log-rarity-bar-fill.tier-rare{background:var(--tier-rare)}.log-rarity-bar-fill.tier-interesting{background:var(--tier-int)}.log-rarity-bar-fill.tier-noteworthy{background:var(--tier-note)}.log-rarity-bar-fill.tier-routine{background:var(--tier-routine)}.log-rarity-reasons{flex-direction:column;gap:6px;display:flex}.log-rarity-reason-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.log-rarity-reason{color:var(--text-secondary);padding:4px 0 4px 14px;font-size:12px;position:relative}.log-rarity-reason:before{content:"·";color:var(--accent);opacity:.6;position:absolute;left:4px}.log-rarity-reasons-empty{color:var(--text-dim);font-size:13px}.log-error{color:var(--class-government)}.stats-screen{flex-direction:column;gap:24px;height:100%;padding:28px 28px 40px;display:flex;overflow-y:auto}.stats-refresh-btn{border:1px solid var(--border);min-height:38px;color:var(--text-primary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:0 14px;font-size:14px;display:inline-flex}.stats-refresh-btn svg{width:15px;height:15px}.stats-refresh-btn svg.spinning{animation:.9s linear infinite spin}.stats-refresh-btn:hover:not(:disabled){border-color:var(--text-dim)}.stats-refresh-btn:disabled{color:var(--text-secondary);cursor:default}@keyframes spin{to{transform:rotate(360deg)}}.stats-totals{border-top:2px solid var(--text-primary);border-bottom:1px solid var(--border);grid-template-columns:1.4fr repeat(5,1fr);display:grid}.stats-total{flex-direction:column;gap:6px;padding:16px 16px 18px;display:flex}.stats-total+.stats-total{border-left:1px solid var(--border-subtle)}.stats-total:first-child{padding-left:0}.stats-total-value{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;line-height:1}.stats-total--lead .stats-total-value{color:var(--magenta);font-size:64px}.stats-total-label{color:var(--text-secondary);font-size:13px;line-height:1.3}.stats-today{border-top:1px solid var(--border-subtle);color:var(--text-secondary);grid-column:1/-1;padding:12px 0;font-size:14px}.stats-today strong{color:var(--text-primary);font-weight:700}.stats-today .stats-today-gov{color:var(--class-government)}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.s-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;gap:14px;min-width:0;padding:18px 20px 20px;display:flex}.s-card.s-full{grid-column:1/-1}.s-card-title{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:600;line-height:1.1}.s-section-loading{background:linear-gradient(90deg, rgb(var(--ink-rgb) / .04) 0%, rgb(var(--ink-rgb) / .09) 50%, rgb(var(--ink-rgb) / .04) 100%);background-size:200% 100%;border-radius:10px;height:80px;animation:1.4s ease-in-out infinite shimmer}.stats-totals>.s-section-loading{grid-column:1/-1;margin:16px 0}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-totals{grid-template-columns:repeat(3,1fr)}.stats-total--lead{grid-column:1/-1;padding-left:0}.stats-total:nth-child(2),.stats-total:nth-child(5){border-left:none;padding-left:0}.stats-total:nth-child(n+2){border-top:1px solid var(--border-subtle)}}@media (width<=900px){.stats-screen{gap:18px;height:auto;padding:20px 16px 28px;overflow:visible}.stats-grid{grid-template-columns:minmax(0,1fr);gap:12px}.stats-total-value{font-size:32px}.stats-total--lead .stats-total-value{font-size:56px}.stats-total{padding:12px 10px 14px}.s-card{border-radius:14px;padding:16px}}.s-bar-list{flex-direction:column;gap:8px;display:flex}.s-bar-row{grid-template-columns:160px 1fr 48px;align-items:center;gap:10px;display:grid}.s-bar-label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.s-bar-track{background:rgb(var(--ink-rgb) / .05);border-radius:3px;height:5px;overflow:hidden}.s-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.s-bar-value{color:var(--text-dim);text-align:right;font-size:13px}.s-chart-sm{height:160px}.s-chart-md{height:180px}.s-chart-legend{justify-content:flex-end;gap:16px;display:flex}.s-legend-item{color:var(--text-dim);align-items:center;gap:5px;font-size:12px;display:flex}.s-legend-swatch{background:var(--accent);border-radius:1px;width:10px;height:10px;display:inline-block}.chart-tooltip{background:var(--panel-bg);border:1px solid var(--border);border-radius:3px;flex-direction:column;gap:2px;padding:6px 10px;display:flex}.chart-tooltip-label{color:var(--text-dim);font-size:12px}.chart-tooltip-value{color:var(--text-primary);font-size:13px;font-weight:600}.s-op-list{flex-direction:column;gap:10px;display:flex}.s-op-row{align-items:center;gap:10px;display:flex}.s-op-logo{object-fit:contain;background:rgb(var(--ink-rgb) / .04);border-radius:3px;flex-shrink:0;width:36px;height:36px}.s-op-initials{background:rgb(var(--accent-rgb) / .1);border:1px solid rgb(var(--accent-rgb) / .15);width:36px;height:36px;color:var(--accent);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.s-op-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.s-op-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.s-op-sub{color:var(--text-dim);font-size:12px}.s-op-count{color:var(--text-secondary);flex-shrink:0;font-size:12px}.s-exp-list{flex-direction:column;display:flex}.s-exp-header{border-bottom:1px solid var(--border);grid-template-columns:14px 16px 120px 1fr 100px 80px 20px;align-items:center;gap:10px;margin-bottom:4px;padding:0 12px 6px;display:grid}.s-exp-header-seen{grid-template-columns:28px 16px 120px 1fr 160px 80px 20px}.s-col-label{color:var(--text-ghost);font-size:12px;font-weight:600}.s-col-right{text-align:right}.s-exp-row{border-radius:2px;transition:background .1s}.s-exp-row:hover{background:rgb(var(--ink-rgb) / .02)}.s-exp-main{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;grid-template-columns:14px 16px 120px 1fr 100px 80px 20px;align-items:center;gap:10px;padding:8px 12px;display:grid}.s-exp-main.s-exp-main-seen{grid-template-columns:28px 16px 120px 1fr 160px 80px 20px}.s-rank{color:var(--text-ghost);white-space:nowrap;font-size:12px}.s-exp-callsign{color:var(--text-primary);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.s-exp-type,.s-exp-operator{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.s-exp-seen{color:var(--accent);text-align:right;white-space:nowrap;font-size:12px;font-weight:600}.s-exp-detail{border-top:1px solid rgb(var(--ink-rgb) / .04);grid-template-columns:repeat(2,1fr);gap:4px 24px;margin-top:2px;padding:0 12px 10px 52px;display:grid}.s-exp-detail-row{align-items:baseline;gap:8px;display:flex}.s-route-list{flex-direction:column;gap:2px;display:flex}.s-route-row{border-radius:3px;transition:background .1s}.s-route-row:hover{background:rgb(var(--ink-rgb) / .02)}.s-route-row.open{background:rgb(var(--accent-rgb) / .04);border:1px solid rgb(var(--accent-rgb) / .12)}.s-route-main{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;grid-template-columns:120px 1fr 44px 20px;align-items:center;gap:10px;padding:7px 8px;display:grid}.s-route-label{color:var(--text-primary);white-space:nowrap;font-size:12px;font-weight:600}.s-route-detail{border-top:1px solid rgb(var(--accent-rgb) / .1);align-items:flex-start;gap:16px;padding:10px 12px 14px;animation:.18s forwards row-expand;display:flex}.s-route-airport{flex-direction:column;gap:2px;min-width:64px;display:flex}.s-route-airport-tag{color:var(--text-ghost);margin-bottom:2px;font-size:12px}.s-route-iata{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.04em;font-size:20px;font-weight:700;line-height:1}.s-route-city{color:var(--text-secondary);margin-top:1px;font-size:12px}.s-route-connector{color:var(--text-ghost);flex-shrink:0;padding-top:20px;font-size:14px}.s-route-count-block{flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto;display:flex}.s-route-count{font-family:var(--font-display);color:var(--class-commercial);font-size:20px;font-weight:700;line-height:1}.s-empty{color:var(--text-ghost);padding:12px 0;font-size:13px}.s-card.s-notable{gap:0;padding-bottom:14px;padding-left:0;padding-right:0;overflow:hidden}.s-card.s-notable .s-card-title{margin-bottom:14px;padding:0 18px}.s-card.s-notable .s-section-loading,.s-card.s-notable .s-section-error,.s-card.s-notable .s-empty{padding-left:18px}.nc-wrap{flex-direction:column;gap:12px;display:flex}.nc-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:10px;padding:4px 18px;scroll-padding-left:18px;display:flex;overflow-x:scroll}.nc-carousel::-webkit-scrollbar{display:none}.nc-card{scroll-snap-align:start;border:1px solid var(--glass-border);background:var(--glass-bg);width:calc(100% - 56px);min-width:220px;max-width:320px;-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--card-shadow);border-radius:6px;flex-direction:column;flex-shrink:0;gap:8px;padding:14px 16px 12px;transition:border-color .15s;display:flex;position:relative;overflow:hidden}.nc-card:before{content:"";border-radius:6px 0 0 6px;width:3px;position:absolute;top:0;bottom:0;left:0}.nc-card--commercial:before{background:var(--class-commercial)}.nc-card--private:before{background:var(--class-private)}.nc-card--cargo:before{background:var(--class-cargo)}.nc-card--government:before{background:var(--class-government)}.nc-card--military:before{background:var(--class-military)}.nc-card--unknown:before{background:var(--class-unknown)}.nc-emergency-banner{color:var(--class-government);background:rgb(var(--gov-rgb) / .12);border:1px solid rgb(var(--gov-rgb) / .4);box-shadow:none;border-radius:2px;align-items:center;gap:8px;width:fit-content;padding:4px 9px 4px 8px;font-size:12px;font-weight:700;display:inline-flex}.nc-emergency-pulse{background:var(--class-government);width:7px;height:7px;box-shadow:0 0 0 0 rgb(var(--gov-rgb) / .7);border-radius:50%;flex-shrink:0;animation:1.4s ease-out infinite nc-emergency-pulse}@keyframes nc-emergency-pulse{0%{box-shadow:0 0 0 0 rgb(var(--gov-rgb) / .55)}70%{box-shadow:0 0 0 10px rgb(var(--gov-rgb) / 0)}to{box-shadow:0 0 0 0 rgb(var(--gov-rgb) / 0)}}.nc-card--emergency{border-color:rgb(var(--gov-rgb) / .4);box-shadow:0 0 0 1px rgb(var(--gov-rgb) / .18), var(--card-shadow)}.nc-tier{border-radius:2px;align-items:center;gap:8px;width:fit-content;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.nc-tier-score{font-family:var(--font-display);opacity:.85;font-size:12px;font-weight:700}.nc-tier-badge--rare{color:var(--class-cargo);background:rgb(var(--cargo-rgb) / .1);border:1px solid rgb(var(--cargo-rgb) / .3);text-shadow:0 0 12px rgb(var(--cargo-rgb) / .25)}.nc-tier-badge--interesting{color:var(--class-cargo);background:rgb(var(--cargo-rgb) / .1);border:1px solid rgb(var(--cargo-rgb) / .28)}.nc-tier-badge--noteworthy{color:var(--accent);background:rgb(var(--accent-rgb) / .08);border:1px solid rgb(var(--accent-rgb) / .22)}.nc-tier-badge--routine{color:var(--text-dim);background:rgb(var(--ink-rgb) / .03);border:1px solid rgb(var(--ink-rgb) / .06)}.nc-tier--rare{border-color:rgb(var(--cargo-rgb) / .35);box-shadow:0 0 0 1px rgb(var(--cargo-rgb) / .1), var(--card-shadow)}.nc-reasons{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nc-reason{color:var(--text-secondary);padding-left:10px;font-size:13px;line-height:1.35;position:relative}.nc-reason:before{content:"·";color:var(--text-ghost);position:absolute;left:2px}.nc-squawk{color:var(--class-government)!important;letter-spacing:.04em!important}.nc-badge{border-radius:2px;align-items:center;gap:5px;width:fit-content;padding:2px 7px 2px 5px;font-size:12px;font-weight:600;display:inline-flex}.nc-badge--commercial{color:var(--class-commercial);background:rgb(var(--accent-rgb) / .12);border:1px solid rgb(var(--accent-rgb) / .22)}.nc-badge--private{color:var(--class-private);background:rgb(var(--private-rgb) / .12);border:1px solid rgb(var(--private-rgb) / .22)}.nc-badge--cargo{color:var(--class-cargo);background:rgb(var(--cargo-rgb) / .12);border:1px solid rgb(var(--cargo-rgb) / .22)}.nc-badge--government{color:var(--class-government);background:rgb(var(--gov-rgb) / .12);border:1px solid rgb(var(--gov-rgb) / .22)}.nc-badge--military{color:var(--class-military);background:rgb(var(--gov-rgb) / .12);border:1px solid rgb(var(--gov-rgb) / .22)}.nc-badge--unknown{color:var(--class-unknown);background:rgb(var(--unknown-rgb) / .12);border:1px solid rgb(var(--unknown-rgb) / .22)}.nc-ident{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.03em;text-shadow:none;font-size:22px;font-weight:700;line-height:1}.nc-type{color:var(--text-secondary);font-size:13px;line-height:1.3}.nc-intel{flex-direction:column;gap:3px;margin-top:2px;display:flex}.nc-country{align-items:center;gap:6px;display:flex}.nc-flag{flex-shrink:0;font-size:14px;line-height:1}.nc-country-name{color:var(--text-secondary);font-size:13px}.nc-operator{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.nc-route{border-top:1px solid rgb(var(--ink-rgb) / .05);flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:2px;padding-top:8px;display:flex}.nc-route-origin,.nc-route-dest{font-family:var(--font-display);color:var(--text-primary);font-size:14px;font-weight:600}.nc-route-arrow{color:var(--text-ghost);font-size:12px}.nc-route-cities{width:100%;color:var(--text-ghost);margin-top:-2px;font-size:12px}.nc-footer{border-top:1px solid rgb(var(--ink-rgb) / .05);justify-content:space-between;align-items:flex-end;margin-top:auto;padding-top:8px;display:flex}.nc-telem{flex-direction:column;gap:2px;display:flex}.nc-telem span{color:var(--text-dim);font-size:12px}.nc-seen-wrap{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.nc-seen{font-family:var(--font-display);color:var(--accent);font-size:16px;font-weight:700;line-height:1}.nc-last-seen{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.nc-last-seen-label{color:var(--text-ghost);opacity:.7;font-size:12px;line-height:1}.nc-last-seen-time{font-family:var(--font-display);color:var(--text-secondary);font-size:12px;line-height:1.2}.nc-dots{justify-content:center;align-items:center;gap:6px;padding:0 18px 2px;display:flex}.nc-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:5px;height:5px;padding:0;transition:background .18s,transform .18s,width .18s}.nc-dot.active{background:var(--accent);width:16px;box-shadow:0 0 6px rgb(var(--accent-rgb) / .4);border-radius:3px}@media (width<=900px){.app-shell,.app-main{width:100%;max-width:100%;overflow:hidden}.flight-screen,.log-screen,.stats-screen{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden}.stats-grid{min-width:0}.s-card{min-width:0;overflow:hidden}.s-chart-sm,.s-chart-md{width:100%;min-width:0}.top-bar{box-sizing:border-box;width:100%;overflow:hidden}.status-info{display:none}.top-bar-left{flex:1;min-width:0;overflow:hidden}.scan-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.s-bar-row{grid-template-columns:minmax(0,1fr) 2fr 44px}.s-exp-main,.s-exp-main.s-exp-main-seen{min-height:48px;padding:10px 12px}.s-exp-header:not(.s-exp-header-seen){grid-template-columns:20px minmax(0,1fr) 70px 20px}.s-exp-header:not(.s-exp-header-seen)>:first-child,.s-exp-header:not(.s-exp-header-seen)>:nth-child(4),.s-exp-header:not(.s-exp-header-seen)>:nth-child(5){display:none}.s-exp-main:not(.s-exp-main-seen){grid-template-columns:20px minmax(0,1fr) 70px 20px}.s-exp-header-seen{grid-template-columns:28px 16px minmax(0,1fr) 54px 20px}.s-exp-header-seen>:nth-child(4),.s-exp-header-seen>:nth-child(5){display:none}.s-exp-main-seen{grid-template-columns:28px 16px minmax(0,1fr) 54px 20px}.s-exp-type,.s-exp-route,.s-exp-operator{display:none}.s-exp-detail{border-top:1px solid rgb(var(--accent-rgb) / .08);background:rgb(var(--paper-rgb) / .3);grid-template-columns:1fr;gap:6px;padding:12px 16px 16px}.s-exp-detail-row{border-bottom:1px solid rgb(var(--ink-rgb) / .03);justify-content:space-between;align-items:baseline;gap:0;padding:4px 0;display:flex}.s-exp-detail-row:last-child{border-bottom:none}.s-exp-detail-row .log-detail-label{color:var(--text-dim);font-size:12px}.s-exp-detail-row .log-detail-value{color:var(--text-primary);text-align:right;font-size:12px}.s-route-main{grid-template-columns:minmax(0,1fr) 2fr 36px 20px;padding:9px 6px}.s-route-label{font-size:13px}.s-route-detail{flex-wrap:wrap;gap:14px 20px;padding:12px 12px 16px}.s-route-iata{font-size:22px}.s-route-city{font-size:12px}.s-route-count-block{margin-left:0}.s-chart-sm{height:140px}.s-chart-md{height:160px}.nc-card{width:calc(100% - 40px);max-width:none}.nc-ident{letter-spacing:.03em;font-size:26px}}.profile-screen{flex-direction:column;height:100%;display:flex;overflow:hidden}.profile-header{justify-content:space-between;align-items:center;gap:16px;padding:28px 28px 18px;display:flex}.profile-identity{align-items:center;gap:14px;min-width:0;display:flex}.profile-avatar{width:52px;height:52px;color:var(--accent);background:rgb(var(--accent-rgb) / .1);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.profile-avatar svg{width:24px;height:24px}.profile-email{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.profile-tier-inline{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1.05}.profile-summary-stats{gap:20px;display:flex}.profile-summary-stat{flex-direction:column;align-items:flex-end;display:flex}.profile-summary-value{font-family:var(--font-display);color:var(--magenta);font-size:34px;font-weight:600;line-height:1}.profile-summary-label{color:var(--text-secondary);font-size:13px}.profile-tabs{background:rgb(var(--ink-rgb) / .06);border-radius:12px;align-self:flex-start;margin:0 28px 8px;padding:3px;display:inline-flex}.profile-tab{min-height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:0 16px;font-size:14px;display:inline-flex}.profile-tab:hover{color:var(--text-primary)}.profile-tab.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .2)}.profile-tab-badge{background:var(--magenta);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;padding:0 6px;font-size:12px;line-height:20px}.profile-content{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:12px 28px 40px;overflow-y:auto}.profile-loading,.profile-error{color:var(--text-secondary);align-items:center;gap:10px;padding:40px 0;font-size:15px;display:flex}.profile-error{color:var(--class-government)}.profile-loading-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.profile-rank-section{flex-direction:column;gap:32px;max-width:760px;display:flex}.profile-rank-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:18px;padding:22px 24px 24px}.profile-rank-header{align-items:center;gap:20px;display:flex}.profile-epaulette{flex-shrink:0;width:52px;height:auto}.profile-epaulette-board{fill:#18294a;stroke:rgb(var(--ink-rgb) / .18);stroke-width:1px}.profile-epaulette-button{fill:#e3b657}.profile-epaulette-stripe{fill:#e3b657;transform-box:fill-box;transform-origin:0;animation:stripe-in .42s var(--ease-out) both}@keyframes stripe-in{0%{transform:scaleX(0)}}.profile-rank-meta{flex:1;min-width:0}.profile-rank-label{font-family:var(--font-display);color:var(--text-primary);font-size:32px;font-weight:700;line-height:1}.profile-rank-description{color:var(--text-secondary);margin-top:6px;font-size:15px;line-height:1.45}.profile-rank-score{flex-direction:column;align-items:flex-end;display:flex}.profile-rank-score-value{font-family:var(--font-display);color:var(--text-primary);font-size:40px;font-weight:600;line-height:1}.profile-rank-score-unit{color:var(--text-secondary);font-size:13px}.profile-rank-progress-wrap{margin-top:22px}.profile-rank-progress-bar{background:rgb(var(--ink-rgb) / .08);border-radius:999px;height:10px;overflow:hidden}.profile-rank-progress-fill{border-radius:inherit;background:var(--tier-color,var(--accent));transform-origin:0;min-width:10px;height:100%;animation:fill-in .9s var(--ease-out) both}.profile-rank-progress-labels{color:var(--text-secondary);justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.profile-rank-progress-next,.profile-rank-max{color:var(--text-primary)}.profile-rank-breakdown{border-top:1px solid var(--border-subtle);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:22px;display:grid}.profile-rank-breakdown-item{flex-direction:column;gap:4px;padding:14px 12px 0;display:flex}.profile-rank-breakdown-item:first-child{padding-left:0}.profile-rank-breakdown-item+.profile-rank-breakdown-item{border-left:1px solid var(--border-subtle)}.profile-breakdown-label{color:var(--text-secondary);font-size:13px}.profile-breakdown-value{font-family:var(--font-display);color:var(--text-primary);font-size:30px;font-weight:600;line-height:1}.profile-breakdown-pts{color:var(--text-dim);font-size:12px}.profile-section-label{font-family:var(--font-display);color:var(--text-primary);margin-bottom:10px;font-size:22px;font-weight:600}.score-formula-table{flex-direction:column;display:flex}.score-formula-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1.2fr) 70px minmax(0,1.6fr);align-items:baseline;gap:12px;padding:10px 0;display:grid}.score-formula-component{color:var(--text-primary);font-size:15px}.score-formula-multiplier{font-family:var(--font-display);color:var(--accent);font-size:18px;font-weight:600}.score-formula-highlight .score-formula-multiplier{color:var(--magenta)}.score-formula-note{color:var(--text-secondary);font-size:13px}.score-formula-context{max-width:60ch;color:var(--text-secondary);margin-top:12px;font-size:14px;line-height:1.55}.profile-tiers-list{flex-direction:column;display:flex}.profile-tier-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 0;display:grid}.profile-tier-indicator{border:2px solid var(--border);border-radius:50%;width:12px;height:12px}.profile-tier-row.achieved .profile-tier-indicator{border-color:#0000}.profile-tier-info{flex-direction:column;gap:2px;min-width:0;display:flex}.profile-tier-name{font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:8px;font-size:19px;font-weight:600;display:flex}.profile-tier-row:not(.achieved) .profile-tier-name{color:var(--text-secondary)}.profile-tier-current-tag{font-family:var(--font-body);color:var(--on-accent);background:var(--accent);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:400}.profile-tier-desc{color:var(--text-secondary);font-size:13px;line-height:1.4}.profile-tier-threshold{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}@media (width<=900px){.profile-screen{height:auto;overflow:visible}.profile-header{padding:20px 16px 14px}.profile-tabs{margin:0 16px 4px}.profile-content{padding:12px 16px 28px;overflow:visible}.profile-rank-card{padding:18px 16px 20px}.profile-rank-label{font-size:28px}.profile-rank-score-value{font-size:32px}.profile-rank-breakdown{grid-template-columns:1fr 1fr}.profile-rank-breakdown-item:nth-child(3){border-left:none;padding-left:0}.profile-rank-breakdown-item:nth-child(n+3){border-top:1px solid var(--border-subtle);margin-top:14px}.score-formula-row{grid-template-columns:minmax(0,1fr) auto}.score-formula-note{grid-column:1/-1;margin-top:-6px}}.profile-achievements-section{flex-direction:column;gap:24px;display:flex}.achievement-group{flex-direction:column;gap:10px;display:flex}.achievement-group-header{align-items:baseline;gap:10px;display:flex}.achievement-group-label{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:600}.achievement-group-count{color:var(--text-secondary);font-size:13px}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.achievement-card{border-radius:14px;align-items:flex-start;gap:12px;padding:14px;display:flex}.achievement-card.achievement-unlocked{background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--card-shadow)}.achievement-card.achievement-locked{border:1.5px dashed rgb(var(--ink-rgb) / .14)}.achievement-card.achievement-locked .achievement-text{opacity:.7}.achievement-icon{border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.achievement-icon svg{width:20px;height:20px}.achievement-icon.unlocked{background:var(--magenta-dim);color:var(--magenta)}.achievement-icon.unlocked svg{fill:var(--magenta);stroke:none}.achievement-icon.unlocked svg[fill=none]{fill:none;stroke:var(--magenta)}.achievement-icon.locked{background:rgb(var(--ink-rgb) / .05);color:var(--text-dim)}.achievement-icon.locked svg{fill:var(--text-dim);stroke:none}.achievement-icon.locked svg[fill=none]{fill:none;stroke:var(--text-dim)}.achievement-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.achievement-label{font-family:var(--font-display);color:var(--text-primary);font-size:18px;font-weight:600;line-height:1.15}.achievement-description{color:var(--text-secondary);font-size:13px;line-height:1.45}.achievement-country-tag{align-items:center;gap:6px;margin-top:4px;display:flex}.achievement-country-flag{font-size:14px;line-height:1}.achievement-country-name{color:var(--text-secondary);font-size:12px}.achievement-unlocked-at{color:var(--magenta);margin-top:4px;font-size:12px}@media (width<=640px){.profile-header,.profile-summary-stat{align-items:flex-start}.achievement-grid{grid-template-columns:1fr}}.empty-retry-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:8px;display:flex}.empty-retry-row .empty-error-retry{margin-top:0}.empty-retry-status{color:var(--text-secondary);font-size:14px}.empty-icon-error{fill:var(--class-government)}.empty-title-error{color:var(--text-primary)}.empty-body-error{color:var(--text-secondary)}.empty-error-retry{background:var(--accent);min-height:42px;color:var(--on-accent);cursor:pointer;transition:filter .16s ease, transform .16s var(--ease-out);border:0;border-radius:999px;margin-top:12px;padding:0 20px;font-size:15px}.empty-error-retry:hover{filter:brightness(1.08)}.empty-error-retry:active{transform:scale(.97)}.admin-screen{flex-direction:column;gap:16px;height:100%;padding:20px 24px;display:flex;overflow-y:auto}.admin-header{align-items:center;gap:12px;display:flex}.admin-title{font-family:var(--font-display);color:var(--text-primary);font-size:34px;font-weight:700}.admin-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.admin-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-size:12px;transition:color .12s,border-color .12s}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-loading,.admin-error{color:var(--text-dim);padding:12px 0;font-size:12px}.admin-error{color:var(--class-government)}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.admin-metric{background:var(--panel-bg);border:1px solid var(--border);text-align:left;border-radius:4px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.admin-metric-label{color:var(--text-dim);font-size:12px}.admin-metric-value{font-family:var(--font-mono);color:var(--text-primary);font-size:26px;font-weight:700;line-height:1}.admin-table-wrap{background:var(--panel-bg);border:1px solid var(--border);border-radius:4px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);text-align:left;font-size:12px}.admin-table th{color:var(--text-dim);border-bottom:1px solid var(--border);padding:10px 12px;font-size:12px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:9px 12px}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--accent-micro)}.admin-table .admin-num{text-align:right;font-variant-numeric:tabular-nums}.admin-table .admin-email{color:var(--text-primary);word-break:break-all}.admin-row-action{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:3px;padding:4px 10px;font-size:12px;transition:border-color .15s,color .15s,background .15s}.admin-row-action:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.admin-row-action:disabled{opacity:.5;cursor:not-allowed}.admin-modal-backdrop{background:rgb(var(--shadow-rgb) / .18);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:var(--bg-elevated);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:18px;width:90%;max-width:460px;padding:22px 26px}.admin-modal-title{font-family:var(--font-display);color:var(--text-primary);margin:0 0 12px;font-size:24px;font-weight:600}.admin-modal-body{color:var(--text-primary);margin:0 0 14px;font-size:13px;line-height:1.5}.admin-modal-password{background:var(--bg,rgb(var(--shadow-rgb) / .09));border:1px solid var(--border);border-radius:3px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 12px;display:flex}.admin-modal-password code{color:var(--text-primary);word-break:break-all;flex:1;font-size:14px}.admin-modal-actions{justify-content:flex-end;display:flex}.admin-changelog{background:var(--panel-bg);border:1px solid var(--border);text-align:left;border-radius:4px;padding:18px 22px}.admin-changelog-date{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--accent);margin:14px 0 8px;font-size:12px;font-weight:600}.admin-changelog-date:first-child{margin-top:0}.admin-changelog-list{margin:0 0 4px;padding-left:18px;list-style:square}.admin-changelog-list li{color:var(--text-primary);margin-bottom:4px;font-size:13px;line-height:1.5}.admin-changelog-link{color:var(--accent);text-decoration:none}.admin-changelog-link:hover{text-decoration:underline}.admin-changelog-para{color:var(--text-dim);margin:6px 0;font-size:13px;line-height:1.55}.scan-dot-paused{background:var(--text-dim);box-shadow:none;animation:none}.scan-dot-warn{background:var(--class-cargo);box-shadow:0 0 8px rgb(var(--cargo-rgb) / .5)}.scan-dot-error{background:var(--class-government);box-shadow:none;animation:none}.photo-silhouette{flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.photo-silhouette-glyph{width:34%;max-width:170px;color:var(--text-primary);opacity:.13;fill:currentColor}.photo-silhouette-glyph.searching{animation:2.2s ease-in-out infinite silhouette-breathe}@keyframes silhouette-breathe{0%,to{opacity:.08}50%{opacity:.16}}.photo-silhouette-type{font-family:var(--font-display);letter-spacing:.2em;color:var(--text-dim);font-size:18px;font-weight:600}.photo-silhouette-label{color:var(--text-ghost);font-size:12px}.photo-silhouette.not-found .photo-silhouette-label{color:var(--text-dim)}.photo-silhouette-search{color:var(--accent);border-bottom:1px solid rgb(var(--accent-rgb) / .3);z-index:3;margin-top:2px;font-size:12px;text-decoration:none}.photo-silhouette-search:hover{border-bottom-color:var(--accent)}.hangar-screen{height:100%;padding-bottom:40px;overflow-y:auto}.hangar-header{align-items:flex-end;padding:28px 28px 18px}.hangar-completion{flex-direction:column;gap:8px;min-width:220px;display:flex}.hangar-completion-count{color:var(--text-secondary);font-size:14px}.hangar-completion-count strong{font-family:var(--font-display);color:var(--magenta);margin-right:2px;font-size:30px;font-weight:600}.hangar-completion-track{background:rgb(var(--ink-rgb) / .08);border-radius:999px;height:8px;overflow:hidden}.hangar-completion-fill{border-radius:inherit;background:var(--magenta);transform-origin:0;height:100%;animation:fill-in .9s var(--ease-out) both}@keyframes fill-in{0%{transform:scaleX(0)}}.hangar-tabs{background:rgb(var(--ink-rgb) / .06);border-radius:12px;margin:0 28px 8px;padding:3px;display:inline-flex}.hangar-tab{min-height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:0 14px;font-size:14px;display:inline-flex}.hangar-tab.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .2)}.hangar-tab-count{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.hangar-body{padding:0 28px}.hangar-section{margin-top:26px}.hangar-section-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.hangar-section-label{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:600}.hangar-section-count{color:var(--text-secondary);white-space:nowrap;font-size:13px}.hangar-section-bar{background:rgb(var(--ink-rgb) / .08);border-radius:999px;flex:1;max-width:160px;height:4px;overflow:hidden}.hangar-section-bar span{background:var(--magenta);border-radius:inherit;height:100%;display:block}.hangar-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;display:grid}.hangar-card{border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;min-height:74px;padding:10px 12px 11px;display:flex}.hangar-card.caught{background:var(--bg-card);border:1px solid var(--border-subtle);min-height:132px;box-shadow:var(--card-shadow);animation:settle .42s var(--ease-out) both;position:relative}.hangar-card.ghost{border:1.5px dashed rgb(var(--ink-rgb) / .14);background:0 0}.hangar-card-glyph{width:34px;height:34px;color:var(--accent);fill:currentColor;margin-bottom:8px}.hangar-card-code{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-primary);font-size:20px;font-weight:600;line-height:1.1}.hangar-card.ghost .hangar-card-code{color:var(--text-dim);font-size:17px}.hangar-card-name{color:var(--text-secondary);font-size:12px;line-height:1.3}.hangar-card.ghost .hangar-card-name{color:var(--text-dim)}.hangar-card-meta{color:var(--text-dim);align-items:baseline;gap:8px;margin-top:auto;padding-top:8px;font-size:12px;display:flex}.hangar-card-count{font-family:var(--font-display);color:var(--magenta);font-size:17px;font-weight:600}.hangar-list{flex-direction:column;margin-top:12px;display:flex}.hangar-list-row{align-items:center;gap:14px;padding:12px 2px;display:flex}.hangar-list-row+.hangar-list-row{border-top:1px solid var(--border-subtle)}.hangar-airline-logo{object-fit:contain;background:#fff;border-radius:10px;flex-shrink:0;width:40px;height:40px;padding:4px}.hangar-airline-initials{width:40px;height:40px;font-family:var(--font-display);color:var(--accent);background:rgb(var(--accent-rgb) / .1);border-radius:10px;flex-shrink:0;place-items:center;font-size:15px;font-weight:600;display:grid}.hangar-flag{text-align:center;flex-shrink:0;width:40px;font-size:28px;line-height:1}.hangar-list-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.hangar-list-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.hangar-list-sub{color:var(--text-secondary);font-size:13px}.hangar-list-count{font-family:var(--font-display);color:var(--magenta);font-size:22px;font-weight:600}.hangar-empty{max-width:44ch;color:var(--text-secondary);padding:40px 0;font-size:15px;line-height:1.5}@media (width<=900px){.hangar-screen{height:auto;overflow:visible}.hangar-header{padding:20px 16px 14px}.hangar-completion{width:100%;min-width:0}.hangar-tabs{margin:0 16px 4px}.hangar-body{padding:0 16px}.hangar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.hangar-card{padding:9px 10px 10px}.hangar-card.caught{min-height:124px}.hangar-card-name{font-size:11px}}.diag-panel{overscroll-behavior:contain;width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 48px);padding:18px 18px 20px;overflow-y:auto}.diag-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.diag-header .admin-modal-title{margin:0}.diag-section{border-top:1px solid var(--border-subtle);padding:8px 0}.diag-section-title{font-family:var(--font-display);letter-spacing:.14em;color:var(--text-secondary);margin:4px 0 6px;font-size:12px;font-weight:600}.diag-row{justify-content:space-between;gap:14px;padding:4px 0;font-size:12px;line-height:1.45;display:flex}.diag-row-label{color:var(--text-secondary);flex-shrink:0}.diag-row-value{text-align:right;overflow-wrap:anywhere}.diag-tone-ok{color:var(--ok)}.diag-tone-warn{color:var(--warn)}.diag-tone-bad{color:var(--danger)}.diag-tone-muted{color:var(--text-secondary)}.diag-event{color:var(--text-primary);overflow-wrap:anywhere;gap:10px;padding:2px 0;font-size:12px;line-height:1.45;display:flex}.diag-event-time{width:56px;color:var(--text-secondary);flex-shrink:0}.diag-actions{border-top:1px solid var(--border-subtle);background:var(--bg-elevated);flex-wrap:wrap;gap:8px;padding:10px 0 12px;display:flex;position:sticky;bottom:-20px}.diag-json{width:100%;min-height:160px;font-family:var(--font-mono);background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;margin-top:10px;padding:8px;font-size:10px}.empty-retry-ref{font-family:var(--font-mono);letter-spacing:.5px;color:var(--text-secondary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px;font-size:12px;text-decoration:underline}.diag-admin-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.diag-admin-block{margin-bottom:22px}.diag-admin-block .admin-table td{vertical-align:top;font-size:11px}.diag-admin-problems{font-family:var(--font-mono);border:1px solid var(--border);background:var(--bg-card);border-radius:4px;margin-bottom:14px;padding:10px 12px;font-size:12px}.diag-kv{color:var(--text-primary);flex-wrap:wrap;gap:6px 18px;font-size:12px;display:flex}.diag-kv span{overflow-wrap:anywhere}.diag-kv span b{color:var(--text-secondary);margin-right:4px;font-weight:400}.diag-history{font-family:var(--font-mono);white-space:nowrap}.share-catch-btn{min-height:38px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;flex-shrink:0;align-self:flex-start;align-items:center;gap:6px;margin-top:16px;padding:0 15px 0 12px;font-size:14px;transition:background .15s,border-color .15s;display:inline-flex}.share-catch-btn:hover{border-color:var(--text-dim)}.share-catch-btn:active{transform:scale(.97)}.callsign-action .share-catch-btn{margin-top:0}.share-catch-icon{flex-shrink:0;width:14px;height:14px}.share-catch-btn.log-share-btn{align-self:center;min-height:32px;margin:0 0 0 auto;padding:0 12px 0 10px;font-size:13px}.share-sheet-backdrop{z-index:1000;background:var(--scrim);-webkit-backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:24px;animation:.18s lightbox-fade;display:flex;position:fixed;inset:0}.share-sheet{background:var(--bg-elevated);border:1px solid var(--border);width:100%;max-width:420px;max-height:calc(100dvh - 48px);box-shadow:var(--card-shadow-elevated);border-radius:10px;flex-direction:column;gap:14px;padding:14px 18px 18px;display:flex;overflow-y:auto}.share-sheet-head{justify-content:space-between;align-items:center;display:flex}.share-sheet-title{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:600}.share-sheet-close{width:32px;height:32px;color:var(--text-secondary);background:rgb(var(--ink-rgb) / .06);cursor:pointer;border:0;border-radius:50%;font-size:14px}.share-sheet-close:hover{color:var(--text-primary);border-color:var(--border-accent)}.share-bubble-wrap{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;justify-content:flex-end;padding:14px 12px;display:flex}.share-bubble{max-width:94%;color:var(--on-accent);background:var(--accent);white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;border-radius:18px 18px 4px;padding:9px 13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.4}.share-sheet-actions{gap:10px;display:flex}.share-sheet-btn{min-height:46px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:7px;font-size:15px;transition:background .15s,border-color .15s;display:inline-flex}.share-sheet-btn:hover{background:var(--accent-dim);border-color:var(--border-active)}.share-sheet-btn.primary{color:var(--on-accent);background:var(--accent);border-color:#0000}.share-sheet-btn.primary:hover{filter:brightness(1.08)}.share-sheet-hint{color:var(--text-secondary);font-size:13px;line-height:1.5}@keyframes share-sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (width<=640px){.share-catch-btn{min-height:38px}.share-sheet-backdrop{align-items:flex-end;padding:0}.share-sheet{max-width:none;max-height:92dvh;padding:14px 16px calc(18px + env(safe-area-inset-bottom));animation:share-sheet-up .3s var(--ease-out);border-bottom:none;border-radius:20px 20px 0 0}.share-catch-btn.log-share-btn{background:linear-gradient(var(--accent-dim), var(--accent-dim)), var(--bg-elevated);min-height:30px;box-shadow:-14px 0 10px -4px var(--bg-elevated);padding:0 9px;position:sticky;right:0}.share-catch-btn.log-share-btn span{display:none}}@media (width<=900px){html,body,#root{height:auto;min-height:100dvh;overflow:hidden auto}.app-shell{height:auto;min-height:100dvh}.app-main{flex:none;overflow:visible}.bottom-bar{display:none}}.flight-screen{grid-template-columns:minmax(300px,340px) minmax(0,1fr) minmax(280px,320px);gap:24px;height:100%;padding:24px 28px;display:grid;overflow:hidden}.col-left,.col-right{scrollbar-width:none;flex-direction:column;gap:22px;min-height:0;display:flex;overflow-y:auto}.col-left::-webkit-scrollbar{display:none}.col-right::-webkit-scrollbar{display:none}.col-center{flex-direction:column;gap:14px;min-height:0;display:flex}.aircraft-photo-wrap{background:var(--bg-card);width:100%;min-height:0;box-shadow:var(--card-shadow-elevated);view-transition-name:hero-photo;border-radius:16px;flex:1;position:relative;overflow:hidden}.aircraft-photo-wrap:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#0000,#080e1880);height:64px;position:absolute;inset:auto 0 0}.photo-registration{font-family:var(--font-display);letter-spacing:.06em;color:#ffffffeb;text-shadow:0 1px 2px #0006;z-index:3;font-size:14px;font-weight:600;position:absolute;bottom:11px;right:14px}.photo-credit{text-overflow:ellipsis;white-space:nowrap;color:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;background:#080e186b;border-radius:999px;max-width:calc(100% - 110px);padding:2px 9px;font-size:11px;line-height:1.5;text-decoration:none;position:absolute;bottom:10px;left:12px;overflow:hidden}a.photo-credit:hover{text-decoration:underline}.photo-match-label{color:#5e3a08;z-index:3;pointer-events:none;background:#ffecc8f0;border-radius:999px;max-width:75%;padding:3px 10px;font-size:12px;line-height:1.4;position:absolute;top:10px;left:10px}.catch-id{view-transition-name:catch-id}.callsign-row{align-items:center;gap:12px;display:flex}.callsign{font-family:var(--font-display);letter-spacing:.01em;color:var(--text-primary);overflow-wrap:anywhere;animation:settle .42s var(--ease-out) both;font-size:60px;font-weight:700;line-height:.92}@keyframes settle{0%{opacity:0;filter:blur(3px);transform:translateY(6px)}to{opacity:1;filter:none;transform:none}}.callsign-action{align-self:flex-start;margin-left:auto}.aircraft-type{color:var(--text-primary);margin-top:12px;font-size:18px;line-height:1.3}.operator-row{align-items:center;gap:8px;margin-top:4px;display:flex}.operator-logo{background:#fff;border-radius:5px;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.operator-name{color:var(--text-secondary);font-size:15px}.callsign-chips{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.callsign-seen{color:var(--text-secondary);font-size:13px}.classification-badge{color:var(--cls,var(--class-unknown));background:rgb(var(--cls-rgb,var(--unknown-rgb)) / .11);border-radius:999px;align-items:center;gap:6px;padding:6px 10px 6px 8px;font-size:13px;line-height:1;display:inline-flex}.classification-badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.classification-badge.commercial{--cls:var(--class-commercial);--cls-rgb:var(--accent-rgb)}.classification-badge.private{--cls:var(--class-private);--cls-rgb:var(--private-rgb)}.classification-badge.cargo{--cls:var(--class-cargo);--cls-rgb:var(--cargo-rgb)}.classification-badge.government,.classification-badge.military{--cls:var(--class-government);--cls-rgb:var(--gov-rgb)}.class-text--commercial{color:var(--class-commercial)}.class-text--private{color:var(--class-private)}.class-text--cargo{color:var(--class-cargo)}.class-text--government,.class-text--military{color:var(--class-government)}.class-text--unknown{color:var(--class-unknown)}.overhead-tier-chip{border-radius:999px;padding:6px 10px;font-size:13px;line-height:1}.overhead-tier-chip.tier--interesting{color:var(--class-cargo);background:rgb(var(--cargo-rgb) / .12)}.overhead-tier-chip.tier--rare{color:var(--magenta);background:var(--magenta-dim);animation:1.8s ease-in-out infinite rare-pulse}@keyframes rare-pulse{0%,to{box-shadow:0 0 0 0 rgb(var(--magenta-rgb) / .35)}50%{box-shadow:0 0 0 5px rgb(var(--magenta-rgb) / 0)}}.overhead-new-badge{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--magenta);border:2px solid var(--magenta);white-space:nowrap;border-radius:4px;padding:1px 7px 0;font-size:15px;font-weight:700;animation:.38s cubic-bezier(.2,.9,.3,1.35) both stamp-in;transform:rotate(-6deg)}.callsign-row .overhead-new-badge{padding:2px 9px 1px;font-size:20px}@keyframes stamp-in{0%{opacity:0;transform:rotate(-18deg)scale(2.2)}60%{opacity:1;transform:rotate(-4deg)scale(.94)}to{opacity:1;transform:rotate(-6deg)scale(1)}}.route-block{grid-template-columns:auto minmax(60px,1fr) auto;align-items:end;gap:10px;display:grid}.route-airport .iata{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-primary);font-size:36px;font-weight:600;line-height:1}.route-airport .city{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:5px;margin-top:4px;font-size:13px;display:flex}.route-airport--end{text-align:right}.route-airport--end .city{justify-content:flex-end}.route-airport .flag{font-size:13px}.route-connector{align-self:start;height:40px;margin-top:2px;position:relative}.route-arc{width:100%;height:100%;overflow:visible}.route-arc-path{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:3 4;opacity:.7}.route-arc-end{fill:var(--accent)}.route-plane{width:18px;height:18px;fill:var(--accent);position:absolute;top:-2px;left:50%;transform:translate(-50%)rotate(90deg)}.route-block--none{color:var(--text-secondary);font-size:14px;display:block}.telemetry-grid{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.t-cell{min-width:0;padding:14px 16px 15px}.t-cell+.t-cell{border-left:1px solid var(--border-subtle)}.t-label{color:var(--text-secondary);font-size:12px}.t-value{font-family:var(--font-display);color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:4px;margin-top:4px;font-size:32px;font-weight:600;line-height:1;display:flex}.t-unit{font-family:var(--font-body);color:var(--text-secondary);font-size:13px;font-weight:400}.t-note{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-size:12px;overflow:hidden}.heading-arrow{vertical-align:-1px;width:11px;height:11px;color:var(--accent);transition:transform .6s var(--ease-out);display:inline-block}.t-value .t-heading-arrow{align-self:center;width:16px;height:16px;margin-left:2px}.intel-card{border-top:1px solid var(--border-subtle);padding-top:16px}.intel-header{font-family:var(--font-display);color:var(--text-primary);margin-bottom:6px;font-size:18px;font-weight:600}.intel-row{justify-content:space-between;align-items:baseline;gap:16px;padding:8px 0;font-size:14px;display:flex}.intel-row+.intel-row{border-top:1px solid var(--border-subtle)}.intel-row .i-label{color:var(--text-secondary)}.intel-row .i-value{min-width:0;color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.intel-row .i-value--mono{font-family:var(--font-mono);font-size:13px}.flag-inline{font-size:14px;line-height:1}.sky-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:16px 16px 18px;display:flex}.sky-dome{width:100%;max-width:260px;height:auto;display:block;overflow:visible}.sky-dome-sky{transition:fill 2s}.sky-dome-horizon{stroke:var(--border);stroke-width:1px}.sky-dome-ticks line{stroke:var(--text-dim);stroke-width:1px}.sky-dome-cardinal{font-family:var(--font-display);fill:var(--text-secondary);font-size:13px;font-weight:600}.sky-dome-cardinal--n{fill:var(--magenta)}.sky-dome-stars circle{fill:#fff;animation:3.2s ease-in-out infinite twinkle}@keyframes twinkle{0%,to{opacity:.85}50%{opacity:.35}}.sky-blip{cursor:pointer;outline:none}.sky-blip-glyph{fill:#ffffffd9;stroke:#0814288c;stroke-width:.8px;transition:fill .2s}.sky-dome--night .sky-blip-glyph{fill:#ffffffb3;stroke:none}.sky-blip--active .sky-blip-glyph{fill:#fff;stroke:var(--magenta);stroke-width:1.2px}.sky-blip-ring{fill:rgb(var(--magenta-rgb) / .18);stroke:var(--magenta);stroke-width:1.5px;animation:blip-ring 2.4s var(--ease-out) infinite;transform-box:fill-box;transform-origin:50%}@keyframes blip-ring{0%{opacity:1;transform:scale(.75)}70%{opacity:.35;transform:scale(1.25)}to{opacity:0;transform:scale(1.3)}}.sky-blip:focus-visible .sky-blip-glyph{stroke:var(--accent);stroke-width:2px}.sky-blip--new>circle:first-child{stroke:var(--magenta);stroke-width:1.5px;animation:catch-ripple 1.4s var(--ease-out) 1 both;transform-box:fill-box;transform-origin:50%}@keyframes catch-ripple{0%{opacity:1;transform:scale(.2)}to{opacity:0;transform:scale(2.4)}}.sky-dome-waves circle{stroke-width:1.2px;transform-origin:120px 120px;opacity:0;animation:3.6s cubic-bezier(.2,.5,.6,1) infinite listening-wave}.sky-dome-waves circle:nth-child(2){animation-delay:1.2s}.sky-dome-waves circle:nth-child(3){animation-delay:2.4s}@keyframes listening-wave{0%{opacity:0;transform:scale(.04)}10%{opacity:.8}to{opacity:0;transform:scale(1)}}.sky-card-text{text-align:center}.sky-look{font-family:var(--font-display);color:var(--text-primary);font-size:24px;font-weight:600;line-height:1.1}.sky-hint{color:var(--text-dim);max-width:30ch;margin-top:6px;font-size:12px;line-height:1.45}.overhead-nearby-card{flex-direction:column;display:flex}.overhead-nearby-header{justify-content:space-between;align-items:baseline;padding:0 2px 10px;display:flex}.overhead-nearby-header h2{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:600}.overhead-nearby-count{font-family:var(--font-display);color:var(--text-dim);font-size:20px;font-weight:600}.overhead-nearby-list{flex-direction:column;gap:8px;display:flex}.overhead-nearby-row{--strip:var(--class-unknown);border:1px solid var(--border-subtle);background:var(--bg-card);box-shadow:inset 4px 0 0 var(--strip);color:var(--text-primary);text-align:left;cursor:pointer;font:inherit;transition:background .16s ease, border-color .16s ease, transform .16s var(--ease-out);animation:strip-in .32s var(--ease-out) both;border-radius:10px;flex-direction:column;gap:3px;padding:11px 14px 12px 16px;display:flex}.overhead-nearby-row:active{transform:scale(.985)}.overhead-nearby-row:hover{background:var(--bg-elevated)}.overhead-nearby-row.active{background:var(--bg-elevated);border-color:var(--border-active);box-shadow:inset 4px 0 0 var(--strip), var(--card-shadow)}@keyframes strip-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}.overhead-nearby-row.strip--commercial{--strip:var(--class-commercial)}.overhead-nearby-row.strip--private{--strip:var(--class-private)}.overhead-nearby-row.strip--cargo{--strip:var(--class-cargo)}.overhead-nearby-row.strip--government,.overhead-nearby-row.strip--military{--strip:var(--class-military)}.overhead-nearby-head{align-items:center;gap:8px;display:flex}.overhead-nearby-callsign{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-primary);font-size:19px;font-weight:600}.overhead-nearby-head .overhead-new-badge{border-width:1.5px;padding:0 5px;font-size:12px}.overhead-nearby-head .overhead-tier-chip{padding:4px 7px;font-size:11px}.overhead-nearby-class{margin-left:auto;font-size:12px}.overhead-nearby-sub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.overhead-seen-count{color:var(--text-dim)}.overhead-nearby-stats{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.overhead-nearby-heading{align-items:center;gap:4px;display:inline-flex}.overhead-session-note,.overhead-ephemeral-note{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;gap:4px 10px;margin-top:12px;padding:0 2px;font-size:13px;display:flex}.overhead-fallback-note{color:var(--text-dim)}.overhead-expanded-note,.overhead-stale-note{color:var(--text-secondary);background:rgb(var(--accent-rgb) / .07);border-radius:10px;margin:0 0 10px;padding:9px 12px;font-size:13px;line-height:1.4}.overhead-stale-note{color:var(--warn);background:rgb(var(--cargo-rgb) / .1)}.listening-state{gap:10px}.sky-dome.listening-dome{width:min(68vw,280px);max-width:280px;margin-bottom:8px}@media (width<=1180px) and (width>=901px){.flight-screen{grid-template-columns:minmax(280px,320px) minmax(0,1fr);overflow-y:auto}.col-right{flex-direction:row;grid-column:1/-1;overflow:visible}.col-right>*{flex:1}.col-center{min-height:520px}}@media (width<=900px){.flight-screen{flex-direction:column;gap:20px;height:auto;padding:12px 16px 32px;display:flex;overflow:visible}.col-left,.col-center,.col-right{display:contents}.aircraft-photo-wrap{aspect-ratio:16/10;border-radius:14px;flex:none;order:1;height:auto}.catch-id{order:2}.route-block{order:3}.telemetry-grid{order:4}.sky-card{order:5}.overhead-nearby-card{order:6}.intel-card{order:7}.callsign{font-size:48px}.aircraft-type{font-size:17px}.telemetry-grid{grid-template-columns:1fr 1fr}.t-cell:nth-child(3){border-left:none}.t-cell:nth-child(n+3){border-top:1px solid var(--border-subtle)}.t-value{font-size:28px}.sky-card{flex-direction:row;align-items:center;gap:16px;padding:12px 16px 12px 10px}.sky-card .sky-dome{flex-shrink:0;width:46%;max-width:190px}.sky-card-text{text-align:left}.sky-look{font-size:22px}}::view-transition-old(root){animation-duration:.2s}::view-transition-new(root){animation-duration:.2s}html[data-transition=screen]::view-transition-old(root){animation:.14s both vt-fade-out}html[data-transition=screen]::view-transition-new(root){animation:vt-rise-in .3s var(--ease-out) both}html[data-transition=aircraft]::view-transition-old(hero-photo){animation-duration:.32s}html[data-transition=aircraft]::view-transition-new(hero-photo){animation-duration:.32s}html[data-transition=aircraft]::view-transition-new(catch-id){animation:vt-rise-in .34s var(--ease-out) both}html[data-transition=aircraft]::view-transition-old(catch-id){animation:.12s both vt-fade-out}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-rise-in{0%{opacity:0;transform:translateY(10px)}}.screen-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.screen-title{font-family:var(--font-display);letter-spacing:.005em;color:var(--text-primary);font-size:40px;font-weight:700;line-height:1}.screen-lede{max-width:60ch;color:var(--text-secondary);margin-top:8px;font-size:15px;line-height:1.5}@media (width<=900px){.screen-title{font-size:34px}.screen-lede{font-size:14px}.top-bar-wrap{z-index:100;position:sticky;top:0}}.log-screen{flex-direction:column;height:100%;display:flex;overflow:hidden}.log-header{flex-shrink:0;padding:28px 28px 16px}.log-header-right{align-items:center;gap:8px;display:flex}.log-limit-label{color:var(--text-secondary);font-size:13px}.log-limit-select,.log-date-input{color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:10px;outline:none;min-height:38px;padding:0 12px;font-size:14px}.log-limit-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='1,1 5,5 9,1' fill='none' stroke='%237f8c96' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:10px;padding-right:30px}.log-limit-select:focus-visible,.log-date-input:focus-visible{border-color:var(--accent)}.log-filter-bar{border-bottom:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;gap:12px;padding:0 28px 14px;display:flex}.log-filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.log-filter-search{flex-wrap:nowrap}.log-search-wrap{flex:1;max-width:460px;position:relative}.log-search-icon{width:16px;height:16px;color:var(--text-dim);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.log-search{width:100%;min-height:42px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;outline:none;padding:0 14px 0 38px;font-size:15px;transition:border-color .15s,box-shadow .15s}.log-search::placeholder{color:var(--text-dim)}.log-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .12)}.log-filter-toggle{display:none}.log-filter-panel{flex-direction:column;gap:12px;display:flex}.log-date-filter{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.log-preset-group{background:rgb(var(--ink-rgb) / .06);border-radius:11px;padding:3px;display:inline-flex}.log-preset-btn{min-height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:13px}.log-preset-btn:hover{color:var(--text-primary)}.log-preset-btn.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .2)}.log-date-divider{display:none}.log-date-inputs{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.log-date-field{flex-direction:column;gap:4px;display:flex}.log-date-field-label{color:var(--text-secondary);font-size:12px}.log-date-arrow{color:var(--text-dim);align-self:center;margin-top:18px}.log-date-apply,.log-date-clear{border:1px solid var(--border);min-height:38px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:10px;padding:0 14px;font-size:14px}.log-date-apply.ready{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.log-date-clear:hover{color:var(--class-government);border-color:currentColor}.log-filter-pills{flex-wrap:wrap;gap:6px;display:flex}.log-pill{border:1px solid var(--border);min-height:34px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:13px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.log-pill:hover{color:var(--text-primary);border-color:var(--text-dim)}.log-pill.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary)}.log-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.log-dot.commercial{background:var(--class-commercial)}.log-dot.private{background:var(--class-private)}.log-dot.cargo{background:var(--class-cargo)}.log-dot.government,.log-dot.military{background:var(--class-government)}.log-dot.unknown{background:var(--class-unknown)}.log-filter-count{color:var(--text-dim);font-size:13px}.log-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;padding:0 28px 28px;overflow-y:auto}.log-list-header,.log-row-main{grid-template-columns:130px minmax(0,1fr) 130px 100px 120px 64px 32px;align-items:center;column-gap:12px;display:grid}.log-list-header{padding:14px 16px 6px 20px}.log-col-label{color:var(--text-dim);font-size:12px}.log-col-right{text-align:right}.log-day{margin-top:10px}.log-day-label{z-index:4;font-family:var(--font-display);color:var(--text-primary);background:linear-gradient(var(--bg-primary) 75%, transparent);align-items:baseline;gap:8px;padding:10px 2px 8px;font-size:18px;font-weight:600;display:flex;position:sticky;top:0}.log-day-count{font-family:var(--font-body);color:var(--text-dim);font-size:13px;font-weight:400}.log-row{--strip:var(--class-unknown);border:1px solid var(--border-subtle);background:var(--bg-card);box-shadow:inset 4px 0 0 var(--strip);border-radius:12px;margin-bottom:6px;transition:border-color .15s,box-shadow .2s;overflow:hidden}.log-row.strip--commercial{--strip:var(--class-commercial)}.log-row.strip--private{--strip:var(--class-private)}.log-row.strip--cargo{--strip:var(--class-cargo)}.log-row.strip--government,.log-row.strip--military{--strip:var(--class-military)}.log-row:hover{border-color:var(--border)}.log-row.expanded{border-color:var(--border);box-shadow:inset 4px 0 0 var(--strip), var(--card-shadow)}.log-row-main{cursor:pointer;text-align:left;width:100%;min-height:56px;color:inherit;background:0 0;border:none;padding:10px 16px 10px 20px;font-size:14px}.log-callsign{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;overflow:hidden}.log-type{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex-direction:column;display:flex;overflow:hidden}.log-operator{color:var(--text-secondary);text-overflow:ellipsis;font-size:13px;overflow:hidden}.log-route{font-family:var(--font-display);letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap;font-size:16px;font-weight:500}.log-time{color:var(--text-secondary);white-space:nowrap;font-size:13px}.log-rarity-col{min-width:0;display:flex}.log-seen{justify-content:flex-end;display:flex}.log-seen-badge{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-secondary);background:rgb(var(--ink-rgb) / .06);border-radius:999px;align-items:center;gap:3px;padding:4px 8px;font-size:12px;line-height:1;display:inline-flex}.log-seen-flame{font-size:10px;line-height:1}.log-seen-badge.seen-tier-familiar{color:var(--class-cargo);background:rgb(var(--cargo-rgb) / .1)}.log-seen-badge.seen-tier-regular{color:var(--text-primary);background:rgb(var(--slate-rgb) / .14)}.log-seen-badge.seen-tier-frequent{color:var(--warn);background:rgb(var(--cargo-rgb) / .16)}.log-seen-badge.seen-tier-signature{color:var(--magenta);background:var(--magenta-dim)}.log-chevron-col{justify-content:center;align-items:center;display:flex}.log-chevron{width:12px;height:12px;color:var(--text-dim);transition:transform .25s var(--ease-out), color .15s}.log-chevron.open{color:var(--accent);transform:rotate(180deg)}.log-detail{animation:row-expand .25s var(--ease-out) both}.log-empty{max-width:44ch;color:var(--text-secondary);padding:48px 8px;font-size:15px;line-height:1.5}.log-empty.log-error{color:var(--class-government)}@media (width<=900px){.log-screen{height:auto;overflow:visible}.log-header{align-items:flex-start;padding:20px 16px 14px}.log-header .screen-lede{display:none}.log-filter-bar{padding:0 16px 12px}.log-search-wrap{max-width:none}.log-filter-toggle{border:1px solid var(--border);background:var(--bg-card);min-height:42px;color:var(--text-primary);cursor:pointer;border-radius:12px;flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.log-filter-toggle[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.log-filter-badge{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);text-align:center;border-radius:999px;padding:0 5px;font-size:11px;line-height:18px}.log-filter-panel{display:none}.log-filter-bar.open .log-filter-panel{animation:row-expand .22s var(--ease-out) both;display:flex}.log-date-inputs{width:100%}.log-date-field{flex:140px;min-width:0}.log-date-input{width:100%}.log-date-arrow{display:none}.log-filter-pills{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:0 16px 2px;overflow-x:auto}.log-filter-pills::-webkit-scrollbar{display:none}.log-list{padding:0 16px 24px;overflow:visible}.log-list-header{display:none}.log-day-label{top:calc(52px + env(safe-area-inset-top))}.log-row-main{grid-template-columns:auto minmax(0,1fr) auto 18px;grid-template-areas:"call rar time chev""type type route chev";row-gap:4px;padding:11px 12px 12px 18px}.log-callsign{grid-area:call;font-size:21px}.log-rarity-col{grid-area:rar}.log-time{text-align:right;grid-area:time}.log-type{color:var(--text-secondary);flex-direction:row;grid-area:type;gap:6px;font-size:13px}.log-operator{display:none}.log-route{text-align:right;grid-area:route;font-size:14px}.log-seen{display:none}.log-chevron-col{grid-area:chev}}.catch-toast{top:calc(64px + env(safe-area-inset-top));z-index:120;border:1px solid var(--border-subtle);background:var(--bg-elevated);max-width:min(420px,100vw - 24px);box-shadow:var(--card-shadow-elevated);color:var(--text-primary);text-align:left;cursor:pointer;animation:toast-drop .52s var(--ease-spring) both, toast-lift .3s ease 4.7s forwards;border-radius:999px;align-items:center;gap:12px;padding:10px 18px 10px 10px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@keyframes toast-drop{0%{opacity:0;transform:translate(-50%,-24px)scale(.96)}}@keyframes toast-lift{to{opacity:0;transform:translate(-50%,-12px)}}.catch-toast-mark{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:999px;flex-shrink:0;padding:6px 10px 5px;font-size:14px;font-weight:700}.catch-toast--new .catch-toast-mark,.catch-toast--rare .catch-toast-mark{background:var(--magenta)}.catch-toast-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.catch-toast-text strong{font-family:var(--font-display);font-size:19px;font-weight:600}.catch-toast-text span{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}
