:root[data-theme=system]{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}.shell{--ui-font:"Manrope Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ui-mono:"IBM Plex Mono", "SF Mono", ui-monospace, Menlo, monospace;--ui-bg:light-dark(#eef2f3,#04080e);--ui-text:light-dark(#0e1a20,#dae9ee);--ui-text-strong:light-dark(#030507,#f2f5f5);--ui-muted:light-dark(#51626a,#91a8b5);--ui-faint:light-dark(#7c8b91,#6f8996);--ui-glass:light-dark(#ffffff9e,#0a121a8f);--ui-glass-strong:light-dark(#ffffffd1,#0a121ac7);--ui-line:light-dark(#0e1a201f,#d5dcdf24);--ui-line-strong:light-dark(#0e1a203d,#d5dcdf47);--ui-accent:light-dark(#0d8f7a,#90e5d4);--ui-accent-ink:light-dark(#fff,#10282b);--ui-signal:light-dark(#0a7fa0,#83e8fa);--ui-ok:light-dark(#0f8a5f,#70e5bc);--ui-warn:light-dark(#b0620e,#efbc8c);--ui-danger:light-dark(#c2303f,#ff6b7a);--ui-shadow:light-dark(0 10px 30px #0a1e2824,0 12px 36px #00000073);--ui-radius:14px;font-family:var(--ui-font);color:var(--ui-text);background:var(--ui-bg);-webkit-font-smoothing:antialiased}.shell :focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}.shell .glass{background:var(--ui-glass);border:1px solid var(--ui-line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(18px)saturate(1.4)}.shell .num{font-family:var(--ui-mono);font-variant-numeric:tabular-nums}.ui-segment{background:var(--ui-glass);border:1px solid var(--ui-line);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.ui-segment button{color:var(--ui-muted);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;line-height:1;display:inline-flex}.ui-segment button[aria-pressed=true]{background:var(--ui-glass-strong);color:var(--ui-text-strong);box-shadow:0 1px 3px #0000002e}.ui-segment button:hover{color:var(--ui-text-strong)}.ui-swatches{grid-template-columns:repeat(7,22px);gap:6px;display:grid}.ui-swatches button{border:1px solid var(--ui-line-strong);border-radius:50%;width:22px;height:22px;padding:0}.ui-swatches button[aria-pressed=true]{outline:2px solid var(--ui-accent);outline-offset:2px}.ui-button{border:1px solid var(--ui-line-strong);background:var(--ui-glass-strong);color:var(--ui-text-strong);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600}.ui-button:hover:not(:disabled){border-color:var(--ui-accent)}.ui-button:disabled{opacity:.45;cursor:default}.ui-button.primary{background:var(--ui-accent);color:var(--ui-accent-ink);border-color:#0000}.ui-button.danger{color:var(--ui-danger)}.ui-kbd{font-family:var(--ui-mono);border:1px solid var(--ui-line-strong);color:var(--ui-muted);background:var(--ui-glass-strong);border-radius:5px;padding:1px 5px;font-size:10px}.fly-root{position:fixed;inset:0;overflow:hidden}.fly{position:absolute;inset:0}.fly-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.fly-top{pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:absolute;top:14px;left:14px;right:14px}.fly-top>*{pointer-events:auto}.fly-brand{letter-spacing:.08em;align-items:center;gap:10px;padding:8px 14px;font-size:12px;display:flex}.fly-brand img{height:16px;filter:light-dark(invert(1),none)}.fly-brand span{color:var(--ui-text-strong);font-weight:700}.fly-brand em{color:var(--ui-accent);letter-spacing:.02em;font-style:normal;font-weight:600}.fly-status{align-items:center;gap:8px;padding:6px 8px 6px 14px;display:flex}.fly-mode{letter-spacing:-.01em;color:var(--ui-text-strong);min-width:110px;font-size:18px;font-weight:700}.fly-mode.vtol:before,.fly-mode.wing:before{content:"";vertical-align:2px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.fly-mode.vtol:before{background:var(--ui-signal);box-shadow:0 0 10px var(--ui-signal)}.fly-mode.wing:before{background:var(--ui-accent);box-shadow:0 0 10px var(--ui-accent)}.fly-chip{border:1px solid var(--ui-line);color:var(--ui-muted);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.fly-chip.armed{color:var(--ui-danger);border-color:color-mix(in srgb, var(--ui-danger) 55%, transparent);background:color-mix(in srgb, var(--ui-danger) 12%, transparent)}.fly-chip.ok{color:var(--ui-ok);border-color:color-mix(in srgb, var(--ui-ok) 45%, transparent)}.fly-chip.wait{color:var(--ui-warn)}.fly-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.appearance{align-items:center;gap:12px;padding:6px 10px;display:flex}.fly-events{top:var(--fly-console-top,72px);pointer-events:none;flex-direction:column;gap:6px;max-width:380px;display:flex;position:absolute;left:14px}.fly-event{border-radius:10px;padding:7px 12px;font-size:12px;animation:.25s ease-out fly-in}.fly-event.warning{color:var(--ui-warn)}.fly-event.error{color:var(--ui-danger)}@keyframes fly-in{0%{opacity:0;transform:translateY(-6px)}}.fly-aero{width:250px;padding:12px 14px;position:absolute;bottom:14px;left:14px}.fly-aero-head{color:var(--ui-muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;display:flex}.fly-env{text-transform:none;letter-spacing:0;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.fly-env.cfd{color:var(--ui-ok);background:color-mix(in srgb, var(--ui-ok) 14%, transparent)}.fly-env.averaged{color:var(--ui-signal);background:color-mix(in srgb, var(--ui-signal) 14%, transparent)}.fly-env.extrapolated{color:var(--ui-danger);background:color-mix(in srgb, var(--ui-danger) 14%, transparent)}.fly-env.inactive{color:var(--ui-faint);background:color-mix(in srgb, var(--ui-faint) 12%, transparent)}.fly-aero dl{grid-template-columns:repeat(3,1fr);gap:8px 10px;margin:0;display:grid}.fly-aero dl div{flex-direction:column;gap:2px;display:flex}.fly-aero dt{color:var(--ui-muted);font-size:11px}.fly-aero dd{color:var(--ui-text-strong);margin:0;font-size:14px}.fly-battery{border-top:1px solid var(--ui-line);margin-top:12px;padding-top:10px}.fly-battery.low dd{color:var(--ui-signal)}.fly-battery.critical dd{color:var(--ui-danger)}.fly-sticks{border-top:1px solid var(--ui-line);align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.fly-stick{border:1px solid var(--ui-line-strong);background:linear-gradient(var(--ui-line), var(--ui-line)) center / 1px 100% no-repeat, linear-gradient(var(--ui-line), var(--ui-line)) center / 100% 1px no-repeat;border-radius:12px;width:56px;height:56px;position:relative}.fly-stick i{background:var(--ui-accent);width:10px;height:10px;box-shadow:0 0 8px var(--ui-accent);border-radius:50%;margin:-5px 0 0 -5px;position:absolute}.fly-stick small{text-align:center;color:var(--ui-faint);white-space:nowrap;margin-top:3px;font-size:9px;position:absolute;top:100%;left:0;right:0}.fly-source{color:var(--ui-muted);font-size:11px;line-height:1.6}.fly-pfd{pointer-events:none;width:min(560px,46vw);height:270px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.fly-controls{flex-direction:column;gap:10px;width:330px;padding:12px;display:flex;position:absolute;bottom:14px;right:14px}.fly-modes{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.fly-modes button{color:var(--ui-text);border:1px solid var(--ui-line);background:0 0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:11px;font-weight:600;display:flex}.fly-modes button:hover{border-color:var(--ui-line-strong)}.fly-modes button[aria-pressed=true].vtol{border-color:var(--ui-signal);background:color-mix(in srgb, var(--ui-signal) 16%, transparent);color:var(--ui-text-strong)}.fly-modes button[aria-pressed=true].wing{border-color:var(--ui-accent);background:color-mix(in srgb, var(--ui-accent) 16%, transparent);color:var(--ui-text-strong)}.fly-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.fly-actions .ui-button{justify-content:space-between;align-items:center;gap:6px;font-size:12px;display:flex}.fly-arm{grid-column:1/-1;position:relative;overflow:hidden}.fly-arm:after{content:"";transform-origin:0;transform:scaleX(var(--hold,0));pointer-events:none;background:#ffffff40;position:absolute;inset:0}.console-open .fly-controls{display:none}.fly-console{z-index:3;top:var(--fly-console-top,78px);flex-direction:column;width:min(440px,100vw - 28px);display:flex;position:absolute;bottom:14px;right:14px;overflow:hidden}.fly-console[hidden]{display:none}.fly-console-head{border-bottom:1px solid var(--ui-line);align-items:center;gap:8px;padding:10px 12px;display:flex}.fly-console-head>div{flex:1;gap:2px;min-width:0;display:grid}.fly-console-head strong{color:var(--ui-text-strong);font-size:13px}.fly-console-head span{color:var(--ui-muted);font-size:11px}.fly-console-head .ui-button{min-height:36px}.fly-console-head svg{width:16px;height:16px}.fly-console-output{min-height:0;font:12px/1.65 var(--ui-mono);color:var(--ui-text);flex:1;padding:12px;overflow:auto}.fly-console-line{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:6px}.fly-console-line.input{color:var(--ui-accent);margin-top:12px}.fly-console-line.warning{color:var(--ui-warn)}.fly-console-line.error{color:var(--ui-danger)}.fly-console-empty{color:var(--ui-muted);margin:0}.fly-console-form{border-top:1px solid var(--ui-line);gap:6px;padding:10px 12px;display:grid}.fly-console-form label{color:var(--ui-muted);font-size:11px;font-weight:600}.fly-console-form>div{align-items:center;gap:8px;display:flex}.fly-console-form>div>span{color:var(--ui-accent)}.fly-console-form input{border:1px solid var(--ui-line-strong);background:var(--ui-glass-strong);min-width:0;color:var(--ui-text-strong);font:13px/1.5 var(--ui-mono);border-radius:6px;flex:1;padding:8px}.fly-console-form>span{color:var(--ui-muted);font-size:11px}.fly-console :focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}@media (width>=1101px){.console-open .fly-pfd{width:min(460px,32vw);left:44%}}@media (width>=721px) and (width<=1100px){.console-open .fly-pfd{top:var(--fly-console-top,78px);width:min(400px,100vw - 480px);left:calc(50vw - 227px)}}@media (width<=720px){.fly-top .appearance{display:none}.console-open .fly-pfd,.console-open .fly-aero{visibility:hidden}.fly-console-head .ui-button,.fly-console-form .ui-button{min-height:44px}.fly-console-form input{font-size:16px}}.fly-loading{padding:14px 20px;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fly-help{z-index:5;width:min(620px,100vw - 32px);height:fit-content;margin:auto;padding:22px 26px;position:absolute;inset:0}.fly-help h2{color:var(--ui-text-strong);margin:0 0 14px;font-size:18px}.fly-help-grid{grid-template-columns:auto 1fr;align-items:center;gap:10px 16px;font-size:13px;display:grid}.fly-help-grid>span:nth-child(odd){white-space:nowrap;align-items:center;gap:4px;display:flex}.fly-help p{color:var(--ui-muted);margin:16px 0 0;font-size:12px;line-height:1.6}.fly-connect{background:radial-gradient(ellipse at 70% 20%, light-dark(#d9eef0,#0e383c), transparent 60%), radial-gradient(ellipse at 20% 90%, light-dark(#e8dfd6,#2a1d2e), transparent 55%), var(--ui-bg);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.fly-connect-card{width:min(520px,100%);padding:28px}.fly-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ui-accent);margin:0;font-size:11px;font-weight:700}.fly-connect-card h1{letter-spacing:-.03em;color:var(--ui-text-strong);margin:10px 0;font-size:clamp(26px,4vw,34px);line-height:1.1}.fly-lede{color:var(--ui-muted);font-size:14px;line-height:1.6}.fly-lede code{font-family:var(--ui-mono);font-size:12px}.fly-connect-card form{gap:12px;margin-top:18px;display:grid}.fly-connect-card label{color:var(--ui-muted);gap:6px;font-size:12px;font-weight:600;display:grid}.fly-connect-card input{font:inherit;border:1px solid var(--ui-line-strong);background:var(--ui-glass-strong);color:var(--ui-text-strong);border-radius:10px;padding:10px 12px;font-size:14px}.fly-connect-foot{justify-content:flex-start;margin-top:18px;display:flex}.fly-launch-bar{background:var(--ui-line-strong);border-radius:3px;height:3px;margin:22px 0 18px;position:relative;overflow:hidden}.fly-launch-bar span{background:var(--ui-accent);border-radius:3px;width:38%;animation:1.25s ease-in-out infinite fly-launch-run;position:absolute;inset:0}.fly-launch-bar.measured span{transition:width .4s;animation:none}.fly-download{border:1px solid var(--ui-line-strong);border-radius:12px;gap:12px;padding:14px 16px;display:grid}.fly-download strong{margin-bottom:4px;display:block}.fly-download .fly-launch-bar{margin:2px 0}.fly-download .ui-button{justify-self:start}@keyframes fly-launch-run{0%{transform:translate(-110%)}to{transform:translate(275%)}}@media (prefers-reduced-motion:reduce){.fly-launch-bar span{opacity:.45;width:100%;animation:none}}.fly-launch-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.fly-launch .fly-logs{max-height:180px;margin:14px 0;overflow:auto}.fly-launch .fly-note{margin:0}.fly-connect-foot .appearance{box-shadow:none}@media (height<=820px){.fly-pfd{width:min(480px,44vw);height:210px}}@media (height<=640px){.fly-pfd{width:min(420px,42vw);height:170px}}@media (width<=1100px){.fly-pfd{width:min(460px,70vw);height:190px;top:64px;bottom:auto}.fly-events{max-width:260px;top:272px}.fly-cameras{display:none!important}}@media (width<=720px){.fly-top{flex-wrap:wrap}.fly-status{order:3;width:100%}.fly-aero,.fly-controls{width:calc(50% - 20px)}.fly-modes{grid-template-columns:repeat(2,1fr)}.fly-pfd{width:calc(100vw - 28px);height:200px;top:130px;bottom:auto}.fly-events{display:none}}@media (prefers-reduced-motion:reduce){.fly-event{animation:none}}.fly-connect>.glass{z-index:1;position:relative}.fly-hangar{padding:76px 16px 16px}.fly-home{width:26px;height:26px;color:var(--ui-muted);border-radius:8px;place-items:center;margin:-4px 0 -4px -6px;display:grid}.fly-home:hover{color:var(--ui-text-strong);background:var(--ui-glass-strong)}.fly-home svg{width:16px;height:16px}.fly-tools>.fly-chip.glass{box-shadow:var(--ui-shadow);padding:8px 12px}.fly-picker{align-content:start;gap:16px;width:min(600px,100%);max-height:calc(100vh - 92px);padding:24px;display:grid;overflow:auto}.shell .fly-picker{-webkit-backdrop-filter:blur(20px)saturate(1.2);background:light-dark(#ffffffe6,#0a121ae0)}.fly-picker h1{letter-spacing:-.02em;color:var(--ui-text-strong);margin:0;font-size:22px;line-height:1.2}.fly-picker-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.fly-picker-head .fly-note{margin-top:6px}.fly-picker-state{gap:10px;display:grid}.fly-picker-state .fly-launch-bar{margin:8px 0}.fly-note{color:var(--ui-muted);margin:0;font-size:13px;line-height:1.55}.fly-warning{color:var(--ui-warn);background:color-mix(in srgb, var(--ui-warn) 10%, transparent);border:1px solid color-mix(in srgb, var(--ui-warn) 35%, transparent);overflow-wrap:anywhere;border-radius:12px;margin:0;padding:12px 14px;font-size:13px;line-height:1.5}.fly-logs{max-height:160px;font-family:var(--ui-mono);color:var(--ui-muted);background:var(--ui-glass-strong);white-space:pre-wrap;border-radius:8px;margin:10px 0 0;padding:10px;font-size:11px;overflow:auto}.fly-pair,.fly-advanced form{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;display:grid}.fly-pair{margin-top:6px}.fly-pair label,.fly-advanced label{color:var(--ui-muted);gap:6px;font-size:12px;font-weight:600;display:grid}.fly-pair input,.fly-advanced input{font:inherit;border:1px solid var(--ui-line-strong);background:var(--ui-glass-strong);color:var(--ui-text-strong);border-radius:10px;min-width:0;padding:9px 11px;font-size:14px}.fly-session{border:1px solid color-mix(in srgb, var(--ui-accent) 40%, transparent);background:color-mix(in srgb, var(--ui-accent) 10%, transparent);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fly-session-status{color:var(--ui-text);align-items:center;gap:12px;font-size:13px;display:flex}.fly-session-status strong{color:var(--ui-text-strong);letter-spacing:.04em}.fly-session-actions{gap:8px;display:flex}.fly-spacer{flex:1}.fly-aircraft{border:1px solid var(--ui-line);border-radius:12px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.fly-aircraft>li{grid-template-columns:auto 1fr auto;align-items:start;gap:14px;padding:14px;display:grid}.fly-aircraft>li+li{border-top:1px solid var(--ui-line)}.fly-aircraft>li.chosen{background:color-mix(in srgb, var(--ui-accent) 8%, transparent)}.fly-aircraft>li>.ui-button{align-self:center;min-width:72px}.fly-aircraft-icon{width:44px;height:44px;color:var(--ui-accent);background:color-mix(in srgb, var(--ui-accent) 12%, transparent);border-radius:10px;place-items:center;display:grid}.fly-aircraft-icon svg{width:24px;height:24px}.fly-aircraft-text{gap:4px;min-width:0;display:grid}.fly-aircraft h3{letter-spacing:.05em;color:var(--ui-text-strong);margin:0;font-size:15px}.fly-card-meta{color:var(--ui-muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.fly-aircraft details{color:var(--ui-muted);font-size:12px}.fly-aircraft summary{cursor:pointer;color:var(--ui-text);width:fit-content}.fly-aircraft details ul{margin:6px 0 2px;padding-left:18px;line-height:1.5}.fly-aircraft .fly-builds{gap:4px;padding:0;list-style:none;display:grid}.fly-builds li{font-variant-numeric:tabular-nums;align-items:center;gap:12px;display:flex}.fly-text-button{font:inherit;color:var(--ui-accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.fly-text-button:disabled{color:var(--ui-faint);cursor:default}.fly-empty{text-align:center;border:1px dashed var(--ui-line-strong);border-radius:12px;justify-items:center;gap:8px;padding:26px 18px;display:grid}.fly-empty strong{color:var(--ui-text-strong);font-size:14px}.fly-empty .fly-note{max-width:380px}.fly-empty .ui-button{margin-top:6px;text-decoration:none}.fly-advanced{color:var(--ui-muted);font-size:12px}.fly-advanced summary{cursor:pointer;width:fit-content}.fly-advanced form{margin-top:12px}@media (width<=640px){.fly-pair,.fly-advanced form{grid-template-columns:1fr}.fly-hangar .fly-tools .appearance{display:none}.fly-picker{padding:18px}}.fly-wind{z-index:4;gap:12px;width:min(300px,100vw - 32px);padding:14px 16px;display:grid;position:absolute;top:72px;right:16px}.fly-wind-head{justify-content:space-between;align-items:center;display:flex}.fly-wind-head .ui-button{padding:2px 9px}.fly-wind-field{color:var(--ui-muted);grid-template-columns:1fr auto;align-items:center;gap:6px 10px;font-size:12px;display:grid}.fly-wind-field output{color:var(--ui-text);font-weight:600}.fly-wind-field input[type=range],.fly-wind-field .ui-segment{grid-column:1/-1;width:100%}.fly-wind-field .ui-segment button{flex:1}.fly-wind-actions{justify-content:flex-end;gap:8px;display:flex}.fly-wind-error{color:var(--ui-danger);margin:0;font-size:12px}
