:root {
  --game-display-max-w: 1280px;
  --game-display-max-h: 720px;
  --panel: linear-gradient(180deg, rgba(10,18,32,0.86) 0%, rgba(8,14,26,0.9) 100%);
  --ink: #eef7ff;
  --accent2: #6fdfff;
  --line: rgba(127, 190, 255, 0.22);
  --shadow-xl: 0 30px 90px rgba(0, 0, 0, 0.52);
}

* { box-sizing: border-box; }

html, body {
  min-height: 100%;
  height: 100%;
}

body {
  margin: 0;
  color: var(--ink);
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  background:
    radial-gradient(circle at 14% 12%, rgba(82, 164, 255, 0.18), transparent 24%),
    radial-gradient(circle at 82% 9%, rgba(159, 137, 255, 0.16), transparent 22%),
    radial-gradient(circle at 50% 100%, rgba(61, 112, 255, 0.12), transparent 30%),
    linear-gradient(180deg, #050913 0%, #07111f 48%, #04070e 100%);
  overflow-x: hidden;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: auto;
  pointer-events: none;
  z-index: 0;
}

body::before {
  top: -220px;
  left: -120px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(104, 207, 255, 0.18), rgba(104, 207, 255, 0) 72%);
  filter: blur(16px);
}

body::after {
  right: -180px;
  bottom: -180px;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(145, 122, 255, 0.16), rgba(145, 122, 255, 0) 74%);
  filter: blur(22px);
}

.shell {
  position: relative;
  z-index: 1;
  width: min(calc(100vw - 24px), 1400px);
  margin: 10px auto 16px;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.015) 100%),
    var(--panel);
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.03),
    var(--shadow-xl);
  backdrop-filter: blur(18px);
}

.titlebar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 18px;
  align-items: stretch;
  margin-top: 12px;
  margin-bottom: 14px;
}

.titlebar > div:first-child,
.hintbox {
  background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.015));
  border: 1px solid rgba(126, 190, 255, 0.16);
  border-radius: 22px;
  padding: 18px 20px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.titlebar h1 {
  margin: 0;
  font-size: 34px;
  letter-spacing: 0.02em;
  font-weight: 800;
}

.titlebar p {
  margin: 8px 0 0;
  color: #bad0ee;
  max-width: 760px;
  line-height: 1.5;
  font-size: 15px;
}

.hintbox {
  display: grid;
  grid-template-columns: 1fr;
  gap: 7px;
  min-width: 0;
  font-size: 14px;
  color: #e1ecff;
}

.hintbox span {
  display: inline-block;
  min-width: 96px;
  color: var(--accent2);
  font-weight: 600;
}


.viewport-stage {
  position: relative;
  min-height: calc(100vh - 28px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px 0 10px;
}

.level-end-ok-button {
  position: absolute;
  left: 50%;
  bottom: clamp(92px, 14vh, 138px);
  transform: translate(-50%, 0);
  z-index: 40;
  min-width: 126px;
  padding: 11px 20px;
  border-radius: 14px;
  border: 1px solid rgba(125,245,183,0.44);
  color: #eafff4;
  font-weight: 900;
  letter-spacing: 0.02em;
  background: linear-gradient(180deg, rgba(33,119,81,0.98), rgba(18,68,52,0.99));
  box-shadow: 0 10px 28px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.12);
  cursor: pointer;
}
.level-end-ok-button:hover { filter: brightness(1.08); transform: translate(-50%, -1px); }
.level-end-ok-button:active { transform: translate(-50%, 0); }
.level-end-ok-button:focus-visible { transform: translate(-50%, 0); }
.level-end-ok-button[hidden] { display: none !important; }
#playerSettingsLevelNews[hidden],
#playerSettingsNewsSubscribe[hidden],
#playerSettingsNewsUnsubscribe[hidden] { display: none !important; }

canvas {
  display: block;
  width: 100%;
  max-width: 1280px;
  height: auto;
  margin: 0 auto;
  background: #03060d;
  border: 1px solid rgba(125, 189, 255, 0.28);
  border-radius: 24px;
  image-rendering: auto;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 24px 70px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255,255,255,0.025);
}






button {
  border: 1px solid rgba(118, 180, 239, 0.25);
  background: linear-gradient(180deg, rgba(31,54,83,0.95), rgba(18,30,48,0.96));
  color: #f4f9ff;
  border-radius: 12px;
  font: inherit;
  padding: 9px 14px;
  cursor: pointer;
  transition: transform 0.16s ease, background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

button:hover {
  transform: translateY(-1px);
  border-color: rgba(141, 211, 255, 0.42);
  background: linear-gradient(180deg, rgba(41,72,110,0.98), rgba(20,35,58,0.98));
}

button:active {
  transform: translateY(0);
}



pre {
  margin: 8px 0 0;
  min-height: 160px;
  max-height: 280px;
  overflow: auto;
  white-space: pre-wrap;
  color: #dcecff;
  font-size: 13px;
  line-height: 1.45;
}

.terminal-overlay,
.gui-overlay,
.start-menu {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
}

.terminal-overlay,
.gui-overlay { z-index: 20; }
.gui-overlay { z-index: 21; }
.start-menu { z-index: 40; }

.terminal-overlay.open,
.gui-overlay.open,
.start-menu.open {
  display: flex;
}

.terminal-overlay,
.gui-overlay {
  background:
    radial-gradient(circle at 50% 0%, rgba(83, 168, 255, 0.10), transparent 36%),
    rgba(2, 7, 14, 0.78);
  backdrop-filter: blur(8px);
}

.terminal-window,
.gui-window {
  width: min(1020px, calc(100vw - 40px));
  max-height: calc(100vh - 40px);
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid rgba(127, 195, 255, 0.26);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01)),
    linear-gradient(180deg, rgba(8,15,28,0.98), rgba(6,11,20,0.98));
  box-shadow: var(--shadow-xl);
}

.terminal-window {
  min-height: 620px;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
}

.gui-window {
  min-height: 580px;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
}

.terminal-titlebar,
.gui-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  background: linear-gradient(180deg, rgba(20,49,79,0.95), rgba(11,26,43,0.95));
  border-bottom: 1px solid rgba(137, 205, 255, 0.18);
}

.terminal-status,
.gui-status,
.terminal-foot,
.gui-foot {
  color: #9fbddf;
  font-size: 13px;
}

.terminal-body {
  min-height: 0;
  display: grid;
}

.terminal-panel {
  display: none;
  min-height: 0;
}

.terminal-panel.open {
  display: block;
}

.terminal-output {
  height: 100%;
  overflow: auto;
  padding: 18px 18px 14px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 10px;
  white-space: pre-wrap;
  background:
    radial-gradient(circle at top, rgba(17, 58, 84, 0.16), rgba(5, 11, 20, 0.96) 44%),
    linear-gradient(180deg, #05101b 0%, #040811 100%);
  color: #c8ffd2;
  font-family: Consolas, "Cascadia Mono", "Courier New", monospace;
  font-size: 15px;
  line-height: 1.45;
}

.terminal-text {
  white-space: pre-wrap;
  word-break: break-word;
}

.terminal-inline-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  padding-top: 6px;
  margin-top: auto;
}



.terminal-prompt {
  color: #7fe9ff;
  font-family: Consolas, "Cascadia Mono", "Courier New", monospace;
  font-size: 15px;
}

.terminal-input {
  width: 100%;
  border: 1px solid rgba(68, 115, 157, 0.55);
  border-radius: 12px;
  background: rgba(1, 4, 8, 0.95);
  color: #d9ffe0;
  padding: 11px 14px;
  font: 15px Consolas, "Cascadia Mono", "Courier New", monospace;
  outline: none;
}

.terminal-input--inline {
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
}

.terminal-input:focus {
  border-color: #6ad6ff;
  box-shadow: 0 0 0 3px rgba(106, 214, 255, 0.15);
}

.terminal-input--inline:focus {
  border-color: transparent;
  box-shadow: none;
}

.terminal-foot,
.gui-foot {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  padding: 12px 16px 14px;
  background: rgba(6, 12, 22, 0.96);
  border-top: 1px solid rgba(135, 205, 255, 0.08);
}

.gui-tabs {
  display: flex;
  gap: 8px;
  padding: 12px 14px 0;
  background: rgba(6, 11, 20, 0.96);
}

.gui-tab {
  border-radius: 14px 14px 0 0;
  border-bottom: none;
  min-width: 250px;
  background: linear-gradient(180deg, rgba(21,41,65,0.95), rgba(10,20,33,0.98));
}

.gui-tab.active {
  background: linear-gradient(180deg, rgba(49,110,173,0.96), rgba(22,53,81,0.98));
}

.gui-body {
  padding: 18px;
  overflow: auto;
  background:
    radial-gradient(circle at top, rgba(28, 83, 126, 0.16), rgba(4, 8, 14, 0.98) 46%),
    #07101a;
}

.gui-panel { display: none; }
.gui-panel.open { display: block; }

.gui-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.gui-card {
  border: 1px solid rgba(118, 179, 239, 0.20);
  border-radius: 20px;
  background: rgba(10, 18, 31, 0.92);
  padding: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.gui-card h3 {
  margin: 0 0 14px;
  color: #edf7ff;
}

.gui-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(116, 174, 232, 0.10);
}

.gui-row span { color: #a7bfd8; }
.gui-row strong { color: #f2fbff; text-align: right; }

.gui-note,
.gui-transfer-card p {
  color: #bfd3e8;
  line-height: 1.5;
  font-size: 14px;
}

.gui-progress-wrap { margin: 18px 0 12px; }

.gui-progress-bar {
  height: 26px;
  border-radius: 999px;
  border: 1px solid rgba(117, 174, 230, 0.36);
  overflow: hidden;
  background: linear-gradient(180deg, #0d1825 0%, #07101a 100%);
}

.gui-progress-fill {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #45d8ff 0%, #85ff9b 50%, #6df3ff 100%);
  box-shadow: 0 0 24px rgba(69, 216, 255, 0.28);
  transition: width 0.12s linear;
}

.gui-progress-label {
  margin-top: 8px;
  font-weight: 700;
  color: #ecf9ff;
}

.gui-transfer-error {
  min-height: 24px;
  color: #ff9aab;
  margin-bottom: 10px;
}

.start-menu__backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at center, rgba(85, 154, 255, 0.18), transparent 34%),
    linear-gradient(180deg, rgba(3,7,14,0.52), rgba(2,7,14,0.84));
  backdrop-filter: blur(12px);
}

.start-menu__panel {
  position: relative;
  width: min(980px, calc(100vw - 40px));
  padding: 30px 30px 28px;
  border-radius: 32px;
  background:
    radial-gradient(circle at top left, rgba(90, 180, 255, 0.10), transparent 36%),
    linear-gradient(180deg, rgba(10,18,31,0.96) 0%, rgba(6,11,21,0.96) 100%);
  border: 1px solid rgba(133, 201, 255, 0.22);
  box-shadow:
    0 36px 100px rgba(0,0,0,0.52),
    inset 0 1px 0 rgba(255,255,255,0.06);
  overflow: hidden;
}

.start-menu__panel::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 180px;
  background: linear-gradient(180deg, rgba(94, 190, 255, 0.12), rgba(94, 190, 255, 0));
  pointer-events: none;
}

.start-menu__eyebrow {
  position: relative;
  display: inline-block;
  padding: 7px 13px;
  border-radius: 999px;
  background: rgba(85, 163, 255, 0.14);
  color: #9fd9ff;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 800;
}

.start-menu h2 {
  position: relative;
  margin: 16px 0 10px;
  font-size: clamp(42px, 5vw, 66px);
  line-height: 0.96;
  letter-spacing: -0.02em;
}

.start-menu__lead {
  position: relative;
  max-width: 760px;
  margin: 0 0 22px;
  color: #bfd4ef;
  font-size: 18px;
  line-height: 1.6;
}





.start-menu__level-title {
  margin-bottom: 12px;
  color: #d7ebff;
  font-size: 18px;
  font-weight: 700;
}

.start-menu__level-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.start-menu__level-button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(133, 201, 255, 0.20);
  background: linear-gradient(180deg, rgba(22,40,64,0.95), rgba(13,24,39,0.95));
  color: #eef7ff;
  text-align: left;
}

.start-menu__level-button.active {
  border-color: rgba(160, 213, 255, 0.70);
  box-shadow: 0 14px 28px rgba(43, 111, 242, 0.20);
  background: linear-gradient(180deg, rgba(47,95,179,0.96), rgba(24,56,128,0.96));
}

.start-menu__level-name {
  font-size: 19px;
  font-weight: 800;
}

.start-menu__level-desc {
  color: #c5d7ef;
  line-height: 1.4;
}









.start-menu__button {
  min-width: 180px;
  padding: 14px 20px;
  border-radius: 18px;
  border: 1px solid rgba(133, 201, 255, 0.20);
  background: linear-gradient(180deg, rgba(27,49,77,0.95), rgba(16,29,47,0.95));
  color: #eef7ff;
  font-weight: 700;
}

.start-menu__button--primary {
  background: linear-gradient(180deg, #41a2ff, #2b6ff2);
  border-color: rgba(160, 213, 255, 0.70);
  box-shadow: 0 18px 34px rgba(43, 111, 242, 0.30);
}



@media (max-width: 760px) {
  .start-menu__level-buttons {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1120px) {
  .titlebar {
    grid-template-columns: 1fr;
  }
  .hintbox {
    min-width: 0;
  }
}



















































































@media (max-width: 900px) {
  .gui-grid{
    grid-template-columns: 1fr;
  }
}



.game-action-button {
  border-color: rgba(255, 196, 100, 0.34);
  background: linear-gradient(180deg, rgba(103,65,18,0.96), rgba(58,36,9,0.98));
  color:#fff5df;
  font-weight:700;
}

.game-action-button:hover {
  border-color: rgba(255, 214, 137, 0.54);
  background: linear-gradient(180deg, rgba(126,81,24,0.98), rgba(74,46,11,0.98));
}



@media (max-height: 980px) {
  .titlebar > div:first-child,
  .hintbox { padding: 14px 16px; }
  .titlebar h1 { font-size: 28px; }
  .titlebar p, .hintbox { font-size: 13px; }
}

@media (max-height: 820px) {
  .viewport-stage {
    min-height: calc(100vh - 18px);
    padding-top: 2px;
    padding-bottom: 6px;
  }
}


/* futuristic tablet upgrade */

@keyframes tabletSweep {
  0% { transform: translateX(-130%) skewX(-18deg); opacity: 0; }
  10% { opacity: 0.16; }
  45% { opacity: 0.24; }
  100% { transform: translateX(160%) skewX(-18deg); opacity: 0; }
}

@keyframes tabletPulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.12); }
}



@keyframes progressSheen {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

@keyframes scanFloat {
  0% { background-position: 0 0, 0 0, 0 0; }
  100% { background-position: 0 28px, 120px 0, 0 0; }
}

.terminal-overlay,
.gui-overlay {
  background:
    radial-gradient(circle at 16% 12%, rgba(103, 208, 255, 0.16), transparent 24%),
    radial-gradient(circle at 82% 10%, rgba(166, 122, 255, 0.16), transparent 22%),
    linear-gradient(180deg, rgba(2, 8, 18, 0.78), rgba(2, 8, 18, 0.92));
  backdrop-filter: blur(16px) saturate(140%);
}

.terminal-window,
.gui-window {
  position: relative;
  isolation: isolate;
  border-radius: 34px;
  border: 1px solid rgba(126, 207, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.015)),
    radial-gradient(circle at top left, rgba(103, 217, 255, 0.16), transparent 24%),
    radial-gradient(circle at bottom right, rgba(151, 103, 255, 0.14), transparent 26%),
    linear-gradient(180deg, rgba(7,13,24,0.98), rgba(4,8,15,0.98));
  box-shadow:
    0 26px 80px rgba(0,0,0,0.56),
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 0 1px rgba(255,255,255,0.03),
    0 0 48px rgba(78, 194, 255, 0.08);
}
























.terminal-window > *, .gui-window > * { position: relative; z-index: 1; }

.terminal-titlebar,
.gui-titlebar {
  position: relative;
  padding: 18px 22px;
  background:
    linear-gradient(180deg, rgba(25, 57, 90, 0.95), rgba(10, 23, 38, 0.94)),
    linear-gradient(90deg, rgba(103, 223, 255, 0.14), transparent 35%, rgba(156, 117, 255, 0.08));
  border-bottom: 1px solid rgba(137, 205, 255, 0.18);
}

.terminal-titlebar strong,
.gui-titlebar strong {
  letter-spacing: 0.08em;
  font-size: 14px;
  color: #ecf9ff;
}

.terminal-status,
.gui-status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #a9c8e6;
}

.terminal-status::before,
.gui-status::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #7dffb8;
  box-shadow: 0 0 12px rgba(125,255,184,0.68);
  animation: tabletPulse 1.8s ease-in-out infinite;
}

.terminal-output {
  position: relative;
  padding: 18px 20px;
  background:
    linear-gradient(180deg, rgba(11, 22, 35, 0.86), rgba(4, 9, 15, 0.96)),
    radial-gradient(circle at top, rgba(17, 96, 140, 0.18), transparent 48%);
  color: #cafee0;
  text-shadow: 0 0 10px rgba(119, 255, 196, 0.08);
  font-size: 15px;
  line-height: 1.5;
  border-top: 1px solid rgba(135,205,255,0.08);
  border-bottom: 1px solid rgba(135,205,255,0.08);
}

.terminal-output::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,0.032) 0 1px, rgba(255,255,255,0) 1px 4px),
    linear-gradient(90deg, rgba(111,223,255,0.06), transparent 40%, rgba(160,126,255,0.05));
  mix-blend-mode: screen;
  opacity: 0.42;
}



.terminal-prompt {
  color: #7fe9ff;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-shadow: 0 0 14px rgba(127,233,255,0.18);
}

.terminal-input {
  border-radius: 16px;
  border: 1px solid rgba(91, 180, 235, 0.42);
  background:
    linear-gradient(180deg, rgba(2, 7, 12, 0.96), rgba(4, 12, 20, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    inset 0 0 24px rgba(72, 191, 255, 0.05);
  color: #e3fff0;
  padding: 13px 16px;
}

.terminal-input:focus {
  border-color: #7de8ff;
  box-shadow: 0 0 0 4px rgba(106,214,255,0.12), inset 0 0 24px rgba(72, 191, 255, 0.09);
}

.terminal-foot,
.gui-foot {
  padding: 12px 18px 16px;
  background: rgba(5, 10, 18, 0.94);
  border-top: 1px solid rgba(135,205,255,0.08);
  color: #91b4d7;
}

.gui-tabs {
  position: relative;
  padding: 14px 16px 0;
  background: rgba(7, 12, 21, 0.94);
  gap: 10px;
}

.gui-tab {
  min-width: 260px;
  border-radius: 16px 16px 0 0;
  border: 1px solid rgba(118, 179, 239, 0.18);
  border-bottom: none;
  background: linear-gradient(180deg, rgba(17,34,55,0.94), rgba(10,18,29,0.98));
  color: #dbeeff;
}

.gui-tab.active {
  background: linear-gradient(180deg, rgba(44,103,164,0.96), rgba(16,42,66,0.98));
  box-shadow: 0 -8px 30px rgba(65, 173, 255, 0.12);
}

.gui-body {
  position: relative;
  padding: 22px;
  background:
    radial-gradient(circle at top, rgba(21, 92, 138, 0.16), rgba(6, 10, 18, 0.98) 46%),
    rgba(7, 12, 20, 0.98);
}

.gui-card {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(118, 179, 239, 0.18);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)),
    rgba(10, 18, 31, 0.88);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 16px 34px rgba(0,0,0,0.24);
}

.gui-card::before {
  content: "";
  position: absolute;
  inset: -40% auto auto -12%;
  width: 60%;
  height: 180%;
  background: linear-gradient(115deg, rgba(255,255,255,0), rgba(113, 224, 255, 0.08), rgba(255,255,255,0));
  animation: tabletSweep 10s linear infinite;
}

.gui-card > * { position: relative; z-index: 1; }

.gui-card h3 {
  color: #f3fbff;
  letter-spacing: 0.02em;
}

.gui-row {
  padding: 13px 0;
  border-bottom: 1px solid rgba(116, 174, 232, 0.10);
}

.gui-row strong {
  color: #ffffff;
  text-shadow: 0 0 12px rgba(120, 233, 255, 0.10);
}

.gui-note,
.gui-transfer-card p {
  color: #c9dcf2;
}

.gui-progress-bar {
  position: relative;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(6,12,18,0.98), rgba(10,19,29,0.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), inset 0 0 0 1px rgba(117,174,230,0.20);
}

.gui-progress-fill {
  background: linear-gradient(90deg, #45d8ff 0%, #91f6ff 32%, #85ff9b 65%, #6df3ff 100%);
  background-size: 200% 100%;
  animation: progressSheen 3.6s linear infinite;
  box-shadow: 0 0 28px rgba(69, 216, 255, 0.28);
}

.gui-progress-label {
  font-size: 15px;
  letter-spacing: 0.06em;
  color: #f4fbff;
}

.gui-transfer-error {
  color: #ff9cb5;
  min-height: 26px;
}

.gui-action-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.gui-action-row button {
  border-radius: 16px;
}




@keyframes tabletAppear {
  0% { opacity: 0; transform: translateY(24px) scale(0.972); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}





@keyframes graphBars {
  0%, 100% { transform: scaleY(0.35); opacity: 0.55; }
  50% { transform: scaleY(1); opacity: 1; }
}



@keyframes orbBeat {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(109, 255, 184, 0.18), 0 0 22px rgba(109, 255, 184, 0.22); }
  50% { transform: scale(1.08); box-shadow: 0 0 0 10px rgba(109, 255, 184, 0.0), 0 0 34px rgba(109, 255, 184, 0.34); }
}

.terminal-overlay.open .terminal-window,
.gui-overlay.open .gui-window {
  animation: tabletAppear 0.4s cubic-bezier(.2,.9,.2,1);
}























.terminal-window.booting .terminal-output, .terminal-window.booting .terminal-foot, .gui-window.booting .gui-tabs, .gui-window.booting .gui-body, .gui-window.booting .gui-foot{
  filter: blur(2px);
  opacity: 0.32;
  pointer-events: none;
  user-select: none;
}

.terminal-titlebar,
.gui-titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}













.telemetry-wave{
  display: inline-flex;
  align-items: end;
  gap: 4px;
  height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 255, 0.18);
  background: linear-gradient(180deg, rgba(11,24,38,0.96), rgba(5,11,18,0.98));
  overflow: hidden;
}

.telemetry-wave span{
  width: 4px;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(130, 244, 255, 0.98), rgba(84, 162, 255, 0.82));
  transform-origin: bottom center;
  animation: graphBars 1.4s ease-in-out infinite;
}

.telemetry-wave span{
  background: linear-gradient(180deg, rgba(255, 228, 142, 0.98), rgba(94, 228, 255, 0.82));
}

.telemetry-wave span:nth-child(2){ animation-delay: .08s; }
.telemetry-wave span:nth-child(3){ animation-delay: .16s; }
.telemetry-wave span:nth-child(4){ animation-delay: .24s; }
.telemetry-wave span:nth-child(5){ animation-delay: .32s; }
.telemetry-wave span:nth-child(6){ animation-delay: .40s; }
.telemetry-wave span:nth-child(7){ animation-delay: .48s; }
.telemetry-wave span:nth-child(8){ animation-delay: .56s; }

.terminal-output::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(116, 248, 255, 0.11) 48%, rgba(255,255,255,0) 100%);
  transform: translateY(-105%);
  animation: tabletSweep 5.8s linear infinite;
  mix-blend-mode: screen;
}

.gui-live-strip {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border-radius: 22px;
  border: 1px solid rgba(116, 174, 232, 0.18);
  background: linear-gradient(180deg, rgba(8,16,28,0.92), rgba(6,12,21,0.96));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.status-orb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #f4fff9, #73ffc3 34%, #1ea666 100%);
  animation: orbBeat 1.8s ease-in-out infinite;
}

