/* DMX_LOCKED_NORMAL_VISUAL_V62AG
   Los niveles/etapas bloqueados deben verse normales, sin transparencia ni apagado.
   Esto NO desbloquea contenido, NO cambia permisos y NO toca JS.
*/
body .dmxApp .dmxMission.locked,
body .dmxApp .dmxMission.locked *,
body .dmxApp .dmxMission.isLocked,
body .dmxApp .dmxMission.isLocked *,
body .dmxApp .dmxMission.is-locked,
body .dmxApp .dmxMission.is-locked *,
body .dmxApp .dmxStagePickCard.locked,
body .dmxApp .dmxStagePickCard.locked *,
body .dmxApp .dmxStagePickCard.isLocked,
body .dmxApp .dmxStagePickCard.isLocked *,
body .dmxApp .dmxStagePickCard.is-locked,
body .dmxApp .dmxStagePickCard.is-locked *,
body .dmxApp .dmxDiplomaMission.locked,
body .dmxApp .dmxDiplomaMission.locked *,
body .dmxApp .dmxLockedBtn,
body .dmxApp .dmxLockedBtn *,
body .dmxApp [data-dmx-plan-gate-open],
body .dmxApp [data-dmx-plan-gate-open] *,
body .dmxApp [data-analysis-lock],
body .dmxApp [data-analysis-lock] *,
body .dmxApp [data-dmx-diploma-open],
body .dmxApp [data-dmx-diploma-open] *{
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
  mix-blend-mode:normal !important;
}

body .dmxApp .dmxMission.locked h1,
body .dmxApp .dmxMission.locked h2,
body .dmxApp .dmxMission.locked h3,
body .dmxApp .dmxMission.locked p,
body .dmxApp .dmxMission.locked span,
body .dmxApp .dmxMission.locked small,
body .dmxApp .dmxMission.locked strong,
body .dmxApp .dmxStagePickCard.locked h1,
body .dmxApp .dmxStagePickCard.locked h2,
body .dmxApp .dmxStagePickCard.locked h3,
body .dmxApp .dmxStagePickCard.locked p,
body .dmxApp .dmxStagePickCard.locked span,
body .dmxApp .dmxStagePickCard.locked small,
body .dmxApp .dmxStagePickCard.locked strong{
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
}

/* Mantener el color normal de títulos/textos en ambos temas */
body:not(.dark-mode) .dmxApp .dmxMission.locked h2,
body:not(.dark-mode) .dmxApp .dmxStagePickCard.locked h2{
  color:#111827 !important;
}

body.dark-mode .dmxApp .dmxMission.locked h2,
body.dark-mode .dmxApp .dmxStagePickCard.locked h2{
  color:#e5e7eb !important;
}

/* El estado puede seguir diciendo Bloqueado, pero no debe verse apagado */
body .dmxApp .dmxMission.locked .dmxMissionMeta,
body .dmxApp .dmxMission.locked .dmxMissionMeta *,
body .dmxApp .dmxStagePickCard.locked .dmxStagePickMeta,
body .dmxApp .dmxStagePickCard.locked .dmxStagePickMeta *,
body .dmxApp .dmxStageStatusTag,
body .dmxApp .dmxStageStatusTag *{
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
}
/* DMX_LOCKED_NORMAL_VISUAL_V62AG_END */

/* DMX_DARK_LOCKED_NAMES_VISIBLE_V62AK
   Corrige nombres/títulos invisibles en tarjetas bloqueadas de niveles y etapas.
   No desbloquea contenido. No cambia permisos. No toca JS.
*/

/* Cuerpo textual de bloqueados: visible y sin filtros */
html body .dmxApp article.locked > div:not(.dmxNode):not(.dmxStagePickNumber):not(.dmxDiplomaNode),
html body .dmxApp article.locked > div:not(.dmxNode):not(.dmxStagePickNumber):not(.dmxDiplomaNode) *,
html body .dmxApp .dmxMission.locked > div:not(.dmxNode),
html body .dmxApp .dmxMission.locked > div:not(.dmxNode) *,
html body .dmxApp .dmxStagePickCard.locked .dmxStagePickBody,
html body .dmxApp .dmxStagePickCard.locked .dmxStagePickBody *{
  visibility:visible !important;
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
  mix-blend-mode:normal !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
  mask:none !important;
  -webkit-mask:none !important;
}

/* Títulos directos y primer texto real de la tarjeta */
html body .dmxApp article.locked h1,
html body .dmxApp article.locked h2,
html body .dmxApp article.locked h3,
html body .dmxApp article.locked .dmxMissionTitle,
html body .dmxApp article.locked .dmxMissionName,
html body .dmxApp article.locked .dmxStagePickTitle,
html body .dmxApp .dmxMission.locked h1,
html body .dmxApp .dmxMission.locked h2,
html body .dmxApp .dmxMission.locked h3,
html body .dmxApp .dmxStagePickCard.locked h1,
html body .dmxApp .dmxStagePickCard.locked h2,
html body .dmxApp .dmxStagePickCard.locked h3,
html body .dmxApp .dmxMission.locked > div:not(.dmxNode) > :first-child,
html body .dmxApp .dmxStagePickCard.locked .dmxStagePickBody > :first-child{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
  color:#0f172a !important;
  -webkit-text-fill-color:#0f172a !important;
  text-fill-color:#0f172a !important;
  background:none !important;
  background-image:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  text-shadow:none !important;
  mix-blend-mode:normal !important;
}

