/*
 * OPOL LearnDash Dark Mode - Balanced
 * v1.8.0
 *
 * Objetivo:
 * - Modo oscuro también en el contenido de la clase.
 * - No modificar colores/fondos de bloques HTML, shortcodes o bloques protegidos.
 * - Evitar reglas genéricas tipo .entry-content *.
 *
 * Para proteger manualmente cualquier bloque: añade la clase opol-dm-no-touch
 * o el atributo data-opol-dm-no-touch="true".
 */

:root {
	--opol-dm-page-bg: #0b1220;
	--opol-dm-content-bg: #0b1220;
	--opol-dm-ui-bg: #0b1220;
	--opol-dm-ui-bg-2: #1f2937;
	--opol-dm-text: #f8fafc;
	--opol-dm-muted: #cbd5e1;
	--opol-dm-border: rgba(203, 213, 225, 0.24);
	--opol-dm-link: #facc15;
	--opol-dm-link-hover: #fde68a;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled {
	color-scheme: dark;
	background-color: var(--opol-dm-page-bg) !important;
	overflow-x: hidden;
}

/* Fondo estructural de la clase */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled #page,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .site,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .site-content,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .content-area,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled main,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled article,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .ld-focus,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .ld-focus-main {
	background-color: var(--opol-dm-page-bg) !important;
}

/* Contenido central: fondo oscuro, pero sin usar selector universal interno */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content {
	background-color: var(--opol-dm-content-bg) !important;
}

/* Texto normal del contenido, con protección para HTML/shortcodes.
 *
 * Importante: se aplican reglas de lectura dentro de .entry-content,
 * pero después se revierten dentro de bloques protegidos.
 */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content :where(p, h1, h2, h3, h4, h5, h6, ul, ol, li, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content :where(.learndash_content_wrap, .ld-content, .entry-content) :where(p, h1, h2, h3, h4, h5, h6, ul, ol, li, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) {
	color: var(--opol-dm-text) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content :where(p, ul, ol, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content :where(.learndash_content_wrap, .ld-content, .entry-content) :where(p, ul, ol, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) a {
	color: var(--opol-dm-link) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content :where(p, ul, ol, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content :where(.learndash_content_wrap, .ld-content, .entry-content) :where(p, ul, ol, blockquote):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) a:hover {
	color: var(--opol-dm-link-hover) !important;
}

/* Bloques básicos de contenido que sí suelen necesitar modo oscuro */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content :where(table, pre, code):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content :where(table, pre, code):not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) {
	background-color: var(--opol-dm-ui-bg) !important;
	color: var(--opol-dm-text) !important;
	border-color: var(--opol-dm-border) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) th,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) td,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) th,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) td {
	background-color: var(--opol-dm-ui-bg) !important;
	color: var(--opol-dm-text) !important;
	border-color: var(--opol-dm-border) !important;
}

/* EXCLUSIÓN FUERTE: HTML, shortcodes y bloques protegidos.
 * Esta regla va después del texto de lectura para deshacer cambios dentro de esos bloques.
 */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled :where(.wp-block-html, .wp-block-shortcode, .elementor-widget-html, .elementor-shortcode, .shortcode, .opol-dm-no-touch, .opol-dm-no-touch-auto, [data-opol-dm-no-touch="true"]),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled :where(.wp-block-html, .wp-block-shortcode, .elementor-widget-html, .elementor-shortcode, .shortcode, .opol-dm-no-touch, .opol-dm-no-touch-auto, [data-opol-dm-no-touch="true"]) * {
	background-color: revert !important;
	background: revert !important;
	color: revert !important;
	border-color: revert !important;
	box-shadow: revert !important;
}