.status-orb.offline {
  background: radial-gradient(circle at 35% 35%, #fff6f7, #ff95ab 34%, #96324d 100%);
}

.telemetry-card {
  min-width: 104px;
  padding: 10px 14px;
  border-radius: 18px;
  border: 1px solid rgba(116, 174, 232, 0.12);
  background: rgba(15, 23, 38, 0.78);
}

.telemetry-card span {
  display: block;
  color: #8fb4d5;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.telemetry-card strong {
  color: #f4fbff;
  font-size: 15px;
  letter-spacing: 0.04em;
}

@media (max-width: 900px) {
  .terminal-window,
  .gui-window {
    width: calc(100vw - 20px);
    max-height: calc(100vh - 20px);
    border-radius: 24px;
  }

  .gui-tab {
    min-width: 0;
    flex: 1 1 0;
  }

  

  .gui-live-strip {
    flex-wrap: wrap;
  }
}


/* terminal layout fixes */
.terminal-window {
  height: min(820px, calc(100vh - 40px));
  max-height: calc(100vh - 40px);
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.gui-window {
  height: min(860px, calc(100vh - 40px));
  max-height: calc(100vh - 40px);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.terminal-output,
.gui-body {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.terminal-output {
  scrollbar-gutter: stable both-edges;
}

.terminal-foot, .gui-foot{
  position: relative;
  z-index: 2;
}

@media (max-width: 900px) {
  .terminal-window,
  .gui-window {
    height: calc(100vh - 20px);
    max-height: calc(100vh - 20px);
  }
}


/* static tablet sizing and mission indicators */
.tablet-window--terminal {
  height: min(860px, calc(100vh - 36px));
  max-height: calc(100vh - 36px);
  min-height: 660px;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.tablet-window--terminal .terminal-output {
  min-height: 340px;
  max-height: none;
  overflow: auto;
}

.status-orb {
  transition: background 160ms ease, box-shadow 160ms ease;
}



.telemetry-card strong {
  transition: color 120ms ease, text-shadow 120ms ease;
}


.terminal-tabs {
  display: flex;
  gap: 8px;
  padding: 12px 14px 0;
  background: rgba(6, 11, 20, 0.96);
}

.terminal-tab {
  border-radius: 14px 14px 0 0;
  border-bottom: none;
  min-width: 180px;
  background: linear-gradient(180deg, rgba(21,41,65,0.95), rgba(10,20,33,0.98));
}

.terminal-tab.active {
  background: linear-gradient(180deg, rgba(49,110,173,0.96), rgba(22,53,81,0.98));
}

.terminal-panel--rocket {
  height: 100%;
  overflow: auto;
  padding: 20px;
  background:
    radial-gradient(circle at top, rgba(28, 83, 126, 0.16), rgba(4, 8, 14, 0.98) 46%),
    #07101a;
}

.rocket-panel {
  border: 1px solid rgba(118, 179, 239, 0.20);
  border-radius: 22px;
  background: rgba(10, 18, 31, 0.92);
  padding: 20px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.rocket-panel__title {
  font-size: 22px;
  font-weight: 800;
  color: #eef8ff;
  margin-bottom: 12px;
}

.rocket-panel--locked {
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background:
    radial-gradient(circle at top, rgba(85, 127, 255, 0.12), transparent 30%),
    linear-gradient(180deg, rgba(9,16,28,0.96), rgba(5,10,19,0.98));
}

.rocket-panel--locked p {
  max-width: 680px;
  color: #b7cae5;
  line-height: 1.7;
}

.rocket-map {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(123, 195, 255, 0.24);
  background:
    radial-gradient(circle at 68% 20%, rgba(124, 118, 255, 0.28), transparent 22%),
    radial-gradient(circle at 24% 70%, rgba(59, 214, 255, 0.10), transparent 24%),
    linear-gradient(180deg, #071320 0%, #050d19 100%);
}

.rocket-map__planet {
  position: absolute;
  right: 72px;
  top: 48px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 32%, #d8dbff 0%, #9487ff 26%, #5747cb 62%, #30266f 100%);
  box-shadow: 0 0 54px rgba(111, 126, 255, 0.35);
}

.rocket-map__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(107, 170, 255, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(107, 170, 255, 0.09) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.55), rgba(0,0,0,0.95));
}

.rocket-map__route {
  position: absolute;
  height: 3px;
  transform-origin: left center;
  box-shadow: 0 0 20px rgba(116, 233, 255, 0.45);
}

.rocket-map__route--a {
  left: 118px;
  top: 272px;
  width: 300px;
  background: linear-gradient(90deg, #6fdfff, #85ff9b);
  transform: rotate(-18deg);
}

.rocket-map__route--b {
  left: 396px;
  top: 176px;
  width: 196px;
  background: linear-gradient(90deg, #85ff9b, #ffe275);
  transform: rotate(-8deg);
}

.rocket-map__node {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #f4fbff;
  background: rgba(8, 18, 33, 0.82);
  border: 1px solid rgba(118, 179, 239, 0.32);
  box-shadow: 0 0 18px rgba(118, 179, 239, 0.18);
}

.rocket-map__node--start { left: 78px; top: 260px; }
.rocket-map__node--relay { left: 372px; top: 176px; }
.rocket-map__node--orbit { right: 184px; top: 150px; }
.rocket-map__node--dock { right: 62px; top: 118px; }

.rocket-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.rocket-stats-grid--model {
  align-items: stretch;
}

.rocket-stat-card {
  border: 1px solid rgba(118, 179, 239, 0.20);
  border-radius: 20px;
  background: rgba(10, 18, 31, 0.92);
  padding: 18px;
}

.rocket-stat-card span {
  display: block;
  color: #9fb8de;
  margin-bottom: 10px;
}

.rocket-stat-card strong {
  display: block;
  font-size: 28px;
  color: #f2fbff;
}

.rocket-stat-card--wide {
  grid-column: 1 / -1;
}

.rocket-stat-note {
  display: block;
  margin-top: 10px;
  color: #9fb8de;
  line-height: 1.35;
}

.rocket-stat-bar {
  margin-top: 14px;
  height: 18px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(117, 174, 230, 0.36);
  background: linear-gradient(180deg, #0d1825 0%, #07101a 100%);
}

.rocket-stat-bar__fill {
  width: 0%;
  height: 100%;
  background: linear-gradient(90deg, #45d8ff 0%, #85ff9b 100%);
  box-shadow: 0 0 20px rgba(69, 216, 255, 0.28);
}

.rocket-stat-bar__fill--shield {
  background: linear-gradient(90deg, #8f87ff 0%, #63e9ff 100%);
}

.rocket-stat-bar__fill--health {
  background: linear-gradient(90deg, #ff9d5f 0%, #85ff9b 100%);
}

.rocket-stat-bar__fill--readiness {
  background: linear-gradient(90deg, #ffd06b 0%, #85ff9b 100%);
}

.rocket-dispatch {
  color: #ff8d9e;
}

.rocket-dispatch.online {
  color: #85ff9b;
}

.rocket-dispatch-dots {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.rocket-dispatch-dots span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,0.16);
}

.rocket-dispatch.online + .rocket-dispatch-dots span {
  background: #85ff9b;
  box-shadow: 0 0 18px rgba(133,255,155,0.35);
}

.rocket-brake-icon {
  margin-top: 16px;
  width: 92px;
  height: 32px;
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(255,179,112,0.22), rgba(255,125,102,0.10));
  border: 1px solid rgba(255,182,96,0.32);
  position: relative;
}

.rocket-brake-icon::after {
  content: "";
  position: absolute;
  left: 18px;
  top: 7px;
  width: 22px;
  height: 18px;
  border: 3px solid rgba(255,193,128,0.86);
  border-top: none;
  border-radius: 0 0 8px 8px;
}

.rocket-brake-icon::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 7px;
  width: 22px;
  height: 18px;
  border: 3px solid rgba(255,193,128,0.86);
  border-top: none;
  border-radius: 0 0 8px 8px;
}

.gui-task-decor {
  height: 116px;
  margin-bottom: 16px;
  border-radius: 20px;
  border: 1px solid rgba(118, 179, 239, 0.20);
  background: rgba(11, 20, 35, 0.9);
  position: relative;
  overflow: hidden;
}

.gui-task-decor::before,
.gui-task-decor::after {
  content: "";
  position: absolute;
}

.gui-task-decor--route {
  background: radial-gradient(circle at 75% 28%, rgba(102, 220, 255, 0.16), transparent 26%), linear-gradient(180deg, rgba(14,27,44,0.95), rgba(8,15,27,0.96));
}
.gui-task-decor--route::before {
  inset: 24px 34px auto 34px;
  height: 2px;
  background: linear-gradient(90deg, #6fdfff, #85ff9b);
  box-shadow: 0 14px 0 rgba(111,223,255,0.55), 0 28px 0 rgba(133,255,155,0.55);
}
.gui-task-decor--route::after {
  right: 34px; top: 24px; width: 64px; height: 64px; border-radius: 50%;
  border: 2px solid rgba(111,223,255,0.6);
}

.gui-task-decor--fuel {
  background: radial-gradient(circle at 30% 30%, rgba(255,213,111,0.16), transparent 24%), linear-gradient(180deg, rgba(14,27,44,0.95), rgba(8,15,27,0.96));
}
.gui-task-decor--fuel::before {
  left: 42px; top: 24px; width: 72px; height: 68px; border-radius: 18px 18px 22px 22px;
  background: linear-gradient(180deg, rgba(255,201,98,0.48), rgba(255,140,87,0.24)); border: 2px solid rgba(255,201,98,0.55);
}
.gui-task-decor--fuel::after {
  right: 44px; top: 36px; width: 110px; height: 16px; border-radius: 999px;
  background: linear-gradient(90deg, #ffd66f, #ff8c56);
  box-shadow: 0 0 24px rgba(255,214,111,0.25);
}

.gui-task-decor--shield {
  background: radial-gradient(circle at 50% 26%, rgba(111,233,255,0.18), transparent 26%), linear-gradient(180deg, rgba(14,27,44,0.95), rgba(8,15,27,0.96));
}
.gui-task-decor--shield::before {
  left: 50%; top: 26px; transform: translateX(-50%); width: 140px; height: 72px; border-radius: 90px 90px 18px 18px;
  border: 3px solid rgba(111,233,255,0.65); box-shadow: 0 0 28px rgba(111,233,255,0.18);
}
.gui-task-decor--shield::after {
  left: calc(50% - 78px); bottom: 22px; width: 156px; height: 10px; border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(111,233,255,0.62), transparent);
}

.gui-task-decor--brake {
  background: radial-gradient(circle at 50% 50%, rgba(255,176,118,0.14), transparent 26%), linear-gradient(180deg, rgba(14,27,44,0.95), rgba(8,15,27,0.96));
}
.gui-task-decor--brake::before {
  left: 42px; top: 32px; width: 96px; height: 32px; border-radius: 18px;
  border: 3px solid rgba(255,186,118,0.58);
}
.gui-task-decor--brake::after {
  right: 48px; top: 28px; width: 86px; height: 40px; border-top: 4px solid rgba(255,186,118,0.72); border-right: 4px solid rgba(255,186,118,0.72); transform: skewX(-18deg);
}

.gui-task-decor--dispatch {
  background: radial-gradient(circle at 72% 28%, rgba(111,233,255,0.16), transparent 20%), linear-gradient(180deg, rgba(14,27,44,0.95), rgba(8,15,27,0.96));
}
.gui-task-decor--dispatch::before {
  right: 42px; top: 20px; width: 74px; height: 74px; border-radius: 50%; border: 3px solid rgba(111,233,255,0.68);
}
.gui-task-decor--dispatch::after {
  left: 42px; top: 52px; width: 160px; height: 2px; background: linear-gradient(90deg, #63e9ff, rgba(99,233,255,0.05)); box-shadow: 0 -18px 0 rgba(99,233,255,0.42), 0 18px 0 rgba(99,233,255,0.26);
}

@media (max-width: 920px) {
  .rocket-stats-grid,
  .gui-grid {
    grid-template-columns: 1fr;
  }
  .terminal-tab { min-width: 0; flex: 1 1 0; }
}


/* terminal + rocket data refinements */
.tablet-window--terminal .terminal-output {
  display: block;
  min-height: 340px;
  max-height: none;
  overflow: auto;
  padding: 18px 20px 18px;
}
.terminal-text {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
}
.terminal-inline-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0;
  margin-top: 4px;
}
.terminal-input--inline {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  outline: none;
  color: #d9ffe0;
  font: inherit;
  caret-color: #7fe9ff;
}
.terminal-input--inline::placeholder {
  color: rgba(217, 255, 224, 0.32);
}
.terminal-input--inline:focus {
  border: none;
  box-shadow: none;
  outline: none;
}
.terminal-panel--rocket {
  overflow: auto;
}
.rocket-panel--locked {
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  min-height: 360px;
}
.rocket-map--placeholder {
  opacity: 0.48;
  filter: saturate(0.7);
}









.gui-senddata-button {
  border-color: rgba(111, 233, 255, 0.34);
  background: linear-gradient(180deg, rgba(20,66,86,0.98), rgba(9,32,43,0.98));
  color: #e3fbff;
}
.gui-senddata-button:hover:not(:disabled) {
  border-color: rgba(132, 234, 255, 0.48);
  background: linear-gradient(180deg, rgba(30,90,116,0.98), rgba(11,40,54,0.98));
}


/* terminal prompt single-line fix */
.tablet-window--terminal .terminal-output {
  overflow: auto;
  overflow-x: auto;
  overflow-y: auto;
}
.tablet-window--terminal .terminal-inline-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 8px;
  min-width: max-content;
}
.tablet-window--terminal .terminal-prompt {
  flex: 0 0 auto;
  white-space: nowrap;
}
.tablet-window--terminal .terminal-input--inline {
  flex: 1 1 auto;
  min-width: 12ch;
  white-space: nowrap;
}


.gui-action-row--network {
  margin-top: 16px;
  justify-content: flex-start;
}

.gui-action-row--network .gui-senddata-button {
  min-width: 260px;
}


/* overlay and tablet layout fixes */
.terminal-overlay.open,
.gui-overlay.open {
  align-items: flex-start;
  overflow: auto;
  padding: 12px 0 18px;
}

.terminal-window,
.gui-window {
  width: min(1120px, calc(100vw - 28px));
  max-height: calc(100vh - 24px);
  margin: 0 auto;
}

.tablet-window--terminal {
  min-height: min(760px, calc(100vh - 24px));
}

.tablet-window--gui {
  min-height: min(760px, calc(100vh - 24px));
}

.gui-body,
.terminal-body,
.gui-panel,
.terminal-panel {
  min-height: 0;
}

.gui-body,
.terminal-body {
  overflow: auto;
}

.gui-panel,
.terminal-panel--rocket {
  overflow: auto;
}

.gui-titlebar,
.terminal-titlebar {
  position: sticky;
  top: 0;
  z-index: 3;
}

.gui-tabs,
.terminal-tabs {
  position: sticky;
  top: 76px;
  z-index: 2;
  background: linear-gradient(180deg, rgba(11,26,43,0.98), rgba(9,19,33,0.96));
}

.gui-grid {
  grid-template-columns: minmax(280px, 1fr) minmax(320px, 1.15fr);
  align-items: start;
}

.gui-card {
  min-height: 0;
}

.gui-action-row,
.gui-action-row--network {
  flex-wrap: wrap;
  row-gap: 12px;
}

.gui-action-row button,
.gui-action-row--network .gui-senddata-button {
  max-width: 100%;
}

.tablet-window--terminal .terminal-output {
  min-height: 420px;
  height: min(62vh, 560px);
}

.tablet-window--terminal .terminal-inline-row {
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(5,16,27,0.08), rgba(5,16,27,0.96) 34%);
  padding-top: 8px;
}

@media (max-height: 820px) {
  .gui-window,
  .terminal-window {
    width: min(1080px, calc(100vw - 20px));
    max-height: calc(100vh - 12px);
  }

  .gui-tabs,
  .terminal-tabs {
    top: 70px;
  }
}


/* server GUI tabs fixed under header */
.gui-window {
  overflow: hidden;
}

.gui-titlebar {
  position: sticky;
  top: 0;
  z-index: 6;
}

.gui-tabs {
  position: relative;
  top: auto;
  z-index: 5;
  flex: 0 0 auto;
  border-bottom: 1px solid rgba(137, 205, 255, 0.14);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.gui-body {
  min-height: 0;
  overflow: hidden;
}

.gui-panel {
  height: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  padding-top: 0;
}




/* lower server GUI tabs so they fit below the title/status row */
.gui-titlebar {
  padding-bottom: 24px;
}

.gui-tabs {
  position: sticky;
  top: 96px;
  z-index: 2;
  margin-top: 0;
  background: linear-gradient(180deg, rgba(11,26,43,0.98), rgba(9,19,33,0.96));
}

.gui-body {
  padding-top: 10px;
}

@media (max-height: 820px) {
  .gui-tabs {
    top: 102px;
  }
}


/* GUI server tabs stay above the scroll area, content starts below them */
.gui-window {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  overflow: hidden;
}

.gui-titlebar {
  position: sticky;
  top: 0;
  z-index: 4;
  padding-bottom: 12px;
}

.gui-tabs {
  position: relative;
  top: auto;
  z-index: 3;
  margin-top: 0;
  flex: 0 0 auto;
}



.gui-panel {
  min-height: 0;
  height: 100%;
  overflow: auto;
  padding-top: 18px;
  box-sizing: border-box;
}

/* disable previous sticky behavior for server tabs */
@media (max-height: 820px) {
  .gui-tabs {
    top: auto;
  }
}

/* final server GUI layout hardening + live ping state */


.gui-window > .gui-titlebar,
.gui-window > .gui-tabs,
.gui-window > .gui-body,
.gui-window > .gui-foot {
  position: relative;
}

.gui-window {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.gui-window > .gui-titlebar { grid-row: 1; z-index: 6; }
.gui-window > .gui-tabs { grid-row: 2; z-index: 5; }
.gui-window > .gui-body { grid-row: 3; z-index: 2; }
.gui-window > .gui-foot { grid-row: 4; z-index: 2; }

.gui-titlebar {
  position: relative;
  top: auto;
  padding-bottom: 12px;
}

.gui-tabs {
  position: relative;
  top: auto;
  margin: 0;
  border-top: 1px solid rgba(137, 205, 255, 0.10);
  border-bottom: 1px solid rgba(137, 205, 255, 0.14);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.gui-body {
  min-height: 0;
  overflow: hidden;
  padding-top: 0;
}

.gui-panel {
  min-height: 0;
  height: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 18px 20px 22px;
  box-sizing: border-box;
}

.gui-panel.open {
  display: block;
}

.gui-foot {
  position: relative;
  z-index: 2;
}

.terminal-window > .terminal-titlebar,
.terminal-window > .terminal-tabs,
.terminal-window > .terminal-body,
.terminal-window > .terminal-foot {
  position: relative;
}


/* rocket tablet skin and server tablet skin fully separated */
.rocket-tablet-window,
.server-tablet-window {
  position: relative;
  isolation: isolate;
  border-radius: 34px;
  border: 1px solid rgba(126, 207, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.015)),
    radial-gradient(circle at top left, rgba(103, 217, 255, 0.16), transparent 24%),
    radial-gradient(circle at bottom right, rgba(151, 103, 255, 0.14), transparent 26%),
    linear-gradient(180deg, rgba(7,13,24,0.98), rgba(4,8,15,0.98));
  box-shadow:
    0 26px 80px rgba(0,0,0,0.56),
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 0 1px rgba(255,255,255,0.03),
    0 0 48px rgba(78, 194, 255, 0.08);
}

.rocket-tablet-window::before,
.server-tablet-window::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 28px;
  border: 1px solid rgba(144, 210, 255, 0.12);
  pointer-events: none;
  z-index: 0;
}

.rocket-tablet-window::after,
.server-tablet-window::after {
  content: "";
  position: absolute;
  inset: -20% auto auto -35%;
  width: 46%;
  height: 180%;
  background: linear-gradient(115deg, rgba(255,255,255,0), rgba(121, 223, 255, 0.15), rgba(255,255,255,0));
  pointer-events: none;
  z-index: 0;
  animation: tabletSweep 8.5s linear infinite;
}

.rocket-tablet-orbit,
.rocket-tablet-corners,
.rocket-tablet-grid,
.server-tablet-orbit,
.server-tablet-corners,
.server-tablet-grid {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 0;
}

.rocket-tablet-orbit::before,
.rocket-tablet-orbit::after,
.server-tablet-orbit::before,
.server-tablet-orbit::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(111, 223, 255, 0.12);
}

.rocket-tablet-orbit::before,
.server-tablet-orbit::before {
  width: 220px;
  height: 220px;
  top: -88px;
  right: -66px;
}

.rocket-tablet-orbit::after,
.server-tablet-orbit::after {
  width: 160px;
  height: 160px;
  bottom: -56px;
  left: -52px;
  border-color: rgba(160, 126, 255, 0.14);
}

.rocket-tablet-corners::before,
.rocket-tablet-corners::after,
.server-tablet-corners::before,
.server-tablet-corners::after {
  content: "";
  position: absolute;
  width: 56px;
  height: 56px;
  border: 2px solid rgba(111, 223, 255, 0.24);
}

.rocket-tablet-corners::before,
.server-tablet-corners::before {
  top: 18px;
  right: 18px;
  border-left: 0;
  border-bottom: 0;
  border-radius: 0 18px 0 0;
}

.rocket-tablet-corners::after,
.server-tablet-corners::after {
  bottom: 18px;
  left: 18px;
  border-right: 0;
  border-top: 0;
  border-radius: 0 0 0 18px;
}

.rocket-tablet-grid,
.server-tablet-grid {
  background:
    linear-gradient(rgba(113, 224, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(113, 224, 255, 0.04) 1px, transparent 1px),
    radial-gradient(circle at center, rgba(113, 224, 255, 0.12), transparent 60%);
  background-size: 22px 22px, 22px 22px, 100% 100%;
  opacity: 0.32;
  animation: scanFloat 18s linear infinite;
}

.rocket-tablet-grid { inset: 72px 14px 62px 14px; border-radius: 24px; }
.server-tablet-grid { inset: 112px 14px 18px 14px; border-radius: 24px; }

.rocket-tablet-ambient,
.server-tablet-ambient {
  position: absolute;
  inset: 14px;
  border-radius: 28px;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 16% 22%, rgba(96, 225, 255, 0.10), transparent 26%),
    radial-gradient(circle at 84% 20%, rgba(157, 117, 255, 0.11), transparent 22%),
    radial-gradient(circle at 48% 120%, rgba(73, 255, 193, 0.06), transparent 28%);
  filter: blur(10px);
}











.rocket-tablet-toolbar,
.server-tablet-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.rocket-tablet-title-actions,
.server-tablet-title-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.rocket-tablet-bug-report-button {
  border: 1px solid rgba(116, 216, 255, .42);
  border-radius: 11px;
  padding: 8px 12px;
  background: rgba(5, 27, 45, .88);
  color: #dff7ff;
  font: 700 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  cursor: pointer;
}
.rocket-tablet-bug-report-button:hover {
  border-color: rgba(116, 216, 255, .82);
  background: rgba(10, 42, 66, .96);
}

.rocket-tablet-chip,
.server-tablet-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 255, 0.18);
  background: linear-gradient(180deg, rgba(13,28,45,0.98), rgba(7,15,24,0.98));
  color: #eaf9ff;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.rocket-tablet-chip--cyan.is-online,
.rocket-tablet-chip--violet.is-online,
.server-tablet-chip--cyan.is-online,
.server-tablet-chip--amber.is-online {
  box-shadow: 0 0 18px rgba(106, 214, 255, 0.14), inset 0 1px 0 rgba(255,255,255,0.05);
}

.rocket-tablet-chip--cyan,
.server-tablet-chip--cyan {
  border-color: rgba(95, 218, 255, 0.24);
  color: #c9fbff;
}

.rocket-tablet-chip--violet {
  border-color: rgba(171, 139, 255, 0.24);
  color: #eee2ff;
}

.server-tablet-chip--amber {
  border-color: rgba(255, 198, 104, 0.24);
  color: #ffe7b0;
}

.rocket-tablet-chip.is-offline,
.server-tablet-chip.is-offline {
  color: #ff8e9b;
  border-color: rgba(255, 120, 138, 0.45);
  box-shadow: inset 0 0 0 1px rgba(255,120,138,0.10), 0 0 16px rgba(255,120,138,0.08);
}

.rocket-mini-graph,
.server-mini-graph {
  display: inline-flex;
  align-items: end;
  gap: 4px;
  height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 255, 0.18);
  background: linear-gradient(180deg, rgba(11,24,38,0.96), rgba(5,11,18,0.98));
  overflow: hidden;
}

.rocket-mini-graph span,
.server-mini-graph span {
  width: 4px;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(130, 244, 255, 0.98), rgba(84, 162, 255, 0.82));
  transform-origin: bottom center;
  animation: graphBars 1.4s ease-in-out infinite;
}

.server-mini-graph--warm span {
  background: linear-gradient(180deg, rgba(255, 228, 142, 0.98), rgba(94, 228, 255, 0.82));
}

.rocket-mini-graph span:nth-child(2),
.server-mini-graph span:nth-child(2) { animation-delay: .08s; }
.rocket-mini-graph span:nth-child(3),
.server-mini-graph span:nth-child(3) { animation-delay: .16s; }
.rocket-mini-graph span:nth-child(4),
.server-mini-graph span:nth-child(4) { animation-delay: .24s; }
.rocket-mini-graph span:nth-child(5),
.server-mini-graph span:nth-child(5) { animation-delay: .32s; }
.rocket-mini-graph span:nth-child(6),
.server-mini-graph span:nth-child(6) { animation-delay: .40s; }
.rocket-mini-graph span:nth-child(7),
.server-mini-graph span:nth-child(7) { animation-delay: .48s; }
.rocket-mini-graph span:nth-child(8),
.server-mini-graph span:nth-child(8) { animation-delay: .56s; }

.terminal-window > .rocket-tablet-orbit,
.terminal-window > .rocket-tablet-corners,
.terminal-window > .rocket-tablet-ambient,
.terminal-window > .rocket-tablet-grid,


/* rocket tablet tabs sit directly under the header; level 2 avatar repair mode added in JS */
.terminal-window {
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
}

.terminal-window > .terminal-titlebar {
  position: relative;
  top: auto;
  z-index: 4;
  padding-bottom: 12px;
}

.terminal-window > .terminal-tabs {
  position: relative;
  top: auto;
  z-index: 3;
  flex: 0 0 auto;
  margin-top: 0;
  border-bottom: 1px solid rgba(137, 205, 255, 0.14);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.terminal-body {
  min-height: 0;
  overflow: hidden;
}

.terminal-window .terminal-panel.open {
  display: block;
  height: 100%;
}

.tablet-window--terminal .terminal-output {
  min-height: 0;
  height: 100%;
  max-height: none;
}


.rocket-system-scheme {
  margin: 18px auto 10px;
  width: 100%;
  max-width: none;
  border: 1px solid rgba(133, 255, 155, 0.34);
  border-radius: 18px;
  padding: 12px;
  background: radial-gradient(circle at center, rgba(47, 255, 180, 0.09), rgba(0, 0, 0, 0.78) 64%);
  box-shadow: 0 0 24px rgba(47, 255, 180, 0.10), inset 0 0 18px rgba(47, 255, 180, 0.08);
}

.rocket-system-scheme__viewport {
  width: 100%;
  max-width: 100%;
  min-height: 340px;
  max-height: calc(100vh - 360px);
  overflow-x: auto;
  overflow-y: auto;
  padding: 10px;
  border: 1px solid rgba(20, 145, 186, 0.55);
  border-radius: 14px;
  background: rgba(2, 11, 18, 0.55);
  scrollbar-gutter: stable both-edges;
}

.rocket-system-scheme__image {
  display: block;
  width: 1600px;
  min-width: 1600px;
  max-width: none;
  height: auto;
  margin: 0 auto;
}

.rocket-system-scheme--online {
  animation: rocket-system-online-pulse 2.4s ease-in-out infinite;
}



@keyframes rocket-system-online-pulse {
  0%, 100% { box-shadow: 0 0 18px rgba(47, 255, 180, 0.09), inset 0 0 14px rgba(47, 255, 180, 0.07); }
  50% { box-shadow: 0 0 34px rgba(47, 255, 180, 0.19), inset 0 0 22px rgba(47, 255, 180, 0.12); }
}

@media (max-height: 900px) {
  .rocket-system-scheme__viewport {
    max-height: calc(100vh - 320px);
  }
}


/* responsive browser layout patch: game, overlays and rocket system scheme adapt to browser size */
html,
body {
  width: 100%;
  min-width: 0;
}

body {
  overflow-x: hidden;
}

.shell {
  width: min(100vw, 1920px) !important;
  max-width: none !important;
  min-height: 100vh;
  margin: 0 auto !important;
  padding: clamp(8px, 1vw, 18px) !important;
  border-radius: clamp(0px, 1.4vw, 28px);
}

.viewport-stage {
  min-height: 0 !important;
  height: min(calc(100vh - 32px), calc((100vw - 32px) * 0.5625), var(--game-display-max-h));
  padding: 0 !important;
}

canvas#game {
  width: auto !important;
  height: 100% !important;
  max-width: min(calc(100vw - 32px), var(--game-display-max-w)) !important;
  max-height: min(calc(100vh - 32px), var(--game-display-max-h)) !important;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  contain: layout paint size;
}

@media (max-height: 820px) {
  .titlebar,
  .game-action-button {
    padding: 8px 10px;
    font-size: 11px;
    line-height: 1.1;
  }


  .shell {
    padding: 6px !important;
  }

  .viewport-stage {
    height: min(calc(100vh - 12px), var(--game-display-max-h));
  }

  canvas#game {
    max-width: min(calc(100vw - 12px), var(--game-display-max-w)) !important;
    max-height: min(calc(100vh - 12px), var(--game-display-max-h)) !important;
  }
}

.terminal-overlay.open,
.gui-overlay.open {
  align-items: stretch !important;
  justify-content: stretch !important;
  padding: clamp(6px, 1vw, 14px) !important;
  overflow: hidden !important;
}

.terminal-window,
.gui-window,
.tablet-window--terminal,
.tablet-window--gui,
.rocket-tablet-window,
.server-tablet-window {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
}

.terminal-window,
.tablet-window--terminal,
.rocket-tablet-window {
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
}

.gui-window,
.tablet-window--gui,
.server-tablet-window {
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
}

.terminal-titlebar,
.gui-titlebar {
  padding: clamp(8px, 1vw, 14px) clamp(12px, 1.3vw, 22px) !important;
}

.terminal-tabs,
.gui-tabs {
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-gutter: stable;
}

.terminal-tab,
.gui-tab {
  flex: 1 0 max(180px, 14vw);
  min-width: 150px;
}

.terminal-body,
.gui-body {
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

.terminal-window .terminal-panel.open,
.gui-window .gui-panel.open,
.terminal-panel--rocket,
.rocket-panel,
.rocket-panel__body {
  min-height: 0 !important;
  height: 100% !important;
}

#terminalPanelSystem.open,
#terminalPanelSystem .rocket-panel,
#rocketSystemContent {
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}







.rocket-system-scheme {
  flex: 1 1 auto;
  min-height: 0;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  padding: clamp(6px, .8vw, 12px) !important;
}

.rocket-system-scheme__viewport {
  flex: 1 1 auto;
  min-height: 0 !important;
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  overflow: auto !important;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(6px, .7vw, 10px) !important;
}

.rocket-system-scheme__image,
.rocket-system-scheme__viewport svg {
  display: block !important;
  width: min(1600px, calc((100vh - 230px) * 1.6), calc(100vw - 70px)) !important;
  min-width: min(980px, calc(100vw - 70px)) !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 auto !important;
}

@media (max-width: 1100px) {
  .rocket-system-scheme__image,
  .rocket-system-scheme__viewport svg {
    width: 1100px !important;
    min-width: 1100px !important;
    margin: 0 !important;
  }
}

@media (max-height: 760px) {
  

  .rocket-system-scheme__image,
  .rocket-system-scheme__viewport svg {
    width: min(1450px, calc((100vh - 185px) * 1.6), calc(100vw - 60px)) !important;
  }
}


/* Responsive performance guard:
   Large browser windows scale the game visually, but not beyond a safe 1600x900 surface.
   This prevents GPU/compositor slowdowns on very large monitors while keeping the UI adaptive. */
@media (min-width: 1900px), (min-height: 1100px) {
  .shell {
    max-width: calc(var(--game-display-max-w) + 28px) !important;
  }
}




/* Data-driven network scheme for rocket tablet */






































/* Stage 4: dynamic network scheme states */












/* Stage 7: network scenario inspector in the System tab */



















































/* performance pass: reduce expensive compositor work on large screens. */
body::before,
body::after {
  display: none !important;
}

.shell {
  backdrop-filter: none !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.34) !important;
}

canvas#game {
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.34) !important;
  image-rendering: auto;
}


/* tablet performance hotfix: keep the tablet responsive while CLI/input is active. */
.terminal-overlay.open .rocket-tablet-window::after,
.terminal-overlay.open .rocket-tablet-grid,
.terminal-overlay.open .rocket-mini-graph span,
.gui-overlay.open .server-tablet-window::after,
.gui-overlay.open .server-tablet-grid,
.gui-overlay.open .server-mini-graph span {
  animation: none !important;
}

.terminal-overlay.open .rocket-tablet-ambient,
.gui-overlay.open .server-tablet-ambient {
  filter: none !important;
  opacity: 0.55 !important;
}

.terminal-overlay.open .rocket-tablet-window,
.gui-overlay.open .server-tablet-window {
  box-shadow: 0 16px 42px rgba(0,0,0,0.48), inset 0 1px 0 rgba(255,255,255,0.06) !important;
}

.terminal-body, .terminal-panel, .terminal-output{
  contain: layout paint style;
}

.terminal-panel:not(.open) {
  content-visibility: hidden;
  contain-intrinsic-size: 1px 1px;
}

.terminal-panel.open {
  content-visibility: visible;
}

.tablet-window--terminal .terminal-output {
  overflow-anchor: none;
  overscroll-behavior: contain;
  scroll-behavior: auto;
}

.tablet-window--terminal .terminal-text,
.tablet-window--terminal .terminal-inline-row,
.tablet-window--terminal .terminal-input--inline {
  text-shadow: none !important;
}

.tablet-window--terminal .terminal-input--inline {
  caret-color: #d8fff1;
  transform: translateZ(0);
}



/* compact tablet chrome: more useful space for the System tab on small screens. */
@media (max-width: 1280px), (max-height: 820px) {
  .terminal-overlay.open,
  .gui-overlay.open {
    padding: 4px !important;
  }

  .terminal-window,
  .tablet-window--terminal,
  .rocket-tablet-window {
    border-radius: 20px !important;
  }

  .rocket-tablet-window::before,
  .server-tablet-window::before {
    inset: 6px !important;
    border-radius: 16px !important;
  }

  .terminal-window > .terminal-titlebar,
  .terminal-titlebar {
    min-height: 0 !important;
    padding: 7px 10px !important;
    gap: 8px !important;
    align-items: center !important;
  }

  .terminal-titlebar > div:first-child,
  .gui-titlebar > div:first-child {
    min-width: 0 !important;
  }

  .terminal-titlebar strong,
  .gui-titlebar strong {
    font-size: 12px !important;
    line-height: 1.15 !important;
    letter-spacing: 0.055em !important;
  }

  .terminal-status,
  .gui-status {
    max-width: min(64vw, 860px) !important;
    min-width: 0 !important;
    margin-top: 2px !important;
    gap: 6px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .terminal-status::before,
  .gui-status::before {
    width: 7px !important;
    height: 7px !important;
    flex: 0 0 7px !important;
    box-shadow: 0 0 8px rgba(125,255,184,0.48) !important;
  }

  .rocket-tablet-toolbar,
  .server-tablet-toolbar {
    gap: 6px !important;
  }

  .rocket-tablet-chip,
  .server-tablet-chip {
    min-width: 48px !important;
    padding: 5px 8px !important;
    font-size: 10px !important;
    letter-spacing: 0.08em !important;
  }

  .rocket-mini-graph,
  .server-mini-graph {
    height: 22px !important;
    padding: 4px 7px !important;
    gap: 3px !important;
  }

  .rocket-mini-graph span,
  .server-mini-graph span {
    width: 3px !important;
  }

  #terminalClose {
    min-height: 32px !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }

  .rocket-tablet-title-actions,
  .server-tablet-title-actions { gap: 6px !important; }
  .rocket-tablet-bug-report-button {
    min-height: 32px !important;
    padding: 6px 12px !important;
    font-size: 12px !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }

  .terminal-window > .terminal-tabs,
  .terminal-tabs,
  .gui-tabs {
    padding: 5px 8px 0 !important;
    gap: 5px !important;
    min-height: 0 !important;
    border-bottom-color: rgba(137, 205, 255, 0.10) !important;
  }

  .terminal-tab,
  .gui-tab {
    flex: 1 0 112px !important;
    min-width: 112px !important;
    padding: 7px 9px !important;
    border-radius: 10px 10px 0 0 !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
  }

  #terminalTabStats {
    min-width: 138px !important;
  }

  #terminalTabData {
    min-width: 158px !important;
  }

  .terminal-panel--rocket {
    padding: 10px !important;
  }

  .rocket-panel, .rocket-panel__body{
    border-radius: 12px !important;
  }

  .terminal-foot,
  .gui-foot {
    padding: 6px 12px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
  }
}

@media (max-height: 700px) {
  .terminal-window,
  .tablet-window--terminal,
  .rocket-tablet-window {
    grid-template-rows: auto auto minmax(0, 1fr) !important;
  }

  .terminal-foot {
    display: none !important;
  }

  .terminal-window > .terminal-titlebar,
  .terminal-titlebar {
    padding: 5px 8px !important;
  }

  .terminal-titlebar strong {
    font-size: 11px !important;
  }

  .terminal-status {
    font-size: 10px !important;
  }

  .terminal-window > .terminal-tabs,
  .terminal-tabs {
    padding-top: 3px !important;
  }

  .terminal-tab {
    padding: 6px 8px !important;
    font-size: 12px !important;
  }
}

@media (max-width: 760px) {
  .rocket-tablet-toolbar,
  .server-tablet-toolbar {
    display: none !important;
  }

  .terminal-status,
  .gui-status {
    max-width: calc(100vw - 160px) !important;
  }

  .terminal-tab,
  .gui-tab {
    flex-basis: 104px !important;
    min-width: 104px !important;
    font-size: 12px !important;
  }

  #terminalTabStats,
  #terminalTabData {
    min-width: 132px !important;
  }
}

/* terminal UX: allow selecting/copying CLI output text. */
.tablet-window--terminal .terminal-output,
.tablet-window--terminal .terminal-text,
.tablet-window--terminal .terminal-prompt,
.tablet-window--terminal .terminal-input--inline,
.terminal-output,
.terminal-text {
  -webkit-user-select: text !important;
  user-select: text !important;
}

.tablet-window--terminal .terminal-text,
.terminal-text {
  cursor: text;
}

.tablet-window--terminal .terminal-output::selection,
.tablet-window--terminal .terminal-text::selection,
.terminal-output::selection,
.terminal-text::selection {
  background: rgba(127, 233, 255, 0.32);
  color: #f2ffff;
}

/* terminal performance hotfix: reduce compositor work while typing in CLI. */
.tablet-window--terminal .terminal-output::before,
.tablet-window--terminal .terminal-output::after,
.terminal-output::before,
.terminal-output::after {
  display: none !important;
  content: none !important;
}

.tablet-window--terminal .terminal-output,
.terminal-output {
  background: #040b12 !important;
  text-shadow: none !important;
  contain: layout paint style !important;
  transform: none !important;
}

.tablet-window--terminal .terminal-text,
.tablet-window--terminal .terminal-inline-row,
.tablet-window--terminal .terminal-input--inline,
.terminal-text,
.terminal-input {
  text-shadow: none !important;
  filter: none !important;
  box-shadow: none !important;
}

.tablet-window--terminal .terminal-input--inline,
.terminal-input--inline {
  will-change: auto !important;
  transform: none !important;
}

/* tablet render freeze / lite mode:
   The previous terminal fixes optimized CLI text appends, but the browser still had to
   composite the full sci-fi tablet skin and run the game update loop under the overlay.
   This block removes the expensive tablet chrome while an overlay is open. */
.terminal-overlay.open,
.gui-overlay.open {
  background: rgba(2, 6, 12, 0.94) !important;
  transition: none !important;
  animation: none !important;
  contain: layout paint style !important;
}

.terminal-overlay.open *,
.gui-overlay.open * {
  transition: none !important;
  animation-duration: 0s !important;
}

.terminal-overlay.open .rocket-tablet-orbit,
.terminal-overlay.open .rocket-tablet-corners,
.terminal-overlay.open .rocket-tablet-grid,
.terminal-overlay.open .rocket-tablet-ambient,

.terminal-overlay.open .rocket-tablet-window::before,
.terminal-overlay.open .rocket-tablet-window::after,
.gui-overlay.open .server-tablet-window::before,
.gui-overlay.open .server-tablet-window::after {
  display: none !important;
  content: none !important;
}

.terminal-overlay.open .rocket-tablet-window,
.terminal-overlay.open .tablet-window--terminal,
.gui-overlay.open .server-tablet-window,
.gui-overlay.open .tablet-window--gui {
  background: #07101d !important;
  box-shadow: none !important;
  border-color: rgba(121, 197, 255, 0.20) !important;
  contain: layout paint style !important;
}

.terminal-overlay.open .terminal-titlebar,
.terminal-overlay.open .terminal-tabs,
.gui-overlay.open .gui-titlebar,
.gui-overlay.open .gui-tabs {
  background: #0a1727 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.terminal-panel:not(.open),
.gui-panel:not(.open) {
  display: none !important;
}

.terminal-panel.open,
.gui-panel.open,
.terminal-body,
.gui-body,
.terminal-output {
  contain: layout paint style !important;
}

.terminal-overlay.open .terminal-output,
.terminal-overlay.open .terminal-text,
.terminal-overlay.open .terminal-inline-row,
.terminal-overlay.open .terminal-input--inline {
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
}

.terminal-overlay.open .rocket-mini-graph,
.gui-overlay.open .server-mini-graph {
  display: none !important;
}


/* Tablet-only network diagram. */
.scheme-shell {
  width: 100%;
  min-height: 0;
  color: #dff8ff;
}
.scheme-header {
  margin: 0 0 10px;
  padding: 2px 4px;
}
.scheme-title {
  font: 900 14px/1.25 "Segoe UI", Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.scheme-description {
  margin-top: 4px;
  color: #8fc6d7;
  font: 700 12px/1.35 "Segoe UI", Arial, sans-serif;
}
.scheme-canvas {
  display: block;
  width: min(100%, 1360px);
  min-width: 900px;
  height: auto;
  margin: 0 auto 12px;
  border: 1px solid rgba(45, 217, 255, .18);
  border-radius: 16px;
  background: radial-gradient(circle at 50% 45%, rgba(23, 213, 255, .10), rgba(3, 12, 20, .72) 62%);
}
.scheme-link-line {
  stroke: rgba(132, 220, 255, .55);
  stroke-width: 5;
  stroke-linecap: round;
}

/* power cables on the network scheme must look different from data links. */
.scheme-link--power .scheme-link-line {
  stroke: rgba(255, 188, 76, .82);
  stroke-width: 4;
  stroke-dasharray: 3 9;
  filter: drop-shadow(0 0 6px rgba(255, 188, 76, .34));
}
.scheme-status-offline.scheme-link--power .scheme-link-line,
.scheme-status-missing.scheme-link--power .scheme-link-line {
  stroke: rgba(255, 188, 76, .34);
  stroke-dasharray: 3 10;
  filter: none;
}
.scheme-status-working .scheme-link-line,
.scheme-status-complete .scheme-link-line {
  stroke: rgba(133, 255, 155, .78);
}
.scheme-status-offline .scheme-link-line,
.scheme-status-missing .scheme-link-line {
  stroke: rgba(130, 160, 180, .28);
  stroke-dasharray: 10 8;
}
.scheme-status-warning .scheme-link-line {
  stroke: rgba(255, 211, 79, .75);
}
.scheme-link-label-bg {
  fill: rgba(4, 14, 24, .84);
  stroke: rgba(132, 220, 255, .18);
}
.scheme-link-label {
  fill: #c8f3ff;
  font: 800 11px/1 "Segoe UI", Arial, sans-serif;
  pointer-events: none;
}
.scheme-device {
  cursor: pointer;
}

.scheme-device-noninteractive {
  cursor: default;
}
.scheme-device-noninteractive:hover .scheme-device-node,
.scheme-device-noninteractive:focus .scheme-device-node {
  stroke-width: 2;
}
.scheme-device-inactive {
  cursor: default;
  pointer-events: none;
  opacity: .32;
  filter: grayscale(.7) saturate(.35);
}
.scheme-device-inactive .scheme-device-node {
  fill: rgba(18, 25, 32, .70);
  stroke: rgba(118, 140, 154, .26);
}
.scheme-device-inactive .scheme-device-icon, .scheme-device-inactive .scheme-device-label, .scheme-device-inactive .scheme-device-badge-text{
  fill: rgba(160, 178, 188, .62);
}
.scheme-device-inactive .scheme-device-badge {
  fill: rgba(10, 14, 20, .58);
  stroke: rgba(118, 140, 154, .16);
}
.scheme-device-inactive:hover .scheme-device-node,
.scheme-device-inactive:focus .scheme-device-node {
  stroke: rgba(118, 140, 154, .26);
  stroke-width: 2;
}
.scheme-device-node {
  fill: rgba(10, 30, 46, .94);
  stroke: rgba(45, 217, 255, .50);
  stroke-width: 2;
}
.scheme-status-working .scheme-device-node,
.scheme-status-complete .scheme-device-node {
  stroke: rgba(133, 255, 155, .72);
}
.scheme-status-offline .scheme-device-node,
.scheme-status-missing .scheme-device-node {
  stroke: rgba(145, 165, 185, .36);
  fill: rgba(16, 22, 30, .88);
}
.scheme-device-selected .scheme-device-node,
.scheme-device:hover .scheme-device-node,
.scheme-device:focus .scheme-device-node {
  stroke: rgba(255, 231, 143, .90);
  stroke-width: 3;
}
.scheme-device-icon {
  fill: #eaffff;
  font: 900 22px/1 "Segoe UI", Arial, sans-serif;
  pointer-events: none;
}
.scheme-device-label {
  fill: #efffff;
  font: 900 13px/1 "Segoe UI", Arial, sans-serif;
  pointer-events: none;
}

.scheme-device-badge {
  fill: rgba(7, 18, 29, .90);
  stroke: rgba(132, 220, 255, .22);
}
.scheme-device-badge-text {
  fill: #9fe8ff;
  font: 900 10px/1 "Segoe UI", Arial, sans-serif;
  pointer-events: none;
}
.scheme-device-locked .scheme-device-badge-text {
  fill: #ffb9c0;
}
.scheme-device-tooltip {
  display: none;
  pointer-events: none;
}
.scheme-device:hover .scheme-device-tooltip,
.scheme-device:focus .scheme-device-tooltip {
  display: block;
}
.scheme-device-tooltip-box {
  fill: rgba(6, 18, 30, .96);
  stroke: rgba(132, 220, 255, .34);
  stroke-width: 1.5;
}
.scheme-device-tooltip-title {
  fill: #efffff;
  font: 900 11px/1 "Segoe UI", Arial, sans-serif;
}
.scheme-device-tooltip-line {
  fill: #9fd2e3;
  font: 800 10px/1 "Segoe UI", Arial, sans-serif;
}
.scheme-objectives {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  margin: 12px 0 12px;
}
.scheme-objective-card {
  padding: 8px 10px;
  border: 1px solid rgba(132, 220, 255, .18);
  border-radius: 12px;
  background: rgba(4, 14, 24, .58);
}
.scheme-objective-card.is-complete {
  border-color: rgba(133, 255, 155, .35);
}
.scheme-objective-title {
  color: #f2ffff;
  font: 900 12px/1.25 "Segoe UI", Arial, sans-serif;
}
.scheme-objective-meta,
.scheme-objective-detail {
  margin-top: 3px;
  color: #8fc6d7;
  font: 700 10px/1.25 "Segoe UI", Arial, sans-serif;
}


/* keep System tab scrolling, expand scheme layout and separate LOWER-SW-01 from ROCKET-CORE-SW. */
#terminalPanelSystem.open {
  min-height: 0 !important;
  overflow: hidden !important;
}

#terminalPanelSystem.open .rocket-panel {
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

#rocketSystemContent.rocket-panel__body,
#rocketSystemContent {
  min-height: 0 !important;
  height: 100% !important;
  display: block !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable both-edges !important;
  padding-right: 8px !important;
}

#rocketSystemContent .scheme-shell {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: max-content !important;
  padding-bottom: 16px !important;
}

#rocketSystemContent .scheme-canvas {
  width: min(100%, 1360px) !important;
  min-width: 900px !important;
  height: auto !important;
}

#rocketSystemContent .scheme-objectives {
  margin-bottom: 18px !important;
}

@media (max-width: 980px) {
  #rocketSystemContent .scheme-canvas {
    min-width: 820px !important;
  }
}

@media (max-width: 760px) {
  #rocketSystemContent .scheme-canvas {
    min-width: 760px !important;
  }
}

