:root{--ink-900: #03060c;--ink-850: #050a14;--ink-800: #071019;--ink-700: #0c1a27;--ink-600: #122736;--glass: rgba(9, 20, 32, .72);--glass-strong: rgba(7, 16, 26, .9);--glass-light: rgba(18, 39, 54, .55);--line: rgba(120, 190, 230, .14);--line-strong: rgba(120, 190, 230, .28);--text: #dceaf5;--text-dim: #8ba6ba;--text-faint: #5c7386;--jet: #35d0f5;--jet-warm: #7ff0d2;--hot: #ffc86b;--hot-strong: #ff9350;--danger: #ff5f8f;--safe: #5ee7c4;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow: 0 18px 48px -18px rgba(0, 0, 0, .85), 0 2px 10px -4px rgba(0, 0, 0, .6);--shadow-glow: 0 0 0 1px rgba(70, 200, 240, .09), 0 22px 60px -24px rgba(0, 0, 0, .9);--font-ui: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--ink-900);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;overscroll-behavior:none}::selection{background:#35d0f54d;color:#fff}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#78bee633;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#78bee659}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.tnum{font-variant-numeric:tabular-nums}.caps{text-transform:uppercase;letter-spacing:.13em;font-size:9.5px;font-weight:600;color:var(--text-faint)}.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.glass-strong{background:var(--glass-strong);backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-glow)}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--jet);outline-offset:2px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:#0c1a2799;color:var(--text-dim);font-size:11.5px;font-weight:500;transition:all .16s ease;white-space:nowrap}.chip:hover{border-color:var(--line-strong);color:var(--text);background:#142c3eb3}.chip[data-active=true]{border-color:#35d0f580;background:#1850688c;color:#bdf0ff;box-shadow:0 0 16px -4px #35d0f573,inset 0 0 12px -8px #35d0f599}.chip[data-active=true][data-tone=warm]{border-color:#ffc86b80;background:#5a3e1480;color:#ffe1ab;box-shadow:0 0 16px -4px #ffc86b66}.hr{height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent);margin:12px 0}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes flow-dash{to{stroke-dashoffset:-120}}.app{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(1200px 700px at 72% 18%,rgba(20,70,100,.22),transparent 62%),radial-gradient(900px 600px at 12% 88%,rgba(10,40,80,.28),transparent 60%),var(--ink-900)}.globe-host{position:absolute;inset:0;z-index:0}.globe-host:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 100% at 50% 45%,transparent 42%,rgba(3,6,12,.35) 78%,rgba(3,6,12,.72) 100%);z-index:1}.ui-layer{position:absolute;inset:0;z-index:10;pointer-events:none}.ui-layer>*{pointer-events:auto}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px;gap:24px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#35d0f53d,#143c6480);border:1px solid rgba(53,208,245,.35);display:grid;place-items:center;box-shadow:0 0 24px -8px #35d0f5b3,inset 0 1px #ffffff1f;flex-shrink:0}.brand-text h1{margin:0;font-size:16.5px;font-weight:650;letter-spacing:-.015em;line-height:1.2;background:linear-gradient(100deg,#fff,#9fd8ee 55%,#6fe0c8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.brand-text p{margin:2px 0 0;font-size:10.5px;color:var(--text-faint);letter-spacing:.06em;font-weight:500}.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:var(--glass);backdrop-filter:blur(16px);border:1px solid var(--line);font-size:10.5px;color:var(--text-dim);font-weight:500;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--safe);box-shadow:0 0 8px var(--safe);animation:pulse-soft 2.6s ease-in-out infinite}.status-dot[data-tone=warn]{background:var(--hot);box-shadow:0 0 8px var(--hot)}.status-dot[data-tone=busy]{background:var(--jet);box-shadow:0 0 8px var(--jet)}.panel-left{position:absolute;top:82px;left:22px;width:316px;max-height:calc(100vh - 452px);min-height:200px;display:flex;flex-direction:column;overflow:hidden}.panel-head{padding:13px 16px 11px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.panel-body{padding:14px 16px;overflow-y:auto;overscroll-behavior:contain}.panel-section+.panel-section{margin-top:16px;padding-top:14px;border-top:1px solid rgba(120,190,230,.09)}.section-label{display:flex;align-items:center;gap:7px;margin-bottom:9px}.section-label:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent)}.airport-picker{display:flex;flex-direction:column;gap:7px}.airport-field{position:relative;display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:#08121cb3;transition:border-color .16s,background .16s;cursor:text}.airport-field:hover,.airport-field:focus-within{border-color:#35d0f566;background:#0e1e2ccc}.airport-badge{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-family:var(--font-mono);font-size:10px;font-weight:700;flex-shrink:0;letter-spacing:.02em}.airport-badge[data-role=from]{background:#5ee7c424;color:var(--safe);border:1px solid rgba(94,231,196,.3)}.airport-badge[data-role=to]{background:#ff9f6b24;color:#ffb083;border:1px solid rgba(255,159,107,.3)}.airport-field input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text);font-family:var(--font-mono);font-size:12.5px;font-weight:600;letter-spacing:.01em}.airport-field input::placeholder{color:var(--text-faint);font-family:var(--font-ui);font-weight:400;font-size:12px}.airport-meta{font-size:10px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;text-align:right;flex-shrink:0}.airport-suggest{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:40;background:var(--glass-strong);backdrop-filter:blur(24px);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);max-height:264px;overflow-y:auto;padding:4px}.airport-option{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border-radius:7px;text-align:left;transition:background .12s}.airport-option:hover,.airport-option[data-active=true]{background:#35d0f51f}.airport-option .code{font-family:var(--font-mono);font-size:11.5px;font-weight:700;color:var(--jet);width:34px;flex-shrink:0}.airport-option .name{flex:1;min-width:0;font-size:11.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.airport-option .sub{font-size:9.5px;color:var(--text-faint);white-space:nowrap}.swap-btn{align-self:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:#0c1a27cc;display:grid;place-items:center;color:var(--text-dim);transition:all .18s;margin:-2px 0}.swap-btn:hover{color:var(--jet);border-color:#35d0f573;transform:rotate(180deg)}.slider-row{margin-bottom:13px}.slider-row:last-child{margin-bottom:0}.slider-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;gap:8px}.slider-name{font-size:11px;color:var(--text-dim);font-weight:500}.slider-value{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}.slider-value small{font-size:9.5px;color:var(--text-faint);font-weight:400;margin-left:2px}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:3px;background:#78bee624;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;border-radius:50%;background:linear-gradient(160deg,#fff,#8fe4ff);border:1px solid rgba(53,208,245,.7);box-shadow:0 0 10px -1px #35d0f5d9;cursor:grab;transition:transform .12s}input[type=range]::-webkit-slider-thumb:active{transform:scale(1.22);cursor:grabbing}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#cdf4ff;border:1px solid rgba(53,208,245,.7);box-shadow:0 0 10px -1px #35d0f5d9;cursor:grab}.layer-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.layer-toggle{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:#08121c8c;font-size:10.5px;color:var(--text-faint);transition:all .15s;text-align:left}.layer-toggle:hover{border-color:var(--line-strong);color:var(--text-dim)}.layer-toggle[data-on=true]{border-color:#35d0f552;background:#14364a8c;color:var(--text)}.layer-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0;transition:all .15s}.layer-toggle[data-on=true] .layer-dot{box-shadow:0 0 7px currentColor}.panel-right{position:absolute;top:82px;right:22px;width:344px;max-height:calc(100vh - 510px);min-height:220px;display:flex;flex-direction:column;overflow:hidden}.panel-right>.panel-body{overflow-y:auto;overscroll-behavior:contain}.versus{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(53,208,245,.05),transparent)}.versus-cell{text-align:center}.versus-cell .dir{display:flex;align-items:center;justify-content:center;gap:4px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin-bottom:5px}.versus-cell .dir[data-tone=east]{color:var(--jet-warm)}.versus-cell .dir[data-tone=west]{color:#ff9f6b}.versus-cell .time{font-family:var(--font-mono);font-size:25px;font-weight:600;letter-spacing:-.03em;line-height:1.05;color:var(--text)}.versus-cell .sub{font-size:9.5px;color:var(--text-faint);margin-top:3px;font-family:var(--font-mono)}.versus-mid{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 4px}.versus-delta{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--hot);background:#ffc86b1c;border:1px solid rgba(255,200,107,.28);padding:3px 8px;border-radius:6px;white-space:nowrap}.metrics{padding:12px 16px}.metric-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:11.5px;gap:10px}.metric-row+.metric-row{border-top:1px solid rgba(120,190,230,.06)}.metric-label{color:var(--text-faint);display:flex;align-items:center;gap:5px;flex-shrink:0}.metric-value{font-family:var(--font-mono);font-weight:600;color:var(--text);text-align:right;white-space:nowrap}.metric-value[data-tone=good]{color:var(--safe)}.metric-value[data-tone=warn]{color:var(--hot)}.metric-value[data-tone=bad]{color:var(--danger)}.metric-value small{font-size:9.5px;color:var(--text-faint);font-weight:400;margin-left:2px}.profile-wrap{padding:10px 12px 14px;border-top:1px solid var(--line)}.profile-svg{width:100%;height:auto;display:block;overflow:visible}.profile-legend{display:flex;align-items:center;gap:12px;margin-top:7px;padding:0 2px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:4px;font-size:9.5px;color:var(--text-faint)}.legend-swatch{width:9px;height:3px;border-radius:2px}.timebar{position:absolute;bottom:22px;left:50%;transform:translate(-50%);width:min(680px,calc(100vw - 760px));min-width:340px;padding:11px 16px 13px}.timebar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;gap:12px}.timebar-now{font-family:var(--font-mono);font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.timebar-sub{font-size:9.5px;color:var(--text-faint)}.track{position:relative;height:30px;display:flex;align-items:center}.track-rail{position:absolute;left:0;right:0;height:4px;border-radius:3px;background:#78bee61f;overflow:hidden}.track-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#35d0f58c,#7ff0d2d9);box-shadow:0 0 14px -2px #35d0f599}.track-ticks{position:absolute;inset:0;display:flex;justify-content:space-between;pointer-events:none}.track-tick{width:1px;background:#78bee638;height:9px;align-self:center;position:relative}.track-tick span{position:absolute;top:12px;left:50%;transform:translate(-50%);font-size:8.5px;font-family:var(--font-mono);color:var(--text-faint);white-space:nowrap}.track-thumb{position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid var(--jet);box-shadow:0 0 16px 1px #35d0f5cc;transform:translate(-50%,-50%);top:50%;pointer-events:none;z-index:2}.track input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;z-index:3;cursor:pointer}.wind-legend{position:absolute;left:356px;bottom:138px;width:224px;padding:9px 12px 10px}.legend-bar{height:7px;border-radius:4px;margin:7px 0 4px;box-shadow:inset 0 0 0 1px #ffffff14}.legend-scale{display:flex;justify-content:space-between;font-size:8.5px;font-family:var(--font-mono);color:var(--text-faint)}.hover-card{position:absolute;z-index:60;pointer-events:none;padding:9px 12px;border-radius:10px;background:#050c14eb;backdrop-filter:blur(18px);border:1px solid rgba(53,208,245,.28);box-shadow:0 12px 36px -14px #000000f2;min-width:158px;transform:translate(14px,14px)}.hover-card .coord{font-family:var(--font-mono);font-size:10px;color:var(--jet);margin-bottom:5px;letter-spacing:.02em}.hover-grid{display:grid;grid-template-columns:auto auto;gap:2px 12px;font-size:10.5px}.hover-grid dt{color:var(--text-faint)}.hover-grid dd{margin:0;font-family:var(--font-mono);font-weight:600;text-align:right;color:var(--text)}.loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(800px 500px at 50% 40%,rgba(16,50,74,.5),transparent 68%),var(--ink-900);transition:opacity .6s ease,visibility .6s}.loader[data-done=true]{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{width:min(420px,calc(100vw - 60px));text-align:center}.loader-orbit{width:84px;height:84px;margin:0 auto 26px;position:relative}.loader-orbit .ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(53,208,245,.18)}.loader-orbit .ring:nth-child(2){inset:11px;border-color:#7ff0d238;animation:spin 3.4s linear infinite;border-top-color:var(--jet-warm)}.loader-orbit .ring:nth-child(3){inset:22px;border-color:#ffc86b2e;animation:spin 2.2s linear infinite reverse;border-bottom-color:var(--hot)}.loader-orbit .core{position:absolute;inset:33px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#bdf0ff,#2b93c4 60%,#0d3d5c);box-shadow:0 0 28px -2px #35d0f5bf}.loader-title{font-size:19px;font-weight:650;letter-spacing:-.02em;margin:0 0 6px;background:linear-gradient(100deg,#fff,#a8e3f5 60%,#7ff0d2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.loader-sub{font-size:11.5px;color:var(--text-faint);margin:0 0 22px;letter-spacing:.04em}.loader-bar{height:3px;border-radius:3px;background:#78bee61f;overflow:hidden;position:relative}.loader-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--jet),var(--jet-warm));transition:width .35s ease;box-shadow:0 0 12px #35d0f5b3}.loader-stage{margin-top:11px;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);letter-spacing:.05em;min-height:15px}@media (max-width: 1180px){.panel-right{width:310px}.timebar{width:calc(100vw - 700px)}}@media (max-width: 980px){.panel-left,.panel-right{width:280px}.wind-legend{display:none}.timebar{width:calc(100vw - 640px);min-width:320px}}.flights-panel{position:absolute;left:22px;bottom:22px;width:316px;max-height:min(310px,calc(100vh - 470px));display:flex;flex-direction:column;overflow:hidden}.flights-head{flex-shrink:0;border-bottom:1px solid var(--line)}.flights-title{width:100%;display:flex;align-items:center;gap:7px;padding:11px 14px;transition:background .15s}.flights-title:hover{background:#35d0f50d}.flights-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#78bee614;flex-shrink:0}.flights-stat{display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 4px 8px;background:#060e1699}.flights-stat-val{font-family:var(--font-mono);font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.1}.flights-stat-val small{font-size:8.5px;font-weight:400;color:var(--text-faint);margin-left:1px}.flights-stat-label{font-size:8.5px;color:var(--text-faint);letter-spacing:.04em}.flights-filters{display:flex;align-items:center;gap:4px;padding:8px 12px;border-bottom:1px solid rgba(120,190,230,.08);flex-shrink:0}.flights-filter{padding:3px 9px;border-radius:999px;font-size:10px;color:var(--text-faint);border:1px solid transparent;transition:all .15s}.flights-filter:hover{color:var(--text-dim)}.flights-filter[data-active=true]{color:#bdf0ff;background:#18506880;border-color:#35d0f559}.flights-refresh{margin-left:auto;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--text-faint);transition:all .15s}.flights-refresh:hover:not(:disabled){color:var(--jet);background:#35d0f51a}.flights-refresh:disabled{opacity:.5}.flights-list{overflow-y:auto;overscroll-behavior:contain;padding:4px 6px 6px;flex:1;min-height:0}.flights-empty{padding:22px 10px;text-align:center;font-size:10.5px;color:var(--text-faint)}.flight-row{padding:7px 8px;border-radius:7px;transition:background .14s;position:relative}.flight-row:hover{background:#35d0f512}.flight-row+.flight-row{margin-top:1px}.flight-main{display:flex;align-items:baseline;gap:6px}.flight-callsign{font-size:11px;font-weight:700;color:var(--text);letter-spacing:.01em}.flight-type{font-size:8.5px;padding:0 4px;border-radius:3px;background:#78bee61a;color:var(--text-faint);line-height:1.5}.flight-wind{margin-left:auto;font-size:11.5px;font-weight:700}.flight-wind[data-tone=tail]{color:var(--safe)}.flight-wind[data-tone=head]{color:#ff9f6b}.flight-wind[data-tone=neutral]{color:var(--text-dim)}.flight-wind small{font-size:8px;font-weight:400;margin-left:1px;opacity:.7}.flight-sub{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:9.5px;color:var(--text-faint)}.flight-bar{position:relative;height:2px;margin-top:5px;background:#78bee614;border-radius:2px;overflow:hidden}.flight-bar-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:#78bee640}.flight-bar-fill{position:absolute;top:0;bottom:0;border-radius:2px;transition:width .3s ease,left .3s ease}.flight-bar-fill[data-tone=tail]{background:linear-gradient(90deg,rgba(94,231,196,.4),var(--safe))}.flight-bar-fill[data-tone=head]{background:linear-gradient(90deg,#ff9f6b,#ff9f6b66)}.flight-bar-fill[data-tone=neutral]{background:var(--text-faint)}.flights-foot{padding:7px 12px 8px;border-top:1px solid rgba(120,190,230,.08);font-size:8.5px;color:var(--text-faint);line-height:1.5;flex-shrink:0;max-height:54px;overflow:hidden}.turb-panel{position:absolute;right:22px;bottom:220px;width:344px;padding:0;overflow:hidden;max-height:200px;display:flex;flex-direction:column}.turb-panel .turb-body{overflow-y:auto;overscroll-behavior:contain}.turb-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 13px 8px;border-bottom:1px solid var(--line)}.turb-body{padding:10px 13px 11px}.turb-track{position:relative;height:8px;border-radius:4px;background:#5ee7c421;overflow:hidden;margin-bottom:7px}.turb-seg{position:absolute;top:0;bottom:0;min-width:2px;opacity:.92}.turb-seg[data-level=severe]{box-shadow:0 0 9px 0 currentColor}.turb-peak{position:absolute;top:-2px;bottom:-2px;width:2px;background:#fff;box-shadow:0 0 6px 1px #ffffffd9;transform:translate(-1px)}.turb-legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:9px}.turb-legend-item{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;color:var(--text-faint)}.turb-legend-item i{width:8px;height:3px;border-radius:2px;display:inline-block}.turb-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;padding:8px 0;border-top:1px solid rgba(120,190,230,.08)}.turb-grid>div{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.turb-grid dt{font-size:9px;color:var(--text-faint)}.turb-grid dd{margin:0;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--text)}.turb-hot{padding-top:8px;border-top:1px solid rgba(120,190,230,.08)}.turb-hot-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}.turb-hot-item{display:flex;align-items:center;justify-content:space-between;font-size:9.5px;color:var(--text-dim);padding:1px 0}.turb-hot-item b{font-weight:700;font-size:10px}.turb-note{margin-top:9px;padding-top:8px;border-top:1px solid rgba(120,190,230,.08);font-size:8.5px;line-height:1.65;color:var(--text-faint)}.turb-layerhint{padding:6px 13px 7px;border-top:1px solid rgba(120,190,230,.08);font-size:9px;color:var(--text-faint);background:#ffc86b0d}.turb-layerhint[data-on=true]{color:var(--hot);background:#ffc86b14}@media (min-width: 761px) and (max-width: 1400px) and (hover: hover){.turb-panel{display:none}}.section-toggle{width:100%;padding:0;color:var(--text-faint);transition:color .15s;cursor:pointer}.section-toggle:hover{color:var(--text-dim)}.section-toggle:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),transparent)}.flight-detail{position:absolute;right:388px;top:82px;width:288px;padding:0;overflow:hidden;animation:rise .22s ease;z-index:20}.fd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:11px 13px 9px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(53,208,245,.07),transparent)}.fd-ident{display:flex;flex-direction:column;gap:1px;min-width:0}.fd-callsign{font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--text);line-height:1.2}.fd-type{font-size:9.5px;color:var(--text-faint)}.fd-close{width:20px;height:20px;border-radius:5px;display:grid;place-items:center;color:var(--text-faint);flex-shrink:0;transition:all .15s}.fd-close:hover{color:var(--text);background:#78bee61f}.fd-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:10px 13px;border-bottom:1px solid rgba(120,190,230,.08)}.fd-endpoint{display:flex;flex-direction:column;gap:1px;min-width:0}.fd-code{font-size:14px;font-weight:700;color:var(--jet);letter-spacing:.03em}.fd-city{font-size:9px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-route-mid{display:grid;place-items:center;opacity:.85}.fd-telemetry{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#78bee612}.fd-tel{display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 4px 8px;background:#060e168c}.fd-tel-val{font-size:15px;font-weight:600;color:var(--text);line-height:1.15}.fd-tel-unit{font-size:8.5px;color:var(--text-faint)}.fd-wind{padding:10px 13px 11px;border-top:1px solid rgba(120,190,230,.08)}.fd-wind-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.fd-wind-verdict{font-size:10px;color:var(--text-dim);white-space:nowrap}.fd-wind-verdict b{font-family:var(--font-mono);font-size:12px;font-weight:700}.fd-wind-verdict[data-tone=tail]{color:var(--safe)}.fd-wind-verdict[data-tone=head]{color:#ff9f6b}.fd-viz{display:flex;flex-direction:column;gap:5px;margin-bottom:9px}.fd-bar-row{display:grid;grid-template-columns:38px 1fr 32px;align-items:center;gap:7px}.fd-bar-label{font-size:9px;color:var(--text-faint)}.fd-bar{height:5px;border-radius:3px;background:#78bee61a;overflow:hidden}.fd-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.fd-bar-val{font-size:10px;font-weight:600;text-align:right;color:var(--text-dim)}.fd-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding-top:8px;border-top:1px solid rgba(120,190,230,.08)}.fd-grid>div{display:flex;align-items:baseline;justify-content:space-between;gap:5px}.fd-grid dt{font-size:9px;color:var(--text-faint)}.fd-grid dd{margin:0;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--text)}.fd-actions{display:flex;align-items:center;gap:8px;padding:9px 13px;border-top:1px solid rgba(120,190,230,.08);background:#35d0f508}.fd-action{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:7px;border:1px solid rgba(53,208,245,.3);background:#143c5280;color:#bdf0ff;font-size:10px;font-weight:500;transition:all .15s}.fd-action:hover:not(:disabled){background:#1e556ea6;border-color:#35d0f580}.fd-action:disabled{opacity:.4;cursor:not-allowed}.fd-src{margin-left:auto;font-size:8.5px;padding:2px 7px;border-radius:999px;font-family:var(--font-mono)}.fd-src[data-real=true]{color:var(--safe);background:#5ee7c41a;border:1px solid rgba(94,231,196,.28)}.fd-src[data-real=false]{color:var(--hot);background:#ffc86b1a;border:1px solid rgba(255,200,107,.28)}.fd-pos{padding:6px 13px 8px;font-size:9px;color:var(--text-faint);border-top:1px solid rgba(120,190,230,.06)}@media (min-width: 761px) and (max-width: 1400px) and (hover: hover){.flight-detail{display:none}}.ruler-panel{position:absolute;left:356px;top:82px;width:226px;padding:0;overflow:hidden;z-index:12}.ruler-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 8px;border-bottom:1px solid var(--line);gap:8px}.ruler-clear{font-size:9px;color:var(--text-faint);padding:2px 7px;border-radius:5px;border:1px solid var(--line);transition:all .15s}.ruler-clear:hover{color:var(--danger);border-color:#ff5f8f59}.ruler-body{padding:9px 12px 11px}.ruler-hint{font-size:9.5px;color:var(--text-faint);line-height:1.7}.ruler-point{display:flex;align-items:center;gap:7px;padding:3px 0}.ruler-badge{width:16px;height:16px;border-radius:4px;display:grid;place-items:center;font-size:8.5px;font-weight:700;font-family:var(--font-mono);background:#35d0f524;color:var(--jet);border:1px solid rgba(53,208,245,.3);flex-shrink:0}.ruler-coord{font-size:9.5px;color:var(--text-dim)}.ruler-metrics{display:flex;flex-direction:column;gap:3px}.ruler-metric{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:9.5px;color:var(--text-faint)}.ruler-metric b{font-size:10.5px;color:var(--text);font-weight:600}.ruler-note{margin-top:8px;padding-top:7px;border-top:1px solid rgba(120,190,230,.08);font-size:9px;line-height:1.65;color:var(--text-faint)}.ruler-note b{color:var(--jet-warm)}.ruler-mid{margin-top:5px;font-size:8.5px;color:var(--text-faint)}.ruler-apply{margin-top:9px;width:100%;padding:6px 0;border-radius:7px;border:1px solid rgba(53,208,245,.28);background:#143c5273;color:#bdf0ff;font-size:10px;font-weight:500;transition:all .15s}.ruler-apply:hover{background:#1e556e99;border-color:#35d0f573}@media (min-width: 761px) and (max-width: 1400px) and (hover: hover){.ruler-panel{display:none}}.ruler-mode{display:flex;align-items:center;gap:6px;width:100%;padding:5px 9px;border-radius:7px;border:1px solid var(--line);background:#08121c99;color:var(--text-faint);font-size:9.5px;transition:all .15s}.ruler-mode:hover{border-color:var(--line-strong);color:var(--text-dim)}.ruler-mode[data-on=true]{border-color:#35d0f56b;background:#143c528c;color:#bdf0ff}.ruler-mode-dot{width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.ruler-mode[data-on=true] .ruler-mode-dot{background:var(--jet);box-shadow:0 0 8px var(--jet);animation:pulse-soft 1.6s ease-in-out infinite}.airport-empty{padding:12px 10px;text-align:center;font-size:10.5px;color:var(--text-faint)}.fd-route-unknown{display:block;grid-template-columns:none;padding:9px 13px;font-size:9.5px;line-height:1.6;color:var(--text-faint);border-bottom:1px solid rgba(120,190,230,.08)}.msheet{display:none}@media (max-width: 760px),((hover: none) and (pointer: coarse) and (max-width: 1024px)){:root{--m-pad: 10px;--m-tabbar: 46px}.topbar{padding:8px var(--m-pad);gap:8px}.brand-mark{width:30px;height:30px;border-radius:9px}.brand-text h1{font-size:13.5px}.brand-text p{display:none}.topbar-right .status-pill:nth-child(2),.topbar-right .status-pill:nth-child(3){display:none}.panel-left,.panel-right,.flights-panel,.turb-panel,.ruler-panel,.flight-detail,.profile-dock{position:static!important;inset:auto!important;width:auto!important;max-width:none!important;max-height:none!important;min-height:0!important;transform:none!important;display:flex!important;flex-direction:column;border:none!important;border-radius:0!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;animation:none!important;flex:1 1 auto;min-width:0;overflow:hidden}.panel-left .panel-body,.panel-right .panel-body{max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.msheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:30;background:#060e16f0;backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);border-top:1px solid var(--line-strong);border-radius:16px 16px 0 0;box-shadow:0 -12px 40px -12px #000000e6;flex:none;height:var(--m-tabbar);transition:height .28s cubic-bezier(.32,.72,0,1);padding-bottom:env(safe-area-inset-bottom,0px);will-change:height}.msheet[data-expanded=true]{flex:none;height:var(--sheet-h, 62vh)}.msheet-handle{display:grid;place-items:center;height:18px;flex:0 0 18px;cursor:grab}.msheet-grip{width:36px;height:3px;border-radius:2px;background:#96c8e159;transition:background .15s}.msheet-handle:active .msheet-grip{background:#96c8e1b3}.msheet-tabs{display:flex;flex:0 0 auto;gap:2px;padding:0 8px;height:28px;align-items:stretch}.msheet-tab{flex:1;padding:0 4px;border-radius:7px 7px 0 0;font-size:11.5px;font-weight:500;color:var(--text-faint);position:relative;transition:color .15s,background .15s;white-space:nowrap}.msheet-tab[data-active=true]{color:#bdf0ff;background:#35d0f51a}.msheet-tab[data-active=true]:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:2px;border-radius:2px 2px 0 0;background:var(--jet);box-shadow:0 0 8px var(--jet)}.msheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:none}.msheet[data-expanded=true] .msheet-body{display:block;padding-bottom:8px}.timebar{left:var(--m-pad)!important;right:var(--m-pad)!important;width:auto!important;min-width:0!important;transform:none!important;bottom:calc(var(--m-tabbar) + 8px + env(safe-area-inset-bottom,0px))!important;padding:8px 12px 10px;transition:bottom .28s cubic-bezier(.32,.72,0,1)}.app[data-sheet-open=true] .timebar{bottom:calc(var(--sheet-h, 62vh) + 8px + env(safe-area-inset-bottom,0px))!important}@media (max-height: 700px){.app[data-sheet-open=true] .timebar{opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s,transform .2s}}.timebar-now{font-size:12.5px}.timebar-sub{font-size:8.5px}.track-tick:nth-child(n+3):not(:last-child) span{display:none}.wind-legend{position:static!important;width:auto!important;border:none!important;background:transparent!important;backdrop-filter:none!important;box-shadow:none!important;padding:10px 12px!important}.ruler-panel,.turb-panel,.flights-panel,.flight-detail{padding:0!important}}.profile-dock-inline{margin-top:6px;border-top:1px solid var(--line)}@media (max-width: 760px),((hover: none) and (pointer: coarse) and (max-width: 1024px)){.timebar{padding:6px 12px 7px!important}.timebar-head{margin-bottom:5px}.timebar-now{font-size:11.5px}.timebar-sub{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track{height:22px}.track-tick span{display:none}.track-thumb{width:18px;height:18px}}@media (min-width: 761px) and (max-width: 1180px) and (hover: hover){.panel-left{width:280px;left:14px;max-height:calc(100vh - 540px)}.panel-right{width:292px;right:14px;max-height:calc(100vh - 470px)}.flights-panel{width:280px;left:14px;bottom:132px;max-height:min(260px,calc(100vh - 560px))}.wind-legend{left:308px;width:200px}.turb-panel,.profile-dock{display:none!important}.timebar{width:calc(100vw - 32px);max-width:620px;min-width:0;bottom:22px}.topbar{padding:14px 16px}}
