
.nw{ --blue:#1f9bd9; --blue-b:#3eb5e8; --blue-d:#1580c4; --bg0:#0e1117; --bg1:#161b22;
  --panel:rgba(19,24,31,.83); --panel2:rgba(28,34,43,.92); --text:#e6edf3; --muted:#8b949e; --dim:#6b7480;
  --amber:#e3a008; --green:#62e58a; --line:#30363d; --line2:#3d444d;
  --gold:#f0c24b; --silver:#c8d2da; --bronze:#d0894f;
  --sans:'Barlow',-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --cond:'Barlow Semi Condensed','Barlow',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,"Cascadia Mono",Consolas,monospace; }
.nw *{ box-sizing:border-box; }
.nw ::selection{ background:rgba(31,155,217,.35); }
.nw ::-webkit-scrollbar{ width:9px; height:9px; } .nw ::-webkit-scrollbar-track{ background:transparent; }
.nw ::-webkit-scrollbar-thumb{ background:#2a313a; border-radius:6px; }
.nw ::-webkit-scrollbar-thumb:hover{ background:#39424d; }
@keyframes nw-sheen{ 0%{ transform:translateX(-140%);} 100%{ transform:translateX(360%);} }
@keyframes nw-spin{ to{ transform:rotate(360deg);} }
@keyframes nw-bank{ 0%{ transform:rotateZ(-24deg);} 50%{ transform:rotateZ(24deg);} 100%{ transform:rotateZ(-24deg);} }

/* ---------- the full-viewport overlay ---------- */
body.nw-menuopen #hud, body.nw-menuopen #dji{ visibility:hidden !important; }
#nw-card{ position:fixed; inset:0; z-index:30; display:none; padding:clamp(16px,2.4vw,40px);
  font-family:var(--sans); color:var(--text); -webkit-font-smoothing:antialiased; user-select:none; }
#nw-card.show{ display:flex; }
#nw-card::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(142% 104% at 50% 20%, rgba(6,9,13,.24), rgba(6,9,13,.64)); }
#nw-card.paused::before{ background:radial-gradient(120% 82% at 50% 32%, rgba(6,9,13,.5), rgba(6,9,13,.84)); }
.nw .console{ position:relative; width:100%; max-width:1360px; margin:0 auto; height:100%;
  display:flex; flex-direction:column; min-height:0; }

/* panels — the shared glass voice (solid on the Intel/low-GPU profile: blur is a stability risk there) */
.nw .pn{ background:var(--panel); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line); border-radius:13px; }
.nw.nwlow .pn, .nw.nwlow .mainbar, .nw.nwlow .mainbody{ background:rgba(19,24,31,.96); backdrop-filter:none; -webkit-backdrop-filter:none; }

/* ---------- topbar ---------- */
.nw .topbar{ flex:0 0 auto; display:flex; align-items:center; gap:16px; padding:0 2px 15px; }
.nw .logo{ width:30px; height:30px; flex:0 0 auto; clip-path:polygon(50% 6%,100% 96%,50% 72%,0 96%);
  background:linear-gradient(160deg,var(--blue-b),var(--blue-d)); box-shadow:0 0 16px rgba(31,155,217,.45); }
.nw .wordmark{ font-size:19px; font-weight:700; letter-spacing:3px; line-height:1; }
.nw .wordsub{ font-family:var(--mono); font-size:9.5px; letter-spacing:2px; color:var(--dim); margin-top:2px; }
.nw .build{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--green); text-align:right; line-height:1.5; opacity:.85; }
.nw .build .b2{ color:var(--dim); }

/* ---------- body: spine + main ---------- */
.nw .cbody{ flex:1; min-height:0; display:grid; grid-template-columns:324px 1fr; gap:16px; }
.nw .spine{ display:flex; flex-direction:column; gap:12px; min-height:0; overflow-y:auto; overflow-x:hidden; padding-right:3px; }
.nw .main{ display:flex; flex-direction:column; min-height:0; overflow:hidden; }
@media (max-width:900px){
  .nw .cbody{ display:flex; flex-direction:column; overflow-y:auto; overflow-x:hidden; gap:12px; padding-right:2px; }
  .nw .cbody > *{ flex:0 0 auto; } /* the stacked column must never SHRINK its children (spine overflowed onto the main window) */
  .nw .spine{ overflow:visible; padding-right:0; gap:11px; }
  .nw .main{ min-height:420px; overflow:visible; }
}

/* state chip */
.nw .chip{ flex:0 0 auto; display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; letter-spacing:1px; }
.nw .chip.ready{ color:var(--green); } .nw .chip.paused{ color:var(--amber); }
.nw .chip .dot{ width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); }