/* Interfaz LearnDash */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-header,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-sidebar,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-sidebar-wrapper,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-course-navigation,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-course-navigation-heading,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-breadcrumbs,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-topic-status,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list-item,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list-item-preview,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-lesson-item,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-lesson-item-preview,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-topic-row,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list-header,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list-item,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-tabs,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-tab-content,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-tabs-navigation {
	background-color: var(--opol-dm-ui-bg) !important;
	color: var(--opol-dm-text) !important;
	border-color: var(--opol-dm-border) !important;
	box-shadow: none !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list-item-preview:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-lesson-item-preview:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-topic-row:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list-item:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-is-current-lesson,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-is-current-item {
	background-color: var(--opol-dm-ui-bg-2) !important;
	color: var(--opol-dm-text) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-header *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-sidebar *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-course-navigation *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-breadcrumbs *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-topic-status *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list * {
	color: var(--opol-dm-text) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-meta,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-status,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-details,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress-stats,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress-percentage,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress-steps {
	color: var(--opol-dm-muted) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-header a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-sidebar a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-course-navigation a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-breadcrumbs a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list a,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list a {
	color: var(--opol-dm-link) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-header a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-sidebar a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-course-navigation a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-breadcrumbs a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-item-list a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-table-list a:hover {
	color: var(--opol-dm-link-hover) !important;
}

/* Anterior/Siguiente clase: sin fondo */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .opol-ld-prev-next-class-button,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-content-actions .opol-ld-prev-next-class-button,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-content-action .opol-ld-prev-next-class-button {
	background: #0b1220 !important;
	background-color: #0b1220 !important;
	box-shadow: none !important;
	border-color: transparent !important;
	color: var(--opol-dm-text) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .opol-ld-back-course-button {
	background-color: var(--opol-dm-ui-bg-2) !important;
	color: var(--opol-dm-text) !important;
	border-color: var(--opol-dm-border) !important;
	box-shadow: none !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-progress-bar {
	background-color: var(--opol-dm-ui-bg-2) !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled img,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled svg,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled video,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled iframe {
	filter: none !important;
	max-width: 100%;
}

.opol-balanced-dark-mode-toggle {
	position: fixed;
	left: 18px;
	right: auto;
	bottom: 18px;
	z-index: 99999;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid rgba(15, 23, 42, 0.16);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: #0f172a;
	box-shadow: 0 10px 26px rgba(15, 23, 42, 0.16);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}

html.opol-dark-mode .opol-balanced-dark-mode-toggle,
.opol-balanced-dark-mode-toggle.is-active {
	background: rgba(17, 24, 39, 0.94);
	color: var(--opol-dm-text);
	border-color: var(--opol-dm-border);
}

@media (max-width: 768px) {
	.opol-balanced-dark-mode-toggle {
		left: max(10px, env(safe-area-inset-left));
		bottom: max(10px, env(safe-area-inset-bottom));
		width: 40px;
		height: 40px;
		min-height: 40px;
		justify-content: center;
		padding: 0;
	}
	.opol-balanced-dark-mode-toggle__text { display: none; }
	html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content > table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto),
	html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content > table:not(.opol-dm-no-touch):not(.opol-dm-no-touch-auto) {
		display: block;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
/* H1 de contenido normal de la clase en modo oscuro */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content h1:not(.opol-dm-no-touch),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .entry-content h1:not(.opol-dm-no-touch),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .wp-block-heading:not(.opol-dm-no-touch) {
	color: #f8fafc !important;
}
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-content h3:not(.opol-dm-no-touch),
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .entry-content h3:not(.opol-dm-no-touch) {
	color: #f8fafc !important;
}
/* No tocar bloques HTML, shortcodes o bloques protegidos */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .wp-block-html,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .wp-block-html *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .wp-block-shortcode,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .wp-block-shortcode *,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .opol-dm-no-touch,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .entry-content .opol-dm-no-touch * {
	color: revert !important;
}
/* Botón Volver al curso - fondo oscuro limpio */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .ld-primary-color.ld-course-step-back.opol-ld-back-course-button,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-primary-color.ld-course-step-back.opol-ld-back-course-button {
	background-color: #0b1220 !important;
	background: #0b1220 !important;
	color: #f8fafc !important;
	border-color: rgba(203, 213, 225, 0.24) !important;
	box-shadow: none !important;
}
/* Cabecera de comentarios LearnDash en modo oscuro */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-comments__header,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-focus-comments__header * {
	color: #f8fafc !important;
}
/* Texto interno LearnDash en modo oscuro */
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper .ld-text {
	color: #f8fafc !important;
}
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper a {
	color: #f1f5f9 !important;
}

html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper a:hover,
html.opol-dark-mode body.opol-ld-balanced-darkmode-enabled .learndash-wrapper a:focus {
	color: #eedb2c !important;
}