/* Compatibilidad visual con el esquema global del Kadence Child. */
html[data-em-theme] :is(.em-membership-account, .em-membership-card, .em-public-plans, #em-inbox-app, .em-calendar-wrapper, .em-courses-wrapper, .em-reg-form-wrapper, .em-login-wrapper) {
    --em-component-page: var(--em-page-bg, #f4f7f9);
    --em-component-surface: var(--em-surface, #fff);
    --em-component-soft: var(--em-surface-soft, #eef4f8);
    --em-component-input: var(--em-input-bg, #fff);
    --em-component-text: var(--em-text-primary, #18253a);
    --em-component-muted: var(--em-text-secondary, #64748b);
    --em-component-border: var(--em-border, #d9e2ec);
    --em-component-primary: var(--em-primary, #046bd2);
    color: var(--em-component-text);
}

html[data-em-theme] .em-membership-account {
    --em-accent: var(--em-component-primary);
    --em-ink: var(--em-component-text);
    --em-muted: var(--em-component-muted);
    --em-line: var(--em-component-border);
    --em-soft: var(--em-component-soft);
}
html[data-em-theme] .em-membership-account :is(.em-membership-item, .em-membership-empty, .em-payment-history) { background: var(--em-component-surface); color: var(--em-component-text); border-color: var(--em-component-border); }
html[data-em-theme] .em-membership-account :is(select, textarea, input) { background: var(--em-component-input); color: var(--em-component-text); border-color: var(--em-component-border); }
html[data-em-theme] .em-membership-account :is(h1, h2, h3, summary, dd) { color: var(--em-component-text); }

html[data-em-theme] .em-public-plans {
    --em-plan-ink: var(--em-component-text);
    --em-plan-muted: var(--em-component-muted);
    --em-plan-line: var(--em-component-border);
    --em-plan-soft: var(--em-component-soft);
    --em-plan-blue: var(--em-component-primary);
    --em-plan-blue-dark: var(--em-primary-hover, #0353a4);
}
html[data-em-theme] .em-public-plan-card,
html[data-em-theme] .em-public-plans-tools { background: var(--em-component-surface); color: var(--em-component-text); border-color: var(--em-component-border); }
html[data-em-theme] .em-public-plans-tools select { background: var(--em-component-input); color: var(--em-component-text); }

html[data-em-theme='dark'] .em-public-plans {
    --em-plan-muted: #c3cfdf;
    --em-plan-line: #3a4b69;
    --em-plan-soft: #111d34;
    --em-plan-green: #34d399;
}
html[data-em-theme='dark'] .em-public-plans :is(.em-plan-card-header p, .em-plan-price__period, .em-public-plans-status, .em-plan-marketing-features li, .em-plan-all-features li) {
    color: var(--em-plan-muted) !important;
}
html[data-em-theme='dark'] .em-public-plans .em-plan-benefit-group.is-chordem h4 { color: #d8b4fe !important; }
html[data-em-theme='dark'] .em-public-plans .em-plan-benefit-group.is-additional h4 { color: var(--em-plan-muted) !important; }
html[data-em-theme='dark'] .em-public-plans .em-plan-check,
html[data-em-theme='dark'] .em-public-plans .em-plan-all-features li::before {
    background: rgba(52, 211, 153, .16);
    color: #6ee7b7;
}
html[data-em-theme='dark'] .em-public-plans .em-plan-cta[aria-disabled='true'] {
    border-color: #52627a;
    background: #52627a;
    color: #f4f7fb !important;
}

html[data-em-theme] #em-inbox-app { background: var(--em-component-page); color: var(--em-component-text); }
html[data-em-theme] #em-inbox-app :is(.em-notif-item.unread, .em-tab-btn, .em-action-pill) { background-color: var(--em-component-surface); color: var(--em-component-text); border-color: var(--em-component-border); }
html[data-em-theme] #em-inbox-app :is(.header-title, .em-notif-title) { color: var(--em-component-text); }
html[data-em-theme] #em-inbox-app :is(.header-subtitle, .em-notif-body, .meta-row) { color: var(--em-component-muted); }

html[data-em-theme] .em-calendar-wrapper { background: var(--em-component-surface) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-calendar-wrapper :is(.text-white, .fc-toolbar-title, .fc-col-header-cell-cushion, .fc-daygrid-day-number) { color: var(--em-component-text) !important; }
html[data-em-theme] .em-calendar-wrapper :is(.text-gray-300, .text-gray-400, .text-gray-500) { color: var(--em-component-muted) !important; }
html[data-em-theme] .em-calendar-wrapper :is(select, textarea, input) { background: var(--em-component-input) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }

html[data-em-theme] .em-courses-wrapper { background: var(--em-component-page) !important; color: var(--em-component-text) !important; }
html[data-em-theme] .em-courses-wrapper .course-card { background: var(--em-component-surface) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-courses-wrapper :is(h1, h2, h3, .tab-btn.active) { color: var(--em-component-text) !important; }

html[data-em-theme] .em-reg-form-wrapper { background: var(--em-component-surface) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-reg-form-wrapper :is(input, select, textarea) { background: var(--em-component-input) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-reg-form-wrapper :is([style*="background:#f"], [style*="background: #f"]) { background: var(--em-component-soft) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }

html[data-em-theme] .em-login-wrapper .login-container { background: var(--em-component-surface) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-login-wrapper :is(h2, label) { color: var(--em-component-text) !important; }
html[data-em-theme] .em-login-wrapper :is(input, select) { background: var(--em-component-input) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }

html[data-em-theme='light'] .em-country-confirm-dialog { background: linear-gradient(145deg, #fff, #eef4f8); color: #18253a; border-color: #d9e2ec; }
html[data-em-theme='light'] .em-country-confirm-dialog h2 { color: #18253a; }
html[data-em-theme='light'] .em-country-confirm-dialog p { color: #5f6f82; }
html[data-em-theme='light'] .em-country-confirm-dialog label { color: #18253a; }

/* Centro de membresías y renderizador histórico de respaldo. */
html[data-em-theme] .em-membership-account :is(a, button).em-account-button.is-primary,
html[data-em-theme] .em-membership-account :is(a, button).em-account-button.is-primary:visited,
html[data-em-theme] .em-membership-account :is(a, button).em-account-button.is-primary:hover,
html[data-em-theme] .em-membership-account :is(a, button).em-account-button.is-primary:focus {
    color: var(--em-button-primary-text, #fff) !important;
}
html[data-em-theme] .em-membership-account :is(.em-membership-alert, .em-membership-schedule, .em-account-trial-card) { color: var(--em-component-text); }
html[data-em-theme] .em-membership-account .em-account-dialog { background: var(--em-component-surface); color: var(--em-component-text); border-color: var(--em-component-border); }
html[data-em-theme] .em-membership-card { background: var(--em-component-surface) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-membership-card :is(h2, h3, p, label, .em-history-th, .em-history-td) { color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-membership-card :is(input, select, textarea) { background: var(--em-component-input) !important; color: var(--em-component-text) !important; border-color: var(--em-component-border) !important; }

/* Registro público: los estilos antiguos en línea quedan subordinados al tema. */
html[data-em-theme] .em-reg-form-wrapper :is(h1, h2, h3, label, strong) { color: var(--em-component-text) !important; }
html[data-em-theme] .em-reg-form-wrapper :is(small, .description) { color: var(--em-component-muted) !important; }
html[data-em-theme] .em-reg-form-wrapper hr { border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-reg-form-wrapper button[type='submit'] { background: var(--em-component-primary) !important; color: var(--em-button-primary-text, #fff) !important; }
html[data-em-theme] .em-reg-form-wrapper button[type='submit']:hover { background: var(--em-primary-hover, #0353a4) !important; }

/* Acceso y recuperación. */
html[data-em-theme] .em-login-wrapper :is(h2, h3, label) { color: var(--em-component-text) !important; }
html[data-em-theme] .em-login-wrapper :is(.em-login-subtitle, .em-reset-copy, .register-text) { color: var(--em-component-muted) !important; }
html[data-em-theme] .em-login-wrapper .btn-primary-em { background: var(--em-component-primary) !important; color: var(--em-button-primary-text, #fff) !important; }
html[data-em-theme] .em-login-wrapper .btn-primary-em:hover { background: var(--em-primary-hover, #0353a4) !important; }

/* Cursos y progreso. */
html[data-em-theme] .em-courses-wrapper :is(.course-card small, .course-card p) { color: var(--em-component-muted) !important; }
html[data-em-theme] .em-courses-wrapper :is(.progress-bg, .course-card [style*='background:rgba(255,255,255']) { background: var(--em-component-soft) !important; border-color: var(--em-component-border) !important; }
html[data-em-theme] .em-courses-wrapper .progress-fill { background: var(--em-component-primary) !important; }

/* Calendario y sus diálogos, incluidos los generados desde JavaScript. */
html[data-em-theme] .em-calendar-wrapper :is(.fc-theme-standard th, .fc-col-header-cell) { background: var(--em-component-soft) !important; color: var(--em-component-text) !important; }
html[data-em-theme] .em-calendar-wrapper :is(.fc-day-today, .fc-daygrid-day:hover) { background: color-mix(in srgb, var(--em-component-primary) 9%, var(--em-component-surface)) !important; }
html[data-em-theme] :is(#em-public-modal, #em-modal-overlay) .modal-content { background: var(--em-surface, #fff) !important; color: var(--em-text-primary, #18253a) !important; border-color: var(--em-primary, #046bd2) !important; }
html[data-em-theme] :is(#em-public-modal, #em-modal-overlay) .modal-content :is(h1, h2, h3, p, label, strong) { color: var(--em-text-primary, #18253a) !important; }
html[data-em-theme] :is(#em-public-modal, #em-modal-overlay) .modal-content :is(input, select, textarea) { background: var(--em-input-bg, #fff) !important; color: var(--em-text-primary, #18253a) !important; border-color: var(--em-border, #d9e2ec) !important; }

/* Buzón. */
html[data-em-theme] #em-inbox-app .em-tab-btn.active { background: var(--em-component-primary); color: var(--em-button-primary-text, #fff); }
html[data-em-theme] #em-inbox-app .em-action-pill:hover { background: var(--em-component-primary); color: var(--em-button-primary-text, #fff); }
html[data-em-theme] #em-inbox-app .em-notif-item.read { background: var(--em-component-soft); color: var(--em-component-text); border-color: var(--em-component-border); }

@media (max-width: 700px) {
    html[data-em-theme] .em-membership-account :is(.em-account-button, .em-stripe-portal-button) { width: 100%; box-sizing: border-box; }
    html[data-em-theme] .em-reg-form-wrapper { padding: 18px !important; }
    html[data-em-theme] .em-public-plans-tools { padding: 12px; }
}

@media (max-height: 520px) and (orientation: landscape) {
    html[data-em-theme] .em-login-wrapper { padding: 8px 0; }
    html[data-em-theme] .em-login-wrapper .login-container { max-width: 680px; padding: 18px 24px; }
    html[data-em-theme] .em-login-wrapper .login-icon-circle { display: none; }
}
