html[data-theme="light"] {
    color-scheme: light;
    --vsm-body-bg: #ffffff;
    --vsm-body-color: #212529;
    --vsm-text-muted: #6c757d;
    --vsm-text-secondary: #5a6268;
    --vsm-surface: #ffffff;
    --vsm-surface-2: #f8f9fa;
    --vsm-surface-muted: #fafbfc;
    --vsm-border: #dee2e6;
    --vsm-border-strong: #ced4da;
    --vsm-card-header-bg: linear-gradient(180deg, #f0f6fc 0%, #e8f1fa 100%);
    --vsm-card-header-border: #c5d9ed;
    --vsm-link: #006bb7;
    --vsm-accent: #1b6ec2;
    --vsm-accent-shadow: rgba(27, 110, 194, 0.12);
    --vsm-hover-overlay: rgba(0, 0, 0, 0.02);
    --vsm-input-bg: #ffffff;
    --vsm-input-color: #212529;
    --vsm-input-border: #ced4da;
    --vsm-tooltip-bg: #ffffff;
    --vsm-tooltip-color: #212529;
    --vsm-tooltip-border: rgba(0, 0, 0, 0.12);
    --vsm-tooltip-shadow: rgba(0, 0, 0, 0.12);
    --vsm-error-ui-bg: lightyellow;
    --vsm-workflow-bg: #f8f9fa;
    --vsm-workflow-border: #dee2e6;
    --vsm-workflow-step-bg: #ffffff;
    --vsm-workflow-step-muted-bg: #e9ecef;
    --vsm-workflow-step-muted-color: #495057;
    --vsm-alert-warning-bg: #fff3cd;
    --vsm-alert-warning-color: #664d03;
    --vsm-alert-warning-border: #ffecb5;
    --vsm-alert-info-bg: #cff4fc;
    --vsm-alert-info-color: #055160;
    --vsm-alert-info-border: #b6effb;
    --vsm-alert-success-bg: #d1e7dd;
    --vsm-alert-success-color: #0f5132;
    --vsm-alert-success-border: #badbcc;
    --vsm-help-callout-bg: #f8f9fa;
    --vsm-help-callout-border: #ffc107;
    --vsm-help-feature-bg: linear-gradient(135deg, #fff9e6 0%, #f8f9fa 100%);
    --vsm-help-feature-border: #fd7e14;
    --vsm-review-external-bg: #fff4e5;
    --vsm-review-external-hover: #ffe4c4;
    --vsm-review-external-accent: #fd7e14;
    --vsm-code-bg: #f8f9fa;
    --vsm-focus-ring-inner: #ffffff;
}

html[data-theme="dark"] {
    color-scheme: dark;
    --vsm-body-bg: #121212;
    --vsm-body-color: #e8eaed;
    --vsm-text-muted: #9aa0a6;
    --vsm-text-secondary: #bdc1c6;
    --vsm-surface: #1e1e1e;
    --vsm-surface-2: #252525;
    --vsm-surface-muted: #202020;
    --vsm-border: #3c4043;
    --vsm-border-strong: #5f6368;
    --vsm-card-header-bg: linear-gradient(180deg, #1a2a3a 0%, #152030 100%);
    --vsm-card-header-border: #2a4a6a;
    --vsm-link: #8ab4f8;
    --vsm-accent: #4a9eed;
    --vsm-accent-shadow: rgba(74, 158, 237, 0.2);
    --vsm-hover-overlay: rgba(255, 255, 255, 0.04);
    --vsm-input-bg: #2d2d2d;
    --vsm-input-color: #e8eaed;
    --vsm-input-border: #5f6368;
    --vsm-tooltip-bg: #2d2d2d;
    --vsm-tooltip-color: #e8eaed;
    --vsm-tooltip-border: rgba(255, 255, 255, 0.12);
    --vsm-tooltip-shadow: rgba(0, 0, 0, 0.35);
    --vsm-error-ui-bg: #3d3200;
    --vsm-workflow-bg: #1e1e1e;
    --vsm-workflow-border: #3c4043;
    --vsm-workflow-step-bg: #252525;
    --vsm-workflow-step-muted-bg: #303030;
    --vsm-workflow-step-muted-color: #bdc1c6;
    --vsm-alert-warning-bg: #3d3200;
    --vsm-alert-warning-color: #fdd663;
    --vsm-alert-warning-border: #5c4a00;
    --vsm-alert-info-bg: #132f4c;
    --vsm-alert-info-color: #c2e7ff;
    --vsm-alert-info-border: #1e4976;
    --vsm-alert-success-bg: #0d3d2c;
    --vsm-alert-success-color: #81c995;
    --vsm-alert-success-border: #1e5a40;
    --vsm-help-callout-bg: #1e1e1e;
    --vsm-help-callout-border: #fdd663;
    --vsm-help-feature-bg: linear-gradient(135deg, #2a2410 0%, #1e1e1e 100%);
    --vsm-help-feature-border: #fd7e14;
    --vsm-review-external-bg: #3a2410;
    --vsm-review-external-hover: #4a2e14;
    --vsm-review-external-accent: #fd7e14;
    --vsm-code-bg: #2d2d2d;
    --vsm-focus-ring-inner: #121212;
}

html,
body {
    background-color: var(--vsm-body-bg);
    color: var(--vsm-body-color);
}

.page,
.page main,
.page .content {
    background-color: var(--vsm-body-bg);
    color: var(--vsm-body-color);
}

a,
.btn-link {
    color: var(--vsm-link);
}

.text-muted {
    color: var(--vsm-text-muted) !important;
}

.text-secondary {
    color: var(--vsm-text-secondary) !important;
}

hr {
    border-color: var(--vsm-border);
    opacity: 1;
}

.card {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.card-header,
.card-footer {
    background-color: var(--vsm-surface-2);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.home-review-card {
    border: 2px solid var(--vsm-accent);
    box-shadow: 0 0.15rem 0.5rem var(--vsm-accent-shadow);
}

.home-review-card-header {
    background: var(--vsm-card-header-bg);
    border-bottom-color: var(--vsm-card-header-border);
}

.home-prep-card {
    border-color: var(--vsm-border-strong);
    background-color: var(--vsm-surface-muted);
}

.home-prep-card .card-body,
.home-hero-lead {
    color: var(--vsm-text-secondary);
}

.home-folder-audit {
    background: var(--vsm-surface-2);
}

.settings-section {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border) !important;
    color: var(--vsm-body-color);
}

.settings-section > summary:hover {
    background-color: var(--vsm-hover-overlay);
}

.settings-section-body {
    border-color: var(--vsm-border) !important;
}

.review-workflow {
    background: var(--vsm-workflow-bg);
    border: 1px solid var(--vsm-workflow-border);
    color: var(--vsm-body-color);
}

.review-workflow-link {
    background: var(--vsm-workflow-step-bg);
    border: 1px solid var(--vsm-workflow-border);
    color: var(--vsm-body-color);
}

.review-workflow-link:hover:not(.review-workflow-link-disabled) {
    background: var(--vsm-surface-2);
    border-color: var(--vsm-card-header-border);
    color: var(--vsm-body-color);
}

.review-workflow-num {
    background: var(--vsm-workflow-step-muted-bg);
    color: var(--vsm-workflow-step-muted-color);
}

.review-workflow-desc {
    color: var(--vsm-text-muted);
}

.review-workflow-item-active .review-workflow-link {
    background: var(--vsm-workflow-step-bg);
    border-color: var(--vsm-accent);
    box-shadow: 0 0.1rem 0.35rem var(--vsm-accent-shadow);
}

.review-workflow-item-active .review-workflow-num {
    background: var(--vsm-accent);
    color: #fff;
}

.prep-before-review-note.alert-warning,
.alert-warning {
    background-color: var(--vsm-alert-warning-bg);
    border-color: var(--vsm-alert-warning-border);
    color: var(--vsm-alert-warning-color);
}

.alert-info {
    background-color: var(--vsm-alert-info-bg);
    border-color: var(--vsm-alert-info-border);
    color: var(--vsm-alert-info-color);
}

.alert-success {
    background-color: var(--vsm-alert-success-bg);
    border-color: var(--vsm-alert-success-border);
    color: var(--vsm-alert-success-color);
}

.alert-secondary,
.alert-light {
    background-color: var(--vsm-surface-2);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--vsm-body-color);
    --bs-table-border-color: var(--vsm-border);
    --bs-table-striped-bg: var(--vsm-hover-overlay);
    --bs-table-hover-bg: var(--vsm-hover-overlay);
    color: var(--vsm-body-color);
    border-color: var(--vsm-border);
}

.table > :not(caption) > * > * {
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
    background-color: transparent;
}

.table-light,
.table-light > th,
.table-light > td {
    --bs-table-bg: var(--vsm-surface-2);
    --bs-table-color: var(--vsm-body-color);
    background-color: var(--vsm-surface-2);
    color: var(--vsm-body-color);
    border-color: var(--vsm-border);
}

.form-control,
.form-select,
textarea.form-control {
    background-color: var(--vsm-input-bg);
    border-color: var(--vsm-input-border);
    color: var(--vsm-input-color);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--vsm-input-bg);
    color: var(--vsm-input-color);
    border-color: var(--vsm-accent);
    box-shadow: 0 0 0 0.1rem var(--vsm-focus-ring-inner), 0 0 0 0.25rem rgba(74, 158, 237, 0.35);
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
    background-color: var(--vsm-surface-2);
    color: var(--vsm-text-muted);
}

.input-group-text {
    background-color: var(--vsm-surface-2);
    border-color: var(--vsm-input-border);
    color: var(--vsm-body-color);
}

.form-check-input {
    background-color: var(--vsm-input-bg);
    border-color: var(--vsm-input-border);
}

.form-check-input:checked {
    background-color: var(--vsm-accent);
    border-color: var(--vsm-accent);
}

.list-group-item {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.list-group-item-action:hover,
.list-group-item-action:focus {
    background-color: var(--vsm-surface-2);
    color: var(--vsm-body-color);
}

.dropdown-menu {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border);
}

.dropdown-item {
    color: var(--vsm-body-color);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--vsm-surface-2);
    color: var(--vsm-body-color);
}

.dropdown-divider {
    border-color: var(--vsm-border);
}

.modal-content {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.modal-header,
.modal-footer {
    border-color: var(--vsm-border);
}

html[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.nav-tabs {
    border-color: var(--vsm-border);
}

.nav-tabs .nav-link {
    color: var(--vsm-text-muted);
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.nav-tabs .nav-link.active {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border) var(--vsm-border) var(--vsm-surface);
    color: var(--vsm-body-color);
}

.pagination .page-link {
    background-color: var(--vsm-surface);
    border-color: var(--vsm-border);
    color: var(--vsm-link);
}

.pagination .page-item.disabled .page-link {
    background-color: var(--vsm-surface-2);
    border-color: var(--vsm-border);
    color: var(--vsm-text-muted);
}

.bg-light,
.text-bg-light {
    background-color: var(--vsm-surface-2) !important;
    color: var(--vsm-body-color) !important;
}

/* Bootstrap 5.1 ships .badge with white text and no text-bg-* utilities (those landed in 5.2). */
.text-bg-primary {
    background-color: #0d6efd !important;
    color: #fff !important;
}

.text-bg-secondary {
    background-color: #6c757d !important;
    color: #fff !important;
}

.text-bg-success {
    background-color: #198754 !important;
    color: #fff !important;
}

.text-bg-danger {
    background-color: #dc3545 !important;
    color: #fff !important;
}

.text-bg-warning {
    background-color: #ffc107 !important;
    color: #000 !important;
}

.text-bg-info {
    background-color: #0dcaf0 !important;
    color: #000 !important;
}

.bg-white {
    background-color: var(--vsm-surface) !important;
    color: var(--vsm-body-color) !important;
}

.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
    border-color: var(--vsm-border) !important;
}

html[data-theme="dark"] code {
    color: #f28b82;
}

pre {
    background-color: var(--vsm-code-bg);
    border: 1px solid var(--vsm-border);
    color: var(--vsm-body-color);
}

.badge.bg-light.text-dark,
.badge.bg-light.text-secondary {
    background-color: var(--vsm-surface-2) !important;
    color: var(--vsm-body-color) !important;
    border-color: var(--vsm-border) !important;
}

.deliverable-text {
    background: var(--vsm-surface);
    border-color: var(--vsm-border);
    color: var(--vsm-body-color);
}

.help-tip-popover,
.email-dns-record-popover {
    color: var(--vsm-tooltip-color);
    background: var(--vsm-tooltip-bg);
    border-color: var(--vsm-tooltip-border);
    box-shadow: 0 0.35rem 1rem var(--vsm-tooltip-shadow);
}

.help-testimonial {
    background: var(--vsm-help-callout-bg);
    border-left-color: var(--vsm-help-callout-border);
}

.help-testimonial-featured {
    background: var(--vsm-help-feature-bg);
    border-left-color: var(--vsm-help-feature-border);
}

.help-tip-icon {
    color: var(--vsm-text-muted);
}

.help-tip:hover .help-tip-icon,
.help-tip:focus .help-tip-icon {
    color: var(--vsm-accent);
}

.review-email-dns > summary:hover,
.company-review-email-dns > summary:hover,
.settings-section > summary:hover {
    background-color: var(--vsm-hover-overlay);
}

#blazor-error-ui {
    background: var(--vsm-error-ui-bg);
    color: var(--vsm-body-color);
}
