/* The Quran Tuition — Premium Audit & Contrast Layer v18.7.0
   Final semantic visual layer. Loaded after all legacy/premium styles and before
   the inline administrator palette, so saved theme colours remain authoritative.
   This file intentionally fixes contrast by SURFACE instead of one global text
   colour, preventing white-on-white and dark-on-dark inheritance failures. */

:root {
  --theme-body-text: #34434b;
  --theme-body-heading: #0b2331;
  --theme-body-muted: #6b7a80;
  --theme-surface-text: #34434b;
  --theme-surface-heading: #0b2331;
  --theme-surface-muted: #6b7a80;
  --theme-soft-text: #34434b;
  --theme-soft-heading: #0b2331;
  --theme-soft-muted: #6b7a80;
  --theme-on-hero: #ffffff;
  --theme-on-hero-muted: #e6eff0;
  --theme-sidebar-muted: #a9c0c3;
  --audit-shadow-xs: 0 4px 14px rgba(7, 31, 48, .055);
  --audit-shadow-sm: 0 12px 34px rgba(7, 31, 48, .09);
  --audit-shadow-lg: 0 26px 70px rgba(7, 31, 48, .14);
  --audit-ring: rgba(217, 180, 74, .34);
}

/* ---------- Global readable canvas ---------- */
html { background: var(--theme-body-bg) !important; }
body.public-body,
body.admin-body,
body.portal-body {
  color: var(--theme-body-text) !important;
  background: var(--theme-body-bg) !important;
}
body.public-body main { color: var(--theme-body-text); }
body.public-body :is(h1,h2,h3,h4,h5,h6),
body.admin-body :is(h1,h2,h3,h4,h5,h6),
body.portal-body :is(h1,h2,h3,h4,h5,h6) { color: var(--theme-body-heading); }

/* Never allow generic muted rules from old releases to force an unreadable colour. */
body.public-body :is(.muted,.form-hint,.field-help,.form-help),
body.admin-body :is(.muted,.form-hint,.field-help,.form-help),
body.portal-body :is(.muted,.form-hint,.field-help,.form-help) { color: var(--theme-body-muted) !important; }

/* ---------- Semantic light/dark surfaces ---------- */
.section-ivory,
.pricing-light {
  color: var(--theme-soft-text) !important;
  background: var(--ivory) !important;
}
.section-ivory :is(h1,h2,h3,h4,h5,h6),
.pricing-light :is(h1,h2,h3,h4,h5,h6) { color: var(--theme-soft-heading) !important; }
.section-ivory :is(p,li,.muted,.section-heading p,.eyebrow:not(.gold)),
.pricing-light :is(p,li,.muted,.section-heading p,.eyebrow:not(.gold)) { color: var(--theme-soft-muted) !important; }

.hero,
.page-hero,
.course-hero,
.article-hero,
.trial-page-hero,
.premium-page-hero,
.section-navy,
.final-cta {
  color: var(--theme-on-hero) !important;
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%) !important;
}
.hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.page-hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.course-hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.article-hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.trial-page-hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.premium-page-hero :is(h1,h2,h3,h4,h5,h6,strong,b),
.section-navy :is(h1,h2,h3,h4,h5,h6,strong,b),
.final-cta :is(h1,h2,h3,h4,h5,h6,strong,b) { color: var(--theme-on-hero) !important; }
.hero :is(p,li,small,.lead,.muted),
.page-hero :is(p,li,small,.lead,.muted),
.course-hero :is(p,li,small,.lead,.muted),
.article-hero :is(p,li,small,.lead,.muted),
.trial-page-hero :is(p,li,small,.lead,.muted),
.premium-page-hero :is(p,li,small,.lead,.muted),
.section-navy :is(p,li,small,.lead,.muted),
.final-cta :is(p,li,small,.lead,.muted) { color: var(--theme-on-hero-muted) !important; }