/* ---------- START: locked loading panel ⇄ primary button ---------- */
.nw .startlock{ position:relative; overflow:hidden; width:100%; border-radius:13px; border:1px solid var(--line2);
  background:#12171e; padding:15px 16px 13px; }
.nw .startlock .bg{ position:absolute; left:0; top:0; bottom:0; width:0%; transition:width .12s linear;
  background:linear-gradient(180deg,rgba(31,155,217,.4),rgba(21,128,196,.26)); }
.nw .startlock .sheen{ position:absolute; top:0; bottom:0; left:0; width:38%; pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent); animation:nw-sheen 1.7s linear infinite; }
.nw .startlock .row{ position:relative; display:flex; align-items:baseline; justify-content:space-between; }
.nw .startlock .lw{ font-family:var(--mono); font-size:12px; letter-spacing:1px; color:#bcd7e6; }
.nw .startlock .pc{ font-family:var(--mono); font-size:12px; color:var(--muted); }
.nw .startlock .tt{ position:relative; margin-top:7px; font-family:var(--cond); font-size:22px; font-weight:700; letter-spacing:.4px; }
.nw .startlock .bar{ position:relative; margin-top:9px; height:5px; border-radius:4px; background:#0b0f14; overflow:hidden; border:1px solid var(--line); }
.nw .startlock .bar i{ display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--blue-d),var(--blue-b)); transition:width .12s linear; }
.nw .startlock .sub{ position:relative; margin-top:8px; display:flex; justify-content:space-between; gap:10px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.4px; color:var(--dim); }
.nw .startlock .sub .stg{ color:var(--green); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nw .startlock .sub .linklike{ color:var(--blue-b); cursor:pointer; text-decoration:underline; }
.nw .startbtn{ position:relative; width:100%; cursor:pointer; text-align:left; border:none; border-radius:13px;
  padding:16px 18px; color:#05141d; background:linear-gradient(180deg,var(--blue-b),var(--blue-d)); font-family:var(--sans);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42), 0 2px 0 var(--blue-d), 0 16px 30px -14px rgba(31,155,217,.85);
  transition:transform .08s, filter .12s; }
.nw .startbtn:hover{ filter:brightness(1.06); }
.nw .startbtn:active{ transform:translateY(2px); }
.nw .startbtn .in{ display:flex; align-items:center; gap:14px; }
.nw .startbtn .play{ width:36px; height:36px; flex:0 0 auto; border-radius:9px; background:rgba(4,18,28,.2); display:flex; align-items:center; justify-content:center; }
.nw .startbtn .tri{ width:0; height:0; border-left:15px solid #05141d; border-top:9px solid transparent; border-bottom:9px solid transparent; margin-left:3px; }
.nw .startbtn .big{ font-family:var(--cond); font-size:26px; font-weight:700; letter-spacing:.6px; line-height:1; }
.nw .startbtn .sm{ font-size:12.5px; font-weight:600; opacity:.72; margin-top:3px; }

/* ---------- spine cards ---------- */
.nw .sp{ flex:0 0 auto; padding:13px; }
.nw .splbl{ display:flex; align-items:center; justify-content:space-between; font-family:var(--mono); font-size:10.5px; letter-spacing:1.5px; color:var(--muted); margin-bottom:10px; }
.nw .pill{ font-family:var(--mono); font-size:10.5px; font-weight:500; padding:2px 8px; border-radius:20px; letter-spacing:0; }
.nw .pill.ok{ color:var(--green); background:rgba(98,229,138,.08); border:1px solid rgba(98,229,138,.4); }
.nw .pill.warn{ color:var(--amber); background:rgba(227,160,8,.08); border:1px solid rgba(227,160,8,.4); }
.nw .seg{ display:flex; gap:5px; background:#12171e; border:1px solid var(--line); border-radius:10px; padding:4px; }
.nw .seg button{ flex:1; text-align:center; cursor:pointer; font-family:var(--sans); font-size:12.5px; font-weight:600;
  padding:8px 4px; border-radius:8px; border:1px solid transparent; background:transparent; color:var(--muted); transition:.14s; }
.nw .seg button.on{ border-color:var(--blue); background:linear-gradient(180deg,rgba(31,155,217,.24),rgba(31,155,217,.08)); color:#dff2fb; }
.nw .seg button:not(.on):hover{ color:var(--text); }
.nw .seg button[hidden]{ display:none; }
.nw .krows{ display:flex; flex-direction:column; gap:9px; }
.nw .kr{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nw .kr .ka{ font-size:13.5px; color:#c9d3dd; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nw .kr .ka i{ font-style:normal; color:var(--dim); font-size:12px; }
.nw .kr .ks{ display:flex; gap:5px; flex:0 0 auto; }
.nw .kc{ display:inline-flex; align-items:center; justify-content:center; min-width:24px; height:24px; padding:0 7px;
  font-family:var(--mono); font-size:11px; font-weight:600; color:#cdd6df; background:#20262d; border:1px solid var(--line2);
  border-bottom-width:2px; border-radius:5px; }
/* race card */
.nw .race{ flex:0 0 auto; background:linear-gradient(180deg,rgba(98,229,138,.07),transparent); border:1px solid var(--line); border-radius:13px; padding:12px 13px; }
.nw .race .hd{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.nw .race .dia{ color:var(--green); font-family:var(--mono); font-size:13px; }
.nw .race .hl{ font-family:var(--mono); font-size:10px; letter-spacing:1.5px; color:var(--muted); }
.nw .race .rr{ display:flex; align-items:center; gap:9px; margin-top:7px; }
.nw .race .rr:first-of-type{ margin-top:0; }
.nw .race .rp{ flex:1; font-size:13.5px; color:#c9d3dd; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nw .race .rt{ font-family:var(--mono); font-size:13px; color:#eef4f9; }
.nw .race .inv{ display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.45; color:#c9d3dd; }
.nw .race .inv .gr{ color:var(--green); }
.nw a, .nw .linklike{ color:var(--blue-b); text-decoration:none; cursor:pointer; }
.nw a:hover, .nw .linklike:hover{ color:#7cc9ef; text-decoration:underline; }
.nw .rmed{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:20px; border-radius:5px;
  font-family:var(--mono); font-size:11px; font-weight:700; color:var(--muted); background:transparent; flex:0 0 auto; }
.nw .rmed.m1{ background:var(--gold); color:#0b0f14; } .nw .rmed.m2{ background:var(--silver); color:#0b0f14; }
.nw .rmed.m3{ background:var(--bronze); color:#0b0f14; }

/* ---------- main window ---------- */
.nw .mainbar{ flex:0 0 auto; background:var(--panel); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line); border-radius:14px 14px 0 0; border-bottom:none; overflow:hidden; }
.nw .mainbar .tabs{ display:flex; overflow-x:auto; border-bottom:1px solid var(--line); }
.nw .mainbar button{ position:relative; cursor:pointer; font-family:var(--sans); font-size:14px; font-weight:600; letter-spacing:.2px;
  padding:12px 17px; border:none; background:transparent; color:var(--muted); border-bottom:2px solid transparent; transition:.14s; white-space:nowrap; }
.nw .mainbar button.on{ background:rgba(31,155,217,.08); color:#fff; border-bottom-color:var(--blue); }
.nw .mainbar button:not(.on):hover{ color:#fff; }
.nw .mainbody{ flex:1; min-height:0; background:var(--panel); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line); border-top:none; border-radius:0 0 14px 14px; padding:20px; overflow-y:auto; }
@media (max-width:900px){ .nw .mainbody{ padding:16px; overflow:visible; } }
.nw .ph{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.nw .ph .t{ font-family:var(--cond); font-size:24px; font-weight:700; letter-spacing:.3px; }
.nw .ph .s{ font-size:13px; color:var(--muted); margin-top:2px; }
.nw .gpill{ font-family:var(--mono); font-size:11px; color:var(--green); border:1px solid rgba(98,229,138,.35);
  background:rgba(98,229,138,.08); border-radius:20px; padding:4px 10px; white-space:nowrap; }
.nw .mlbl{ font-family:var(--mono); font-size:10.5px; letter-spacing:1.5px; color:var(--muted); }
.nw .note{ margin-bottom:15px; padding:11px 13px; border-radius:10px; background:rgba(31,155,217,.09);
  border:1px solid rgba(31,155,217,.3); font-size:13px; line-height:1.5; color:#cfe4f2; }
.nw .note b{ color:#fff; }

/* buttons */
.nw .gbtn{ cursor:pointer; font-family:var(--sans); font-weight:600; font-size:13.5px; color:#dff2fb;
  background:rgba(31,155,217,.14); border:1px solid var(--blue); border-radius:9px; padding:11px; transition:.14s; }
.nw .gbtn:hover{ background:rgba(31,155,217,.28); }
.nw .gbtn:disabled{ opacity:.45; cursor:default; } .nw .gbtn:disabled:hover{ background:rgba(31,155,217,.14); }
.nw .obtn{ cursor:pointer; font-family:var(--sans); font-size:12.5px; color:var(--muted); background:transparent;
  border:1px solid var(--line2); border-radius:8px; padding:6px 11px; transition:.14s; }
.nw .obtn:hover{ color:#fff; }
.nw .pbtn{ cursor:pointer; font-family:var(--sans); font-weight:600; font-size:13.5px; color:#05141d;
  background:linear-gradient(180deg,var(--blue-b),var(--blue-d)); border:none; border-radius:9px; padding:10px 20px;
  box-shadow:0 8px 18px -10px rgba(31,155,217,.8); }
.nw .pbtn:hover{ filter:brightness(1.06); }
.nw .dbtn{ cursor:pointer; font-family:var(--sans); font-size:11.5px; color:#e88; background:transparent;
  border:1px solid rgba(220,120,120,.35); border-radius:7px; padding:6px 9px; }
.nw .dbtn:hover{ color:#f7a5a5; border-color:rgba(220,120,120,.6); }
.nw .sbtn{ cursor:pointer; font-family:var(--sans); font-size:11.5px; font-weight:600; color:#dff2fb;
  background:rgba(31,155,217,.14); border:1px solid var(--blue); border-radius:7px; padding:6px 10px; }
.nw .sbtn:hover{ background:rgba(31,155,217,.26); }
.nw .nbtn{ cursor:pointer; font-family:var(--sans); font-size:11.5px; color:var(--muted); background:transparent;
  border:1px solid var(--line2); border-radius:7px; padding:6px 9px; }
.nw .nbtn:hover{ color:#fff; }

/* toggles */
.nw .tg{ width:42px; height:23px; border-radius:20px; position:relative; cursor:pointer; padding:0; flex:0 0 auto;
  border:1px solid var(--line2); background:#20262b; transition:.18s; }
.nw .tg .kn{ position:absolute; top:2px; left:2px; width:17px; height:17px; border-radius:50%; background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.55); transform:translateX(0); transition:transform .18s; }
.nw .tg.on{ border-color:transparent; background:linear-gradient(90deg,var(--blue-d),var(--blue)); }
.nw .tg.on .kn{ transform:translateX(19px); }
.nw .tg.dis{ opacity:.4; cursor:not-allowed; }

/* ---------- aircraft panel ---------- */
.nw .acgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; }
@media (max-width:900px){ .nw .acgrid{ grid-template-columns:1fr; } }
.nw .acc{ position:relative; text-align:left; cursor:pointer; font-family:var(--sans); color:var(--text);
  background:rgba(255,255,255,.02); border:1px solid var(--line); border-radius:12px; padding:11px;
  display:flex; flex-direction:column; gap:9px; transition:.15s; }
.nw .acc:hover{ border-color:var(--line2); background:rgba(255,255,255,.04); }
.nw .acc.on{ background:linear-gradient(180deg,rgba(31,155,217,.16),rgba(31,155,217,.04)); border-color:var(--blue);
  box-shadow:0 0 0 1px var(--blue), 0 10px 26px -14px rgba(31,155,217,.7); }
.nw .acc .thumb{ position:relative; height:74px; border-radius:9px; overflow:hidden; border:1px solid var(--line);
  background:repeating-linear-gradient(45deg,#171d24 0 8px,#1b222a 8px 16px); display:flex; align-items:center; justify-content:center; }
.nw .thumbimg{ position:absolute; inset:7px; width:calc(100% - 14px); height:calc(100% - 14px); object-fit:contain;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.5)); }
.nw .thumb .delta, .nw .dprev .delta{ display:none; }
.nw .thumb.noimg .delta, .nw .dprev.noimg .delta{ display:block; }
.nw .acc .delta{ width:64px; height:34px; clip-path:polygon(50% 4%,100% 96%,50% 72%,0 96%); background:linear-gradient(160deg,#3a4a5a,#1a2732); }
.nw .acc.on .delta{ background:linear-gradient(160deg,var(--blue),#12222e); }
.nw .acc .tag{ position:absolute; bottom:5px; left:7px; font-family:var(--mono); font-size:8.5px; letter-spacing:.5px; color:var(--dim); }
.nw .acc .nm{ font-size:15px; font-weight:600; line-height:1.15; }
.nw .acc .by{ font-family:var(--mono); font-size:10.5px; color:var(--muted); margin-top:2px; }
.nw .acc .st{ position:absolute; top:9px; right:9px; font-family:var(--mono); font-size:9px; letter-spacing:.5px; color:var(--dim); }
.nw .acc .st.in{ font-weight:600; color:#05141d; background:var(--blue-b); border-radius:5px; padding:3px 6px; }
.nw .detail{ margin-top:16px; border:1px solid var(--line); border-radius:13px; overflow:hidden; background:rgba(255,255,255,.015); }
.nw .dtop{ display:flex; gap:16px; padding:16px; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.nw .dprev{ position:relative; flex:1; min-width:200px; height:132px; border-radius:10px; overflow:hidden; border:1px solid var(--line);
  background:repeating-linear-gradient(45deg,#151b21 0 10px,#191f27 10px 20px); display:flex; align-items:center; justify-content:center; }
.nw .dprev .delta{ width:150px; height:80px; clip-path:polygon(50% 3%,100% 97%,50% 72%,0 97%);
  background:linear-gradient(160deg,var(--blue),#12222e); box-shadow:0 8px 20px -8px rgba(31,155,217,.5); }
.nw .dprev .cap{ position:absolute; bottom:8px; left:10px; font-family:var(--mono); font-size:9.5px; letter-spacing:.5px; color:var(--dim); }
.nw .dmeta{ flex:1; min-width:190px; display:flex; flex-direction:column; justify-content:center; }
.nw .dmeta .nm{ font-family:var(--cond); font-size:26px; font-weight:700; line-height:1.05; }
.nw .dmeta .by{ font-family:var(--mono); font-size:12px; color:var(--blue-b); margin-top:4px; }
.nw .dmeta .tg2{ font-size:14px; line-height:1.5; color:#c2ccd6; margin-top:10px; }
.nw .dspecs{ padding:14px; }
.nw .spgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:11px; }
@media (max-width:900px){ .nw .spgrid{ grid-template-columns:repeat(2,1fr); } }
.nw .sptile{ background:#12171e; border:1px solid var(--line); border-radius:9px; padding:10px 11px; }
.nw .sptile .l{ font-family:var(--cond); font-size:11px; font-weight:600; letter-spacing:.6px; text-transform:uppercase; color:var(--muted); }
.nw .sptile .v{ margin-top:4px; display:flex; align-items:baseline; gap:4px; }
.nw .sptile .v b{ font-family:var(--mono); font-size:19px; font-weight:500; color:#eef4f9; }
.nw .sptile .v i{ font-style:normal; font-size:11px; color:var(--dim); }
.nw .sptile .pb{ margin-top:8px; height:3px; border-radius:3px; background:#0b0f14; overflow:hidden; }
.nw .sptile .pb i{ display:block; height:100%; background:linear-gradient(90deg,var(--blue-d),var(--blue-b)); }

/* ---------- controls panel ---------- */
.nw .cgrid{ display:grid; grid-template-columns:1.05fr 1fr; gap:16px; align-items:start; }
@media (max-width:900px){ .nw .cgrid{ grid-template-columns:1fr; } }
.nw .ccol{ display:flex; flex-direction:column; gap:14px; }
.nw .cbox{ border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.nw .cbox .bh{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px 13px; background:#12171e; border-bottom:1px solid var(--line); }
.nw .cbox .bh .t{ font-weight:600; font-size:14px; }
.nw .cbox .bh .m{ font-family:var(--mono); font-size:10.5px; color:var(--muted); }
.nw .cbox .bb{ padding:13px; }
.nw .cbox .bb.tight{ padding:6px 13px; }
.nw .fkrow{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid rgba(48,54,61,.5); }
.nw .fkrow:last-child{ border-bottom:none; }
.nw .fkrow .ka{ font-size:13px; color:#c9d3dd; min-width:0; }
.nw .fkrow .ka i{ font-style:normal; color:var(--dim); font-size:11.5px; }
.nw .fkrow .kc{ min-width:22px; height:22px; font-size:10.5px; }
.nw .invrow{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; }
.nw .invrow .l{ font-size:13.5px; color:#c9d3dd; }
.nw .kbtag{ font-family:var(--mono); font-size:9.5px; letter-spacing:.5px; color:var(--dim); border:1px solid var(--line2); border-radius:5px; padding:2px 6px; }
.nw .devline{ font-family:var(--mono); font-size:11.5px; color:var(--muted); margin-bottom:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nw .chan{ display:flex; flex-direction:column; gap:9px; }
.nw .chrow{ display:flex; align-items:center; gap:9px; }
.nw .chrow .cl{ width:58px; flex:0 0 auto; font-family:var(--mono); font-size:10.5px; color:var(--dim); }
.nw .chbar{ flex:1; height:7px; border-radius:4px; background:#0b0f14; overflow:hidden; border:1px solid var(--line); position:relative; }
.nw .chbar .tick{ position:absolute; left:50%; top:0; bottom:0; width:1px; background:rgba(255,255,255,.14); }
.nw .chbar .fl{ position:absolute; top:0; bottom:0; left:50%; width:0; background:linear-gradient(90deg,var(--blue-d),var(--blue-b)); }
.nw .chbar .pos{ position:absolute; top:0; bottom:0; width:3px; border-radius:2px; background:#77828e;
  transform:translateX(-50%); left:50%; }
.nw .chrow.assigned .cl{ color:var(--blue-b); font-weight:700; }
.nw .chrow.assigned .pos{ background:#e8f6ff; box-shadow:0 0 7px rgba(62,181,232,.9); }
.nw .wizinv{ margin-top:10px; padding:7px 12px; border:1px solid var(--line); border-radius:9px;
  background:rgba(11,15,20,.55); }
.nw .wizinv .l i{ color:var(--dim); font-style:normal; }
.nw .invrow .l .ih{ color:var(--dim); font-style:normal; font-size:12px; }
.nw .swbind{ display:flex; align-items:center; gap:10px; padding:6px 10px; border:1px solid var(--line);
  border-radius:9px; margin-top:7px; background:rgba(11,15,20,.45); }
.nw .demo .swbind{ width:100%; margin-top:0; }
.nw .demo .swbind + .swbind{ margin-top:7px; }
.nw .swbind .l{ font-size:12.5px; color:#c9d3dd; width:96px; flex:0 0 auto; }
.nw .swbind .b{ font-family:var(--mono); font-size:11.5px; color:var(--blue-b); flex:1; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nw .swbind .kbf{ font-size:10.5px; color:var(--dim); flex:0 0 auto; }
.nw .swbind.arm{ border-color:var(--blue); background:rgba(31,155,217,.10); }
.nw .swbind.arm .b{ color:var(--amber); }
.nw .obtn.sm{ padding:4px 10px; font-size:11px; }
.nw .caphint{ font-size:11.5px; color:var(--dim); margin-top:8px; line-height:1.45; }
.nw .blights{ display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.nw .blight{ width:16px; height:16px; border-radius:5px; background:#0b0f14; border:1px solid var(--line); font-family:var(--mono);
  font-size:8px; display:flex; align-items:center; justify-content:center; color:var(--dim); }
.nw .blight.on{ background:var(--green); color:#08130c; font-weight:700; border-color:var(--green); }
.nw .prow{ display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; margin-bottom:4px;
  background:transparent; border:1px solid transparent; }
.nw .prow.active{ background:rgba(31,155,217,.08); border-color:rgba(31,155,217,.35); }
.nw .prow .pi{ min-width:0; flex:1; }
.nw .prow .pn2{ display:flex; align-items:center; gap:8px; }
.nw .pname{ font-size:13.5px; font-weight:600; background:none; border:0; color:var(--text); font-family:var(--sans);
  padding:2px 3px; border-radius:5px; min-width:40px; max-width:170px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nw .pname:focus{ outline:1px solid var(--blue); background:#0b0f14; }
.nw .inuse{ font-family:var(--mono); font-size:9px; color:var(--green); border:1px solid rgba(98,229,138,.4); border-radius:5px; padding:1px 5px; flex:0 0 auto; }
.nw .pmeta{ font-family:var(--mono); font-size:10.5px; color:var(--dim); margin-top:2px; }
.nw .pact{ display:flex; gap:5px; flex:0 0 auto; }
.nw .confirm{ display:flex; gap:9px; align-items:center; justify-content:flex-end; font-size:12.5px; color:#e6b8bb;
  padding:8px 10px 4px; }

/* ---------- leaderboard panel ---------- */
/* course rail + aircraft pills: registry-driven selectors (scale to ~10 courses via horizontal scroll) */
.nw .crail{ display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; margin-bottom:8px; scrollbar-width:thin; }
.nw .cpill{ flex:0 0 auto; font-family:var(--mono); font-size:11.5px; letter-spacing:.4px; color:var(--muted);
  background:#12171e; border:1px solid var(--line); border-radius:999px; padding:7px 14px; cursor:pointer; white-space:nowrap; }
.nw .cpill:hover{ color:#fff; border-color:var(--line2); }
.nw .cpill.on{ color:#05141d; background:var(--green, #27b653); border-color:transparent; font-weight:700; }
.nw .apills{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.nw .apill{ font-size:12px; color:var(--muted); background:transparent; border:1px solid var(--line); border-radius:8px;
  padding:5px 11px; cursor:pointer; }
.nw .apill:hover{ color:#fff; border-color:var(--line2); }
.nw .apill.on{ color:#fff; background:rgba(31,155,217,.18); border-color:var(--blue); }
.nw .flyas{ display:flex; align-items:center; gap:10px; margin-bottom:14px; background:#12171e; border:1px solid var(--line); border-radius:10px; padding:9px 12px; }
.nw .flyas label{ font-family:var(--mono); font-size:11px; letter-spacing:.5px; color:var(--muted); flex:0 0 auto; }
.nw .flyas input{ flex:1; min-width:0; background:transparent; border:none; color:#fff; font-family:var(--sans);
  font-size:15px; font-weight:600; padding:2px 0; outline:none; }
.nw .flyas .fh{ font-family:var(--mono); font-size:11px; color:var(--dim); flex:0 0 auto; }
.nw .btab{ border:1px solid var(--line); border-radius:11px; overflow:hidden; }
.nw .bhead{ display:grid; grid-template-columns:44px 1fr 100px; gap:8px; padding:9px 12px; background:#12171e;
  border-bottom:1px solid var(--line); font-family:var(--mono); font-size:10px; letter-spacing:1px; color:var(--dim); }
.nw .bhead .r{ text-align:right; }
.nw .bscroll{ max-height:290px; overflow-y:auto; padding:4px; }
.nw .brow{ display:grid; grid-template-columns:44px 1fr 100px; gap:8px; align-items:center; padding:9px 12px; border-radius:8px;
  background:transparent; border:1px solid transparent; }
.nw .brow.you{ background:linear-gradient(90deg,rgba(31,155,217,.2),rgba(31,155,217,.05)); border-color:var(--blue); box-shadow:0 0 0 1px rgba(31,155,217,.45); }
.nw .brow.pod .bp{ font-size:14.5px; }
.nw .brow.pod .bt{ font-size:15px; }
.nw .brow.pod1{ background:linear-gradient(90deg,rgba(245,200,76,.16),rgba(245,200,76,.03)); border-color:rgba(245,200,76,.4); }
.nw .brow.pod1 .bt{ color:var(--gold); font-size:16.5px; }
.nw .brow.pod2{ background:linear-gradient(90deg,rgba(201,212,221,.10),rgba(201,212,221,.02)); border-color:rgba(201,212,221,.28); }
.nw .brow.pod3{ background:linear-gradient(90deg,rgba(217,153,92,.12),rgba(217,153,92,.02)); border-color:rgba(217,153,92,.32); }
.nw .brow.pod.you{ box-shadow:0 0 0 1px rgba(31,155,217,.45), 0 0 14px rgba(31,155,217,.25); }
.nw .brow .bml{ font-size:17px; line-height:1; filter:drop-shadow(0 0 6px rgba(245,200,76,.3)); }
.nw .brow .bp{ font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nw .brow .bp .youb{ font-family:var(--mono); font-size:9px; color:#05141d; background:var(--blue-b); border-radius:4px; padding:1px 5px; margin-left:7px; }
.nw .brow .bc{ font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nw .brow .bt{ font-family:var(--mono); font-size:13.5px; text-align:right; color:#eef4f9; }
.nw .standing{ margin-top:8px; display:grid; grid-template-columns:44px 1fr 118px 84px; gap:8px; padding:11px 12px; border-radius:9px;
  background:linear-gradient(90deg,rgba(227,160,8,.16),rgba(227,160,8,.05)); border:1px solid rgba(227,160,8,.4); align-items:center; }
.nw .standing .sr{ font-family:var(--mono); font-size:12px; color:var(--amber); }
.nw .standing .sp2{ font-size:13px; font-weight:600; }
.nw .standing .youb{ font-family:var(--mono); font-size:10px; color:#05141d; background:var(--amber); border-radius:4px; padding:1px 5px; margin-left:4px; }
.nw .standing .so{ font-size:11.5px; color:var(--muted); }
.nw .standing .st2{ font-family:var(--mono); font-size:13px; text-align:right; color:#eef4f9; }
.nw .offcard{ border:1px solid rgba(227,160,8,.35); background:rgba(227,160,8,.06); border-radius:12px; padding:20px; text-align:center; }
.nw .offcard .ol{ font-family:var(--mono); font-size:11px; letter-spacing:1.5px; color:var(--amber); margin-bottom:8px; }
.nw .offcard .ot{ font-size:16px; font-weight:600; margin-bottom:6px; }
.nw .offcard .ob{ font-size:13.5px; line-height:1.55; color:#c2ccd6; max-width:400px; margin:0 auto; }
.nw .offcard .ob b{ color:#fff; }
.nw .pbest{ margin-top:10px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:12px 14px; border-radius:10px; background:rgba(31,155,217,.07); border:1px solid rgba(31,155,217,.28); }
.nw .pbest .l{ font-family:var(--mono); font-size:10px; letter-spacing:1px; color:var(--muted); }
.nw .pbest .v{ display:flex; align-items:baseline; gap:8px; margin-top:3px; }
.nw .pbest .v b{ font-family:var(--mono); font-size:24px; font-weight:500; color:#fff; }
.nw .pbest .v i{ font-style:normal; font-size:12px; color:var(--muted); }
.nw .pbest .r{ font-size:12px; color:var(--dim); text-align:right; }
.nw .bempty{ text-align:center; color:var(--muted); font-size:13px; padding:26px 12px; line-height:1.5; }
.nw .bskel{ height:13px; border-radius:5px; margin:10px 4px; background:linear-gradient(90deg,#141a22,#1c2430,#141a22);
  background-size:220% 100%; animation:nw-skel 1.1s linear infinite; }
@keyframes nw-skel{ from{ background-position:220% 0; } to{ background-position:0 0; } }

/* ---------- settings panel ---------- */
.nw .qgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width:900px){ .nw .qgrid{ grid-template-columns:1fr; } }
.nw .qcard{ text-align:left; cursor:pointer; font-family:var(--sans); color:var(--text); display:flex; flex-direction:column; gap:9px;
  background:rgba(255,255,255,.02); border:1px solid var(--line); border-radius:12px; padding:13px; transition:.15s; }
.nw .qcard:hover{ border-color:var(--line2); background:rgba(255,255,255,.04); }
.nw .qcard.on{ background:linear-gradient(180deg,rgba(31,155,217,.16),rgba(31,155,217,.04)); border-color:var(--blue);
  box-shadow:0 0 0 1px var(--blue); }
.nw .qcard .qh{ display:flex; align-items:center; justify-content:space-between; }
.nw .qcard .qt{ font-family:var(--cond); font-size:19px; font-weight:700; letter-spacing:.4px; }
.nw .qcard .qc{ width:18px; height:18px; border-radius:50%; background:var(--blue-b); display:flex; align-items:center; justify-content:center; color:#05141d; font-size:11px; font-weight:700; }
.nw .qcard .qd{ font-size:12.5px; line-height:1.45; color:#b6c0ca; min-height:36px; }
.nw .qcard .qb{ font-family:var(--mono); font-size:10px; color:var(--green); background:rgba(98,229,138,.1);
  border:1px solid rgba(98,229,138,.35); border-radius:20px; padding:3px 9px; align-self:flex-start; }
.nw .qapplyrow{ margin-top:12px; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  border:1px solid var(--blue); border-radius:12px; padding:12px 14px;
  background:linear-gradient(180deg,rgba(31,155,217,.14),rgba(31,155,217,.03)); }
.nw .qapplyrow .l{ display:flex; flex-direction:column; gap:2px; font-weight:600; }
.nw .qapplyrow .l small{ font-weight:400; font-size:12px; color:#b6c0ca; }
.nw .qbtns{ display:flex; gap:10px; flex:0 0 auto; }
.nw .qapply{ cursor:pointer; font-family:var(--cond); font-size:15px; font-weight:700; letter-spacing:.4px; color:#05141d;
  background:linear-gradient(180deg,var(--blue-b),var(--blue-d)); border:0; border-radius:9px; padding:10px 18px;
  box-shadow:0 0 12px rgba(31,155,217,.35); transition:.15s; }
.nw .qapply:hover{ filter:brightness(1.12); }
.nw .qcancel{ cursor:pointer; font-family:var(--sans); font-size:13px; color:var(--text);
  background:rgba(255,255,255,.03); border:1px solid var(--line); border-radius:9px; padding:10px 14px; transition:.15s; }
.nw .qcancel:hover{ border-color:var(--line2); background:rgba(255,255,255,.06); }
.nw .set2{ margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:900px){ .nw .set2{ grid-template-columns:1fr; } }
.nw .setbox{ border:1px solid var(--line); border-radius:12px; padding:14px; }
.nw .setrow{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; }
.nw .setrow .l{ font-size:13.5px; color:#c9d3dd; }
.nw .setrow .l small{ display:block; font-size:11.5px; color:var(--dim); margin-top:2px; }
.nw .credrow{ display:flex; justify-content:space-between; gap:10px; font-size:12.5px; color:#b6c0ca; padding:3.5px 0; }
.nw .credrow .c{ font-family:var(--mono); font-size:11px; color:var(--dim); text-align:right; flex:0 0 auto; }
.nw .aboutft{ margin-top:12px; padding-top:12px; border-top:1px solid rgba(48,54,61,.5); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.nw .aboutft .v{ font-family:var(--mono); font-size:11px; color:var(--dim); }

/* ---------- wizard modal ---------- */
#nw-wiz{ position:fixed; inset:0; z-index:80; display:none; align-items:center; justify-content:center; padding:20px;
  background:rgba(6,9,13,.62); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  font-family:var(--sans); color:var(--text); }
#nw-wiz.show{ display:flex; }
.nw .wcard{ width:100%; max-width:580px; max-height:88vh; display:flex; flex-direction:column; background:var(--panel2);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid var(--line2); border-radius:16px;
  box-shadow:0 34px 90px -34px #000; overflow:hidden; }
.nw.nwlow .wcard{ background:rgba(28,34,43,.98); backdrop-filter:none; }
.nw .whead{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 17px; border-bottom:1px solid var(--line); }
.nw .whead .t{ font-family:var(--cond); font-size:19px; font-weight:700; letter-spacing:.3px; }
.nw .whead .s{ font-family:var(--mono); font-size:11px; color:var(--muted); margin-top:1px; }
.nw .whead .x{ cursor:pointer; width:30px; height:30px; flex:0 0 auto; border-radius:8px; border:1px solid var(--line2);
  background:transparent; color:var(--muted); font-size:15px; }
.nw .whead .x:hover{ color:#fff; background:rgba(255,255,255,.05); }
.nw .wrail{ flex:0 0 auto; display:flex; gap:5px; padding:13px 17px; }
.nw .wrail span{ flex:1; height:4px; border-radius:3px; background:var(--line); }
.nw .wrail span.done{ background:var(--blue-d); } .nw .wrail span.cur{ background:var(--blue-b); }
.nw .wbody{ flex:1; min-height:0; overflow-y:auto; overflow-x:hidden; padding:6px 20px 20px; }
.nw .wfoot{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 17px; border-top:1px solid var(--line); }
.nw .winstr{ font-size:14px; line-height:1.55; color:#c2ccd6; text-align:center; margin:8px 0 14px; }
.nw .winstr b{ color:#fff; }
.nw .demo{ height:120px; margin:10px 0 14px; border-radius:10px; background:radial-gradient(120% 120% at 50% 20%,#1a2536,#0d1420);
  border:1px solid var(--line); display:grid; place-items:center; position:relative; overflow:hidden; }
.nw .demo svg{ width:150px; height:86px; }
.nw .acg{ transition:transform .05s linear; }
.nw .capd{ position:absolute; bottom:8px; left:0; right:0; text-align:center; font-family:var(--mono); font-size:11px; color:var(--muted); }
.nw .capd b{ color:var(--green); }
.nw .pref{ position:absolute; inset:0; pointer-events:none; }
.nw .pref .hz{ position:absolute; left:9%; right:9%; top:50%; border-top:1px dashed rgba(255,255,255,.15); }
.nw .pref .tl,.nw .pref .ln{ position:absolute; top:50%; transform:translateY(-50%); font:700 8.5px var(--mono); letter-spacing:.12em; }
.nw .pref .tl{ left:9px; color:#f2b8bd; } .nw .pref .ln{ right:9px; color:#7fe0a8; }
.nw .thrg{ width:66%; }
.nw .thrg .bar{ height:16px; border-radius:8px; background:#0b0f14; border:1px solid var(--line); overflow:hidden; position:relative; }
.nw .thrg .bar i{ position:absolute; left:0; top:0; bottom:0; width:0%; background:linear-gradient(90deg,#3a7d2e,var(--green)); border-radius:8px; }
.nw .thrg .cap{ text-align:center; font-family:var(--mono); font-size:10px; color:var(--muted); margin-top:6px; }
.nw .swrow{ display:flex; justify-content:center; flex-wrap:wrap; gap:12px 16px; font-size:12.5px; }
.nw .swrow b{ color:var(--green); font-family:var(--mono); font-weight:500; }
.nw .inline{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; user-select:none; padding:5px 10px;
  border-radius:8px; background:rgba(255,255,255,.06); border:1px solid var(--line); font-size:12px; }
.nw .checks{ display:flex; flex-direction:column; gap:8px; margin:4px 0 2px; }
.nw .chk{ display:flex; align-items:center; gap:11px; font-size:13.5px; color:#c9d3dd; padding:11px 13px; border-radius:9px;
  background:#12171e; border:1px solid var(--line); }
.nw .chk .mk{ width:20px; height:20px; flex:0 0 auto; border-radius:5px; border:1px solid var(--line2); background:transparent;
  color:#0b0f14; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; }
.nw .chk.good{ background:rgba(98,229,138,.07); border-color:rgba(98,229,138,.4); }
.nw .chk.good .mk{ background:var(--green); border-color:var(--green); }
.nw .chk .mn{ margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--muted); }
.nw .wfield label{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:1px; color:var(--muted); margin-bottom:7px; }
.nw .wfield input{ width:100%; background:#0b0f14; border:1px solid var(--blue); border-radius:9px; color:#fff;
  font-family:var(--sans); font-size:15px; padding:11px 13px; outline:none; }
.nw .selrow{ display:flex; gap:8px; margin:2px 0 8px; }
.nw select{ flex:1; background:#0b0f14; color:var(--text); border:1px solid var(--line2); border-radius:8px; padding:8px 9px;
  font-family:var(--sans); font-size:12.5px; }

/* ---------- flying pill + HUD keys strip + toast ---------- */
#nw-launch{ position:fixed; left:0; right:0; bottom:26px; z-index:26; display:flex; justify-content:center; pointer-events:none;
  font-family:var(--sans); color:var(--text); }
#nw-launch .pillw{ display:flex; align-items:center; gap:14px; background:rgba(14,17,23,.72); backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px); border:1px solid var(--line2); border-radius:12px; padding:9px 10px 9px 16px;
  box-shadow:0 14px 34px -16px #000; pointer-events:auto; }
.nw.nwlow #nw-launch .pillw{ background:rgba(14,17,23,.95); backdrop-filter:none; }
#nw-launch .yt{ font-size:13px; color:var(--muted); }
/* No outline — it read as heavy next to the plain key legends. The tinted fill + hover keep it
   legible AS A BUTTON (it's the only clickable thing in this bar), just quieter. */
#nw-launch .pz{ cursor:pointer; font-family:var(--sans); font-weight:600; font-size:13px; color:#dff2fb;
  background:rgba(31,155,217,.16); border:0; border-radius:8px; padding:8px 14px; }
#nw-launch .pz:hover{ background:rgba(31,155,217,.30); }
#nw-launch .pz .esc{ font-family:var(--mono); font-size:11px; color:var(--muted); font-weight:400; }
#nw-launch .warn2{ width:8px; height:8px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 3px rgba(227,160,8,.18); }
/* In-flight key legends beside the pause button — reference, not controls (no pointer affordance). */
#nw-launch .act{ display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--muted); white-space:nowrap; }
#nw-launch .act b{ font-family:var(--mono); font-size:11px; font-weight:500; color:#dff2fb;
  background:rgba(255,255,255,.07); border:1px solid var(--line2); border-radius:5px; padding:3px 7px; }
@media (max-width:640px){ #nw-launch .pillw{ gap:9px; padding:8px 9px 8px 12px; } #nw-launch .act{ font-size:11.5px; } }
#nw-hudkeys{ position:fixed; left:18px; bottom:52px; z-index:24; display:none; flex-direction:column; gap:6px;
  font-family:var(--sans); color:var(--text); background:rgba(14,17,23,.6); border:1px solid var(--line);
  border-radius:10px; padding:9px 12px; pointer-events:none; }
#nw-hudkeys.show{ display:flex; }
#nw-hudkeys .kr .ka{ font-size:12px; }
#nw-hudkeys .kc{ min-width:20px; height:20px; font-size:10px; }
#nw-toast{ position:fixed; left:0; right:0; bottom:84px; z-index:70; display:flex; justify-content:center; pointer-events:none;
  opacity:0; transform:translateY(6px); transition:opacity .2s, transform .2s; font-family:var(--sans); }
#nw-toast.show{ opacity:1; transform:none; }
#nw-toast .tw{ background:rgba(14,17,23,.92); border:1px solid var(--blue); border-radius:10px; padding:10px 16px;
  font-size:13px; color:#dff2fb; box-shadow:0 14px 34px -16px #000; display:flex; gap:9px; align-items:center; }
#nw-toast .ti{ color:var(--amber); font-weight:700; }
@media (prefers-reduced-motion:reduce){ .nw *{ animation:none!important; transition:none!important; } }
