:root{
    --user-input-range-width: 8px;
    --user-input-range-height: 200px;
    --user-input-range-thumb-width: 80px;
    --user-input-range-thumb-height: 35px;
    --user-input-range-thumb-radius: 2rem;
    --user-input-range-thumb-background: var(--color-primary-500);
    --user-input-range-thumb-background-hover: var(--color-primary-600);
    --user-input-range-track-background: var(--color-grey-200);
}

input[type="range"]{
    writing-mode: vertical-lr;
    direction: rtl;
    -webkit-appearance: none;
    appearance: none;
    vertical-align: bottom;
    width: var(--user-input-range-width);
    height: var(--user-input-range-height);
    border-radius: var(--user-input-range-thumb-radius);
    background: var(--user-input-range-track-background);
    outline: none;
    margin: 0;
    padding: 0;
}

input[type="range"]::-webkit-slider-thumb, 
input[type="range"]::-webkit-media-slider-thumb{
    -webkit-appearance: none;
    appearance: none;
    width: var(--user-input-range-thumb-width);
    height: var(--user-input-range-thumb-height);
    border-radius: 1rem;
    background: var(--slider-thumb-color, var(--user-input-range-thumb-background));
    cursor: pointer;
    border: none;
    box-shadow: none;
    margin-left: calc((var(--user-input-range-width) - var(--user-input-range-thumb-width)) / 2);
    transition: background 0.2s;
}

input[type="range"]::-webkit-slider-thumb:hover, 
input[type="range"]::-webkit-media-slider-thumb:hover{
    background: var(--slider-thumb-color-hover, var(--user-input-range-thumb-background-hover));
}

input[type="range"]::-moz-range-thumb{
    width: var(--user-input-range-thumb-width);
    height: var(--user-input-range-thumb-height);
    border-radius: 1rem;
    background: var(--slider-thumb-color, var(--user-input-range-thumb-background));
    cursor: pointer;
    border: none;
    transition: background 0.2s;
}

input[type="range"]::-moz-range-thumb:hover{
    background: var(--slider-thumb-color-hover, var(--user-input-range-thumb-background-hover));
}

input[type="range"]::-webkit-slider-runnable-track{
    -webkit-appearance: none;
    appearance: none;
    width: var(--user-input-range-width);
    height: 100%;
    border-radius: var(--user-input-range-thumb-radius);
    background: var(--user-input-range-track-background);
    border: none;
    box-shadow: none;
}

input[type="range"]::-moz-range-track{
    width: var(--user-input-range-width);
    height: 100%;
    border-radius: var(--user-input-range-thumb-radius);
    background: var(--user-input-range-track-background);
}

@media (max-width: 960px) {
    input[type="range"]{
        writing-mode: horizontal-tb;
        direction: ltr;
        width: var(--user-input-range-height);
        height: var(--user-input-range-width);
        margin: 2.25rem 0;
    }

    input[type="range"]::-webkit-slider-thumb, 
    input[type="range"]::-webkit-media-slider-thumb{
        width: var(--user-input-range-thumb-height);
        height: var(--user-input-range-thumb-width);
        margin-left: 0;
        margin-top: calc((var(--user-input-range-width) - var(--user-input-range-thumb-width)) / 2);
    }

    input[type="range"]::-moz-range-thumb{
        width: var(--user-input-range-thumb-height);
        height: var(--user-input-range-thumb-width);
        margin-left: 0;
        margin-top: calc((var(--user-input-range-width) - var(--user-input-range-thumb-width)) / 2);
    }

    input[type="range"]::-webkit-slider-runnable-track{
        width: 100%;
        height: var(--user-input-range-width);
    }

    input[type="range"]::-moz-range-track{
        width: 100%;
        height: var(--user-input-range-width);
    }
}