/* Command-room menus share ivory type, fine rules and a restrained gold selection. */

/* Shared type hierarchy for the title menu, every reading panel and player settings. */
:is(#menu, #settingsRoot) {
  --menu-font-page: clamp(28px, 3vw, 48px);
  --menu-font-heading: clamp(22px, 2.2vw, 36px);
  --menu-font-section: clamp(16px, 1.3vw, 22px);
  --menu-font-nav: clamp(15.2px, 1.456vw, 25.6px);
  --menu-font-nav-small: clamp(14px, 1.12vw, 20px);
  --menu-font-body: clamp(14px, 1.15vw, 18px);
  --menu-font-meta: clamp(12px, .9vw, 15px);
  --menu-font-small: clamp(11px, .78vw, 13px);
}
@media (max-width: 760px) {
  :is(#menu, #settingsRoot) {
    --menu-font-page: 28px;
    --menu-font-heading: 24px;
    --menu-font-section: 17px;
  }
}
@media (max-height: 560px) {
  :is(#menu, #settingsRoot) {
    --menu-font-page: 28px;
    --menu-font-heading: 22px;
    --menu-font-section: 16px;
    --menu-font-nav: 14.4px;
    --menu-font-nav-small: 14px;
    --menu-font-body: 14px;
    --menu-font-meta: 12px;
  }
}

.mnCommandRoomPreview { position:absolute;left:5.1%;bottom:2%;max-width:89.8%;padding:12px 16px;
  background:#111613ed;border:1px solid var(--ui-line);pointer-events:auto;color:var(--ui-text); }
.mnCommandRoomPreview[hidden] { display:none; }
.mnCommandRoomPreview b { display:block;margin-bottom:8px;color:var(--ui-gold);font-size:14px; }
.mnCommandRoomPreview small { display:block;margin-top:6px;font-size:12px;color:var(--ui-muted); }
.mnCommandRoomPreview .mnDebugStageControls { width:auto;gap:6px; }
.mnCommandRoomPreview .mnDebugAdvance,.mnCommandRoomPreview select { padding:7px 10px;font-size:14px; }
#menu.commandRoomPreviewHidden > * { visibility:hidden !important;pointer-events:none !important; }
#menu:has(.mnCommandRoomPreview:not([hidden])) .mnFoot { visibility:hidden; }
@media(max-width:600px) {
 .mnCommandRoomPreview {left:3%;max-width:94%;padding:9px;bottom:1%;}
 .mnCommandRoomPreview .mnDebugStageControls select {order:-1;flex:1 0 100%;min-width:0;}
 .mnCommandRoomPreview .mnDebugAdvance {flex:1;padding:6px;font-size:12px;white-space:nowrap;}
}

/* Reference command room: title-only layout; pause/death retain their existing contracts. */
#menu.commandRoom .mnVignette { backdrop-filter:none;
  background:linear-gradient(90deg,rgba(4,5,5,.82) 0%,rgba(5,6,6,.56) 20%,rgba(5,6,6,.22) 37%,transparent 57%),
    radial-gradient(ellipse at 0% 48%,rgba(3,4,4,.24),transparent 55%); }
#menu.commandRoom .mnVignette::before,#menu.commandRoom .mnVignette::after,
#menu.commandRoom .mnTitleLines,#menu.commandRoom .mnShotNote,#menu.commandRoom .mnItemHint { display:none; }
#menu.commandRoom .mnTitle { left:5.1%;top:17.4%;max-width:76%; }
#menu.commandRoom .mnTitleMain { font-size:clamp(34px,5vw,92px);line-height:1.13;letter-spacing:.025em;
  font-weight:900;color:#eeeee7;text-shadow:0 2px 5px #0006;white-space:nowrap;
  padding-bottom:1.35vh;border-bottom:1px solid #b5b4a65c; }
#menu.commandRoom .mnTitleSub { margin-top:1.4vh;font-size:clamp(12px,1.25vw,22px);letter-spacing:.21em;color:#c5c5bd; }
#menu.commandRoom .mnList { left:5.1%;top:40.7%;bottom:14%;width:min(450px,31vw);gap:.8vh;overflow:visible; }
#menu.commandRoom .mnItem { min-height:5.75vh;padding:5px 1.6vw;font-size:var(--menu-font-nav);
  font-weight:400;letter-spacing:.16em;border:0;border-left:5px solid transparent;color:#b9bcb7; }
#menu.commandRoom .mnItem.on { color:var(--ui-gold);background:linear-gradient(90deg,#d8d4c326,#bbb7a90a);
  border-left-color:#edca83;border-image:none; }
#menu.commandRoom .mnFoot { left:5.4%;bottom:7.5%;font-size:clamp(11px,1.1vw,19px);letter-spacing:.06em;color:#bfc2ba; }
@media(max-aspect-ratio:1/1) {
 #menu.commandRoom .mnTitle{top:16%;max-width:90%}
 #menu.commandRoom .mnTitleMain{font-size:7.4vw}
 #menu.commandRoom .mnTitleSub{font-size:2.6vw}
 #menu.commandRoom .mnList{width:62vw}
}
@media(max-height:560px) {
 #menu.commandRoom .mnTitle{top:8%}
 #menu.commandRoom .mnTitleMain{font-size:6.9vh}
 #menu.commandRoom .mnTitleSub{font-size:3vh}
 #menu.commandRoom .mnList{top:35%;bottom:15%;overflow-y:auto;width:42vw;gap:0}
 #menu.commandRoom .mnItem{min-height:32px;font-size:var(--menu-font-nav);padding-block:3px}
 #menu.commandRoom .mnFoot{font-size:10px;bottom:5%}
}

