.themeswitcher-root {
    position: relative;
}

.dxbl-btn.themeswitcher-button {
    --dxbl-btn-border-radius: 50%;
    --dxbl-btn-border-width: 2px;
    width: 2.125rem;
    height: 2.125rem;
    align-items: center;
    justify-content: center;
    display: flex;
}

.dxbl-image.themeswitcher-icon {
    width: 1rem;
    height: 1rem;
    background-color: currentColor;
    -webkit-mask-image: url("../icons/brush.svg");
    mask-image: url("../icons/brush.svg");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.themeswitcher-container {
    display: block;
    --themeswitcher-color-hover: var(--dxds-color-surface-neutral-default-selected, #e9e9e8);
    --themeswitcher-color-active: var(--dxds-color-surface-neutral-default-hovered, #f4f4f3);
    --themeswitcher-color-active-hover: var(--dxds-color-surface-neutral-default-selected-hovered, #d3d3d2);

    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
    color: var(--dxds-color-content-neutral-default-rest, #333);
    background-color: var(--dxds-color-surface-neutral-default-rest, #fff);
    position: absolute;
    top: calc(2.5rem + .5rem);
    right: 0;
    width: 320px;
    height: 0;
    max-height: calc(100vh - 3.5rem);
    overflow: hidden;
    z-index: 1029;
}

    .themeswitcher-container.theme-DefaultDark,
    .themeswitcher-container.theme-BlazingDark,
    .themeswitcher-container[class*="Dark"] {
        --themeswitcher-color-hover: #2e2e2d;
        --themeswitcher-color-active: #3f3f3e;
        --themeswitcher-color-active-hover: #505150;
    }

.themeswitcher-container-shown,
.themeswitcher-container-hidden {
    transition: height 0.2s ease-in-out;
}

.themeswitcher-container-shown {
    height: auto;
    max-height: calc(100vh - 3.5rem);
    overflow-y: auto;
}

.themeswitcher-title {
    display: block;
    background-color: var(--dxds-color-surface-neutral-default-rest, #fff);
    font-weight: 700;
    font-size: 16px;
    line-height: 100%;
    text-align: start;
    padding: 8px 12px;
    border-bottom: 1px solid var(--dxds-color-border-neutral-default-rest, #d6d6d6);
    position: sticky;
    top: 0;
    z-index: 1;
}

.themeswitcher-content {
    padding: 0;
    margin-bottom: 16px;
    padding-right: 4px;
}

    .themeswitcher-content:first-child {
        margin-top: 12px;
    }

.themeswitcher-colors {
    flex-flow: row wrap;
    display: flex;
    padding: 0;
    margin-bottom: 0;
    list-style: none;
}

.themeswitcher-color {
    display: flex;
    flex: 1 0 50%;
    max-width: 50%;
    padding: 2px 4px;
}

    .themeswitcher-color a {
        display: flex;
        border-radius: 4px;
        padding: 8px;
        width: 100%;
        height: 100%;
        cursor: pointer;
        font-size: 14px;
        text-decoration: none;
        color: inherit;
    }

    .themeswitcher-color.active a {
        background-color: var(--themeswitcher-color-active);
    }

        .themeswitcher-color.active a:hover {
            background-color: var(--themeswitcher-color-active-hover);
        }

    .themeswitcher-color a:hover {
        background-color: var(--themeswitcher-color-hover);
    }

    .themeswitcher-color a:before {
        content: '';
        margin-inline-end: 12px;
        display: block;
        border-radius: 4px;
        width: 20px;
        height: 20px;
        background-color: var(--themeswitcher-color);
        flex-shrink: 0;
    }

    .theme-BlazingDark .themeswitcher-color.active a:before,
    .themeswitcher-color.Fluent_Dark a:before,
    .themeswitcher-color.Blazing_Dark a:before {
        border: 1px solid #7a7a7a;
    }

@media (max-width: 768px) {
    .themeswitcher-container {
        position: fixed;
        top: 3.5rem;
        right: 0;
        width: 320px;
        max-width: 100vw;
    }
}
