/* CCAS accessibility enhancements: loaded after the legacy inline rules. */
:root {
    --ccas-surface: #ffffff;
    --ccas-surface-soft: #f8fafc;
    --ccas-text: #1f2937;
    --ccas-text-muted: #64748b;
    --ccas-border: rgba(15, 23, 42, .14);
    --ccas-focus: #f7941d;
}

html[data-ccas-theme="dark"] {
    --ccas-surface: #111827;
    --ccas-surface-soft: #182235;
    --ccas-text: #f1f5f9;
    --ccas-text-muted: #cbd5e1;
    --ccas-border: rgba(203, 213, 225, .28);
}

html[data-ccas-theme="contrast"] {
    --ccas-surface: #000000;
    --ccas-surface-soft: #000000;
    --ccas-text: #ffffff;
    --ccas-text-muted: #ffffff;
    --ccas-border: #ffffff;
    --ccas-focus: #ffff00;
}

/* Include navigation, breadcrumbs, forms and footer in font controls. */
.header-wrapper .main-menu a,
.header-wrapper .th-mobile-menu a,
.header-wrapper .header-links a,
.header-wrapper .header-links span,
.breadcumb-wrapper .breadcumb-title,
.breadcumb-wrapper .breadcumb-menu,
.ccas-main-content .btn,
.ccas-main-content .th-btn,
.ccas-main-content .nav-link,
.ccas-main-content .dropdown-item,
.ccas-main-content .page-link,
.ccas-main-content .alert,
.ccas-main-content .form-label,
.ccas-main-content .form-text,
.ccas-main-content .list-group-item,
.footer-wrapper .widget_title,
.footer-wrapper li,
.footer-wrapper .copyright-text {
    font-size: var(--ccas-readable-font) !important;
    line-height: var(--ccas-readable-line) !important;
}

/* Keep icons proportional without turning them into body-size text. */
.ccas-main-content i[class^="fa"],
.ccas-main-content i[class*=" fa"],
.header-wrapper i[class^="fa"],
.header-wrapper i[class*=" fa"] {
    line-height: 1;
}

/* Clear keyboard focus on all interactive controls. */
html[data-ccas-theme] :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--ccas-focus) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 5px rgba(247, 148, 29, .22) !important;
}

/* Site-specific cards and Bootstrap components that were missed previously. */
html[data-ccas-theme="dark"] .ccas-main-content :where(
    .accordion-card, .aq-card, .aq-legend-card, .aq-stat-card, .aq-status-card,
    .committee-card, .strategy-card, .login-card, .mc-card, .summary-card,
    .pp-card, .pp-guidance-card, .pp-hero-card, .pp-info-card, .pp-map-card,
    .pp-mini-analytics-card, .pp-mini-analytics-item, .pp-notice-card,
    .pp-pr-banner-card, .pp-stats-card, .pp-summary-card, .pp-table-card,
    .temple-cta-card, .tm-card, .video-card, .vm-card,
    .card, .list-group-item, .dropdown-menu, .offcanvas, .modal-content,
    .accordion-item, .alert, .page-link, .nav-tabs, .table-responsive,
    .bg-white, .bg-light
) {
    background-color: var(--ccas-surface) !important;
    color: var(--ccas-text) !important;
    border-color: var(--ccas-border) !important;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(
    .aq-card-header, .pp-card-head, .tm-card-head, .vm-card-head,
    .card-header, .card-footer, .modal-header, .modal-footer,
    .accordion-header, .accordion-button
) {
    background-color: var(--ccas-surface-soft) !important;
    color: var(--ccas-text) !important;
    border-color: var(--ccas-border) !important;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(
    .text-dark, .text-body, .box-title, .tm-card-title, .tm-section-title,
    .section-title, .title, strong
) {
    color: var(--ccas-text) !important;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(
    .text-muted, .form-text, small, .blog-meta
) {
    color: var(--ccas-text-muted) !important;
}

html[data-ccas-theme="dark"] .ccas-main-content .table,
html[data-ccas-theme="dark"] .ccas-main-content :where(.aq-table, .pp-table, .pp-stats-table, .temple-table, .tm-table-wrap, .table-video) {
    --bs-table-bg: var(--ccas-surface);
    --bs-table-color: var(--ccas-text);
    --bs-table-border-color: var(--ccas-border);
    --bs-table-striped-bg: #182235;
    --bs-table-striped-color: var(--ccas-text);
    --bs-table-hover-bg: #223049;
    --bs-table-hover-color: #ffffff;
    color: var(--ccas-text) !important;
    border-color: var(--ccas-border) !important;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(input, textarea, select, .form-control, .form-select) {
    background-color: #0b1220 !important;
    color: var(--ccas-text) !important;
    border-color: #64748b !important;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(input, textarea)::placeholder {
    color: #94a3b8 !important;
    opacity: 1;
}

html[data-ccas-theme="dark"] .ccas-main-content :where(hr, .border, .border-top, .border-bottom) {
    border-color: var(--ccas-border) !important;
}

/* High contrast also covers custom cards while retaining meaningful images. */
html[data-ccas-theme="contrast"] .ccas-main-content :where(
    .accordion-card, .aq-card, .aq-legend-card, .aq-stat-card, .aq-status-card,
    .committee-card, .strategy-card, .login-card, .mc-card, .summary-card,
    .pp-card, .pp-guidance-card, .pp-hero-card, .pp-info-card, .pp-map-card,
    .pp-mini-analytics-card, .pp-mini-analytics-item, .pp-notice-card,
    .pp-pr-banner-card, .pp-stats-card, .pp-summary-card, .pp-table-card,
    .temple-cta-card, .tm-card, .video-card, .vm-card,
    .card, .list-group-item, .dropdown-menu, .offcanvas, .modal-content,
    .accordion-item, .alert, .page-link, .table-responsive
) {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}

html[data-ccas-theme="contrast"] .ccas-main-content .table {
    --bs-table-bg: #000;
    --bs-table-color: #fff;
    --bs-table-border-color: #fff;
    --bs-table-striped-bg: #111;
    --bs-table-striped-color: #fff;
    --bs-table-hover-bg: #ffff00;
    --bs-table-hover-color: #000;
}

/* Prevent the floating tool from covering content on narrow screens. */
@media (max-width: 575.98px) {
    .ccas-accessibility-toggle {
        width: 46px;
        height: 46px;
    }

    .ccas-accessibility-panel {
        max-height: min(520px, calc(100vh - 140px));
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}

@media print {
    .ccas-accessibility { display: none !important; }
}