.rocket-tablet-export-btn {
  padding: 7px 10px;
  border-radius: 10px;
  font: 800 11px/1 "Segoe UI", Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* developer network helper button */

/* SAT-ANT-01 custom orbital-link console */
.antenna-console-panel {
  margin: 12px 0 14px;
  padding: 14px 16px;
  border: 1px solid rgba(104, 232, 255, .28);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(8, 26, 38, .92), rgba(22, 12, 42, .86));
  box-shadow: inset 0 0 24px rgba(77, 210, 255, .10), 0 0 22px rgba(77, 210, 255, .09);
  color: #dffbff;
  font: 800 13px/1.45 "Segoe UI", Arial, sans-serif;
}
.antenna-console-panel__title {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #7df2ff;
  margin-bottom: 8px;
}
.antenna-console-panel__status {
  color: #ffe08a;
  margin-bottom: 10px;
}
.antenna-console-panel__button {
  border: 1px solid rgba(111, 255, 211, .45);
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(28, 188, 150, .18);
  color: #eaffff;
  font: 900 12px/1 "Segoe UI", Arial, sans-serif;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.antenna-console-panel__button:disabled {
  cursor: default;
  opacity: .65;
}
.antenna-console-panel__button[hidden] {
  display: none !important;
}
.terminal-window--antenna-gui .antenna-console-panel__button[hidden] {
  display: none !important;
}
.antenna-console-panel__details {
  width: min(760px, 100%);
  margin: 18px auto 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 36px;
  align-items: center;
  justify-items: stretch;
  color: #c7f9ff;
  text-align: center;
}
.antenna-console-panel__details-item {
  width: 100%;
  text-align: center;
}
.antenna-console-panel__details-item--full,
.antenna-console-panel__details-message {
  grid-column: 1 / -1;
  width: 100%;
  text-align: center;
}
.scheme-status-warning .scheme-device-node {
  stroke: rgba(255, 211, 79, .82);
  fill: rgba(54, 43, 12, .82);
}

/* stronger repair-level colors in the live network scheme. */
.scheme-device.scheme-status-missing:not(.scheme-device-inactive) .scheme-device-node {
  fill: rgba(80, 12, 20, .94);
  stroke: rgba(255, 72, 88, .94);
  filter: drop-shadow(0 0 10px rgba(255, 72, 88, .38));
}
.scheme-device.scheme-status-missing:not(.scheme-device-inactive) .scheme-device-badge {
  fill: rgba(92, 12, 20, .92);
  stroke: rgba(255, 96, 112, .55);
}
.scheme-device.scheme-status-missing:not(.scheme-device-inactive) .scheme-device-badge-text{
  fill: #ffccd2;
}
.scheme-device.scheme-status-warning:not(.scheme-device-inactive) .scheme-device-node {
  fill: rgba(92, 72, 8, .96);
  stroke: rgba(255, 225, 44, .98);
  filter: drop-shadow(0 0 12px rgba(255, 225, 44, .42));
}
.scheme-device.scheme-status-warning:not(.scheme-device-inactive) .scheme-device-badge {
  fill: rgba(98, 73, 8, .92);
  stroke: rgba(255, 230, 64, .62);
}

/* rocket tablet inventory */
.rocket-panel--inventory {
  padding: 18px;
  color: #e8f6ff;
}
.rocket-inventory-note {
  margin: 8px 0 12px;
  color: rgba(210, 232, 255, 0.72);
  font-size: 13px;
  line-height: 1.35;
}
.rocket-inventory-active {
  margin: 8px 0 14px;
  padding: 10px 12px;
  border: 1px solid rgba(114, 215, 255, 0.24);
  border-radius: 14px;
  background: rgba(8, 22, 42, 0.55);
  color: rgba(238, 248, 255, 0.88);
}
.rocket-inventory-active strong { color: #9ff3ff; }
.rocket-inventory-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}
.rocket-inventory-card {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 82px;
  padding: 12px;
  border: 1px solid rgba(117, 189, 255, 0.26);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(9, 24, 45, 0.88), rgba(12, 32, 62, 0.62));
  color: #edf9ff;
  text-align: left;
  cursor: pointer;
}
.rocket-inventory-card:hover,
.rocket-inventory-card.active {
  border-color: rgba(125, 243, 255, 0.72);
  box-shadow: 0 0 22px rgba(89, 219, 255, 0.18);
}
.rocket-inventory-card__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: rgba(255,255,255,0.08);
  font-size: 25px;
}
.rocket-inventory-card__body strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}
.rocket-inventory-card__body small {
  display: block;
  color: rgba(213, 234, 255, 0.70);
  line-height: 1.28;
}
.rocket-inventory-card em {
  color: rgba(255, 218, 137, 0.88);
  font-size: 12px;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.rocket-inventory-card.fuel-empty {
  border-color: rgba(255, 82, 82, 0.82);
  background: linear-gradient(135deg, rgba(73, 11, 18, 0.92), rgba(114, 18, 26, 0.64));
  box-shadow: 0 0 24px rgba(255, 62, 62, 0.18);
}
.rocket-inventory-card.fuel-empty:hover {
  border-color: rgba(255, 120, 120, 0.95);
  box-shadow: 0 0 28px rgba(255, 72, 72, 0.25);
}
.rocket-inventory-card.fuel-empty .rocket-inventory-card__body small {
  color: rgba(255, 215, 215, 0.86);
}
.rocket-inventory-card.fuel-empty em {
  color: rgba(255, 175, 175, 0.96);
}
.rocket-inventory-empty {
  padding: 18px;
  border: 1px dashed rgba(147, 190, 234, 0.28);
  border-radius: 18px;
  color: rgba(214, 230, 247, 0.62);
  background: rgba(255,255,255,0.04);
}

.rocket-abilities-section {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(147, 190, 234, 0.18);
}
.rocket-abilities-section__title {
  margin-bottom: 10px;
  color: #eef8ff;
  font-weight: 900;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rocket-abilities-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}
.rocket-ability-card {
  min-height: 74px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(125, 243, 255, 0.28);
  background: linear-gradient(135deg, rgba(9, 24, 45, 0.82), rgba(12, 32, 62, 0.52));
  color: #edf9ff;
}
.rocket-ability-card.locked {
  opacity: 0.58;
  border-style: dashed;
}
.rocket-ability-card strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
}
.rocket-ability-card small {
  display: block;
  color: rgba(213, 234, 255, 0.72);
  line-height: 1.32;
}
.rocket-ability-card em {
  display: inline-block;
  margin-top: 8px;
  color: rgba(255, 218, 137, 0.88);
  font-size: 11px;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* non-emoji inventory pictograms */
.rocket-inventory-card__icon {
  position: relative;
  overflow: hidden;
}
.rocket-inventory-card__icon > span,
.rocket-inventory-card__icon::before,
.rocket-inventory-card__icon::after {
  content: "";
  position: absolute;
  display: block;
}
/* tablet inventory card uses the provided pickaxe reference image. */
.rocket-inventory-card__icon--pickaxe {
  background-image: url("assets/pickaxe_reference.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.rocket-inventory-card__icon--pickaxe > span,
.rocket-inventory-card__icon--pickaxe::before,
.rocket-inventory-card__icon--pickaxe::after {
  display: none;
}

.rocket-inventory-card__icon--jetpack > span {
  width: 18px;
  height: 25px;
  left: 12px;
  top: 7px;
  border-radius: 8px 8px 6px 6px;
  background: linear-gradient(180deg, #effbff, #5fdcff 42%, #294aae);
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.18), -10px 7px 0 -3px #2c3347, 10px 7px 0 -3px #2c3347;
}
.rocket-inventory-card__icon--jetpack::before {
  width: 7px;
  height: 22px;
  left: 7px;
  top: 12px;
  border-radius: 4px;
  background: linear-gradient(180deg, #61718b, #1d283d);
  box-shadow: 21px 0 0 #1d283d;
}
.rocket-inventory-card__icon--jetpack::after {
  width: 26px;
  height: 14px;
  left: 8px;
  top: 30px;
  border-radius: 50% 50% 45% 45%;
  background: radial-gradient(circle at 50% 0%, rgba(255,250,148,.9), rgba(255,122,48,.58) 48%, transparent 72%);
}
.rocket-inventory-card__icon--box > span {
  inset: 10px;
  border-radius: 8px;
  background: rgba(220,238,255,.18);
  border: 1px solid rgba(255,255,255,.18);
}
/* antenna GUI is a centered tablet panel, but the tablet tabs stay visible. */
.terminal-window--antenna-gui .terminal-inline-row,
.terminal-window--antenna-gui .terminal-text {
  display: none !important;
}
/* show-run import/export are network-wide tablet actions and remain visible
   even while SAT-ANT-01 uses the dedicated orbital-link device UI. */
.terminal-window--antenna-gui {
  margin: auto;
}
.terminal-window--antenna-gui .terminal-tabs {
  display: flex !important;
}
.terminal-window--antenna-gui .terminal-body {
  min-height: 460px;
}
.terminal-window--antenna-gui .terminal-panel.open {
  display: block;
}
.terminal-window--antenna-gui .terminal-output {
  position: relative;
  overflow: hidden;
  min-height: 420px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 20%, rgba(104,232,255,.20), transparent 30%),
    radial-gradient(circle at 18% 72%, rgba(110,255,211,.12), transparent 26%),
    linear-gradient(180deg, rgba(4,12,24,.92), rgba(4,9,18,.98));
}
.terminal-window--antenna-gui .terminal-output::before,
.terminal-window--antenna-gui .terminal-output::after {
  content: "";
  position: absolute;
  pointer-events: none;
  opacity: .72;
}
.terminal-window--antenna-gui .terminal-output::before {
  width: 520px;
  height: 520px;
  border: 1px solid rgba(125,242,255,.12);
  border-radius: 50%;
  background:
    repeating-radial-gradient(circle, transparent 0 38px, rgba(125,242,255,.08) 39px 40px),
    conic-gradient(from 12deg, transparent 0 28deg, rgba(125,242,255,.12) 29deg 30deg, transparent 31deg 56deg);
  filter: drop-shadow(0 0 18px rgba(86,231,255,.10));
}
.terminal-window--antenna-gui .terminal-output::after {
  right: 24px;
  bottom: 22px;
  width: 122px;
  height: 92px;
  border-radius: 50% 50% 12px 12px;
  border: 2px solid rgba(126,255,224,.32);
  border-top-color: rgba(126,255,224,.70);
  transform: rotate(-16deg);
  box-shadow:
    -28px -34px 0 -32px rgba(126,255,224,.8),
    -44px -50px 0 -47px rgba(126,255,224,.7),
    inset 0 -38px 0 rgba(126,255,224,.04);
}
.terminal-window--antenna-gui .antenna-console-panel {
  position: relative;
  overflow: hidden;
  width: min(640px, 92%);
  margin: 0 auto;
  padding: 30px 30px 28px;
  border-radius: 30px;
  text-align: center;
  box-shadow: inset 0 0 44px rgba(77,210,255,.15), 0 0 44px rgba(77,210,255,.18);
}
.terminal-window--antenna-gui .antenna-console-panel::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 24px;
  border: 1px dashed rgba(125,242,255,.18);
  pointer-events: none;
}
.terminal-window--antenna-gui .antenna-console-panel::after {
  content: "ANT RADIO LINK • AZIMUTH LOCK • BGP RELAY";
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 9px;
  color: rgba(199,249,255,.28);
  font: 900 10px/1 "Segoe UI", Arial, sans-serif;
  letter-spacing: .22em;
  pointer-events: none;
}
.terminal-window--antenna-gui .antenna-console-panel__title {
  font-size: 16px;
  margin-bottom: 14px;
}
.terminal-window--antenna-gui .antenna-console-panel__status {
  font-size: 18px;
  margin-bottom: 18px;
}
.terminal-window--antenna-gui .antenna-console-panel__button {
  padding: 14px 22px;
  font-size: 13px;
}
.terminal-window--antenna-gui .antenna-console-panel__details {
  margin-top: 20px;
  text-align: left;
  grid-template-columns: 1fr 1fr;
  gap: 10px 16px;
}

/* developer mode toggle */

/* keep SAT-ANT-01 GUI physically centered and size-stable after establishing the orbital link. */
.terminal-overlay.open.terminal-overlay--antenna-gui {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui {
  width: min(960px, calc(100vw - 48px)) !important;
  max-width: 960px !important;
  min-width: min(960px, calc(100vw - 48px)) !important;
  margin: 0 auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  flex: 0 0 auto !important;
}
.terminal-window--antenna-gui .antenna-console-panel__details {
  display: grid;
}

/* multi-console window manager inside the Console tab. */
.terminal-panel--console-window-manager.open {
  display: block;
  height: 100%;
  min-height: 0;
}
.terminal-console-surface {
  --console-cascade-x: 0px;
  --console-cascade-y: 0px;
  position: relative;
  height: 100%;
  min-height: 0;
  padding: 16px 18px 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 12%, rgba(92, 199, 255, .08), transparent 30%),
    linear-gradient(180deg, rgba(5, 12, 22, .98), rgba(3, 8, 15, .99));
}
.terminal-console-stack {
  position: absolute;
  left: 18px;
  top: 14px;
  width: 340px;
  height: 118px;
  pointer-events: none;
  z-index: 2;
}


.terminal-console-window__close{
  border: 0;
  color: #dff9ff;
  font: 800 12px/1 "Segoe UI", Arial, sans-serif;
  cursor: pointer;
}

.terminal-console-window__close{
  width: 28px;
  height: 28px;
  margin-right: 3px;
  border-radius: 50%;
  background: rgba(255, 92, 112, .18);
  color: #ffd7dd;
  font-size: 17px;
}
.terminal-console-window__close:hover{
  background: rgba(255, 92, 112, .44);
  color: #ffffff;
}
.terminal-console-window--active {
  position: absolute;
  left: calc(22px + var(--console-cascade-x));
  top: calc(52px + var(--console-cascade-y));
  right: 18px;
  bottom: 18px;
  min-width: 0;
  min-height: 260px;
  display: grid;
  grid-template-rows: 36px minmax(0, 1fr);
  border: 1px solid rgba(125, 204, 255, .36);
  border-radius: 14px;
  overflow: hidden;
  background: #040b12;
  box-shadow: 0 22px 46px rgba(0,0,0,.36), 0 0 24px rgba(80, 220, 255, .08);
  z-index: 40;
}
.terminal-console-window__titlebar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  height: 36px;
  padding: 0 7px 0 12px;
  background: linear-gradient(180deg, rgba(18, 55, 88, .98), rgba(8, 23, 40, .98));
  border-bottom: 1px solid rgba(125, 204, 255, .22);
  color: #e8fbff;
}
.terminal-console-window__host {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 900 12px/1 "Segoe UI", Arial, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.terminal-console-window--active .terminal-output {
  min-height: 0;
  height: 100%;
  border-radius: 0;
}
.terminal-window--antenna-gui .terminal-console-stack,
.terminal-window--antenna-gui .terminal-console-window__titlebar {
  display: flex;
}
.terminal-window--antenna-gui .terminal-console-window--active {
  left: calc(22px + var(--console-cascade-x)) !important;
  top: calc(52px + var(--console-cascade-y)) !important;
  right: 18px !important;
  bottom: 18px !important;
}

/* keep the center of the antenna connect button fixed when its label/state changes. */
.terminal-window--antenna-gui .antenna-console-panel {
  display: grid;
  grid-template-rows: auto auto 54px minmax(108px, auto);
  justify-items: center;
  align-items: center;
}
.terminal-window--antenna-gui.terminal-window--antenna-status-only .antenna-console-panel,
.antenna-console-panel.antenna-console-panel--status-only {
  grid-template-rows: auto auto minmax(108px, auto);
}
.terminal-window--antenna-gui .antenna-console-panel__button {
  width: 238px !important;
  min-width: 238px !important;
  max-width: 238px !important;
  height: 46px !important;
  display: inline-grid !important;
  place-items: center !important;
  margin: 0 auto !important;
  white-space: nowrap !important;
}
.terminal-window--antenna-gui .antenna-console-panel__details {
  align-self: stretch;
  min-height: 104px;
}

/* stable multi-console cascade. Windows keep their original coordinates; activation only changes z-order. */
.terminal-console-surface {
  --console-cascade-x: 0px;
  --console-cascade-y: 0px;
  isolation: isolate;
}
.terminal-console-stack {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  pointer-events: none;
  z-index: 18;
}










.terminal-console-window--active {
  left: calc(22px + var(--console-cascade-x)) !important;
  top: calc(52px + var(--console-cascade-y)) !important;
  right: 18px !important;
  bottom: 18px !important;
  z-index: 400;
}
.terminal-console-window__host::before {
  content: "▣ ";
  color: rgba(128, 238, 255, .9);
}


/* console tab layout without cascade. Active console is maximized;
   inactive consoles are hostname tabs in a single top row. */
.terminal-console-surface {
  --console-cascade-x: 0px !important;
  --console-cascade-y: 0px !important;
  display: grid;
  grid-template-rows: 40px minmax(0, 1fr);
  gap: 10px;
  padding: 12px 18px 18px !important;
  overflow: hidden;
}
.terminal-console-stack {
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  top: auto !important;
  width: 100% !important;
  height: 40px !important;
  min-height: 40px;
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  pointer-events: auto !important;
  z-index: 20;
  padding: 2px 2px 6px;
  scrollbar-width: thin;
}
.terminal-console-tab {
  flex: 0 0 auto;
  max-width: 210px;
  min-width: 112px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 13px;
  border: 1px solid rgba(126, 204, 255, .32);
  border-radius: 10px 10px 4px 4px;
  background: linear-gradient(180deg, rgba(15, 48, 79, .96), rgba(7, 20, 36, .98));
  color: #e3fbff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  cursor: pointer;
  font: 900 12px/1 "Segoe UI", Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.terminal-console-tab:hover,
.terminal-console-tab:focus-visible,
.terminal-console-tab:focus-within {
  border-color: rgba(154, 231, 255, .74);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
  filter: brightness(1.18);
  outline: none;
}
.terminal-console-tab__host {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}

.terminal-console-window--active,
.terminal-window--antenna-gui .terminal-console-window--active {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  grid-row: 2;
  z-index: 400 !important;
}
.terminal-window--antenna-gui .terminal-console-stack,
.terminal-window--antenna-gui .terminal-console-window__titlebar {
  display: flex !important;
}

/* close buttons are plain × glyphs, inactive console tabs also have a close ×. */
.terminal-console-window__close, .terminal-console-tab__close{
  width: auto !important;
  min-width: 18px !important;
  height: 24px !important;
  margin: 0 !important;
  padding: 0 6px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  color: #ffd7dd !important;
  font: 900 20px/1 "Segoe UI", Arial, sans-serif !important;
  cursor: pointer;
}
.terminal-console-window__close:hover, .terminal-console-tab__close:hover, .terminal-console-window__close:focus-visible, .terminal-console-tab__close:focus-visible{
  background: transparent !important;
  color: #ffffff !important;
  text-shadow: 0 0 10px rgba(255, 112, 132, .65);
  transform: none !important;
  outline: none;
}
.terminal-console-tab {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  justify-content: stretch !important;
  gap: 3px;
  padding: 0 4px 0 10px !important;
  transition: border-color .12s ease, box-shadow .12s ease, background .12s ease, filter .12s ease;
}
.terminal-console-tab__close {
  flex: 0 0 auto;
  align-self: center;
  color: rgba(255, 215, 221, .9) !important;
}
.terminal-console-window__titlebar {
  padding-right: 8px !important;
}

/* keep the antenna GUI window top-right corner fixed before/after the connect action. */
.terminal-overlay.open.terminal-overlay--antenna-gui {
  display: block !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui {
  position: absolute !important;
  top: max(24px, calc((100vh - min(760px, calc(100vh - 48px))) / 2)) !important;
  right: max(24px, calc((100vw - min(960px, calc(100vw - 48px))) / 2)) !important;
  left: auto !important;
  bottom: auto !important;
  width: min(960px, calc(100vw - 48px)) !important;
  min-width: min(960px, calc(100vw - 48px)) !important;
  max-width: 960px !important;
  height: min(760px, calc(100vh - 48px)) !important;
  min-height: 0 !important;
  max-height: min(760px, calc(100vh - 48px)) !important;
  margin: 0 !important;
  transform: none !important;
  flex: none !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-body {
  min-height: 0 !important;
  height: calc(100% - 116px) !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-panel.open,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-console-surface,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-console-window--active {
  min-height: 0 !important;
  height: 100% !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-output {
  min-height: 0 !important;
  height: 100% !important;
}

.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__details {
  max-height: 170px;
  overflow: auto;
}


/* SAT-ANT-01 console must use the same full-size tablet shell as every other device.
   The antenna mode may keep its antenna panel and hidden CLI input, but it must not
   resize, absolutely anchor, or shrink the whole tablet overlay/window. */
.terminal-overlay.open.terminal-overlay--antenna-gui {
  display: flex !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  padding: clamp(6px, 1vw, 14px) !important;
  overflow: hidden !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  transform: none !important;
  flex: 1 1 auto !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-body {
  min-height: 0 !important;
  height: auto !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-panel.open,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-console-surface,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-console-window--active,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-output {
  min-height: 0 !important;
  height: 100% !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel {
  width: min(640px, calc(100% - 48px)) !important;
}


/* flatten SAT-ANT-01 GUI content. The antenna GUI must not render a second
   framed/card-like window inside the main full-size GUI console; all status,
   action and BGP-link text lives directly on the primary GUI surface. */
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .terminal-output {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(22px, 4vw, 56px) !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel {
  width: min(900px, 100%) !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  text-align: center !important;
  display: grid !important;
  grid-template-rows: auto auto 54px minmax(92px, auto) !important;
  justify-items: center !important;
  align-items: center !important;
  overflow: visible !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel::before,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel::after {
  content: none !important;
  display: none !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__title {
  margin: 0 0 16px !important;
  color: #7df2ff !important;
  text-shadow: 0 0 16px rgba(125, 242, 255, .35) !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__status {
  margin: 0 0 18px !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__details {
  width: min(760px, 100%) !important;
  margin-top: 18px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: center !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px 36px !important;
  justify-items: stretch !important;
  align-items: center !important;
  align-self: stretch !important;
  max-height: none !important;
  overflow: visible !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__details-item {
  width: 100% !important;
  text-align: center !important;
}
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__details-item--full,
.terminal-overlay.open.terminal-overlay--antenna-gui .terminal-window--antenna-gui .antenna-console-panel__details-message {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  text-align: center !important;
}

/* keep console input visible and independent from scrollback text. */

.tablet-window--terminal .terminal-input--inline,
.terminal-input--inline,
.terminal-input {
  background: #000 !important;
  color: #d9ffe0 !important;
  caret-color: #7fe9ff !important;
}

/* checklist overlay, rocket Tasks tab, and restore 1280px game field width. */
:root {
  --game-display-max-w: 1280px;
  --game-display-max-h: 720px;
}

.terminal-tab--removed,
.terminal-panel--removed {
  display: none !important;
}

.task-checklist-overlay {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  z-index: 35;
}

.task-checklist-overlay.open {
  display: flex;
}

.task-checklist-overlay__backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 24% 12%, rgba(92, 231, 255, 0.16), transparent 28%),
    radial-gradient(circle at 78% 88%, rgba(125, 245, 183, 0.12), transparent 30%),
    rgba(2, 6, 14, 0.78);
  backdrop-filter: blur(10px);
}

.task-checklist-modal {
  position: relative;
  width: min(680px, calc(100vw - 32px));
  max-height: min(82vh, 720px);
  overflow: auto;
  border: 1px solid rgba(127, 190, 255, 0.28);
  border-radius: 26px;
  padding: 26px;
  background:
    linear-gradient(180deg, rgba(18, 31, 52, 0.96), rgba(6, 12, 24, 0.98));
  box-shadow: 0 32px 110px rgba(0, 0, 0, 0.58), inset 0 1px 0 rgba(255,255,255,0.07);
}

.task-checklist-modal__eyebrow {
  color: #7df5b7;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 800;
  font-size: 12px;
}

.task-checklist-modal h2 {
  margin: 8px 0 8px;
  font-size: clamp(26px, 4vw, 38px);
}

.task-checklist-modal__intro {
  color: #b9cee9;
  line-height: 1.55;
  margin: 0 0 18px;
  white-space: pre-line;
}

.task-checklist-modal__list,
.rocket-tasks-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.task-checklist-modal__list li,
.rocket-task-row {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid rgba(127, 190, 255, 0.16);
  border-radius: 16px;
  padding: 12px;
  background: rgba(8, 15, 30, 0.72);
}

.task-checklist-modal__list li > span,
.rocket-task-row__mark {
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(127, 190, 255, 0.28);
  background: rgba(2, 8, 18, 0.72);
  color: #7df5b7;
  font-weight: 900;
}

.task-checklist-modal__list li.done,
.rocket-task-row.done {
  border-color: rgba(125, 245, 183, 0.34);
  background: rgba(28, 88, 66, 0.25);
}

.task-checklist-modal__list strong,
.rocket-task-row strong {
  display: block;
  color: #eef7ff;
  font-size: 15px;
}

.task-checklist-modal__list small,
.rocket-task-row small {
  display: block;
  margin-top: 4px;
  color: #91a9ca;
  line-height: 1.35;
}


.rocket-task-row.expanded {
  grid-template-columns: 1fr;
  padding: 0;
  overflow: hidden;
  border-color: rgba(125, 243, 255, 0.46);
  background: rgba(10, 25, 48, 0.84);
  box-shadow: 0 0 22px rgba(78, 207, 255, 0.12);
}



.rocket-task-row__details {
  margin: 0 12px 12px 56px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(147, 190, 234, 0.22);
  background: rgba(2, 8, 18, 0.42);
  color: rgba(224, 240, 255, 0.90);
}
.rocket-task-row__details strong {
  display: block;
  margin-bottom: 5px;
  color: #ffe892;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.rocket-task-row__details p {
  margin: 0;
  color: rgba(224, 240, 255, 0.86);
  line-height: 1.42;
  white-space: pre-line;
}

.task-checklist-modal__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 20px;
}

.task-checklist-modal__button {
  min-width: 140px;
  border-color: rgba(125,245,183,0.38);
  background: linear-gradient(180deg, rgba(30, 91, 67, 0.96), rgba(20, 58, 49, 0.98));
}

.task-checklist-modal__foot {
  margin-top: 12px;
  color: #7d94b7;
  font-size: 12px;
}

.rocket-panel--tasks {
  min-height: 0 !important;
  height: 100% !important;
  display: flex;
  flex-direction: column;
  overflow: hidden !important;
}

#terminalPanelTasks.open {
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

.rocket-tasks-content {
  display: grid;
  grid-auto-rows: max-content;
  align-content: start;
  gap: 14px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-right: 8px;
  padding-bottom: 12px;
}

.rocket-tasks-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid rgba(127,190,255,0.17);
  border-radius: 18px;
  padding: 14px;
  background: rgba(7, 14, 26, 0.76);
}

.rocket-tasks-summary strong,
.rocket-tasks-summary span {
  display: block;
}

.rocket-tasks-summary span {
  margin-top: 4px;
  color: #9db5d7;
  line-height: 1.4;
  white-space: pre-line;
}

.rocket-tasks-summary em {
  white-space: nowrap;
  color: #7df5b7;
  font-style: normal;
  font-weight: 900;
}

.rocket-tasks-progress {
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(127,190,255,0.12);
}

.rocket-tasks-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6fdfff, #7df5b7);
}

@media (min-width: 900px) {
  .shell {
    max-width: calc(1280px + 36px) !important;
  }
  .viewport-stage {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
  }
}


.boss-attack-button[hidden] {
  display: none !important;
}
 .boss-attack-button {
  border-color: rgba(199, 255, 180, 0.94) !important;
  background: radial-gradient(circle at 50% 0%, rgba(214, 255, 184, 0.34), rgba(26, 156, 70, 0.98) 42%, rgba(7, 65, 28, 0.98)) !important;
  color: #effff4 !important;
  box-shadow: 0 0 20px rgba(95, 255, 120, 0.28);
}

/* Gameplay boss attack is a normal centered action button outside the Ctrl+D/dev UI. */
.boss-attack-button--gameplay {
  position: fixed !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 12030 !important;
  min-width: 340px;
  padding: 24px 48px !important;
  border-radius: 26px !important;
  font-size: 24px !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #effff4 !important;
  border: 2px solid rgba(199, 255, 180, 0.94) !important;
  background: radial-gradient(circle at 50% 0%, rgba(214, 255, 184, 0.34), rgba(26, 156, 70, 0.98) 42%, rgba(7, 65, 28, 0.98)) !important;
  box-shadow: 0 0 0 9999px rgba(2, 4, 10, 0.20), 0 0 34px rgba(95, 255, 120, 0.55), inset 0 0 18px rgba(255,255,255,0.12) !important;
}
.boss-attack-button--gameplay:hover {
  background: radial-gradient(circle at 50% 0%, rgba(235, 255, 196, 0.42), rgba(35, 191, 83, 1) 44%, rgba(8, 78, 31, 1)) !important;
  box-shadow: 0 0 0 9999px rgba(2, 4, 10, 0.18), 0 0 44px rgba(104, 255, 126, 0.72), inset 0 0 18px rgba(255,255,255,0.16) !important;
}

/* rocket launch uses the same centered cockpit action layout as the level-3 attack button, with green as the main color. */
.launch-rocket-button[hidden] {
  display: none !important;
}
.launch-rocket-button {
  position: fixed !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 11980 !important;
  min-width: 320px;
  padding: 24px 48px !important;
  border-radius: 26px !important;
  font-size: 24px !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #effff4 !important;
  border: 2px solid rgba(199, 255, 180, 0.94) !important;
  background: radial-gradient(circle at 50% 0%, rgba(214, 255, 184, 0.34), rgba(26, 156, 70, 0.98) 42%, rgba(7, 65, 28, 0.98)) !important;
  box-shadow: 0 0 0 9999px rgba(2, 4, 10, 0.20), 0 0 34px rgba(95, 255, 120, 0.55), inset 0 0 18px rgba(255,255,255,0.12) !important;
}
.launch-rocket-button--assembly-finish {
  white-space: pre-line;
  text-transform: none;
  line-height: 1.28;
}
.launch-rocket-button--assembly-finish::first-line {
  text-transform: uppercase;
}

.launch-rocket-button:hover {
  background: radial-gradient(circle at 50% 0%, rgba(235, 255, 196, 0.42), rgba(35, 191, 83, 1) 44%, rgba(8, 78, 31, 1)) !important;
  box-shadow: 0 0 0 9999px rgba(2, 4, 10, 0.18), 0 0 44px rgba(104, 255, 126, 0.72), inset 0 0 18px rgba(255,255,255,0.16) !important;
}


/* visible log export button inside the rocket/tablet console titlebar */
.rocket-tablet-export-btn--logs {
  border-color: rgba(255, 202, 102, 0.48);
  background: linear-gradient(180deg, rgba(88, 56, 22, 0.98), rgba(47, 31, 17, 0.96));
  box-shadow: 0 0 14px rgba(255, 190, 76, 0.14);
}
.rocket-tablet-export-btn--logs:hover {
  border-color: rgba(255, 221, 139, 0.68);
  background: linear-gradient(180deg, rgba(116, 75, 28, 0.98), rgba(58, 38, 19, 0.98));
}

/* P toggles an in-game fullscreen shell: only the game field stays visible. */
body.game-fullscreen-active {
  overflow: hidden;
  background: #020713;
}
.shell.game-fullscreen-mode {
  width: 100vw !important;
  height: 100vh;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #020713;
  display: flex;
  align-items: center;
  justify-content: center;
}
.shell.game-fullscreen-mode .titlebar,
.shell.game-fullscreen-mode .viewport-stage {
  width: 100vw;
  height: 100vh;
  min-height: 100vh !important;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #020713;
}
.shell.game-fullscreen-mode canvas#game {
  display: block;
  max-width: 100vw;
  max-height: 100vh;
}

/* first-level server tablet keeps only the action tab. */
.gui-tabs .gui-tab[hidden] { display: none !important; }
.gui-tabs:has(.gui-tab[hidden]) { justify-content: center; }
.gui-tabs:has(.gui-tab[hidden]) .gui-tab { min-width: min(420px, 92%); }

/* compact rocket status tab — keep all telemetry on one screen without scrolling */
#terminalPanelStats.terminal-panel--rocket {
  overflow: hidden !important;
  padding: 12px 14px !important;
}

#terminalPanelStats .rocket-stats-grid,
#terminalPanelStats .rocket-stats-grid--model {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(78px, 1fr);
  gap: 8px;
  align-content: stretch;
}

#terminalPanelStats .rocket-stat-card,
#terminalPanelStats .rocket-stat-card--wide {
  grid-column: auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 14px;
  padding: 10px 12px;
}

#terminalPanelStats .rocket-stat-card span {
  margin-bottom: 5px;
  font-size: 12px;
  line-height: 1.1;
}

#terminalPanelStats .rocket-stat-card strong {
  font-size: 20px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

#terminalPanelStats .rocket-stat-note {
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.15;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#terminalPanelStats .rocket-stat-bar {
  height: 8px;
  margin-top: 7px;
}

#terminalPanelStats .rocket-dispatch-dots {
  margin-top: 8px;
  gap: 5px;
}

#terminalPanelStats .rocket-dispatch-dots span {
  width: 8px;
  height: 8px;
}

#terminalPanelStats .rocket-brake-icon {
  margin-top: 8px;
  width: 64px;
  height: 20px;
  border-radius: 10px;
}

#terminalPanelStats .rocket-brake-icon::before,
#terminalPanelStats .rocket-brake-icon::after {
  top: 4px;
  width: 14px;
  height: 11px;
  border-width: 2px;
  border-radius: 0 0 5px 5px;
}

#terminalPanelStats .rocket-brake-icon::after {
  left: 12px;
}

#terminalPanelStats .rocket-brake-icon::before {
  right: 12px;
}

@media (max-width: 920px) {
  #terminalPanelStats .rocket-stats-grid,
  #terminalPanelStats .rocket-stats-grid--model {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(72px, 1fr);
    gap: 7px;
  }

  #terminalPanelStats .rocket-stat-card strong {
    font-size: 17px;
  }
}

/* spaceflight jetpack reward and rocket tablet tutorial modal */
.terminal-tab {
  position: relative;
}

.terminal-tab.rocket-tab-tutorial-pending {
  color: #edffe8;
  border-color: rgba(125, 245, 183, 0.72);
  background: linear-gradient(180deg, rgba(33, 135, 71, 0.98), rgba(13, 68, 42, 0.98));
  box-shadow:
    inset 0 0 0 1px rgba(220, 255, 195, 0.18),
    0 0 0 1px rgba(125, 245, 183, 0.34),
    0 0 22px rgba(69, 255, 119, 0.34);
}


.terminal-tab.rocket-tab-tutorial-locked {
  opacity: 0.42;
  cursor: not-allowed;
  filter: grayscale(0.28);
  pointer-events: none;
}

.terminal-tab.rocket-tab-tutorial-locked::before {
  content: "⏳";
  position: absolute;
  left: -7px;
  top: -9px;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(8, 16, 32, 0.86);
  color: #ffe882;
  border: 1px solid rgba(255, 232, 130, 0.38);
  box-shadow: 0 0 12px rgba(255, 205, 72, 0.28);
  font-size: 12px;
}


.terminal-tab.rocket-tab-inventory-new::after {
  content: attr(data-inventory-alert);
  position: absolute;
  right: 5px;
  top: 3px;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffe882, #ffbf2f);
  color: #201400;
  font-weight: 900;
  font-size: 15px;
  line-height: 1;
  border: 1px solid rgba(255, 255, 255, 0.48);
  box-shadow: 0 0 14px rgba(255, 205, 72, 0.62);
}

.terminal-tab.rocket-tab-tutorial-pending::after {
  content: attr(data-tutorial-alert);
  position: absolute;
  right: 5px;
  top: 3px;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: linear-gradient(180deg, #ffe882, #ffbf2f);
  color: #201400;
  font-weight: 900;
  font-size: 15px;
  line-height: 1;
  border: 1px solid rgba(255, 255, 255, 0.48);
  box-shadow: 0 0 14px rgba(255, 205, 72, 0.62);
}




































/* neutral NPC dialogue bubble above speaker */














/* reusable scenario briefing window styled as a cosmic tablet */













































/* tasks tab returns to wide task cards; only tasks with explicit details expand inline downward. */
.rocket-task-row {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 12px;
  align-items: flex-start;
  width: 100%;
  padding: 14px 16px;
  border-radius: 18px;
}

.rocket-task-row.expanded {
  grid-template-columns: 32px 1fr;
  padding: 14px 16px;
  overflow: visible;
  border-color: rgba(125, 243, 255, 0.46);
  background: rgba(10, 25, 48, 0.84);
  box-shadow: 0 0 22px rgba(78, 207, 255, 0.12);
}



.rocket-task-row__details-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 9px;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(125, 243, 255, 0.30);
  background: rgba(2, 8, 18, 0.42);
  color: #9ff3ff;
  font-weight: 800;
  font-size: 12px;
  cursor: pointer;
}

.rocket-task-row__details-button:hover {
  background: rgba(125, 243, 255, 0.10);
}

.rocket-task-row__details {
  grid-column: 2 / 3;
  margin: 4px 0 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(147, 190, 234, 0.22);
  background: rgba(2, 8, 18, 0.42);
  color: rgba(224, 240, 255, 0.90);
}

/* server tablets no longer reserve vertical space for the removed tab selector. */
#serverGuiOverlay .gui-tabs[hidden],
#serverGuiOverlay .gui-tabs:empty {
  display: none !important;
}

#serverGuiOverlay .gui-window,
#serverGuiOverlay .tablet-window--gui,
#serverGuiOverlay .server-tablet-window {
  grid-template-rows: auto minmax(0, 1fr) auto !important;
}

#serverGuiOverlay .gui-titlebar {
  grid-row: 1 !important;
}

#serverGuiOverlay .gui-body {
  grid-row: 2 !important;
  padding-top: 0 !important;
}

#serverGuiOverlay .gui-foot {
  grid-row: 3 !important;
}

#serverGuiOverlay .gui-panel {
  padding-top: 8px !important;
}

#serverGuiOverlay .gui-panel.open > .gui-card:first-child,
#serverGuiOverlay .gui-panel.open > .gui-live-strip:first-child {
  margin-top: 0 !important;
}


/* server tablets are single-screen panels. Collapse the removed tabs row
   completely and pin the main content directly below the titlebar. */
#serverGuiOverlay.server-gui-tabs-collapsed .gui-tabs,
#serverGuiOverlay .server-tablet-window > .gui-tabs,
#serverGuiOverlay .gui-window > .gui-tabs[hidden] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

#serverGuiOverlay.server-gui-tabs-collapsed .gui-window,
#serverGuiOverlay.server-gui-tabs-collapsed .tablet-window--gui,
#serverGuiOverlay.server-gui-tabs-collapsed .server-tablet-window {
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  row-gap: 0 !important;
}

#serverGuiOverlay.server-gui-tabs-collapsed .server-tablet-grid {
  display: none !important;
}

#serverGuiOverlay.server-gui-tabs-collapsed .gui-body {
  grid-row: 2 !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
  border-top: 1px solid rgba(137, 205, 255, 0.10) !important;
}

#serverGuiOverlay.server-gui-tabs-collapsed .gui-panel.open {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

#serverGuiOverlay.server-gui-tabs-collapsed .gui-card:first-child,
#serverGuiOverlay.server-gui-tabs-collapsed .gui-live-strip:first-child,
#serverGuiOverlay.server-gui-tabs-collapsed .rescue-gate-puzzle:first-child {
  margin-top: 0 !important;
}

/* v973: fail-closed PLAYER connectivity freeze overlay. */
.network-connection-overlay {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.network-connection-overlay.open {
  display: flex;
  pointer-events: auto;
}
.network-connection-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 38%, rgba(35, 77, 112, 0.32), rgba(2, 7, 17, 0.94));
  backdrop-filter: blur(6px);
}
.network-connection-modal {
  position: relative;
  width: min(520px, calc(100vw - 42px));
  padding: 30px 28px 28px;
  border: 1px solid rgba(125, 231, 255, 0.34);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(12, 26, 44, 0.98), rgba(5, 10, 20, 0.98));
  box-shadow: 0 26px 90px rgba(0, 0, 0, 0.62), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  color: #eaf8ff;
  text-align: center;
}
.network-connection-modal__eyebrow {
  margin-bottom: 8px;
  color: #79e7ff;
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.network-connection-modal h2 {
  margin: 0 0 12px;
  font-size: 30px;
}
.network-connection-modal__body {
  margin: 0 auto 20px;
  max-width: 420px;
  color: rgba(234, 248, 255, 0.78);
  line-height: 1.5;
}
.network-connection-modal__status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 24px;
  color: rgba(234, 248, 255, 0.9);
}
.network-connection-modal__spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(121, 231, 255, 0.22);
  border-top-color: #79e7ff;
  border-radius: 50%;
  animation: network-connection-spin 0.9s linear infinite;
}
@keyframes network-connection-spin { to { transform: rotate(360deg); } }

.pause-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.pause-menu-overlay.open {
  display: flex;
  pointer-events: auto;
}
.pause-menu-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 35%, rgba(44, 88, 128, 0.32), rgba(3, 8, 20, 0.84));
  backdrop-filter: blur(4px);
}
.pause-menu-modal {
  position: relative;
  width: min(520px, calc(100vw - 42px));
  padding: 28px;
  border: 1px solid rgba(125, 231, 255, 0.34);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(12, 26, 44, 0.96), rgba(5, 10, 20, 0.96));
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  color: #eaf8ff;
  text-align: center;
}
.pause-menu-modal__eyebrow {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #79e7ff;
  margin-bottom: 8px;
}
.pause-menu-modal h2 {
  margin: 0 0 10px;
  font-size: 28px;
}
.pause-menu-modal__intro {
  margin: 0 0 20px;
  color: rgba(234, 248, 255, 0.76);
  line-height: 1.45;
}
.pause-menu-modal__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.pause-menu-modal__button {
  border: 1px solid rgba(125, 231, 255, 0.28);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(18, 39, 62, 0.86);
  color: #eaf8ff;
  font-weight: 700;
  cursor: pointer;
}
.pause-menu-modal__button:hover {
  border-color: rgba(125, 231, 255, 0.72);
  background: rgba(28, 62, 96, 0.92);
}
.pause-menu-modal__button--primary {
  background: linear-gradient(180deg, rgba(76, 214, 152, 0.95), rgba(31, 143, 112, 0.95));
  color: #031511;
}
.pause-menu-modal__button--danger {
  border-color: rgba(255, 117, 117, 0.35);
  background: rgba(96, 28, 32, 0.86);
}
.pause-menu-modal__foot {
  margin-top: 16px;
  font-size: 12px;
  color: rgba(234, 248, 255, 0.55);
}