#menu { position: fixed; inset: 0; z-index: 30; pointer-events: none; font-family: var(--ui-font); }
#menu.off { display: none; }
.mnVignette {
  position: absolute; inset: 0;
  backdrop-filter: saturate(0.42);
  background: linear-gradient(90deg, #050707ed, #090d1099 38%, #06090b26 76%),
    linear-gradient(0deg, #000a, transparent 40%, #0004);
}
.mnVignette::before, .mnVignette::after {
  content: ""; position: absolute; left: 0; right: 0; background: var(--ui-black);
}
.mnVignette::before { top: 0; height: 14vh; }
.mnVignette::after { bottom: 0; height: 8vh; }
.mnFade { position: absolute; inset: 0; background: var(--ui-black); opacity: 0; }
#menu.pause .mnVignette {
  backdrop-filter: saturate(0.3);
  background: linear-gradient(90deg, #050707ed, #090d10ad 45%, #06090b73);
}
#menu.pause .mnTitleLines, #menu.pause .mnShotNote { display: none; }
.mnTitle { position: absolute; left: 8%; top: 3.8vh; max-width: 70%; }
.mnTitleMain {
  color: var(--ui-bright); font-family: var(--ui-title-font);
  font-size: clamp(28px, 2.65vw, 42px); font-weight: 700;
  letter-spacing: 0.07em; line-height: 1.2; text-shadow: 0 2px 3px #000;
}
.mnTitleSub { margin-top: 10px; font-size: 12px; letter-spacing: 0.07em; color: var(--ui-muted); }
.mnTitleLines { margin-top: 8vh; }
.mnTitleLine { font-size: 14px; line-height: 2; color: var(--ui-muted); }
.mnList {
  position: absolute; left: 8%; top: 40%; bottom: 14%; width: min(450px, 44vw);
  display: flex; flex-direction: column; align-items: stretch; gap: 2px; overflow-y: auto;
}
#menu.pause .mnList { top: 30%; }
.mnPauseObjective {
  position: absolute; top: 30%; right: 8%; width: min(560px, 40vw);
  max-height: 54%; overflow-y: auto; pointer-events: auto;
}
.mnPauseObjective[hidden] { display: none; }
.mnPauseObjectiveTitle { margin: 0 0 14px; color: var(--ui-muted); font-size: 13px; font-weight: 400; letter-spacing: 0.08em; }
.mnPauseObjectiveText { margin: 0; color: var(--ui-bright); font-size: clamp(18px, 1.5vw, 24px); line-height: 1.7; white-space: pre-line; }
.mnPauseProgress { margin-top: 24px; padding-top: 18px; border-top: 1px solid #ffffff26; }
.mnPauseProgressTitle { margin: 0; color: var(--ui-muted); font-size: 13px; font-weight: 400; letter-spacing: .06em; }
.mnPauseProgressSummary { margin: 9px 0 14px; color: var(--ui-bright); font-size: 15px; }
.mnPauseConditions { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.mnPauseCondition { display: flex; align-items: baseline; gap: 12px; font-size: 14px; line-height: 1.65; color: var(--ui-bright); }
.mnPauseConditionStatus { flex: 0 0 auto; font-size: 12px; color: #d5bf8f; }
.mnPauseCondition.complete .mnPauseConditionStatus { color: #9ab8a0; }
.mnPauseConditionBody { min-width: 0; }
.mnPauseConditionDetail { margin: 3px 0 0; color: var(--ui-muted); font-size: 12px; }
@media (max-width: 760px) {
  .mnPauseObjective { top: 17%; left: 5%; right: 5%; width: auto; max-height: 36%; }
  #menu.pause:has(.mnPauseObjective:not([hidden])) .mnList { top: 57%; width: 90%; }
}
@media (min-width: 761px) and (max-width: 900px) {
  #menu.pause:has(.mnPauseObjective:not([hidden])) .mnList { width: 40%; }
}
/* Campaign death is a centered terminal screen over the fallen viewpoint. */
#menu.failure { pointer-events: auto; }
#menu.failure .mnVignette {
  backdrop-filter: grayscale(1) brightness(.68);
  background: radial-gradient(ellipse at 50% 40%, #080a0c14 12%, #100607b3 65%, #050405f2 100%),
    linear-gradient(0deg, #030405eb, #06070838 60%, #09050677);
  opacity: var(--death-reveal, 1);
}
#menu.failure .mnVignette::before, #menu.failure .mnVignette::after,
#menu.failure .mnTitleLines, #menu.failure .mnShotNote, #menu.failure .mnFade { display: none; }
#menu.failure .mnTitle {
  left: 8%; right: 8%; top: 25%; max-width: none; text-align: center;
  opacity: var(--death-reveal, 1);
}
#menu.failure .mnTitleMain {
  font-family: var(--ui-font);
  color: #c7bdb4; font-size: clamp(34px, 4.2vw, 66px); font-weight: 500;
  letter-spacing: .2em; padding-left: .2em; text-shadow: 0 2px 20px #000;
}
#menu.failure .mnTitleMain::after {
  content: ""; display: block; width: 66px; height: 2px; margin: 24px auto 20px;
  background: #9b4b40; box-shadow: 0 0 16px #711b1b55;
}
#menu.failure .mnTitleSub { color: #96928b; font-size: 13px; letter-spacing: .16em; }
#menu.failure .mnList {
  left: 50%; top: 55%; bottom: 10%; width: min(410px, 84vw); transform: translateX(-50%);
  gap: 8px; text-align: center; opacity: var(--death-reveal, 1);
}
#menu.failure .mnItem {
  justify-content: center; min-height: 44px; font-size: clamp(15px, 1.25vw, 19px);
  font-weight: 400; letter-spacing: .1em; color: #979992; border-image: none;
}
#menu.failure .mnItem.on {
  color: #efede5; background: linear-gradient(90deg, #c2b8a300, #c2b8a32e 40%, #c2b8a32e 60%, #c2b8a300);
  border: 1px solid #c2b8a32e; border-left-color: transparent; border-right-color: transparent;
}
#menu.failure .mnItem:focus-visible { outline: 1px solid #c7bdb488; outline-offset: -3px; }
#menu.failure .mnItem:disabled { color: #686963; cursor: default; }
#menu.failure .mnItemHint { order: -1; margin: 0 0 17px; min-height: 2em; color: #9b9b94; }
#menu.failure .mnFoot { left: 8%; right: 8%; bottom: 4%; text-align: center; color: #858982; opacity: var(--death-reveal, 1); }
#menu.failure.deathFalling .mnList { visibility: hidden; pointer-events: none; }
@keyframes mnDeathShade { from { opacity: .3; } to { opacity: 1; } }
@keyframes mnDeathCopy { from { opacity: 0; } to { opacity: 1; } }
@media (max-height: 560px) {
  #menu.failure .mnTitle { top: 12%; }
  #menu.failure .mnTitleMain { font-size: 32px; }
  #menu.failure .mnTitleMain::after { margin: 12px auto; }
  #menu.failure .mnList { top: 43%; bottom: 10%; gap: 2px; }
  #menu.failure .mnItemHint { margin-bottom: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  #menu.failure .mnVignette, #menu.failure .mnTitle, #menu.failure .mnList { animation: none; }
}
.mnItem {
  pointer-events: auto; cursor: pointer; flex: 0 0 auto; min-height: 44px;
  display: flex; align-items: center; border: 1px solid transparent;
  background: transparent; color: #b7bbb7; font: inherit; font-size: clamp(19px, 1.65vw, 25px);
  font-weight: 700; letter-spacing: 0.04em; padding: 7px 12px; text-align: left;
  text-shadow: 0 2px 3px #000;
}
.mnItemBar { display: none; }
.mnItem.on {
  color: var(--ui-gold); background: var(--ui-selection); border-image: var(--ui-selection-edge);
}
.mnItemHint { margin: 16px 12px 0; min-height: 3em; font-size: 12px; line-height: 1.7; color: var(--ui-muted); }
.mnShotNote {
  position: absolute; right: 8%; bottom: 11%; max-width: 40%;
  text-align: right; font-size: 11px; letter-spacing: 0.06em; color: var(--ui-muted);
}
.mnFoot {
  position: absolute; left: 8%; bottom: 3vh; font-size: 11px; letter-spacing: 0.07em; color: var(--ui-muted);
}
/* 换页沿用任务选择的整屏黑栏与战地背景。 */
#menu.panelOn .mnTitle, #menu.panelOn .mnList,
#menu.panelOn .mnShotNote, #menu.panelOn .mnFoot { display: none; }
.mnPanel {
  position: absolute; inset: 0; width: 100%; height: 100%; display: none; flex-direction: column;
  pointer-events: auto; background: #0b0d0e; isolation: isolate;
}
.mnPanel.on { display: flex; }
.mnPanel::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("./Texture/Menu/Texture_MissionCh1NanLu_Publishd697a257929f87424a740d5b.webp?v=20260928") center 58% / cover;
  filter: grayscale(1) blur(5px) brightness(0.36); opacity: 0.76;
}
.mnPanel::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(0deg, #020303 4%, transparent 52%, #0008),
    linear-gradient(90deg, #0c101766, transparent 60%, #0004);
}
.mnPanelHead {
  flex: 0 0 auto; display: flex; align-items: flex-end; gap: 14px;
  min-height: 14vh; box-sizing: border-box; padding: 26px 8% 18px; background: var(--ui-black);
}
.mnPanelHead::after { content: "台儿庄 · 血战滕县"; color: var(--ui-muted); font-size: 12px; padding-bottom: 5px; letter-spacing: 0.08em; }
.mnPanelTitle {
  flex: 1; font-size: clamp(25px, 2.5vw, 38px); font-weight: 700;
  letter-spacing: 0.07em; color: var(--ui-bright); line-height: 1.2;
}
.mnPanelBody { flex: 1 1 auto; min-height: 0; display: flex; }
#menu.levelsOn .mnPanelFoot { display: none; }

/* 选章：线性任务列表与对应的横幅预览。 */
.mnLevels { display: flex; flex-direction: column; width: 100%; min-height: 0; }
.mnCampaignMain {
  flex: 1; min-height: 0; display: grid; grid-template-columns: 46% minmax(0, 1fr);
  gap: 5%; padding: 24px 8% 12px;
}
.mnLevelList {
  min-width: 0; min-height: 0; overflow-y: auto; overflow-x: hidden;
  scrollbar-width: thin; scrollbar-color: #74776d55 transparent;
  padding: 0 3px 8px 0; scroll-padding: 8px;
}
.mnLevelGroup {
  display: flex; align-items: baseline; gap: 12px;
  margin: 0 0 8px; padding: 0 12px 5px;
  color: #90958f; font-size: 11px; letter-spacing: 0.12em;
}
.mnLevelGroup b { font-weight: 400; }
.mnLevelGroup small { font-size: 10px; color: #757c78; }
.mnLevelGroup:not(:first-child) { margin-top: 18px; padding-top: 12px; border-top: 1px solid #c4c6bb20; }
.mnMissionTrack, .mnSandboxTrack { display: flex; flex-direction: column; }
.mnLevel {
  position: relative; width: 100%; min-height: 42px; padding: 6px 12px;
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 9px;
  border: 1px solid transparent; background: transparent; cursor: pointer; text-align: left;
  color: #b7bbb7; font: inherit; font-weight: 700; line-height: 1.4;
  text-shadow: 0 2px 3px #000;
}
.mnLvName { font-size: clamp(16px, 1.65vw, 25px); overflow-wrap: anywhere; }
.mnLvNo { color: #919790; font-size: 12px; font-weight: 400; white-space: nowrap; }
.mnLvMark { font-size: 10px; font-weight: 400; color: #8b9384; white-space: nowrap; }
.mnLvMark.done { color: #b5bba2; }
.mnLvMark.todo { color: #7d7466; }
/* 章节行沿用默认三栏：左栏关号（「第一关」「终章」）+ 关名 + 右侧标记。 */
/* 占位章节（第二关到终章）：压灰一档、字号小一档 —— 点了只提示「敬请期待」，不进场景。 */
.mnPlaceholderLevel { min-height: 36px; color: #8f948f; }
.mnPlaceholderLevel .mnLvName { font-size: clamp(13px, 1.2vw, 18px); font-weight: 500; }
.mnPlaceholderLevel.on { color: var(--ui-gold); }
.mnMissionRecord.todo b { color: #8f948f; }
/* 点了占位章节：简报目标行下面亮一句「敬请期待」（换选中项时简报重建，自然消失）。 */
.mnBriefNotice {
  margin-top: 14px; color: var(--ui-gold); font-size: clamp(13px, 1.1vw, 16px); font-weight: 700;
  letter-spacing: 0.08em; text-shadow: 0 2px 3px #000; animation: mnBriefNoticeIn 0.35s ease-out both;
}
@keyframes mnBriefNoticeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.mnLevel.on {
  color: var(--ui-gold); border-image: var(--ui-selection-edge);
  background: var(--ui-selection);
}
.mnLevel.on .mnLvNo, .mnLevel.on .mnLvMark { color: #cebd87; }
.mnLevel:focus-visible { outline: 1px solid var(--ui-gold); outline-offset: -2px; }
.mnSandboxLevel { min-height: 35px; grid-template-columns: 28px minmax(0, 1fr) auto; }
.mnSandboxLevel .mnLvName { font-size: clamp(12px, 1.06vw, 16px); font-weight: 500; }
.mnSandboxLevel .mnLvMark { color: #8b9384; }
.mnBrief { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow-y: auto; }
.mnMissionArt {
  flex: 0 0 auto; position: relative; width: 100%; aspect-ratio: 1.78; margin: 0;
  background: #070808; border: 1px solid #040505; box-sizing: border-box;
}
.mnMissionArt img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(0.56) contrast(1.07); }
.mnMissionArt::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 28px 9px #0009;
}
.mnMissionCopy { padding-top: 15px; text-shadow: 0 2px 3px #000; }
.mnBriefTitle { color: var(--ui-gold); font-size: clamp(20px, 1.8vw, 28px); font-weight: 700; line-height: 1.4; }
.mnMissionWhen { margin-top: 8px; color: #a3aaa4; font-size: 12px; line-height: 1.8; }
.mnMissionObjective { margin-top: 12px; color: #cbcec7; font-size: clamp(15px, 1.22vw, 19px); line-height: 1.8; }
.mnMissionRecord {
  margin-top: auto; padding: 28px 0 14px; display: flex; align-items: center; justify-content: space-between;
  gap: 20px; color: var(--ui-gold); font-size: 14px;
}
.mnMissionRecord b { color: #a4aaa0; font-weight: 400; font-size: 13px; }
.mnMissionRecord.done b { color: var(--ui-gold); }
.mnMissionRecord.done b::before { content: "✓ "; }
.mnTrainingPreview {
  flex: 0 0 auto; width: 100%; aspect-ratio: 1.78; display: grid; place-items: center;
  color: #b3b7a2; font-size: 60px; font-weight: 700;
  background: radial-gradient(circle, transparent 17%, #9fa38d40 17.3%, transparent 17.8%, transparent 28%, #9fa38d30 28.3%, transparent 28.8%),
    linear-gradient(0deg, transparent 49.8%, #afb2a024 50%, transparent 50.2%),
    linear-gradient(90deg, transparent 49.8%, #afb2a024 50%, transparent 50.2%), #141817;
  border: 1px solid #989c8233; box-sizing: border-box;
}
.mnCampaignFoot {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 8vh; box-sizing: border-box; padding: 12px 8%; background: var(--ui-black);
}
.mnCampaignBack, .mnBack {
  background: none; border: 0; padding: 10px 12px; min-height: 44px; cursor: pointer;
  color: #d6d9d1; font: inherit; font-size: 16px; font-weight: 700;
}
.mnCampaignBack:hover, .mnCampaignBack:focus-visible, .mnBack:hover, .mnBack:focus-visible { color: var(--ui-gold); }
.mnCampaignBack:focus-visible, .mnBack:focus-visible { outline: 1px solid var(--ui-gold); }
.mnCampaignKeys { color: #828b83; font-size: 11px; word-spacing: 4px; }

/* --- 史实注记 / 关于 ----------------------------------------------------- */
.mnText {
  flex: 1 1 auto; min-width: 0; overflow-y: auto; padding: 28px 8% 36px;
  font-size: 14px; line-height: 2.0; color: rgba(214, 217, 209, 0.78);
}
.mnText p { margin: 0 0 4px; }
.mnText .mnGap { height: 12px; }
.mnText h4 {
  margin: 26px 0 12px; font-size: 15px; letter-spacing: 0.05em; font-weight: 700;
  color: var(--ui-gold);
}
.mnCodexRow {
  display: grid; grid-template-columns: 190px 190px 1fr; gap: 12px;
  padding: 7px 0; border-bottom: 1px solid rgba(214, 217, 209, 0.08);
  font-size: 12px; line-height: 1.7;
}
.mnCodexId {
  font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
  color: var(--ui-muted); font-size: 11.5px;
}
.mnCodexVal {
  font-variant-numeric: tabular-nums; color: var(--ui-text);
}
.mnCodexNote { color: var(--ui-muted); }

/* --- 调试选项 ------------------------------------------------------------ */
.mnDebug {
  flex: 1 1 auto; min-width: 0; overflow-y: auto; padding: 28px 8% 36px;
  color: rgba(214, 217, 209, 0.78);
}
.mnDebugIntro { margin: 0 0 14px; font-size: 13px; line-height: 1.8; color: var(--ui-muted); }
.mnDebugRow {
  display: flex; align-items: center; justify-content: space-between; gap: 22px;
  min-height: 68px; padding: 11px 14px 11px 16px;
  border-top: 1px solid rgba(214, 217, 209, 0.10); cursor: pointer;
  transition: background 0.14s linear, border-color 0.14s linear;
}
.mnDebugRow:last-child { border-bottom: 1px solid rgba(214, 217, 209, 0.10); }
.mnDebugRow:hover { background: rgba(214, 217, 209, 0.05); }
.mnDebugRow.on { background: var(--ui-selection); border-color: var(--ui-line); }
.mnDebugCopy { display: flex; flex-direction: column; gap: 5px; }
.mnDebugAdvance { flex: 0 0 auto; padding: 10px 15px; border: 1px solid var(--ui-line); background: var(--ui-selection); color: var(--ui-text); font: inherit; cursor: pointer; }
.mnDebugAdvance:disabled { opacity: .45; cursor: default; }
.mnDebugAdvance:focus-visible { outline: 2px solid var(--ui-gold); outline-offset: 3px; }
.mnDebugStages { flex-wrap: wrap; }
.mnDebugStageControls { display: flex; gap: 10px; flex-wrap: wrap; width: 100%; }
.mnDebugStageControls select { flex: 1; min-width: 180px; max-width: 100%; padding: 10px; font: inherit; color: var(--ui-text); background: #202422; border: 1px solid var(--ui-line); }
.mnDebugStageControls select:focus-visible { outline: 2px solid var(--ui-gold); outline-offset: 3px; }
.mnDebugCopy b { font-size: 15.5px; font-weight: 700; letter-spacing: 0.04em; color: var(--ui-text); }
.mnDebugCopy small { max-width: 610px; font-size: 12px; line-height: 1.65; color: var(--ui-muted); }
.mnDebugControl { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.mnDebugControl input {
  appearance: none; width: 20px; height: 20px; margin: 0; border: 1px solid rgba(214, 217, 209, 0.36);
  border-radius: 0; background: rgba(6,6,8,0.8); cursor: pointer; position: relative;
  transition: background 0.14s linear, border-color 0.14s linear;
}
.mnDebugControl input::after {
  content: ""; position: absolute; left: 5px; top: 2px; width: 6px; height: 10px;
  border: solid var(--ui-gold); border-width: 0 2px 2px 0; transform: rotate(45deg); opacity: 0;
}
.mnDebugControl input:checked { background: #151918; border-color: var(--ui-gold); }
.mnDebugControl input:checked::after { opacity: 1; }
.mnDebugControl input:focus-visible { outline: 2px solid var(--ui-gold); outline-offset: 3px; }
.mnDebugControl i { min-width: 1.4em; font-size: 12px; font-style: normal; letter-spacing: 0.1em; color: var(--ui-muted); }
.mnDebugRow.on .mnDebugControl i { color: var(--ui-gold); }
.mnDebugRow.disabled { opacity: .5; cursor: default; }
.mnDebugRow.disabled:hover { background: transparent; }
.mnDebugAction { width: 100%; background: transparent; border-inline: 0; border-bottom: 0; text-align: left; font: inherit; }
.mnDebugAction:focus-visible { outline: 2px solid var(--ui-gold); outline-offset: -2px; }
.mnDebugAction:disabled { opacity: 0.5; cursor: default; }

/* --- 退出确认 ------------------------------------------------------------
   盖在暂停 / 阵亡页之上的模态层：背后压暗，中间一条贯穿全宽的黑栏（与标题栏、
   选章页脚同一种黑），栏内沿用阵亡页的居中列表与旧金选择条。 */
.mnConfirm {
  position: absolute; inset: 0; z-index: 5; pointer-events: auto;
  display: flex; align-items: center; justify-content: center;
  background: #020303b3; backdrop-filter: blur(2px) saturate(0.6);
  animation: mnConfirmShade 0.16s ease-out both;
}
.mnConfirm[hidden] { display: none; }
.mnConfirmBox {
  width: 100%; box-sizing: border-box; padding: 34px 8% 24px;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  background: linear-gradient(90deg, #030404d9, var(--ui-black) 28%, var(--ui-black) 72%, #030404d9);
  border-block: 1px solid var(--ui-line);
  animation: mnConfirmIn 0.2s ease-out both;
}
.mnConfirmTitle {
  margin: 0; color: var(--ui-bright); font-size: clamp(22px, 2vw, 30px); font-weight: 700;
  letter-spacing: 0.08em; line-height: 1.3; text-shadow: 0 2px 3px #000;
}
.mnConfirmTitle::after {
  content: ""; display: block; width: 56px; height: 2px; margin: 16px auto 14px;
  background: var(--ui-gold); opacity: 0.72;
}
.mnConfirmText { margin: 0 0 20px; color: var(--ui-muted); font-size: 14px; line-height: 1.7; letter-spacing: 0.06em; }
.mnConfirmList { display: flex; flex-direction: column; gap: 4px; width: min(360px, 84vw); }
.mnConfirmItem {
  pointer-events: auto; cursor: pointer; min-height: 44px; padding: 7px 12px;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid transparent; color: #979992;
  font: inherit; font-size: clamp(16px, 1.3vw, 20px); font-weight: 700; letter-spacing: 0.1em;
  text-shadow: 0 2px 3px #000; transition: color 0.12s linear, background 0.12s linear;
}
.mnConfirmItem.on {
  color: var(--ui-gold);
  background: linear-gradient(90deg, #b6b8a900, #b6b8a92b 40%, #b6b8a92b 60%, #b6b8a900);
  border-color: #d7d7c73d transparent;
}
#menu .mnConfirmItem:focus-visible { outline: 1px solid #dfbd6888; outline-offset: -3px; }
.mnConfirmKeys { margin-top: 16px; color: #828b83; font-size: 11px; letter-spacing: 0.07em; }
@keyframes mnConfirmShade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mnConfirmIn { from { opacity: 0; transform: scaleY(0.86); } to { opacity: 1; transform: none; } }
@media (max-height: 560px) {
  .mnConfirmBox { padding-block: 18px 14px; }
  .mnConfirmTitle::after { margin: 10px auto 8px; }
  .mnConfirmText { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .mnConfirm, .mnConfirmBox { animation: none; }
}

/* 小窗仍保留同一条标题、列表与页脚对齐线。 */
@media (max-width: 900px) {
  .mnTitle, .mnList, .mnFoot { left: 5%; }
  .mnTitle { max-width: 88%; }
  .mnTitleMain { font-size: 30px; }
  .mnTitleLines { display: none; }
  .mnList { top: 29%; width: min(420px, 85vw); bottom: 13%; }
  .mnShotNote { right: 5%; bottom: 10%; }
  .mnCodexRow { grid-template-columns: 1fr; gap: 2px; }
  .mnText, .mnDebug { padding: 20px 5% 24px; }
  .mnDebugRow { align-items: flex-start; gap: 12px; padding-inline: 10px; }
  .mnDebugCopy b { font-size: 14px; }
  .mnDebugCopy small { font-size: 12px; }
}
@media (max-height: 760px) {
  .mnTitleLines { display: none; }
  .mnList { top: 25%; bottom: 12%; }
  .mnTitleSub { margin-top: 6px; }
  .mnTitleMain { font-size: 28px; }
  .mnVignette::before { height: 90px; }
}
@media (max-height: 760px) and (min-width: 641px) {
  .mnPanelHead { min-height: 80px; padding-top: 16px; }
  .mnCampaignMain { padding-top: 15px; }
  .mnLevel { min-height: 34px; padding-block: 3px; }
  .mnLvName { font-size: 18px; }
  .mnSandboxLevel { min-height: 28px; }
  .mnSandboxLevel .mnLvName { font-size: 13px; }
  .mnLevelGroup:not(:first-child) { margin-top: 10px; padding-top: 8px; }
  .mnMissionRecord { padding-top: 16px; }
}
@media (max-width: 900px) {
  .mnPanelHead, .mnCampaignFoot { padding-inline: 5%; }
  .mnCampaignMain { padding-inline: 5%; gap: 3%; grid-template-columns: 48% minmax(0, 1fr); }
  .mnLevel { grid-template-columns: 46px minmax(0, 1fr) auto; gap: 6px; padding-inline: 7px; }
  .mnSandboxLevel { grid-template-columns: 25px minmax(0, 1fr) auto; }
  .mnLvNo { font-size: 10px; }
}
@media (max-width: 640px) {
  .mnPanelHead { min-height: 74px; padding: 20px 5% 15px; }
  .mnPanelHead::after { font-size: 10px; }
  .mnCampaignMain { display: flex; flex-direction: column; gap: 24px; overflow-y: auto; padding: 16px 5% 24px; }
  .mnLevelList { overflow-y: auto; flex: 0 0 auto; max-height: 38vh; padding: 0; }
  .mnLevel { min-height: 44px; grid-template-columns: 48px minmax(0, 1fr) auto; }
  .mnLvName { font-size: 18px; }
  .mnSandboxLevel .mnLvName { font-size: 14px; }
  .mnBrief { flex: 0 0 auto; overflow: visible; }
  .mnMissionRecord { padding-bottom: 0; }
  .mnCampaignFoot { min-height: 66px; padding-block: 8px; }
  .mnCampaignKeys { font-size: 9px; word-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mnLevel { transition: none; }
}

/* Secondary pages retain the real room and the title screen's typography. */
.mnPanel { background:transparent; }
.mnPanel::before { display:none; }
.mnPanel::after { background:linear-gradient(90deg,#070807ed 0%,#10110edb 46%,#13140f99 78%,#10110f6b); }
.mnPanelHead { margin:0 5.1%;padding:6vh 0 2.5vh;min-height:19vh;background:none;border-bottom:1px solid #c1bdab55; }
.mnPanelTitle { font-family:var(--ui-title-font);font-size:var(--menu-font-page);font-weight:700;letter-spacing:.10em;color:#eeeee7; }
.mnPanelHead::after { color:#c5c5bd;letter-spacing:.18em; }
.mnCampaignMain { grid-template-columns:43% minmax(0,1fr);gap:7%;padding:3vh 5.1% 1.5vh; }
.mnLevel { min-height:5.1vh;font-weight:400;letter-spacing:.06em;border:0;border-left:4px solid transparent;padding:8px 17px; }
.mnLevel.on { background:linear-gradient(90deg,#d8d4c326,#bbb7a90a);border-image:none;border-left-color:#edca83; }
.mnLvName { font-size:clamp(17px,1.55vw,26px);font-weight:400; }
.mnPlaceholderLevel .mnLvName { font-size:clamp(15px,1.25vw,21px); }
.mnBriefTitle { font-family:var(--ui-title-font);font-weight:600;letter-spacing:.08em; }
.mnMissionArt { border:1px solid #c1bdab44; }
.mnMissionArt::after { box-shadow:inset 0 0 16px #0004; }
.mnMissionArt img { filter:saturate(.65); }
.mnCampaignFoot,.mnPanelFoot { background:none;padding:1.5vh 5.1%;min-height:10vh;box-sizing:border-box; }
.mnCampaignBack,.mnBack { font-weight:400;font-size:var(--menu-font-body);letter-spacing:.1em;padding-left:0;color:#d5d4ca; }
.mnText,.mnDebug { padding:3vh 5.1%;color:#c9c9be;font-size:var(--menu-font-body); }
.mnText h4 { font-family:var(--ui-title-font);font-size:var(--menu-font-section);font-weight:500; }
.mnSettingsList { padding:4vh 5.1%;width:min(560px,70vw);min-height:0;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:1vh; }
.mnSettingsItem { appearance:none;cursor:pointer;text-align:left;background:none;color:#c6c7bd;border:0;border-left:4px solid transparent;
  font:400 var(--menu-font-nav)/1.6 var(--ui-font);padding:7px 24px;letter-spacing:.16em;min-height:48px; }
.mnSettingsItem:hover,.mnSettingsItem:focus-visible { color:var(--ui-gold);background:linear-gradient(90deg,#d8d4c326,#bbb7a90a);border-left-color:#edca83;outline:none; }
/* 玩家设置页（Script_SettingsHost）画在 #settingsRoot：与开发工具的 #settingsRoot 分开，打包剔除工具不影响这里。 */
body:has(#settingsRoot:not(.off)) #menu .mnPanel { visibility:hidden; }
#settingsRoot .edPanel.work { inset:6vh 5.1% 6vh;width:auto;max-width:none;border:0;background:linear-gradient(90deg,#080907f5,#11120ede 64%,#14150cb8);box-shadow:none;backdrop-filter:none; }
#settingsRoot .edHead { padding:2vh 3vw 2.5vh;background:none;border-bottom:1px solid #c1bdab55; }
#settingsRoot .edTitle { font-family:var(--ui-title-font);font-size:var(--menu-font-page);letter-spacing:.10em;color:#eeeee7; }
#settingsRoot .edBody { padding:2vh 3vw;max-width:1000px; }
#settingsRoot .edSection>.h { font-size:var(--menu-font-section);font-weight:400;padding:16px 0 12px; }
#settingsRoot .edRow { margin:12px 0;gap:20px; }
#settingsRoot .edRow>.l { flex-basis:160px;font-size:var(--menu-font-body);color:#c8c8bd; }
#settingsRoot .edBtn,#settingsRoot .edChip { font-size:14px;min-height:34px;background:#17191355;border-color:#c1bdab40; }
#settingsRoot .edControlRow span { font-size:var(--menu-font-meta); }
#settingsRoot .edControlRow kbd { font-size:var(--menu-font-small); }
@media(max-width:760px){
 .mnPanelHead{min-height:15vh}.mnPanelHead::after{display:none}.mnCampaignMain{grid-template-columns:1fr;gap:20px;overflow-y:auto}
 .mnSettingsList{width:80vw}.mnLevelList{max-height:40vh;flex-shrink:0}.mnLevel{min-height:44px}.mnText{font-size:14px}.mnCodexRow{grid-template-columns:1fr;gap:3px}
 #settingsRoot .edRow>.l{flex-basis:110px;font-size:13px}
}

/* Player audio settings: shared menu typography, grouped controls and contextual help. */
#settingsRoot .edPanel.audioSettings { inset:6vh 5.1%;width:auto;max-width:none;border:0;
  color:#deddd2;background:linear-gradient(90deg,#080907eb,#11120ed6 65%,#14150cab);box-shadow:none;backdrop-filter:none;
  font-family:var(--ui-font);font-weight:400; }
#settingsRoot .audioSettings .edHead { position:relative;padding:42px 3vw 22px;background:none;border-bottom:1px solid #c1bdab55; }
#settingsRoot .audioSettings .edTitle { font:700 var(--menu-font-page)/1.3 var(--ui-title-font);letter-spacing:.1em;color:#eeeee7; }
#settingsRoot .audioSettings .edSub { position:absolute;grid-area:auto;top:16px;left:3vw;font-size:12px;letter-spacing:.18em;color:#aaa99b; }
#settingsRoot .audioSettings .edX { font-size:27px;color:#bbbbae;background:none;border:0; }
#settingsRoot .audioSettings .edBody { display:grid;grid-template-columns:minmax(0,1.65fr) minmax(220px,1fr);align-items:start;gap:5vw;
  max-width:none;min-height:0;padding:24px 3vw 30px;overflow:auto; }
.audioOptions { min-width:0; }
.audioGroup { margin:0 0 8px;padding:0 18px 12px;border-bottom:1px solid #c1bdab30;
  color:#aaa99b;font-size:12px;font-weight:400;letter-spacing:.2em; }
.audioGroup:not(:first-child) { margin-top:25px; }
.audioRow { display:grid;grid-template-columns:minmax(135px,.9fr) minmax(110px,1fr) 54px;align-items:center;gap:18px;
  min-height:62px;padding:0 18px;border-left:3px solid transparent;transition:background .15s,color .15s; }
.audioRow.selected { border-left-color:#edca83;background:linear-gradient(90deg,#d8d4c324,#bbb7a906);color:#edca83; }
.audioLabel { font-size:var(--menu-font-body);letter-spacing:.055em;cursor:pointer; }
.audioValue { font-size:14px;font-variant-numeric:tabular-nums;text-align:right;color:#deddd2; }
#settingsRoot .audioRange { appearance:none;width:100%;height:44px;margin:0;cursor:pointer;background:transparent;outline:none; }
#settingsRoot .audioRange::-webkit-slider-runnable-track { height:3px;background:linear-gradient(to right,#d9bb7b var(--fill),#a4a59450 var(--fill)); }
#settingsRoot .audioRange::-moz-range-track { height:3px;background:linear-gradient(to right,#d9bb7b var(--fill),#a4a59450 var(--fill)); }
#settingsRoot .audioRange::-webkit-slider-thumb { appearance:none;width:7px;height:17px;margin-top:-7px;border:0;border-radius:1px;background:#e4d9bb; }
#settingsRoot .audioRange::-moz-range-thumb { width:7px;height:17px;border:0;border-radius:1px;background:#e4d9bb; }
#settingsRoot .audioRange:focus-visible::-webkit-slider-thumb { box-shadow:0 0 0 3px #dfbd6844;background:#ffe0a1; }
#settingsRoot .audioRange:focus-visible::-moz-range-thumb { box-shadow:0 0 0 3px #dfbd6844;background:#ffe0a1; }
.audioSwitch { justify-self:end;width:116px;min-height:38px;border:1px solid #c1bdab40;background:#13140b44;color:#a7a89e;
  font:inherit;font-size:14px;letter-spacing:.12em;cursor:pointer; }
.audioSwitch[aria-checked="true"] { color:#e6cb91;border-color:#cdb77b88; }
.audioSwitch::before { content:"";display:inline-block;width:5px;height:5px;margin:0 10px 2px 0;background:currentColor; }
.audioSwitch:focus-visible,.audioAction:focus-visible { outline:1px solid #edca83;outline-offset:4px; }
.audioDetail { border-left:1px solid #c1bdab30;padding:0 0 20px 3vw;min-height:260px; }
.audioEyebrow { color:#aaa99b;font-size:12px;letter-spacing:.2em; }
.audioDetail h2 { margin:28px 0 18px;color:#eeeee7;font:500 var(--menu-font-section)/1.5 var(--ui-title-font);letter-spacing:.08em; }
.audioDetail p { color:#c2c3b6;max-width:34em;font-size:15px;line-height:2;margin:0; }
.audioDefault { color:#989b8b;font-size:12px;margin-top:32px;padding-top:18px;border-top:1px solid #c1bdab30; }
.audioFooter { flex:0 0 auto;display:flex;align-items:center;gap:24px;margin:0 3vw;padding:18px 0;border-top:1px solid #c1bdab55; }
.audioAction { background:transparent;border:0;min-height:44px;padding:0 8px;color:#d5d4ca;font:inherit;font-size:15px;letter-spacing:.1em;cursor:pointer; }
.audioAction:first-child { padding-left:0; }
.audioAction.primary { color:#edca83; }
.audioAction:hover { color:#ffe0a1; }
.audioSave { margin-left:auto;color:#979c8d;font-size:12px;letter-spacing:.08em; }
@media(max-width:900px){
 #settingsRoot .audioSettings .edBody { gap:24px;grid-template-columns:minmax(0,1.7fr) minmax(170px,1fr); }
 .audioRow { grid-template-columns:minmax(100px,1fr) minmax(90px,1fr) 42px;gap:10px;padding:0 10px; }
 .audioLabel { font-size:14px; }.audioValue{font-size:12px}.audioDetail p{font-size:13px}
}
@media(max-width:640px){
 #settingsRoot .edPanel.audioSettings { inset:3vh 4%; }
 #settingsRoot .audioSettings .edHead { padding-top:36px;padding-bottom:15px; }
 #settingsRoot .audioSettings .edBody { display:block;padding-top:16px; }
 .audioRow { min-height:58px; }.audioGroup:not(:first-child){margin-top:20px}
 .audioDetail { min-height:0;margin-top:24px;padding:20px 10px 0;border-left:0;border-top:1px solid #c1bdab30; }
 .audioDetail h2{margin:12px 0 8px;font-size:22px}.audioDefault{margin-top:16px;padding-top:12px}
 .audioFooter { flex-wrap:wrap;gap:4px 18px;padding:9px 0; }.audioAction{font-size:13px}
 .audioSave{width:100%;margin:0;font-size:10px;padding-bottom:3px}
}
@media(max-height:650px) and (min-width:641px){
 #settingsRoot .audioSettings .edHead { padding-top:30px;padding-bottom:10px; }.audioRow{min-height:47px}
 #settingsRoot .audioSettings .edSub {top:9px}.audioGroup:not(:first-child){margin-top:14px}
 #settingsRoot .audioSettings .edBody {padding-top:16px;padding-bottom:16px}.audioFooter{padding-block:8px}
}
@media(prefers-reduced-motion:reduce){.audioRow{transition:none}}

/* Mission selection concept 03: title-menu controls beside a large, feathered mission still. */
#menu.levelsOn .mnPanel::after {
  background:linear-gradient(90deg,#060706c9 0%,#0c0e0b80 31%,#11120b24 70%,#10110f15);
}
#menu.levelsOn .mnPanelHead { min-height:19vh;padding-top:7vh;padding-bottom:2.5vh; }
#menu.levelsOn .mnPanelTitle { font-family:var(--ui-story-font);font-size:var(--menu-font-page);letter-spacing:.045em; }
#menu.levelsOn .mnCampaignMain {
  grid-template-columns:minmax(280px,31%) minmax(0,1fr);gap:2.5%;
  padding:1.5vh 3.5% 0 5.1%;overflow:hidden;
}
#menu.levelsOn .mnLevelList { padding:3.5vh 0 1vh;scroll-padding:8px; }
.mnLevelSection[hidden] { display:none; }
#menu.levelsOn .mnLevelGroup { position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%); }
#menu.levelsOn .mnLevel {
  min-height:6.8vh;margin-bottom:1.1vh;padding:8px 18px;grid-template-columns:max-content minmax(0,1fr) auto;
  gap:clamp(12px,1.2vw,23px);border-left-width:4px;color:#b9bcb7;text-shadow:0 2px 4px #0008;
}
#menu.levelsOn .mnLvName { font-size:var(--menu-font-nav);font-weight:400;letter-spacing:.06em; }
#menu.levelsOn .mnLvNo { font-size:var(--menu-font-meta);color:inherit; }
#menu.levelsOn .mnLvMark { font-size:clamp(11px,.85vw,14px);color:#a3aaa4; }
#menu.levelsOn .mnLevel.on { color:var(--ui-gold); }
#menu.levelsOn .mnLevel.on .mnLvMark { color:#c4b58d; }
#menu.levelsOn .mnSandboxLevel { grid-template-columns:28px minmax(0,1fr) auto; }
#menu.levelsOn .mnSandboxLevel .mnLvName { font-size:var(--menu-font-nav-small); }
#menu.levelsOn .mnBrief {
  position:relative;isolation:isolate;justify-content:flex-end;overflow-y:auto;
  padding:0 2vw 1vh;min-height:0;
}
#menu.levelsOn .mnMissionArt {
  position:absolute;inset:0 -2vw 3% 0;z-index:0;pointer-events:none;width:auto;height:auto;aspect-ratio:auto;
  border:0;background:transparent;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 97%,transparent),linear-gradient(0deg,transparent 0%,#000 48%,#000 100%);
  mask-composite:intersect;
}
#menu.levelsOn .mnMissionArt img { filter:saturate(.78);object-position:center; }
#menu.levelsOn .mnMissionArt::after { box-shadow:none;background:linear-gradient(0deg,#03050399,transparent 55%); }
#menu.levelsOn .mnMissionCopy { padding-top:0;position:relative;z-index:1;text-shadow:0 2px 5px #000c; }
#menu.levelsOn .mnBriefTitle { font-family:var(--ui-story-font);font-size:var(--menu-font-heading);font-weight:700;letter-spacing:.045em;color:#eeeee7;line-height:1.2; }
#menu.levelsOn .mnMissionWhen { margin-top:12px;font-size:var(--menu-font-meta);line-height:1.6;color:#c5c5bd; }
#menu.levelsOn .mnMissionObjective { margin-top:12px;max-width:36em;font-size:var(--menu-font-body);line-height:1.65;color:#d6d9d1; }
.mnMissionActions { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 20px;margin-top:3vh; }
:is(.mnMissionStart, .mnMissionStartGhost) {
  border:0;border-left:4px solid #edca83;background:linear-gradient(90deg,#d8d4c326,#bbb7a90a);
  min-height:48px;padding:8px 26px;cursor:pointer;text-align:left;color:var(--ui-gold);
  font:400 var(--menu-font-nav)/1.4 var(--ui-font);letter-spacing:.16em;text-shadow:0 2px 4px #0008;
}
.mnMissionStart:hover { color:#ffe0a1;background:linear-gradient(90deg,#d8d4c33a,#bbb7a912); }
.mnMissionStart:focus-visible { outline:1px solid var(--ui-gold);outline-offset:4px; }
:is(.mnMissionStart, .mnMissionStartGhost):disabled { cursor:default;color:#a3aaa4;border-left-color:#a3aaa455;background:none; }
#menu.levelsOn .mnMissionRecord { margin:0;padding:0;gap:8px 16px;flex-wrap:wrap;font-size:11px;color:#a3aaa4; }
#menu.levelsOn .mnMissionRecord b { font-size:12px;color:#b9bcb7; }
#menu.levelsOn .mnMissionRecord.done b { color:var(--ui-gold); }
#menu.levelsOn .mnTrainingPreview { position:absolute;inset:0 0 10%;width:100%;aspect-ratio:auto;z-index:0;pointer-events:none;opacity:.35;border:0; }
#menu.levelsOn .mnCampaignFoot { min-height:9vh;padding-block:1vh;gap:16px; }
.mnTrainingToggle { border:1px solid #c1bdab66;background:#17191366;min-height:44px;padding:8px 16px;color:#e2ddca;font:inherit;font-size:var(--menu-font-meta);letter-spacing:.08em;cursor:pointer; }
.mnTrainingToggle:hover,.mnTrainingToggle:focus-visible { color:var(--ui-gold); }
.mnTrainingToggle[hidden] { display:none; }
#menu:not(.levelsOn) .mnTrainingToggle { display:none; }
#menu.levelsOn .mnPanelHead::after { display:none; }
#menu.levelsOn .mnBriefLeaving { position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden; }
#menu.levelsOn .mnCampaignKeys { margin-left:auto;font-size:11px;color:#a3aaa4; }
@media(max-width:1100px) and (min-width:761px) {
  #menu.levelsOn .mnCampaignMain { grid-template-columns:minmax(260px,35%) minmax(0,1fr);gap:2%; }
  #menu.levelsOn .mnLevel { grid-template-columns:44px minmax(0,1fr) auto;gap:8px;padding-inline:10px; }
  #menu.levelsOn .mnLvName { font-size:var(--menu-font-nav); }
  #menu.levelsOn .mnLvNo { font-size:12px; }
  #menu.levelsOn .mnLvMark { font-size:10px; }
}
@media(max-width:760px) {
  #menu.levelsOn .mnPanelHead { min-height:104px;padding:22px 0 18px; }
  #menu.levelsOn .mnPanelTitle { font-size:var(--menu-font-page); }
  #menu.levelsOn .mnCampaignMain { display:flex;flex-direction:column;gap:22px;overflow-y:auto;padding:14px 5.1% 18px; }
  #menu.levelsOn .mnLevelList { flex:0 0 auto;max-height:none;overflow:visible;padding:0; }
  #menu.levelsOn .mnLevel { min-height:48px;margin-bottom:4px;padding:8px 12px;grid-template-columns:48px minmax(0,1fr) auto;gap:8px; }
  #menu.levelsOn .mnLvName { font-size:var(--menu-font-nav); }
  #menu.levelsOn .mnLvNo { font-size:12px; }
  #menu.levelsOn .mnLvMark { font-size:11px; }
  #menu.levelsOn .mnSandboxLevel { grid-template-columns:25px minmax(0,1fr) auto; }
  #menu.levelsOn .mnSandboxLevel .mnLvName { font-size:var(--menu-font-nav-small); }
  #menu.levelsOn .mnBrief { flex:0 0 auto;width:100%;min-height:440px;overflow:visible;padding:0 10px 10px; }
  #menu.levelsOn .mnMissionArt { inset:0 -2% 8%; }
  #menu.levelsOn .mnBriefTitle { font-size:var(--menu-font-heading); }
  #menu.levelsOn .mnMissionWhen { font-size:13px; }
  #menu.levelsOn .mnMissionObjective { font-size:var(--menu-font-body); }
  .mnMissionActions { margin-top:22px;gap:14px; }
  #menu.levelsOn .mnMissionRecord { width:100%;justify-content:flex-start; }
  #menu.levelsOn .mnCampaignFoot { min-height:66px;flex-wrap:wrap;gap:0 16px;padding:6px 5.1%; }
  #menu.levelsOn .mnCampaignKeys { order:3;width:100%;font-size:10px; }
  .mnTrainingToggle { margin-left:auto;font-size:13px; }
}
@media(max-height:560px) and (min-width:761px) {
  #menu.levelsOn .mnPanelHead { min-height:72px;padding:16px 0 12px; }
  #menu.levelsOn .mnPanelTitle { font-size:var(--menu-font-page); }
  #menu.levelsOn .mnCampaignMain { padding-top:10px; }
  #menu.levelsOn .mnLevelList { padding-top:0; }
  #menu.levelsOn .mnLevel { min-height:44px;margin-bottom:2px; }
  #menu.levelsOn .mnBriefTitle { font-size:var(--menu-font-heading); }
  #menu.levelsOn .mnMissionWhen { font-size:12px;margin-top:6px; }
  #menu.levelsOn .mnMissionObjective { font-size:14px;margin-top:8px; }
  #menu.levelsOn .mnMissionActions { margin-top:12px;gap:8px; }
  :is(.mnMissionStart, .mnMissionStartGhost) { font-size:var(--menu-font-nav);min-height:44px;padding:6px 18px; }
  #menu.levelsOn .mnCampaignFoot { min-height:54px;padding-block:4px; }
}
