#km-flight-toggle[hidden],#km-flight-screen[hidden],#km-flight-screen [hidden] { display:none!important; }
#km-flight-toggle { position:absolute; z-index:10; transform:translate(-50%,-50%); display:flex; align-items:center; gap:4px; padding:9px 8px; border:0; background:transparent; color:#eef0ff; font:650 12.5px system-ui,sans-serif; text-shadow:0 1px 3px #050610,0 0 5px #050610; }
#km-flight-toggle svg { color:#94a9ed; flex:none; }
#km-flight-toggle:is(:hover,:focus-visible) span { text-decoration:underline; text-underline-offset:5px; text-decoration-color:#94a9ed; }
#kmu.km-piloting { overflow:clip; }
#kmu.km-piloting > :not(#kmu-gl):not(#kmu-ov):not(#km-flight-screen) { visibility:hidden!important; pointer-events:none!important; }
#km-flight-screen { --flight-ink:#090c16; --flight-light:#e8e7f4; --flight-soft:#a5a5bd; --flight-lilac:#b5b0da; --flight-amber:#dfb878; position:absolute; inset:0; z-index:100; overflow:hidden; touch-action:none; cursor:crosshair; outline:none; color:var(--flight-light); font:13px system-ui,sans-serif; background:radial-gradient(ellipse at 50% 30%,transparent 40%,#07091325 90%); }
.km-flight-space,.km-flight-canopy { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.km-flight-hull { fill:#080b15d9; stroke:none; }
.km-flight-frame-edge { fill:none; stroke:url(#km-flight-frame-light); stroke-width:.8; vector-effect:non-scaling-stroke; }
.km-flight-frame-lamp { fill:none; stroke:#dedbf9; stroke-width:1.6; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 4px #b5a7f9); }
.km-flight-header { position:absolute; inset:26px 3.8% auto; display:flex; align-items:flex-start; gap:10px; }
.km-flight-brand { margin-right:auto; padding-left:17px; border-left:1px solid #aaa7c3; text-shadow:0 1px 8px #080a13; }
.km-flight-brand b { font-size:19px; font-weight:600; letter-spacing:.2em; }
.km-flight-brand em { font-weight:300; font-style:normal; }
.km-flight-brand small { display:flex; align-items:center; gap:9px; margin-top:10px; color:#b4b1c7; font-size:10px; letter-spacing:.12em; }
.km-flight-brand small i { width:5px; height:5px; background:#d1c7ff; border-radius:50%; box-shadow:0 0 7px #c7b2ff; }
[data-flight-universe] { max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:12px; margin-left:5px; border-left:1px solid #737086; }
#km-flight-screen button { color:#dfddec; background:#0d1120dd; border:1px solid #64647c77; border-radius:4px; padding:8px 12px; cursor:pointer; font:500 12px system-ui,sans-serif; transition:background .18s,border-color .18s; }
#km-flight-screen button:hover { background:#24263c; border-color:#b4adcf; }
#km-flight-screen button:focus-visible { outline:2px solid #dfb878; outline-offset:3px; }
.km-flight-bearing { position:absolute; top:35px; left:50%; transform:translateX(-50%); width:285px; height:40px; text-align:center; color:#c0bdce; font:10px ui-monospace,monospace; letter-spacing:.06em; pointer-events:none; }
.km-flight-bearing::before { content:''; display:block; height:10px; margin:0 12px 9px; background:repeating-linear-gradient(90deg,#a6a3b6 0 1px,transparent 1px 32.5px); mask-image:linear-gradient(90deg,transparent,#000 10% 90%,transparent); }
.km-flight-bearing > div { white-space:pre; }
.km-flight-bearing i { position:absolute; top:-5px; left:50%; height:17px; width:1px; background:#efebfa; }
.km-flight-reticle { position:absolute; left:50%; top:50%; width:30px; height:30px; transform:translate(-50%,-50%); pointer-events:none; color:#dcd8ec9c; }
.km-flight-reticle::before,.km-flight-reticle::after { content:''; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.km-flight-reticle::before { width:42px; height:1px; background:linear-gradient(90deg,currentColor 22%,transparent 22% 78%,currentColor 78%); }
.km-flight-reticle::after { width:1px; height:42px; background:linear-gradient(currentColor 22%,transparent 22% 78%,currentColor 78%); }
.km-flight-reticle i { position:absolute; inset:6px; border:1px solid transparent; transform:rotate(45deg); transition:all .2s; }
.km-flight-reticle span { position:absolute; top:43px; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:9px; letter-spacing:.16em; text-shadow:0 1px 5px #000; }
.km-flight-lock .km-flight-reticle { color:#efebff; }
.km-flight-lock .km-flight-reticle i { inset:-8px; border-color:#b5aed485; }
.km-flight-notice { position:absolute; left:50%; top:18%; transform:translateX(-50%); text-align:center; max-width:70%; color:#dfd9ef; font-size:12px; text-shadow:0 1px 7px #000; pointer-events:none; }
.km-flight-console { position:absolute; inset:auto 5.8% 8%; height:19%; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:6%; cursor:default; transition:opacity .5s,transform .5s; }
.km-flight-instrument { min-width:0; display:grid; gap:12px; }
.km-flight-instrument b { color:#d6d1e4; font:500 10px system-ui; letter-spacing:.2em; }
.km-flight-instrument small { color:#a19db5; font:400 10px system-ui; letter-spacing:.05em; }
.km-flight-instrument output { color:#eeebf5; font:300 clamp(22px,3vw,46px) ui-monospace,monospace; letter-spacing:-.05em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.km-flight-readout > div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.km-flight-accel { color:#beb8d0; font:10px ui-monospace,monospace; white-space:nowrap; }
.km-flight-wave { width:100%; height:18px; fill:none; stroke:#b4a5db; stroke-width:.8; overflow:visible; }
.km-flight-readout small { margin-top:-4px; }
.km-flight-heading { text-align:center; }
.km-flight-heading > div { display:flex; justify-content:center; align-items:center; gap:16px; }
.km-flight-heading output { font-size:clamp(18px,2vw,28px); letter-spacing:.02em; }
.km-flight-heading small { display:block; margin-top:8px; }
.km-flight-radar { width:clamp(65px,7vw,110px); max-height:14vh; fill:none; stroke:#b8aedb; stroke-width:.6; flex:none; }
.km-flight-radar > circle:nth-child(2) { opacity:.4; }
.km-flight-radar > circle:nth-child(3) { opacity:.2; }
.km-flight-radar g circle { fill:#d9d2ec; stroke:none; }
.km-flight-charge > div { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.km-flight-charge strong { color:var(--flight-amber); font:500 13px ui-monospace,monospace; padding:4px 8px; border:1px solid #9a7b4c77; border-radius:4px; }
.km-flight-charge progress { width:100%; height:14px; appearance:none; border:0; }
.km-flight-charge progress::-webkit-progress-bar { background:repeating-linear-gradient(115deg,#383545 0 12px,#111320 12px 16px); border-top:1px solid #a58b5c77; padding-top:3px; }
.km-flight-charge progress::-webkit-progress-value { background:repeating-linear-gradient(115deg,#dfb878 0 12px,#26232c 12px 16px); }
.km-flight-charge progress::-moz-progress-bar { background:#dfb878; }
.km-flight-charge-target { color:#b5abc5; font-size:11px; text-overflow:ellipsis; overflow:hidden; white-space:nowrap; }
.km-flight-contact { position:absolute; right:10%; bottom:34%; width:245px; max-width:31%; display:grid; gap:8px; padding:15px 17px; background:linear-gradient(110deg,#0a0d18e8,#101423a8); border:1px solid #aaa2c044; border-radius:2px 12px 2px 12px; box-shadow:0 8px 24px #0003; }
.km-flight-contact label,.km-flight-arrival label { color:#aca4bf; font-size:9px; letter-spacing:.18em; }
.km-flight-contact b { color:#e4dff0; font-size:17px; font-weight:400; overflow-wrap:anywhere; }
.km-flight-contact small { color:#c5bed3; font:10px ui-monospace,monospace; }
.km-flight-contact span { color:#b4acc5; font-size:11px; line-height:1.65; }
.km-flight-contact-resources { border-top:1px solid #9182ad3d; padding-top:8px; font-size:10px; color:#d7c9de; line-height:1.5; }
.km-flight-contact [data-flight-land] { justify-self:start; margin-top:3px; }
.km-flight-nebula-name { position:absolute; transform:translateX(-50%); pointer-events:none; color:#eef0ff; font:600 13px system-ui,sans-serif; white-space:nowrap; text-shadow:0 1px 4px #000,0 0 6px #0a0a19; }
.km-flight-help { position:absolute; bottom:2.4%; left:5%; right:5%; text-align:center; color:#9a93ad; font-size:10px; letter-spacing:.05em; }
.km-flight-help kbd { border:1px solid #716d8180; border-radius:3px; padding:2px 5px; margin:0 5px 0 18px; color:#cbc5d9; font:10px ui-monospace,monospace; }
.km-flight-help span > span { margin-left:18px; }
.km-flight-arrival { position:absolute; top:34%; left:50%; width:min(450px,75%); transform:translateX(-50%); padding:25px 28px; border:1px solid #b9adcd55; border-top:2px solid #d6c9ea; background:linear-gradient(145deg,#131526eb,#090d18eb); box-shadow:0 18px 60px #0004; border-radius:2px 14px 2px 14px; }
.km-flight-arrival h2 { margin:16px 0 10px; font-size:25px; font-weight:400; letter-spacing:.03em; }
.km-flight-arrival p { color:#bab2c9; line-height:1.6; font-size:12px; }
.km-flight-arrival > div { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 16px; }
.km-flight-arrival > div button:first-child { border-color:#c4b3d6aa!important; background:#302b43!important; }
.km-flight-arrival small { color:#91889f; font-size:10px; }
#km-flight-screen[data-phase=landed] .km-flight-console { opacity:.32; transform:translateY(8px); }
#km-flight-screen[data-phase=landed] :is(.km-flight-reticle,.km-flight-touch,.km-flight-bearing) { visibility:hidden; }
#km-flight-screen[data-phase=landing] .km-flight-reticle { opacity:0; }
.km-flight-routes { position:absolute; top:112px; left:5%; width:260px; max-width:35%; }
#km-flight-screen [data-flight-routes] { border:0; border-left:1px solid #877d9b66; border-radius:0; background:#090c1677; font-size:10px; color:#b3a9c5; letter-spacing:.1em; }
[data-flight-routes] span { padding-left:12px; color:#e3d5f3; }
.km-flight-route-panel { margin-top:8px; padding:12px; border:1px solid #aaa2c044; background:#0e1220f5; max-height:40vh; overflow:auto; }
.km-flight-route-panel header { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:11px; }
#km-flight-screen .km-flight-route-panel header button { padding:5px 7px; font-size:10px; }
.km-flight-route-panel p { color:#b0a4c2; font-size:11px; }
#km-flight-screen .km-flight-route-panel > div button { display:block; width:100%; margin:12px 0; text-align:left; padding:8px; }
.km-flight-route-panel button b { display:block; font-weight:500; font-size:11px; line-height:1.5; }
.km-flight-route-panel button small { display:block; margin-top:6px; color:#a69ab8; font-size:10px; line-height:1.5; }
.km-flight-route-panel > small { display:block; color:#91859f; font-size:10px; line-height:1.5; }
.km-flight-jumping::after { content:''; pointer-events:none; position:absolute; inset:0; box-shadow:inset 0 0 110px 12px #aaa3dd55; }
.km-flight-crossing::after { background:radial-gradient(ellipse,#272039,#080a13 77%); box-shadow:inset 0 0 90px #60537e; z-index:-1; }
#km-flight-screen.km-flight-crossing { background:#080a13; }
.km-flight-touch,.km-flight-touch-hint { display:none; }
.km-map-route-picker[hidden] { display:none; }
.km-map-route-picker { position:absolute; z-index:4; left:28px; bottom:48px; max-width:calc(100% - 48px); max-height:45%; overflow:auto; background:#fff; color:#263443; border:1px solid #cdd7e0; border-radius:5px; padding:7px 10px; font-size:12px; }
.km-map-route-picker button { display:block; text-align:left; padding:5px; }
.km-map-route-picker button:hover { background:#eaf0f5; }
@media (max-width:1050px) {
  .km-flight-brand b { font-size:15px; }
  .km-flight-bearing { top:90px; }
  .km-flight-console { gap:4%; left:7%; right:7%; }
  .km-flight-readout > div { display:block; }
  .km-flight-accel { display:block; margin-top:4px; }
  .km-flight-heading > div { gap:8px; }
  .km-flight-instrument b { font-size:9px; letter-spacing:.08em; }
  .km-flight-help kbd { margin-left:8px; }
}
@media (any-pointer:coarse) {
  #km-flight-toggle { min-height:44px; }
  #km-flight-screen button { min-height:44px; }
  .km-flight-touch { display:flex; position:absolute; inset:auto 4% 31%; justify-content:space-between; align-items:flex-end; pointer-events:none; }
  .km-flight-dpad { display:grid; grid-template-columns:repeat(3,48px); grid-template-rows:repeat(2,48px); gap:5px; }
  .km-flight-dpad button:first-child { grid-column:2; }
  .km-flight-dpad button:nth-child(2) { grid-column:1; }
  .km-flight-touch-actions { display:flex; flex-direction:column; gap:8px; }
  #km-flight-screen .km-flight-touch button { pointer-events:auto; touch-action:none; min-width:48px; min-height:48px; background:#111322d9; border-color:#77708e88; }
  #km-flight-screen .km-flight-touch button.km-flight-pressed { background:#3b324f; border-color:#d1c0ec; }
  .km-flight-contact { top:22%; bottom:auto; right:8%; max-width:38%; padding:12px; }
  .km-flight-key-hint { display:none; }
  .km-flight-touch-hint { display:inline; }
  .km-flight-routes { top:145px; }
  .km-flight-heading > div { flex-direction:column; gap:4px; }
  .km-flight-heading small { display:inline-block; margin:4px 5px 0; font-size:9px; }
  .km-flight-radar { width:70px; }
}
@media (max-height:650px) {
  .km-flight-header { top:15px; }
  .km-flight-console { height:21%; bottom:6%; }
  .km-flight-instrument { gap:6px; }
  .km-flight-readout output { font-size:24px; }
  .km-flight-wave { height:12px; }
  .km-flight-help { bottom:1.5%; font-size:9px; }
  .km-flight-contact { top:auto; bottom:34%; }
  .km-flight-contact span { max-height:40px; overflow:auto; }
  .km-flight-arrival { top:23%; padding:18px 24px; }
  .km-flight-arrival h2 { margin:10px 0; }
  .km-flight-arrival > div { margin:14px 0 10px; }
  .km-flight-bearing { top:22px; }
  .km-flight-routes { top:90px; }
}
@media (prefers-reduced-motion:reduce) { #km-flight-screen * { transition:none!important; } }
/* Instruments own their physical frames. The canopy only draws the window/hull:
   a fixed SVG panel must never compete with responsive HTML instrument bounds. */
#km-flight-screen { --console-height:clamp(142px,22vh,196px); --console-bottom:clamp(28px,5vh,48px); --gutter:clamp(20px,4vw,64px); }
#km-flight-screen,#km-flight-screen *,#km-flight-screen *::before,#km-flight-screen *::after { box-sizing:border-box; }
.km-flight-header { inset:24px var(--gutter) auto; align-items:flex-start; }
.km-flight-brand { min-width:0; padding-left:12px; }
.km-flight-brand b { font-size:clamp(14px,1.4vw,19px); letter-spacing:.14em; }
.km-flight-brand small { margin-top:8px; gap:7px; }
[data-flight-universe] { max-width:clamp(85px,13vw,190px); }
.km-flight-bearing { top:29px; width:clamp(190px,22vw,285px); }
.km-flight-notice { top:112px; max-width:46%; font-size:11px; line-height:1.6; }
.km-flight-console { inset:auto var(--gutter) var(--console-bottom); height:var(--console-height); grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(12px,2.2vw,34px); align-items:stretch; }
.km-flight-instrument { position:relative; min-width:0; min-height:0; height:100%; padding:clamp(14px,1.8vw,24px); border:1px solid #77748d55; border-top-color:#bbb2d47a; border-radius:3px 12px 3px 12px; background:linear-gradient(145deg,#151726c9,#0a0e1bd9); box-shadow:inset 0 1px 0 #eeebff0a,0 8px 30px #0002; gap:9px; align-content:center; }
.km-flight-instrument::before { content:''; position:absolute; top:-1px; left:20px; width:28px; height:1px; background:#d6cbea; box-shadow:0 0 6px #d6cbea66; }
.km-flight-instrument b { font-size:10px; letter-spacing:.13em; line-height:1.4; }
.km-flight-instrument small { min-width:0; max-width:100%; font-size:10px; line-height:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.km-flight-readout > div { display:flex; align-items:baseline; justify-content:space-between; min-width:0; flex-wrap:wrap; gap:2px 8px; }
.km-flight-readout output { min-width:0; font-size:clamp(24px,2.8vw,40px); line-height:1.12; }
.km-flight-accel { font-size:9px; margin:0; }
.km-flight-wave { display:block; width:100%; max-width:100%; height:16px; overflow:hidden; }
.km-flight-readout small { margin:0; }
.km-flight-heading { text-align:left; }
.km-flight-heading > div { min-width:0; display:flex; flex-direction:row; justify-content:flex-start; align-items:center; gap:clamp(10px,1.6vw,24px); }
.km-flight-heading > div > div { min-width:0; }
.km-flight-heading output { font-size:clamp(20px,2.1vw,30px); line-height:1.2; }
.km-flight-heading small { display:block; margin:4px 0 0; font-size:9px; }
.km-flight-radar { width:clamp(52px,6vw,80px); height:auto; max-height:90px; }
.km-flight-charge { grid-template-rows:auto 12px auto auto; gap:12px; }
.km-flight-charge > div { min-width:0; gap:6px; }
.km-flight-charge b { min-width:0; }
.km-flight-charge strong { flex:none; min-width:46px; text-align:center; padding:3px 5px; font-size:12px; }
#km-flight-screen .km-flight-charge progress { display:block; position:static; width:100%; min-width:0; max-width:100%; height:12px; margin:0; padding:0; border:0; border-radius:0; overflow:hidden; appearance:none; background:#292633; }
.km-flight-charge progress::-webkit-progress-bar { padding:0; border:0; background:repeating-linear-gradient(110deg,#383545 0 9px,#111320 9px 12px); }
.km-flight-charge progress::-webkit-progress-value { background:repeating-linear-gradient(110deg,#dfb878 0 9px,#26232c 9px 12px); }
.km-flight-charge-target { display:block; max-width:100%; min-width:0; font:10px system-ui; line-height:1.5; }
.km-flight-contact { right:var(--gutter); bottom:calc(var(--console-height) + var(--console-bottom) + 24px); width:260px; max-width:29%; max-height:calc(100% - var(--console-height) - var(--console-bottom) - 155px); overflow:auto; scrollbar-width:thin; padding:16px; gap:7px; }
.km-flight-contact b { font-size:16px; line-height:1.45; }
.km-flight-contact span { font-size:10px; line-height:1.6; }
.km-flight-routes { top:112px; left:var(--gutter); width:250px; max-width:29%; }
.km-flight-route-panel { max-height:calc(100vh - 440px); min-height:90px; }
.km-flight-help { bottom:10px; left:var(--gutter); right:var(--gutter); line-height:1.5; font-size:9px; }
.km-flight-help kbd { font-size:9px; margin-left:12px; }
.km-flight-arrival { top:24%; max-height:calc(100% - var(--console-height) - var(--console-bottom) - 24% - 18px); overflow:auto; overscroll-behavior:contain; }
@media (max-width:1050px) {
  .km-flight-bearing { top:84px; }
  .km-flight-notice { top:131px; max-width:42%; }
  .km-flight-console { gap:12px; }
  .km-flight-instrument { padding:14px; }
  .km-flight-instrument b { font-size:9px; letter-spacing:.06em; }
  .km-flight-readout > div { display:block; }
  .km-flight-accel { display:block; margin-top:5px; }
  .km-flight-heading > div { gap:8px; }
  .km-flight-radar { width:52px; }
  .km-flight-contact { width:230px; }
}
@media (any-pointer:coarse) {
  .km-flight-touch { inset:auto var(--gutter) calc(var(--console-height) + var(--console-bottom) + 20px); }
  .km-flight-contact { top:145px; bottom:auto; right:var(--gutter); max-height:calc(100% - var(--console-height) - var(--console-bottom) - 295px); max-width:32%; }
  .km-flight-routes { top:145px; max-width:28%; }
  .km-flight-route-panel { max-height:calc(100vh - 540px); }
  .km-flight-heading > div { flex-direction:row; }
  .km-flight-heading small { display:block; margin:4px 0 0; }
  .km-flight-arrival { top:24%; }
}
@media (max-height:680px) {
  #km-flight-screen { --console-height:138px; --console-bottom:28px; }
  .km-flight-header { top:16px; }
  .km-flight-brand small { margin-top:5px; }
  .km-flight-bearing { top:26px; }
  .km-flight-notice { top:80px; }
  .km-flight-console { gap:12px; }
  .km-flight-instrument { padding:12px 15px; gap:6px; }
  .km-flight-readout output { font-size:26px; }
  .km-flight-wave { height:10px; }
  .km-flight-charge { gap:8px; }
  .km-flight-routes { top:86px; }
  .km-flight-contact { top:90px; bottom:auto; max-height:calc(100% - 278px); }
  .km-flight-contact span { max-height:none; }
  .km-flight-help { bottom:7px; }
  .km-flight-arrival { top:20%; padding:16px 20px; max-height:calc(80% - 180px); }
  .km-flight-arrival h2 { font-size:20px; margin:10px 0; }
  .km-flight-arrival > div { margin:12px 0; }
}
@media (max-height:680px) and (max-width:1050px) {
  .km-flight-bearing { width:180px; top:22px; }
  .km-flight-brand small { max-width:210px; }
}
@media (max-height:680px) and (any-pointer:coarse) {
  .km-flight-contact { max-height:calc(100% - 384px); }
  .km-flight-dpad { grid-template-columns:repeat(3,44px); grid-template-rows:repeat(2,44px); gap:4px; }
  #km-flight-screen .km-flight-touch button { min-width:44px; min-height:44px; padding:8px; }
}
.km-flight-instrument { align-content:start; padding-top:24px; }
.km-flight-instrument > b,.km-flight-charge > div { min-height:18px; }
.km-flight-charge strong { position:absolute; top:20px; right:24px; }
.km-flight-charge > div { padding-right:48px; }
@media (max-width:1050px) { .km-flight-charge strong { right:14px; } }
@media (max-height:680px) { .km-flight-instrument { padding-top:16px; } .km-flight-charge strong { top:12px; right:15px; } }
.km-flight-charge > div { align-items:flex-start; }
.km-flight-charge b { min-height:18px; }

/* ===== 2026-11-04 · KMind night language for the cockpit (handoff/设计规则_夜间与平面皮肤.md) =====
   Lines and light only: the canopy is a hairline, the instruments sit low and carry no frame, the windshield stays open.
   Blue = what you can act on, cyan = live (charge, lock), white = done; amber stays with people (their avatars in view). */
#km-flight-screen { --flight-light:var(--k-ink,#F2F5F9); --flight-soft:var(--k-ink2,#C3CCD8); --flight-mute:var(--k-mute,#8E98A8); --flight-dim:var(--k-dim,#7A8494);
  --flight-acc:var(--k-acc,#3B82FF); --flight-acc-rgb:var(--k-acc-rgb,59,130,255); --flight-live:var(--k-ok,#5CC8FF); --flight-live-rgb:92,200,255;
  --flight-glass:rgba(8,10,15,.62); --flight-layer:rgba(150,180,230,.08); --flight-rule:rgba(150,180,230,.16);
  --console-height:clamp(136px,17vh,156px); --console-bottom:clamp(30px,5.2vh,48px); --charge:0;
  color:var(--flight-light); font:13px/1.45 "Inter Tight","Plex SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
#km-flight-screen :is(button,input,select) { font-family:inherit; }
.km-flight-hull { fill:url(#km-flight-hull-fill); }
.km-flight-frame-edge { stroke-width:.7; }
.km-flight-frame-lamp { stroke:#DCE8FF; stroke-width:1.4; filter:drop-shadow(0 0 4px rgba(var(--flight-acc-rgb),.85)); opacity:.85; }
/* controls: pills of light */
#km-flight-screen button { border:0; border-radius:999px; background:rgba(150,180,230,.1); color:var(--flight-soft); font-size:12.5px; font-weight:500; padding:8px 14px; }
#km-flight-screen button:hover { background:rgba(var(--flight-acc-rgb),.2); color:var(--flight-light); border:0; }
#km-flight-screen button:focus-visible { outline:0; box-shadow:0 0 0 2px rgba(var(--flight-acc-rgb),.25),0 0 16px rgba(var(--flight-acc-rgb),.6); }
#km-flight-screen :is([data-flight-land],[data-flight-takeoff],.km-flight-arrival>div button:first-child) { background:var(--flight-acc)!important; color:#fff!important; border:0!important; }
/* identity and bearing */
.km-flight-brand { border:0; padding-left:0; }
.km-flight-brand b { font-size:clamp(15px,1.35vw,18px); font-weight:600; letter-spacing:.01em; display:flex; align-items:baseline; gap:9px; }
.km-flight-brand em { font-weight:400; color:var(--flight-mute); }
.km-flight-brand small { color:var(--flight-mute); letter-spacing:0; font-size:11px; }
.km-flight-brand small i { background:var(--flight-live); box-shadow:0 0 8px rgba(var(--flight-live-rgb),.9); }
#km-flight-screen[data-phase=charging] .km-flight-brand small i,#km-flight-screen.km-flight-jumping .km-flight-brand small i { background:#fff; box-shadow:0 0 10px #fff; }
[data-flight-universe] { border-left-color:var(--flight-rule); }
.km-flight-bearing { color:var(--flight-mute); font-family:var(--k-mono,ui-monospace,monospace); }
.km-flight-bearing::before { background:repeating-linear-gradient(90deg,rgba(150,180,230,.45) 0 1px,transparent 1px 32.5px); }
.km-flight-bearing i { background:var(--flight-live); box-shadow:0 0 8px rgba(var(--flight-live-rgb),.8); width:1.5px; }
/* the aiming mark; while charging, a ring fills clockwise around it */
.km-flight-reticle { color:rgba(195,204,216,.55); }
.km-flight-lock .km-flight-reticle { color:var(--flight-light); }
.km-flight-lock .km-flight-reticle i { border-color:rgba(var(--flight-live-rgb),.6); box-shadow:0 0 14px -2px rgba(var(--flight-live-rgb),.6); }
.km-flight-ring { position:absolute; left:50%; top:50%; width:64px; height:64px; margin:-32px 0 0 -32px; border-radius:50%; opacity:0; transition:opacity .2s;
  background:conic-gradient(from 0deg,var(--flight-live) calc(var(--charge) * 360deg),rgba(150,180,230,.16) 0);
  -webkit-mask:radial-gradient(circle,transparent 28.5px,#000 29.5px 31.5px,transparent 32.5px); mask:radial-gradient(circle,transparent 28.5px,#000 29.5px 31.5px,transparent 32.5px);
  filter:drop-shadow(0 0 6px rgba(var(--flight-live-rgb),.8)); }
#km-flight-screen[data-phase=charging] .km-flight-ring { opacity:1; }
#km-flight-screen.km-flight-jumping .km-flight-ring { opacity:1; background:#fff; filter:drop-shadow(0 0 10px #fff); }
.km-flight-reticle span { color:var(--flight-live); letter-spacing:.06em; font-size:10px; }
.km-flight-notice { color:var(--flight-soft); font-size:12px; }
/* instruments: no frame; a short line of light marks each one, the readouts carry the hierarchy */
.km-flight-console { gap:clamp(18px,3vw,48px); }
.km-flight-instrument { border:0!important; border-radius:0!important; background:none!important; box-shadow:none!important; padding:clamp(12px,1.4vw,18px) 0 0!important; }
.km-flight-instrument::before { top:0; left:0; right:0; width:auto; height:1px; background:linear-gradient(90deg,rgba(150,180,230,.38),rgba(150,180,230,.1) 55%,transparent); box-shadow:none; }
.km-flight-instrument::after { content:''; position:absolute; top:-1px; left:0; width:22px; height:3px; border-radius:2px; background:var(--flight-acc); box-shadow:0 0 10px rgba(var(--flight-acc-rgb),.9); }
.km-flight-instrument b { color:var(--flight-mute); font-size:11px; font-weight:500; letter-spacing:.02em; display:flex; align-items:baseline; gap:8px; }
.km-flight-instrument small { color:var(--flight-mute); font-size:11px; letter-spacing:0; }
.km-flight-instrument output { color:var(--flight-light); font-family:var(--k-mono,ui-monospace,monospace); font-weight:300; letter-spacing:-.03em; }
.km-flight-accel { color:var(--flight-mute); font-family:var(--k-mono,ui-monospace,monospace); }
.km-flight-wave { stroke:rgba(var(--flight-live-rgb),.75); stroke-width:1; }
.km-flight-radar { stroke:rgba(150,180,230,.55); stroke-width:.7; }
.km-flight-radar g circle { fill:var(--flight-live); }
.km-flight-radar > path { stroke:rgba(150,180,230,.3); }
/* the jump drive: a thin luminous track with quarter marks; cyan while it charges, white when it fires */
.km-flight-charge strong { border:0!important; border-radius:999px; background:rgba(150,180,230,.08); color:var(--flight-soft)!important; font:500 12px var(--k-mono,ui-monospace,monospace)!important; padding:3px 9px!important; }
#km-flight-screen[data-phase=charging] .km-flight-charge strong { color:var(--flight-live)!important; background:rgba(var(--flight-live-rgb),.12); }
#km-flight-screen.km-flight-jumping .km-flight-charge strong { color:#fff!important; background:rgba(255,255,255,.16); }
#km-flight-screen .km-flight-charge progress { height:6px!important; border-radius:999px!important; background:rgba(150,180,230,.12)!important; margin-top:3px!important; }
.km-flight-charge progress::-webkit-progress-bar { border-radius:999px; border:0; padding:0;
  background:linear-gradient(90deg,transparent calc(25% - 1px),rgba(5,7,11,.9) 0 25%,transparent 0 calc(50% - 1px),rgba(5,7,11,.9) 0 50%,transparent 0 calc(75% - 1px),rgba(5,7,11,.9) 0 75%,transparent 0),rgba(150,180,230,.14)!important; }
.km-flight-charge progress::-webkit-progress-value { border-radius:999px; background:linear-gradient(90deg,var(--flight-acc),var(--flight-live))!important; box-shadow:0 0 12px rgba(var(--flight-live-rgb),.8); transition:width .08s linear; }
.km-flight-charge progress::-moz-progress-bar { border-radius:999px; background:linear-gradient(90deg,var(--flight-acc),var(--flight-live)); }
#km-flight-screen.km-flight-jumping .km-flight-charge progress::-webkit-progress-value { background:#fff!important; box-shadow:0 0 16px #fff; }
.km-flight-charge-target { color:var(--flight-soft); font-size:11.5px!important; font-family:inherit!important; }
/* the contact readout floats in the window as glass */
.km-flight-contact { border:0; border-radius:16px; background:var(--flight-glass); backdrop-filter:blur(16px) saturate(1.1); -webkit-backdrop-filter:blur(16px) saturate(1.1); box-shadow:0 18px 50px -24px #000; padding:16px 18px; }
.km-flight-contact label,.km-flight-arrival label { color:var(--flight-live); font-size:11px; letter-spacing:.02em; display:flex; gap:8px; align-items:baseline; }
.km-flight-contact b { color:var(--flight-light); font-weight:600; }
.km-flight-contact small { color:var(--flight-soft); font-family:var(--k-mono,ui-monospace,monospace); }
.km-flight-contact span { color:var(--flight-mute); }
.km-flight-contact-resources { border-top:0; padding-top:4px; color:var(--flight-soft); }
.km-flight-nebula-name { color:var(--flight-light); font-weight:500; font-size:13px; text-shadow:0 1px 6px #000,0 0 14px rgba(var(--flight-acc-rgb),.5); }
/* landing */
.km-flight-arrival { border:0; border-radius:20px; background:rgba(8,10,15,.8); backdrop-filter:blur(18px); box-shadow:0 30px 80px -30px #000; }
.km-flight-arrival h2 { font-weight:600; letter-spacing:.01em; }
.km-flight-arrival p,.km-flight-arrival small { color:var(--flight-mute); }
/* routes */
#km-flight-screen [data-flight-routes] { border:0!important; border-radius:999px; background:rgba(8,10,15,.55); color:var(--flight-soft); letter-spacing:0; font-size:12px; padding:7px 13px; }
[data-flight-routes] span { color:var(--flight-live); font-family:var(--k-mono,ui-monospace,monospace); padding-left:8px; }
.km-flight-route-panel { border:0; border-radius:16px; background:var(--flight-glass); backdrop-filter:blur(16px); }
.km-flight-route-panel p,.km-flight-route-panel button small,.km-flight-route-panel>small { color:var(--flight-mute); }
#km-flight-screen .km-flight-route-panel>div button { border-radius:12px; background:rgba(150,180,230,.06); }
/* help: keycaps */
.km-flight-help { color:var(--flight-dim); font-size:11px; letter-spacing:0; }
.km-flight-help kbd { border:0; border-radius:6px; background:rgba(150,180,230,.1); color:var(--flight-soft); font:10px var(--k-mono,ui-monospace,monospace); padding:3px 7px; }
/* jumping and crossing: light, not violet */
.km-flight-jumping::after { box-shadow:inset 0 0 120px 10px rgba(var(--flight-live-rgb),.28); }
.km-flight-crossing::after { background:radial-gradient(ellipse,#0d1320,#05070b 77%); box-shadow:inset 0 0 90px rgba(var(--flight-acc-rgb),.35); }
#km-flight-screen.km-flight-crossing { background:#05070b; }
/* touch */
#km-flight-screen .km-flight-touch button { border:0; border-radius:16px; background:rgba(8,10,15,.62); backdrop-filter:blur(10px); color:var(--flight-soft); }
#km-flight-screen .km-flight-touch button.km-flight-pressed { background:rgba(var(--flight-acc-rgb),.38); color:#fff; box-shadow:0 0 18px -4px rgba(var(--flight-acc-rgb),.9); }
/* the launch entry on the mother planet: a native-looking label */
#km-flight-toggle { font-family:"Inter Tight","Plex SC",-apple-system,"PingFang SC",sans-serif; font-weight:600; font-size:12.5px; color:var(--k-ink,#F2F5F9); }
#km-flight-toggle svg { color:var(--k-ok,#5CC8FF); }
@media (max-height:680px) { #km-flight-screen { --console-height:124px; --console-bottom:26px; } }
@media (prefers-reduced-motion:reduce) { .km-flight-ring { transition:none; } }
.km-flight-instrument b,.km-flight-instrument small,.km-flight-nebula-name,.km-flight-charge-target { font-family:inherit; }