/* console output can be selected/copy-on-select; right click pastes into the CLI input. */
.terminal-output,
.terminal-output *,
.tablet-window--terminal .terminal-output,
.tablet-window--terminal .terminal-output * {
  -webkit-user-select: text !important;
  user-select: text !important;
}
.terminal-output {
  cursor: text !important;
}
.terminal-input,
.terminal-input--inline {
  -webkit-user-select: text !important;
  user-select: text !important;
}


/* Hide non-gameplay text panels around the game field. */
.titlebar { display: none !important; }
.viewport-stage { position: relative; }
.pause-menu-modal__controls {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(125, 231, 255, 0.20);
  border-radius: 14px;
  background: rgba(5, 13, 25, 0.62);
  color: rgba(234, 248, 255, 0.82);
  text-align: left;
  line-height: 1.45;
}
.pause-menu-modal__controls.open { display: block; }
.pause-menu-modal__controls strong { color: #79e7ff; }
.pause-menu-modal__controls p { margin: 6px 0 0; }
.game-over-overlay {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 42;
  pointer-events: none;
}
.game-over-overlay.open { display: flex; pointer-events: auto; }
.game-over-restart-button {
  margin-top: 110px;
  border: 1px solid rgba(255, 210, 130, 0.56);
  border-radius: 16px;
  padding: 14px 24px;
  background: linear-gradient(180deg, rgba(255, 190, 88, 0.96), rgba(195, 93, 38, 0.96));
  color: #1d0802;
  font-weight: 900;
  font-size: 18px;
  cursor: pointer;
  box-shadow: 0 16px 40px rgba(0,0,0,0.42);
}
.game-over-restart-button:hover { filter: brightness(1.08); }

/* v390: distinct scheme icons for routers and antennas while preserving switch circles. */
.scheme-device-icon-graphic {
  pointer-events: none;
}

.scheme-device-icon-stroke {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.scheme-device-icon-fill {
  fill: currentColor;
  stroke: none;
}


/* keep SAT-ANT-01 connection button text inside rounded button. */
.antenna-console-panel__button {
  max-width: min(320px, 100%);
  white-space: normal;
  line-height: 1.15;
  overflow-wrap: anywhere;
  text-align: center;
}


/* optional vertical split for two CLI consoles. */

.terminal-console-surface.terminal-console-surface--split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 40px minmax(0, 1fr);
  column-gap: 12px;
}
.terminal-console-surface.terminal-console-surface--split .terminal-console-stack {
  grid-column: 1 / 3;
}
.terminal-console-surface.terminal-console-surface--split .terminal-console-window--active {
  grid-row: 2;
  grid-column: 1;
}
.terminal-console-window--split-side {
  position: relative !important;
  grid-row: 2;
  grid-column: 2;
  min-height: 0;
  height: 100%;
  border: 1px solid rgba(126, 204, 255, .28);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(3, 10, 18, .88);
  display: grid;
  grid-template-rows: 36px minmax(0, 1fr);
}
.terminal-console-window--split-side[hidden] {
  display: none !important;
}
.terminal-console-window__host--button {
  border: 0;
  background: transparent;
  color: #dffbff;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.terminal-split-console-text {
  margin: 0;
  min-height: 0;
  max-height: none;
  overflow: auto;
  white-space: pre-wrap;
  color: #dcecff;
  background: rgba(2, 6, 12, .72);
  padding: 12px;
  font: 13px/1.42 "Consolas", "Courier New", monospace;
}


.rocket-notebook-textarea {
  width: 100%;
  min-height: 0;
  resize: none;
  border: 1px solid rgba(126, 204, 255, .28);
  border-radius: 14px;
  background: rgba(2, 8, 16, .88);
  color: #e9fbff;
  padding: 14px;
  font: 14px/1.45 "Consolas", "Courier New", monospace;
  outline: none;
}
.rocket-notebook-textarea:focus {
  border-color: rgba(126, 244, 255, .72);
  box-shadow: 0 0 18px rgba(68, 220, 255, .14);
}


/* split console controls live inside the Console tab, not in the global titlebar. */
.terminal-panel--console-window-manager.open {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  height: 100%;
  min-height: 0;
}
.terminal-console-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 12px;
  border: 1px solid rgba(126, 204, 255, .18);
  border-radius: 12px;
  background: rgba(7, 17, 31, .72);
}
.terminal-console-toolbar__title {
  color: #dffbff;
  font: 900 12px/1 "Segoe UI", Arial, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.terminal-console-surface.terminal-console-surface--split {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 40px minmax(0, 1fr);
  column-gap: 12px;
}
.terminal-console-surface.terminal-console-surface--active-left .terminal-console-window--active {
  grid-column: 1;
}
.terminal-console-surface.terminal-console-surface--active-left .terminal-console-window--split-side {
  grid-column: 2;
}
.terminal-console-surface.terminal-console-surface--active-right .terminal-console-window--active {
  grid-column: 2;
}
.terminal-console-surface.terminal-console-surface--active-right .terminal-console-window--split-side {
  grid-column: 1;
}
.terminal-console-window--focused {
  border-color: rgba(126, 255, 204, .7) !important;
  box-shadow: 0 0 0 1px rgba(126, 255, 204, .20), 0 22px 46px rgba(0,0,0,.36), 0 0 24px rgba(80, 220, 255, .12) !important;
}
.terminal-console-window--split-side {
  cursor: text;
}


/* Console tab is always split: left/right panes, notebook is the permanent rightmost thumbnail. */
.terminal-console-toolbar {
  justify-content: flex-start;
}
.terminal-console-tab--notebook {
  margin-left: auto;
  grid-template-columns: minmax(112px, 1fr);
}
.terminal-console-window--notebook {
  cursor: text;
}
.terminal-split-notebook {
  min-height: 0;
  height: 100%;
  display: grid;
}
.terminal-split-notebook[hidden] {
  display: none !important;
}
.terminal-split-notebook__textarea {
  border-radius: 0;
  border: 0;
  height: 100%;
  min-height: 0;
  resize: none;
  background: rgba(2, 8, 16, .90);
}
.terminal-console-surface.terminal-console-surface--split .terminal-console-stack {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
}

/* tracked task selector and task view inside the Console tab side pane. */
/* Device, Notebook and Task tabs share one interaction: brighten the complete outer card. */
.terminal-console-tab--tracked-task {
  border-color: rgba(255, 220, 112, .42);
  background: linear-gradient(180deg, rgba(78, 58, 19, .96), rgba(31, 22, 8, .98));
  color: #fff2b8;
}

.terminal-console-window--tracked-task .terminal-console-window__titlebar {
  background: linear-gradient(180deg, rgba(80, 58, 17, .98), rgba(32, 23, 7, .98));
}
.terminal-console-window--tracked-task .terminal-console-window__host::before {
  content: "◆ ";
  color: rgba(255, 226, 120, .95);
}
.terminal-console-window--tracked-task .terminal-split-console-text {
  color: #fff5d2;
  background:
    radial-gradient(circle at 16% 10%, rgba(255, 220, 112, .08), transparent 34%),
    rgba(10, 8, 4, .86);
  font: 13px/1.48 "Consolas", "Courier New", monospace;
}
.rocket-task-row.tracked {
  border-color: rgba(255, 226, 120, .62);
  box-shadow: 0 0 20px rgba(255, 205, 91, .14);
}
.rocket-task-row.tracked .rocket-task-row__mark {
  color: #ffe278;
  border-color: rgba(255, 226, 120, .62);
}
.rocket-task-row__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
}
.rocket-task-row__actions .rocket-task-row__details-button,
.rocket-task-row__actions .rocket-task-row__track-button {
  margin-top: 0;
}
.rocket-task-row__track-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 226, 120, .34);
  background: rgba(28, 21, 5, .54);
  color: #ffe89a;
  font-weight: 800;
  font-size: 12px;
  cursor: pointer;
}
.rocket-task-row__track-button:hover:not(:disabled),
.rocket-task-row__track-button.active {
  background: rgba(255, 213, 91, .14);
  border-color: rgba(255, 226, 120, .68);
  color: #fff6c9;
}
.rocket-task-row__track-button:disabled {
  opacity: .45;
  cursor: default;
}

/* service right-pane titles are labels, not clickable buttons. */
.terminal-console-window__host--static,
.terminal-console-window__host--static:disabled {
  cursor: default !important;
  pointer-events: none !important;
  opacity: 1 !important;
  color: inherit !important;
}

/* centered completion notice above terminal/server overlays. */
.game-center-notice {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(.98);
  z-index: 2600;
  min-width: min(560px, calc(100vw - 64px));
  max-width: min(760px, calc(100vw - 64px));
  padding: 22px 34px;
  border-radius: 24px;
  border: 1px solid rgba(128, 255, 204, .52);
  background: radial-gradient(circle at 18% 12%, rgba(126,255,204,.16), transparent 34%), rgba(5, 14, 24, .94);
  box-shadow: 0 26px 70px rgba(0,0,0,.46), 0 0 32px rgba(90, 255, 194, .18);
  color: #eafff8;
  font: 900 28px/1.25 "Segoe UI", Arial, sans-serif;
  text-align: center;
  letter-spacing: .02em;
  pointer-events: none;
  opacity: 0;
  transition: opacity .16s ease, transform .16s ease;
}
.game-center-notice.open {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}


/* active console thumbnails remain in the strip and show a clear active state. */
.terminal-console-toolbar__title:empty { display: none !important; }
.terminal-console-tab--active {
  border-color: rgba(126, 255, 204, .84) !important;
  background: linear-gradient(180deg, rgba(20, 72, 67, .98), rgba(6, 32, 36, .98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}
.terminal-console-tab--active .terminal-console-tab__host::before {
  content: "● ";
  color: #7effcc;
}

/* service thumbnails stay in place and show which right-side panel is open. */
.terminal-console-tab--active-service {
  transform: none;
  outline: none;
  outline-offset: 0;
}
.terminal-console-tab--notebook.terminal-console-tab--active-service {
  border-color: rgba(126, 255, 204, .78) !important;
  background: linear-gradient(180deg, rgba(20, 72, 67, .98), rgba(6, 32, 36, .98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}
.terminal-console-tab--tracked-task.terminal-console-tab--active-service {
  border-color: rgba(255, 238, 150, .94) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}

/* production menu and save UI */
.titlebar { display:none !important; }
#terminalImportShowRunFile { display:none !important; }
#launchRocketButton { box-shadow: 0 0 24px rgba(110,255,150,0.4); }
#bossAttackButton.boss-attack-button--gameplay:not([hidden]) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
#bossAttackButton.boss-attack-button--gameplay[hidden] {
  display: none !important;
}
body:has(.pause-menu-overlay.open) #bossAttackButton,
body.bug-report-open #bossAttackButton {
  display: none !important;
  pointer-events: none !important;
}

.start-menu__panel--prod {
  max-width: 1080px;
  padding-top: 28px;
}
















.pause-menu-modal__savebox{
  display:flex; flex-direction:column; gap:8px; margin:16px 0 10px;
  padding:14px; border-radius:14px; border:1px solid rgba(114,168,255,0.22); background:rgba(7,14,28,0.72);
}
.pause-menu-modal__save-label { font-size:13px; color:#cfe0ff; }
.pause-menu-modal__save-input,
.pause-menu-modal__save-list {
  width:100%; box-sizing:border-box; border-radius:10px; border:1px solid rgba(120,160,220,0.28);
  background: rgba(5,9,20,0.94); color:#eef5ff; padding:10px 12px;
}
.pause-menu-modal__save-list { min-height: 124px; }
.pause-menu-modal__save-list option { padding:6px 8px; }
.task-checklist-modal__foot{ display:none; }


/* hard CSS blur kill switch.
   User confirmed blur is still present even on the clean v426-based menu build.
   The screenshot shows a browser-composited rectangular blur layer over the canvas.
   Disable CSS blur/backdrop blur sources completely and draw only flat dim backgrounds. */
*, *::before, *::after {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

body::before, body::after, .rocket-tablet-ambient, .server-tablet-ambient, .start-menu__backdrop, .task-checklist-overlay__backdrop, .pause-menu-overlay__backdrop{
  filter: none !important;
}

.start-menu__backdrop, .task-checklist-overlay__backdrop, .pause-menu-overlay__backdrop{
  background: rgba(2, 6, 14, 0.72) !important;
}

.task-checklist-modal, .pause-menu-modal, .start-menu__panel{
  filter: none !important;
  transform: none !important;
  background-color: rgba(7, 15, 31, 0.98) !important;
}

.terminal-overlay,
.gui-overlay {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

.terminal-overlay.open,
.gui-overlay.open {
  background: rgba(2, 7, 14, 0.84) !important;
}

@keyframes tabletAppear {
  0% { opacity: 0; transform: translateY(24px) scale(0.972); filter: none; }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: none; }
}


/* restored current main menu features on top of v437 no-blur base.
   Keep the v437 global blur kill-switch; use only flat backgrounds, no CSS blur. */



































#terminalExportShowRun,
#terminalImportShowRun,
#terminalDownloadLog {
  display: inline-flex !important;
}




/* restore left graphic + right menu layout from the rolled-back start screen,
   while keeping v437 no-blur kill switch active. */
.start-menu__panel--home {
  width: min(1180px, calc(100vw - 44px));
  max-width: 1180px;
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(330px, 0.9fr);
  gap: 34px;
  align-items: stretch;
  padding: 30px;
}
.start-menu__stage {
  position: relative;
  min-height: 560px;
  border-radius: 30px;
  overflow: hidden;
  background:
    radial-gradient(circle at 34% 24%, rgba(96, 169, 255, 0.28), transparent 32%),
    radial-gradient(circle at 80% 16%, rgba(255, 94, 99, 0.18), transparent 26%),
    radial-gradient(circle at 45% 92%, rgba(255, 170, 70, 0.22), transparent 34%),
    linear-gradient(180deg, rgba(2, 7, 23, 0.98) 0%, rgba(7, 14, 36, 0.98) 52%, rgba(13, 22, 42, 0.98) 100%);
  border: 1px solid rgba(142, 190, 255, 0.28);
  box-shadow: inset 0 0 80px rgba(70, 130, 255, 0.08), 0 30px 70px rgba(0,0,0,0.38);
}












.start-menu__content { min-height: 560px; display: flex; align-items: stretch; }
.start-menu__pane { display: none; width: 100%; flex-direction: column; justify-content: center; }
.start-menu__pane.active { display: flex; }
.start-menu__game-title { font-size: clamp(54px, 7vw, 88px) !important; line-height: .92 !important; margin: 10px 0 18px !important; letter-spacing: -0.06em !important; text-transform: uppercase; }
.start-menu__main-actions, .start-menu__sub-actions { display: grid; gap: 14px; margin-top: 28px; }
.start-menu__main-actions .start-menu__button, .start-menu__sub-actions .start-menu__button { width: 100%; min-height: 54px; font-size: 18px; }
.start-menu__section-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 20px; }
.start-menu__back-button { border: 1px solid rgba(142,190,255,0.26); background: rgba(8,15,34,0.78); color: #dceaff; border-radius: 12px; padding: 10px 12px; cursor: pointer; }
.start-menu__section-desc { margin: 4px 0 0; color: rgba(226, 237, 255, 0.76); }
.start-menu__save-list { width: 100%; min-height: 250px; box-sizing: border-box; border-radius: 16px; border: 1px solid rgba(120,160,220,0.28); background: rgba(5,9,20,0.92); color: #eef5ff; padding: 10px; font-size: 15px; }
.start-menu__save-list option { padding: 9px 10px; border-radius: 8px; }
.start-menu__save-empty { margin-top: 12px; color: rgba(226, 237, 255, 0.66); font-size: 14px; }
.start-menu__controls-grid { display: grid; gap: 10px; }
.start-menu__controls-grid div { display: grid; grid-template-columns: minmax(110px, 150px) 1fr; gap: 12px; align-items: center; padding: 11px 12px; border-radius: 14px; background: rgba(7, 14, 28, 0.72); border: 1px solid rgba(114,168,255,0.16); }
.start-menu__controls-grid strong { color: #ffffff; }
.start-menu__controls-grid span { color: #cfe0ff; }
@media (max-width: 980px) {
  .start-menu__panel--home { grid-template-columns: 1fr; max-height: calc(100vh - 36px); overflow: auto; }
  .start-menu__stage { min-height: 360px; }
  .start-menu__content { min-height: auto; }
  .start-menu__game-title { font-size: clamp(42px, 12vw, 68px) !important; }
}


/* left main-menu graphic replaced with provided sci-fi artwork. */
.start-menu__stage--image {
  position: relative;
  min-height: 560px;
  border-radius: 30px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(2, 7, 23, 0.98) 0%, rgba(7, 14, 36, 0.98) 52%, rgba(13, 22, 42, 0.98) 100%);
  border: 1px solid rgba(142, 190, 255, 0.28);
  box-shadow: 0 24px 60px rgba(0,0,0,0.32);
}

.start-menu__hero-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  object-position: center center;
}

@media (max-width: 980px) {
  .start-menu__stage--image {
    min-height: 360px;
  }
  .start-menu__hero-image {
    min-height: 360px;
  }
}


/* start menu rebuilt to match the generated menu-page layout.
   Full background artwork, left-side vertical menu, no Cisco branding. */
.start-menu__backdrop {
  background: radial-gradient(circle at center, rgba(16, 34, 68, 0.45), rgba(2, 7, 18, 0.82));
}

.start-menu__panel--home {
  position: relative;
  display: block;
  width: min(1360px, calc(100vw - 28px));
  max-width: 1360px;
  height: min(910px, calc(100vh - 28px));
  min-height: 720px;
  padding: 0;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(107, 176, 255, 0.3);
  box-shadow: 0 24px 72px rgba(0, 0, 0, 0.5);
}

.start-menu__stage,
.start-menu__stage--image {
  position: absolute;
  inset: 0;
  min-height: 0 !important;
  height: 100%;
  border-radius: 28px;
  overflow: hidden;
  border: none;
  box-shadow: none;
  background: #071426;
}

.start-menu__hero-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: cover;
  object-position: center center;
}

.start-menu__content {
  position: absolute;
  inset: 0;
  min-height: 0 !important;
  display: block;
  pointer-events: none;
}

.start-menu__pane {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: min(372px, 34vw);
  display: none;
  flex-direction: column;
  justify-content: flex-start;
  padding: 34px 22px 30px 22px;
  box-sizing: border-box;
  overflow-y: auto;
  background: linear-gradient(90deg, rgba(5, 14, 32, 0.86) 0%, rgba(5, 14, 32, 0.72) 72%, rgba(5, 14, 32, 0.0) 100%);
  pointer-events: auto;
}

.start-menu__pane.active {
  display: flex;
}

.start-menu__pane--main {
  align-items: flex-start;
}

.start-menu__eyebrow--hidden,
.start-menu__lead--hidden {
  display: none !important;
}

.start-menu__game-title {
  margin: 0 0 32px 10px !important;
  max-width: 280px;
  font-size: clamp(46px, 5vw, 64px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.06em !important;
  text-transform: uppercase;
  color: #f1f7ff;
  text-shadow: 0 0 18px rgba(90, 190, 255, 0.15);
}

.start-menu__main-actions--menu-page {
  display: grid;
  gap: 16px;
  width: 192px;
  margin-left: 0;
}

.start-menu__main-actions--menu-page .start-menu__button,
.start-menu__sub-actions .start-menu__button {
  width: 192px;
  min-height: 56px;
  justify-content: flex-start;
  padding-left: 26px;
  font-size: 18px;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #dff4ff;
  border-radius: 0 14px 14px 0;
  border: 1px solid rgba(74, 192, 255, 0.58);
  background: linear-gradient(180deg, rgba(8, 27, 50, 0.92), rgba(3, 20, 40, 0.86));
  box-shadow: 0 0 0 1px rgba(27, 121, 197, 0.22) inset, 0 0 20px rgba(58, 178, 255, 0.16);
}

.start-menu__main-actions--menu-page .start-menu__button::after,
.start-menu__sub-actions .start-menu__button::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -1px;
  bottom: -1px;
  width: 18px;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  background: linear-gradient(180deg, rgba(17, 72, 117, 0.9), rgba(26, 148, 220, 0.74));
  border-top-right-radius: 14px;
  border-bottom-right-radius: 14px;
}

.start-menu__main-actions--menu-page .start-menu__button--primary {
  background: linear-gradient(180deg, rgba(19, 88, 138, 0.94), rgba(4, 37, 67, 0.92));
  box-shadow: 0 0 24px rgba(72, 188, 255, 0.3), 0 0 0 1px rgba(84, 211, 255, 0.22) inset;
}

.start-menu__main-actions--menu-page .start-menu__button span {
  position: relative;
  z-index: 1;
}

.start-menu__section-head {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.start-menu__level-title {
  font-size: 28px;
  font-weight: 800;
  line-height: 1.05;
  color: #f1f7ff;
}

.start-menu__section-desc {
  margin: 6px 0 0;
  color: rgba(223, 238, 255, 0.82);
}

.start-menu__back-button {
  border: 1px solid rgba(115, 184, 255, 0.34);
  background: rgba(5, 22, 42, 0.88);
  color: #dceaff;
}

.start-menu__level-buttons {
  display: grid;
  gap: 10px;
}

.start-menu__level-button,
.start-menu__save-list,
.start-menu__controls-grid div {
  background: rgba(5, 17, 34, 0.84);
  border-color: rgba(104, 172, 255, 0.2);
}

.start-menu__save-empty {
  color: rgba(223, 238, 255, 0.72);
}

@media (max-width: 980px) {
  .start-menu__panel--home {
    width: calc(100vw - 18px);
    height: calc(100vh - 18px);
    min-height: 0;
  }
  .start-menu__pane {
    width: min(340px, 72vw);
    padding: 22px 16px 22px 16px;
  }
  .start-menu__game-title {
    max-width: 240px;
    font-size: clamp(40px, 8vw, 52px) !important;
    margin-left: 6px !important;
  }
  .start-menu__main-actions--menu-page .start-menu__button,
  .start-menu__sub-actions .start-menu__button {
    width: 176px;
    min-height: 52px;
    font-size: 16px;
  }
}


/* remove right arrow wedges from main menu buttons, including hover/focus states. */
.start-menu__main-actions--menu-page .start-menu__button::after,
.start-menu__main-actions--menu-page .start-menu__button:hover::after,
.start-menu__main-actions--menu-page .start-menu__button:focus-visible::after,
.start-menu__sub-actions .start-menu__button::after,
.start-menu__sub-actions .start-menu__button:hover::after,
.start-menu__sub-actions .start-menu__button:focus-visible::after {
  content: none !important;
  display: none !important;
}

.start-menu__main-actions--menu-page .start-menu__button,
.start-menu__main-actions--menu-page .start-menu__button:hover,
.start-menu__main-actions--menu-page .start-menu__button:focus-visible,
.start-menu__sub-actions .start-menu__button,
.start-menu__sub-actions .start-menu__button:hover,
.start-menu__sub-actions .start-menu__button:focus-visible {
  border-radius: 0 14px 14px 0 !important;
}


/* the rocket launch button is centered relative to the game field/canvas,
   not the whole browser viewport. JS updates these CSS variables from canvas.getBoundingClientRect(). */
#launchRocketButton.launch-rocket-button {
  position: fixed !important;
  left: var(--launch-field-center-x, 50vw) !important;
  right: auto !important;
  top: var(--launch-field-center-y, 50vh) !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: translate(-50%, -50%) !important;
  z-index: 2147483000 !important;
}


/* v829 PLAYER builds have no Ctrl+D developer interface. */

/* native/fullscreen console text selection and copy hardening. */
.shell.game-fullscreen-mode .terminal-overlay.open,
body.game-fullscreen-active .terminal-overlay.open {
  pointer-events: auto !important;
  -webkit-user-select: text !important;
  user-select: text !important;
}
.shell.game-fullscreen-mode .terminal-output,
.shell.game-fullscreen-mode .terminal-output *,
.shell.game-fullscreen-mode .terminal-split-console-text,
.shell.game-fullscreen-mode .terminal-split-console-text *,
body.game-fullscreen-active .terminal-output,
body.game-fullscreen-active .terminal-output *,
body.game-fullscreen-active .terminal-split-console-text,
body.game-fullscreen-active .terminal-split-console-text * {
  -webkit-user-select: text !important;
  user-select: text !important;
  cursor: text !important;
}
.terminal-split-console-text {
  -webkit-user-select: text !important;
  user-select: text !important;
  cursor: text !important;
}

/* P/fullscreen tablet console selection must behave like windowed mode. */
body.game-fullscreen-active,
.shell.game-fullscreen-mode,
.shell.game-fullscreen-mode * {
  -webkit-user-select: auto;
  user-select: auto;
}
.shell.game-fullscreen-mode canvas#game {
  -webkit-user-select: none !important;
  user-select: none !important;
}
.shell.game-fullscreen-mode .terminal-overlay.open,
body.game-fullscreen-active .terminal-overlay.open {
  position: fixed !important;
  inset: 0 !important;
  z-index: 20000 !important;
  pointer-events: auto !important;
}
.shell.game-fullscreen-mode .terminal-window,
.shell.game-fullscreen-mode .terminal-body,
.shell.game-fullscreen-mode .terminal-panel,
.shell.game-fullscreen-mode .terminal-console-surface,
.shell.game-fullscreen-mode .terminal-console-window,
.shell.game-fullscreen-mode .terminal-output,
.shell.game-fullscreen-mode .terminal-text,
.shell.game-fullscreen-mode .terminal-split-console-text,
body.game-fullscreen-active .terminal-window,
body.game-fullscreen-active .terminal-body,
body.game-fullscreen-active .terminal-panel,
body.game-fullscreen-active .terminal-console-surface,
body.game-fullscreen-active .terminal-console-window,
body.game-fullscreen-active .terminal-output,
body.game-fullscreen-active .terminal-text,
body.game-fullscreen-active .terminal-split-console-text {
  pointer-events: auto !important;
  -webkit-user-select: text !important;
  user-select: text !important;
}
.shell.game-fullscreen-mode .terminal-output::selection,
.shell.game-fullscreen-mode .terminal-text::selection,
.shell.game-fullscreen-mode .terminal-split-console-text::selection,
body.game-fullscreen-active .terminal-output::selection,
body.game-fullscreen-active .terminal-text::selection,
body.game-fullscreen-active .terminal-split-console-text::selection {
  background: rgba(127, 233, 255, 0.42) !important;
  color: #f7ffff !important;
}


/* remove the visible outer shell/card around the gameplay field.
   The normal game screen now has only the active canvas frame and a small
   bottom "Скачать лог" button. The wrapper still exists for layout/overlays,
   but it is visually transparent and no longer stretches as a third frame. */
body:not(.game-fullscreen-active) {
  overflow: hidden !important;
}
body:not(.game-fullscreen-active) .shell {
  width: auto !important;
  max-width: none !important;
  min-height: 100dvh !important;
  height: 100dvh !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
body:not(.game-fullscreen-active) .viewport-stage {
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body:not(.game-fullscreen-active) canvas#game {
  flex: 0 0 auto !important;
}

.rocket-panel--demo {
  padding: 18px;
  overflow: hidden;
}

.rocket-about-card {
  min-height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 340px);
  gap: 20px;
  align-items: stretch;
  padding: 10px 8px 14px;
}

.rocket-about-card__copy,
.rocket-about-card__telegram {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(98, 207, 255, 0.24);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(11, 35, 58, 0.92), rgba(4, 16, 30, 0.96)),
    repeating-linear-gradient(0deg, rgba(109, 219, 255, 0.035) 0 1px, transparent 1px 24px);
  box-shadow: inset 0 0 28px rgba(70, 184, 255, 0.055), 0 14px 28px rgba(0, 0, 0, 0.18);
}

.rocket-about-card__copy::before,
.rocket-about-card__telegram::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 112px;
  height: 3px;
  background: linear-gradient(90deg, #4ff0ff, #3b88ff, transparent);
  box-shadow: 0 0 14px rgba(79, 240, 255, 0.55);
}

.rocket-about-card__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: 24px 26px;
  text-align: left;
}

.rocket-about-card__eyebrow,
.rocket-about-card__telegram-label {
  color: #72eaff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.rocket-about-card__headline {
  max-width: 720px;
  color: #f5fbff;
  font-size: clamp(24px, 2.3vw, 36px);
  line-height: 1.08;
  font-weight: 900;
  text-shadow: 0 0 20px rgba(61, 182, 255, 0.15);
}

.rocket-about-card__lead {
  max-width: 760px;
  color: #d7edff;
  font-size: 17px;
  line-height: 1.48;
}

.rocket-about-card__plans {
  display: grid;
  gap: 10px;
  margin-top: 2px;
}

.rocket-about-plan {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px 14px;
  border: 1px solid rgba(95, 201, 255, 0.16);
  border-radius: 13px;
  background: rgba(3, 15, 28, 0.52);
}

