.prism-theme-toggle {
    width: 38px;
    height: 38px;
    min-width: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bs-border-color, rgba(127, 127, 127, .28));
    border-radius: 12px;
    background: var(--bs-tertiary-bg, rgba(127, 127, 127, .08));
    color: var(--bs-body-color, inherit);
    cursor: pointer;
    line-height: 1;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, opacity .16s ease;
}

.prism-theme-toggle:hover,
.prism-theme-toggle:focus-visible {
    background: var(--bs-secondary-bg, rgba(127, 127, 127, .15));
    border-color: var(--bs-secondary-color, rgba(127, 127, 127, .52));
    color: var(--bs-emphasis-color, inherit);
    outline: none;
}

.prism-theme-toggle:active {
    transform: translateY(1px);
}

.prism-theme-toggle:disabled {
    cursor: progress;
    opacity: .68;
}

.prism-theme-toggle.is-error {
    border-color: var(--bs-danger, #dc3545);
}

.prism-theme-icon {
    font-size: 1rem;
    pointer-events: none;
}

[data-bs-theme="dark"] .prism-theme-icon-light { display: inline-block; }
[data-bs-theme="dark"] .prism-theme-icon-dark { display: none; }
[data-bs-theme="light"] .prism-theme-icon-light { display: none; }
[data-bs-theme="light"] .prism-theme-icon-dark { display: inline-block; }

@media (prefers-reduced-motion: reduce) {
    .prism-theme-toggle { transition: none; }
}
