/* =====================================================================
   ACCESSIBILITY THEME: COMPREHENSIVE PANEL & CONTENT OVERRIDES
   Covers legal-panel, a11y-panel, and all page content for:
   - Dark Mode
   - High Contrast
   - Greyscale
   WCAG AA minimum 4.5:1 contrast ratio enforced throughout
===================================================================== */

/* ------------------------------------------------------------------
   DARK MODE — Legal Panel
------------------------------------------------------------------ */
body[data-a11y-theme="dark"] .legal-panel {
    background: #1e1e38 !important;
    color: #F0F0FF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body {
    background: #1e1e38 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-hero {
    background: #16162a !important;
    border-bottom: 1px solid #3a3a5c !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-hero h2 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-hero h2 span {
    color: #7EB3FF !important;
    -webkit-text-fill-color: #7EB3FF !important;
    background: none !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-hero p {
    color: #C8C8E8 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-meta-item {
    color: #C8C8E8 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-meta-item i {
    color: #7EB3FF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-badge {
    background: #24243e !important;
    color: #E0E0F5 !important;
    border: 1px solid #3a3a5c !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-content {
    background: #1e1e38 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section h3 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-num {
    background: linear-gradient(135deg, #1a56ff, #00D4B4) !important;
    color: #ffffff !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section p {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section a {
    color: #7EB3FF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section {
    border-bottom-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section ul,
body[data-a11y-theme="dark"] .legal-panel-body .lp-section li {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-section strong {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-callout.info {
    background: rgba(0,102,255,0.18) !important;
    color: #C8D8FF !important;
    border-left-color: #7EB3FF !important;
}
body[data-a11y-theme="dark"] .legal-panel-body .lp-callout.success {
    background: rgba(0,212,180,0.15) !important;
    color: #A0F0E8 !important;
    border-left-color: #00D4B4 !important;
}
body[data-a11y-theme="dark"] .lp-table-wrapper {
    border-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .lp-table thead {
    background: #0d0d2e !important;
}
body[data-a11y-theme="dark"] .lp-table thead th {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .lp-table tbody tr {
    border-bottom-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .lp-table tbody tr:hover {
    background: #2a2a48 !important;
}
body[data-a11y-theme="dark"] .lp-table tbody td {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .lp-table tbody td:first-child {
    color: #7EB3FF !important;
}
body[data-a11y-theme="dark"] .lp-contact-card {
    background: linear-gradient(135deg, #0d0d1e, #1a2e4a) !important;
    border: 1px solid #3a3a5c !important;
}
body[data-a11y-theme="dark"] .lp-contact-card h4 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .lp-contact-card p {
    color: #C8C8E8 !important;
    opacity: 1 !important;
}
body[data-a11y-theme="dark"] .legal-panel-footer {
    background: #16162a !important;
    border-top: 1px solid #3a3a5c !important;
}
body[data-a11y-theme="dark"] .legal-panel-footer p {
    color: #B0B0CC !important;
}
body[data-a11y-theme="dark"] .lp-full-page-link {
    color: #7EB3FF !important;
}

/* DARK MODE — Accessibility settings panel */
body[data-a11y-theme="dark"] .a11y-panel {
    background: #1e1e38 !important;
    color: #F0F0FF !important;
}
body[data-a11y-theme="dark"] .a11y-panel-header {
    background: #16162a !important;
    border-bottom: 1px solid #3a3a5c !important;
}
body[data-a11y-theme="dark"] .a11y-panel-header h2 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .a11y-panel-close {
    color: #E0E0F5 !important;
    background: transparent !important;
}
body[data-a11y-theme="dark"] .a11y-panel-close:hover {
    background: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .a11y-panel-body {
    background: #1e1e38 !important;
}
body[data-a11y-theme="dark"] .a11y-panel-body h3 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .a11y-panel-body label,
body[data-a11y-theme="dark"] .a11y-panel-body span {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .a11y-option {
    background: #24243e !important;
    border-color: #3a3a5c !important;
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .a11y-option.active,
body[data-a11y-theme="dark"] .a11y-option:has(input:checked) {
    background: #1a3a6a !important;
    border-color: #4D9FFF !important;
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .a11y-reset-btn {
    background: #24243e !important;
    color: #E0E0F5 !important;
    border-color: #3a3a5c !important;
}

/* ------------------------------------------------------------------
   HIGH CONTRAST — Legal Panel
------------------------------------------------------------------ */
body[data-a11y-theme="contrast"] .legal-panel {
    background: #ffffff !important;
    color: #000000 !important;
    border-left: 3px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-hero {
    background: #f0f0f0 !important;
    border-bottom: 2px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-hero h2 {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-hero h2 span {
    color: #000080 !important;
    -webkit-text-fill-color: #000080 !important;
    background: none !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-hero p,
body[data-a11y-theme="contrast"] .legal-panel-body .lp-meta-item {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-badge {
    background: #ffffff !important;
    color: #000000 !important;
    border: 2px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section h3 {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-num {
    background: #000080 !important;
    color: #ffffff !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section p,
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section li,
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section strong {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section a {
    color: #000080 !important;
    text-decoration: underline !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-section {
    border-bottom: 2px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-body .lp-callout.info,
body[data-a11y-theme="contrast"] .legal-panel-body .lp-callout.success {
    background: #f0f0f0 !important;
    border-left: 4px solid #000000 !important;
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .lp-table-wrapper {
    border: 2px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .lp-table thead {
    background: #000000 !important;
}
body[data-a11y-theme="contrast"] .lp-table thead th {
    color: #ffffff !important;
}
body[data-a11y-theme="contrast"] .lp-table tbody td {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .lp-table tbody td:first-child {
    color: #000080 !important;
}
body[data-a11y-theme="contrast"] .lp-table tbody tr {
    border-bottom: 1px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .lp-table tbody tr:hover {
    background: #e8e8e8 !important;
}
body[data-a11y-theme="contrast"] .lp-contact-card {
    background: #000000 !important;
    border: 2px solid #ffffff !important;
}
body[data-a11y-theme="contrast"] .lp-contact-card h4,
body[data-a11y-theme="contrast"] .lp-contact-card p {
    color: #ffffff !important;
    opacity: 1 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-footer {
    background: #f0f0f0 !important;
    border-top: 2px solid #000000 !important;
}
body[data-a11y-theme="contrast"] .legal-panel-footer p,
body[data-a11y-theme="contrast"] .lp-full-page-link {
    color: #000000 !important;
}

/* HIGH CONTRAST — page content */
body[data-a11y-theme="contrast"] .stat-card {
    border: 2px solid #000000 !important;
    background: #ffffff !important;
}
body[data-a11y-theme="contrast"] .stat-card .stat-value {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    background: none !important;
}
body[data-a11y-theme="contrast"] .stat-card .stat-label {
    color: #000080 !important;
    -webkit-text-fill-color: #000080 !important;
    background: none !important;
}
body[data-a11y-theme="contrast"] .insight-card {
    border: 2px solid #000000 !important;
    background: #ffffff !important;
}
body[data-a11y-theme="contrast"] .insight-quote,
body[data-a11y-theme="contrast"] .insight-source span {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .insight-attribution a {
    color: #000080 !important;
    text-decoration: underline !important;
}
body[data-a11y-theme="contrast"] .tip-card {
    border: 2px solid #000000 !important;
    background: #ffffff !important;
}
body[data-a11y-theme="contrast"] .tip-content,
body[data-a11y-theme="contrast"] .tip-content p,
body[data-a11y-theme="contrast"] .tip-content li {
    color: #000000 !important;
}
body[data-a11y-theme="contrast"] .tip-content strong {
    color: #000000 !important;
    font-weight: 800 !important;
}
body[data-a11y-theme="contrast"] .section-label {
    color: #000080 !important;
}
body[data-a11y-theme="contrast"] h1,
body[data-a11y-theme="contrast"] h2,
body[data-a11y-theme="contrast"] h3,
body[data-a11y-theme="contrast"] h4 {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    background: none !important;
}
body[data-a11y-theme="contrast"] p,
body[data-a11y-theme="contrast"] li {
    color: #000000 !important;
}
/* Override broad black rules for elements inside dark-background sections */
body[data-a11y-theme="contrast"] .cta-section h1,
body[data-a11y-theme="contrast"] .cta-section h2,
body[data-a11y-theme="contrast"] .cta-section h3,
body[data-a11y-theme="contrast"] .cta-section h4,
body[data-a11y-theme="contrast"] .cta-section > .cta-content > p,
body[data-a11y-theme="contrast"] .dark-section h1,
body[data-a11y-theme="contrast"] .dark-section h2,
body[data-a11y-theme="contrast"] .dark-section h3,
body[data-a11y-theme="contrast"] .dark-section h4,
body[data-a11y-theme="contrast"] .dark-section p,
body[data-a11y-theme="contrast"] .dark-section li {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* ------------------------------------------------------------------
   GREYSCALE — a11y panel stays in colour so settings remain readable.
   Legal panel IS filtered so content appears in greyscale consistently.
------------------------------------------------------------------ */
body[data-a11y-theme="greyscale"] .a11y-panel,
body[data-a11y-theme="greyscale"] .a11y-overlay {
    filter: none !important;
}
/* Legal panel greyscale is handled by filter: grayscale(100%) applied via body > * in index.html */

/* =====================================================================
   DARK MODE — index.html PAGE CONTENT
   Stat cards, insight/research cards, tip cards, section labels,
   interactive stats, hero text, general headings & body text
===================================================================== */

/* Body & global */
body[data-a11y-theme="dark"] {
    background: #1A1A2E !important;
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] h1,
body[data-a11y-theme="dark"] h2,
body[data-a11y-theme="dark"] h3,
body[data-a11y-theme="dark"] h4,
body[data-a11y-theme="dark"] h5 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] p {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] li {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .section-label {
    color: #7EB3FF !important;
}
body[data-a11y-theme="dark"] .section-description,
body[data-a11y-theme="dark"] .hero-description {
    color: #C8C8E8 !important;
}

/* Stat cards (Detect / Alert / Protect) */
body[data-a11y-theme="dark"] .stat-card {
    background: #24243e !important;
    border-color: #3a3a5c !important;
    color: #F0F0FF !important;
}
body[data-a11y-theme="dark"] .stat-card .stat-value {
    color: #E0E0F5 !important;
    -webkit-text-fill-color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .stat-card .stat-label {
    /* keep gradient but ensure visibility — override any -webkit-text-fill-color set inline */
    opacity: 1 !important;
}

/* Research / insight cards */
body[data-a11y-theme="dark"] .insight-card {
    background: #24243e !important;
    border-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .insight-source span {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .insight-quote {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .insight-attribution {
    border-top-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .insight-attribution span {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .insight-attribution a {
    color: #7EB3FF !important;
}

/* Tip cards (Quick Tips section) */
body[data-a11y-theme="dark"] .tip-card {
    background: #24243e !important;
    border-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .tip-card h3 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .tip-content {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .tip-content p {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .tip-content li {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .tip-content strong {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .tip-content ul {
    color: #E0E0F5 !important;
}

/* Feature cards */
body[data-a11y-theme="dark"] .feature-card {
    background: #24243e !important;
    border-color: #3a3a5c !important;
    color: #F0F0FF !important;
}
body[data-a11y-theme="dark"] .feature-card h3 {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .feature-card p {
    color: #E0E0F5 !important;
}

/* Interactive stats section */
body[data-a11y-theme="dark"] .interactive-stat {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .stat-number {
    color: #FFFFFF !important;
}
body[data-a11y-theme="dark"] .interactive-stat p {
    color: #E0E0F5 !important;
}

/* Navbar */
body[data-a11y-theme="dark"] .navbar {
    background: rgba(20,20,46,0.97) !important;
    border-bottom-color: #2e2e50 !important;
}
body[data-a11y-theme="dark"] .nav-link {
    color: #E8E8FF !important;
}
body[data-a11y-theme="dark"] .nav-link:hover {
    color: #7EB3FF !important;
}

/* Sections & hero backgrounds */
body[data-a11y-theme="dark"] .hero,
body[data-a11y-theme="dark"] .section,
body[data-a11y-theme="dark"] .tips-section {
    background: #1A1A2E !important;
}
body[data-a11y-theme="dark"] .hero-title,
body[data-a11y-theme="dark"] .section-title {
    color: #E8E8F0 !important;
}

/* Dropdown menu */
body[data-a11y-theme="dark"] .dropdown-menu {
    background: #24243e !important;
    border-color: #3a3a5c !important;
}
body[data-a11y-theme="dark"] .dropdown-menu li a {
    color: #E0E0F5 !important;
}
body[data-a11y-theme="dark"] .dropdown-menu li a:hover {
    background: #3a3a5c !important;
    color: #7EB3FF !important;
}

/* Footer */
body[data-a11y-theme="dark"] .footer {
    background: #0d0d1e !important;
}
body[data-a11y-theme="dark"] .footer-links a,
body[data-a11y-theme="dark"] .footer h3,
body[data-a11y-theme="dark"] .footer h4 {
    color: #E8E8FF !important;
}
body[data-a11y-theme="dark"] .footer p,
body[data-a11y-theme="dark"] .footer-bottom p,
body[data-a11y-theme="dark"] .footer-bottom span {
    color: #C8C8E8 !important;
}
body[data-a11y-theme="dark"] .footer-bottom {
    border-top-color: #2e2e50 !important;
}

/* Buttons */
body[data-a11y-theme="dark"] .btn-primary {
    background: #4D9FFF !important;
    color: #0A1628 !important;
}

/* Focus ring */
body[data-a11y-theme="dark"] *:focus-visible {
    outline-color: #7EB3FF !important;
}