.rocket-about-plan__index {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(83, 223, 255, 0.42);
  border-radius: 10px;
  color: #6eeeff;
  background: rgba(26, 111, 176, 0.14);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.rocket-about-plan__title {
  margin-bottom: 3px;
  color: #ffffff;
  font-weight: 850;
  font-size: 16px;
}

.rocket-about-plan__text {
  color: #bcd7e9;
  line-height: 1.4;
  font-size: 14px;
}

.rocket-about-card__cta {
  padding: 12px 14px;
  border-left: 3px solid #5ceaff;
  border-radius: 4px 11px 11px 4px;
  color: #f4fbff;
  background: linear-gradient(90deg, rgba(35, 151, 216, 0.18), rgba(35, 151, 216, 0.03));
  line-height: 1.42;
  font-weight: 700;
}

.rocket-about-card__slogan {
  color: rgba(141, 220, 255, 0.66);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.rocket-about-card__telegram {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 22px 20px;
  text-align: center;
}

.rocket-about-card__qr-wrap {
  width: min(290px, 100%);
  padding: 13px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow:
    0 0 0 1px rgba(123, 213, 255, 0.32),
    0 0 28px rgba(48, 154, 255, 0.12),
    0 16px 28px rgba(0, 0, 0, 0.28);
}

.rocket-about-card__qr {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: auto;
}

.rocket-about-card__scan {
  color: #ffffff;
  font-size: 17px;
  font-weight: 900;
}

.rocket-about-card__telegram-note {
  max-width: 280px;
  color: #b8d8eb;
  line-height: 1.4;
  font-size: 13px;
}

@media (max-width: 1040px) {
  .rocket-panel--demo {
    overflow: auto;
  }
  .rocket-about-card {
    grid-template-columns: 1fr;
  }
  .rocket-about-card__telegram {
    min-height: 360px;
  }
}


/* unified GameModal visual family. One DOM/state, three variants. */
.game-modal {
  position: fixed;
  inset: 0;
  z-index: 12500;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  pointer-events: auto;
}
.game-modal.open { display: flex; }
.game-modal__backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 24% 16%, rgba(125, 245, 183, 0.12), transparent 30%),
    radial-gradient(circle at 80% 84%, rgba(92, 231, 255, 0.10), transparent 32%),
    rgba(2, 6, 14, 0.42);
  backdrop-filter: blur(3px);
}
.game-modal__panel {
  position: relative;
  width: min(920px, calc(100vw - 32px));
  max-height: min(86vh, 980px);
  overflow: auto;
  border: 1px solid rgba(127, 190, 255, 0.30);
  border-radius: 26px;
  padding: 28px 30px 24px;
  background: linear-gradient(180deg, rgba(18, 33, 55, 0.90), rgba(6, 13, 25, 0.94));
  box-shadow: 0 34px 110px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.08);
}
.game-modal__scanline { display: none; }
.game-modal__topline { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.game-modal__eyebrow,
.game-modal__status,
.game-modal__hint {
  color: #7df5b7;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 900;
  font-size: 11px;
}
.game-modal__title {
  position: relative;
  margin: 9px 0 10px;
  color: #eef7ff;
  font-size: clamp(25px, 3.4vw, 36px);
  line-height: 1.08;
}
.game-modal__body { position: relative; color: #bfd4ee; font-size: 17px; line-height: 1.58; }
.game-modal__body p { margin: 0 0 10px; }
.game-modal__body p:last-child { margin-bottom: 0; }
.game-modal__media { display: none; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 18px; }
.game-modal__media.has-media { display: grid; }
.game-modal__figure { margin: 0; padding: 10px; border-radius: 18px; background: rgba(8,18,32,0.62); border: 1px solid rgba(163,205,255,0.18); }
.game-modal__image { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid rgba(255,255,255,0.12); }
.game-modal__caption { margin-top: 8px; color: #d7e7fb; font-size: 14px; line-height: 1.4; }
.game-modal__footer { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 22px; }
.game-modal__button {
  min-width: 126px;
  padding: 11px 20px;
  border-radius: 14px;
  border: 1px solid rgba(125,245,183,0.44);
  color: #eafff4;
  font-weight: 900;
  letter-spacing: 0.02em;
  background: linear-gradient(180deg, rgba(33,119,81,0.98), rgba(18,68,52,0.99));
  box-shadow: 0 10px 28px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.12);
  cursor: pointer;
}
.game-modal__button:hover { filter: brightness(1.08); }

/* Story retains the full-screen scenario briefing appearance. */
.game-modal--story { padding: 28px; }
.game-modal--story .game-modal__backdrop {
  background:
    radial-gradient(circle at 18% 14%, rgba(92,231,255,0.18), transparent 30%),
    radial-gradient(circle at 82% 74%, rgba(125,245,183,0.13), transparent 34%),
    rgba(2,8,19,0.52);
  backdrop-filter: blur(4px);
}
.game-modal--story .game-modal__panel {
  width: min(860px, calc(100vw - 40px));
  max-height: min(88vh, 920px);
  border-radius: 28px;
  border-color: rgba(108,220,255,0.42);
  padding: 24px 26px 22px;
  background: linear-gradient(180deg, rgba(13,29,53,0.94), rgba(5,12,26,0.96));
  box-shadow: 0 34px 120px rgba(0,0,0,0.54), 0 0 0 1px rgba(163,236,255,0.08) inset, 0 0 46px rgba(69,207,255,0.13);
}
.game-modal--story .game-modal__scanline {
  display: block;
  position: absolute;
  inset: 0;
  opacity: 0.18;
  pointer-events: none;
  background: linear-gradient(transparent 0 6px, rgba(127,222,255,0.22) 7px, transparent 8px), linear-gradient(90deg, transparent, rgba(122,222,255,0.14), transparent);
  background-size: 100% 9px, 100% 100%;
}
.game-modal--story .game-modal__eyebrow,
.game-modal--story .game-modal__status,
.game-modal--story .game-modal__hint { color: rgba(156,237,255,0.88); }
.game-modal--story .game-modal__title { margin: 18px 0 12px; color: #f2fbff; font-size: clamp(28px,4vw,42px); line-height: 1.04; text-shadow: 0 0 22px rgba(95,222,255,0.20); }
.game-modal--story .game-modal__body { color: rgba(220,238,255,0.93); font-size: 17px; line-height: 1.55; max-width: 790px; }
.game-modal--story .game-modal__checktitle { margin-top: 16px; margin-bottom: 8px; color: #a7f0ff; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; }
.game-modal--story .game-modal__checkitem { margin-bottom: 8px; padding: 8px 10px; border: 1px solid rgba(123,225,255,0.16); border-radius: 12px; background: rgba(5,18,34,0.34); font-size: 14px; line-height: 1.35; }
.game-modal--story .game-modal__footer { margin-top: 22px; padding-top: 14px; border-top: 1px solid rgba(143,222,255,0.16); }
.game-modal--alert .game-modal__backdrop {
  background: radial-gradient(circle at 20% 18%, rgba(255,89,40,0.18), transparent 32%), radial-gradient(circle at 78% 82%, rgba(255,200,84,0.12), transparent 34%), rgba(18,5,6,0.50);
}
.game-modal--alert .game-modal__panel {
  border-color: rgba(255,126,73,0.58);
  background: linear-gradient(180deg, rgba(50,21,23,0.94), rgba(15,8,13,0.96));
  box-shadow: 0 34px 120px rgba(0,0,0,0.56), 0 0 0 1px rgba(255,197,121,0.08) inset, 0 0 52px rgba(255,76,42,0.18);
}
.game-modal--alert .game-modal__scanline { background: linear-gradient(transparent 0 6px, rgba(255,155,88,0.22) 7px, transparent 8px), linear-gradient(90deg, transparent, rgba(255,124,70,0.16), transparent); background-size: 100% 9px, 100% 100%; }
.game-modal--alert .game-modal__eyebrow,
.game-modal--alert .game-modal__status,
.game-modal--alert .game-modal__hint { color: rgba(255,207,133,0.92); }
.game-modal--alert .game-modal__title { color: #fff2e3; text-shadow: 0 0 22px rgba(255,103,42,0.28); }
.game-modal--alert .game-modal__button { border-color: rgba(255,193,100,0.56); color: #fff5df; background: linear-gradient(180deg, rgba(169,65,38,0.98), rgba(98,31,24,0.99)); }

/* Dialogue keeps the speech bubble look but uses the same GameModal DOM/state. */
.game-modal--dialogue {
  inset: auto;
  z-index: 13000;
  width: min(420px, calc(100vw - 32px));
  padding: 0;
  transform: translate(-50%, calc(-100% - 12px));
}
.game-modal--dialogue.open { display: block; }
.game-modal--dialogue .game-modal__backdrop,
.game-modal--dialogue .game-modal__scanline,
.game-modal--dialogue .game-modal__topline,
.game-modal--dialogue .game-modal__media,
.game-modal--dialogue .game-modal__hint { display: none !important; }
.game-modal--dialogue .game-modal__panel {
  width: 100%;
  max-height: none;
  overflow: visible;
  padding: 12px 13px 11px;
  border-radius: 16px;
  border: 1px solid rgba(255,232,146,0.58);
  background: linear-gradient(180deg, rgba(24,37,55,0.94), rgba(10,17,29,0.96));
  color: #edf8ff;
  box-shadow: 0 18px 45px rgba(0,0,0,0.36), inset 0 1px 0 rgba(255,255,255,0.10);
}
.game-modal--dialogue .game-modal__panel::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 18px;
  height: 18px;
  transform: translateX(-50%) rotate(45deg);
  background: rgba(10,17,29,0.96);
  border-right: 1px solid rgba(255,232,146,0.48);
  border-bottom: 1px solid rgba(255,232,146,0.48);
}
.game-modal--dialogue .game-modal__title { margin: 0 0 5px; color: #ffe892; font-weight: 900; font-size: 13px; letter-spacing: 0.02em; }
.game-modal--dialogue .game-modal__body { color: rgba(226,240,255,0.94); font-size: 14px; line-height: 1.38; padding-right: 52px; }
.game-modal--dialogue .game-modal__body p { margin: 0; }
.game-modal--dialogue .game-modal__footer { position: static; margin: 0; padding: 0; border: 0; }
.game-modal--dialogue .game-modal__button { position: absolute; right: 10px; bottom: 9px; min-width: 38px; height: 26px; padding: 0 9px; border-radius: 9px; font-size: 12px; }

/* Tutorial variant intentionally inherits the base GameModal information-panel style. */
.game-modal--tutorial .game-modal__panel { width: min(920px, calc(100vw - 32px)); }

/* every mission-server tablet uses one large, centered primary task action. */
#serverGuiOverlay .gui-transfer-card > .gui-action-row {
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 18px;
}

#serverGuiOverlay #guiTransferButton {
  flex: 0 1 520px;
  width: min(520px, 86%);
  min-width: min(320px, 86%);
  min-height: 68px;
  padding: 17px 34px;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: 0.025em;
  text-align: center;
  border-radius: 20px;
  box-shadow: 0 0 0 1px rgba(145, 233, 255, 0.12), 0 12px 34px rgba(0, 0, 0, 0.24);
}

#serverGuiOverlay #guiTransferButton:disabled {
  opacity: 0.78;
}

/* v740 Rocket Network Builder ------------------------------------------------ */
body.rocket-builder-open { overflow: hidden; }
.rocket-builder {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  color: #e8f2ff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.rocket-builder.open { display: block; }
.rocket-builder__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 5, 13, 0.96);
}
.rocket-builder__name-input { width: 170px; min-height: 34px; padding: 7px 9px; }
.rocket-builder__saved-list { width: 165px; min-height: 34px; padding: 6px 8px; }
.rocket-builder__button { min-height: 34px; padding: 7px 10px; font-weight: 700; font-size: 12px; }
.rocket-builder__button--primary { border-color: rgba(79, 218, 255, .55); background: rgba(10, 80, 113, .82); }
.rocket-builder__catalog,
.rocket-builder__inspector,
.rocket-builder__workspace-shell { min-height: 0; }
.rocket-builder__catalog,
.rocket-builder__inspector { padding: 14px; overflow: auto; background: rgba(4, 10, 23, .94); }
.rocket-builder__catalog { border-right: 1px solid rgba(119, 183, 255, .14); }
.rocket-builder__inspector { border-left: 1px solid rgba(119, 183, 255, .14); }
.rocket-builder__section-note { margin: 6px 0 12px; font-size: 11px; line-height: 1.35; color: rgba(219, 234, 255, .58); }
.rocket-builder__catalog-list { display: grid; gap: 8px; }
.rocket-builder__catalog-card {
  padding: 10px;
  border: 1px solid rgba(112, 174, 242, .15);
  border-radius: 11px;
  background: rgba(10, 21, 42, .72);
}
.rocket-builder__catalog-card-head { display: flex; gap: 6px; align-items: baseline; justify-content: space-between; }
.rocket-builder__catalog-card-head strong { font-size: 12px; color: #fff; }
.rocket-builder__catalog-card-head span { font-size: 9px; color: #69d8ff; text-transform: uppercase; }
.rocket-builder__catalog-ports { margin: 5px 0 8px; font-size: 10px; color: rgba(219, 234, 255, .58); }
.rocket-builder__workspace-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background:
    linear-gradient(rgba(85, 150, 205, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(85, 150, 205, .045) 1px, transparent 1px),
    #030814;
  background-size: 28px 28px;
}
.rocket-builder__workspace-toolbar,
.rocket-builder__status {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 12px;
  font-size: 11px;
  color: rgba(220, 236, 255, .7);
  background: rgba(6, 14, 29, .92);
}
.rocket-builder__workspace-toolbar { border-bottom: 1px solid rgba(104, 174, 242, .12); }
.rocket-builder__status { border-top: 1px solid rgba(104, 174, 242, .12); justify-content: flex-start; }
.rocket-builder__status[data-tone="success"] { color: #9df6ce; }
.rocket-builder__status[data-tone="error"] { color: #ff9ba8; }
.rocket-builder__workspace { position: relative; min-height: 0; overflow: hidden; outline: none; }
.rocket-builder__links { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rocket-builder__link { stroke: rgba(86, 217, 255, .9); stroke-width: 2.2; filter: drop-shadow(0 0 5px rgba(86, 217, 255, .35)); }
.scheme-link--power .rocket-builder__link { stroke: rgba(255, 214, 99, .92); stroke-dasharray: 6 4; filter: drop-shadow(0 0 5px rgba(255, 214, 99, .25)); }
.rocket-builder__link-label { fill: rgba(222, 240, 255, .82); font-size: 9px; text-anchor: middle; paint-order: stroke; stroke: #030814; stroke-width: 4px; stroke-linejoin: round; }
.rocket-builder__empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(211, 231, 255, .42);
  font-size: 14px;
  pointer-events: none;
}
.rocket-builder-node {
  position: absolute;
  z-index: 2;
  width: 184px;
  height: 92px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto 1fr;
  gap: 2px 8px;
  align-content: center;
  padding: 10px 11px;
  text-align: left;
  border: 1px solid rgba(98, 165, 235, .38);
  border-radius: 13px;
  background: linear-gradient(145deg, rgba(15, 33, 63, .98), rgba(6, 16, 33, .98));
  color: #eaf4ff;
  cursor: grab;
  user-select: none;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .26);
}
.rocket-builder-node:active { cursor: grabbing; }
.rocket-builder-node.selected { border-color: rgba(85, 225, 255, .88); box-shadow: 0 0 0 1px rgba(85, 225, 255, .24), 0 10px 28px rgba(0, 0, 0, .34); }
.rocket-builder__inspector-empty { margin-top: 12px; color: rgba(220, 235, 255, .5); font-size: 12px; }
.rocket-builder__device-head { display: flex; gap: 8px; justify-content: space-between; align-items: flex-start; margin: 10px 0 8px; }
.rocket-builder__device-head strong { display: block; color: #fff; font-size: 15px; }
.rocket-builder__device-head span { display: block; margin-top: 2px; color: rgba(220, 235, 255, .55); font-size: 10px; }
.rocket-builder__icon-button { min-height: 28px; padding: 5px 8px; font-size: 10px; border-color: rgba(255, 117, 135, .28); }
.rocket-builder__capabilities { display: flex; flex-wrap: wrap; gap: 4px; max-height: 60px; overflow: auto; }
.rocket-builder__capabilities span { padding: 3px 5px; border: 1px solid rgba(94, 189, 235, .17); border-radius: 6px; background: rgba(10, 28, 50, .72); color: rgba(172, 224, 255, .75); font-size: 8px; }
.rocket-builder__subhead { margin: 13px 0 6px; color: rgba(231, 241, 255, .82); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.rocket-builder__port-list { display: grid; gap: 4px; max-height: 190px; overflow: auto; padding-right: 2px; }
.rocket-builder__port-row { display: flex; align-items: center; gap: 7px; justify-content: space-between; padding: 6px 7px; border: 1px solid rgba(105, 169, 232, .12); border-radius: 8px; background: rgba(8, 18, 35, .78); }
.rocket-builder__port-row.pending { border-color: rgba(92, 225, 255, .65); background: rgba(10, 58, 79, .45); }
.rocket-builder__port-meta { min-width: 0; }
.rocket-builder__port-meta strong { display: block; font-size: 10px; color: #eef6ff; }
.rocket-builder__port-meta span { display: block; max-width: 165px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; font-size: 8px; color: rgba(218, 234, 255, .55); }
.rocket-builder__port-action { flex: 0 0 auto; min-height: 25px; padding: 4px 6px; font-size: 9px; }
.rocket-builder__cli-blocked { padding: 10px; border: 1px solid rgba(255, 209, 95, .18); border-radius: 9px; background: rgba(65, 49, 12, .22); color: #f8dda0; font-size: 11px; }
@media (max-width: 1180px) {
  .rocket-builder__catalog { padding: 10px; }
  .rocket-builder__inspector { padding: 10px; }
}

/* v741 Rocket Network Builder — Rocket Tablet visual integration ------------ */
.rocket-builder__backdrop {
  background:
    radial-gradient(circle at 50% 15%, rgba(29, 94, 133, .18), transparent 34%),
    rgba(1, 5, 12, .975);
  backdrop-filter: blur(10px);
}
.rocket-builder__button--primary {
  color: #eaffff;
  border-color: rgba(80, 224, 255, .58);
  background: linear-gradient(180deg, rgba(11, 102, 131, .9), rgba(8, 62, 88, .9));
}
.rocket-builder__catalog,
.rocket-builder__inspector {
  background: linear-gradient(180deg, rgba(5, 15, 28, .82), rgba(3, 10, 20, .88));
}
.rocket-builder__catalog { border-right-color: rgba(117, 220, 255, .12); }
.rocket-builder__inspector { border-left-color: rgba(117, 220, 255, .12); }
.rocket-builder__catalog-card {
  border-color: rgba(112, 210, 245, .14);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(12, 30, 50, .78), rgba(5, 17, 31, .82));
}
.rocket-builder__catalog-device-row { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 9px; }
.rocket-builder__catalog-card-copy { min-width: 0; }
.rocket-builder__catalog-symbol { width: 44px; height: 44px; }
.rocket-builder__device-symbol-svg { display: block; width: 100%; height: 100%; overflow: visible; color: #eaffff; }
.rocket-builder__workspace-shell {
  background:
    radial-gradient(circle at 50% 42%, rgba(26, 91, 122, .12), transparent 40%),
    linear-gradient(rgba(85, 150, 205, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(85, 150, 205, .045) 1px, transparent 1px),
    #020913;
  background-size: auto, 28px 28px, 28px 28px, auto;
}
.rocket-builder__workspace-toolbar,
.rocket-builder__status {
  color: rgba(190, 228, 244, .72);
  background: rgba(4, 14, 25, .82);
}
.rocket-builder__workspace {
  box-shadow: inset 0 0 60px rgba(31, 107, 142, .06);
}
.rocket-builder__links .scheme-link-line {
  stroke: rgba(133, 255, 155, .78);
  stroke-width: 5;
  stroke-linecap: round;
  filter: drop-shadow(0 0 6px rgba(133, 255, 155, .13));
}
.rocket-builder__links .scheme-link--power .scheme-link-line {
  stroke: rgba(255, 188, 76, .82);
  stroke-width: 4;
  stroke-dasharray: 3 9;
  filter: drop-shadow(0 0 6px rgba(255, 188, 76, .34));
}
.rocket-builder__link-label {
  fill: #c8f3ff;
  font: 800 10px/1 "Segoe UI", Arial, sans-serif;
  stroke: rgba(2, 9, 19, .94);
  stroke-width: 4px;
}
.rocket-builder-node {
  width: 184px;
  height: 92px;
  display: block;
  padding: 10px 9px 8px 78px;
  border-radius: 15px;
  border: 1px solid rgba(132, 220, 255, .20);
  background:
    radial-gradient(circle at 24% 48%, rgba(58, 189, 226, .10), transparent 34%),
    linear-gradient(145deg, rgba(9, 27, 45, .97), rgba(4, 14, 26, .98));
  box-shadow: 0 12px 28px rgba(0,0,0,.31), inset 0 1px rgba(255,255,255,.035);
  overflow: visible;
}
.rocket-builder-node.selected {
  border-color: rgba(255, 231, 143, .74);
  box-shadow: 0 0 0 1px rgba(255, 231, 143, .16), 0 0 20px rgba(255, 224, 120, .07), 0 12px 30px rgba(0,0,0,.36);
}
.rocket-builder__port-row {
  border-color: rgba(107, 204, 239, .12);
  background: rgba(5, 18, 31, .76);
}
.rocket-builder__port-row.pending {
  border-color: rgba(94, 230, 255, .66);
  box-shadow: 0 0 12px rgba(69, 219, 255, .07);
}

/* v742 Rocket Builder — true Rocket Tablet mode + campaign isolation -------- */
.rocket-builder.open {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rocket-builder__backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 4%, rgba(75, 170, 235, .13), transparent 38%),
    rgba(2, 7, 14, .90);
  backdrop-filter: blur(8px);
}
.rocket-builder__tablet {
  position: relative;
  z-index: 1;
  width: min(1220px, calc(100vw - 24px));
  height: min(780px, calc(100vh - 20px));
  min-height: 0 !important;
  max-height: none !important;
  grid-template-rows: auto auto auto minmax(0, 1fr) !important;
}
.rocket-builder__titlebar {
  min-height: 64px;
}
.rocket-builder__titlebar > div:first-child {
  min-width: 230px;
}
.rocket-builder__titlebar .terminal-status {
  font-size: 11px;
}
.rocket-builder__tabs {
  flex: 0 0 auto;
}
.rocket-builder__projectbar {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(137, 205, 255, .14);
  background: rgba(5, 14, 25, .92);
  overflow-x: auto;
  scrollbar-width: thin;
}
.rocket-builder__projectbar .rocket-builder__name-input { flex: 0 0 178px; }
.rocket-builder__projectbar .rocket-builder__saved-list { flex: 0 0 170px; }
.rocket-builder__projectbar .rocket-builder__button { flex: 0 0 auto; min-height: 30px; padding: 5px 9px; }
.rocket-builder__terminal-body {
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.rocket-builder__panel-section.open {
  height: 100%;
  min-height: 0;
}
.rocket-builder__scheme-layout {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: 218px minmax(420px, 1fr) 270px;
  gap: 10px;
  padding: 10px 12px 12px;
}
.rocket-builder__scheme-layout > .rocket-panel {
  min-height: 0;
  margin: 0;
  border: 1px solid rgba(132, 220, 255, .18);
  border-radius: 14px;
  background: rgba(4, 14, 24, .66);
  overflow: hidden;
}
.rocket-builder__catalog,
.rocket-builder__inspector {
  padding: 10px;
  overflow: auto;
  border: 1px solid rgba(132, 220, 255, .18) !important;
}
.rocket-builder__catalog-list { gap: 7px; }
.rocket-builder__catalog-card {
  padding: 7px;
  border-radius: 10px;
  background: rgba(4, 17, 28, .72);
}
.rocket-builder__catalog-device-row { gap: 7px; }
.rocket-builder__catalog-symbol {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(45, 217, 255, .44);
  background: rgba(10, 30, 46, .94);
  flex: 0 0 auto;
}
.rocket-builder__catalog-card-head { display: block; }
.rocket-builder__catalog-card-head strong { display: block; font-size: 11px; }
.rocket-builder__catalog-card-head span { display: block; margin-top: 2px; font-size: 8px; }
.rocket-builder__catalog-ports { margin: 3px 0 5px; font-size: 8px; }
.rocket-builder__workspace-shell {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: rgba(3, 12, 20, .72);
}
.rocket-builder__workspace {
  position: relative;
  min-height: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(rgba(45, 217, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 217, 255, .035) 1px, transparent 1px),
    radial-gradient(circle at 50% 45%, rgba(23, 213, 255, .10), rgba(3, 12, 20, .78) 64%);
  background-size: 34px 34px, 34px 34px, auto;
}
.rocket-builder__workspace-toolbar,
.rocket-builder__status {
  min-height: 31px;
  padding: 0 10px;
  font-size: 10px;
}
.rocket-builder__links .scheme-link-line {
  stroke-width: 4;
}
.rocket-builder__link-label {
  font-size: 9px;
}
/* Builder devices intentionally mirror the Rocket Tablet scheme composition:
   status pill -> round device node/icon -> hostname label. */
.rocket-builder-node {
  position: absolute;
  z-index: 2;
  width: 150px;
  height: 128px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #eaffff;
  cursor: grab;
  user-select: none;
  overflow: visible;
}
.rocket-builder-node:hover,
.rocket-builder-node.selected {
  background: transparent;
  border: 0;
  box-shadow: none;
}
.rocket-builder__device-symbol-svg { width: 54px; height: 54px; overflow: visible; }
.rocket-builder__inspector .rocket-panel__title,
.rocket-builder__catalog .rocket-panel__title { margin-bottom: 7px; }
.rocket-builder__port-list { max-height: none; }
.rocket-builder__port-meta span { max-width: 135px; }

/* Console tab: fixed left console + fixed right notebook, matching Rocket Tablet. */
.rocket-builder__panel-section#rocketBuilderPanelCli.open {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  padding: 10px 12px 12px;
}
#rocketBuilderNotebook {
  width: 100%;
  height: 100%;
  min-height: 0;
  border-radius: 0;
}
.rocket-builder__cli-blocked {
  margin: 12px;
}
@media (max-width: 980px) {
  .rocket-builder__scheme-layout { grid-template-columns: 180px minmax(360px, 1fr) 230px; gap: 7px; padding: 7px; }
  .rocket-builder__catalog, .rocket-builder__inspector { padding: 7px; }
  .rocket-builder__projectbar { padding: 6px 8px; }
  .rocket-builder__tablet { width: calc(100vw - 10px); height: calc(100vh - 10px); }
}

/* v743 builder interaction parity */
.rocket-builder__catalog { display:flex; flex-direction:column; overflow:hidden !important; min-height:0; }
.rocket-builder__catalog-list { min-height:0; overflow-y:auto; overflow-x:hidden; padding-right:3px; overscroll-behavior:contain; scrollbar-gutter:stable; }
.rocket-builder__catalog-card { cursor:grab; user-select:none; touch-action:none; }
.rocket-builder__catalog-card:active { cursor:grabbing; }
.rocket-builder__catalog-drag-hint { margin-top:4px; font-size:8px; color:rgba(159,232,255,.7); }
.rocket-builder__catalog-drag-ghost { position:fixed; z-index:100000; width:210px; pointer-events:none; opacity:.84; box-shadow:0 12px 34px rgba(0,0,0,.45); }
.rocket-builder__workspace--drop-target { box-shadow: inset 0 0 0 2px rgba(85,225,255,.72), inset 0 0 38px rgba(45,217,255,.12); }
.rocket-builder__panel-section#rocketBuilderPanelCli.open { grid-template-rows:auto minmax(0,1fr); }

/* v743 Rocket Builder — in-game console parity + authoring interactions. */
.rocket-builder__catalog {
  display: flex;
  flex-direction: column;
  overflow: hidden !important;
}
.rocket-builder__catalog-list {
  display: grid;
  gap: 7px;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  padding-right: 3px;
}
.rocket-builder__catalog-card {
  cursor: grab;
  user-select: none;
  touch-action: none;
}
.rocket-builder__catalog-card:active { cursor: grabbing; }
.rocket-builder__catalog-drag-hint {
  margin-top: 5px;
  color: rgba(155, 232, 255, .72);
  font-size: 9px;
  text-align: center;
}
.rocket-builder__catalog-drag-ghost {
  position: fixed;
  z-index: 10000;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 230px;
  padding: 7px 10px;
  border: 1px solid rgba(126, 244, 255, .72);
  border-radius: 11px;
  background: rgba(4, 17, 28, .96);
  color: #eaffff;
  box-shadow: 0 10px 28px rgba(0,0,0,.42);
  pointer-events: none;
}
.rocket-builder__catalog-drag-ghost[hidden] { display: none !important; }
.rocket-builder__catalog-drag-ghost-symbol { width: 46px; height: 46px; flex: 0 0 auto; }
.rocket-builder__workspace--drop-target {
  box-shadow: inset 0 0 0 2px rgba(126, 244, 255, .50), inset 0 0 40px rgba(45, 217, 255, .08);
}

/* Device nodes are rendered by the exact Rocket Tablet scheme renderer. */
.rocket-builder-node {
  width: 150px;
  height: 128px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: grab;
  touch-action: none;
  overflow: visible;
}
.rocket-builder-node:active { cursor: grabbing; }
.rocket-builder-node__svg {
  display: block;
  width: 150px;
  height: 128px;
  overflow: visible;
  pointer-events: none;
}
.rocket-builder-node:hover .scheme-device-node {
  stroke: rgba(255, 231, 143, .90);
  stroke-width: 3px;
}

/* Console tab uses the same terminal-* layout/styles as the in-game Rocket Tablet. */
.rocket-builder__panel-section#rocketBuilderPanelCli.open {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  height: 100%;
  min-height: 0;
  padding: 0 !important;
}
#rocketBuilderPanelCli .terminal-console-toolbar,
#rocketBuilderPanelCli .terminal-console-surface,
#rocketBuilderPanelCli .terminal-console-window,
#rocketBuilderPanelCli .terminal-output,
#rocketBuilderPanelCli .terminal-inline-row,
#rocketBuilderPanelCli .terminal-split-notebook,
#rocketBuilderPanelCli .terminal-split-notebook__textarea {
  /* no builder-specific visual overrides: inherit the game console rules */
}
.rocket-builder__cli-blocked { margin: 12px; }
.rocket-builder__catalog-list { flex: 1 1 auto; }

/* v743 Rocket Builder — exact game console parity + drag authoring + text-input isolation */

/* v766 localization selector: language lives in the main menu, top-right. */
.start-menu__language-switch {
  position: absolute;
  top: 20px;
  right: 22px;
  z-index: 12;
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(107, 176, 255, 0.34);
  border-radius: 12px;
  background: rgba(4, 14, 29, 0.88);
  pointer-events: auto;
}
.start-menu__language-button {
  min-width: 42px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: rgba(223, 238, 255, 0.72);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  cursor: pointer;
}
.start-menu__language-button:hover,
.start-menu__language-button:focus-visible {
  color: #ffffff;
  border-color: rgba(91, 193, 255, 0.44);
  outline: none;
}
.start-menu__language-button.active,
.start-menu__language-button[aria-pressed="true"] {
  color: #ffffff;
  border-color: rgba(91, 193, 255, 0.64);
  background: rgba(24, 97, 153, 0.72);
  box-shadow: 0 0 18px rgba(65, 185, 255, 0.18);
}
@media (max-width: 680px) {
  .start-menu__language-switch { top: 12px; right: 12px; }
  .start-menu__language-button { min-width: 38px; height: 32px; padding: 0 8px; }
}

/* v824 role visibility: role-gating is independent from start-menu panel state. */
[data-admin-only][hidden],
[data-player-only][hidden],
[data-required-role][data-role-allowed="false"] { display: none !important; }

.start-menu__admin-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 8px 0 4px;
  padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: rgba(5, 15, 35, .72);
}

.admin-settings { display: grid; gap: 16px; padding: 4px 2px 12px; }
.admin-settings__card {
  padding: 16px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  background: rgba(4, 12, 28, .76);
}
.admin-settings__title { font-size: 18px; font-weight: 800; margin-bottom: 8px; }
.admin-settings__label,
.admin-settings__meta { font-size: 13px; opacity: .86; }
.admin-settings__value { margin-top: 6px; font: 700 15px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.admin-settings__description { margin: 0 0 14px; opacity: .82; line-height: 1.45; }
.admin-settings__file-label { display: block; margin-bottom: 7px; font-weight: 700; }
.admin-settings__file { width: 100%; margin-bottom: 12px; }
.admin-settings__meta { margin-top: 6px; overflow-wrap: anywhere; }
.admin-settings__meta code { font-size: 11px; }
.admin-settings__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.admin-settings__status { min-height: 22px; margin-top: 12px; font-size: 13px; }
.admin-settings__status[data-tone="error"] { font-weight: 700; }
.admin-settings__status[data-tone="success"] { font-weight: 700; }

/* v822 responsive viewport + separated ADMIN/PLAYER interface architecture */
:root {
  --gne-viewport-w: 100vw;
  --gne-viewport-h: 100dvh;
  --gne-canvas-w: 1280px;
  --gne-canvas-h: 720px;
}

html, body {
  width: 100%;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
}

body:not(.game-fullscreen-active) .shell,
body:not(.game-fullscreen-active) .viewport-stage {
  width: var(--gne-viewport-w) !important;
  height: var(--gne-viewport-h) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
}

body:not(.game-fullscreen-active) canvas#game,
.shell.game-fullscreen-mode canvas#game {
  width: var(--gne-canvas-w) !important;
  height: var(--gne-canvas-h) !important;
  box-sizing: border-box;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: clamp(0px, 1.2vw, 18px);
}

.start-menu {
  padding: 10px;
  overflow: hidden;
}

.start-menu__panel--home {
  width: min(1360px, calc(100vw - 20px)) !important;
  height: min(910px, calc(100dvh - 20px)) !important;
  min-height: 0 !important;
  max-height: calc(100dvh - 20px) !important;
}

.start-menu__pane {
  max-height: 100%;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.start-menu__language-switch {
  position: fixed !important;
  top: max(10px, env(safe-area-inset-top)) !important;
  right: max(12px, env(safe-area-inset-right)) !important;
  left: auto !important;
  bottom: auto !important;
  align-items: center;
  flex-wrap: nowrap;
  z-index: 1000;
}

.start-menu__language-label {
  padding: 0 6px 0 4px;
  color: rgba(223, 238, 255, .82);
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.role-interface { width: 100%; }
.role-interface[hidden] { display: none !important; }

.player-auth-gate,
.player-authenticated-home {
  width: min(300px, 100%);
}

.player-auth-gate__title {
  margin: 0 0 8px 8px;
  font-size: 18px;
  font-weight: 800;
  color: #f1f7ff;
}

.player-auth-gate__description {
  margin: 0 8px 14px;
  color: rgba(223, 238, 255, .82);
  font-size: 13px;
  line-height: 1.45;
}

.player-auth-status {
  min-height: 20px;
  margin: 10px 8px 0;
  font-size: 12px;
  line-height: 1.4;
  color: rgba(223, 238, 255, .82);
}
#playerSaveHydrationNotice[hidden], #playerRetrySaveHydrationBtn[hidden] { display: none !important; }
.player-auth-status[data-tone="error"] { color: #ffb3c0; font-weight: 700; }
.player-auth-status[data-tone="success"] { color: #9affc7; font-weight: 700; }

.player-auth-link {
  justify-self: center;
  border: 0;
  background: transparent;
  color: #9ed5ff;
  padding: 4px 8px;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.player-auth-link:hover, .player-auth-link:focus-visible { color: #d8efff; }

.player-auth-form {
  display: grid;
  gap: 13px;
  width: 100%;
}
.player-auth-form label {
  display: grid;
  gap: 6px;
  color: #dceaff;
  font-size: 13px;
  font-weight: 700;
}
.player-auth-form input {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(107, 176, 255, .34);
  border-radius: 11px;
  background: rgba(4, 14, 29, .9);
  color: #f5fbff;
  padding: 9px 11px;
  outline: none;
}
.player-auth-form input:focus {
  border-color: rgba(91, 193, 255, .72);
  box-shadow: 0 0 0 3px rgba(65, 185, 255, .12);
}

.player-account-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 14px 0;
  padding: 10px 10px;
  border: 1px solid rgba(107, 176, 255, .24);
  border-radius: 13px;
  background: rgba(4, 14, 29, .76);
}
.player-account-summary__label { font-size: 11px; opacity: .72; }
.player-account-summary__name { margin-top: 3px; font-weight: 800; overflow-wrap: anywhere; }
.start-menu__button--compact { min-width: 0 !important; width: auto !important; min-height: 36px !important; padding: 7px 10px !important; font-size: 12px !important; text-transform: none !important; border-radius: 10px !important; }

.admin-settings__tabs {
  display: flex;
  gap: 8px;
  margin: 0 0 14px;
}
.admin-settings__tab {
  flex: 1 1 0;
  min-width: 0;
  padding: 9px 8px;
  font-size: 12px;
  font-weight: 800;
}
.admin-settings__tab.active {
  border-color: rgba(91, 193, 255, .72);
  background: rgba(24, 97, 153, .72);
}
.admin-settings__section { display: none; }
.admin-settings__section.active { display: block; }
.admin-settings__section[hidden] { display: none !important; }
.admin-settings__metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.admin-settings__metric-grid .admin-settings__card { min-width: 0; }
.admin-settings__metric {
  margin-top: 7px;
  font: 800 19px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  overflow-wrap: anywhere;
}
.admin-users-table-wrap { overflow: auto; max-height: 290px; }
.admin-users-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.admin-users-table th,
.admin-users-table td { padding: 8px 6px; text-align: left; border-bottom: 1px solid rgba(255,255,255,.10); vertical-align: top; }
.admin-users-table th { color: rgba(223,238,255,.7); font-weight: 800; }

/* The persistent ADMIN banner was intentionally removed in v822. The label exists only inside the ADMIN menu controls. */
@media (max-height: 760px) {
  .start-menu__panel--home { height: calc(100dvh - 12px) !important; max-height: calc(100dvh - 12px) !important; }
  .start-menu__pane { padding-top: 18px; padding-bottom: 16px; }
  .start-menu__game-title { margin-bottom: 18px !important; font-size: clamp(34px, 5vw, 50px) !important; }
  .start-menu__main-actions--menu-page { gap: 9px; }
  .start-menu__main-actions--menu-page .start-menu__button,
  .start-menu__sub-actions .start-menu__button { min-height: 42px; font-size: 14px; }
  .start-menu__language-switch { top: 7px !important; right: 8px !important; }
}

@media (max-width: 720px) {
  .start-menu__pane { width: min(360px, 88vw) !important; }
  .admin-settings__metric-grid { grid-template-columns: 1fr; }
  .start-menu__language-label { font-size: 12px; }
}


/* v824 admin logs table */
.admin-logs-table-wrap { overflow: auto; max-height: 330px; }
.admin-logs-table td:last-child { white-space: nowrap; }
.admin-logs-action { min-width: 0 !important; width: auto !important; min-height: 30px !important; padding: 5px 8px !important; margin-right: 6px; font-size: 11px !important; text-transform: none !important; }


/* v828 responsive full-viewport menu + predecoded background ---------------- */
.start-menu { padding: 0 !important; inset: 0; width: 100vw; height: 100dvh; }
.start-menu__panel--home {
  width: 100vw !important; max-width: none !important;
  height: 100dvh !important; max-height: none !important; min-height: 0 !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}
.start-menu__stage, .start-menu__stage--image, .start-menu__hero-image { border-radius: 0 !important; }
.start-menu__hero-image { opacity: 0; visibility: hidden; }
html.gne-start-bg-ready .start-menu__hero-image { opacity: 1; visibility: visible; }
.start-menu__pane {
  width: clamp(310px, 24vw, 410px) !important;
  padding: clamp(26px, 4vh, 54px) clamp(18px, 2.2vw, 34px) clamp(22px, 3vh, 40px) !important;
}
.start-menu__game-title { font-size: clamp(38px, 3.2vw, 58px) !important; max-width: 300px; }
.start-menu__main-actions--menu-page { width: clamp(178px, 12vw, 216px); gap: clamp(9px, 1.2vh, 14px); }
.start-menu__main-actions--menu-page .start-menu__button,
.start-menu__sub-actions .start-menu__button {
  width: 100%; min-height: clamp(42px, 5.2vh, 54px); font-size: clamp(14px, .95vw, 18px);
}
@media (min-width: 2200px) {
  .start-menu__pane { width: 410px !important; }
  .start-menu__game-title { font-size: 58px !important; }
  .start-menu__main-actions--menu-page { width: 216px; }
  .start-menu__main-actions--menu-page .start-menu__button,
  .start-menu__sub-actions .start-menu__button { min-height: 54px; font-size: 18px; }
}

/* v828 ADMIN Management uses the same full Rocket Tablet shell as Builder. */
.admin-management { display: none; position: fixed; inset: 0; z-index: 9995; align-items: center; justify-content: center; }
.admin-management.open { display: flex; }
.admin-management__backdrop { position: absolute; inset: 0; background: radial-gradient(circle at 50% 4%, rgba(75,170,235,.13), transparent 38%), rgba(2,7,14,.90); backdrop-filter: blur(8px); }
.admin-management__tablet {
  position: relative; z-index: 1;
  width: min(1220px, calc(100vw - 24px)); height: min(780px, calc(100dvh - 20px));
  min-height: 0 !important; max-height: none !important;
  display: grid !important; grid-template-rows: auto minmax(0,1fr) !important;
}
.admin-management__titlebar { min-height: 64px; }
.admin-management__content { position: relative; z-index: 2; min-height: 0; overflow: hidden; padding: 10px 12px 12px; display: grid; grid-template-rows: auto minmax(0,1fr); gap: 10px; }
.admin-management__content .admin-settings__tabs { margin: 0; position: relative; z-index: 3; }
.admin-management__content .admin-settings { min-height: 0; overflow: auto; padding-right: 4px; }
.admin-management__content .admin-settings__section.active { min-height: 0; }
.admin-management__content .admin-settings__card { background: rgba(4,14,24,.72); border: 1px solid rgba(132,220,255,.18); border-radius: 14px; padding: 12px; margin-bottom: 10px; }
body.admin-management-open { overflow: hidden; }
@media (max-width: 980px) { .admin-management__tablet { width: calc(100vw - 10px); height: calc(100dvh - 10px); } }

/* v828 active-session handoff prompt. */
.player-session-conflict { margin-top: 12px; padding: 12px; border: 1px solid rgba(255,190,96,.48); border-radius: 12px; background: rgba(48,29,7,.88); color: #fff2d2; }
.player-session-conflict__title { font-weight: 900; font-size: 14px; }
.player-session-conflict p { margin: 7px 0 11px; font-size: 12px; line-height: 1.45; }
.player-session-conflict__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.player-session-conflict__actions .start-menu__button { width: 100% !important; min-height: 38px !important; padding: 7px 9px !important; font-size: 12px !important; text-transform: none !important; border-radius: 9px !important; }

.start-menu__hero-picture { display:block; width:100%; height:100%; }


/* v829 PLAYER Settings tablet + campaign access gate. */
.player-settings { display: none; position: fixed; inset: 0; z-index: 9996; align-items: center; justify-content: center; }
.player-settings.open { display: flex; }
.player-settings__backdrop { position: absolute; inset: 0; background: radial-gradient(circle at 50% 4%, rgba(75,170,235,.13), transparent 38%), rgba(2,7,14,.90); backdrop-filter: blur(8px); }
.player-settings__tablet { position: relative; z-index: 1; width: min(980px, calc(100vw - 24px)); height: min(720px, calc(100dvh - 20px)); min-height: 0 !important; max-height: none !important; display: grid !important; grid-template-rows: auto minmax(0,1fr) !important; }
.player-settings__titlebar { min-height: 64px; }
.player-settings__content { position: relative; z-index: 2; min-height: 0; overflow: auto; padding: 12px; }
.player-settings__field { display: grid; gap: 7px; margin-top: 12px; color: #dceaff; font-size: 13px; font-weight: 800; }
.player-settings__field select { width: min(360px, 100%); min-height: 42px; border: 1px solid rgba(107,176,255,.34); border-radius: 11px; background: rgba(4,14,29,.92); color: #f5fbff; padding: 8px 10px; font: inherit; }
.player-settings__controls { margin-top: 10px; }
body.player-settings-open { overflow: hidden; }

.player-campaign-gate { margin: 0 0 14px; padding: 13px; border: 1px solid rgba(255,196,89,.48); border-radius: 13px; background: rgba(42,26,7,.88); color: #fff2d2; }
.player-campaign-gate__title { font-size: 15px; font-weight: 900; }
.player-campaign-gate__description { margin: 6px 0 11px; font-size: 12px; line-height: 1.45; color: rgba(255,242,210,.86); }
.player-campaign-gate__form { display: grid; gap: 8px; }
.player-campaign-gate__form input { width: 100%; min-height: 42px; border: 1px solid rgba(255,196,89,.42); border-radius: 10px; background: rgba(5,12,22,.92); color: #fff; padding: 8px 10px; font: 700 13px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform: uppercase; }
.player-campaign-gate__form .start-menu__button { width: 100% !important; min-height: 40px !important; }
.admin-promocode-current code { user-select: all; font-size: 15px; color: #f5fbff; }

@media (max-width: 980px) {
  .player-settings__tablet { width: calc(100vw - 10px); height: calc(100dvh - 10px); }
  .admin-settings__tabs { overflow-x: auto; }
  .admin-settings__tab { flex: 0 0 auto; min-width: 112px; }
}

/* v837: Continue stays visibly unavailable until a real save exists. */
.start-menu__main-actions--menu-page .start-menu__button:disabled,
.start-menu__sub-actions .start-menu__button:disabled {
  opacity: 0.38 !important;
  filter: saturate(0.30) brightness(0.78);
  color: rgba(198, 214, 230, 0.68) !important;
  border-color: rgba(104, 139, 170, 0.24) !important;
  background: linear-gradient(180deg, rgba(20, 31, 43, 0.72), rgba(11, 19, 29, 0.72)) !important;
  box-shadow: none !important;
  cursor: default !important;
}
.start-menu__main-actions--menu-page .start-menu__button:disabled:hover,
.start-menu__main-actions--menu-page .start-menu__button:disabled:focus-visible,
.start-menu__sub-actions .start-menu__button:disabled:hover,
.start-menu__sub-actions .start-menu__button:disabled:focus-visible {
  transform: none !important;
  box-shadow: none !important;
}

/* v839: promo codes remain fully readable/copyable in ADMIN. */
.admin-promocode-current { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.admin-promocode-current code, .admin-promocode-code-wrap code { white-space:nowrap; overflow:visible; text-overflow:clip; user-select:all; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
.admin-promocode-code-cell { min-width:260px; }
.admin-promocode-code-wrap { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.admin-promocode-copy { min-height:30px; padding:4px 9px; border:1px solid rgba(124,204,255,.35); border-radius:8px; background:rgba(7,24,42,.9); color:#eaf8ff; cursor:pointer; font:700 11px/1.2 inherit; }
.admin-promocode-copy:disabled { opacity:.42; cursor:default; }
.admin-promocode-delete { min-height:30px; padding:4px 9px; border:1px solid rgba(255,122,122,.42); border-radius:8px; background:rgba(48,13,18,.9); color:#ffd7d7; cursor:pointer; font:700 11px/1.2 inherit; }
.admin-promocode-delete:disabled { opacity:.42; cursor:default; }
.admin-promocode-legacy { display:block; width:100%; font-size:10px; opacity:.6; }

/* v841 Rocket Builder — cable tool, centered hostname, stable console/scheme UX. */
.rocket-builder__workspace-actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.rocket-builder__cable-tool {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border: 1px solid rgba(86, 217, 255, .34);
  border-radius: 8px;
  background: rgba(7, 30, 46, .78);
  color: rgba(220, 245, 255, .88);
  font: 800 10px/1 "Segoe UI", Arial, sans-serif;
  cursor: pointer;
}
.rocket-builder__cable-tool svg { width: 16px; height: 16px; flex: 0 0 auto; }
.rocket-builder__cable-tool[aria-pressed="true"] {
  border-color: rgba(255, 226, 123, .82);
  background: rgba(98, 72, 15, .72);
  color: #fff2b5;
  box-shadow: 0 0 0 1px rgba(255, 226, 123, .12), 0 0 16px rgba(255, 212, 80, .10);
}
.rocket-builder-node.cable-endpoint-first .scheme-device-node,
.rocket-builder-node.cable-endpoint-second .scheme-device-node {
  stroke: rgba(255, 226, 123, .96) !important;
  stroke-width: 4px !important;
  filter: drop-shadow(0 0 6px rgba(255, 226, 123, .28));
}
/* Builder authoring view does not need the runtime WORKING status pill.
   Keep only the hostname above the icon so the label is visually unambiguous. */
.rocket-builder-node .scheme-device-badge,
.rocket-builder-node .scheme-device-badge-text {
  display: none !important;
}
.rocket-builder-node__hostname-svg {
  font-weight: 800;
  paint-order: stroke;
  stroke: rgba(2, 8, 16, .96);
  stroke-width: 4px;
  stroke-linejoin: round;
}
.rocket-builder__cable-dialog {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(1, 7, 14, .64);
  backdrop-filter: blur(3px);
}
.rocket-builder__cable-dialog[hidden] { display: none !important; }
.rocket-builder__cable-dialog-card {
  width: min(430px, calc(100% - 24px));
  padding: 18px;
  border: 1px solid rgba(112, 224, 255, .34);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(8, 25, 42, .98), rgba(3, 12, 23, .99));
  box-shadow: 0 18px 55px rgba(0,0,0,.52);
}
.rocket-builder__cable-dialog-card > strong {
  display: block;
  margin-bottom: 5px;
  color: #f2fbff;
  font-size: 15px;
}
.rocket-builder__cable-dialog-devices {
  margin: 0 0 13px;
  color: rgba(188, 231, 248, .72);
  font-size: 11px;
}
.rocket-builder__cable-field {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(160px, 1.35fr);
  align-items: center;
  gap: 10px;
  margin-top: 9px;
  color: rgba(224, 241, 255, .84);
  font-size: 11px;
}
.rocket-builder__cable-field select {
  min-width: 0;
  min-height: 34px;
  padding: 6px 8px;
  color: #eefaff;
  border: 1px solid rgba(108, 194, 230, .30);
  border-radius: 8px;
  background: rgba(3, 13, 24, .94);
}
.rocket-builder__cable-validation {
  min-height: 17px;
  margin-top: 10px;
  color: rgba(202, 236, 250, .72);
  font-size: 10px;
}
.rocket-builder__cable-validation[data-tone="error"] { color: #ff9ba8; }
.rocket-builder__cable-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 13px;
}
.rocket-builder__port-free {
  flex: 0 0 auto;
  color: rgba(149, 214, 240, .58);
  font-size: 9px;
}
/* The Builder CLI must behave like selectable browser text: no focus stealing and native copy menu. */
#rocketBuilderCliOutput,
#rocketBuilderCliOutput * {
  -webkit-user-select: text !important;
  user-select: text !important;
  cursor: text !important;
}
@media (max-width: 720px) {
  .rocket-builder__workspace-toolbar { align-items: flex-start; }
  .rocket-builder__workspace-actions { gap: 6px; }
  .rocket-builder__cable-tool span { display: none; }
  .rocket-builder__cable-field { grid-template-columns: 1fr; gap: 4px; }
}


/* v842 fullscreen secondary/account menus + full-screen session handoff. */
.start-menu__pane[data-start-menu-panel]:not([data-start-menu-panel="main"]) {
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  padding: clamp(28px, 5vh, 64px) clamp(24px, 5vw, 86px) !important;
  align-items: center;
  justify-content: flex-start;
  overflow: auto;
  background:
    radial-gradient(circle at 50% 8%, rgba(61, 165, 231, .14), transparent 36%),
    linear-gradient(180deg, rgba(3, 10, 23, .94), rgba(2, 8, 18, .985));
  backdrop-filter: blur(8px);
}
.start-menu__pane[data-start-menu-panel]:not([data-start-menu-panel="main"]) > * {
  width: min(1180px, 100%);
  box-sizing: border-box;
}
.start-menu__pane[data-start-menu-panel="login"] .player-auth-form,
.start-menu__pane[data-start-menu-panel="register"] .player-auth-form,
.start-menu__pane[data-start-menu-panel="password-reset-request"] .player-auth-form,
.start-menu__pane[data-start-menu-panel="password-reset-confirm"] .player-auth-form {
  width: min(760px, 100%);
  margin-inline: auto;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid rgba(112, 190, 255, .22);
  border-radius: 20px;
  background: rgba(4, 14, 29, .76);
  box-shadow: 0 20px 60px rgba(0,0,0,.26);
}
.start-menu__pane[data-start-menu-panel="login"] .start-menu__section-head,
.start-menu__pane[data-start-menu-panel="register"] .start-menu__section-head,
.start-menu__pane[data-start-menu-panel="password-reset-request"] .start-menu__section-head,
.start-menu__pane[data-start-menu-panel="password-reset-confirm"] .start-menu__section-head {
  width: min(760px, 100%);
}
.start-menu__pane[data-start-menu-panel="levels"] .start-menu__level-buttons {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.start-menu__pane[data-start-menu-panel="load"] .start-menu__save-list {
  min-height: min(52dvh, 520px);
}
.start-menu__pane[data-start-menu-panel]:not([data-start-menu-panel="main"]) .start-menu__sub-actions {
  width: min(1180px, 100%);
}
@media (max-width: 900px) {
  .start-menu__pane[data-start-menu-panel]:not([data-start-menu-panel="main"]) {
    padding: 22px 16px !important;
  }
  .start-menu__pane[data-start-menu-panel="levels"] .start-menu__level-buttons {
    grid-template-columns: 1fr;
  }
}

.player-session-conflict[hidden] { display: none !important; }
.player-session-conflict:not([hidden]) {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: grid;
  place-items: center;
  margin: 0 !important;
  padding: clamp(22px, 5vw, 72px);
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 50% 18%, rgba(255, 158, 62, .15), transparent 34%),
    rgba(2, 7, 15, .965);
  backdrop-filter: blur(12px);
  color: #fff2d2;
}
.player-session-conflict__panel {
  width: min(980px, 100%);
  min-height: min(520px, calc(100dvh - 80px));
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 5vw, 66px);
  box-sizing: border-box;
  border: 1px solid rgba(255, 190, 96, .48);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(46, 27, 8, .96), rgba(20, 13, 8, .985));
  box-shadow: 0 24px 80px rgba(0,0,0,.42);
}
.player-session-conflict__title { font-size: clamp(26px, 4vw, 46px); line-height: 1.05; }
.player-session-conflict__panel p { margin: 18px 0 28px; font-size: clamp(15px, 1.4vw, 20px); line-height: 1.55; max-width: 820px; }
.player-session-conflict__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; width: min(720px, 100%); }
.player-session-conflict__actions .start-menu__button {
  width: 100% !important;
  min-height: 54px !important;
  padding: 12px 18px !important;
  font-size: 15px !important;
  border-radius: 12px !important;
}
@media (max-width: 680px) {
  .player-session-conflict__actions { grid-template-columns: 1fr; }
  .player-session-conflict__panel { min-height: calc(100dvh - 32px); padding: 24px 18px; }
}

/* v844 main menu game-mode hierarchy */
.start-menu__button--disabled:disabled { opacity: .42; cursor: not-allowed; filter: grayscale(.35); pointer-events: none; }

/* v847 compact campaign navigation, technical warning, bug-report uplink and rebindable controls. */
.start-menu__pane[data-start-menu-panel="single-player"],
.start-menu__pane[data-start-menu-panel="campaigns"],
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] {
  position: relative !important;
  inset: auto !important;
  width: min(410px, 88vw) !important;
  max-width: 410px !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 18px 0 16px !important;
  margin: auto 0 !important;
  align-items: stretch !important;
  justify-content: center !important;
  overflow: visible !important;
  background: transparent !important;
  backdrop-filter: none !important;
}
.start-menu__pane[data-start-menu-panel="single-player"] > *,
.start-menu__pane[data-start-menu-panel="campaigns"] > *,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] > * {
  width: 100% !important;
}

.new-game-warning,
.bug-report {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 20px;
}
.new-game-warning[hidden], .bug-report[hidden] { display: none !important; }
.new-game-warning__backdrop,
.bug-report__backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 42%, rgba(16, 72, 113, .22), rgba(0, 4, 11, .88));
  backdrop-filter: blur(7px);
}
.new-game-warning__panel,
.bug-report__panel {
  position: relative;
  width: min(720px, 94vw);
  border: 1px solid rgba(105, 210, 255, .42);
  border-radius: 20px;
  padding: clamp(24px, 4vw, 42px);
  background:
    linear-gradient(135deg, rgba(8, 31, 54, .97), rgba(4, 13, 28, .985)),
    repeating-linear-gradient(90deg, transparent 0 32px, rgba(91, 204, 255, .035) 33px 34px);
  box-shadow: 0 30px 100px rgba(0,0,0,.52), inset 0 0 0 1px rgba(255,255,255,.025);
  color: #e9f8ff;
}
.new-game-warning__panel::before,
.bug-report__panel::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(111, 214, 255, .12);
  border-radius: 13px;
  pointer-events: none;
}
.new-game-warning__signal,
.bug-report__eyebrow {
  font: 700 11px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .18em;
  color: #74dcff;
  text-transform: uppercase;
}
.new-game-warning__panel h2,
.bug-report__panel h2 { margin: 10px 0 14px; font-size: clamp(24px, 4vw, 34px); }
.new-game-warning__panel p,
.bug-report__panel p { margin: 0 0 22px; line-height: 1.65; color: rgba(226, 245, 255, .86); }
.new-game-warning__panel > button { min-width: 140px; }

.game-bug-report-button {
  position: fixed;
  top: max(14px, env(safe-area-inset-top));
  right: max(16px, env(safe-area-inset-right));
  z-index: 10020;
  border: 1px solid rgba(116, 216, 255, .48);
  border-radius: 999px;
  padding: 10px 15px;
  background: rgba(4, 17, 31, .88);
  color: #dff7ff;
  font: 700 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .04em;
  box-shadow: 0 10px 30px rgba(0,0,0,.28);
  cursor: pointer;
}
.game-bug-report-button:hover { border-color: rgba(116, 216, 255, .82); background: rgba(7, 29, 49, .94); }
.game-bug-report-button[hidden] { display:none !important; }
body.bug-report-open #pauseMenuOverlay { visibility: hidden !important; pointer-events: none !important; }

.bug-report__panel textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 180px;
  resize: vertical;
  border: 1px solid rgba(102, 195, 235, .3);
  border-radius: 12px;
  padding: 14px 16px;
  background: rgba(1, 8, 18, .74);
  color: #e7f7ff;
  font: 14px/1.55 system-ui, sans-serif;
  outline: none;
}
.bug-report__panel textarea:focus { border-color: rgba(112, 218, 255, .72); box-shadow: 0 0 0 3px rgba(83, 193, 236, .12); }
.bug-report__actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.bug-report__status { min-height: 20px; margin-top: 10px; color: rgba(190, 232, 250, .82); font-size: 12px; }

.control-bindings { display:grid; gap:8px; margin-top: 12px; }
.control-bindings__row {
  display:grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 12px;
  align-items:center;
  padding: 8px 10px;
  border: 1px solid rgba(116, 190, 226, .14);
  border-radius: 10px;
  background: rgba(4, 16, 29, .5);
}
.control-bindings__label { color: rgba(225, 245, 255, .88); font-size: 12px; }
.control-bindings__button {
  min-height: 34px;
  border: 1px solid rgba(105, 199, 241, .3);
  border-radius: 8px;
  background: rgba(5, 24, 40, .9);
  color: #dff8ff;
  font: 700 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  cursor:pointer;
}
.control-bindings__button.is-capturing { border-color: rgba(255, 190, 78, .75); color: #ffd98a; }
@media (max-width: 640px) {
  .control-bindings__row { grid-template-columns: 1fr; gap: 7px; }
  .game-bug-report-button { top: 10px; right: 10px; max-width: 42vw; white-space: normal; }
}
/* Keep the player bug-report control above every in-game/tablet surface, including browser fullscreen mode. */
.game-bug-report-button { z-index: 2147483200 !important; }
.bug-report { z-index: 2147483300 !important; }
.new-game-warning { z-index: 2147483300 !important; }


/* Client release update notice: intentionally compact and non-blocking until the player chooses to apply it. */
.client-update-notice {
  position: fixed;
  right: clamp(14px, 2vw, 30px);
  bottom: clamp(14px, 2vw, 30px);
  z-index: 12040;
  width: min(430px, calc(100vw - 28px));
  padding: 18px;
  border: 1px solid rgba(123, 224, 255, .52);
  border-radius: 16px;
  background: linear-gradient(155deg, rgba(7, 18, 31, .98), rgba(12, 34, 49, .96));
  box-shadow: 0 20px 60px rgba(0, 0, 0, .48), inset 0 0 28px rgba(66, 192, 232, .08);
  color: #edfaff;
  backdrop-filter: blur(10px);
}
.client-update-notice[hidden] { display: none !important; }
.client-update-notice__signal {
  margin-bottom: 5px;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  opacity: .72;
}
.client-update-notice__title { font-size: 20px; font-weight: 800; line-height: 1.15; }
.client-update-notice__body { margin-top: 8px; font-size: 14px; line-height: 1.45; opacity: .92; }
.client-update-notice__versions { margin-top: 10px; font: 600 12px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; opacity: .8; }
.client-update-notice__status { min-height: 18px; margin-top: 8px; font-size: 12px; line-height: 1.4; }
.client-update-notice__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.client-update-notice__actions .start-menu__button { width: auto; min-width: 120px; margin: 0; }
@media (max-width: 520px) {
  .client-update-notice__actions { flex-direction: column-reverse; }
  .client-update-notice__actions .start-menu__button { width: 100%; }
}

/* v851 generic promo-code entitlement panel */
.player-promocode-fullscreen{width:min(760px,92vw);margin:8vh auto 0;padding:28px;border:1px solid rgba(100,210,255,.35);border-radius:18px;background:rgba(3,12,24,.88);box-shadow:0 22px 80px rgba(0,0,0,.45)}
.player-promocode-fullscreen .player-campaign-gate__form{display:flex;gap:12px;align-items:center}
.player-promocode-fullscreen input{flex:1;min-width:0}
.player-promocode-entitlements{margin-top:24px;display:grid;gap:10px}
.player-promocode-entitlements>div{display:flex;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.035)}

/* v852 account block / appeal UI */
.player-auth-form textarea {
  width: 100%;
  min-height: 140px;
  resize: vertical;
  border: 1px solid rgba(107, 176, 255, .34);
  border-radius: 11px;
  background: rgba(4, 14, 29, .9);
  color: #f5fbff;
  padding: 10px 11px;
  outline: none;
  font: inherit;
}
.player-auth-form textarea:focus {
  border-color: rgba(91, 193, 255, .72);
  box-shadow: 0 0 0 3px rgba(65, 185, 255, .12);
}
.player-account-blocked {
  width: min(760px, 100%);
  margin-inline: auto;
  display: grid;
  gap: 14px;
}
.start-menu__pane[data-start-menu-panel="account-blocked"] .player-auth-form {
  width: 100%;
  margin-inline: auto;
  padding: clamp(20px, 3vw, 34px);
  border: 1px solid rgba(255, 145, 110, .26);
  border-radius: 20px;
  background: rgba(25, 8, 10, .72);
  box-shadow: 0 20px 60px rgba(0,0,0,.30);
}

/* v852 update notice is deliberately central and visually dominant. */
.client-update-notice {
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
  width: min(560px, calc(100vw - 32px));
  z-index: 2147483100;
  padding: 24px;
  border-width: 2px;
  box-shadow: 0 28px 100px rgba(0, 0, 0, .72), 0 0 55px rgba(66, 192, 232, .20), inset 0 0 28px rgba(66, 192, 232, .10);
}
.client-update-notice__status { font-weight: 700; }

/* v853 — campaign navigation returns to the same left-side menu language as the main screen. */
.start-menu__pane[data-start-menu-panel="single-player"],
.start-menu__pane[data-start-menu-panel="campaigns"],
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: 0 !important;
  bottom: 0 !important;
  width: clamp(310px, 24vw, 410px) !important;
  max-width: 410px !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(26px, 4vh, 54px) clamp(18px, 2.2vw, 34px) clamp(22px, 3vh, 40px) !important;
  display: none;
  flex-direction: column;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  overflow-y: auto !important;
  background: linear-gradient(90deg, rgba(5, 14, 32, .90) 0%, rgba(5, 14, 32, .76) 72%, rgba(5, 14, 32, 0) 100%) !important;
  backdrop-filter: none !important;
}
.start-menu__pane[data-start-menu-panel="single-player"].active,
.start-menu__pane[data-start-menu-panel="campaigns"].active,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"].active {
  display: flex !important;
}
.start-menu__pane[data-start-menu-panel="single-player"] > *,
.start-menu__pane[data-start-menu-panel="campaigns"] > *,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] > * {
  width: 100% !important;
  max-width: 100% !important;
}
.start-menu__pane[data-start-menu-panel="single-player"] .start-menu__section-head,
.start-menu__pane[data-start-menu-panel="campaigns"] .start-menu__section-head,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] .start-menu__section-head {
  display: grid;
  gap: 16px;
  margin: 0 0 26px;
}
.start-menu__pane[data-start-menu-panel="single-player"] .start-menu__back-button,
.start-menu__pane[data-start-menu-panel="campaigns"] .start-menu__back-button,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] .start-menu__back-button {
  width: max-content !important;
}
.start-menu__pane[data-start-menu-panel="single-player"] .start-menu__main-actions--menu-page,
.start-menu__pane[data-start-menu-panel="campaigns"] .start-menu__main-actions--menu-page,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] .start-menu__main-actions--menu-page {
  width: clamp(178px, 12vw, 216px) !important;
  margin: 0 !important;
}
.start-menu__pane[data-start-menu-panel="single-player"] .start-menu__main-actions--menu-page .start-menu__button,
.start-menu__pane[data-start-menu-panel="campaigns"] .start-menu__main-actions--menu-page .start-menu__button,
.start-menu__pane[data-start-menu-panel="ferrum9-campaign"] .start-menu__main-actions--menu-page .start-menu__button {
  width: 100% !important;
}

/* v854 — full-screen game briefing with the briefing text centered on the viewport. */
.new-game-warning {
  position: fixed;
  inset: 0;
  z-index: 2147483300 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  background: #04101f url("start_menu_full_background.webp") center center / cover no-repeat;
}
.new-game-warning[hidden] { display: none !important; }
.new-game-warning__backdrop {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(2, 8, 20, .98) 0%, rgba(2, 8, 20, .93) 31%, rgba(2, 8, 20, .42) 58%, rgba(2, 8, 20, .15) 100%),
    radial-gradient(circle at 22% 38%, rgba(31, 151, 229, .20), transparent 34%);
  backdrop-filter: none;
}
.new-game-warning__panel {
  position: relative;
  z-index: 1;
  width: min(980px, 88vw);
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  padding: clamp(38px, 6vh, 72px) clamp(30px, 5vw, 86px);
  border: 1px solid rgba(89, 198, 255, .24);
  border-radius: 18px;
  background: rgba(2, 10, 24, .78);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .42), inset 0 0 40px rgba(54, 183, 255, .045);
  color: #eefaff;
  text-align: center;
}
.new-game-warning__panel::before { display: none; }
.new-game-warning__signal {
  margin: 0 0 18px;
  font: 800 clamp(12px, .9vw, 15px)/1.25 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .20em;
  color: #72dcff;
  text-transform: uppercase;
}
.new-game-warning__panel h2 {
  margin: 0 0 26px;
  max-width: 820px;
  font-size: clamp(38px, 4.4vw, 68px);
  line-height: .98;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.new-game-warning__panel p {
  max-width: 820px;
  margin: 0 0 34px;
  color: rgba(232, 247, 255, .94);
  font-size: clamp(18px, 1.45vw, 24px);
  line-height: 1.62;
  text-wrap: pretty;
}
.new-game-warning__panel > button {
  width: min(280px, 100%) !important;
  min-height: 62px !important;
  margin: 0 !important;
  font-size: 18px !important;
}
@media (max-width: 820px) {
  .new-game-warning {
    background-position: 62% center;
  }
  .new-game-warning__backdrop {
    background: linear-gradient(180deg, rgba(2, 8, 20, .82), rgba(2, 8, 20, .96));
  }
  .new-game-warning__panel {
    width: calc(100% - 28px);
    min-width: 0;
    padding: 32px 22px;
    border: 1px solid rgba(89, 198, 255, .20);
    background: rgba(2, 10, 24, .82);
  }
  .new-game-warning__panel h2 { font-size: clamp(34px, 10vw, 54px); }
  .new-game-warning__panel p { font-size: clamp(17px, 4.4vw, 21px); }
}

/* v853 — player promo code screen: field first, activate below, result below; entitlement list intentionally hidden/removed. */
.player-promocode-fullscreen {
  width: min(760px, 92vw);
  margin: clamp(28px, 7vh, 72px) auto 0;
  padding: clamp(26px, 4vw, 42px);
}
.player-promocode-fullscreen .player-promocode-form {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: stretch;
}
.player-promocode-fullscreen .player-promocode-form input {
  width: 100%;
  min-height: 58px;
  box-sizing: border-box;
  font-size: clamp(15px, 1.2vw, 18px);
  letter-spacing: .04em;
}
.player-promocode-fullscreen .player-promocode-form .start-menu__button {
  width: 100% !important;
  min-height: 56px !important;
  margin: 0 !important;
  justify-content: center !important;
  padding-inline: 22px !important;
  border-radius: 12px !important;
  font-size: 17px !important;
}
.player-promocode-status {
  min-height: 26px;
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.5;
  text-align: center;
}
.player-promocode-entitlements { display: none !important; }

/* v853 — binding capture is visually explicit and keeps keyboard focus on the fresh button node. */
.control-bindings__button.is-capturing {
  border-color: rgba(255, 190, 78, .92);
  background: rgba(72, 47, 8, .88);
  color: #ffe4a6;
  box-shadow: 0 0 0 2px rgba(255, 190, 78, .12), 0 0 24px rgba(255, 190, 78, .13);
}
.control-bindings__button.is-capturing:focus-visible {
  outline: 2px solid rgba(255, 221, 143, .95);
  outline-offset: 2px;
}

/* v853 — v852's enlarged update box was based on a misunderstood request.
   Keep automatic updates, but return the update notice itself to the compact corner presentation. */
.client-update-notice {
  left: auto;
  right: clamp(14px, 2vw, 30px);
  top: auto;
  bottom: clamp(14px, 2vw, 30px);
  transform: none;
  width: min(430px, calc(100vw - 28px));
  padding: 18px;
  border-width: 1px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .48), inset 0 0 28px rgba(66, 192, 232, .08);
}
.client-update-notice__status { font-weight: 400; }

/* v853 specificity guard against the generic fullscreen secondary-pane rule. */
#startMenu .start-menu__pane[data-start-menu-panel="single-player"],
#startMenu .start-menu__pane[data-start-menu-panel="campaigns"],
#startMenu .start-menu__pane[data-start-menu-panel="ferrum9-campaign"] {
  left: 0 !important;
  right: auto !important;
  top: 0 !important;
  bottom: 0 !important;
  width: clamp(310px, 24vw, 410px) !important;
  max-width: 410px !important;
  height: 100% !important;
  padding: clamp(26px, 4vh, 54px) clamp(18px, 2.2vw, 34px) clamp(22px, 3vh, 40px) !important;
}
@media (max-width: 720px) {
  #startMenu .start-menu__pane[data-start-menu-panel="single-player"],
  #startMenu .start-menu__pane[data-start-menu-panel="campaigns"],
  #startMenu .start-menu__pane[data-start-menu-panel="ferrum9-campaign"] {
    width: min(360px, 88vw) !important;
  }
}

/* v856 responsive start-menu artwork + ADMIN log sublayers ------------------ */
/*
 * Keep the full 16:9 artwork visible on every viewport instead of cropping it
 * with object-fit: cover.  A softened cover layer fills any letterbox area, so
 * 16:10, ultrawide and portrait windows still read as one continuous scene.
 */
.start-menu__stage--image {
  isolation: isolate;
  background: #071426;
}
.start-menu__stage--image::before {
  content: "";
  position: absolute;
  inset: -2.5vmax;
  z-index: 0;
  background-image:
    linear-gradient(rgba(3, 10, 24, .20), rgba(3, 10, 24, .20)),
    url("start_menu_full_background.webp");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  filter: blur(clamp(12px, 1.5vw, 28px));
  transform: scale(1.035);
  opacity: .82;
}
.start-menu__stage--image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(2, 8, 20, .16), transparent 42%, rgba(2, 8, 20, .08));
}
.start-menu__hero-picture {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
}
.start-menu__hero-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

