/*
 * NKTO Theme Integrity v3 — Patch 06.3
 * Final semantic correction layer loaded after every public/page stylesheet.
 * Purpose: prevent legacy hard-coded light surfaces / dark text from leaking into
 * Dark Mode (and the inverse in Light Mode) while preserving intentional brand,
 * status and media colors.
 */

:root{
  /* Compatibility aliases for legacy and SEO components. */
  --card-bg:var(--surface);
  --text-strong:var(--text-primary);
  --bg-soft:var(--surface);
  --card:var(--surface);
  --muted:var(--text-muted);
  --text:var(--text-primary);
  --border:var(--border-subtle);
}

/* ---------- Generic content hierarchy ---------- */
.site-main h1,.site-main h2,.site-main h3,.site-main h4,.site-main h5,.site-main h6,
.site-main legend{
  color:var(--text-primary);
}
.site-main p,.site-main small,.site-main time,.site-main figcaption,
.site-main .meta,.site-main .description,.site-main .subtitle{
  border-color:var(--border-subtle);
}

/* ---------- Checkout + discount widget ---------- */
.nk-checkout__card,
.nk-discount-box,
.nk-discount-result{
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.nk-discount-box{
  background:color-mix(in srgb,var(--surface) 88%,var(--primary,#3498db) 12%)!important;
}
.nk-discount-box__title,
.nk-discount-result__row strong{
  color:var(--text-primary)!important;
}
.nk-discount-message.is-muted,
.nk-discount-result__row{
  color:var(--text-muted)!important;
}
.nk-discount-message.is-success{color:color-mix(in srgb,#22c55e 78%,var(--text-primary))!important}
.nk-discount-message.is-error{color:color-mix(in srgb,#ef4444 78%,var(--text-primary))!important}
.nk-discount-result{
  background:var(--surface-strong)!important;
}
.nk-discount-box input[name="discount_code"]{
  background:var(--control-bg)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.nk-discount-result__row:last-child strong{color:var(--primary,#3498db)!important}

/* ---------- Authentication modal ---------- */
#auth-backdrop .auth-modal,
#auth-modal-body,
#auth-modal-body .auth-step{
  color:var(--text-primary)!important;
}
#auth-backdrop .modal-close,
#auth-backdrop .auth-modal__header button,
.auth-step h2,
#auth-modal-body label,
.auth-phone-preview strong{
  color:var(--text-primary)!important;
}
.auth-step p,#auth-modal-body .hint,.auth-phone-preview span{
  color:var(--text-muted)!important;
}
#auth-modal-body .nk-input{
  background:var(--control-bg)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.auth-secondary-btn--muted{
  background:var(--surface-strong)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.auth-secondary-btn--muted:hover{background:var(--control-bg-hover)!important}

/* ---------- Course detail / resources / pricing ---------- */
.nkx-resource-card,
.course-resource-card{
  background:var(--surface-strong)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.nkx-resource-card strong,.course-resource-card strong,.nk-course-price-public__new{
  color:var(--text-primary)!important;
}
.nkx-resource-card span,.nkx-resource-card small,.nkx-resource-card>i:last-child,
.course-resource-card span,.course-resource-card small{
  color:var(--text-muted)!important;
}
.nkx-save-btn{color:var(--text-primary)!important;border-color:var(--border-strong)!important}

/* ---------- Dashboard payment/manual-payment legacy surfaces ---------- */
.dashboard-manual-payment,
.dashboard-bank-card,
.dashboard-manual-form,
.dashboard-receipt-grid>div,
.course-floating-payment__link{
  background:var(--surface-strong)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.dashboard-manual-payment h4,.dashboard-bank-card b,.dashboard-manual-form label{
  color:var(--text-primary)!important;
}
.dashboard-manual-payment>p,.dashboard-bank-card span,.dashboard-manual-form label small,
.course-floating-payment__content span{
  color:var(--text-muted)!important;
}
.dashboard-manual-form input,.dashboard-manual-form textarea{
  background:var(--control-bg)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}

/* ---------- Dashboard + notification legacy surfaces ---------- */
.dashboard-notifications-card,.dashboard-notification-item,
.notification-page-item,.notification-pagination a,.notification-pagination span{
  border-color:var(--border-subtle)!important;
}
.dashboard-notifications-card__head h2,
.dashboard-notification-item__top strong,.notification-page-item h2,
.dashboard-notification-empty strong{
  color:var(--text-primary)!important;
}
.dashboard-notifications-card__head p,.dashboard-notification-item p,
.notification-page-item p,.dashboard-notification-empty{
  color:var(--text-muted)!important;
}
.dashboard-notification-item__actions button,
.notification-filters a,.notification-pagination a,.notification-pagination span{
  background:var(--surface-strong)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}

/* ---------- Tickets: normalize old ticket stylesheet and new Patch-05 layer ---------- */
.ticket-page{color:var(--text-primary)!important;background:transparent!important}
.ticket-hero,.ticket-detail-header,.ticket-card,.ticket-empty,.ticket-form,
.ticket-reply-panel,.ticket-info-panel,.ticket-info-panel>div,
.ticket-message__content,.ticket-btn--ghost{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.ticket-hero h1,.ticket-detail-header h1,.ticket-card h2,.ticket-empty h2,
.ticket-info-panel strong,.ticket-reply-panel__head h2{
  color:var(--text-primary)!important;
}
.ticket-hero p,.ticket-related,.ticket-card__footer,.ticket-empty p,
.ticket-field-help,.ticket-selected-files,.ticket-info-panel span,
.ticket-message__content time,.ticket-reply-panel__head p,.ticket-attachment{
  color:var(--text-muted)!important;
}
.ticket-message__body{color:var(--text-secondary)!important}
.ticket-field input,.ticket-field select,.ticket-field textarea,.ticket-field input[type="file"]{
  background:var(--control-bg)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.ticket-badge:not([class*="--status"]):not([class*="--priority"]){
  background:var(--surface-strong)!important;color:var(--text-secondary)!important
}

/* ---------- Custom pages / search / SEO public surfaces ---------- */
.nk-page-list-title strong{color:var(--text-primary)!important}
.nk-page-list-title span{color:var(--text-muted)!important}
.nk-seo-hero,.nk-seo-content,.nk-seo-side__card,.nk-seo-faq details,.nk-seo-cta,
.nk-seo-article-card,.nk-seo-related__grid article,.nk-seo-author-card,
.nk-seo-clusters a,.nk-seo-pillar,.nk-seo-profile-hero{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-subtle)!important;
}
.nk-seo-hero p,.nk-seo-content p,.nk-seo-side__card p,.nk-seo-article-card p,
.nk-seo-related__grid article p,.nk-seo-profile-hero p{
  color:var(--text-secondary)!important;
}

/* ---------- Coming-soon / empty-state / generic content cards ---------- */
.coming-soon__card,.version-roadmap-card,.coming-soon__feature,
.empty-state,.custom-page-card,.custom-page-hero{
  border-color:var(--border-subtle)!important;
}
html[data-theme="dark"] .coming-soon__card,
html[data-theme="dark"] .version-roadmap-card,
html[data-theme="dark"] .coming-soon__feature,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .custom-page-card,
html[data-theme="dark"] .custom-page-hero{
  background:var(--surface)!important;
  color:var(--text-primary)!important;
}

/* ---------- Theme-sensitive generic form/result surfaces ---------- */
fieldset,.form-card,.review-card,.summary-card,.info-card,.payment-card{
  border-color:var(--border-subtle);
}

/* Explicitly preserve intentional white media canvases (logos / previews). */
.brand__logo,.course-detail-cover img,.nkx-course-card__media img,
.nk-trust-badge-admin-thumb,.nk-trust-badge-admin-preview{
  color-scheme:only light;
}

/* Mobile: no themed panel may force horizontal overflow. */
@media(max-width:720px){
  .nk-checkout__card,.nk-discount-box,.ticket-card,.ticket-form,.ticket-info-panel,
  .nk-seo-content,.nk-seo-side__card,.nkp-card,.nkx-panel{
    min-width:0;
    max-width:100%;
  }
  .nk-discount-result__row,.nk-checkout__row{
    flex-wrap:wrap;
  }
}