/* ---------- Surface cards: hard stop for white-on-white inheritance ---------- */
.public-body :is(
  .feature-card,.course-card,.teacher-card,.blog-card,.price-card,.testimonial,.testimonial-card,
  .form-card,.auth-card,.contact-panel,.aside-panel,.note-card,.notice-card,.content-card,
  .course-summary,.hero-card-glass,.premium-choice-panel,.trial-policy-card,.invoice-card
),
.admin-body :is(
  .admin-panel,.detail-card,.admin-stat-card,.statistics-card,.admin-form,.settings-nav,
  .maintenance-action-card,.maintenance-manual-card,.maintenance-section,.health-summary-card,
  .danger-zone,.notice-card
),
.portal-body :is(
  .admin-panel,.detail-card,.admin-stat-card,.statistics-card,.form-card,.invoice-card,.note-card
) {
  color: var(--theme-surface-text) !important;
  background-color: var(--theme-surface) !important;
  border-color: var(--line) !important;
  box-shadow: var(--audit-shadow-xs);
}

.public-body :is(.feature-card,.course-card,.teacher-card,.blog-card,.price-card,.testimonial,.testimonial-card,.form-card,.auth-card,.contact-panel,.aside-panel,.note-card,.notice-card,.content-card,.premium-choice-panel,.trial-policy-card,.invoice-card) :is(h1,h2,h3,h4,h5,h6,strong:not(.status-badge)),
.admin-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card,.admin-form,.settings-nav,.maintenance-action-card,.maintenance-manual-card,.maintenance-section,.health-summary-card,.notice-card) :is(h1,h2,h3,h4,h5,h6,strong:not(.status-badge)),
.portal-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card,.form-card,.invoice-card,.note-card) :is(h1,h2,h3,h4,h5,h6,strong:not(.status-badge)) {
  color: var(--theme-surface-heading) !important;
}
.public-body :is(.feature-card,.course-card,.teacher-card,.blog-card,.price-card,.testimonial,.testimonial-card,.form-card,.auth-card,.contact-panel,.aside-panel,.note-card,.notice-card,.content-card,.premium-choice-panel,.trial-policy-card,.invoice-card) :is(p,li,small,.muted,.form-hint,.field-help),
.admin-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card,.admin-form,.settings-nav,.maintenance-action-card,.maintenance-manual-card,.maintenance-section,.health-summary-card,.notice-card) :is(p,li,small,.muted,.form-hint,.field-help),
.portal-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card,.form-card,.invoice-card,.note-card) :is(p,li,small,.muted,.form-hint,.field-help) {
  color: var(--theme-surface-muted) !important;
}

/* Glass cards inside dark heroes must stay dark/glass, not be turned into white cards. */
.hero :is(.hero-card,.hero-card-glass,.course-summary),
.course-hero .course-summary,
.trial-page-hero :is(.trial-info-panel,.hero-card-glass) {
  color: var(--theme-on-hero) !important;
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.18) !important;
  box-shadow: 0 24px 64px rgba(0,0,0,.2) !important;
  backdrop-filter: blur(16px);
}
.hero :is(.hero-card,.hero-card-glass,.course-summary) :is(h1,h2,h3,h4,h5,h6,strong,b),
.course-hero .course-summary :is(h1,h2,h3,h4,h5,h6,strong,b),
.trial-page-hero :is(.trial-info-panel,.hero-card-glass) :is(h1,h2,h3,h4,h5,h6,strong,b) { color: var(--theme-on-hero) !important; }
.hero :is(.hero-card,.hero-card-glass,.course-summary) :is(p,li,small,.muted),
.course-hero .course-summary :is(p,li,small,.muted),
.trial-page-hero :is(.trial-info-panel,.hero-card-glass) :is(p,li,small,.muted) { color: var(--theme-on-hero-muted) !important; }