.admin-log-layer-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 10px;
  padding: 5px;
  border: 1px solid rgba(132,220,255,.16);
  border-radius: 12px;
  background: rgba(3,12,22,.62);
}
.admin-log-layer-tab {
  min-height: 36px;
  padding: 7px 14px;
  border: 1px solid rgba(132,220,255,.18);
  border-radius: 9px;
  background: rgba(6,20,35,.72);
  color: rgba(222,240,255,.76);
  font: 800 12px/1.15 system-ui, sans-serif;
  cursor: pointer;
}
.admin-log-layer-tab:hover,
.admin-log-layer-tab:focus-visible {
  border-color: rgba(132,220,255,.45);
  color: #fff;
}
.admin-log-layer-tab.active,
.admin-log-layer-tab[aria-selected="true"] {
  border-color: rgba(111,214,255,.62);
  background: rgba(20,91,123,.46);
  color: #fff;
  box-shadow: inset 0 0 18px rgba(79,196,255,.08);
}
.admin-bug-reports-table-wrap { max-height: 430px; }
.admin-bug-reports-table { min-width: 780px; table-layout: fixed; }
.admin-bug-reports-table th:nth-child(1) { width: 16%; }
.admin-bug-reports-table th:nth-child(2) { width: 18%; }
.admin-bug-reports-table th:nth-child(3) { width: 42%; }
.admin-bug-reports-table th:nth-child(4) { width: 24%; }
.admin-bug-reports-table td { overflow-wrap: anywhere; }
.admin-bug-reports-table details { min-width: 170px; }
.admin-bug-reports-table summary {
  cursor: pointer;
  color: #bdeaff;
  font-weight: 800;
}
.admin-bug-reports-table pre {
  max-width: min(720px, 72vw);
  max-height: 300px;
  overflow: auto;
  margin: 8px 0 0;
  padding: 9px;
  border: 1px solid rgba(132,220,255,.14);
  border-radius: 8px;
  background: rgba(1,7,13,.88);
  color: #d7ecf8;
  font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  white-space: pre-wrap;
}
@media (max-width: 720px) {
  .admin-log-layer-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .admin-log-layer-tab { flex: 0 0 auto; }
}
.admin-bug-report-description > div:first-child { white-space: pre-wrap; line-height: 1.45; color: #f2f8ff; }
.admin-bug-report-meta { margin-top: 7px; color: rgba(205,228,245,.62); font-size: 10px; line-height: 1.35; }

/* v860 Rocket Builder authoring tools: explicit device delete and cable disconnect mode. */
.rocket-builder__cable-tool:disabled {
  opacity: .42;
  cursor: not-allowed;
  transform: none !important;
}
.rocket-builder__cable-tool--danger {
  border-color: rgba(255, 125, 142, .42);
  background: rgba(54, 13, 22, .76);
  color: #ffdce1;
}
.rocket-builder__cable-tool--danger:not(:disabled):hover {
  border-color: rgba(255, 145, 160, .82);
  background: rgba(78, 18, 29, .92);
}
.rocket-builder__cable-tool--disconnect[aria-pressed="true"] {
  border-color: rgba(255, 169, 92, .86);
  background: rgba(91, 45, 13, .78);
  color: #ffe2bc;
}
.rocket-builder__workspace--disconnect-mode .rocket-builder__links {
  pointer-events: auto;
}
.rocket-builder__workspace--disconnect-mode .rocket-builder-node {
  cursor: default;
}
.rocket-builder__link--disconnectable {
  cursor: crosshair;
}
.rocket-builder__link-hit {
  stroke: rgba(255,255,255,0.001);
  stroke-width: 18;
  fill: none;
  pointer-events: stroke;
  cursor: crosshair;
}
.rocket-builder__link--disconnectable:hover .rocket-builder__link,
.rocket-builder__link--disconnectable:focus .rocket-builder__link {
  stroke: rgba(255, 154, 113, .98);
  stroke-width: 3.6;
  filter: drop-shadow(0 0 7px rgba(255, 112, 75, .48));
}

/* v998 PLAYER promo-code submenu/contact presentation */
.player-promocode-contact-card {
  width: min(680px, 100%);
  margin: 22px auto 0;
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid rgba(141, 225, 255, 0.28);
  border-radius: 14px;
  background: rgba(4, 18, 30, 0.78);
}
.player-promocode-contact-card p { margin: 0 0 4px; }
.player-promocode-contact-link { text-decoration: none; text-align: center; }


.start-menu__rights {
  margin: 0.15rem 0 0.65rem;
  font-size: 0.72rem;
  line-height: 1.25;
  opacity: 0.62;
  letter-spacing: 0.02em;
}

/* v1053: newsletter consent, visually subordinate to registration. */
.player-newsletter-choice { display:flex; align-items:center; gap:9px; margin:12px 0; font-size:13px; color:#dceeff; line-height:1.45; }
.player-newsletter-choice input[type="checkbox"] { flex:none; width:17px; height:17px; accent-color:#46bef4; }

/* v1056: Loading feedback appears only after a real >1s wait. */
.game-load-progress[hidden] { display:none !important; }
.game-load-progress { position:fixed; inset:auto 50% 8% auto; transform:translateX(50%); z-index:3100; display:flex; align-items:center; gap:12px; padding:15px 23px; border-radius:16px; border:1px solid rgba(125,230,245,.5); background:rgba(8,22,41,.96); color:#e8f9ff; box-shadow:0 15px 42px rgba(0,0,0,.52); font-size:16px; font-weight:700; pointer-events:none; }
.game-load-progress__spinner { width:20px; height:20px; border:3px solid rgba(154,225,255,.22); border-top-color:#a9edff; border-radius:50%; animation:gne-game-load-spin 750ms linear infinite; }
@keyframes gne-game-load-spin { to { transform:rotate(360deg); } }


/* v1065 — coop-ready-room projection, inspired by the industrial L4 environment. */
#startMenu .start-menu__pane[data-start-menu-panel="multiplayer"] { padding: 18px clamp(12px, 2vw, 38px) !important; overflow-y:auto; }
#startMenu .start-menu__pane[data-start-menu-panel="multiplayer"] > * { width:min(1450px,100%); }
.coop-ready-room { --coop-ice:#66d9ff; --coop-magenta:#9864f8; width:100%; max-width:1450px; color:#e8f2ff; display:grid; gap:14px; grid-template-columns:minmax(0,1.35fr) minmax(290px,0.9fr); min-height:460px; font-family:inherit; }
.coop-ready-room__viewport { position:relative; min-height:490px; border:1px solid rgba(119,194,255,.36); border-radius:16px; overflow:hidden; background:radial-gradient(ellipse at 65% 0%,rgba(114,93,224,.24),transparent 48%),linear-gradient(180deg,#0c152d 0%,#132546 59%,#070d1b 60%,#020712 100%); box-shadow:inset 0 0 75px rgba(34,93,177,.2); }
.coop-ready-room__viewport::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0 10%,rgba(83,183,241,.08) 10.2% 10.6%,transparent 10.8% 20%),linear-gradient(180deg,rgba(85,177,255,.12),transparent 50%); pointer-events:none; }
.coop-ready-room__ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.coop-ready-room__ambient span { position:absolute; top:0; height:64%; width:2px; background:linear-gradient(#9ae7ff,transparent); opacity:.5; box-shadow:0 0 20px #59bdff; }
.coop-ready-room__ambient span:nth-child(1){left:17%}.coop-ready-room__ambient span:nth-child(2){left:49%}.coop-ready-room__ambient span:nth-child(3){left:84%}
.coop-ready-room__deck { position:absolute; inset:0; display:flex; align-items:flex-end; justify-content:space-evenly; gap:10px; padding:10px 22px 85px; border-bottom:19px solid #152342; box-sizing:border-box; }
.coop-ready-room__deck::before { content:""; position:absolute; left:0; right:0; bottom:61px; height:13px; background:repeating-linear-gradient(90deg,#1f3858 0 30px,#427fa2 31px 33px); box-shadow:0 5px 22px rgba(54,172,255,.32); }
.coop-ready-room__station { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; flex:1; min-width:0; max-width:150px; height:160px; padding:8px; box-sizing:border-box; border:2px solid #4c84bd; border-radius:9px 9px 1px 1px; background:repeating-linear-gradient(180deg,#0e1b30 0 15px,#193657 16px 18px); box-shadow:0 0 23px rgba(24,140,255,.25),inset 0 0 25px rgba(45,131,235,.24); text-align:center; }
.coop-ready-room__station::before { content:"● ● ●"; display:block; color:#6bcefc; letter-spacing:7px; font-size:12px; margin-bottom:15px; }
.coop-ready-room__station strong {font-size:clamp(9px,1.3vw,14px);letter-spacing:.06em;color:#cdf4ff;word-break:break-word}
.coop-ready-room__station span {font-size:10px;color:#a6b9da;margin-top:10px}
.coop-ready-room__rocket { position:relative; z-index:3; width:95px; height:235px; flex:none; display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 0 15px rgba(121,219,255,.4)); }
.coop-ready-room__rocket-tip { width:66px;height:60px;background:linear-gradient(90deg,#397daf,#d6f8ff,#4d98cf);clip-path:polygon(50% 0%,100% 100%,0 100%); }
.coop-ready-room__rocket-core { width:66px;height:146px;background:linear-gradient(90deg,#1d4366 0%,#e0f2ff 48%,#4888c5 85%,#113e61 100%);border:2px solid #6996c5;border-radius:0 0 12px 12px;box-sizing:border-box; }
.coop-ready-room__rocket-core::after { content:"";position:absolute;left:39px;top:99px;width:20px;height:27px;border:3px solid #1e5779;border-radius:50%;background:#66c7ef;box-shadow:0 0 9px #75e2ff; }
.coop-ready-room__rocket-fins {width:100px;height:32px;margin-top:-24px;background:#5b99c9;clip-path:polygon(0 100%,18% 0,82% 0,100% 100%)}
.coop-ready-room__rocket-status { position:absolute;z-index:4;bottom:15px;left:0;right:0;text-align:center;font-size:12px;color:#d9e6fa;letter-spacing:.06em;text-shadow:0 0 9px #4489ff; }
.coop-ready-room__workspace {display:flex;flex-direction:column;gap:11px;min-width:0}
.coop-ready-room__notice { min-height:50px;border-left:3px solid var(--coop-ice);background:rgba(11,35,63,.89);padding:12px;box-sizing:border-box;font-size:13px;color:#dcf4ff; }
.coop-ready-room__notice[data-error="true"] {border-left-color:#ff8c87;color:#ffd0cc}
.coop-ready-room__controls {flex:1;min-width:0;display:flex}
.coop-ready-room__panel { width:100%;box-sizing:border-box;background:rgba(6,20,39,.93);border:1px solid #325a80;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:11px; }
.coop-ready-room__panel[hidden] {display:none !important}
.coop-ready-room__panel h3 {margin:3px 0 5px;font-size:17px;letter-spacing:.04em;color:#8cdbff}
.coop-ready-room__panel label {font-size:13px;color:#bfddf7}
.coop-ready-room__panel select,.coop-ready-room__panel input:not([type="checkbox"]) {height:38px;width:100%;box-sizing:border-box;border:1px solid #47749b;border-radius:6px;padding:7px 10px;color:#e6f6ff;background:#0b233f;}
.coop-ready-room__panel button { min-height:37px;background:#153d66;border:1px solid #518cb9;border-radius:6px;color:#e8f4ff;cursor:pointer;padding:7px 9px;font:inherit;font-size:13px; }
.coop-ready-room__panel button:hover:not(:disabled){background:#1a5585;border-color:#9ce7ff}
.coop-ready-room__panel button:disabled{opacity:.45;cursor:not-allowed}
.coop-ready-room__panel .coop-ready-room__id {display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;color:#b8dfff;font-size:12px;overflow-wrap:anywhere}
.coop-ready-room__members { margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px }
.coop-ready-room__member {border:1px solid #31587a;border-radius:6px;background:#112842;padding:9px;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:9px;box-sizing:border-box}
.coop-ready-room__member[data-ready="true"]{border-color:#40d4b3}
.coop-ready-room__member-ordinal{font-weight:bold;color:#71bfe1;grid-row:span 2}
.coop-ready-room__member strong{font-size:12px;overflow-wrap:anywhere}
.coop-ready-room__member span:last-child{font-size:11px;color:#91b1ce}
.coop-ready-room__actions {display:flex;flex-wrap:wrap;gap:7px}
.coop-ready-room__actions button{flex:1;min-width:72px}
.coop-ready-room__checkbox {display:flex;align-items:center;gap:8px}
.coop-ready-room__invite,.coop-ready-room__joinshare {display:grid;gap:7px}
.coop-ready-room__joinshare {grid-template-columns:minmax(0,1fr) auto;align-items:center}
.coop-ready-room__joinshare label {grid-column:1/-1}
#coopStartMission{margin-top:auto}
@media(max-width:1000px){.coop-ready-room{grid-template-columns:1fr}.coop-ready-room__viewport{min-height:300px}.coop-ready-room__deck{padding-bottom:80px}.coop-ready-room__station{height:120px}.coop-ready-room__rocket{transform:scale(.72);transform-origin:bottom center;margin:-20px}.coop-ready-room__workspace{width:100%}}
@media(max-width:540px){.coop-ready-room__viewport{min-height:250px}.coop-ready-room__station{height:90px}.coop-ready-room__station::before{display:none}.coop-ready-room__station span{display:none}.coop-ready-room__deck{padding:8px 8px 82px;gap:5px}.coop-ready-room__rocket{transform:scale(.52);width:50px;margin:-32px 0}.coop-ready-room__members{grid-template-columns:1fr 1fr}}


/* v1066: server-projected physical lobby; layout anchored to the same 1000-unit X-axis. */
.coop-ready-room__viewport[data-interactive="true"] {outline: 2px solid rgba(101,217,255,.34);outline-offset:-2px}
.coop-ready-room__deck {display:block;padding:0;}
.coop-ready-room__station {position:absolute;bottom:80px;width:12%;height:154px;transform:translateX(-50%);max-width:none;flex:none;}
.coop-ready-room__station[data-coop-station="equipment"]{left:16.5%}
.coop-ready-room__station[data-coop-station="upgrades"]{left:35.7%}
.coop-ready-room__station[data-coop-station="appearance"]{left:54.5%}
.coop-ready-room__station[data-coop-station="management"]{left:69.5%}
.coop-ready-room__station--management {border-color:#a070cf;box-shadow:inset 0 0 20px #6224bc66,0 0 16px #6224bc66}
.coop-ready-room__rocket {position:absolute;left:85.2%;bottom:80px;transform:translateX(-50%);margin:0;}
.coop-stage__avatars{position:absolute;inset:0;z-index:6;pointer-events:none;}
.coop-stage__avatar {position:absolute;bottom:83px;width:35px;height:70px;margin-left:-17px;transition:left .17s linear,bottom .17s linear;filter:drop-shadow(0 2px 8px #48c4ff88)}
.coop-stage__avatar[data-self="true"]{filter:drop-shadow(0 2px 12px #c081ff)}
.coop-stage__avatar[data-connected="false"]{opacity:.35;filter:grayscale(1)}
.coop-stage__avatar[data-ready="true"] .coop-stage__helmet {border-color:#76ffcf}
.coop-stage__avatar[data-facing="-1"] .coop-stage__visor{transform:scaleX(-1)}
.coop-stage__helmet{position:absolute;top:6px;left:2px;width:30px;height:29px;border:3px solid #e3effb;box-sizing:border-box;border-radius:50%;background:#476586}
.coop-stage__visor{position:absolute;top:13px;left:8px;width:19px;height:13px;border-radius:9px;background:linear-gradient(105deg,#2078ab,#bcefff);box-shadow:0 0 8px #3cbcff}
.coop-stage__body{position:absolute;top:34px;left:8px;width:20px;height:25px;border-radius:6px 6px 2px 2px;background:linear-gradient(90deg,#899bce,#ddeafa,#899bce);border:2px solid #58759e;box-sizing:border-box}
.coop-stage__leg{position:absolute;top:57px;left:9px;width:7px;height:12px;background:#7da2c1;border-radius:3px}
.coop-stage__leg:last-child{left:21px}
.coop-stage__tag{position:absolute;bottom:69px;left:50%;transform:translateX(-50%);white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis;padding:2px 7px;border-radius:8px;background:#091933e6;border:1px solid #396caa;font-size:10px;color:#dcf7ff}
.coop-stage__hint{position:absolute;z-index:7;top:10px;left:50%;transform:translateX(-50%);max-width:95%;text-align:center;padding:5px 10px;background:#0a1834cf;border:1px solid #476b9a;border-radius:7px;font-size:11px;pointer-events:none}
.coop-stage__ready-note{display:block;padding:8px;border:1px solid #315b88;border-radius:6px;color:#afe4ff;font-size:12px}
.coop-stage__terminal{position:absolute;z-index:10;top:17%;left:13%;right:13%;min-height:170px;background:#061223f5;border:2px solid #6fd9ff;border-radius:12px;padding:16px;box-shadow:0 0 45px #447eff55;color:#dcf3ff;font-size:13px}
.coop-stage__terminal[hidden], #coopTerminalFriendlyFireRow[hidden]{display:none !important}
.coop-stage__terminal-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #36678f;padding-bottom:10px;gap:10px}
.coop-stage__terminal-header button{background:#183454;border:1px solid #65c8e6;color:white;font-size:22px;border-radius:6px;cursor:pointer}
.coop-stage__terminal label{display:flex;gap:12px;align-items:center;margin-top:14px}
@media(max-width:1000px){.coop-ready-room__rocket{transform:translateX(-50%) scale(.72);transform-origin:bottom center}.coop-ready-room__station{height:130px}.coop-stage__hint{font-size:10px}}

/* v1067: canonical Level-4 geometry/campaign sprite-based coop preparation scene. */
.coop-stage__level4-canvas {position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2}
.coop-ready-room__viewport:has(.coop-stage__level4-canvas) {background:#110c19;min-height:490px;}
.coop-ready-room__viewport:has(.coop-stage__level4-canvas)::before,
.coop-ready-room__viewport:has(.coop-stage__level4-canvas) .coop-ready-room__ambient,
.coop-ready-room__viewport:has(.coop-stage__level4-canvas) .coop-ready-room__deck {display:none!important}
.coop-ready-room__viewport:has(.coop-stage__level4-canvas) .coop-stage__terminal{z-index:10}

/* v1068: server-authoritative radio-relay outfitting at physical Level-4 equipment terminal */
#coopTerminalRelayRow[hidden]{display:none!important}
.coop-stage__relay-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.coop-stage__relay-row p{flex-basis:100%;margin:4px 0}
.coop-stage__relay-row select{min-width:70px;max-width:110px;background:#09243b;color:#eaf6ff;border:1px solid #5bc5e7;border-radius:5px;padding:5px}
.coop-stage__relay-row button{background:#13577d;color:#f1fcff;border:1px solid #68d5fd;border-radius:6px;padding:7px 12px;cursor:pointer}
.coop-stage__relay-row button:disabled{opacity:.55;cursor:not-allowed}

/* v1068: a full-stage cooperative preparation space. Panels exist only BEFORE
   joining; on stage all room state is accessed via Ferrum-style server tablets. */
.coop-ready-room {display:block;width:100%;max-width:none;min-height:0;position:relative;}
.coop-ready-room__viewport {width:100%;height:min(78vh,850px);min-height:560px;position:relative;border-radius:4px;}
.coop-ready-room__viewport[hidden],.coop-ready-room__setup[hidden],.coop-stage__terminal-tabs [hidden],.coop-stage__room-controls[hidden],.coop-stage__relay-row[hidden],#coopTerminalFriendlyFireRow[hidden] {display:none!important;}
.coop-ready-room__setup {display:flex;justify-content:center;padding:24px 10px;}
.coop-ready-room__setup .coop-ready-room__panel {max-width:510px;}
.coop-ready-room__notice {position:absolute;z-index:5;bottom:6px;right:8px;max-width:min(46%,400px);min-height:0;border-radius:5px;padding:7px 10px;background:rgba(2,10,23,.84);font-size:12px;pointer-events:none;}
.coop-stage__topline {position:absolute;z-index:5;top:12px;left:14px;right:14px;display:flex;justify-content:space-between;pointer-events:none;font:600 13px/1.4 inherit;letter-spacing:.05em;color:#b7e9fa;text-shadow:0 0 7px #141124;}
.coop-stage__hint {left:20px;right:auto;bottom:28px;max-width:80%;}
.coop-ready-room__rocket-status {bottom:5px;left:15px;right:auto;text-align:left;font-size:10px;}
.coop-stage__terminal.rocket-tablet-window {z-index:50;position:absolute;inset:4% 5%;height:92%;min-height:0;max-height:760px;display:flex;flex-direction:column;box-sizing:border-box;padding:17px 20px 20px;background:linear-gradient(145deg,rgba(6,16,34,.985),rgba(12,26,51,.98));border:2px solid #66a5db;border-radius:14px;box-shadow:0 0 18px #3477ac99,0 0 70px #070b16aa,inset 0 0 45px #207ac830;overflow:hidden;}
.coop-stage__terminal[hidden] {display:none!important;}
.coop-stage__terminal-header {flex:none;position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:10px;border-bottom:1px solid #4676a0;font-size:clamp(12px,1.5vw,18px);letter-spacing:.08em;}
.coop-stage__terminal-header strong {color:#d7f2ff;text-shadow:0 0 12px #65bde8;}
.coop-stage__terminal-tabs {flex:none;display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid #36577e;padding:12px 0;position:relative;z-index:1;}
.coop-stage__terminal-tabs button {font:inherit;font-size:12px;background:#162a48;color:#9dcde6;border:1px solid #35628e;padding:8px 12px;border-radius:4px;cursor:pointer;}
.coop-stage__terminal-tabs button.active {background:#215787;border-color:#8eddf8;color:#fff;box-shadow:inset 0 -2px #9cf1ff;}
.coop-stage__terminal-body {flex:1;min-height:0;overflow:auto;position:relative;z-index:2;padding:12px 6px 20px;color:#d7edfa;}
.coop-stage__terminal-body p {line-height:1.6;}
.coop-stage__room-controls {display:flex;flex-direction:column;gap:12px;}
.coop-stage__room-controls .coop-ready-room__id {display:flex;justify-content:space-between;gap:20px;overflow-wrap:anywhere;}
.coop-stage__room-controls button,.coop-stage__room-controls input {font:inherit;color:#dcf6ff;background:#0a2341;border:1px solid #528bb9;border-radius:5px;padding:8px;}
.coop-stage__room-controls button {cursor:pointer;}
.coop-stage__room-controls button:disabled {cursor:not-allowed;opacity:.55;}
.coop-stage__room-controls input {width:100%;box-sizing:border-box;}
.coop-stage__room-controls label {display:block;margin:4px 0;}
.coop-stage__room-controls .coop-ready-room__joinshare {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;}
.coop-stage__room-controls .coop-ready-room__joinshare label {grid-column:1/-1;}
.coop-stage__room-controls .coop-ready-room__members {grid-template-columns:repeat(2,minmax(0,1fr));}
.coop-stage__room-controls .coop-ready-room__member {padding:7px;min-height:48px;}
.coop-stage__relay-row {flex-direction:column;align-items:flex-start;}
.coop-stage__relay-row select {font-size:14px;min-width:120px;}
@media(max-width:750px){.coop-ready-room__viewport{height:72vh;min-height:440px}.coop-stage__terminal.rocket-tablet-window{inset:2%;height:96%;padding:10px}.coop-stage__terminal-tabs button{font-size:11px;padding:5px}.coop-stage__topline{font-size:11px}.coop-stage__hint{font-size:10px}.coop-ready-room__notice{max-width:60%;}}

.coop-ready-room[data-state="empty"] .coop-ready-room__notice {bottom:0;left:50%;right:auto;transform:translateX(-50%);max-width:510px;width:calc(100% - 32px);text-align:center;}
.coop-ready-room[data-state="admin"] .coop-ready-room__notice {bottom:5px;}

/* v1069: Ferrum-9 left-anchored multiplayer selection hierarchy; no side panels on stage. */
.coop-ready-room__setup {justify-content:flex-start;align-items:stretch;padding:0;min-height:min(78vh,710px);box-sizing:border-box;background:transparent;}
.coop-flow {display:flex;flex-direction:column;justify-content:center;align-items:stretch;width:min(100%,540px);padding:24px clamp(12px,3vw,48px);box-sizing:border-box;background:linear-gradient(90deg,rgba(4,11,27,.95),rgba(4,11,27,.76) 82%,transparent);}
.coop-flow__step {display:flex;flex-direction:column;align-items:stretch;gap:14px;position:relative;}
.coop-flow__step[hidden],#coopRoomNoParty[hidden],#coopCreateSetup[hidden],#coopJoinSetup[hidden] {display:none!important;}
.coop-flow__step h3 {color:#e4f5ff;text-transform:uppercase;letter-spacing:.09em;text-shadow:0 0 18px #5499ef;font-size:clamp(17px,2.2vw,24px);}
.coop-flow__step .start-menu__main-actions--menu-page {display:flex;flex-direction:column;align-items:stretch;gap:10px;}
.coop-flow__step .start-menu__button {width:100%;max-width:430px;text-align:left;}
.coop-flow__tablet {padding:18px;background:linear-gradient(145deg,#081b36,#10182c);border:2px solid #568fc7;box-shadow:0 0 35px #168ac35c,inset 0 0 23px #297ab52a;max-width:540px;}
.coop-flow__tablet > :not(.rocket-tablet-orbit):not(.rocket-tablet-corners):not(.rocket-tablet-ambient) {position:relative;z-index:1;}
.coop-flow__tabs {display:flex;gap:8px;flex-wrap:wrap;}
.coop-flow__tabs button,.coop-flow__action {background:#163960;color:#def3ff;border:1px solid #56a2d7;padding:10px 12px;border-radius:5px;cursor:pointer;font:inherit;}
.coop-flow__tabs button.active {background:#23638a;border-color:#a3eafb;}
#coopCreateSetup,#coopJoinSetup {display:flex;flex-direction:column;gap:10px;}
#coopCreateSetup select,#coopJoinSetup input {color:#e2f7ff;background:#0c2541;border:1px solid #488ab4;padding:9px;border-radius:5px;box-sizing:border-box;width:100%;}
.coop-flow__note {color:#9bbad1;font-size:12px;line-height:1.5;}
.coop-ready-room__viewport {height:min(87vh,960px);}

/* v1073: standalone immersive multiplayer playfield; ordinary menu unchanged. */
body.gne-coop-play-mode { overflow:hidden !important; }
#coopStageViewport.gne-coop-playfield {
 position:fixed !important;inset:0 !important;left:0 !important;top:0 !important;
 width:100vw !important;height:100dvh !important;min-height:0 !important;max-height:none !important;
 max-width:none !important;margin:0 !important;padding:0 !important;border:0 !important;
 border-radius:0 !important;box-shadow:none !important;outline:0 !important;
 z-index:2147483000 !important;background:#0b0b12 !important;overflow:hidden !important;
}
#coopStageViewport.gne-coop-playfield::before {display:none !important;}
#coopStageViewport .coop-stage__hint {display:none !important;}
#coopStageViewport.gne-coop-playfield .coop-ready-room__notice {
 position:absolute;left:50%;right:auto;bottom:8px;max-width:65vw;width:auto;
 transform:translateX(-50%);border:0;background:rgba(6,12,24,.68);
 color:#d8e9fa;text-align:center;pointer-events:none;
}
#coopStageViewport.gne-coop-playfield .coop-stage__terminal { z-index:20; }

/* v1083 NEBULA PAD — common Rocket Builder shell and reusable role-neutral slots. */
.nebula-pad-shell { isolation:isolate; overflow:hidden; }
.nebula-pad-shell > :not(.rocket-tablet-orbit):not(.rocket-tablet-corners):not(.rocket-tablet-ambient):not(.rocket-tablet-grid) {position:relative;z-index:1;}
.nebula-pad__header {flex:none;min-height:62px;position:relative;z-index:2;}
.nebula-pad__tabs {flex:none;position:relative;z-index:2;}
.nebula-pad-shell .rocket-tablet-grid {pointer-events:none;}
/* Navigation is the same left-column hierarchy as Single Player → Campaign. */
#startMenu .start-menu__pane[data-start-menu-panel="multiplayer"] {
 position:absolute!important;inset:0 auto 0 0!important;
 display:none;flex-direction:column;justify-content:flex-start!important;align-items:stretch!important;
 width:clamp(310px,24vw,410px)!important;max-width:410px!important;height:100%!important;
 margin:0!important;padding:clamp(26px,4vh,54px) clamp(18px,2.2vw,34px)!important;
 overflow-y:auto!important;background:linear-gradient(90deg,rgba(5,14,32,.92),rgba(5,14,32,.8) 75%,rgba(5,14,32,0))!important;
}
#startMenu .start-menu__pane[data-start-menu-panel="multiplayer"].active {display:flex!important;}
#startMenu .start-menu__pane[data-start-menu-panel="multiplayer"] > * {width:100%!important;max-width:100%!important;}
#startMenu #multiplayerPanel .start-menu__section-head {display:grid;gap:16px;margin-bottom:26px;}
#startMenu #multiplayerPanel .start-menu__section-head .start-menu__back-button {width:max-content!important;}
#startMenu #multiplayerPanel .coop-ready-room__setup {min-height:0;display:block;background:transparent;}
#startMenu #multiplayerPanel .coop-flow {width:100%;padding:0;gap:16px;background:transparent;}
#startMenu #multiplayerPanel .coop-flow__step {justify-content:flex-start;gap:16px;}
#startMenu #multiplayerPanel .coop-flow__step h3 {font-size:clamp(15px,1.7vw,19px);line-height:1.3;margin:0;}
#startMenu #multiplayerPanel .coop-flow__step .start-menu__main-actions--menu-page {width:clamp(178px,12vw,216px)!important;max-width:100%!important;}
#startMenu #multiplayerPanel .coop-flow__step .start-menu__button {width:100%!important;}
/* Only room create/join lives in a full-size tablet. The hierarchy stays left. */
.coop-flow__step.gne-nebula-room-setup.rocket-tablet-window {
 position:fixed!important;inset:50% auto auto 50%!important;
 transform:translate(-50%,-50%)!important;z-index:2147483200!important;
 display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;
 width:min(1000px,calc(100vw - 24px))!important;max-width:none!important;
 height:min(740px,calc(100dvh - 24px))!important;min-height:0!important;
 border-radius:34px!important;padding:22px 28px!important;
 overflow:auto;box-sizing:border-box;
}
.coop-flow__step.gne-nebula-room-setup.rocket-tablet-window[hidden] {display:none!important;}
.coop-flow__tablet .nebula-pad__header {display:flex;align-items:center;justify-content:space-between;gap:18px;}
.coop-flow__tablet .nebula-pad__header > div:first-child {display:flex;flex-direction:column;gap:7px;}
.coop-flow__tablet .nebula-pad__header strong {font-size:clamp(15px,2vw,22px);letter-spacing:.07em;}
.coop-flow__tablet .nebula-pad__header .rocket-tablet-toolbar {margin-left:auto;}
.coop-flow__tablet .start-menu__back-button {align-self:start;}
.coop-flow__tablet .coop-flow__tabs {border-bottom:1px solid rgba(137,205,255,.24);padding:8px 0 12px;}
.coop-flow__tablet .coop-flow__tabs button {min-height:42px;flex:1;background:rgba(13,39,69,.92);}
.coop-flow__tablet #coopCreateSetup,.coop-flow__tablet #coopJoinSetup {position:relative;z-index:2;display:flex;gap:14px;align-items:stretch;width:min(700px,100%);padding:12px 0;}
.coop-flow__tablet .coop-flow__action {min-height:43px;}
.coop-flow__tablet .coop-flow__note {max-width:700px;}
/* In-stage server tablet presents EXACT same bezel, tabs and toolbar as builder. */
#coopStageViewport .coop-stage__terminal.rocket-tablet-window {border-radius:34px;border:1px solid rgba(126,207,255,.32);
 background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),
 radial-gradient(circle at top left,rgba(103,217,255,.16),transparent 24%),
 radial-gradient(circle at bottom right,rgba(151,103,255,.14),transparent 26%),linear-gradient(180deg,#070d18,#04080f);
 box-shadow:0 26px 80px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.08);}
#coopStageViewport .coop-stage__terminal-header {min-height:62px;}
#coopStageViewport .coop-stage__terminal-tabs {padding:10px 0;}
#coopStageViewport .coop-stage__terminal-tabs button {border-radius:9px;}
#coopStageViewport .coop-stage__terminal-body {z-index:2;}
@media(max-width:720px){
 #startMenu .start-menu__pane[data-start-menu-panel="multiplayer"] {width:min(360px,88vw)!important;}
 .coop-flow__step.gne-nebula-room-setup.rocket-tablet-window {padding:14px!important;}
 .coop-flow__tablet .nebula-pad__header {flex-wrap:wrap;}
 .coop-flow__tablet .nebula-pad__header .rocket-tablet-toolbar {display:none;}
}


/* v1084 — coop menu/tablet polish and crisp ladders */
#startMenu #multiplayerPanel .start-menu__section-desc{max-width:28ch;}
#startMenu #multiplayerPanel .coop-flow__step[data-coop-step="category"],
#startMenu #multiplayerPanel .coop-flow__step[data-coop-step="mission"]{padding-top:6px;}
#startMenu #multiplayerPanel .coop-flow__step .start-menu__main-actions--menu-page{width:100%;max-width:320px;}
#startMenu #multiplayerPanel .coop-flow__step .start-menu__button{text-align:left;}
#startMenu #multiplayerPanel .coop-ready-room[data-state="empty"] .coop-ready-room__notice{display:none!important;}
#startMenu #multiplayerPanel .coop-ready-room__setup{min-height:0;display:block;background:transparent;}
#startMenu #multiplayerPanel .coop-flow{width:100%;padding:0;gap:18px;background:transparent;}
#startMenu #multiplayerPanel .coop-flow__step{justify-content:flex-start;align-items:stretch;gap:16px;}
#startMenu #multiplayerPanel .coop-flow__step h3{margin:0;}
body.gne-coop-setup-open{overflow:hidden!important;}
.coop-flow__step.gne-nebula-room-setup.rocket-tablet-window{position:fixed!important;inset:0!important;transform:none!important;z-index:2147483200!important;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;min-height:0!important;border-radius:0!important;padding:22px 28px 28px!important;overflow:auto;box-sizing:border-box;}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__header{display:flex;align-items:center;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(114,184,235,.35);}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__header > div:first-child{display:flex;flex-direction:column;gap:6px;}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__header strong{font-size:clamp(18px,2.2vw,28px);letter-spacing:.08em;}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__tabs{display:flex;gap:10px;padding:18px 0 14px;border-bottom:1px solid rgba(114,184,235,.24);}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__tabs button{appearance:none;min-height:48px;padding:10px 18px;background:linear-gradient(180deg,rgba(13,41,71,.96),rgba(11,35,60,.96));color:#e4f6ff;border:1px solid rgba(102,179,228,.62);border-radius:12px;cursor:pointer;font:inherit;}
.coop-flow__step.gne-nebula-room-setup .nebula-pad__tabs button.active{background:linear-gradient(180deg,rgba(44,105,164,.98),rgba(20,68,112,.98));border-color:#a4ecff;box-shadow:0 0 0 1px rgba(164,236,255,.12), inset 0 1px 0 rgba(255,255,255,.12);}
.coop-flow__step.gne-nebula-room-setup #coopCreateSetup,
.coop-flow__step.gne-nebula-room-setup #coopJoinSetup{display:flex;flex-direction:column;gap:14px;width:min(760px,100%);padding:18px 0;}
.coop-flow__step.gne-nebula-room-setup #coopCreateSetup select,
.coop-flow__step.gne-nebula-room-setup #coopJoinSetup input{min-height:48px;padding:12px 14px;border-radius:10px;}
.coop-flow__step.gne-nebula-room-setup .coop-flow__action{min-height:48px;border-radius:12px;}
.coop-flow__step.gne-nebula-room-setup .coop-flow__note{max-width:860px;}
#coopStageViewport .coop-stage__level4-canvas{image-rendering:pixelated;image-rendering:crisp-edges;}
#coopStageViewport .coop-stage__terminal.rocket-tablet-window{position:fixed!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;width:min(1360px,calc(100vw - 48px))!important;height:min(900px,calc(100dvh - 48px))!important;max-height:none!important;inset:auto!important;border-radius:34px!important;padding:22px 28px 28px!important;border:1px solid rgba(126,207,255,.32)!important;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),radial-gradient(circle at top left,rgba(103,217,255,.16),transparent 24%),linear-gradient(145deg,rgba(6,16,34,.985),rgba(12,26,51,.98))!important;box-shadow:0 0 24px rgba(52,119,172,.45),0 0 80px rgba(7,11,22,.72), inset 0 0 45px rgba(32,122,200,.18)!important;overflow:hidden;}
#coopStageViewport .coop-stage__terminal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(114,184,235,.35);}
#coopStageViewport .coop-stage__terminal-tabs{display:none!important;}
#coopStageViewport .coop-stage__terminal-body{padding:18px 4px 20px;}
#coopStageViewport .coop-stage__room-controls{max-width:min(1240px,100%);margin:0 auto;gap:14px;}
#coopStageViewport .coop-stage__room-controls .coop-ready-room__members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
#coopStageViewport .coop-stage__room-controls .coop-ready-room__member{padding:12px 14px;border-radius:10px;}
#coopStageViewport .coop-ready-room__joinshare{align-items:end;}
#coopStageViewport .coop-stage__relay-row{max-width:840px;margin:18px auto 0;}
#coopStageViewport .coop-stage__terminal-body > p{max-width:860px;margin:0 auto 16px;}
#coopStageViewport .coop-stage__terminal-body #coopTerminalFriendlyFireRow{max-width:860px;margin:0 auto 18px;}

/* v1086 — viewport-centered Nebula Pad independent of 2D world camera */
.nebula-pad-shell.nebula-pad--screen-portal {
  position:fixed!important;left:50%!important;top:50%!important;
  right:auto!important;bottom:auto!important;inset:auto!important;
  transform:translate(-50%,-50%)!important;
  z-index:2147483500!important;
  display:flex;flex-direction:column;min-height:0!important;
  width:min(1360px,calc(100vw - 48px))!important;
  height:min(900px,calc(100dvh - 48px))!important;
  max-height:none!important;max-width:none!important;
  box-sizing:border-box;padding:22px 28px 28px!important;
  border-radius:34px!important;
  border:1px solid rgba(126,207,255,.42)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),
    radial-gradient(circle at top left,rgba(103,217,255,.16),transparent 24%),
    linear-gradient(145deg,rgba(6,16,34,.985),rgba(12,26,51,.98))!important;
  box-shadow:0 0 24px rgba(52,119,172,.5),0 0 80px rgba(7,11,22,.76),inset 0 0 45px rgba(32,122,200,.2)!important;
  overflow:hidden!important;
}
.nebula-pad-shell.nebula-pad--screen-portal[hidden]{display:none!important;}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__terminal-header{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex:none;min-height:62px;padding-bottom:14px;
  border-bottom:1px solid rgba(114,184,235,.35);
}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__terminal-tabs{display:none!important;}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__terminal-body{
  flex:1;min-height:0;overflow:auto;position:relative;z-index:2;padding:18px 4px 20px;
}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__terminal-body > p,
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__terminal-body #coopTerminalFriendlyFireRow{
  max-width:860px;margin:0 auto 16px;
}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__room-controls{max-width:1240px;margin:0 auto;gap:14px;}
.nebula-pad-shell.nebula-pad--screen-portal .coop-stage__relay-row{max-width:840px;margin:18px auto 0;}
@media(max-width:750px){
  .nebula-pad-shell.nebula-pad--screen-portal{width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)!important;padding:12px!important;border-radius:18px!important;}
  .nebula-pad-shell.nebula-pad--screen-portal .rocket-tablet-toolbar{display:none;}
}

/* v1086 R2: restore smooth high-fidelity graphics for new scenes. */
#coopStageViewport .coop-stage__level4-canvas { image-rendering:auto!important; }

/* v1088: hard FULLSCREEN station tablets (PLAYER and ADMIN coop).
   Target fullscreen root or document body, never stage camera coordinates. */
#coopTerminal.nebula-pad--screen-portal,
#coopStageViewport #coopTerminal.nebula-pad--screen-portal {
  position:fixed!important;
  inset:0!important;
  top:0!important;right:0!important;bottom:0!important;left:0!important;
  margin:0!important;
  transform:none!important;
  translate:none!important;
  width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;
  max-width:none!important;max-height:none!important;
  box-sizing:border-box!important;
  border-radius:0!important;
  padding:clamp(12px,2vw,32px)!important;
  overflow:hidden!important;
  z-index:2147483600!important;
  background:linear-gradient(160deg,#08192e 0%,#091b36 45%,#061225 100%)!important;
}
#coopTerminal.nebula-pad--screen-portal[hidden]{display:none!important;}
#coopTerminal.nebula-pad--screen-portal .coop-stage__terminal-body {
  min-height:0!important;flex:1!important;
  overflow:auto!important;
  max-width:100%!important;
}
#coopTerminal.nebula-pad--screen-portal .coop-stage__room-controls {
  width:100%;max-width:1440px;margin:0 auto;
}
@media(max-width:750px){
 #coopTerminal.nebula-pad--screen-portal{padding:12px!important;border-radius:0!important;}
 #coopTerminal.nebula-pad--screen-portal .coop-stage__room-controls .coop-ready-room__members {grid-template-columns:1fr;}
}

/* v1089: Ferrum-9 style windowed game field for ALL new scenes.
   Previously coop used 100vw even BEFORE F11: a maximized browser added
   height but could never reveal additional horizontal world. The 16:9
   windowed field grows in both dimensions when F11 removes browser chrome.
   The Canvas raster always follows the *actual field rect* (no stretching). */
body.gne-coop-play-mode::before {
  content:"";position:fixed;inset:0;z-index:2147482999;
  background:#020713;pointer-events:none;
}
.gne-scene-viewport-frame {
  position:fixed;left:50%;top:50%;right:auto;bottom:auto;
  width:min(100vw, 177.7777778dvh);
  height:min(100dvh, 56.25vw);
  box-sizing:border-box;aspect-ratio:16/9;
  transform:translate(-50%,-50%);overflow:hidden;
}
.gne-scene-viewport-frame.gne-scene-viewport-frame--native-fullscreen {
  inset:0;left:0;top:0;right:0;bottom:0;
  width:100vw;height:100dvh;aspect-ratio:auto;
  transform:none;
}
#coopStageViewport.gne-coop-playfield.gne-scene-viewport-frame {
  position:fixed!important;
  inset:auto!important;left:50%!important;top:50%!important;
  right:auto!important;bottom:auto!important;
  width:min(100vw, 177.7777778dvh)!important;
  height:min(100dvh, 56.25vw)!important;
  max-width:none!important;max-height:none!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;overflow:hidden!important;
}
#coopStageViewport.gne-coop-playfield.gne-scene-viewport-frame--native-fullscreen {
  inset:0!important;left:0!important;top:0!important;right:0!important;bottom:0!important;
  width:100vw!important;height:100dvh!important;
  aspect-ratio:auto!important;transform:none!important;
}
/* v1089: the generic `canvas { max-width:1280px }` affected the multiplayer
   renderer even when the native scene viewport was larger. This is the
   actual horizontal clipping root cause. Do not change Ferrum-9's #game. */
#coopStageViewport.gne-coop-playfield .coop-stage__level4-canvas {
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;
  max-width:none!important;max-height:none!important;
  margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  object-fit:fill!important;
  image-rendering:auto!important;
}

/* v1090: immersion and stable resize. Never alter Ferrum-9 presentation. */
body.gne-coop-play-mode #startMenu { visibility:hidden!important;pointer-events:none!important; }
body.gne-coop-play-mode { background:#020713!important; }
#coopStageViewport.gne-scene-resizing .coop-stage__level4-canvas {visibility:hidden!important;}
#coopStageViewport.gne-coop-playfield .coop-stage__topline,
#coopStageViewport.gne-coop-playfield .coop-ready-room__rocket-status,
#coopStageViewport.gne-coop-playfield .coop-ready-room__notice:not([data-error="true"]) {display:none!important;}
#coopStageViewport.gne-coop-playfield .coop-ready-room__notice[data-error="true"] {
 display:block!important;bottom:24px;left:50%;width:max-content;max-width:min(620px,90vw);
 border:1px solid #da807a;border-radius:10px;background:rgba(35,11,23,.93);padding:10px 18px;
 color:#ffdcd8;font-size:13px;z-index:18;
}

.coop-player-hud{position:absolute;z-index:14;top:48px;left:16px;display:grid;gap:10px;min-width:248px;pointer-events:none;color:#eefaff;text-shadow:0 0 10px rgba(0,0,0,.55);}
.coop-player-hud__stats{display:flex;gap:10px;flex-wrap:wrap;}
.coop-player-hud__stats span,.coop-player-hud__hint{background:rgba(3,18,34,.84);border:1px solid rgba(121,209,244,.46);border-radius:12px;padding:7px 10px;backdrop-filter:blur(3px);}
.coop-player-hud__inventory{display:grid;gap:8px;}
.coop-player-hud__slot{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;padding:9px 12px;border-radius:14px;border:1px solid rgba(120,203,239,.38);background:rgba(4,18,34,.82);color:#eafcff;font:600 13px/1.15 inherit;box-shadow:0 8px 22px rgba(0,0,0,.24);text-align:left;pointer-events:auto;cursor:pointer;}
.coop-player-hud__slot-num{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(113,213,255,.18);border:1px solid rgba(162,239,255,.38);font-weight:800;}
.coop-player-hud__slot.is-active{border-color:#77f0ff;background:linear-gradient(180deg,rgba(9,39,64,.96),rgba(5,24,44,.92));box-shadow:0 0 0 1px rgba(119,240,255,.28),0 10px 28px rgba(0,0,0,.32);}
.coop-player-hud__slot.is-empty{opacity:.72;}
.coop-player-hud__hint{font-size:12px;line-height:1.35;max-width:320px;}
#coopStageViewport.gne-coop-playfield .coop-player-hud{display:grid;}
@media(max-width:900px){.coop-player-hud{top:58px;left:10px;min-width:210px}.coop-player-hud__slot{padding:8px 10px;font-size:12px}.coop-player-hud__hint,.coop-player-hud__stats span{font-size:11px;padding:6px 8px}}
.coop-room-hud-actions {position:absolute;z-index:15;top:12px;right:16px;display:flex;align-items:center;gap:8px;}
.coop-room-hud-actions button {border:1px solid rgba(119,205,246,.7);background:rgba(2,21,42,.9);color:#e7f8ff;
  border-radius:10px;padding:9px 14px;font:600 13px/1.2 system-ui,sans-serif;cursor:pointer;min-height:36px;}
.coop-room-hud-actions button:hover,.coop-room-hud-actions button:focus-visible {background:#205883;outline:1px solid #a2eaff;}
@media(max-width:650px){.coop-room-hud-actions{top:5px;right:5px;gap:4px}.coop-room-hud-actions button{padding:7px 8px;font-size:11px}}


/* v1091: join errors remain visible before entering a room, even under the
   fullscreen room-setup tablet. Hide non-error helper text only. */
.coop-flow__join-error[hidden]{display:none!important;}
.coop-flow__join-error:not([hidden]){display:block!important;color:#ffe0db;background:rgba(77,17,30,.92);border:1px solid #e97777;border-radius:10px;padding:12px 16px;line-height:1.5;max-width:720px;}
#startMenu #multiplayerPanel .coop-ready-room[data-state="empty"] .coop-ready-room__notice[data-error="true"]{display:block!important;}

/* v1092: explicit membership choice stays visible in the fullscreen setup Pad. */
.coop-flow__existing-room[hidden]{display:none!important;}
.coop-flow__existing-room:not([hidden]){display:grid;gap:12px;max-width:720px;padding:16px;border:1px solid rgba(114,191,229,.6);border-radius:12px;background:rgba(7,31,48,.94);color:#e2f4ff;}
.coop-flow__existing-room-info{margin:0;line-height:1.55;}
.coop-flow__existing-room-actions{display:flex;gap:10px;flex-wrap:wrap;}
.coop-flow__existing-room-actions .coop-flow__action{flex:1 1 190px;min-width:0;}

/* v1101 shared gameplay pointer lock + local coop pause */
body.gne-coop-play-mode #coopStageViewport.gne-coop-playfield,body.gne-coop-play-mode #coopStageViewport.gne-coop-playfield canvas {cursor:none!important;}
#coopPauseMenu.gne-coop-local-pause[hidden]{display:none!important;}
#coopPauseMenu.gne-coop-local-pause{position:fixed!important;inset:0!important;z-index:250!important;display:grid!important;place-items:center!important;pointer-events:auto!important;background:rgba(0,7,20,.75)!important;cursor:auto!important;}
#coopPauseMenu .gne-coop-local-pause__content{width:min(550px,calc(100vw - 40px));padding:34px 36px;display:grid;gap:18px;text-align:center;border:1px solid #69cae5;border-radius:18px;background:linear-gradient(150deg,#05172b,#0c2440);color:#e7faff;box-shadow:0 15px 80px #000b;}
#coopPauseMenu button{cursor:pointer;min-height:46px;border:1px solid #427eae;border-radius:9px;background:#15375b;color:#f0faff;font:inherit;}
body.gne-coop-play-mode #coopStageViewport button,body.gne-coop-play-mode #coopStageViewport input,body.gne-coop-play-mode #coopStageViewport select,body.gne-coop-play-mode #coopStageViewport #coopTerminal{cursor:auto!important;}

/* v1103: native Ferrum-style canvas HUD is the single in-game HUD authority. */
body.gne-coop-play-mode #coopPlayerHud{display:none!important;}
body.gne-coop-play-mode .coop-room-hud-actions{display:none!important;}

/* v1104: the shared Ferrum-9 report dialog is above coop's local pause. */
body.bug-report-open #coopPauseMenu{visibility:hidden!important;pointer-events:none!important;}
/* v1105 coop rocket Ready, server-authoritative launch and mission landing */
#coopRocketReadyPrompt[hidden],#coopLaunchSequence[hidden],#coopMissionWorld[hidden],#coopRocketTablet[hidden]{display:none!important;}
.coop-rocket-ready-prompt{position:absolute;z-index:26;left:50%;bottom:14%;transform:translateX(-50%);display:flex;align-items:center;gap:15px;max-width:90%;padding:14px 22px;border:1px solid #72cfe7;border-radius:14px;color:#edfbff;background:linear-gradient(130deg,rgba(3,19,37,.96),rgba(12,52,73,.95));box-shadow:0 10px 38px #000b;font-weight:650;pointer-events:none;white-space:nowrap;}
#coopRocketReadyKey{border:1px solid #b5efff;border-radius:8px;padding:7px 12px;font:850 17px Segoe UI,sans-serif;color:#7ceeff;box-shadow:inset 0 0 14px #154969;}
.coop-launch-sequence{position:absolute;inset:0;z-index:45;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#213158 0%,#0a1129 52%,#020711 100%);color:#e4faff;}
.coop-launch-sequence__sky{position:absolute;inset:0;background:repeating-linear-gradient(118deg,transparent 0 30px,#81c8fb16 31px 32px,transparent 33px 70px);animation:gne-launch-stars 2s linear infinite;}
.coop-launch-sequence__rocket{position:absolute;top:55%;left:50%;font-size:108px;transform:translate(-50%,-50%) rotate(-45deg);filter:drop-shadow(0 24px 22px #38bafa9c);animation:gne-rocket-depart 4.4s ease-in forwards;}
.coop-launch-sequence__title,.coop-launch-sequence__caption{position:absolute;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;text-shadow:0 2px 20px #000;}
.coop-launch-sequence__title{top:14%;font:900 clamp(21px,4vw,47px) Segoe UI,sans-serif;letter-spacing:.13em;}.coop-launch-sequence__caption{bottom:11%;font-size:17px;letter-spacing:.06em;}
@keyframes gne-rocket-depart{0%{top:75%;opacity:1;transform:translate(-50%,-50%) rotate(-45deg) scale(.75)}20%{top:67%;transform:translate(-50%,-50%) rotate(-45deg) scale(1)}100%{top:-25%;opacity:.25;transform:translate(-50%,-50%) rotate(-45deg) scale(.3)}}
@keyframes gne-launch-stars{from{background-position:0 0}to{background-position:-120px 320px}}
.coop-mission-world{position:absolute;inset:0;z-index:9;overflow:hidden;color:#eaf8ff;background:radial-gradient(ellipse at 75% 24%,#5137a69c,transparent 35%),radial-gradient(ellipse at 25% 65%,#192655 6%,transparent 80%),linear-gradient(#060b22,#161a39 60%,#09081f);}
.coop-mission-world__clouds{position:absolute;inset:0;pointer-events:none;opacity:.7;background:radial-gradient(ellipse at 45% 18%,#3685ca45,transparent 35%),repeating-linear-gradient(112deg,transparent 0 135px,#b6a5ff1a 138px 139px,transparent 143px 230px);}
.coop-mission-world__headline{position:absolute;left:50%;top:12%;transform:translateX(-50%);display:grid;text-align:center;gap:10px;font:850 clamp(22px,3vw,37px) Segoe UI,sans-serif;letter-spacing:.14em;text-shadow:0 3px 22px #000;white-space:nowrap;}
.coop-mission-world__headline small{font-size:14px;color:#99e5ff;letter-spacing:.03em;font-weight:500;}
.coop-mission-world__terrain{position:absolute;inset:0;pointer-events:none;}
.coop-mission-world__island{position:absolute;height:52px;border-top:11px solid #90cafa;box-shadow:0 -5px 25px #3ecaff55;background:linear-gradient(#60447c,#201936);border-radius:12px 12px 4px 4px;}
.coop-mission-world__island--a{left:5%;bottom:22%;width:26%;}.coop-mission-world__island--b{left:35%;bottom:38%;width:25%;}.coop-mission-world__island--c{left:67%;bottom:53%;width:26%;}
.coop-mission-world__bunker{position:absolute;right:2%;bottom:9%;width:23%;height:36%;border:4px solid #8196ba;background:repeating-linear-gradient(0deg,#1a2348 0 12px,#0c152e 13px 17px);box-shadow:0 0 25px #84abff69;}
.coop-mission-world__ship{position:absolute;left:11%;bottom:29%;font-size:85px;filter:drop-shadow(0 4px 10px #56bdff);}
.coop-mission-world__tablet-button{position:absolute;z-index:18;bottom:8%;left:50%;transform:translateX(-50%);padding:14px 25px;background:#093653ee;border:1px solid #63d6f5;border-radius:12px;color:#e2f9ff;cursor:pointer;font:700 15px Segoe UI,sans-serif;white-space:nowrap;}
.coop-mission-world__note{position:absolute;left:50%;bottom:2%;transform:translateX(-50%);text-align:center;color:#b9d7ef;font-size:12px;white-space:nowrap;}
.coop-mission-tablet{position:fixed!important;inset:4% 5%!important;z-index:51!important;height:92%!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;color:#e9f8ff;}
.coop-mission-tablet__tabs{display:flex;}.coop-mission-tablet__body{min-height:0;}.coop-mission-tablet__network{overflow:auto;min-height:240px;}.coop-mission-tablet__console{min-height:170px;max-height:270px;overflow:auto;padding:14px;background:#040d19;color:#95ebbb;white-space:pre-wrap;font:13px/1.5 monospace;}.coop-mission-tablet__console-input{display:flex;gap:10px;}.coop-mission-tablet__console-input input{flex:1;min-width:100px;}.coop-mission-tablet__console-input button{padding:10px 20px;cursor:pointer;}
@media(max-width:700px){.coop-mission-tablet{inset:3% 2%!important;height:94%!important;padding:9px;}.coop-rocket-ready-prompt{bottom:7%;font-size:12px;padding:8px 10px;}.coop-mission-world__headline{top:16%;}}

/* v1106 — authored Energy Planet world raster. Pure presentation; no local authority. */
.coop-mission-world__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;background:#070b20;}
.coop-mission-world__headline{z-index:2;top:3%;font-size:clamp(15px,2.7vw,26px);gap:2px;pointer-events:none;letter-spacing:.1em;}
.coop-mission-world__headline small{font-size:12px;}
.coop-mission-world__survey{position:absolute;z-index:11;top:12%;left:14px;width:min(400px,calc(100% - 28px));padding:13px 15px;border-radius:14px;border:1px solid rgba(115,204,246,.65);box-shadow:0 14px 50px rgba(0,0,0,.5);background:linear-gradient(155deg,rgba(4,16,36,.97),rgba(14,28,57,.9));backdrop-filter:none;-webkit-backdrop-filter:none;font:13px/1.4 Segoe UI,sans-serif;}
.coop-mission-world__survey-header{display:flex;align-items:center;gap:12px;justify-content:space-between;font-size:14px;}
.coop-mission-world__survey-header span{font-size:10px;color:#91bfd7;white-space:nowrap;}
.coop-mission-world__sectors{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0;}
.coop-mission-world__sectors button{min-height:33px;white-space:normal;text-align:left;padding:7px 9px;border:1px solid #37667b;border-radius:8px;background:#142942e8;color:#c3e6f8;cursor:pointer;font:600 12px/1.35 Segoe UI,sans-serif;}
.coop-mission-world__sectors button.active{background:linear-gradient(130deg,#12566d,#0f394c);color:#e9ffff;border-color:#7df1ef;box-shadow:inset 0 0 18px #21899755;}
.coop-mission-world__sectors button:hover,.coop-mission-world__sectors button:focus-visible{border-color:#93eaff;}
.coop-mission-world__survey p{margin:4px 0 0;font-size:12px;color:#bbdbea;min-height:40px;}
.coop-mission-world__tablet-button{bottom:7%;z-index:14;}
.coop-mission-world__note{z-index:13;white-space:normal;width:94%;font:11px/1.4 Segoe UI,sans-serif;}
/* Mission tasks use the unchanged Ferrum-9 shared rocket-task-row styling. */
#coopRocketMissionObjectives.rocket-tasks-list{list-style:none;padding:0;margin:12px 0;}
#coopRocketMissionObjectives .rocket-task-row__body small{display:block;margin-top:4px;white-space:normal;}
@media(max-width:730px){.coop-mission-world__survey{top:14%;left:7px;padding:8px;width:min(285px,calc(100% - 14px));}.coop-mission-world__sectors{gap:3px;margin:5px 0;}.coop-mission-world__sectors button{font-size:10px;padding:4px;min-height:29px;}.coop-mission-world__survey p{font-size:11px;min-height:25px;}.coop-mission-world__tablet-button{font-size:11px;padding:10px 12px;}.coop-mission-world__headline{top:3%;}}

/* v1108 Ferrum-9-first interaction presentation. No unsolicited active-game system banners. */
#coopInteractionPrompt[hidden]{display:none!important;}
#coopInteractionPrompt.gne-game-interaction-prompt{position:absolute;z-index:35;left:50%;bottom:6%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(92%,730px);min-height:44px;padding:9px 18px;border:1px solid rgba(126,205,243,.67);border-radius:13px;background:rgba(6,17,34,.91);box-shadow:0 12px 38px rgba(0,0,0,.55),inset 0 0 15px rgba(54,139,214,.10);color:#eef9ff;font:600 14px/1.35 'Segoe UI','Trebuchet MS',sans-serif;text-shadow:0 1px 4px #030b17;pointer-events:none;}
.gne-game-interaction-prompt__key{display:grid;place-items:center;min-width:40px;padding:7px 9px;border:1px solid #a3dbfb;border-radius:7px;background:rgba(59,110,151,.26);color:#aaf1ff;font:800 15px 'Segoe UI',sans-serif;}
#coopRocketReadyPrompt{display:none!important;}
body.gne-coop-play-mode #coopRoomStatus,body.gne-coop-play-mode .coop-ready-room__notice,body.gne-coop-play-mode #coopHudHint{display:none!important;}
.coop-mission-world__headline,.coop-mission-world__note,.coop-mission-world__survey-header,.coop-mission-world__survey p{display:none!important;}
.coop-mission-world__survey{top:12px;width:min(290px,calc(100% - 28px));padding:9px;background:rgba(5,17,34,.84);}
.coop-mission-world__sectors{margin:0;}
@media(max-width:600px){#coopInteractionPrompt.gne-game-interaction-prompt{font-size:12px;bottom:3%;padding:8px 11px;}}

#coopLaunchRocketCanvas.coop-launch-sequence__rocket{display:block!important;width:176px;height:170px;max-width:none;max-height:none;background:transparent;image-rendering:auto;}
.coop-launch-sequence__title,.coop-launch-sequence__caption{display:none!important;}

/* Keep mission sector navigation separate from the canonical top-left HUD. */
.coop-mission-world__survey{left:auto!important;right:14px!important;top:142px!important;}
@media(max-width:650px){.coop-mission-world__survey{top:124px!important;right:8px!important;max-width:min(280px,calc(100% - 16px));}}

/* v1109: native Ferrum-9 GameLaunchSystem drives vertical rocket motion. */
#coopLaunchSequence .coop-launch-sequence__rocket{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;animation:none!important;width:min(480px,100%)!important;height:min(650px,100%)!important;object-fit:contain!important;filter:none!important;}
#coopLaunchSequence .coop-launch-sequence__sky{animation:none!important;opacity:.18;}

/* v1109: one Ferrum-9 NEBULA PAD panel structure, skinned by the existing shared shell. */
/* v1119: mission tablet uses the frozen Ferrum-9 .rocket-tablet-window skin. */
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
#coopRocketTablet [data-coop-rocket-panel][hidden]{display:none!important;}
#coopRocketTablet .terminal-panel.open{display:block!important;min-height:100%;}
#coopRocketTablet .rocket-panel__body{padding:14px;}
#coopRocketTablet .terminal-console-surface{height:min(54vh,430px);}
#coopRocketTablet .terminal-console-window--active{position:relative;width:100%;height:100%;min-height:0;}
#coopRocketTablet .terminal-console-window .terminal-output{min-height:130px;max-height:230px;overflow:auto;}
#coopRocketTablet .coop-mission-tablet__inventory-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
#coopRocketTablet .rocket-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
/* v1119: inherited Ferrum-9 tablet panel / chrome rules */
/* v1119: responsive portal geometry supplied by shared shell */

/* Shared NEBULA PAD is portal-mounted as a screen root, not centered by a legacy transform. */
/* v1119: mission tablet uses the frozen Ferrum-9 .rocket-tablet-window skin. */
/* v1119: responsive portal geometry supplied by shared shell */

/* v1111: stage errors must be visible; never hide a rejected presence request. */
body.gne-coop-play-mode #coopRoomStatus[data-error="true"]{display:block!important;position:absolute;bottom:12%;left:50%;transform:translateX(-50%);z-index:60;max-width:min(88%,660px);padding:12px 16px;border:1px solid #f39292;border-radius:10px;background:rgba(35,9,20,.96);color:#ffe3e3;text-align:center;pointer-events:none;}
/* Launch happens in coopLevel4Scene; the separate mock launch backdrop is retired. */
#coopLaunchSequence{display:none!important;}
/* v1111: only the camera-correct canvas avatars may render in the live playfield.
   The obsolete absolutely-positioned DOM ghosts used a 170ms CSS tween over a
   separate coordinate system and visually competed with 60Hz canvas poses. */
#coopStageViewport.gne-coop-playfield #coopStageAvatars{display:none!important;}

/* v1118 — explicit screen-portal layers above the full-screen coop viewport. */
#coopRocketTablet.coop-mission-tablet.nebula-pad--screen-portal {
  position:fixed!important;z-index:2147483400!important;
  display:flex!important;pointer-events:auto!important;
}
#coopRocketTablet.coop-mission-tablet.nebula-pad--screen-portal[hidden] {display:none!important;}
body.gne-coop-play-mode .bug-report:not([hidden]) {
  position:fixed!important;z-index:2147483600!important;
  visibility:visible!important;pointer-events:auto!important;
}

/* v1119 — Ferrum-9 frozen tablet chrome: only portal placement is mission-specific. */
#coopRocketTablet.coop-mission-tablet.nebula-pad--screen-portal{
  border-radius:34px!important;border:1px solid rgba(126,207,255,.22)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015)),radial-gradient(circle at top left,rgba(103,217,255,.16),transparent 24%),radial-gradient(circle at bottom right,rgba(151,103,255,.14),transparent 26%),linear-gradient(180deg,rgba(7,13,24,.98),rgba(4,8,15,.98))!important;
  grid-template-rows:auto auto minmax(0,1fr)!important;display:grid!important;
}
#coopRocketTablet .terminal-body{min-height:0;overflow:hidden;}

#coopRocketTablet .rocket-panel{border-radius:inherit;}

.coop-mission-world__disembark:not([hidden]){position:absolute;z-index:18;left:50%;bottom:14%;transform:translateX(-50%);padding:15px 24px;border:1px solid #82ecff;border-radius:12px;background:linear-gradient(130deg,#052039,#135279);color:#f1fcff;font:750 15px Segoe UI,sans-serif;box-shadow:0 10px 28px #000a;cursor:pointer;}
.coop-mission-world__disembark[hidden]{display:none!important;}

/* v1120: mission NEBULA PAD occupies the actual fullscreen host, not its world camera. */
#coopRocketTablet.coop-mission-tablet.nebula-pad--screen-portal {
 position:fixed!important;inset:0!important;left:0!important;top:0!important;
 right:0!important;bottom:0!important;transform:none!important;
 width:100vw!important;height:100dvh!important;min-width:0!important;min-height:0!important;
 max-width:none!important;max-height:none!important;box-sizing:border-box!important;
 padding:clamp(12px,2vh,28px) clamp(12px,2vw,32px)!important;
 display:grid!important;grid-template-rows:auto auto minmax(0,1fr)!important;
 border-radius:0!important;z-index:2147483500!important;
}
#coopRocketTablet.coop-mission-tablet.nebula-pad--screen-portal.nebula-pad--fullscreen-child{
 position:absolute!important;width:100%!important;height:100%!important;
}
#coopRocketTablet .terminal-body{min-height:0!important;overflow:auto!important;}
#coopRocketTablet [data-coop-rocket-panel]:not([hidden]){min-height:0;overflow:auto;}
#coopRocketTablet .terminal-tabs{display:flex;flex-wrap:wrap;min-height:0;}
#coopEnergyPlanetCanvas{max-width:none!important;max-height:none!important;width:100%!important;height:100%!important;}

/* v1121 mission tablet: consume the frozen Ferrum-9 panel/CLI/tabs styles unaltered. */
#coopRocketTablet .rocket-tasks-content{padding:12px;max-width:100%;}
#coopRocketTablet .terminal-console-window--active{min-width:0;}
#coopRocketTablet .terminal-body .rocket-panel{min-height:0;}
#coopRocketTablet .terminal-inline-row{gap:8px;}
#coopRocketTablet .terminal-inline-row input{flex:1;min-width:80px;}

/* v1122: local five-beat countdown drawn over shared world viewport. */
.coop-launch-countdown{position:absolute;left:50%;top:22%;transform:translate(-50%,-50%);z-index:60;font:900 clamp(70px,14vmin,180px)/1 system-ui,sans-serif;color:#e7faff;text-shadow:0 0 24px #20bbf5,0 5px 45px #172b62;pointer-events:none;animation:gne-launch-count-pulse 1s ease-in-out infinite}
.coop-launch-countdown[hidden]{display:none!important}
@keyframes gne-launch-count-pulse{0%{filter:brightness(1.5);transform:translate(-50%,-50%) scale(1.05)}85%{filter:brightness(1);transform:translate(-50%,-50%) scale(.95)}}

/* v1122 Ferrum console/notepad spatial parity */
#coopRocketTablet .coop-console-split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,1fr);gap:12px;min-height:0;height:calc(100% - 50px);padding:8px}
#coopRocketTablet .coop-console-split .terminal-console-surface{min-width:0;min-height:0;overflow:auto}
#coopRocketTablet .coop-console-notebook{min-width:0;min-height:0;overflow:auto;border:1px solid #44718a;border-radius:9px;background:linear-gradient(140deg,#0c233d,#10172d);padding:14px;color:#cbecff}
#coopRocketTablet .coop-console-notebook h3{font:600 13px system-ui;color:#7edcff;letter-spacing:.08em}
#coopRocketTablet .coop-console-notebook li{margin:12px 0;line-height:1.5;white-space:normal}
#coopRocketTablet .coop-console-notebook li strong{display:block;color:#e3fcff}
#coopRocketTablet .coop-console-notebook li small{display:block;color:#9fb9cc}
@media(max-width:750px){#coopRocketTablet .coop-console-split{grid-template-columns:1fr;grid-template-rows:minmax(220px,2fr) minmax(160px,1fr)}}

/* GNE-V1123 FERRUM TABLET SCOPED ID STYLE PARITY - BEGIN */
#coopRocketTablet [data-ferrum-id="terminalPanelSystem"].open,
#coopRocketTablet [data-ferrum-id="terminalPanelSystem"] .rocket-panel,
#coopRocketTablet [data-ferrum-id="rocketSystemContent"] {
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

@media  (max-width: 1280px), (max-height: 820px) {
#coopRocketTablet [data-ferrum-id="terminalClose"] {
    min-height: 32px !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }
#coopRocketTablet [data-ferrum-id="terminalTabStats"] {
    min-width: 138px !important;
  }
}

@media  (max-width: 760px) {
#coopRocketTablet [data-ferrum-id="terminalTabStats"],
  #terminalTabData {
    min-width: 132px !important;
  }
}

#coopRocketTablet [data-ferrum-id="terminalPanelSystem"].open {
  min-height: 0 !important;
  overflow: hidden !important;
}

#coopRocketTablet [data-ferrum-id="terminalPanelSystem"].open .rocket-panel {
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

#coopRocketTablet [data-ferrum-id="rocketSystemContent"].rocket-panel__body,
#coopRocketTablet [data-ferrum-id="rocketSystemContent"] {
  min-height: 0 !important;
  height: 100% !important;
  display: block !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable both-edges !important;
  padding-right: 8px !important;
}

#coopRocketTablet [data-ferrum-id="rocketSystemContent"] .scheme-shell {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: max-content !important;
  padding-bottom: 16px !important;
}

#coopRocketTablet [data-ferrum-id="rocketSystemContent"] .scheme-canvas {
  width: min(100%, 1360px) !important;
  min-width: 900px !important;
  height: auto !important;
}

#coopRocketTablet [data-ferrum-id="rocketSystemContent"] .scheme-objectives {
  margin-bottom: 18px !important;
}

@media  (max-width: 980px) {
#coopRocketTablet [data-ferrum-id="rocketSystemContent"] .scheme-canvas {
    min-width: 820px !important;
  }
}

@media  (max-width: 760px) {
#coopRocketTablet [data-ferrum-id="rocketSystemContent"] .scheme-canvas {
    min-width: 760px !important;
  }
}

#coopRocketTablet [data-ferrum-id="terminalPanelTasks"].open {
  min-height: 0 !important;
  height: 100% !important;
  overflow: hidden !important;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"].terminal-panel--rocket {
  overflow: hidden !important;
  padding: 12px 14px !important;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stats-grid,
#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stats-grid--model {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: minmax(78px, 1fr);
  gap: 8px;
  align-content: stretch;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-card,
#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-card--wide {
  grid-column: auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 14px;
  padding: 10px 12px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-card span {
  margin-bottom: 5px;
  font-size: 12px;
  line-height: 1.1;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-card strong {
  font-size: 20px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-note {
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.15;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-bar {
  height: 8px;
  margin-top: 7px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-dispatch-dots {
  margin-top: 8px;
  gap: 5px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-dispatch-dots span {
  width: 8px;
  height: 8px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-brake-icon {
  margin-top: 8px;
  width: 64px;
  height: 20px;
  border-radius: 10px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-brake-icon::before,
#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-brake-icon::after {
  top: 4px;
  width: 14px;
  height: 11px;
  border-width: 2px;
  border-radius: 0 0 5px 5px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-brake-icon::after {
  left: 12px;
}

#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-brake-icon::before {
  right: 12px;
}

@media  (max-width: 920px) {
#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stats-grid,
  #coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stats-grid--model {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: minmax(72px, 1fr);
    gap: 7px;
  }
#coopRocketTablet [data-ferrum-id="terminalPanelStats"] .rocket-stat-card strong {
    font-size: 17px;
  }
}
/* GNE-V1123 FERRUM TABLET SCOPED ID STYLE PARITY - END */

/* v1124: actual Ferrum RocketTable source controls own the full viewport. */
#coopRocketTablet .coop-tablet-obsolete-adapter{display:none!important}
#coopRocketTablet.gne-ferrum-tablet-exact-copy{overflow:hidden!important}
#coopRocketTablet.gne-ferrum-tablet-exact-copy .terminal-body{flex:1 1 auto;min-height:0!important;height:100%;overflow:hidden!important}
#coopRocketTablet.gne-ferrum-tablet-exact-copy #terminalPanelCli,
#coopRocketTablet.gne-ferrum-tablet-exact-copy [data-ferrum-id="terminalPanelCli"]{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}
#coopRocketTablet.gne-ferrum-tablet-exact-copy [data-ferrum-id="terminalConsoleSurface"]{flex:1;min-height:0;height:100%!important;max-height:none!important}
#coopRocketTablet.gne-ferrum-tablet-exact-copy [data-ferrum-id="terminalActiveConsoleWindow"]{height:100%;min-height:0}
#coopRocketTablet.gne-ferrum-tablet-exact-copy [data-ferrum-id="terminalOutput"]{max-height:none;flex:1;min-height:0;overflow:auto}
#coopRocketTablet.gne-ferrum-tablet-exact-copy [data-ferrum-id="terminalConsoleStack"]{flex-shrink:0}
#coopMissionTabletOpen[hidden]{display:none!important}

/* v1148 — non-authoritative return-to-rocket presentation. */
.coop-mission-rocket-hint{position:absolute;left:50%;bottom:15%;transform:translateX(-50%);z-index:9;
  color:#e9faff;background:rgba(8,22,39,.93);border:1px solid #54aeca;border-radius:12px;padding:10px 18px;
  font:600 15px system-ui;text-align:center;pointer-events:none}
.coop-mission-rocket-hint[hidden],.coop-mission-rocket-interior[hidden]{display:none!important}
.coop-mission-rocket-interior{position:absolute;inset:12% 17%;z-index:12;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:22px;background:rgba(8,18,39,.97);border:3px solid #4986aa;border-radius:24px;color:#d8f8ff;
  font:600 17px system-ui;text-align:center}
.coop-mission-rocket-interior strong{font-size:clamp(22px,3vw,40px);letter-spacing:.1em}
.coop-mission-rocket-interior button{padding:12px 24px;border-radius:10px;color:#fff;background:#175576;border:1px solid #68cafa;cursor:pointer}

/* v1152 energy planet cleanup */
#coopMissionSurvey{display:none!important;}
[data-coop-energy-sector]{display:none!important;}

/* v1153: cloned Ferrum tablet buttons blocked by bunker mode */
#coopRocketTablet [data-ferrum-id="terminalTabStats"][hidden],#coopRocketTablet [data-ferrum-id="terminalTabInventory"][hidden],#coopRocketTablet [data-ferrum-id="terminalTabDemo"][hidden]{display:none!important;}

/* v1161: one unified framed, centered input affordance in prep and on planet. */
#coopInteractionPrompt.gne-game-interaction-prompt,
#coopMissionRocketHint.gne-game-interaction-prompt{
  position:absolute!important;z-index:40!important;left:50%!important;top:50%!important;
  bottom:auto!important;transform:translate(-50%,-50%)!important;
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:max-content;max-width:min(88%,650px);padding:11px 20px;
  border:1px solid rgba(126,205,243,.82);border-radius:13px;
  background:rgba(5,18,37,.94);box-shadow:0 12px 38px #000a;
  color:#eaf9ff;font:600 14px/1.35 system-ui;text-align:center;pointer-events:none;
}
#coopMissionRocketHint[hidden]{display:none!important;}
#coopMissionRocketHint .gne-game-interaction-prompt__key{flex-shrink:0}
.coop-orbital-instruction{margin:10px 0 0;color:#c4eaff;line-height:1.45;max-width:520px}

/* v1163: unified cooperative interaction hints — bottom centre, not viewport midpoint. */
#coopInteractionPrompt.gne-game-interaction-prompt,
#coopMissionRocketHint.gne-game-interaction-prompt{
  top:auto!important;bottom:clamp(18px,5.5vh,70px)!important;
  left:50%!important;transform:translateX(-50%)!important;
}
/* Entering the rocket is a state transition, not a fullscreen opaque modal. */
#coopMissionRocketInterior{display:none!important;}

/* v1163: old separate ready overlay is superseded by the unified bottom prompt. */
#coopRocketReadyPrompt{display:none!important;}

/* Co-op verified completion modal; separate from gameplay state. */
.coop-mission-complete-notice{position:absolute;inset:0;z-index:125;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;background:rgba(3,10,24,.88);text-align:center;padding:36px;color:#eafcff;}
.coop-mission-complete-notice h2{font-size:clamp(25px,4vw,49px);letter-spacing:.14em;color:#8bf7ce;text-shadow:0 0 30px #13ab7c;}
.coop-mission-complete-notice p{font-size:clamp(15px,1.6vw,20px);max-width:660px;line-height:1.55;}
.coop-mission-complete-notice button{font:700 17px inherit;padding:12px 34px;border:2px solid #9cf9d8;border-radius:11px;background:#125a55;color:white;cursor:pointer;}

/* v1175: center the cooperative antenna control inside the Ferrum-derived tablet. */
#coopRocketTablet.gne-ferrum-tablet-exact-copy .antenna-console-panel {
  width: min(100%, 760px); margin-inline: auto; align-self: center;
}
#coopRocketTablet.gne-ferrum-tablet-exact-copy .antenna-console-panel__details {
  margin-inline: auto; width: 100%;
}

/* v1176 private co-op antenna server screen: independent presentation within
   cloned Ferrum-9 tablet shell, no changes to original campaign UI. */
#coopRocketTablet.coop-tablet--station{position:relative}
#coopRocketTablet.coop-tablet--station > .terminal-tabs,
#coopRocketTablet.coop-tablet--station > .terminal-body,
#coopRocketTablet.coop-tablet--station > .terminal-panel{display:none!important}
#coopRocketTablet .coop-station-pad[hidden]{display:none!important}
#coopRocketTablet .coop-station-pad{display:flex;box-sizing:border-box;position:relative;z-index:2;
  min-height:min(65vh,620px);width:min(92%,940px);margin:22px auto 28px;padding:36px 30px;
  flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px;
  color:#e3f5ff;border:1px solid rgba(90,216,245,.42);border-radius:16px;
  background:radial-gradient(ellipse at 50% 15%,rgba(34,102,135,.34),transparent 67%),
             linear-gradient(145deg,rgba(10,32,54,.98),rgba(5,18,35,.97));
  box-shadow:0 20px 65px rgba(0,0,0,.45),inset 0 0 40px rgba(12,123,163,.14)}
#coopRocketTablet .coop-station-pad h2{max-width:100%;margin:0;text-align:center;font-size:clamp(19px,2.4vw,29px);
  font-weight:750;letter-spacing:.07em;color:#b5eeff}
#coopRocketTablet .coop-station-pad__caption,#coopRocketTablet .coop-station-pad__status{
  text-align:center;max-width:640px;margin:0;line-height:1.6;font-size:clamp(14px,1.4vw,18px)}
#coopRocketTablet .coop-station-pad__actions{width:100%;display:flex;justify-content:center;align-items:center}
#coopRocketTablet .coop-station-pad__actions .antenna-console-panel__button{display:block!important;
  min-width:min(100%,300px);max-width:100%;min-height:54px;padding:12px 28px;font-size:17px;font-weight:700;
  text-align:center;border:1px solid #70daed;border-radius:10px;color:#e8fbff;
  background:linear-gradient(180deg,#176887,#124760);cursor:pointer}
#coopRocketTablet .coop-station-pad__actions .antenna-console-panel__button:disabled{opacity:.48;cursor:not-allowed}
#coopRocketTablet .coop-station-pad__status{color:#95bfd5}

/* v1176: keep the cooperative orbital antenna GUI centered independently of
   the separate ROOF-SRV-01 station-confirmation tablet. Ferrum-9 unchanged. */
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel{
  box-sizing:border-box;margin-inline:auto;align-items:center;text-align:center;
}
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__title,
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__status,
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__details-message{
  width:100%;text-align:center;
}
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__button{
  display:block;min-width:min(100%,280px);margin-inline:auto;text-align:center;
}
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__details{
  width:100%;margin-inline:auto;justify-items:center;text-align:center;
}
#coopRocketTablet:not(.coop-tablet--station) .antenna-console-panel__details-item{
  text-align:center;
}

/* v1178: one per-attempt cooperative mission briefing; authored by the server world. */
#coopMissionBriefing.coop-mission-briefing{position:fixed;inset:0;z-index:2147483800;display:grid;place-items:center;box-sizing:border-box;padding:clamp(10px,3vw,34px);background:rgba(1,7,20,.93);backdrop-filter:blur(9px);color:#e6f7ff;cursor:auto!important;pointer-events:auto;}
#coopMissionBriefing[hidden]{display:none!important;}
.coop-mission-briefing__panel{box-sizing:border-box;width:min(1020px,100%);max-height:min(94dvh,1000px);min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(99,208,250,.5);border-radius:24px;background:radial-gradient(circle at 0% 0%,rgba(38,98,152,.22),transparent 45%),linear-gradient(155deg,#061225,#0a1934 68%,#071223);box-shadow:0 24px 84px #000c,inset 0 0 35px rgba(46,152,230,.08);}
.coop-mission-briefing__header{padding:22px clamp(18px,4vw,42px) 16px;border-bottom:1px solid rgba(126,206,255,.19)}
.coop-mission-briefing__tag{font:750 11px/1.3 'Segoe UI',sans-serif;letter-spacing:.22em;color:#70d5ef}
.coop-mission-briefing__header h2{font:750 clamp(22px,3vw,34px)/1.25 'Segoe UI',sans-serif;margin:9px 0 0;color:#f0fdff}
.coop-mission-briefing__scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px clamp(18px,4vw,42px);font:15px/1.65 'Segoe UI',sans-serif;white-space:normal;scrollbar-color:#2b779b #0a2038}
.coop-mission-briefing__subhead,.coop-mission-briefing__section h3{font-size:clamp(17px,2vw,21px);line-height:1.4;color:#90e5f8;margin:0 0 13px}
.coop-mission-briefing__objectives{padding-left:24px;margin:0 0 28px}
.coop-mission-briefing__objectives li{padding:5px 0 9px 7px}
.coop-mission-briefing__objectives li::marker{color:#75dffb;font-weight:700}
.coop-mission-briefing__objectives p{margin:5px 0 0;color:#bcd5e9;font-size:13px;white-space:pre-line}
.coop-mission-briefing__section{border-top:1px solid rgba(112,185,232,.20);padding:23px 0 8px}
.coop-mission-briefing__section p{margin:10px 0}
.coop-mission-briefing__section strong{color:#f2fdff}
.coop-mission-briefing__criterion{background:rgba(16,74,105,.3);border-left:3px solid #5cd8f9;border-radius:5px;padding:12px 16px;color:#e9f9ff}
.coop-mission-briefing__path{border:1px solid rgba(90,208,248,.25);background:rgba(2,12,29,.7);border-radius:10px;padding:13px 15px;color:#bdefff;overflow-wrap:anywhere}
.coop-mission-briefing__steps{padding-left:25px;margin:8px 0 16px}
.coop-mission-briefing__steps li{padding:3px 0}
.coop-mission-briefing__outro{margin-top:14px;padding:12px 18px;border-top:1px solid rgba(112,185,232,.3);color:#f1f7dc}
.coop-mission-briefing__outro p:last-child{font-weight:800;color:#fdf2bf}
.coop-mission-briefing__footer{display:flex;justify-content:center;padding:17px 25px 20px;border-top:1px solid rgba(126,206,255,.2);background:rgba(3,13,27,.8)}
#coopMissionBriefingOk{min-width:190px;padding:13px 36px;border:1px solid #6bdcf7;border-radius:11px;background:linear-gradient(130deg,#0e5676,#155f8f);color:#f7ffff;font:800 16px 'Segoe UI',sans-serif;box-shadow:0 0 22px rgba(67,189,237,.17);cursor:pointer!important}
#coopMissionBriefingOk:focus-visible{outline:3px solid #ffe39b;outline-offset:3px}
@media(max-width:600px){.coop-mission-briefing__scroll{font-size:13px;padding-top:13px}.coop-mission-briefing__header{padding-top:14px}.coop-mission-briefing__objectives p{font-size:12px}}

/* v1181: compact 3-task co-op briefing and expandable long task instructions. */
.coop-mission-briefing__task-detail{margin:7px 0 8px;}
.coop-mission-briefing__task-detail>summary,.coop-mission-task-detail>summary{color:#8edff5;cursor:pointer;font-weight:700;list-style-position:inside;padding:5px 0;}
.coop-mission-briefing__task-detail>summary:hover,.coop-mission-task-detail>summary:hover{color:#d5fbff;}
.coop-mission-briefing__task-text,.coop-mission-task-detail>small{display:block;white-space:pre-line;line-height:1.55;overflow-wrap:anywhere;margin:8px 0 10px;}
.coop-mission-task-detail>small{color:#b5d6ef;font-size:13px;}

/* v1182: shared crew narrative, player-local field tasks. */
.coop-mission-briefing__story{border-bottom:1px solid rgba(117,205,241,.28);padding-bottom:18px;margin-bottom:24px}
.coop-mission-briefing__story p{margin:10px 0;line-height:1.65}
.coop-mission-briefing__planet{font-weight:800;letter-spacing:.11em;color:#a0e7ff}
.coop-mission-briefing__transmission{font-weight:700;color:#e7f5ff}
.coop-mission-briefing__final-line{font-weight:800;color:#ffe9b0}
#coopMissionTasksOverlay.coop-field-tasks{position:fixed;inset:0;z-index:2147483750;display:grid;place-items:center;background:rgba(2,9,23,.88);backdrop-filter:blur(6px);padding:18px;box-sizing:border-box}
#coopMissionTasksOverlay[hidden]{display:none!important}
.coop-field-tasks__panel{box-sizing:border-box;width:min(730px,100%);max-height:88dvh;overflow:auto;border:1px solid #4799bd;border-radius:20px;background:linear-gradient(150deg,#0c233f,#071629);padding:25px 30px;color:#e2f7ff;box-shadow:0 28px 90px #000b}
.coop-field-tasks__panel h2{margin:0 0 22px;color:#8ee5fa;font:800 23px 'Segoe UI',sans-serif}
.coop-field-tasks__panel ol{padding-left:24px}.coop-field-task{margin:0 0 18px;padding:12px;border:1px solid #2d6889;border-radius:11px;background:#0b2a43}
.coop-field-task strong{font:700 16px/1.5 'Segoe UI',sans-serif}.coop-field-task details{margin:12px 0 2px}.coop-field-task summary{cursor:pointer;color:#8eeaff;font-weight:700}
.coop-field-task p{white-space:pre-line;overflow-wrap:anywhere;line-height:1.6;color:#c9e4f2}
#coopMissionTasksClose{margin:12px auto 0;display:block;padding:10px 34px;border:1px solid #59cfed;border-radius:10px;background:#15537b;color:white;font-weight:800;cursor:pointer}

/* v1183: readable interactive mission UI must override gameplay cursor:none.
   Both dialogs live INSIDE #coopStageViewport, whose hidden cursor cascades.
   Keep the rest of the immersive gameplay pointer behavior unchanged. */
body.gne-coop-play-mode #coopStageViewport #coopMissionBriefing,
body.gne-coop-play-mode #coopStageViewport #coopMissionBriefing *,
body.gne-coop-play-mode #coopStageViewport #coopMissionTasksOverlay,
body.gne-coop-play-mode #coopStageViewport #coopMissionTasksOverlay * {
  cursor:default!important;
  pointer-events:auto;
}
body.gne-coop-play-mode #coopStageViewport #coopMissionBriefing button,
body.gne-coop-play-mode #coopStageViewport #coopMissionBriefing summary,
body.gne-coop-play-mode #coopStageViewport #coopMissionTasksOverlay button,
body.gne-coop-play-mode #coopStageViewport #coopMissionTasksOverlay summary {
  cursor:pointer!important;
}
body.gne-coop-play-mode #coopStageViewport #coopMissionBriefing button:disabled {
  cursor:default!important;
}

/* Ferrum-9-2 isolated viewport; no original gameplay files modified. */
.gne-f9-fork-overlay[hidden]{display:none!important}
.gne-f9-fork-overlay{position:fixed;inset:0;z-index:2147483000;background:#050a12;display:flex;flex-direction:column}
.gne-f9-fork-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 1.2rem;min-height:2.8rem;background:#10233a;color:#e5f0ff;font:600 .9rem system-ui,sans-serif}
.gne-f9-fork-toolbar button{background:#203e59;border:1px solid #7797b7;color:#fff;border-radius:.4rem;min-width:2.5rem;min-height:2rem;cursor:pointer}
.gne-f9-fork-mount{flex:1;min-height:0}.gne-f9-fork-mount iframe{height:100%;width:100%;border:0;display:block}
