/* Shared presentation for the current game menus. This layer does not change
   menu visibility, map artwork, dialog placement, or gameplay state. */
:root {
  --nn-ui-panel: linear-gradient(180deg, rgba(8, 25, 37, .985), rgba(3, 13, 22, .99));
  --nn-ui-card: rgba(16, 42, 55, .72);
  --nn-ui-border: rgba(134, 220, 246, .28);
  --nn-ui-divider: rgba(134, 220, 246, .14);
  --nn-ui-text: #edf8ff;
  --nn-ui-muted: #a5becb;
  --nn-ui-accent: #83e7ff;
  --nn-ui-radius: 12px;
  --nn-ui-shadow: 0 16px 44px rgba(0, 0, 0, .52), inset 0 1px 0 rgba(222, 248, 255, .04);
}

/* Named shells also cover menus created after the map has loaded. */
body :is(.menuDrop, .mapActionPanel, .targetCard, .carrierInfoPanel,
  .npcCombatPanel, .carrierCombatHud, .droneCombatHudV6121,
  .fuelPortalPromptV6190, .traderPanelV61320, .salvagePanelV61318,
  .p1DistressPanelV6221, .planetJumpMenuV6226, .topLeftPanelV693,
  .galaxyChatV6261, .enterBasePromptV6142, .planet1BaseMenuV6142,
  .carrierRepairPanel, .galaxyGarageV6141, .militaryRankPanelV6274,
  .mailWindowV62831, .authPanelV62818, .planetDescriptionV62823,
  .nnMenuPanel) {
  box-sizing: border-box;
  border: 1px solid var(--nn-ui-border) !important;
  border-radius: var(--nn-ui-radius) !important;
  background: var(--nn-ui-panel) !important;
  color: var(--nn-ui-text) !important;
  box-shadow: var(--nn-ui-shadow) !important;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.4;
  text-rendering: optimizeLegibility;
  scrollbar-width: thin;
  scrollbar-color: rgba(131, 231, 255, .38) rgba(4, 17, 26, .7);
}

body :is(.mapActionHead, .carrierInfoHead, .npcCombatHead,
  .carrierCombatTitle, .droneHudTopV6121, .galaxyChatHeadV6261,
  .baseMenuHeaderV6142, .carrierChooserHeadV6148, .planetJumpHeadV6226,
  .rankPanelHeadV6274, .mailHeaderV62831, .warHeadV62761, .nnMenuHeading) {
  gap: 10px;
  border-bottom: 1px solid var(--nn-ui-divider) !important;
  padding-bottom: 10px !important;
  color: var(--nn-ui-accent) !important;
  letter-spacing: .055em;
}
body :is(.mapActionHead, .carrierInfoHead, .npcCombatHead, .carrierCombatTitle,
  .droneHudTopV6121, .carrierChooserHeadV6148, .baseMenuHeaderV6142,
  .planetJumpHeadV6226, .rankPanelHeadV6274, .galaxyChatHeadV6261,
  .mailHeaderV62831, .nnMenuHeading) :is(h2, h3) {
  margin: 3px 0 5px;
  color: var(--nn-ui-text) !important;
  font-size: 16px !important;
  font-weight: 800;
  line-height: 1.25 !important;
  letter-spacing: .045em !important;
}
body :is(.mapActionHead, .carrierInfoHead, .npcCombatHead, .carrierCombatTitle,
  .droneHudTopV6121) > b {
  color: var(--nn-ui-text) !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}
body :is(.carrierChooserHeadV6148, .baseMenuHeaderV6142, .planetJumpHeadV6226,
  .rankPanelHeadV6274, .galaxyChatHeadV6261, .mailHeaderV62831, .nnMenuHeading) small {
  color: var(--nn-ui-muted) !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
  letter-spacing: .075em !important;
}

/* Card borders and number alignment are shared; artwork and status colors stay
   with their own components, including Command's operational/damage states. */
