:root{--bg:#0e151d;--text:#e6edf4;--muted:#9aa8b6;--dim:#7d8b98;--accent:#e8a23a;--accent-deep:#c9841e;--accent-text:#f0c56e;--accent-glow:#e8a23a29;--magenta:#c86dd4;--red:#e05a5a;--green:#3dba7a;--glass:#121c28c7;--glass-strong:#182432eb;--glass-border:#e6edf414;--glass-blur:blur(22px) saturate(140%);--glass-shadow:0 1px 2px #00000059, 0 16px 36px -14px #0000008c;--line:#e6edf414;--glass-fill:#ffffff0d;--glass-well:#00000047;--lift:0 8px 20px -10px #0000008c, inset 0 1px 0 #ffffff0f;--lift-sm:0 4px 12px -6px #00000080, inset 0 1px 0 #ffffff0d;--inset:inset 0 1px 2px #00000073;--radius-lg:22px;--radius:16px;--radius-sm:11px;--mono:"SFMono-Regular", ui-monospace, Consolas, "Liberation Mono", monospace;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(900px 420px at 85% -8%, #e8a23a17, transparent 55%), var(--bg);min-height:100vh;color:var(--text);font:14px/1.45 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1{letter-spacing:-.03em;margin:0;font-size:34px;font-weight:700}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.topline,.header,.sidebar,.load-panel,.flight-main,.flight-date,.card,.error-banner,.flight-loader,.skeleton-card{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow), inset 0 1px 0 #ffffff0f}.stat,.btn,.chip-btn,.copy-btn,.plane{background:var(--glass-fill);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--lift)}.id-input,.route-string,.fuel-track,.pilot-chip{background:var(--glass-well);border:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--inset)}.shell{max-width:1480px;min-height:100vh;margin:auto;padding:14px 22px 32px}.topline{height:38px;color:var(--muted);font:11px var(--sans);letter-spacing:.03em;border-radius:999px;justify-content:space-between;align-items:center;padding:0 18px;display:flex}.topline-left,.topline-right{align-items:center;gap:18px;display:flex}.live-dot{background:#2fb377;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 3px #2fb3772e}.live-dot.is-offline{background:var(--red);box-shadow:0 0 0 3px #b832322e}.utc{color:var(--accent-text)}.header{border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:18px;margin-top:12px;padding:18px 24px;display:flex}.brand{min-width:0}.brand-title{letter-spacing:.14em;font-size:15px;font-weight:750}.brand-sub{color:var(--muted);letter-spacing:.14em;margin-top:3px;font-size:10px}.header-right{align-items:center;gap:22px;min-width:0;display:flex}.header-meta{color:var(--muted);font:11px/1.8 var(--sans);text-align:right}.header-meta strong{color:var(--text);font-weight:600}.pilot-chip{font:11px var(--sans);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 14px;display:flex}.pilot-chip-label{color:var(--dim);letter-spacing:.12em;font-size:10px}.pilot-chip strong{color:var(--accent-text);letter-spacing:.02em;font-size:13px;font-weight:700}.chip-btn{color:var(--text);font:600 11px var(--sans);border-radius:999px;padding:6px 13px}.layout{grid-template-columns:210px minmax(0,1fr);gap:24px;padding-top:20px;display:grid}main{min-width:0}.sidebar{background:radial-gradient(140% 60% at 0% 100%, var(--accent-glow), transparent 70%), var(--glass);border-radius:var(--radius-lg);align-self:start;padding:16px 12px;position:sticky;top:14px}.side-label{color:var(--dim);letter-spacing:.15em;margin:2px 0 12px 10px;font-size:10px;font-weight:700}.nav{flex-direction:column;gap:8px;display:flex}.nav button{border-radius:var(--radius-sm);width:100%;color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:12px 13px;font-size:15px;font-weight:500;transition:box-shadow .2s,color .2s,background .2s;display:flex}.nav button:hover{background:var(--glass-well);color:var(--text)}.nav button.active{color:var(--accent-text);background:#e8a23a1f;border-color:#e8a23a52;font-weight:600}.nav-icon{width:18px;height:18px;color:var(--dim);flex:none;display:inline-flex}.nav-icon svg{width:100%;height:100%}.nav button.active .nav-icon{color:var(--accent-text)}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin:6px 0 20px;display:flex}.load-panel{border-radius:var(--radius);justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px;padding:20px 22px;display:flex}.form-copy{min-width:0}.form-title{margin-bottom:5px;font-size:13px;font-weight:700}.form-hint{color:var(--muted);margin-top:6px;font-size:11px}.form-error{color:var(--red);margin-top:7px;font-size:11px}.form-row{align-items:center;gap:10px;display:flex}.id-input{border-radius:var(--radius-sm);width:210px;max-width:100%;color:var(--text);font:13px var(--sans);padding:11px 14px}.id-input::placeholder{color:var(--dim)}.toast{min-height:15px;margin-top:9px;font-size:11px}.toast.is-error{color:var(--red)}.btn{border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;padding:10px 16px;font-size:12px;font-weight:700;transition:box-shadow .15s,transform .15s}.btn:hover:not(:disabled),.chip-btn:hover:not(:disabled),.copy-btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled),.chip-btn:active:not(:disabled),.copy-btn:active:not(:disabled){box-shadow:var(--inset);transform:none}.btn-primary{background:linear-gradient(145deg, var(--accent), var(--accent-deep));color:#1c1305;border-color:#ffffff1f;box-shadow:0 10px 26px -10px #e8a23a8c,0 0 0 1px #e8a23a2e,inset 0 1px #ffffff38}.btn-quiet{color:var(--muted)}.btn-quiet:disabled,.copy-btn:disabled{cursor:not-allowed;opacity:.45}.form-row .btn-quiet{padding:10px 13px}.error-banner{border-radius:var(--radius);color:#f2c7c7;background:#e05a5a1f;border-color:#e05a5a59;margin:0 0 18px;padding:13px 16px;font-size:12px}.error-banner strong{margin-right:6px;font-weight:700}.error-banner button{color:var(--red);background:0 0;border:0;margin-left:10px;font-weight:600;text-decoration:underline}.flight-loader{border-radius:var(--radius-lg);flex-direction:column;align-items:center;margin-bottom:20px;padding:18px 20px 22px;display:flex}.flight-loader-animation{width:140px;height:140px}.flight-loader-animation path{fill:var(--accent)}.flight-loader p{color:var(--muted);font:12px var(--sans);letter-spacing:.02em;margin:4px 0 0}.crash-panel{border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass);max-width:480px;box-shadow:var(--glass-shadow);text-align:center;margin:18vh auto 0;padding:32px}.crash-panel h1{font-size:24px}.crash-panel p{color:var(--muted);margin:10px 0 22px}.skeleton-strip{grid-template-columns:minmax(0,1fr) 170px;gap:16px;margin-bottom:18px;display:grid}.skeleton-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.skeleton-card{border-radius:var(--radius-lg);padding:22px}.skeleton-card--hero{min-height:230px}.skeleton-row{justify-content:space-between;margin-top:44px;display:flex}.skeleton{background:linear-gradient(90deg,#e6edf40d 25%,#e6edf41f 45%,#e6edf40d 65%) 0 0/250% 100%;border-radius:6px;width:70%;height:12px;margin-bottom:14px;animation:1.2s infinite shimmer}.skeleton--short{width:40%}.skeleton--title{width:30%;height:24px}.skeleton--code{width:22%;height:38px;margin:0}.skeleton--value{width:55%;height:26px;margin:12px 0 0}@keyframes shimmer{to{background-position:-250% 0}}.flight-strip{grid-template-columns:minmax(0,1fr) 170px;align-items:stretch;gap:16px;margin-bottom:18px;display:grid}.flight-main{border-radius:var(--radius-lg);min-width:0;padding:24px;position:relative;overflow:hidden}.flight-main:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#e8a23a29,#0000);width:70%;height:160%;position:absolute;inset:-50% -20% auto auto}.flight-top{justify-content:space-between;align-items:center;gap:15px;display:flex;position:relative}.callsign{font:700 26px var(--sans);letter-spacing:-.03em}.aircraft-line{color:var(--muted);margin-top:5px;font-size:12px}.status-badge{color:var(--green);font:600 10px var(--sans);text-transform:uppercase;white-space:nowrap;background:#3dba7a1f;border:1px solid #3dba7a47;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;display:inline-flex}.status-badge.is-idle{border-color:var(--line);color:var(--muted);background:#e6edf40a}.status-badge:before{content:"";background:#2fb377;border-radius:50%;width:6px;height:6px}.status-badge.is-idle:before{background:var(--dim)}.airports{grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);align-items:center;gap:12px;margin-top:28px;display:grid;position:relative}.airport:last-child{text-align:right}.icao{font:800 clamp(28px, 3.5vw, 42px) var(--sans);letter-spacing:-.035em}.airport-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;overflow:hidden}.airport-time{color:var(--accent-text);font:600 12px var(--sans);margin-top:12px}.route-line{background:linear-gradient(90deg, #e8a23a59, var(--accent), var(--accent-deep));border-radius:2px;height:2px;position:relative}.route-line:before,.route-line:after{content:"";border:2px solid #0e151d;border-radius:50%;width:10px;height:10px;position:absolute;top:-4px}.route-line:before{background:var(--accent);left:-2px}.route-line:after{background:var(--accent-deep);right:-2px}.plane{color:var(--accent-text);border-radius:999px;padding:2px 7px;font-size:16px;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.flight-date{border-radius:var(--radius-lg);flex-direction:column;justify-content:space-between;padding:20px;display:flex}.small-label{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:700}.date-value{font:600 13px var(--sans);margin-top:6px}.date-sep{background:var(--line);height:1px;margin:14px 0}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid}.stat{border-radius:var(--radius);min-width:0;padding:18px}.stat-label{color:var(--muted);font-size:11px;font-weight:500}.stat-value{font:700 24px var(--sans);letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;margin-top:9px;overflow:hidden}.stat-note{color:var(--dim);margin-top:5px;font-size:10px}.section-head{justify-content:space-between;align-items:center;gap:15px;margin:24px 0 12px;display:flex}.section-head h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.section-head span{color:var(--dim);font:10px var(--sans)}.content-grid{grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:16px;display:grid}.margin-top{margin-top:16px}.card{border-radius:var(--radius-lg);min-width:0;overflow:hidden}.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;display:flex}.card-head h3{margin:0;font-size:14px;font-weight:650}.card-head span{color:var(--dim);font:10px var(--sans)}.card-body{padding:18px 20px}.empty{color:var(--muted);padding:22px 15px;font-size:12px}.data-list{margin:0}.data-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px;padding:10px 0;font-size:12px;display:grid}.data-row:first-child{padding-top:0}.data-row:last-child{border-bottom:0;padding-bottom:0}.data-row dt{color:var(--muted)}.data-row dd{color:var(--text);font:600 12px var(--sans);text-align:right;overflow-wrap:anywhere;margin:0}.route-string{border-radius:var(--radius-sm);min-height:72px;color:var(--text);font:13px/1.8 var(--mono);overflow-wrap:anywhere;padding:14px 16px}.copy-row{justify-content:flex-end;margin-top:12px;display:flex}.copy-btn{border-radius:var(--radius-sm);color:var(--accent-text);padding:8px 14px;font-size:11px;font-weight:600}.route-figure{margin:0}.route-map{border-radius:var(--radius);height:min(62vh,560px);min-height:300px;box-shadow:var(--inset);overflow:hidden}.map-legend{color:var(--muted);font:10px var(--sans);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:6px 18px;margin-top:12px;display:flex}.map-legend span{align-items:center;gap:8px;display:inline-flex}.map-legend i{border-top:3px solid;border-radius:2px;width:22px;display:inline-block}.route-map.leaflet-container{font:inherit;background:#1a222c}.route-map .leaflet-bar{border-radius:var(--radius-sm);box-shadow:var(--lift-sm);border:0;overflow:hidden}.route-map .leaflet-bar a{background:var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-color:var(--line);color:var(--text)}.route-map .leaflet-bar a:hover{background:#2a3644}.route-map .leaflet-control-attribution{background:var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--muted);border-top-left-radius:8px}.route-map .leaflet-control-attribution a{color:var(--muted)}.leaflet-tooltip.efb-tooltip{border:1px solid var(--glass-border);background:var(--glass-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);color:var(--text);font:11px var(--sans);border-radius:9px}.leaflet-tooltip.efb-tooltip:before{display:none}.leaflet-tooltip.efb-tooltip--airport{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;text-shadow:0 0 3px #0e151d,0 0 8px #0e151d,0 0 14px #0e151d;background:0 0;border:0;padding:0;font-size:12px;font-weight:700}.leaflet-tooltip.efb-tooltip--airport.leaflet-tooltip-right{margin-left:12px}.leaflet-tooltip.efb-tooltip--airport.leaflet-tooltip-left{margin-left:-12px}.fuel-item{margin:0 0 18px}.fuel-item:last-child{margin-bottom:0}.fuel-top{justify-content:space-between;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.fuel-top span{color:var(--muted)}.fuel-top strong{font:600 12px var(--sans)}.fuel-track{border-radius:999px;height:10px;padding:2px}.fuel-fill{background:linear-gradient(90deg, var(--accent-deep), var(--accent));border-radius:999px;height:100%;transition:width .3s;box-shadow:0 2px 8px -1px #f08a1c8c}.fuel-fill.amber{box-shadow:none;background:linear-gradient(90deg,#6b7a8a,#9aa8b6)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:12px}th{border-bottom:1px solid var(--line);color:var(--dim);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:12px 20px;font-size:10px;font-weight:700}td{border-bottom:1px solid var(--line);font:600 12px var(--sans);padding:12px 20px}td:first-child{color:var(--muted);font:500 12px var(--sans)}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#ffffff0a}@media (width<=900px){.shell{padding:12px 15px 24px}.layout{grid-template-columns:1fr;gap:16px}.sidebar{padding:8px;position:static;overflow-x:auto}.side-label{display:none}.nav{flex-direction:row;min-width:max-content}.nav button{width:auto;padding:10px 14px}.flight-strip,.skeleton-strip{grid-template-columns:minmax(0,1fr) 150px}}@media (width<=600px){.shell{padding:10px 10px 20px}.topline{padding:0 14px;font-size:9px}.topline-left,.topline-right{gap:9px}.topline-right span:first-child{display:none}.header{flex-wrap:wrap;row-gap:12px;padding:16px}.brand-title{font-size:13px}.header-right{flex-direction:column;align-items:stretch;gap:10px;width:100%}.header-meta{text-align:left;font-size:9px}.pilot-chip{gap:7px;padding:4px 4px 4px 10px}.pilot-chip strong{margin-right:auto;font-size:12px}.chip-btn{padding:5px 10px;font-size:10px}.page-heading h1{font-size:22px}.load-panel{flex-direction:column;align-items:stretch;gap:12px}.form-row{flex-wrap:wrap;width:100%}.id-input{flex:1;width:100%;min-width:0}.form-row .btn-quiet{flex:1}.flight-strip,.skeleton-strip{grid-template-columns:1fr}.skeleton-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.flight-date{grid-template-columns:1fr 1fr;gap:10px;display:grid}.date-sep{display:none}.airports{grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);gap:7px;margin-top:20px}.icao{font-size:25px}.airport-name,.airport-time{font-size:10px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat{padding:14px}.stat-value{font-size:18px}.content-grid{grid-template-columns:1fr}.route-map{height:340px}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.topline,.header,.sidebar,.load-panel,.flight-main,.flight-date,.card,.flight-loader,.skeleton-card{background:#161e28}}@media (prefers-reduced-transparency:reduce){.topline,.header,.sidebar,.load-panel,.flight-main,.flight-date,.card,.flight-loader,.skeleton-card,.leaflet-tooltip.efb-tooltip{-webkit-backdrop-filter:none;backdrop-filter:none;background:#161e28}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
