/* Site palette overrides stay inside block content, including library iframes. */
.site-block-scope[style*="--wv-primary:"] .btn-primary {
    --bs-btn-bg: var(--wv-primary, #0d6efd);
    --bs-btn-border-color: var(--wv-primary, #0d6efd);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-primary, #0d6efd) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-primary, #0d6efd) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-primary, #0d6efd) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-primary, #0d6efd);
    --bs-btn-disabled-border-color: var(--wv-primary, #0d6efd);
}
.site-block-scope[style*="--wv-primary:"] .btn-outline-primary {
    --bs-btn-color: var(--wv-primary, #0d6efd);
    --bs-btn-border-color: var(--wv-primary, #0d6efd);
    --bs-btn-hover-bg: var(--wv-primary, #0d6efd);
    --bs-btn-hover-border-color: var(--wv-primary, #0d6efd);
    --bs-btn-active-bg: var(--wv-primary, #0d6efd);
    --bs-btn-active-border-color: var(--wv-primary, #0d6efd);
    --bs-btn-disabled-color: var(--wv-primary, #0d6efd);
    --bs-btn-disabled-border-color: var(--wv-primary, #0d6efd);
}
.site-block-scope[style*="--wv-secondary:"] .btn-secondary {
    --bs-btn-bg: var(--wv-secondary, #6c757d);
    --bs-btn-border-color: var(--wv-secondary, #6c757d);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-secondary, #6c757d) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-secondary, #6c757d) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-secondary, #6c757d) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-secondary, #6c757d);
    --bs-btn-disabled-border-color: var(--wv-secondary, #6c757d);
}
.site-block-scope[style*="--wv-secondary:"] .btn-outline-secondary {
    --bs-btn-color: var(--wv-secondary, #6c757d);
    --bs-btn-border-color: var(--wv-secondary, #6c757d);
    --bs-btn-hover-bg: var(--wv-secondary, #6c757d);
    --bs-btn-hover-border-color: var(--wv-secondary, #6c757d);
    --bs-btn-active-bg: var(--wv-secondary, #6c757d);
    --bs-btn-active-border-color: var(--wv-secondary, #6c757d);
    --bs-btn-disabled-color: var(--wv-secondary, #6c757d);
    --bs-btn-disabled-border-color: var(--wv-secondary, #6c757d);
}
.site-block-scope[style*="--wv-success:"] .btn-success {
    --bs-btn-bg: var(--wv-success, #198754);
    --bs-btn-border-color: var(--wv-success, #198754);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-success, #198754) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-success, #198754) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-success, #198754) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-success, #198754);
    --bs-btn-disabled-border-color: var(--wv-success, #198754);
}
.site-block-scope[style*="--wv-success:"] .btn-outline-success {
    --bs-btn-color: var(--wv-success, #198754);
    --bs-btn-border-color: var(--wv-success, #198754);
    --bs-btn-hover-bg: var(--wv-success, #198754);
    --bs-btn-hover-border-color: var(--wv-success, #198754);
    --bs-btn-active-bg: var(--wv-success, #198754);
    --bs-btn-active-border-color: var(--wv-success, #198754);
    --bs-btn-disabled-color: var(--wv-success, #198754);
    --bs-btn-disabled-border-color: var(--wv-success, #198754);
}
.site-block-scope[style*="--wv-danger:"] .btn-danger {
    --bs-btn-bg: var(--wv-danger, #dc3545);
    --bs-btn-border-color: var(--wv-danger, #dc3545);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-danger, #dc3545) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-danger, #dc3545) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-danger, #dc3545) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-danger, #dc3545);
    --bs-btn-disabled-border-color: var(--wv-danger, #dc3545);
}
.site-block-scope[style*="--wv-danger:"] .btn-outline-danger {
    --bs-btn-color: var(--wv-danger, #dc3545);
    --bs-btn-border-color: var(--wv-danger, #dc3545);
    --bs-btn-hover-bg: var(--wv-danger, #dc3545);
    --bs-btn-hover-border-color: var(--wv-danger, #dc3545);
    --bs-btn-active-bg: var(--wv-danger, #dc3545);
    --bs-btn-active-border-color: var(--wv-danger, #dc3545);
    --bs-btn-disabled-color: var(--wv-danger, #dc3545);
    --bs-btn-disabled-border-color: var(--wv-danger, #dc3545);
}
.site-block-scope[style*="--wv-warning:"] .btn-warning {
    --bs-btn-bg: var(--wv-warning, #ffc107);
    --bs-btn-border-color: var(--wv-warning, #ffc107);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-warning, #ffc107) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-warning, #ffc107) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-warning, #ffc107) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-warning, #ffc107);
    --bs-btn-disabled-border-color: var(--wv-warning, #ffc107);
}
.site-block-scope[style*="--wv-warning:"] .btn-outline-warning {
    --bs-btn-color: var(--wv-warning, #ffc107);
    --bs-btn-border-color: var(--wv-warning, #ffc107);
    --bs-btn-hover-bg: var(--wv-warning, #ffc107);
    --bs-btn-hover-border-color: var(--wv-warning, #ffc107);
    --bs-btn-active-bg: var(--wv-warning, #ffc107);
    --bs-btn-active-border-color: var(--wv-warning, #ffc107);
    --bs-btn-disabled-color: var(--wv-warning, #ffc107);
    --bs-btn-disabled-border-color: var(--wv-warning, #ffc107);
}
.site-block-scope[style*="--wv-info:"] .btn-info {
    --bs-btn-bg: var(--wv-info, #0dcaf0);
    --bs-btn-border-color: var(--wv-info, #0dcaf0);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-info, #0dcaf0) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-info, #0dcaf0) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-info, #0dcaf0) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-info, #0dcaf0);
    --bs-btn-disabled-border-color: var(--wv-info, #0dcaf0);
}
.site-block-scope[style*="--wv-info:"] .btn-outline-info {
    --bs-btn-color: var(--wv-info, #0dcaf0);
    --bs-btn-border-color: var(--wv-info, #0dcaf0);
    --bs-btn-hover-bg: var(--wv-info, #0dcaf0);
    --bs-btn-hover-border-color: var(--wv-info, #0dcaf0);
    --bs-btn-active-bg: var(--wv-info, #0dcaf0);
    --bs-btn-active-border-color: var(--wv-info, #0dcaf0);
    --bs-btn-disabled-color: var(--wv-info, #0dcaf0);
    --bs-btn-disabled-border-color: var(--wv-info, #0dcaf0);
}
.site-block-scope[style*="--wv-light:"] .btn-light {
    --bs-btn-bg: var(--wv-light, #f8f9fa);
    --bs-btn-border-color: var(--wv-light, #f8f9fa);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-light, #f8f9fa) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-light, #f8f9fa) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-light, #f8f9fa) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-light, #f8f9fa);
    --bs-btn-disabled-border-color: var(--wv-light, #f8f9fa);
}
.site-block-scope[style*="--wv-light:"] .btn-outline-light {
    --bs-btn-color: var(--wv-light, #f8f9fa);
    --bs-btn-border-color: var(--wv-light, #f8f9fa);
    --bs-btn-hover-bg: var(--wv-light, #f8f9fa);
    --bs-btn-hover-border-color: var(--wv-light, #f8f9fa);
    --bs-btn-active-bg: var(--wv-light, #f8f9fa);
    --bs-btn-active-border-color: var(--wv-light, #f8f9fa);
    --bs-btn-disabled-color: var(--wv-light, #f8f9fa);
    --bs-btn-disabled-border-color: var(--wv-light, #f8f9fa);
}
.site-block-scope[style*="--wv-dark:"] .btn-dark {
    --bs-btn-bg: var(--wv-dark, #212529);
    --bs-btn-border-color: var(--wv-dark, #212529);
    --bs-btn-hover-bg: color-mix(in srgb, var(--wv-dark, #212529) 85%, black);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--wv-dark, #212529) 85%, black);
    --bs-btn-active-bg: color-mix(in srgb, var(--wv-dark, #212529) 80%, black);
    --bs-btn-active-border-color: var(--bs-btn-active-bg);
    --bs-btn-disabled-bg: var(--wv-dark, #212529);
    --bs-btn-disabled-border-color: var(--wv-dark, #212529);
}
.site-block-scope[style*="--wv-dark:"] .btn-outline-dark {
    --bs-btn-color: var(--wv-dark, #212529);
    --bs-btn-border-color: var(--wv-dark, #212529);
    --bs-btn-hover-bg: var(--wv-dark, #212529);
    --bs-btn-hover-border-color: var(--wv-dark, #212529);
    --bs-btn-active-bg: var(--wv-dark, #212529);
    --bs-btn-active-border-color: var(--wv-dark, #212529);
    --bs-btn-disabled-color: var(--wv-dark, #212529);
    --bs-btn-disabled-border-color: var(--wv-dark, #212529);
}

/* A blank site role displays no imposed swatch. The picker remains available. */
.optional-color-empty input[type="color"]::-webkit-color-swatch {
    background: repeating-conic-gradient(#f8f9fa 0% 25%, #dee2e6 0% 50%) 50% / 8px 8px !important;
    border: 1px dashed #adb5bd;
}
.optional-color-empty input[type="color"]::-moz-color-swatch {
    background: repeating-conic-gradient(#f8f9fa 0% 25%, #dee2e6 0% 50%) 50% / 8px 8px !important;
    border: 1px dashed #adb5bd;
}
