/* Shared landing, authentication, and applicant color preferences. */
.accessibility-color-contrast-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .6rem;
    margin-top: .7rem;
}
.accessibility-color-detail-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: .6rem;
    margin-top: .6rem;
}
.accessibility-widget .accessibility-color-tile,
.accessibility-color-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-width: 0;
    min-height: 7.2rem;
    border: 1px solid #d5e4d9;
    border-radius: .7rem;
    background: #f1f7f3;
    padding: .8rem .45rem;
    color: #183629;
    text-align: center;
}
.accessibility-widget .accessibility-color-tile {
    cursor: pointer;
    transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.accessibility-color-tile svg { width: 1.5rem; height: 1.5rem; flex: 0 0 auto; }
.accessibility-color-tile strong { font-size: .72rem; line-height: 1.35; font-weight: 700; }
.accessibility-color-tile small { font-size: .61rem; line-height: 1.4; }
.accessibility-widget .accessibility-color-tile:is(:hover, .is-active) {
    border-color: #176f3b;
    background: #176f3b;
    color: #fff;
}
.accessibility-color-tile.is-active::after {
    position: absolute;
    top: .3rem;
    right: .4rem;
    content: '✓';
    font-weight: 800;
}
.accessibility-color-card h4 { margin: 0; font-size: .74rem; font-weight: 650; line-height: 1.4; }
.accessibility-color-swatches { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem; }
.accessibility-widget .accessibility-color-swatch {
    position: relative;
    width: 1.4rem;
    height: 1.4rem;
    min-width: 1.4rem;
    min-height: 1.4rem;
    border: 1px solid #82968a;
    border-radius: 50%;
    background: var(--swatch-color) !important;
    padding: 0;
    cursor: pointer;
    transition: transform 160ms ease, box-shadow 160ms ease;
}
.accessibility-color-swatch:hover { transform: scale(1.12); }
.accessibility-color-swatch.is-selected { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #176f3b; }
.accessibility-color-swatch.is-selected::after {
    position: absolute;
    right: -.3rem;
    bottom: -.2rem;
    display: grid;
    width: .75rem;
    height: .75rem;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #000;
    content: '✓';
    font-size: .6rem;
    font-weight: 900;
}
.accessibility-color-swatch:disabled { cursor: not-allowed; opacity: .65; }
.accessibility-color-note,
.accessibility-color-status {
    margin: .7rem 0 0;
    color: #375746;
    font-size: .68rem;
    line-height: 1.5;
}
.accessibility-color-status:empty { display: none; }
.accessibility-color-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.accessibility-color-actions button {
    border: 1px solid #176f3b;
    border-radius: .5rem;
    background: #f1f7f3;
    padding: .5rem .65rem;
    color: #105a30;
    font-size: .68rem;
    font-weight: 700;
}
.accessibility-color-actions button[data-accessibility-color-autofix] { background: #176f3b; color: #fff; }
.accessibility-color-section :is(button, input):focus-visible {
    outline: 3px solid #105a30;
    outline-offset: 3px;
}

/* Only nonessential artwork receives saturation/grayscale filters. */
body[data-landing-release-refresh][data-ha-saturation="low"] { --ha-media-filter: saturate(.6); --ha-decoration-accent: #335b43; }
body[data-landing-release-refresh][data-ha-saturation="high"] { --ha-media-filter: saturate(1.25); --ha-decoration-accent: #006b2a; }
body[data-landing-release-refresh][data-ha-saturation="mono"] { --ha-media-filter: grayscale(1); --ha-decoration-accent: #333; }
body[data-landing-release-refresh]:is([data-ha-saturation="low"], [data-ha-saturation="high"], [data-ha-saturation="mono"]) :is(.hero-bg-static, .landing-empty-state__animation) {
    filter: var(--ha-media-filter) !important;
}
body[data-landing-release-refresh]:is([data-ha-saturation="low"], [data-ha-saturation="high"]) .landing-latest-jobs__eyebrow {
    color: var(--ha-decoration-accent);
}
body[data-landing-release-refresh].accessibility-dark[data-ha-saturation="low"] .landing-latest-jobs__eyebrow { color: #d3e0d7; }
body[data-landing-release-refresh].accessibility-dark[data-ha-saturation="high"] .landing-latest-jobs__eyebrow { color: #86efac; }

/* Semantic surfaces share the resolved, validated palette. Specificity is
   intentional because the existing theme contains older !important rules. */
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] {
    background: var(--ha-color-page) !important;
    color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(
    main, section, article, aside, nav, footer, dialog, table, thead, tbody, tr, td, th,
    .site-navbar, .site-footer, .site-mobile-menu, [data-dropdown-menu], .site-tutorial-modal__body,
    .landing-job-search, .landing-job-search__field, .landing-job-select__menu,
    .landing-latest-jobs__list-panel, .landing-latest-jobs__detail, .landing-latest-job-detail,
    .landing-cookie-consent, .landing-cookie-consent__settings,
    .accessibility-widget .accessibility-panel, .accessibility-widget .accessibility-panel__section,
    .accessibility-widget .accessibility-choice, .accessibility-color-card, .accessibility-color-tile,
    .accessibility-widget .accessibility-voice, .accessibility-widget .accessibility-voice__status
) {
    background: var(--ha-color-surface) !important;
    border-color: var(--ha-color-border) !important;
    color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :where(
    p, li, dt, dd, label, legend, td, th, time, small, strong, b, em, span,
    .navbar-links a, .site-mobile-menu a, .landing-job-select__value,
    .accessibility-widget .accessibility-switch__copy strong,
    .accessibility-widget .accessibility-choice strong,
    .accessibility-color-card h4, .accessibility-color-note, .accessibility-color-status
) {
    color: var(--ha-color-text) !important;
    -webkit-text-fill-color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(h1, h2, h3, h4, h5, h6, .landing-community-stat-card__count) {
    color: var(--ha-color-heading) !important;
    -webkit-text-fill-color: var(--ha-color-heading) !important;
    text-shadow: none !important;
    background-color: transparent !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget :is(.accessibility-switch__copy strong, .accessibility-choice strong, .accessibility-color-card h4) {
    color: var(--ha-color-text) !important;
    -webkit-text-fill-color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(.landing-latest-jobs__intro, .accessibility-widget .accessibility-switch__copy small, .accessibility-widget .accessibility-voice__help) {
    color: var(--ha-color-muted) !important;
    -webkit-text-fill-color: var(--ha-color-muted) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(a[href], summary) {
    color: var(--ha-color-link) !important;
    -webkit-text-fill-color: var(--ha-color-link) !important;
    text-decoration-thickness: .12em;
    text-underline-offset: .15em;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select, option, button:not(.accessibility-color-swatch):not(.accessibility-backdrop)) {
    border-color: var(--ha-color-border) !important;
    background-color: var(--ha-color-surface) !important;
    color: var(--ha-color-text) !important;
    -webkit-text-fill-color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(input, textarea)::placeholder {
    color: var(--ha-color-muted) !important;
    opacity: 1;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(.landing-job-search__query-row, .landing-job-select__toggle) > svg {
    color: var(--ha-color-text) !important;
    stroke: currentColor !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .landing-hero-section__copy-wrap {
    position: relative;
    isolation: isolate;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .landing-hero-section__copy-wrap::before {
    position: absolute;
    inset: -.8rem;
    z-index: -1;
    border-radius: .8rem;
    background: var(--ha-color-surface);
    content: '';
    pointer-events: none;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .landing-community-stats__top-wave path {
    fill: var(--ha-color-page) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(
    .landing-job-search__submit, .landing-latest-job-card__apply, .landing-app-download__button, .navbar-actions a,
    .landing-cookie-consent__actions button:not(.landing-cookie-consent__secondary),
    .accessibility-widget .accessibility-reset, .accessibility-widget .accessibility-panel__header,
    .accessibility-widget .accessibility-color-tile.is-active,
    .accessibility-widget .accessibility-choice__options button.is-active,
    .accessibility-widget .accessibility-color-actions button[data-accessibility-color-autofix],
    .accessibility-widget .accessibility-trigger
) {
    border-color: var(--ha-color-action) !important;
    background: var(--ha-color-action) !important;
    color: var(--ha-color-actionText) !important;
    -webkit-text-fill-color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-voice__actions button:is(:hover, :focus-visible, .is-active) {
    border-color: var(--ha-color-action) !important;
    background: var(--ha-color-action) !important;
    color: var(--ha-color-actionText) !important;
    -webkit-text-fill-color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-voice__actions button:is(:hover, :focus-visible, .is-active) :is(span, svg) {
    color: var(--ha-color-actionText) !important;
    -webkit-text-fill-color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(
    .landing-job-search__submit, .landing-latest-job-card__apply, .landing-app-download__button, .navbar-actions a,
    .accessibility-widget .accessibility-panel__header, .accessibility-widget .accessibility-color-tile.is-active
) :is(span, strong, small, h2, svg, button) {
    color: var(--ha-color-actionText) !important;
    -webkit-text-fill-color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget :is(.accessibility-switch__track, .accessibility-switch__icon) {
    background: var(--ha-color-surface) !important;
    border: 1px solid var(--ha-color-border) !important;
    color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__thumb {
    background: var(--ha-color-action) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__control input:checked + .accessibility-switch__track {
    background: var(--ha-color-surface) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__control input:checked + .accessibility-switch__track .accessibility-switch__thumb {
    background: var(--ha-color-action) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__control input + .accessibility-switch__track :is(.accessibility-switch__off, .accessibility-switch__on) {
    color: var(--ha-color-text) !important;
    -webkit-text-fill-color: var(--ha-color-text) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__control input:not(:checked) + .accessibility-switch__track .accessibility-switch__off,
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-switch__control input:checked + .accessibility-switch__track .accessibility-switch__on {
    color: var(--ha-color-actionText) !important;
    -webkit-text-fill-color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-panel__footer {
    background: var(--ha-color-surface) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-panel__header button {
    background: transparent !important;
    border-color: var(--ha-color-actionText) !important;
    color: var(--ha-color-actionText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(button, input, select, textarea, a, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--ha-color-focus) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 5px var(--ha-color-surface) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(button:disabled, input:disabled, [aria-disabled="true"]):not(.accessibility-color-swatch) {
    opacity: 1 !important;
    background: var(--ha-color-disabled) !important;
    color: var(--ha-color-disabledText) !important;
    -webkit-text-fill-color: var(--ha-color-disabledText) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-color-swatch {
    border-color: var(--ha-color-border) !important;
    background: var(--swatch-color) !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-widget .accessibility-panel__heading {
    background: transparent !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] .accessibility-color-swatch.is-selected {
    box-shadow: 0 0 0 2px var(--ha-color-surface), 0 0 0 4px var(--ha-color-focus);
}
@media (max-width: 430px) {
    .accessibility-color-contrast-grid { gap: .35rem; }
    .accessibility-color-detail-row { grid-template-columns: 1fr; }
    .accessibility-color-tile strong { font-size: .66rem; }
    .accessibility-color-tile small { font-size: .58rem; }
    .accessibility-color-detail-row > .accessibility-color-tile { min-height: 5.5rem; }
}
@media (max-width: 480px) {
    body[data-accessibility-color-scope] .accessibility-widget .accessibility-panel {
        position: fixed;
        top: .5rem;
        right: .5rem;
        bottom: .5rem;
        left: auto;
        width: calc(100vw - 1rem);
        max-width: calc(100vw - 1rem);
        max-height: calc(100dvh - 1rem);
        transform: translateY(10px);
    }
    body[data-accessibility-color-scope] .accessibility-widget .accessibility-panel.is-open { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .accessibility-color-section *, .accessibility-color-section *::after { transition: none !important; }
}
@media (forced-colors: active) {
    .accessibility-color-swatch { forced-color-adjust: none; }
    .accessibility-color-tile.is-active { border: 3px solid Highlight; }
    .accessibility-color-swatch.is-selected { outline: 3px solid Highlight; }
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(p, small, strong, span, h1, h2, h3, h4, h5, h6) {
    background-color: transparent !important;
}
body[data-accessibility-color-scope][data-ha-colors-active="true"][data-ha-contrast] :is(h1, h2, h3, h4, h5, h6, .landing-community-stat-card__count) :is(span, strong, b, em) {
    color: var(--ha-color-heading) !important;
    -webkit-text-fill-color: var(--ha-color-heading) !important;
}
