/* Accessibility theme helpers applied to the main document */

body.a11y-dark-theme {
    background: #121212 !important;
    color: #eaeaea !important;
}

body.a11y-dark-theme a {
    color: #82cfff !important;
}

body.a11y-dark-theme table,
body.a11y-dark-theme th,
body.a11y-dark-theme td {
    background: transparent !important;
    color: inherit !important;
    border-color: #444 !important;
}

body.a11y-dark-theme input,
body.a11y-dark-theme select,
body.a11y-dark-theme textarea {
    background: #1e1e1e !important;
    color: #eee !important;
    border-color: #555 !important;
}

body.a11y-contrast-scale {
    background: var(--a11y-contrast-bg, #0b0b0b) !important;
    color: var(--a11y-contrast-fg, #ffffff) !important;
}

body.a11y-contrast-scale a {
    color: var(--a11y-contrast-link, #ffd60a) !important;
    text-decoration: underline !important;
}

body.a11y-contrast-scale *:focus {
    outline: 3px solid var(--a11y-contrast-link, #ffd60a) !important;
    outline-offset: 2px !important;
}

body.a11y-contrast-scale input,
body.a11y-contrast-scale select,
body.a11y-contrast-scale textarea,
body.a11y-contrast-scale button {
    background: var(--a11y-contrast-bg, #0b0b0b) !important;
    color: var(--a11y-contrast-fg, #ffffff) !important;
    border-color: var(--a11y-contrast-border, #ffffff) !important;
}

body.a11y-large-text {
    font-size: 118% !important;
}

body.a11y-underline-links a {
    text-decoration: underline !important;
}

body.a11y-readable-font {
    font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif !important;
}

body.a11y-reduce-motion *,
body.a11y-reduce-motion *::before,
body.a11y-reduce-motion *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

body.a11y-focus-visible *:focus {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px !important;
}

/* High-contrast palette helpers for the widget panel itself */

#a11y-widget .a11y-panel {
    background: #ffffff;
    color: #222222;
}

#a11y-widget .a11y-panel .a11y-secondary {
    background: #f0f0f0;
    color: #333333;
    border-color: #cccccc;
}

#a11y-widget .a11y-panel .a11y-primary {
    background: #005a9e;
    color: #ffffff;
}

body.a11y-dark-theme #a11y-widget .a11y-panel {
    background: #1f2937;
    color: #f9fafb;
    border-color: #374151;
}

body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-secondary {
    background: #374151;
    color: #f9fafb;
    border-color: #4b5563;
}

body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-primary {
    background: #2563eb;
    color: #ffffff;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel {
    background: var(--a11y-contrast-bg, #0b0b0b);
    color: var(--a11y-contrast-fg, #ffffff);
    border-color: var(--a11y-contrast-border, #ffffff);
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-secondary {
    background: var(--a11y-contrast-bg, #0b0b0b);
    color: var(--a11y-contrast-fg, #ffffff);
    border-color: var(--a11y-contrast-border, #ffffff);
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-primary {
    background: var(--a11y-contrast-link, #ffd60a);
    color: #000000;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel a,
body.a11y-dark-theme #a11y-widget .a11y-panel a {
    color: inherit;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel input,
body.a11y-dark-theme #a11y-widget .a11y-panel input,
body.a11y-contrast-scale #a11y-widget .a11y-panel select,
body.a11y-dark-theme #a11y-widget .a11y-panel select,
body.a11y-contrast-scale #a11y-widget .a11y-panel textarea,
body.a11y-dark-theme #a11y-widget .a11y-panel textarea {
    background: transparent;
    color: inherit;
    border-color: currentColor;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-contrast-helper,
body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-contrast-helper {
    color: inherit;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel input[type="range"] {
    accent-color: var(--a11y-contrast-link, #ffd60a);
}

body.a11y-dark-theme #a11y-widget .a11y-panel input[type="range"] {
    accent-color: #2563eb;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-option input[type="checkbox"],
body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-option input[type="checkbox"] {
    accent-color: currentColor;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-panel-header,
body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-panel-header {
    border-color: currentColor;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel .a11y-panel-footer,
body.a11y-dark-theme #a11y-widget .a11y-panel .a11y-panel-footer {
    border-color: currentColor;
}

body.a11y-contrast-scale #a11y-widget .a11y-panel button,
body.a11y-dark-theme #a11y-widget .a11y-panel button {
    box-shadow: none;
}
