html, body { width: 100%; height: 100%; padding: 0; margin: 0; overflow: hidden; background: #020508; color: #edf3ef; }
*, *::before, *::after { box-sizing: border-box; }
#unity-container, #unity-container.unity-desktop, #unity-container.unity-mobile { position: fixed; inset: 0; width: 100%; height: 100%; transform: none; }
#unity-container.ksp-awaiting-launch { visibility: hidden; pointer-events: none; }
#unity-canvas, .unity-mobile #unity-canvas { display: block; width: 100%; height: 100%; background: #000; outline: none; }
#unity-loading-bar { position: fixed; inset: 0; display: none; pointer-events: none; z-index: 20; }
#unity-logo { display: none; }
#unity-progress-bar-empty { position: absolute; left: 50%; top: 50%; width: min(420px, 60vw); height: 12px; margin: 0; transform: translate(-50%, -50%); border: 1px solid rgba(255,255,255,.75); background: rgba(0,0,0,.7); }
#unity-progress-bar-full { width: 0%; height: 100%; margin: 0; background: #fff; }
#unity-footer { display: block; position: fixed; right: 12px; bottom: 12px; width: 38px; height: 38px; z-index: 120; }
#unity-logo-title-footer, #unity-build-title { display: none; }
#unity-fullscreen-button { display: block; width: 38px; height: 38px; cursor: pointer; border-radius: 5px; color: white; font: 28px/38px sans-serif; text-align: center; background-color: rgba(12,18,22,.6); opacity: .55; }
#unity-fullscreen-button:hover, #unity-fullscreen-button:focus-visible { opacity: 1; outline: 2px solid #fff; }
#unity-container:fullscreen #unity-footer, body:fullscreen #unity-footer { display: none; }
#unity-container:-webkit-full-screen #unity-footer, body:-webkit-full-screen #unity-footer { display: none; }
#ksp-mobile-controls { display: none; }
#ksp-mobile-controls[hidden] { display: none; }
#ksp-mobile-surface { display: grid; gap: 8px; }
.ksp-mobile-toggle { display: none; }
.ksp-mobile-panel { display: grid; gap: 5px; }
.ksp-mobile-panel[hidden], .ksp-mobile-utility-panel[hidden], .ksp-mobile-cluster button[hidden] { display: none !important; }
.ksp-mobile-label { color: rgba(230,239,235,.72); font: 700 11px/1 sans-serif; letter-spacing: .12em; text-align: center; }
.ksp-mobile-cluster { display: grid; gap: 4px; pointer-events: auto; }
.ksp-mobile-cluster button, .ksp-mobile-toggle, .ksp-mobile-utility-toggle { min-width: 48px; min-height: 48px; border: 1px solid rgba(225,238,240,.45); border-radius: 9px; padding: 7px 9px; color: #f4f8f2; background: rgba(11,22,27,.7); box-shadow: 0 3px 9px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.12); font: 700 12px/1 sans-serif; touch-action: none; -webkit-user-select: none; user-select: none; }
.ksp-mobile-cluster button:active, .ksp-mobile-cluster button[data-ksp-active="true"], .ksp-mobile-toggle:active, .ksp-mobile-utility-toggle:active { border-color: #c8ed65; background: rgba(77,108,42,.9); transform: translateY(1px); }
.ksp-mobile-cluster button:focus-visible, .ksp-mobile-toggle:focus-visible, .ksp-mobile-utility-toggle:focus-visible { outline: 2px solid #c8ed65; outline-offset: 2px; }
.ksp-mobile-joystick { position: relative; width: 150px; height: 150px; border: 1px solid rgba(225,238,240,.42); border-radius: 50%; background: radial-gradient(circle at 50% 48%, rgba(41,63,70,.72), rgba(8,18,23,.58) 67%, rgba(5,12,16,.44)); box-shadow: inset 0 0 0 7px rgba(8,17,21,.3), inset 0 0 0 8px rgba(225,238,240,.1), 0 7px 18px rgba(0,0,0,.28); touch-action: none; }
.ksp-mobile-joystick::before, .ksp-mobile-joystick::after { content: ""; position: absolute; background: rgba(225,238,240,.14); pointer-events: none; }
.ksp-mobile-joystick::before { left: 50%; top: 13%; width: 1px; height: 74%; transform: translateX(-50%); }
.ksp-mobile-joystick::after { left: 13%; top: 50%; width: 74%; height: 1px; transform: translateY(-50%); }
.ksp-mobile-joystick-mark { position: absolute; z-index: 1; color: rgba(238,246,241,.75); font: 700 13px/1 sans-serif; pointer-events: none; }
.ksp-mobile-joystick-up { left: 50%; top: 13px; transform: translateX(-50%); }
.ksp-mobile-joystick-down { left: 50%; bottom: 13px; transform: translateX(-50%); }
.ksp-mobile-joystick-left { left: 14px; top: 50%; transform: translateY(-50%); }
.ksp-mobile-joystick-right { right: 14px; top: 50%; transform: translateY(-50%); }
.ksp-mobile-joystick-knob { position: absolute; z-index: 2; left: 50%; top: 50%; width: 48px; height: 48px; border: 1px solid rgba(245,249,246,.72); border-radius: 50%; background: radial-gradient(circle at 38% 32%, rgba(239,247,240,.8), rgba(102,133,141,.84) 46%, rgba(29,51,57,.92)); box-shadow: 0 4px 12px rgba(0,0,0,.38), inset 0 1px rgba(255,255,255,.35); transform: translate(-50%, -50%); pointer-events: none; }
.ksp-mobile-roll { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ksp-mobile-roll button { min-width: 58px; min-height: 44px; }
.ksp-mobile-throttle-gauge { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto auto; justify-items: center; align-items: stretch; gap: 6px; width: 96px; min-height: 174px; touch-action: none; user-select: none; -webkit-user-select: none; outline: none; }
.ksp-mobile-throttle-gauge:focus-visible { border-radius: 8px; box-shadow: 0 0 0 2px #c8ed65; }
.ksp-mobile-throttle-end { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; border: 0; padding: 0; color: rgba(238,246,241,.86); background: transparent; font: 800 11px/1 sans-serif; cursor: pointer; touch-action: manipulation; -webkit-user-select: none; user-select: none; }
.ksp-mobile-throttle-end:focus-visible { border-radius: 5px; outline: 2px solid #c8ed65; outline-offset: 1px; }
.ksp-mobile-throttle-end:active { color: #c8ed65; }
.ksp-mobile-throttle-track { position: relative; display: block; width: 36px; min-height: 126px; margin-bottom: 8px; overflow: visible; border: 1px solid rgba(225,238,240,.52); border-radius: 9px; background: linear-gradient(180deg, rgba(177,57,44,.42), rgba(177,57,44,.12) 18%, rgba(11,22,27,.72) 19%, rgba(11,22,27,.72) 81%, rgba(177,57,44,.12) 82%, rgba(177,57,44,.42)); box-shadow: inset 0 0 0 2px rgba(5,12,16,.28), 0 3px 9px rgba(0,0,0,.3); }
.ksp-mobile-throttle-track::before { content: ""; position: absolute; inset: 0 8px; border-right: 1px solid rgba(225,238,240,.14); border-left: 1px solid rgba(225,238,240,.14); pointer-events: none; }
.ksp-mobile-throttle-track:focus-visible { border-color: #c8ed65; outline: 2px solid #c8ed65; outline-offset: 3px; }
.ksp-mobile-throttle-fill { position: absolute; left: 0; right: 0; bottom: 0; height: 0%; border-radius: 0 0 7px 7px; background: linear-gradient(180deg, #9fd75e, #5c9e43); opacity: .86; pointer-events: none; }
.ksp-mobile-throttle-thumb { position: absolute; z-index: 1; left: 50%; bottom: 0; width: 38px; height: 14px; transform: translate(-50%, 50%); border: 1px solid rgba(245,249,246,.78); border-radius: 5px; background: linear-gradient(#dce9d9, #778c82); box-shadow: 0 2px 6px rgba(0,0,0,.42), inset 0 1px rgba(255,255,255,.5); pointer-events: none; }
.ksp-mobile-throttle-gauge[data-throttle-key="z"] .ksp-mobile-throttle-track { border-color: #c8ed65; box-shadow: 0 0 9px rgba(200,237,101,.3), inset 0 0 0 2px rgba(5,12,16,.28); }
.ksp-mobile-throttle-gauge[data-throttle-key="x"] .ksp-mobile-throttle-track { border-color: #e27d66; box-shadow: 0 0 9px rgba(226,125,102,.3), inset 0 0 0 2px rgba(5,12,16,.28); }
.ksp-mobile-throttle-value { grid-column: 1; min-height: 14px; color: #c8ed65; font: 800 10px/1 sans-serif; text-align: center; }
.ksp-mobile-sr-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.ksp-mobile-flight-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ksp-mobile-flight-actions button[data-ksp-key="space"] { grid-column: span 2; }
.ksp-mobile-attitude-actions, .ksp-mobile-map-actions, .ksp-mobile-editor-actions, .ksp-mobile-eva-actions, .ksp-mobile-eva-move-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ksp-mobile-utility-panel { display: grid; justify-items: center; gap: 5px; width: 44px; }
.ksp-mobile-utility-toggle { width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 20px; }
.ksp-mobile-utility-menu { position: absolute; top: 49px; left: 50%; transform: translateX(-50%); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; width: min(240px, 56vw); max-height: min(70vh, calc(100dvh - 100px), 420px); overflow-y: auto; padding: 7px; border: 1px solid rgba(225,238,240,.28); border-radius: 12px; background: rgba(5,14,18,.78); box-shadow: 0 7px 18px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.08); backdrop-filter: blur(8px); scrollbar-width: thin; touch-action: pan-y; justify-self: center; }
.ksp-mobile-utility-menu[hidden] { display: none; }
.ksp-mobile-utility-menu button { min-width: 0; min-height: 44px; padding: 5px 4px; border: 1px solid rgba(225,238,240,.34); border-radius: 7px; color: #f4f8f2; background: rgba(11,22,27,.72); font: 800 11px/1.05 sans-serif; touch-action: manipulation; -webkit-user-select: none; user-select: none; }
.ksp-mobile-utility-menu button:active { border-color: #c8ed65; background: rgba(77,108,42,.9); }
#ksp-mobile-controls[data-utility-open="true"] #ksp-mobile-surface > .ksp-mobile-panel { visibility: hidden; pointer-events: none; }
.ksp-mobile-portrait-warning { display: none; position: absolute; left: 50%; top: 50%; width: min(300px, 80vw); margin: 0; transform: translate(-50%, -50%); padding: 12px 14px; border: 1px solid rgba(225,238,240,.28); border-radius: 12px; color: #edf3ef; background: rgba(5,14,18,.78); box-shadow: 0 8px 20px rgba(0,0,0,.3); font: 700 13px/1.35 sans-serif; text-align: center; }
@media (hover: none) and (pointer: coarse), (max-width: 760px) {
  #ksp-mobile-controls { position: fixed; inset: 0; z-index: 110; display: block; pointer-events: none; padding: 0; font-family: sans-serif; }
  #unity-footer { display: none; }
  #ksp-mobile-controls[hidden] { display: none; }
  #ksp-mobile-surface { position: absolute; inset: 0; display: block; pointer-events: none; }
  #ksp-mobile-surface > * { position: absolute; bottom: max(10px, env(safe-area-inset-bottom)); pointer-events: auto; padding: 7px; border: 1px solid rgba(225,238,240,.24); border-radius: 13px; background: rgba(5,14,18,.48); box-shadow: 0 8px 20px rgba(0,0,0,.25), inset 0 1px rgba(255,255,255,.08); backdrop-filter: blur(8px); }
  .ksp-mobile-joystick-panel { left: max(12px, env(safe-area-inset-left)); }
  .ksp-mobile-roll-panel { right: calc(max(12px, env(safe-area-inset-right)) + min(172px, 27vw) + 124px); }
  .ksp-mobile-throttle-panel { right: calc(max(12px, env(safe-area-inset-right)) + min(172px, 27vw) + 6px); }
  .ksp-mobile-flight-panel { right: max(12px, env(safe-area-inset-right)); width: min(172px, 27vw); }
  .ksp-mobile-attitude-panel { right: max(12px, env(safe-area-inset-right)); bottom: calc(max(10px, env(safe-area-inset-bottom)) + 158px); width: min(172px, 27vw); }
  .ksp-mobile-map-panel, .ksp-mobile-editor-panel, .ksp-mobile-eva-panel { right: max(12px, env(safe-area-inset-right)); width: min(240px, 39vw); }
  .ksp-mobile-utility-panel { left: 50%; right: auto; transform: translateX(-50%); top: max(12px, env(safe-area-inset-top)); bottom: auto !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; backdrop-filter: none !important; }
  .ksp-mobile-toggle { position: absolute; z-index: 30; left: max(12px, env(safe-area-inset-left)); right: auto; top: max(12px, env(safe-area-inset-top)); display: block; pointer-events: auto; width: 44px; height: 44px; padding: 0; border-radius: 50%; font-size: 20px; }
  #ksp-mobile-controls[data-collapsed="true"] #ksp-mobile-surface { display: none; }
  #ksp-mobile-controls[data-collapsed="true"] .ksp-mobile-toggle { background: rgba(11,22,27,.84); }
  .ksp-mobile-joystick { width: clamp(126px, 28vh, 150px); height: clamp(126px, 28vh, 150px); }
  .ksp-mobile-joystick-knob { width: clamp(42px, 10vh, 48px); height: clamp(42px, 10vh, 48px); }
  .ksp-mobile-roll button { min-width: clamp(48px, 12vh, 60px); min-height: 44px; padding: 0; font-size: clamp(19px, 4vh, 25px); }
  .ksp-mobile-throttle-gauge { grid-template-columns: 1fr; width: clamp(84px, 15vw, 96px); min-height: clamp(214px, 40vh, 246px); }
  .ksp-mobile-throttle-track { width: clamp(30px, 6vw, 36px); min-height: clamp(126px, 28vh, 150px); }
  .ksp-mobile-flight-actions { gap: 4px; }
  #ksp-mobile-surface .ksp-mobile-flight-actions button, #ksp-mobile-surface .ksp-mobile-attitude-actions button { min-width: 0; min-height: 44px !important; padding: 4px 3px; border-radius: 7px; font-size: clamp(11px, 2.6vh, 13px) !important; }
  #ksp-mobile-surface .ksp-mobile-flight-actions button[data-ksp-key="space"] { min-height: clamp(46px, 11vh, 52px) !important; font-size: clamp(11px, 2.8vh, 14px) !important; }
  #ksp-mobile-surface .ksp-mobile-attitude-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Keep the upper action panel below a sensor-area inset on short
     landscape phones without letting it collide with the flight panel. */
  #ksp-mobile-surface > .ksp-mobile-attitude-panel { bottom: min(calc(max(10px, env(safe-area-inset-bottom)) + clamp(182px, 31vh, 200px)), calc(100dvh - max(0px, env(safe-area-inset-top)) - 178px)) !important; }
  #ksp-mobile-surface > .ksp-mobile-roll-panel { bottom: max(10px, env(safe-area-inset-bottom)) !important; }
  #ksp-mobile-surface > .ksp-mobile-throttle-panel { bottom: max(10px, env(safe-area-inset-bottom)) !important; }
  #ksp-mobile-surface > .ksp-mobile-editor-panel, #ksp-mobile-surface > .ksp-mobile-eva-panel { top: calc(max(12px, env(safe-area-inset-top)) + 54px); bottom: max(10px, env(safe-area-inset-bottom)); max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - max(10px, env(safe-area-inset-bottom)) - 54px); overflow-y: auto; align-content: start; overscroll-behavior: contain; touch-action: pan-y; }
  #ksp-mobile-surface > .ksp-mobile-editor-panel .ksp-mobile-cluster, #ksp-mobile-surface > .ksp-mobile-eva-panel .ksp-mobile-cluster, #ksp-mobile-surface > .ksp-mobile-editor-panel button, #ksp-mobile-surface > .ksp-mobile-eva-panel button { touch-action: pan-y; }
  #ksp-mobile-surface > .ksp-mobile-editor-panel .ksp-mobile-cluster, #ksp-mobile-surface > .ksp-mobile-eva-panel .ksp-mobile-cluster { flex: none; }
  .ksp-mobile-utility-menu { max-height: min(70vh, calc(100dvh - max(12px, env(safe-area-inset-top)) - max(10px, env(safe-area-inset-bottom)) - 107px), 420px); overscroll-behavior: contain; }
  .ksp-mobile-label { font-size: clamp(11px, 2.1vh, 13px); }
  /* Very short landscape windows cannot fit two three-row action panels at
     44px controls. Three columns keep the visual panels compact while every
     button retains its full touch target. */
  @media (max-height: 420px) {
    #ksp-mobile-surface .ksp-mobile-flight-actions, #ksp-mobile-surface .ksp-mobile-attitude-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    #ksp-mobile-surface .ksp-mobile-flight-actions button[data-ksp-key="space"] { grid-column: span 3; }
  }
}
@media (hover: hover) and (pointer: fine) and (max-width: 760px) {
  /* A narrow desktop window still needs a discoverable fullscreen affordance;
     only touch/coarse layouts use the native mobile utility instead. */
  #unity-footer { display: block; }
}
@media (hover: none) and (pointer: coarse) and (orientation: portrait) {
  #ksp-mobile-controls { display: block; }
  #ksp-mobile-controls .ksp-mobile-portrait-warning { display: block; }
  #ksp-mobile-controls .ksp-mobile-toggle { display: none; }
  #ksp-mobile-controls #ksp-mobile-surface { display: none; }
}
#unity-warning { position: fixed; left: 50%; top: max(12px, env(safe-area-inset-top)); max-width: min(760px, calc(90vw - env(safe-area-inset-left) - env(safe-area-inset-right))); transform: translateX(-50%); background: white; color: #111; padding: 10px; display: none; z-index: 30; }
#ksp-memory-status-card { display: none; }
#ksp-memory-status-card i { width: 10px; height: 10px; border-radius: 50%; background: #e0ab40; box-shadow: 0 0 9px #d69f32; }
#ksp-memory-status-card.memory64 i { background: #a6d943; box-shadow: 0 0 10px #9bd33d; }
#ksp-memory-status-card.standard i { background: #71a9bb; box-shadow: 0 0 9px #649daf; }
#ksp-memory-status-card span { display: grid; gap: 3px; min-width: 0; }
#ksp-memory-status-card strong { font-size: 9px; letter-spacing: .1em; }
#ksp-memory-status-card small { color: #aab8bd; font-size: 9px; line-height: 1.25; }

#ksp-prelaunch { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; overflow: auto; padding: clamp(18px, 4vw, 56px); background: radial-gradient(circle at 76% 18%, rgba(79,125,140,.26), transparent 31%), radial-gradient(circle at 22% 82%, rgba(93,116,50,.14), transparent 28%), linear-gradient(145deg, #03070a 0%, #0b161c 48%, #020406 100%); }
#ksp-prelaunch::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(to bottom, transparent, #000 24%, #000 78%, transparent); }
#ksp-prelaunch[hidden] { display: none; }
.ksp-launch-window { position: relative; width: min(980px, 100%); border: 1px solid #75848a; border-radius: 9px; overflow: hidden; background: linear-gradient(#354047, #252e33 6px, #151d22 6px, #11171b); box-shadow: 0 28px 90px rgba(0,0,0,.72), inset 0 1px rgba(255,255,255,.28); }
.ksp-launch-window::after { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(171,190,197,.16); border-radius: 5px; pointer-events: none; }
.ksp-launch-header { position: relative; display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 18px; min-height: 116px; padding: 22px 28px; border-bottom: 1px solid #6c777b; background: linear-gradient(180deg, #334149 0%, #202b31 55%, #182127 100%); }
.ksp-orbit-mark { position: relative; width: 68px; height: 68px; border: 3px solid #d7e1e3; border-radius: 50%; transform: rotate(-18deg); box-shadow: inset 0 0 18px rgba(153,208,224,.18); }
.ksp-orbit-mark::before { content: ""; position: absolute; left: -11px; right: -11px; top: 30px; border-top: 3px solid #80b7c8; border-radius: 50%; transform: rotate(22deg); }
.ksp-orbit-mark::after { content: ""; position: absolute; width: 12px; height: 12px; right: -4px; top: 10px; border-radius: 50%; background: #a9d542; box-shadow: 0 0 14px #9bd53d; }
.ksp-orbit-mark span { position: absolute; width: 16px; height: 26px; left: 23px; top: 19px; background: #edf2ef; clip-path: polygon(50% 0, 71% 38%, 100% 70%, 63% 67%, 50% 100%, 37% 67%, 0 70%, 29% 38%); }
.ksp-eyebrow { margin: 0 0 4px; color: #9fb0b7; font-size: 11px; font-weight: 700; letter-spacing: .22em; }
.ksp-launch-header h1 { margin: 0; color: #f4f6f3; font-size: clamp(24px, 4vw, 39px); line-height: 1; letter-spacing: .035em; text-shadow: 0 2px #080a0b; }
.ksp-subtitle { margin: 8px 0 0; color: #aebac0; font-size: 14px; }
.ksp-status-light { align-self: start; display: flex; align-items: center; gap: 8px; margin-top: 4px; padding: 8px 10px; border: 1px solid #536066; border-radius: 4px; color: #a8b4b9; background: #12191d; font-size: 10px; letter-spacing: .16em; }
.ksp-status-light i { width: 9px; height: 9px; border-radius: 50%; background: #9bd43f; box-shadow: 0 0 9px #9bd43f; }
.ksp-launch-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(360px, 1.15fr); gap: 14px; padding: 18px; }
.ksp-options-panel, .ksp-memory-panel { min-width: 0; margin: 0; border: 1px solid #46545b; border-radius: 5px; padding: 16px; background: linear-gradient(145deg, rgba(42,53,59,.78), rgba(18,25,29,.92)); box-shadow: inset 0 1px rgba(255,255,255,.08); }
.ksp-options-panel h2, .ksp-memory-panel legend { margin: 0 0 15px; padding: 0 7px; color: #b8c6cb; font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.ksp-memory-panel legend { margin-left: -7px; }
.ksp-field { display: grid; gap: 7px; margin-bottom: 14px; color: #c3cdd0; font-size: 12px; font-weight: 700; letter-spacing: .035em; }
.ksp-field select { width: 100%; height: 39px; border: 1px solid #6a777c; border-radius: 4px; padding: 0 34px 0 11px; color: #eef3f2; background: linear-gradient(#3c494f, #273238); font: inherit; box-shadow: inset 0 1px rgba(255,255,255,.12), 0 1px 2px #060809; }
.ksp-field select:focus-visible, .ksp-check input:focus-visible, .ksp-mode-card input:focus-visible + .ksp-mode-copy, #ksp-launch-button:focus-visible { outline: 2px solid #aedc47; outline-offset: 2px; }
.ksp-check { display: flex; align-items: center; gap: 9px; margin: 5px 0 14px; color: #c7d0d2; font-size: 12px; }
.ksp-check input { width: 17px; height: 17px; accent-color: #99cf3d; }
#ksp-render-summary { display: block; min-height: 47px; padding: 10px 11px; border-left: 3px solid #73a7b7; color: #9eafb5; background: rgba(3,9,12,.5); font-size: 11px; line-height: 1.45; }
.ksp-mode-card { position: relative; display: grid; grid-template-columns: 1fr 21px; align-items: center; min-height: 82px; margin-bottom: 11px; border: 1px solid #5c696e; border-radius: 5px; padding: 13px 14px; background: linear-gradient(120deg, #313d43, #202a2f); cursor: pointer; box-shadow: inset 0 1px rgba(255,255,255,.1); }
.ksp-mode-card:hover { border-color: #89979b; background: linear-gradient(120deg, #3a484f, #253137); }
.ksp-mode-card:has(input:checked) { border-color: #a8cf4c; box-shadow: inset 4px 0 #a8cf4c, inset 0 1px rgba(255,255,255,.12), 0 0 15px rgba(156,202,58,.09); }
.ksp-mode-card:has(input:disabled) { opacity: .58; cursor: not-allowed; filter: saturate(.55); }
.ksp-mode-card > input { position: absolute; opacity: 0; pointer-events: none; }
.ksp-mode-copy { display: grid; gap: 4px; }
.ksp-mode-copy strong { color: #edf2ef; font-size: 16px; letter-spacing: .07em; }
.ksp-mode-copy strong b { display: inline-block; margin-left: 6px; border: 1px solid #c69a45; border-radius: 3px; padding: 2px 5px; color: #f1c76c; font-size: 8px; vertical-align: 2px; letter-spacing: .12em; }
.ksp-mode-copy small { color: #bac6c9; font-size: 12px; }
.ksp-mode-copy em { color: #83b9c7; font-size: 10px; font-style: normal; }
.ksp-radio-light { width: 17px; height: 17px; border: 2px solid #68777c; border-radius: 50%; background: #11181b; box-shadow: inset 0 0 0 3px #11181b; }
.ksp-mode-card input:checked ~ .ksp-radio-light { border-color: #b8e65a; background: #a6db43; box-shadow: inset 0 0 0 3px #1c2619, 0 0 9px #91cb38; }
.ksp-memory-note { margin: 3px 2px 0; color: #829198; font-size: 10px; line-height: 1.5; }
.ksp-launch-footer { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 82px; padding: 15px 22px; border-top: 1px solid #5c696e; background: linear-gradient(#263138, #171e22); }
#ksp-launch-status { margin: 0; color: #9eafb5; font-size: 11px; line-height: 1.4; }
#ksp-launch-button { display: flex; align-items: stretch; flex: 0 0 auto; min-width: 205px; min-height: 48px; border: 1px solid #c9942b; border-radius: 5px; padding: 0; overflow: hidden; color: #181204; background: linear-gradient(#e7be59, #bb8124); font-weight: 900; letter-spacing: .08em; cursor: pointer; box-shadow: inset 0 1px rgba(255,255,255,.55), 0 3px 7px rgba(0,0,0,.38); }
#ksp-launch-button:hover { filter: brightness(1.12); }
#ksp-launch-button:active { transform: translateY(1px); }
#ksp-launch-button:disabled { filter: grayscale(.8); opacity: .55; cursor: wait; }
#ksp-launch-button span { display: grid; place-items: center; flex: 1; padding: 0 17px; }
#ksp-launch-button i { display: grid; place-items: center; width: 48px; border-left: 1px solid rgba(75,47,3,.4); background: rgba(255,255,255,.14); font-style: normal; }
@media (max-width: 760px) { #ksp-prelaunch { padding: 10px; place-items: start center; } .ksp-launch-header { grid-template-columns: 54px 1fr; padding: 18px; } .ksp-orbit-mark { width: 50px; height: 50px; } .ksp-orbit-mark span { left: 15px; top: 11px; } .ksp-status-light { display: none; } .ksp-launch-grid { grid-template-columns: 1fr; } .ksp-launch-footer { align-items: stretch; flex-direction: column; } #ksp-launch-button { width: 100%; } }
#ksp-start-screen:not([hidden]) ~ #unity-container #unity-footer { visibility: hidden; pointer-events: none; }
#ksp-start-screen { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: #0c1219; color: #edf3ef; padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); box-sizing: border-box; font: 16px sans-serif; }
#ksp-start-screen[hidden] { display: none; }
.ksp-start-card { width: min(420px, 100%); max-height: 100%; overflow: auto; }
.ksp-start-card h1 { margin-top: 0; font-size: 26px; }
.ksp-start-card p { line-height: 1.5; color: #c0c9d1; }
.ksp-start-card button { padding: 10px 14px; max-width: 100%; }
#ksp-start-play { font: inherit; margin-bottom: 12px; }
#ksp-download-assets, #ksp-download-cancel { display: block; margin-top: 8px; font: inherit; }
#ksp-download-cancel[hidden] { display: none; }
#ksp-download-progress { display: block; width: 100%; height: 10px; margin-top: 10px; accent-color: #a9d34f; }
#ksp-download-status { display: block; max-width: 100%; margin-top: 6px; line-height: 1.4; }
