/* Shared sun/moon theme pill (chat welcome + dashboard sidebar footer) */
.welcome-theme-toggle-wrap {
    opacity: 0.92;
    transition: opacity 0.2s ease;
}
.welcome-theme-toggle-wrap:hover {
    opacity: 1;
}
.welcome-theme-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 3px;
    border-radius: 9999px;
    border: 1px solid var(--chat-border);
    background: rgb(var(--chat-fg-rgb) / 0.035);
    box-shadow: inset 0 1px 0 rgb(var(--chat-fg-rgb) / 0.04);
}
.welcome-theme-toggle__slider {
    position: absolute;
    top: 3px;
    left: 3px;
    z-index: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    border: 1px solid var(--chat-border);
    background: var(--chat-bg-tab);
    box-shadow: 0 1px 3px rgb(var(--chat-fg-rgb) / 0.08);
    transform: translateX(0);
    transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    will-change: transform;
}
.welcome-theme-toggle__slider.is-light {
    transform: translateX(2rem);
}
.welcome-theme-toggle__btn {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    color: rgb(var(--chat-fg-rgb) / 0.38);
    transition: color var(--welcome-theme-toggle-icon-fade, 0.28s) ease-in-out;
}
.welcome-theme-toggle__btn:hover {
    color: rgb(var(--chat-fg-rgb) / 0.62);
}
.welcome-theme-toggle__btn--active {
    color: rgb(var(--chat-fg-rgb) / 0.88);
}
.welcome-theme-toggle__btn--active:hover {
    color: rgb(var(--chat-fg-rgb) / 0.92);
}
.welcome-theme-toggle__icon-stack {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
}
.welcome-theme-toggle__icon-stack--sun {
    transform-origin: center;
}
.welcome-theme-toggle__sun-spin--cw {
    animation: welcomeThemeSunSpinCw var(--welcome-theme-sun-spin-duration, 0.85s) var(--welcome-theme-sun-spin-ease, ease-in-out);
}
.welcome-theme-toggle__sun-spin--ccw {
    animation: welcomeThemeSunSpinCcw var(--welcome-theme-sun-spin-duration, 0.85s) var(--welcome-theme-sun-spin-ease, ease-in-out);
}
@keyframes welcomeThemeSunSpinCw {
    0% { transform: rotate(0deg); }
    20% { transform: rotate(36deg); }
    100% { transform: rotate(360deg); }
}
@keyframes welcomeThemeSunSpinCcw {
    0% { transform: rotate(0deg); }
    20% { transform: rotate(-36deg); }
    100% { transform: rotate(-360deg); }
}
.welcome-theme-toggle__icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}
.welcome-theme-toggle__icon--filled {
    position: absolute;
    inset: 0;
    margin: auto;
    opacity: 0;
    transition: opacity var(--welcome-theme-toggle-icon-fade, 0.28s) ease-in-out;
}
.welcome-theme-toggle__icon--outline {
    opacity: 1;
    transition: opacity var(--welcome-theme-toggle-icon-fade, 0.28s) ease-in-out;
}
.welcome-theme-toggle__btn--active .welcome-theme-toggle__icon--outline {
    opacity: 0;
}
.welcome-theme-toggle__btn--active .welcome-theme-toggle__icon--filled {
    opacity: 1;
}
.welcome-theme-toggle__btn:not(.welcome-theme-toggle__btn--active) .welcome-theme-toggle__icon--filled {
    pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
    .welcome-theme-toggle__slider,
    .welcome-theme-toggle__btn,
    .welcome-theme-toggle__icon--filled,
    .welcome-theme-toggle__icon--outline {
        transition-duration: 0.01ms !important;
    }
    .welcome-theme-toggle__sun-spin--cw,
    .welcome-theme-toggle__sun-spin--ccw {
        animation: none !important;
    }
}