/* Oscuro por clases/atributos conocidos */
html.dark-mode body .dmxApp article.locked h1,
html.dark-mode body .dmxApp article.locked h2,
html.dark-mode body .dmxApp article.locked h3,
html.dark-mode body .dmxApp article.locked .dmxMissionTitle,
html.dark-mode body .dmxApp article.locked .dmxMissionName,
html.dark-mode body .dmxApp article.locked .dmxStagePickTitle,
html.dark-mode body .dmxApp .dmxMission.locked > div:not(.dmxNode) > :first-child,
html.dark-mode body .dmxApp .dmxStagePickCard.locked .dmxStagePickBody > :first-child,
body.dark-mode .dmxApp article.locked h1,
body.dark-mode .dmxApp article.locked h2,
body.dark-mode .dmxApp article.locked h3,
body.dark-mode .dmxApp article.locked .dmxMissionTitle,
body.dark-mode .dmxApp article.locked .dmxMissionName,
body.dark-mode .dmxApp article.locked .dmxStagePickTitle,
body.dark-mode .dmxApp .dmxMission.locked > div:not(.dmxNode) > :first-child,
body.dark-mode .dmxApp .dmxStagePickCard.locked .dmxStagePickBody > :first-child,
html.dmxDark body .dmxApp article.locked h1,
html.dmxDark body .dmxApp article.locked h2,
html.dmxDark body .dmxApp article.locked h3,
html.dmxDark body .dmxApp article.locked .dmxMissionTitle,
html.dmxDark body .dmxApp article.locked .dmxMissionName,
html.dmxDark body .dmxApp article.locked .dmxStagePickTitle,
body.dmxDark .dmxApp article.locked h1,
body.dmxDark .dmxApp article.locked h2,
body.dmxDark .dmxApp article.locked h3,
body.dmxDark .dmxApp article.locked .dmxMissionTitle,
body.dmxDark .dmxApp article.locked .dmxMissionName,
body.dmxDark .dmxApp article.locked .dmxStagePickTitle,
html[data-theme="dark"] body .dmxApp article.locked h1,
html[data-theme="dark"] body .dmxApp article.locked h2,
html[data-theme="dark"] body .dmxApp article.locked h3,
html[data-theme="dark"] body .dmxApp article.locked .dmxMissionTitle,
html[data-theme="dark"] body .dmxApp article.locked .dmxMissionName,
html[data-theme="dark"] body .dmxApp article.locked .dmxStagePickTitle,
body[data-theme="dark"] .dmxApp article.locked h1,
body[data-theme="dark"] .dmxApp article.locked h2,
body[data-theme="dark"] .dmxApp article.locked h3,
body[data-theme="dark"] .dmxApp article.locked .dmxMissionTitle,
body[data-theme="dark"] .dmxApp article.locked .dmxMissionName,
body[data-theme="dark"] .dmxApp article.locked .dmxStagePickTitle{
  color:#f8fafc !important;
  -webkit-text-fill-color:#f8fafc !important;
  text-fill-color:#f8fafc !important;
}

/* Oscuro real del sitio: botón muestra "Claro" cuando estamos en dark */
body:has(.dmxThemeToggle) .dmxApp article.locked h1,
body:has(.dmxThemeToggle) .dmxApp article.locked h2,
body:has(.dmxThemeToggle) .dmxApp article.locked h3,
body:has(.dmxThemeToggle) .dmxApp article.locked .dmxMissionTitle,
body:has(.dmxThemeToggle) .dmxApp article.locked .dmxMissionName,
body:has(.dmxThemeToggle) .dmxApp article.locked .dmxStagePickTitle,
body:has(button, a) .dmxApp article.locked h1,
body:has(button, a) .dmxApp article.locked h2,
body:has(button, a) .dmxApp article.locked h3{
  color:#f8fafc !important;
  -webkit-text-fill-color:#f8fafc !important;
  text-fill-color:#f8fafc !important;
}

/* No tocar badges de estado ni botones bloqueados */
html body .dmxApp article.locked .dmxTag,
html body .dmxApp article.locked .dmxStageStatusTag,
html body .dmxApp article.locked .dmxLockedBtn,
html body .dmxApp article.locked .dmxLockedBtn *{
  opacity:1 !important;
  filter:none !important;
  -webkit-filter:none !important;
}
/* DMX_DARK_LOCKED_NAMES_VISIBLE_V62AK_END */