body :is(.carrierPrimaryStatsV62790 > div, .carrierEquipmentGridV62790 > div,
  .carrierDroneStatsV62790 > div, .carrierInfoGrid > div, .carrierInfoStatus,
  .carrierSystemTileV62771, .carrierCommandCardV62790, .playerAccountRowV62829,
  .basePageCardV6142, .modernPowerV6109, .modernBarRowV6109,
  .modernCarrierRoleV6140, .creditStatusV6109, .droneHudRowV6121,
  .carrierChoiceStatsV6148 > div, .mailMessageV62831, .rankStrengthPlaceholderV6274,
  .planetJumpRuleV6226, .nnMenuCard) {
  border: 1px solid var(--nn-ui-divider) !important;
  border-radius: 8px !important;
  background: var(--nn-ui-card) !important;
}
body :is(.carrierPrimaryStatsV62790, .carrierEquipmentGridV62790,
  .carrierDroneStatsV62790, .carrierChoiceStatsV6148, .modernPowerV6109,
  .modernBarRowV6109, .creditStatusV6109, .rankStrengthPlaceholderV6274,
  .mailRewardItemV62831, .nnMenuCard) b {
  font-variant-numeric: tabular-nums;
}
body :is(.carrierPrimaryStatsV62790, .carrierEquipmentGridV62790,
  .carrierDroneStatsV62790, .carrierInfoGrid, .carrierInfoStatus,
  .carrierChoiceStatsV6148, .modernPowerV6109, .modernBarRowV6109,
  .creditStatusV6109) span {
  color: var(--nn-ui-muted) !important;
  font-size: 10px !important;
  line-height: 1.35 !important;
  letter-spacing: .035em !important;
}
body :is(.carrierSectionTitleV62790, .rankRosterTitleV6274, .nnMenuSectionTitle) {
  color: var(--nn-ui-accent) !important;
  font-size: 11px !important;
  font-weight: 800;
  line-height: 1.4 !important;
  letter-spacing: .07em !important;
}
body :is(.basePageCardV6142, .carrierChoiceCopyV6148, .p1DistressPanelV6221,
  .traderPanelV61320, .salvagePanelV61318, .fuelPortalPromptV6190,
  .enterBasePromptV6142, .nnMenuPanel) p,
body :is(.carrierChooserMsgV6148,
  .p1DistressStatusV6221, .planetJumpStatusV6226, .planetJumpRuleV6226 > span,
  .warEmptyV62761, .nnMenuHelp) {
  color: var(--nn-ui-muted) !important;
  font-size: 11px !important;
  line-height: 1.55 !important;
  overflow-wrap: anywhere;
}

/* Ordinary commands use one size and shape. Rich selection cards and semantic
   Command status buttons retain their component-specific rendering. */
body :is(.menuDrop, .mapActionPanel, .targetCard, .carrierInfoPanel,
  .npcCombatPanel, .droneCombatHudV6121, .fuelPortalPromptV6190,
  .traderPanelV61320, .salvagePanelV61318, .p1DistressPanelV6221,
  .planetJumpMenuV6226, .topLeftPanelV693, .enterBasePromptV6142,
  .planet1BaseMenuV6142, .carrierRepairPanel, .galaxyGarageV6141,
  .militaryRankPanelV6274, .mailWindowV62831, .galaxyChatV6261,
  .authPanelV62818, .nnMenuPanel) button:where(:not(.carrierChoiceCardV6148,
    .planetCardV62823, [data-command-condition], .playerRankBadgeButtonV62739)) {
  box-sizing: border-box;
  min-height: 36px !important;
  border: 1px solid var(--nn-ui-border) !important;
  border-radius: 8px !important;
  background: linear-gradient(180deg, rgba(20, 62, 79, .88), rgba(7, 31, 45, .95)) !important;
  color: var(--nn-ui-text) !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.35 !important;
  letter-spacing: .04em !important;
  text-shadow: none !important;
  touch-action: manipulation;
}
body :is(.menuDrop, .carrierTabsV62790, .baseMenuTabsV6142,
  .galaxyChatTabsV6261, .authTabsV62818, .nnMenuActions) {
  gap: 6px !important;
}
body .carrierTabsV62790 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
body :is(.carrierTabsV62790, .baseMenuTabsV6142, .galaxyChatTabsV6261) button {
  min-height: 40px !important;
}
body :is(.playerAccountMessageV62829, .galaxyChatStatusV6261) {
  font-size: 11px !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
}
body :is(.carrierTabsV62790, .baseMenuTabsV6142, .galaxyChatTabsV6261,
  .authTabsV62818) button.active:where(:not([data-command-condition])) {
  border-color: rgba(131, 231, 255, .65) !important;
  background: rgba(24, 94, 119, .55) !important;
  color: #c9f5ff !important;
  box-shadow: inset 0 -2px 0 var(--nn-ui-accent) !important;
}
body :is(.targetActions, .mapActionButtons, .carrierInfoPanel, .topLeftPanelV693,
  .nnMenuPanel) button.danger,