/* ---------- Header / navigation ---------- */
.topbar {
  color: var(--theme-topbar-text) !important;
  background: var(--theme-topbar-bg) !important;
}
.topbar :is(a,span,small) { color: var(--theme-topbar-text) !important; }
.site-header {
  color: var(--theme-header-text) !important;
  background: var(--theme-header-bg) !important;
  border-bottom-color: var(--theme-header-border) !important;
}
.site-header :is(.brand strong,.site-nav > .nav-item > a,.text-link,.nav-logout) { color: var(--theme-header-text) !important; }
.site-header :is(.brand small) { color: var(--theme-header-muted) !important; }
.site-header .brand:hover { background: transparent !important; }
.nav-submenu,
.header-more-menu,
.site-nav.open {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.nav-submenu a,
.header-more-links a,
.site-nav.open a { color: var(--theme-surface-text) !important; }
.nav-submenu a:hover,
.header-more-links a:hover,
.site-nav.open a:hover { color: var(--theme-surface-heading) !important; background: var(--ivory) !important; }
.header-more-heading {
  color: var(--theme-on-hero) !important;
  background: linear-gradient(135deg,var(--navy),var(--navy-2)) !important;
}
.header-more-heading :is(span,small,strong) { color: var(--theme-on-hero) !important; }
.nav-toggle,.header-more-toggle {
  color: var(--theme-header-text) !important;
  background: var(--theme-header-bg) !important;
  border-color: var(--theme-header-border) !important;
}

/* ---------- Buttons ---------- */
.btn-gold,
input[type="submit"].btn-gold {
  color: var(--theme-on-accent) !important;
  background: var(--gold) !important;
  border-color: var(--gold) !important;
}
.btn-navy,
input[type="submit"].btn-navy {
  color: var(--theme-on-primary) !important;
  background: linear-gradient(135deg,var(--navy),var(--navy-2)) !important;
  border-color: var(--navy) !important;
}
.btn-outline,.btn-ghost {
  color: var(--theme-surface-heading) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.btn-outline:hover,.btn-ghost:hover { background: var(--ivory) !important; }
.btn-outline-light {
  color: var(--theme-on-hero) !important;
  background: transparent !important;
  border-color: currentColor !important;
}
.btn-danger { color: #fff !important; background: var(--danger) !important; border-color: var(--danger) !important; }
.text-arrow { color: var(--theme-surface-heading) !important; }
.section-navy .text-arrow,.hero .text-arrow,.page-hero .text-arrow,.final-cta .text-arrow { color: var(--theme-on-hero) !important; }

/* ---------- Forms ---------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,textarea {
  color: var(--theme-input-text) !important;
  background: var(--theme-input-bg) !important;
  border-color: var(--theme-input-border) !important;
  caret-color: var(--theme-input-text);
}
input::placeholder,textarea::placeholder { color: var(--theme-surface-muted) !important; opacity: .78; }
label,legend { color: inherit; }
.search-field {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border: 1px solid var(--line) !important;
}
.search-field input { color: var(--theme-input-text) !important; background: transparent !important; }
.theme-color-field output,.file-current,.settings-intro,.smtp-test-result {
  color: var(--theme-surface-text) !important;
}
.theme-contrast-report {
  color: var(--theme-surface-text) !important;
  background: var(--ivory) !important;
  border-color: var(--line) !important;
}
.theme-contrast-report strong { color: var(--theme-surface-heading) !important; }
.theme-contrast-report span { color: var(--theme-soft-muted) !important; }

/* ---------- Admin + portal shells ---------- */
.admin-shell,.portal-shell,.admin-main,.portal-content { background: var(--theme-body-bg) !important; }
.admin-sidebar,.portal-sidebar {
  color: var(--theme-sidebar-text) !important;
  background: linear-gradient(180deg,var(--theme-sidebar-bg),var(--navy-2)) !important;
}
.admin-brand :is(a,b,strong),.portal-sidebar .admin-brand :is(a,b,strong),.sidebar-user strong { color: var(--theme-sidebar-text) !important; }
.admin-brand small,.sidebar-user small { color: var(--theme-sidebar-muted) !important; }
.admin-nav .nav-group-toggle,
.admin-nav .nav-group-links a,
.portal-sidebar .admin-nav > a { color: var(--theme-sidebar-text) !important; }
.admin-nav .nav-group-toggle:hover,
.admin-nav .nav-group-links a:hover,
.portal-sidebar .admin-nav > a:hover { color: var(--theme-sidebar-text) !important; background: rgba(255,255,255,.09) !important; }
.admin-nav .nav-group-links a.active,
.portal-sidebar .admin-nav > a.active {
  color: var(--theme-sidebar-active-text) !important;
  background: var(--theme-sidebar-active-bg) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.admin-nav .nav-group-links a.active :is(span,.premium-svg-icon),
.portal-sidebar .admin-nav > a.active :is(span,.premium-svg-icon) { color: var(--theme-sidebar-active-text) !important; }
.sidebar-user { color: var(--theme-sidebar-text) !important; }
.admin-topbar,.portal-topbar {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-bottom-color: var(--line) !important;
}
.topbar-title strong,.topbar-actions a,.topbar-signout-button { color: var(--theme-surface-heading) !important; }
.topbar-title span { color: var(--theme-surface-muted) !important; }
.sidebar-collapse,.sidebar-toggle {
  color: var(--theme-surface-heading) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.admin-page-head {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
  border-left: 5px solid var(--gold) !important;
  box-shadow: var(--audit-shadow-sm) !important;
}
.admin-page-head h1 { color: var(--theme-surface-heading) !important; }
.admin-page-head p { color: var(--theme-surface-muted) !important; }
.admin-page-head .eyebrow { color: var(--theme-surface-heading) !important; opacity: .72; }

/* ---------- Tables, lists, calendar and detail data ---------- */
.admin-table-wrap,.portal-table-wrap,.responsive-table,.table-scroll,.maintenance-table-wrap {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.admin-table,.portal-table,.maintenance-table,.responsive-table table {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
}
.admin-table th,.portal-table th,.maintenance-table th,.responsive-table th {
  color: var(--theme-soft-heading) !important;
  background: var(--ivory) !important;
  border-color: var(--line) !important;
}
.admin-table td,.portal-table td,.maintenance-table td,.responsive-table td {
  color: var(--theme-surface-text) !important;
  border-color: var(--line) !important;
}
.admin-table tbody tr:hover,.portal-table tbody tr:hover,.maintenance-table tbody tr:hover { background: var(--ivory) !important; }
.detail-grid dt,.detail-list dt,.invoice-meta dt { color: var(--theme-surface-muted) !important; }
.detail-grid dd,.detail-list dd,.invoice-meta dd { color: var(--theme-surface-text) !important; }
.timeline-list > div,.plain-list li,.module-list li,.lesson-list li,.resource-list li { border-color: var(--line) !important; }
.timeline-list :is(strong,p),.plain-list li,.module-list li,.lesson-list li,.resource-list li { color: var(--theme-surface-text) !important; }
.timeline-list p { color: var(--theme-surface-muted) !important; }
.calendar-day,.slot-choice,.plan-choice {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.calendar-day strong,.slot-choice strong,.plan-choice strong { color: var(--theme-surface-heading) !important; }
.calendar-weekday { color: var(--theme-body-muted) !important; }

/* ---------- Auth, empty states, notices, tickets ---------- */
.empty-state,.premium-empty-state,.admin-empty,.availability-empty {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}
.empty-state :is(h2,h3,strong),.premium-empty-state :is(h2,h3,strong) { color: var(--theme-surface-heading) !important; }
.empty-state :is(p,small),.premium-empty-state :is(p,small) { color: var(--theme-surface-muted) !important; }
.ticket-message,.opening-message,.notice,.maintenance-note {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
  border-color: var(--line) !important;
}

/* ---------- Footer ---------- */
.site-footer {
  color: var(--theme-footer-text) !important;
  background: var(--theme-footer-bg) !important;
}
.site-footer :is(h1,h2,h3,h4,h5,h6,strong,.brand-light) { color: var(--theme-footer-link) !important; }
.site-footer :is(p,small,span) { color: var(--theme-footer-text) !important; }
.site-footer a { color: var(--theme-footer-link) !important; }
.site-footer a:hover { color: var(--gold) !important; }
.footer-bottom { border-color: rgba(255,255,255,.14) !important; }

/* ---------- Premium graphic refinement ---------- */
.public-body :is(.feature-card,.course-card,.teacher-card,.blog-card,.price-card,.testimonial,.testimonial-card),
.admin-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card),
.portal-body :is(.admin-panel,.detail-card,.admin-stat-card) {
  border-radius: var(--theme-radius) !important;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
@media (hover:hover) {
  .public-body :is(.feature-card,.course-card,.teacher-card,.blog-card,.price-card,.testimonial,.testimonial-card):hover,
  .admin-body :is(.admin-panel,.detail-card,.admin-stat-card,.statistics-card):hover,
  .portal-body :is(.admin-panel,.detail-card,.admin-stat-card):hover {
    transform: translateY(-4px);
    box-shadow: var(--audit-shadow-lg) !important;
  }
}
.nav-svg-chip,.trust-svg-icon,.card-watermark-icon,.feature-icon {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55),0 6px 16px rgba(7,31,48,.07);
}
.admin-nav .nav-svg-chip,.portal-sidebar .nav-svg-chip { box-shadow: none; }
.site-footer .footer-socials a,.topbar-socials a {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(8px);
}
.feature-icon {
  border: 1px solid var(--line);
  background: var(--ivory) !important;
}
.card-watermark-icon { opacity: .95; }

/* ---------- Responsive hardening ---------- */
@media (max-width: 920px) {
  .admin-sidebar.open,.portal-sidebar.open {
    background: var(--theme-sidebar-bg) !important;
    box-shadow: 22px 0 70px rgba(0,0,0,.28) !important;
  }
  .site-nav.open {
    box-shadow: 0 26px 70px rgba(7,31,48,.2) !important;
  }
}
@media (max-width: 720px) {
  table.responsive-table tr {
    color: var(--theme-surface-text) !important;
    background: var(--theme-surface) !important;
    border-color: var(--line) !important;
  }
  table.responsive-table td::before { color: var(--theme-surface-muted) !important; }
  .admin-page-head,.panel-head { min-width: 0; }
  .admin-page-head .head-actions,.panel-head .head-actions { max-width: 100%; }
  .admin-page-head .btn,.panel-head .btn { white-space: normal; text-align: center; }
}

/* Printing must remain clean regardless of selected dashboard palette. */
@media print {
  body,.premium-print-document,.print-document,.invoice-print {
    color: #1f2937 !important;
    background: #fff !important;
  }
  .premium-print-document *,.print-document *,.invoice-print * { text-shadow: none !important; }
}

/* ---------- Nested surfaces & remaining legacy contrast traps ---------- */
.brand-mark,.topbar-avatar {
  color: var(--theme-on-accent) !important;
  background: var(--gold) !important;
  border-color: var(--gold) !important;
}
.course-visual,.blog-visual {
  color: var(--theme-on-hero) !important;
  background: linear-gradient(135deg,var(--navy),var(--navy-2)) !important;
}
.course-visual :is(small,span,strong),.blog-visual :is(small,span,strong) { color: var(--theme-on-hero) !important; }

.admin-filterbar,.pagination a,.file-current,.permission-row,.quick-actions a,
.settings-nav a:hover,.settings-nav a.active {
  border-color: var(--line) !important;
}
.admin-filterbar,.pagination a,.file-current {
  color: var(--theme-surface-text) !important;
  background: var(--theme-surface) !important;
}
.permission-row,.quick-actions a,.settings-nav a:hover {
  color: var(--theme-soft-text) !important;
  background: var(--ivory) !important;
}
.permission-row :is(strong,span) { color: var(--theme-soft-heading) !important; }
.permission-row small { color: var(--theme-soft-muted) !important; }
.settings-nav a { color: var(--theme-surface-text) !important; }
.settings-nav a.active,
.pagination a.active {
  color: var(--theme-on-primary) !important;
  background: var(--navy) !important;
  border-color: var(--navy) !important;
}

.admin-brand > button {
  color: var(--theme-sidebar-text) !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.16) !important;
}
.maintenance-hero {
  color: var(--theme-on-hero) !important;
  background: linear-gradient(135deg,var(--navy),var(--navy-2)) !important;
  border-color: var(--navy) !important;
}
.maintenance-hero :is(h1,h2,h3,p,li,strong,small,code) { color: var(--theme-on-hero) !important; }
.maintenance-hero .maintenance-kicker { color: var(--theme-on-hero) !important; opacity: .82; }

.auth-shell {
  color: var(--theme-body-text) !important;
  background: var(--theme-body-bg) !important;
}
.auth-card .brand.dark :is(strong,b) { color: var(--theme-surface-heading) !important; }
.auth-card .brand.dark small { color: var(--theme-surface-muted) !important; }

@media (max-width: 1100px) {
  body.public-nav-open .site-nav,
  .site-nav.open,
  .site-nav.is-open {
    color: var(--theme-surface-text) !important;
    background: var(--theme-surface) !important;
    border-left-color: var(--line) !important;
  }
  body.public-nav-open .site-nav a,
  .site-nav.open a,
  .site-nav.is-open a { color: var(--theme-surface-text) !important; }
}

/* Footer navigation receives lightweight coloured SVG chips without changing layout structure. */
.site-footer .footer-grid > section:not(:first-child) > a {
  display: flex !important;
  align-items: center;
  gap: 9px;
  width: fit-content;
  max-width: 100%;
}
.site-footer .footer-grid > section:not(:first-child) > a .nav-svg-chip {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  color: var(--icon-tone, var(--gold));
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.12);
  box-shadow: none;
}
.site-footer .footer-grid > section:not(:first-child) > a .premium-svg-icon { width: 14px; height: 14px; }
