/* SanaMente v0.22.0 — sistema visual común para web pública, app, auth, admin y portales */
@import url('https://fonts.googleapis.com/css2?family=Gelasio:wght@400;500;600;700&family=Google+Sans:wght@400;500;600;700;800&family=Google+Sans+Flex:wght@400;500;600;700;800&display=swap');

:root {
  --sm-green: #036f42;
  --sm-yellow: #feeb73;
  --sm-dark: #01331e;
  --sm-ink: #151a19;
  --sm-muted: #48564c;
  --sm-bg: #fbfaf4;
  --sm-surface: #ffffff;
  --sm-soft: #fff6c4;
  --sm-soft-green: #e8f4ec;
  --sm-line: rgba(1,51,30,.13);
  --sm-line-strong: rgba(1,51,30,.24);
  --sm-shadow: 0 18px 44px rgba(1,51,30,.08);
  --sm-shadow-soft: 0 10px 28px rgba(1,51,30,.06);
  --sm-radius-xl: 28px;
  --sm-radius-lg: 24px;
  --sm-radius-md: 18px;
  --sm-radius-sm: 13px;
  --sm-font-body: 'Google Sans Flex','Google Sans Text','Google Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --sm-font-heading: 'Google Sans','Google Sans Text',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --sm-font-h1: 'Gelasio',Georgia,'Times New Roman',serif;

  --azul: var(--sm-green);
  --azul-dark: var(--sm-dark);
  --azul-light: var(--sm-soft-green);
  --amarillo: var(--sm-yellow);
  --verde: var(--sm-green);
  --texto: var(--sm-ink);
  --texto-suave: var(--sm-muted);
  --fondo: var(--sm-bg);
  --fondo-card: var(--sm-surface);
  --borde: var(--sm-line);
  --sombra: var(--sm-shadow-soft);
  --radio: var(--sm-radius-md);
  --fuente: var(--sm-font-body);
  --fuente-base: var(--sm-font-body);
  --fuente-tit: var(--sm-font-heading);
  --fuente-h1: var(--sm-font-h1);
}

html { background: var(--sm-bg); }
body,
body.home-page {
  background:
    radial-gradient(circle at 86% 4%, rgba(254,235,115,.18), transparent 26rem),
    linear-gradient(180deg, #ffffff 0%, var(--sm-bg) 100%) !important;
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-body) !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body *,
body.home-page * { font-family: var(--sm-font-body); }
h1,
.home-page h1,
.sm-hero h1,
.dashboard-hero h1,
.page-header h1,
.error-code { font-family: var(--sm-font-h1) !important; letter-spacing: -.045em; }
h2, h3, h4, h5, h6,
.home-page h2, .home-page h3, .home-page h4,
.home-brand, .home-nav-links a, .home-btn,
.topnav-logo-text, .desktopnav-item, .btn, button,
.card-title, .seccion-titulo, .sidebar-link, .topbar-title,
.sm-section-head h2, .sm-card-head h2,
.sm-btn, .sm-feature-label, .sm-eyebrow,
.home-eyebrow, .home-card h3, .game-card h3 { font-family: var(--sm-font-heading) !important; }
p, li, input, select, textarea, small, label { font-family: var(--sm-font-body) !important; }

/* Accesibilidad y base visual */
a { color: var(--sm-green); }
a:hover { color: var(--sm-dark); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid rgba(3,111,66,.28); outline-offset: 3px; }

/* Botones comunes */
.btn,
.home-btn,
.sm-btn,
button.btn,
input[type="submit"].btn {
  border-radius: var(--sm-radius-sm) !important;
  font-family: var(--sm-font-heading) !important;
  font-weight: 850 !important;
  min-height: 48px;
  transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}
.btn-primary,
.btn-success,
.home-btn-primary,
.sm-btn-primary,
.login-card .btn,
.auth-card .btn {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(3,111,66,.18);
}
.btn-primary:hover,
.btn-success:hover,
.home-btn-primary:hover,
.sm-btn-primary:hover,
.login-card .btn:hover,
.auth-card .btn:hover,
.btn-primary:focus-visible,
.home-btn-primary:focus-visible,
.sm-btn-primary:focus-visible {
  background: var(--sm-dark) !important;
  border-color: var(--sm-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}
.btn-outline,
.home-btn-secondary,
.sm-btn-outline {
  background: #fff !important;
  border: 1.5px solid var(--sm-green) !important;
  color: var(--sm-green) !important;
}
.btn-outline:hover,
.home-btn-secondary:hover,
.sm-btn-outline:hover,
.btn-outline:focus-visible,
.home-btn-secondary:focus-visible,
.sm-btn-outline:focus-visible {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
  text-decoration: none !important;
}
.btn-amarillo,
.btn-warning,
.sm-play-btn,
.dashboard-play-btn {
  background: var(--sm-yellow) !important;
  color: var(--sm-dark) !important;
  border-color: var(--sm-yellow) !important;
}

/* Formularios comunes */
input[type=text], input[type=email], input[type=password], input[type=date], input[type=tel], input[type=number], select, textarea {
  background: #fff !important;
  border: 1.5px solid var(--sm-line) !important;
  border-radius: 14px !important;
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-body) !important;
  min-height: 48px;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--sm-green) !important;
  box-shadow: 0 0 0 4px rgba(3,111,66,.13) !important;
}
label { color: var(--sm-dark) !important; font-weight: 800 !important; }

/* Tarjetas comunes */
.card,
.post-card,
.panel-link,
.public-content-card,
.public-link-card,
.home-card,
.game-card,
.home-benefit-card,
.home-step-card,
.home-preview-card,
.home-window,
.public-page-card,
.section-card,
.side-card,
.quick-access-card,
.sm-card,
.sm-panel,
.login-card,
.auth-card,
body .card {
  background: #fff !important;
  border: 1px solid var(--sm-line) !important;
  border-radius: var(--sm-radius-lg) !important;
  box-shadow: var(--sm-shadow-soft) !important;
}
.card-header,
.sm-card-head,
.section-card-header {
  border-bottom: 1px solid rgba(1,51,30,.10) !important;
}