body #playerLogoutBtnV62829 {
  border-color: rgba(246, 125, 139, .48) !important;
  background: rgba(90, 29, 45, .72) !important;
  color: #ffd3db !important;
}
body :is(.menuDrop, .mapActionPanel, .targetCard, .carrierInfoPanel,
  .galaxyGarageV6141, .planet1BaseMenuV6142, .planetJumpMenuV6226,
  .p1DistressPanelV6221, .mailWindowV62831, .galaxyChatV6261,
  .authPanelV62818, .nnMenuPanel) button:disabled {
  cursor: not-allowed;
  opacity: .52;
}
body :is(.menuDrop, .mapActionPanel, .targetCard, .carrierInfoPanel,
  .galaxyGarageV6141, .planet1BaseMenuV6142, .planetJumpMenuV6226,
  .p1DistressPanelV6221, .mailWindowV62831, .galaxyChatV6261,
  .authPanelV62818, .nnMenuPanel) :is(button, input, select, textarea):focus-visible {
  outline: 2px solid var(--nn-ui-accent) !important;
  outline-offset: 3px;
}
body :is(.carrierInfoPanel, .galaxyGarageV6141, .traderPanelV61320,
  .galaxyChatV6261, .authPanelV62818, .nnMenuPanel) :is(input, select, textarea) {
  box-sizing: border-box;
  border: 1px solid var(--nn-ui-border) !important;
  border-radius: 8px !important;
  background: rgba(2, 13, 23, .82) !important;
  color: var(--nn-ui-text) !important;
  font-family: inherit;
  line-height: 1.4;
  accent-color: var(--nn-ui-accent);
}

body :is(.garageCloseV6141, .rankPanelCloseV6274, .mailCloseV62831,
  .p1DistressCloseV6221, .galaxyChatCloseV6261, .nnMenuClose) {
  min-width: 36px;
  min-height: 36px !important;
  font-size: 22px !important;
  line-height: 1 !important;
}
.nnMenuCard { padding: 12px; }
.nnMenuHeading { margin-bottom: 12px; }
.nnMenuHelp { margin: 6px 0 0; }
.nnMenuActions { display: flex; flex-wrap: wrap; align-items: center; }
.nnMenuActions > button { padding: 9px 14px; }
.nnMenuBadge {
  display: inline-flex;
  align-items: center;
  padding: 4px 7px;
  border: 1px solid var(--nn-ui-border);
  border-radius: 5px;
  background: rgba(34, 110, 132, .17);
  color: var(--nn-ui-accent);
  font: 750 10px/1.2 system-ui, sans-serif;
  letter-spacing: .045em;
}

@media (max-width: 820px) {
  body .carrierTabsV62790 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  body :is(.carrierTabsV62790, .baseMenuTabsV6142, .galaxyChatTabsV6261) {
    gap: 4px !important;
  }
  body :is(.carrierTabsV62790, .baseMenuTabsV6142, .galaxyChatTabsV6261) button {
    min-height: 36px !important;
    font-size: 10px !important;
    letter-spacing: .015em !important;
  }
  body :is(.authPanelV62818, .galaxyChatComposerV6261,
    .playerAccountActionsV62829, .nnMenuPanel) input {
    font-size: 16px !important;
  }
}
