/* Photos, logos, and white-on-brand banner text retain their original colors. */
.validation-error, .account-field-error { color: #a0151b; font-size: .9rem; font-weight: 600; margin: 4px 0 12px; text-transform: none; }
input[aria-invalid=true], select[aria-invalid=true], textarea[aria-invalid=true] { border: 2px solid #a0151b !important; }
:root[data-theme=dark] :is(.validation-error, .account-field-error) { color: #ffb4b4; }
:root[data-theme=dark] :is(input, select, textarea)[aria-invalid=true] { border-color: #ffb4b4 !important; }
.page-hero.color-banner,
:root[data-theme=dark] .page-hero.color-banner { background: var(--banner-color); color: var(--banner-ink); }
.page-hero.color-banner :is(.eyebrow, .breadcrumb, .page-description),
:root[data-theme=dark] .page-hero.color-banner :is(.eyebrow, .breadcrumb, .page-description) { color: var(--banner-ink); }
:root[data-theme=dark] .site-header,
:root[data-theme=dark] .pathway-card,
:root[data-theme=dark] .info-card,
:root[data-theme=dark] .pastor-photo > span,
:root[data-theme=dark] .play-symbol,
:root[data-theme=dark] .skip-link { background: var(--surface); }
:root[data-theme=dark] .service-strip,
:root[data-theme=dark] .page-hero:not(.has-banner):not(.color-banner),
:root[data-theme=dark] .location-card,
:root[data-theme=dark] .reading-cta,
:root[data-theme=dark] .sermon-panel { background: var(--surface); }
:root[data-theme=dark] .service-time > span,
:root[data-theme=dark] .pastor-signoff { color: var(--muted); }
:root[data-theme=dark] .service-time { border-color: var(--line); }
:root[data-theme=dark] .eyebrow:not(.light),
:root[data-theme=dark] .scripture,
:root[data-theme=dark] .card-number,
:root[data-theme=dark] .text-link:not(.light-link),
:root[data-theme=dark] .text-link:not(.light-link) span,
:root[data-theme=dark] .play-symbol,
:root[data-theme=dark] nav a:not(.button):hover,
:root[data-theme=dark] nav a[aria-current=page]:not(.button),
:root[data-theme=dark] .reading-layout aside a[aria-current] { color: var(--accent); }
:root[data-theme=dark] .hero .eyebrow,
:root[data-theme=dark] .page-hero.has-banner .eyebrow { color: #e4d1b6; }
:root[data-theme=dark] .brand { background: white; border-radius: 4px; padding: 6px; }
:root[data-theme=dark] .pastor-photo::before { background: var(--surface); }
:root[data-theme=dark] .menu-toggle { color: var(--ink); }
:root[data-theme=dark] { --line: #536359; }
:root[data-theme=dark] body.admin-surface { background: var(--paper); color: var(--ink); }
:root[data-theme=dark] .admin-surface main a { color: var(--accent); }
:root[data-theme=dark] .admin-surface :is(.account-card, .publish-panel, .login-card, details, .media-grid article, .editor-status) { background: var(--surface); border-color: var(--line); }
:root[data-theme=dark] .admin-surface :is(input, textarea, select, button) { background: var(--paper); color: var(--ink); border-color: var(--line); }
:root[data-theme=dark] .admin-surface .primary { background: var(--red); color: white; }
:root[data-theme=dark] .admin-surface :is(.account-hint, .progress-detail) { color: var(--muted); }
:root[data-theme=dark] .admin-surface .account-field-error { color: #ffb4b4; }
:root[data-theme=dark] .admin-surface .account-note { color: #503b16; }
:root[data-theme=dark] .admin-surface :is(fieldset, .sortable > section) { border-color: var(--line); }
:root[data-theme=dark] .admin-surface .toolbar a { background: var(--paper); border-color: var(--line); }
:root[data-theme=dark] .admin-surface a.filter-button { background: var(--paper); color: var(--ink); border-color: var(--line); }
:root[data-theme=dark] .admin-surface .sticky { background: var(--paper); border-color: var(--line); }
:root[data-theme=dark] .admin-surface .account-progress li { background: var(--paper); color: var(--ink); }
:root[data-theme=dark] .admin-surface .progress-current { border-color: var(--accent); }
:root[data-theme=dark] .admin-surface .progress-complete { border-color: #95c89a; }
:root[data-theme=dark] .admin-surface .progress-attention { border-color: #e4bf78; }
:root[data-theme=dark] .admin-surface .account-progress .progress-number { color: white; }
:root[data-theme=dark] .admin-surface .account-progress .progress-upcoming .progress-number { color: #414941; }