/* Logos: nunca gigantes */
.home-brand img,
.topnav-logo-mark,
body img.topnav-logo-mark,
.sidebar-brand img,
.home-footer-brand img {
  display: inline-block !important;
  height: 42px !important;
  max-height: 42px !important;
  max-width: 42px !important;
  object-fit: contain !important;
  width: 42px !important;
}
.sm-hero-art img,
.dashboard-hero-brand img {
  height: auto !important;
  max-height: 260px !important;
  max-width: 300px !important;
  object-fit: contain !important;
  width: min(300px, 82%) !important;
}

/* Navegación app/familiar */
.topnav {
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid rgba(1,51,30,.10) !important;
  box-shadow: 0 8px 26px rgba(1,51,30,.055) !important;
  height: auto !important;
  min-height: 86px !important;
  padding: 0 !important;
}
.topnav-inner {
  align-items: center !important;
  display: flex !important;
  gap: 1.35rem !important;
  justify-content: space-between !important;
  margin: 0 auto !important;
  max-width: 1240px !important;
  min-height: 86px !important;
  padding: 1rem 1.5rem !important;
  width: 100% !important;
}
.topnav-logo {
  align-items: center !important;
  color: var(--sm-green) !important;
  display: inline-flex !important;
  gap: .65rem !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
.topnav-logo-text,
.topnav-logo {
  color: var(--sm-green) !important;
  font-weight: 850 !important;
}
.desktopnav {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  flex: 1 1 auto !important;
  gap: .35rem !important;
  justify-content: center !important;
  padding: 0 !important;
}
.desktopnav-item {
  align-items: center !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 14px !important;
  color: #1d241f !important;
  display: inline-flex !important;
  font-size: .94rem !important;
  font-weight: 800 !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 46px !important;
  padding: .78rem .96rem !important;
  text-decoration: none !important;
}
.desktopnav-item:hover,
.desktopnav-item:focus-visible { background: rgba(3,111,66,.08) !important; color: var(--sm-dark) !important; text-decoration: none !important; }
.desktopnav-item.activo,
.desktopnav-item[aria-current="page"] {
  background: var(--sm-green) !important;
  box-shadow: 0 12px 24px rgba(3,111,66,.24) !important;
  color: #fff !important;
}
.topnav-bell,
.topnav-user {
  background: #fff !important;
  border: 1px solid rgba(1,51,30,.12) !important;
  box-shadow: 0 10px 24px rgba(1,51,30,.06) !important;
}
.topnav-user .avatar { background: var(--sm-green) !important; }

/* Web pública: mismo sistema visual del dashboard */
body.home-page .home-shell { width: min(1240px, calc(100% - 48px)); }
body.home-page .home-nav {
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid rgba(1,51,30,.10) !important;
  box-shadow: 0 8px 26px rgba(1,51,30,.055) !important;
  backdrop-filter: blur(16px);
}
body.home-page .home-nav-inner {
  min-height: 86px !important;
  width: min(1240px, calc(100% - 48px)) !important;
}
body.home-page .home-brand {
  color: var(--sm-green) !important;
  font-size: 1.42rem !important;
  font-weight: 850 !important;
}
body.home-page .home-brand img {
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.home-page .home-nav-links { gap: .35rem !important; }
body.home-page .home-nav-links a {
  border: 1px solid transparent !important;
  border-radius: 14px !important;
  color: #1d241f !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  min-height: 44px !important;
  padding: .72rem .86rem !important;
}
body.home-page .home-nav-links a:hover,
body.home-page .home-nav-links a[aria-current="page"] {
  background: rgba(3,111,66,.08) !important;
  color: var(--sm-dark) !important;
}
body.home-page .home-hero {
  background:
    radial-gradient(circle at 83% 26%, rgba(254,235,115,.82), rgba(254,235,115,.44) 18rem, transparent 31rem),
    linear-gradient(135deg, #ffffff 0%, #fff9db 64%, #fff0a7 100%) !important;
  border: 1px solid rgba(3,111,66,.14) !important;
  border-radius: var(--sm-radius-xl) !important;
  box-shadow: var(--sm-shadow) !important;
  margin: 1.4rem auto 1.25rem !important;
  max-width: 1240px;
  overflow: hidden;
  padding: 0 !important;
  width: calc(100% - 48px);
}
body.home-page .home-hero::before { display: none !important; }
body.home-page .home-hero-grid {
  gap: 2rem !important;
  grid-template-columns: minmax(0,1fr) minmax(320px,420px) !important;
  min-height: 520px;
  padding: 2.25rem !important;
}
body.home-page .home-hero h1,
body.home-page .public-page-hero h1 {
  color: var(--sm-ink) !important;
  font-size: clamp(2.7rem, 5vw, 4.6rem) !important;
  font-weight: 700 !important;
  line-height: .98 !important;
  margin: .2rem 0 1.2rem !important;
  max-width: 780px !important;
}
body.home-page .home-lead,
body.home-page .public-page-lead,
body.home-page .home-section-title p,
body.home-page .home-card p,
body.home-page .game-card p,
body.home-page .public-content-card p {
  color: var(--sm-muted) !important;
  font-size: 1rem;
}
body.home-page .home-eyebrow {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--sm-green) !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
  letter-spacing: .11em !important;
  padding: 0 !important;
}
body.home-page .home-preview-header {
  background: var(--sm-dark) !important;
  border-radius: 16px 16px 0 0 !important;
  color: #fff !important;
}
body.home-page .home-preview-card { border-radius: 24px !important; padding: .75rem !important; }
body.home-page .home-preview-stat,
body.home-page .home-mini,
body.home-page .home-feature-list div { border-color: rgba(1,51,30,.10) !important; border-radius: 16px !important; }
body.home-page .home-section { padding: 4.5rem 0 !important; }
body.home-page .home-section-soft { background: rgba(232,244,236,.48) !important; }
body.home-page .home-section-dark { background: var(--sm-dark) !important; }
body.home-page .home-section-dark h2,
body.home-page .home-section-dark h3,
body.home-page .home-section-dark p { color: #fff !important; }
body.home-page .home-section-dark .home-eyebrow { color: var(--sm-yellow) !important; }
body.home-page .home-card,
body.home-page .game-card,
body.home-page .home-benefit-card,
body.home-page .home-step-card,
body.home-page .public-faq-item {
  border-radius: 20px !important;
  padding: 1.25rem !important;
}
body.home-page .home-card-marker,
body.home-page .game-pill {
  background: var(--sm-yellow) !important;
  color: var(--sm-dark) !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-weight: 900 !important;
}
body.home-page .home-final-cta {
  background: linear-gradient(135deg, #fff8be, var(--sm-yellow)) !important;
  border: 1px solid rgba(1,51,30,.15) !important;
  border-radius: 28px !important;
  box-shadow: var(--sm-shadow) !important;
}
body.home-page .home-footer { background: var(--sm-dark) !important; color: #fff !important; }
body.home-page .home-footer a { color: #fff !important; }

/* Auth */
body.auth-screen,
body:has(.login-card),
body:has(.auth-card) {
  background:
    radial-gradient(circle at 78% 15%, rgba(254,235,115,.35), transparent 22rem),
    linear-gradient(180deg,#fff 0%, var(--sm-bg) 100%) !important;
}
.login-card,
.auth-card,
body > .card:first-child {
  max-width: 460px;
  padding: 2.2rem !important;
}
.login-card .logo,
.auth-card .logo,
body > .card:first-child .logo {
  color: var(--sm-green) !important;
  font-family: var(--sm-font-heading) !important;
  font-size: 1.75rem !important;
  font-weight: 850 !important;
}
.login-card .subtitulo,
.auth-card .subtitulo { color: var(--sm-muted) !important; }

/* Admin / institución */
.sidebar {
  background: linear-gradient(180deg, var(--sm-dark), var(--sm-green)) !important;
  border-right: 1px solid rgba(255,255,255,.10);
}
.sidebar-brand { border-bottom-color: rgba(255,255,255,.14) !important; }
.sidebar-brand .logo-texto { color: #fff !important; font-family: var(--sm-font-heading) !important; font-weight: 850 !important; }
.sidebar-brand .logo-texto span { color: var(--sm-yellow) !important; }
.sidebar-label { color: rgba(255,255,255,.58) !important; }
.sidebar-link {
  border-radius: 14px !important;
  color: rgba(255,255,255,.84) !important;
  font-weight: 750 !important;
  margin: .12rem .75rem;
  padding: .72rem .85rem !important;
}
.sidebar-link:hover { background: rgba(255,255,255,.12) !important; color: #fff !important; }
.sidebar-link.activo { background: rgba(254,235,115,.18) !important; border-right: 0 !important; color: #fff !important; }
.main-content { background: var(--sm-bg) !important; }
.topbar {
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid rgba(1,51,30,.10) !important;
  box-shadow: 0 8px 24px rgba(1,51,30,.05) !important;
}
.topbar-title { color: var(--sm-ink) !important; font-weight: 850 !important; }
.page-content { background: transparent !important; }
.admin-card,
.stat-admin,
.metric-card,
.table-card,
.admin-panel {
  background: #fff !important;
  border: 1px solid var(--sm-line) !important;
  border-radius: var(--sm-radius-lg) !important;
  box-shadow: var(--sm-shadow-soft) !important;
}

/* Avisos/drawers: que no rompan la lectura */
.am-notif-drawer,
.notif-drawer,
.drawer,
.modal {
  background: #fff !important;
  border: 1px solid var(--sm-line) !important;
  box-shadow: 0 22px 56px rgba(1,51,30,.18) !important;
}

@media (max-width: 1100px) {
  body.home-page .home-nav-links { display: none !important; }
  body.home-page .home-hero-grid { grid-template-columns: 1fr !important; min-height: auto !important; }
  body.home-page .home-preview-card { max-width: 560px; }
  .desktopnav { display: none !important; }
}
@media (max-width: 720px) {
  .topnav, .topnav-inner { min-height: 74px !important; }
  .topnav-inner { padding: .8rem 1rem !important; }
  .home-brand img, .topnav-logo-mark, body img.topnav-logo-mark { height: 34px !important; max-height: 34px !important; max-width: 34px !important; width: 34px !important; }
  .home-brand span, .topnav-logo-text { font-size: 1.15rem !important; }
  body.home-page .home-shell,
  body.home-page .home-nav-inner,
  body.home-page .home-hero { width: calc(100% - 28px) !important; }
  body.home-page .home-hero-grid { padding: 1.35rem !important; }
  body.home-page .home-hero h1 { font-size: clamp(2.2rem, 11vw, 3.2rem) !important; }
  body.home-page .home-section { padding: 3rem 0 !important; }
  body.home-page .home-nav-actions .home-btn-secondary { display: none !important; }
  .topnav-user-meta, .topnav-user-chevron { display: none !important; }
}


/* SanaMente v0.22.1 — enforcement final de arquitectura visual global
   Objetivo: ningún módulo de la app conserva estilos heredados azules o navegación vieja. */
:root {
  --sm-green: #036f42;
  --sm-yellow: #feeb73;
  --sm-dark: #01331e;
  --sm-ink: #151a19;
  --sm-muted: #48564c;
  --sm-bg: #fbfaf4;
  --sm-surface: #ffffff;
  --sm-soft-green: #e8f4ec;
  --sm-soft-yellow: #fff6c4;

  /* Variables legacy: se preservan nombres técnicos, pero visualmente responden a SanaMente. */
  --azul: #036f42 !important;
  --azul-dark: #01331e !important;
  --azul-light: #e8f4ec !important;
  --violeta: #6f8f3f !important;
  --violeta-light: #f4f7ec !important;
}

/* Navegación app: mismo lenguaje visual en todos los módulos */
body .topnav,
body .bottomnav {
  background: rgba(255,255,255,.98) !important;
  border-color: rgba(1,51,30,.12) !important;
  color: var(--sm-ink) !important;
}
body .desktopnav,
body .bottomnav {
  font-family: var(--sm-font-heading) !important;
}
body .desktopnav-item,
body .bottomnav-item {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-heading) !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
body .desktopnav-item:hover,
body .desktopnav-item:focus-visible,
body .bottomnav-item:hover,
body .bottomnav-item:focus-visible {
  background: rgba(3,111,66,.09) !important;
  border-color: rgba(3,111,66,.16) !important;
  color: var(--sm-dark) !important;
  text-decoration: none !important;
}
body .desktopnav-item.activo,
body .desktopnav-item[aria-current="page"],
body .bottomnav-item.activo,
body .bottomnav-item[aria-current="page"] {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
  box-shadow: 0 12px 24px rgba(3,111,66,.22) !important;
}
body .bottomnav-item.activo .nav-icono,
body .bottomnav-item[aria-current="page"] .nav-icono,
body .bottomnav-item.activo span,
body .bottomnav-item[aria-current="page"] span {
  color: #fff !important;
}

/* Contenedores y secciones de módulos internos */
body:not(.home-page) .app-container,
body:not(.home-page) .app-container-dashboard {
  max-width: 1240px !important;
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}
body:not(.home-page) .page-header,
body:not(.home-page) .section-intro,
body:not(.home-page) .section-card,
body:not(.home-page) .card,
body:not(.home-page) .stat-card,
body:not(.home-page) .feature-banner,
body:not(.home-page) .juego-card,
body:not(.home-page) .rutina-inline-item,
body:not(.home-page) .curso-card,
body:not(.home-page) .grupo-card,
body:not(.home-page) .actividad-card,
body:not(.home-page) .bienestar-card {
  border-color: rgba(1,51,30,.13) !important;
  box-shadow: 0 12px 30px rgba(1,51,30,.06) !important;
}
body:not(.home-page) .section-intro,
body:not(.home-page) .page-header {
  background: linear-gradient(135deg, #fffdf0 0%, #ffffff 62%, #fff6c4 100%) !important;
  border: 1px solid rgba(1,51,30,.13) !important;
  border-radius: 28px !important;
  box-shadow: 0 18px 44px rgba(1,51,30,.075) !important;
  padding: 1.55rem !important;
}
body:not(.home-page) .page-header h1,
body:not(.home-page) .section-intro-title {
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-h1) !important;
  letter-spacing: -.04em !important;
}
body:not(.home-page) .page-header p,
body:not(.home-page) .section-intro-text,
body:not(.home-page) .juego-card-desc,
body:not(.home-page) .rutina-inline-meta,
body:not(.home-page) .empty-state p {
  color: var(--sm-muted) !important;
}
body:not(.home-page) .section-card-header,
body:not(.home-page) .card-header {
  border-color: rgba(1,51,30,.10) !important;
}
body:not(.home-page) .seccion-titulo,
body:not(.home-page) .card-title,
body:not(.home-page) .section-link {
  color: var(--sm-dark) !important;
  font-family: var(--sm-font-heading) !important;
}
body:not(.home-page) .section-link:hover { color: var(--sm-green) !important; }

/* Botones: si el fondo se vuelve verde oscuro, el texto siempre va en blanco */
body .btn-primary,
body .btn-success,
body .btn:not(.btn-outline):not(.btn-ghost),
body button.btn-primary,
body input[type="submit"].btn-primary,
body .juego-card-btn,
body .jb-btn-grande,
body .mm-start-btn,
body .mm-btn-grande,
body .nb-btn,
body .ct-btn-numero.correcto,
body .rt-target.ready,
body .btn-outline-invert {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .btn-primary:hover,
body .btn-primary:focus-visible,
body .btn-success:hover,
body .btn-success:focus-visible,
body .btn:not(.btn-outline):not(.btn-ghost):hover,
body .btn:not(.btn-outline):not(.btn-ghost):focus-visible,
body .juego-card-btn:hover,
body .juego-card-btn:focus-visible,
body .jb-btn-grande:hover,
body .jb-btn-grande:focus-visible,
body .mm-start-btn:hover,
body .mm-start-btn:focus-visible,
body .mm-btn-grande:hover,
body .mm-btn-grande:focus-visible,
body .nb-btn:hover,
body .nb-btn:focus-visible,
body .btn-outline-invert:hover,
body .btn-outline-invert:focus-visible {
  background: var(--sm-dark) !important;
  border-color: var(--sm-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
}
body .btn-primary:hover *,
body .btn-primary:focus-visible *,
body .juego-card-btn:hover *,
body .juego-card-btn:focus-visible *,
body .jb-btn-grande:hover *,
body .jb-btn-grande:focus-visible *,
body .mm-start-btn:hover *,
body .mm-start-btn:focus-visible *,
body .mm-btn-grande:hover *,
body .mm-btn-grande:focus-visible *,
body .nb-btn:hover *,
body .nb-btn:focus-visible * {
  color: #fff !important;
}
body .btn-outline,
body .btn-ghost,
body .juego-card-btn-lock {
  background: #fff !important;
  border-color: rgba(3,111,66,.32) !important;
  color: var(--sm-green) !important;
}
body .btn-outline:hover,
body .btn-outline:focus-visible,
body .btn-ghost:hover,
body .btn-ghost:focus-visible,
body .juego-card-btn-lock:hover,
body .juego-card-btn-lock:focus-visible {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* Juegos: tarjetas, estados y botones con paleta SanaMente */
body .juego-card {
  background: #fff !important;
  border: 1px solid rgba(1,51,30,.13) !important;
  border-radius: 22px !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease !important;
}
body .juego-card:hover {
  border-color: rgba(3,111,66,.42) !important;
  box-shadow: 0 18px 38px rgba(1,51,30,.095) !important;
  transform: translateY(-1px) !important;
}
body .juego-card-titulo { color: var(--sm-ink) !important; font-family: var(--sm-font-heading) !important; }
body .juego-card-btn { border-radius: 14px !important; font-family: var(--sm-font-heading) !important; font-weight: 850 !important; }
body .jb-btn-opcion,
body .ct-btn-numero,
body .mm-cell,
body .nb-response-btn {
  border-color: rgba(1,51,30,.16) !important;
  color: var(--sm-ink) !important;
}
body .jb-btn-opcion:hover,
body .jb-btn-opcion:focus-visible,
body .ct-btn-numero:hover,
body .ct-btn-numero:focus-visible,
body .nb-response-btn:hover,
body .nb-response-btn:focus-visible {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .jb-btn-opcion.correcto,
body .ct-btn-numero.correcto,
body .mm-cell.correcto,
body .nb-response-btn.correcto {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .jb-btn-opcion.incorrecto,
body .ct-btn-numero.incorrecto,
body .mm-cell.incorrecto,
body .nb-response-btn.incorrecto {
  background: #fbe9e7 !important;
  border-color: #b42318 !important;
  color: #7a1812 !important;
}

/* Restos azules heredados: se fuerza mapeo visual a SanaMente */
body .badge-azul,
body .alerta-azul,
body .alerta-info,
body .kpi-icono.azul,
body .ranking-tab.activo,
body .ranking-posicion-yo,
body [class*="azul"] {
  background-color: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.18) !important;
  color: var(--sm-dark) !important;
}
body .kpi-icono.azul { color: var(--sm-green) !important; }
body [style*="#e8f0fe"],
body [style*="#eff6ff"],
body [style*="#dbeafe"],
body [style*="#bfdbfe"],
body [style*="#93c5fd"] { background: var(--sm-soft-green) !important; border-color: rgba(3,111,66,.18) !important; }
body [style*="#1a4abf"],
body [style*="#1d4ed8"],
body [style*="#2563eb"],
body [style*="#244e88"] { color: var(--sm-green) !important; }
body [style*="background:var(--azul)"],
body [style*="background: var(--azul)"],
body [style*="background:#2563eb"],
body [style*="background: #2563eb"] { background: var(--sm-green) !important; }

/* Buscar diferencias: marcadores y avisos sin azul */
body .df-feedback.info {
  background: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.18) !important;
  color: var(--sm-dark) !important;
}
body .df-zone-found {
  background: rgba(3,111,66,.14) !important;
  border-color: var(--sm-green) !important;
}
body .df-zone-found::after { color: var(--sm-green) !important; }
body .progreso-barra span { background: var(--sm-green) !important; }
body .proceso-lista li.is-active,
body .proceso-lista li.is-waiting {
  background: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.28) !important;
  color: var(--sm-dark) !important;
}

/* Admin e institución: badges, links, KPIs y sidebar dentro de la misma arquitectura */
body .sidebar,
body .admin-layout .sidebar {
  background: var(--sm-dark) !important;
}
body .sidebar-link:hover,
body .sidebar-link.activo {
  background: rgba(254,235,115,.14) !important;
  color: #fff !important;
}
body .sidebar-link.activo .icono,
body .sidebar-link:hover .icono { color: var(--sm-yellow) !important; }
body .admin-main a,
body .institucion-main a { color: var(--sm-green) !important; }

@media (max-width: 900px) {
  body:not(.home-page) .app-container,
  body:not(.home-page) .app-container-dashboard { padding-left: 1rem !important; padding-right: 1rem !important; }
  body:not(.home-page) .section-intro,
  body:not(.home-page) .page-header { border-radius: 22px !important; padding: 1.15rem !important; }
}


/* SanaMente v0.22.3 — cierre visual de juegos y ranking
   Se corrigen estados hover/focus, restos de azul y botones con fondo verde que no pasaban texto a blanco. */
body .ranking-tab {
  background: #fff !important;
  border: 1.5px solid rgba(1,51,30,.14) !important;
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-heading) !important;
  font-weight: 800 !important;
}
body .ranking-tab:hover,
body .ranking-tab:focus-visible {
  background: rgba(3,111,66,.08) !important;
  border-color: rgba(3,111,66,.38) !important;
  color: var(--sm-dark) !important;
  text-decoration: none !important;
}
body .ranking-tab-activo,
body .ranking-tab-activo:hover,
body .ranking-tab-activo:focus-visible,
body .ranking-tab.activo,
body .ranking-tab.activo:hover,
body .ranking-tab.activo:focus-visible {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 10px 22px rgba(3,111,66,.18) !important;
}

body .ranking-barra,
body .juego-card-btn,
body .jb-btn-grande,
body .mm-start-btn,
body .mm-btn-grande,
body .nb-btn-si,
body .rt-target.ready,
body [data-jb-iniciar],
body [data-jb-reiniciar],
body [data-jb-siguiente-bien],
body [data-mm-btn-iniciar],
body [data-mm-btn-siguiente],
body [data-nb-start],
body [data-nb-jugar-de-nuevo],
body [data-ct-start],
body [data-ct-jugar-de-nuevo] {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .juego-card-btn:hover,
body .juego-card-btn:focus-visible,
body .jb-btn-grande:hover,
body .jb-btn-grande:focus-visible,
body .mm-start-btn:hover,
body .mm-start-btn:focus-visible,
body .mm-btn-grande:hover,
body .mm-btn-grande:focus-visible,
body .nb-btn-si:hover,
body .nb-btn-si:focus-visible,
body .rt-target.ready:hover,
body .rt-target.ready:focus-visible,
body [data-jb-iniciar]:hover,
body [data-jb-iniciar]:focus-visible,
body [data-jb-reiniciar]:hover,
body [data-jb-reiniciar]:focus-visible,
body [data-jb-siguiente-bien]:hover,
body [data-jb-siguiente-bien]:focus-visible,
body [data-mm-btn-iniciar]:hover,
body [data-mm-btn-iniciar]:focus-visible,
body [data-mm-btn-siguiente]:hover,
body [data-mm-btn-siguiente]:focus-visible,
body [data-nb-start]:hover,
body [data-nb-start]:focus-visible,
body [data-nb-jugar-de-nuevo]:hover,
body [data-nb-jugar-de-nuevo]:focus-visible,
body [data-ct-start]:hover,
body [data-ct-start]:focus-visible,
body [data-ct-jugar-de-nuevo]:hover,
body [data-ct-jugar-de-nuevo]:focus-visible {
  background: var(--sm-dark) !important;
  border-color: var(--sm-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
}
body .juego-card-btn *,
body .juego-card-btn:hover *,
body .jb-btn-grande *,
body .jb-btn-grande:hover *,
body .mm-start-btn *,
body .mm-start-btn:hover *,
body .mm-btn-grande *,
body .mm-btn-grande:hover *,
body .nb-btn-si *,
body .nb-btn-si:hover * {
  color: #fff !important;
}

body .jb-btn-opcion,
body .ct-btn-numero,
body .nb-btn-no,
body [data-jb-siguiente-mal] {
  background: #fff !important;
  border: 1.5px solid rgba(1,51,30,.16) !important;
  color: var(--sm-ink) !important;
}
body .jb-btn-opcion:hover,
body .jb-btn-opcion:focus-visible,
body .ct-btn-numero:hover,
body .ct-btn-numero:focus-visible,
body .nb-btn-no:hover,
body .nb-btn-no:focus-visible,
body [data-jb-siguiente-mal]:hover,
body [data-jb-siguiente-mal]:focus-visible {
  background: rgba(3,111,66,.08) !important;
  border-color: var(--sm-green) !important;
  color: var(--sm-dark) !important;
}
body .jb-btn-opcion.correcto,
body .ct-btn-numero.correcto,
body .mm-cell[data-result="correct"],
body .mm-feedback[data-mode="success"] {
  background: var(--sm-soft-green) !important;
  border-color: var(--sm-green) !important;
  color: var(--sm-dark) !important;
}
body .mm-cell[data-active="true"],
body .pip.act {
  background: var(--sm-yellow) !important;
  border-color: var(--sm-yellow) !important;
  color: var(--sm-dark) !important;
}

body .badge-azul,
body .alerta-info,
body .df-feedback.info,
body [style*="#e8f0fe"],
body [style*="#e8f1ff"],
body [style*="#dbeafe"],
body [style*="#bfdbfe"] {
  background: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.18) !important;
  color: var(--sm-dark) !important;
}
body [style*="background:var(--azul)"],
body [style*="background: var(--azul)"],
body [style*="background:#2563eb"],
body [style*="background: #2563eb"] {
  background: var(--sm-green) !important;
  color: #fff !important;
}
body [style*="border-color:var(--azul)"],
body [style*="border-color: var(--azul)"] {
  border-color: var(--sm-green) !important;
}
body [style*="#1a4abf"],
body [style*="#244e88"],
body [style*="#2563eb"] {
  color: var(--sm-dark) !important;
}
body .df-zone-found {
  background: rgba(3,111,66,.14) !important;
  border-color: var(--sm-green) !important;
}
body .df-zone-found::after { color: var(--sm-green) !important; }


/* SanaMente v0.22.4 — cierre real de arquitectura visual en admin, juegos y ranking
   Este bloque se carga al final para pisar estilos heredados sin tocar lógica. */
:root {
  --sm-green: #036f42;
  --sm-yellow: #feeb73;
  --sm-dark: #01331e;
  --sm-ink: #151a19;
  --sm-muted: #48564c;
  --sm-bg: #fbfaf4;
  --sm-surface: #ffffff;
  --sm-soft-green: #e8f4ec;
  --sm-soft-yellow: #fff6c4;
}

/* Admin: evitar barras flotantes/pegadas en capturas y pantallas largas */
body.admin-screen .admin-layout {
  align-items: stretch !important;
  background: var(--sm-bg) !important;
  display: flex !important;
  min-height: 100vh !important;
}
body.admin-screen .sidebar {
  flex: 0 0 var(--sidebar-w, 260px) !important;
  height: 100vh !important;
  left: auto !important;
  min-height: 100vh !important;
  position: sticky !important;
  top: 0 !important;
  transform: none !important;
  width: var(--sidebar-w, 260px) !important;
  z-index: 40 !important;
}
body.admin-screen .main-content {
  flex: 1 1 auto !important;
  margin-left: 0 !important;
  min-width: 0 !important;
  width: calc(100% - var(--sidebar-w, 260px)) !important;
}
body.admin-screen .topbar {
  position: static !important;
  top: auto !important;
  z-index: 1 !important;
  min-height: 76px !important;
  padding: 0 2rem !important;
}
body.admin-screen .page-content {
  margin: 0 auto !important;
  max-width: 1240px !important;
  padding: 2.25rem 2rem 4rem !important;
  width: 100% !important;
}
body.admin-screen .section-intro,
body.admin-screen .page-header {
  background:
    radial-gradient(circle at 88% 10%, rgba(254,235,115,.55), transparent 22rem),
    linear-gradient(135deg, #ffffff 0%, #fffdf0 58%, #fff6c4 100%) !important;
  border: 1px solid rgba(3,111,66,.14) !important;
  border-radius: 28px !important;
  box-shadow: 0 18px 44px rgba(1,51,30,.075) !important;
  margin-bottom: 1.35rem !important;
  padding: 2rem 2.15rem !important;
}
body.admin-screen .section-intro h1,
body.admin-screen .page-header h1 {
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-h1, 'Gelasio', Georgia, serif) !important;
  font-size: clamp(2.1rem, 3.8vw, 3rem) !important;
  font-weight: 700 !important;
  letter-spacing: -.045em !important;
  line-height: 1.05 !important;
  margin: 0 0 .45rem !important;
}
body.admin-screen .section-intro p,
body.admin-screen .page-header p,
body.admin-screen .text-muted,
body.admin-screen .text-sm.text-muted {
  color: var(--sm-muted) !important;
}
body.admin-screen .grid.grid-2 {
  align-items: start !important;
  display: grid !important;
  gap: 1.4rem !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr) !important;
}
body.admin-screen .grid.grid-3 {
  display: grid !important;
  gap: 1rem !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.admin-screen .form-grid {
  display: grid !important;
  gap: 1.15rem !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body.admin-screen .card {
  border: 1px solid rgba(1,51,30,.13) !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 34px rgba(1,51,30,.065) !important;
  overflow: hidden !important;
}
body.admin-screen .card-header {
  background: #fff !important;
  border-bottom: 1px solid rgba(1,51,30,.10) !important;
  min-height: 70px !important;
  padding: 1.15rem 1.45rem !important;
}
body.admin-screen .card-title {
  color: var(--sm-dark) !important;
  font-family: var(--sm-font-heading, system-ui, sans-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 850 !important;
}
body.admin-screen .card-body { padding: 1.55rem !important; }
body.admin-screen label {
  color: var(--sm-dark) !important;
  display: inline-block !important;
  font-family: var(--sm-font-heading, system-ui, sans-serif) !important;
  font-size: .86rem !important;
  font-weight: 850 !important;
  margin-bottom: .38rem !important;
}
body.admin-screen input[type=text],
body.admin-screen input[type=email],
body.admin-screen input[type=password],
body.admin-screen input[type=date],
body.admin-screen input[type=datetime-local],
body.admin-screen input[type=number],
body.admin-screen input[type=tel],
body.admin-screen select,
body.admin-screen textarea {
  border: 1.5px solid rgba(1,51,30,.14) !important;
  border-radius: 16px !important;
  color: var(--sm-ink) !important;
  min-height: 52px !important;
  padding: .72rem .9rem !important;
}
body.admin-screen textarea { min-height: 120px !important; }
body.admin-screen input:focus,
body.admin-screen select:focus,
body.admin-screen textarea:focus {
  border-color: var(--sm-green) !important;
  box-shadow: 0 0 0 4px rgba(3,111,66,.13) !important;
}
body.admin-screen tbody tr:hover { background: rgba(232,244,236,.45) !important; }
body.admin-screen .badge-azul,
body.admin-screen .alerta-info,
body.admin-screen .alerta-azul,
body.admin-screen .kpi-icono.azul {
  background: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.18) !important;
  color: var(--sm-dark) !important;
}
body.admin-screen .paginacion a:hover {
  border-color: var(--sm-green) !important;
  color: var(--sm-green) !important;
}
body.admin-screen .paginacion .activo {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}

/* Botones: regla final para no perder contraste en hover/focus/activo */
body .btn-primary,
body .btn-success,
body .btn-verde,
body .btn-admin-primary,
body .btn[type="submit"],
body button.btn-primary,
body input[type="submit"],
body .juego-card-btn,
body .ranking-tab-activo,
body .ranking-tab.activo {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .btn-primary:hover,
body .btn-primary:focus-visible,
body .btn-success:hover,
body .btn-success:focus-visible,
body .btn-verde:hover,
body .btn-verde:focus-visible,
body .btn-admin-primary:hover,
body .btn-admin-primary:focus-visible,
body .btn[type="submit"]:hover,
body .btn[type="submit"]:focus-visible,
body button.btn-primary:hover,
body button.btn-primary:focus-visible,
body input[type="submit"]:hover,
body input[type="submit"]:focus-visible,
body .juego-card-btn:hover,
body .juego-card-btn:focus-visible,
body .ranking-tab-activo:hover,
body .ranking-tab-activo:focus-visible,
body .ranking-tab.activo:hover,
body .ranking-tab.activo:focus-visible {
  background: var(--sm-dark) !important;
  border-color: var(--sm-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
}
body .btn-primary *, body .btn-primary:hover *,
body .btn-success *, body .btn-success:hover *,
body .btn-verde *, body .btn-verde:hover *,
body .btn-admin-primary *, body .btn-admin-primary:hover *,
body .btn[type="submit"] *, body .btn[type="submit"]:hover *,
body button.btn-primary *, body button.btn-primary:hover *,
body .juego-card-btn *, body .juego-card-btn:hover *,
body .ranking-tab-activo *, body .ranking-tab-activo:hover *,
body .ranking-tab.activo *, body .ranking-tab.activo:hover * {
  color: #fff !important;
}
body .btn-outline,
body .btn-ghost,
body .btn-secondary,
body .ranking-tab:not(.activo):not(.ranking-tab-activo) {
  background: #fff !important;
  border: 1.5px solid rgba(3,111,66,.34) !important;
  color: var(--sm-green) !important;
}
body .btn-outline:hover,
body .btn-outline:focus-visible,
body .btn-ghost:hover,
body .btn-ghost:focus-visible,
body .btn-secondary:hover,
body .btn-secondary:focus-visible,
body .ranking-tab:not(.activo):not(.ranking-tab-activo):hover,
body .ranking-tab:not(.activo):not(.ranking-tab-activo):focus-visible {
  background: rgba(3,111,66,.08) !important;
  border-color: var(--sm-green) !important;
  color: var(--sm-dark) !important;
  text-decoration: none !important;
}

/* Juegos: barrido final de colores viejos y botones internos */
body [class*="azul"],
body [class*="blue"],
body [class*="violeta"],
body [class*="purple"] {
  --azul: var(--sm-green) !important;
  --azul-dark: var(--sm-dark) !important;
  --azul-light: var(--sm-soft-green) !important;
  --violeta: #6f8f3f !important;
  --violeta-light: #f4f7ec !important;
}
body .badge-azul,
body .badge-blue,
body .alerta-info,
body .info-box,
body .df-feedback.info {
  background: var(--sm-soft-green) !important;
  border-color: rgba(3,111,66,.18) !important;
  color: var(--sm-dark) !important;
}
body .juego-shell,
body .jb-shell,
body .mm-shell,
body .ct-shell,
body .nb-shell,
body .df-shell {
  color: var(--sm-ink) !important;
}
body .jb-btn-grande,
body .mm-btn-grande,
body .mm-start-btn,
body .nb-btn-si,
body .ct-primary,
body .rt-target.ready,
body [data-jb-iniciar],
body [data-jb-reiniciar],
body [data-mm-btn-iniciar],
body [data-mm-btn-siguiente],
body [data-nb-start],
body [data-nb-jugar-de-nuevo],
body [data-ct-start],
body [data-ct-jugar-de-nuevo] {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .jb-btn-grande:hover,
body .mm-btn-grande:hover,
body .mm-start-btn:hover,
body .nb-btn-si:hover,
body .ct-primary:hover,
body .rt-target.ready:hover,
body [data-jb-iniciar]:hover,
body [data-jb-reiniciar]:hover,
body [data-mm-btn-iniciar]:hover,
body [data-mm-btn-siguiente]:hover,
body [data-nb-start]:hover,
body [data-nb-jugar-de-nuevo]:hover,
body [data-ct-start]:hover,
body [data-ct-jugar-de-nuevo]:hover {
  background: var(--sm-dark) !important;
  border-color: var(--sm-dark) !important;
  color: #fff !important;
}
body .jb-btn-grande *, body .jb-btn-grande:hover *,
body .mm-btn-grande *, body .mm-btn-grande:hover *,
body .mm-start-btn *, body .mm-start-btn:hover *,
body .nb-btn-si *, body .nb-btn-si:hover *,
body .ct-primary *, body .ct-primary:hover * { color: #fff !important; }
body .jb-btn-opcion:hover,
body .ct-btn-numero:hover,
body .nb-btn-no:hover {
  background: rgba(3,111,66,.08) !important;
  border-color: var(--sm-green) !important;
  color: var(--sm-dark) !important;
}
body .progreso-barra span,
body [data-jb-prog],
body .ranking-barra {
  background: var(--sm-green) !important;
}

@media (max-width: 980px) {
  body.admin-screen .sidebar {
    left: 0 !important;
    position: fixed !important;
    transform: translateX(-100%) !important;
    z-index: 100 !important;
  }
  body.admin-screen .sidebar.open { transform: translateX(0) !important; }
  body.admin-screen .main-content { margin-left: 0 !important; width: 100% !important; }
  body.admin-screen .page-content { padding: 1.25rem 1rem 3rem !important; }
  body.admin-screen .grid.grid-2,
  body.admin-screen .grid.grid-3,
  body.admin-screen .form-grid { grid-template-columns: 1fr !important; }
}


/* SanaMente v0.22.5 — correcciones reales de juegos simples
   - N-back / ¿Es la misma letra?: títulos legibles sobre fondo claro y paneles en paleta SanaMente.
   - Botones de juegos: hover/focus siempre legibles.
   - Cálculo cotidiano: opciones numéricas sin símbolo de moneda desde JS. */
body .mm-page {
  --mm-bg: var(--sm-dark) !important;
  --mm-surface: var(--sm-dark) !important;
  --mm-text: #ffffff !important;
  --mm-muted: rgba(255,255,255,.84) !important;
  --mm-accent: var(--sm-yellow) !important;
  --mm-accent-text: var(--sm-dark) !important;
  --mm-border: rgba(254,235,115,.38) !important;
  --mm-focus: var(--sm-yellow) !important;
}
body .mm-page > div:first-child h1,
body .mm-page > header h1 {
  color: var(--sm-ink) !important;
  font-family: var(--sm-font-h1) !important;
}
body .mm-page > div:first-child p,
body .mm-page > header p {
  color: var(--sm-muted) !important;
}
body .mm-game-card,
body .mm-status-card {
  background: var(--sm-dark) !important;
  border-color: rgba(254,235,115,.38) !important;
  box-shadow: 0 18px 42px rgba(1,51,30,.18) !important;
}
body .mm-status-card span,
body .mm-game-card p,
body .mm-game-card span {
  color: rgba(255,255,255,.86) !important;
}
body .mm-game-card strong,
body .mm-status-card .mm-status-text {
  color: #ffffff !important;
}
body .mm-status-card strong,
body .mm-game-card [style*="var(--mm-accent)"] {
  color: var(--sm-yellow) !important;
}
body .mm-control-link {
  background: #fff !important;
  border-color: rgba(3,111,66,.35) !important;
  color: var(--sm-dark) !important;
}
body .mm-control-link:hover,
body .mm-control-link:focus-visible {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .nb-estimulo {
  background: var(--sm-green) !important;
  color: #fff !important;
}
body .nb-estimulo[data-estado="espera"] {
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
}
body .nb-estimulo[data-estado="ok"] { background: var(--sm-green) !important; }
body .nb-estimulo[data-estado="error"] { background: #b42318 !important; }
body .nb-btn-si,
body .nb-btn-si:hover,
body .nb-btn-si:focus-visible,
body .mm-start-btn,
body .mm-start-btn:hover,
body .mm-start-btn:focus-visible,
body [data-nb-start],
body [data-nb-start]:hover,
body [data-nb-start]:focus-visible {
  color: #fff !important;
}
body .jb-btn-opcion {
  background: #fff !important;
  border: 1.5px solid rgba(1,51,30,.18) !important;
  color: var(--sm-ink) !important;
}
body .jb-btn-opcion:hover,
body .jb-btn-opcion:focus-visible {
  background: rgba(3,111,66,.08) !important;
  border-color: var(--sm-green) !important;
  color: var(--sm-dark) !important;
}
body .jb-btn-opcion.correcto {
  background: var(--sm-green) !important;
  border-color: var(--sm-green) !important;
  color: #fff !important;
}
body .jb-btn-opcion.incorrecto {
  background: #fbe9e7 !important;
  border-color: #b42318 !important;
  color: #7a1812 !important;
}
body [data-jb-prog] { background: var(--sm-green) !important; }
