.wwx-theme {
    --bs-body-font-family: var(--wwx-font-family);
    --bs-body-color: var(--wwx-text-primary);
    --bs-body-bg: var(--wwx-surface-app);
    --bs-primary: var(--wwx-color-forest-500);
    --bs-primary-rgb: var(--wwx-color-forest-500-rgb);
    --bs-secondary-color: var(--wwx-text-secondary);
    --bs-border-color: var(--wwx-border-subtle);
    --bs-border-radius: var(--wwx-radius-sm);
    --bs-border-radius-lg: var(--wwx-radius-md);
    color: var(--wwx-text-primary);
    background-color: var(--wwx-surface-app);
}

.wwx-theme a {
    color: var(--wwx-link-color);
}

.wwx-theme a:hover {
    color: var(--wwx-link-hover-color);
}

.wwx-theme :focus-visible {
    outline: 0;
    box-shadow: var(--wwx-shadow-focus);
}

.wwx-theme ::selection {
    color: var(--wwx-text-inverse);
    background: var(--wwx-color-forest-300);
}

.wwx-theme.wwx-environment-test {
    --wwx-border-strong: var(--wwx-color-warning);
}

.wwx-theme {
    color-scheme: light;
}

.wwx-theme.wwx-color-dark {
    color-scheme: dark;
}

.wwx-theme .text-dark,
.wwx-theme .text-body,
.wwx-theme .text-body-emphasis {
    color: var(--wwx-text-primary) !important;
}

.wwx-theme .text-muted,
.wwx-theme .text-body-secondary {
    color: var(--wwx-text-secondary) !important;
}

.wwx-theme .bg-body,
.wwx-theme .bg-white,
.wwx-theme .bg-light {
    background-color: var(--wwx-surface-raised) !important;
}

.wwx-theme .text-primary {
    color: var(--wwx-link-color) !important;
}

.wwx-theme .text-success {
    color: #207a50 !important;
}

.wwx-theme.wwx-color-dark .text-success {
    color: #72d7a3 !important;
}
