.config-option {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    margin: space(16) space(0) space(24);

    &--hz {
        flex-direction: row-reverse;
        align-items: center;
        margin-top: space(4);
        margin-bottom: space(4);

        .config-option__title {
            @extend %label-md;
            flex: 1 1 100%;
        }

        .config-option__list {
            flex: 1 1 auto;
            width: auto;
        }

        &:first-child {
            margin-top: 0;
        }

        &:last-child {
            margin-bottom: 0;
        }
    }
}

.config-option__title {
    @extend %label-md;
    padding: 0 space(12);
}

.config-option__radio-tabs,
.config-option__list {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    height: auto;
    padding: 0;

    input:first-of-type {
        nav-left: none;
    }

    input:last-of-type {
        nav-right: none;
    }

    .config-option__tab-label {
        @extend %label-sm;
        @include trans-colors-opa;
        display: block;
        position: relative;
        height: auto;
        margin: space(4) space(12) 0;
        padding: space(8) 0;
        color: $color-text-inactive;
        tab-index: none;

        &:hover {
            color: $color-text;
            cursor: pointer;
        }
    }

    .config-option__checkbox-wrapper {
        @include trans-colors-opa;
        width: space(32);
        height: space(32);
        margin: space(4) space(12) 0;
        border-radius: $border-radius-sm;
        opacity: 0.5;
        background-color: $color-bg-overlay;
        cursor: pointer;

        &:hover {
            opacity: 1;
        }
        
        &[checked] {
            background-color: $color-a;
        }
    }

    .config-option__checkbox {
        @extend %nav-all;
        @include trans-colors-opa;
        visibility: visible;
        width: 0;
        height: 0;
    }

    // TODO: Remove & Replace old stylings
    input.radio {
        @extend %nav-all;
        @include trans-colors-opa;
        visibility: visible;
        width: 0;
        height: 0;

        &:not(:disabled) {
            &:checked + .config-option__tab-label {
                border-bottom: 1dp;
                border-color: $color-text;
                color: $color-text;
    
                &:hover {
                    cursor: default;
                }
            }
    
            .rmlui-window:not([mouse-active]) &:focus + .config-option__tab-label {
                transition: none;
                animation: $focus-anim-border;
                border-color: $color-secondary;
                color: $color-secondary;
            }

            &:focus + .config-option__tab-label,
            &:hover + .config-option__tab-label {
                color: $color-text;
            }
        }

        &:disabled + .config-option__tab-label {
            opacity: 0.5;

            &:hover {
                cursor: default;
            }
        }
    }

    input.range slidertrack {
        @include trans-colors;
        height: 2dp;
        margin-top: space(8);
        background-color: $color-border;
    }
    
    input.range sliderbar {
        @include trans-colors;
        width: space(16);
        height: space(16);
        margin-top: space(1);
        margin-right: space(-8);
        margin-left: space(-8);
        transition: background-color $transition-quick;
        border-radius: 8dp;
        background-color: $color-text-dim;
        
        .rmlui-window:not([mouse-active]) &:focus {
            @include border($color-a);
            animation: $focus-anim-bg;
        }

        &:hover {
            background-color: $color-text;
            cursor: pointer;
        }
    }
    
    input.range sliderbar:active,
    input.range slidertrack:active + sliderbar {
        background-color: $color-secondary;
    }

    input.range sliderarrowdec,
    input.range sliderarrowinc {
        display: none;
    }
}

.config-option__details {
    @extend %label-xs;
    height: space(18);
    margin: space(14) space(12) 0;
    color: $color-primary;
}

.config-option-color {
    width: 100%;
    max-width: space(360);
    height: auto;
    margin-top: space(4);
    margin-left: space(12);
    padding: 0;

    &__preview-wrapper {
        display: flex;
        flex-direction: row;
        width: 100%;
        height: space(8 * 9);
    }

    &__preview-block {
        display: block;
        width:  space(8 * 11);
        height: 100%;
        border-width: $border-width-thickness;
        border-radius: $border-radius-lg;
        border-color: $color-border;
    }

    &__hsv-wrapper {
        display: flex;
        flex: 1 1 100%;
        flex-direction: column;
        width: auto;
        height: auto;
        padding-left: space(8);

        .config-option-range {
            flex: 1 1 auto;

            label {
                min-width: space(72);
            }

            input {
                flex: 1 1 auto;
            }
        }
    }
}

.config-option-range {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    max-width: space(360);
    height: auto;
    margin-top: space(4);
    padding: 0;

    &__label {
        @extend %label-sm;

        display: block;
        width: space(56);
        margin: 0 12dp;
        margin-right: space(16);
        padding: 0;
        color: $color-text;
        tab-index: none;
    }

    &__range-input {
        flex: 1;

        slidertrack {
            @include trans-colors;
            height: 2dp;
            margin-top: space(8);
            background-color: $color-border;
        }
        
        sliderbar {
            @include trans-colors;
            width: space(16);
            height: space(16);
            margin-top: space(1);
            margin-right: space(-8);
            margin-left: space(-8);
            transition: background-color $transition-quick;
            border-radius: 8dp;
            background-color: $color-text-dim;
            
            .rmlui-window:not([mouse-active]) &:focus {
                @include border($color-a);
                animation: $focus-anim-bg;
            }

            &:hover {
                background-color: $color-text;
                cursor: pointer;
            }
        }
        
        sliderbar:active,
        slidertrack:active + sliderbar {
            background-color: $color-secondary;
        }

        sliderarrowdec,
        sliderarrowinc {
            display: none;
        }
    }

}

.config-option__range-wrapper {
    max-width: space(360);
    margin-top: space(4);
}

.config-option__range-label {
    @extend %label-sm;

    display: block;
    // flex: 0 0 space(32);
    width: space(56);
    margin: 0 12dp;
    margin-right: space(16);
    padding: 0;
    color: $color-text;
    tab-index: none;
}

.config-option-dropdown, .config-option-textfield {
    display: flex;
    position: relative;
    flex: 1 1 100%;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    height: auto;
    padding: space(8) space(24) space(8) space(12);

    &__select {
        display: block;
        height: space(48);
        padding: space(14);
        cursor: pointer;
    }

    &__wrapper {
        // Cursed guess & check so that this appears to be the same height as the select
        $extra-space: 2;

        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        height: auto;
        padding: space(0 + $extra-space) 0 space(10 + $extra-space);
        cursor: text;

        input {
            width: 100%;
            height: auto;
            vertical-align: middle;
        }
    }

    &__select, &__wrapper {
        @extend %body;
        @extend %nav-all;
        @include trans-colors-border;
        @include border($color-white-a50);
        position: relative;
        box-sizing: border-box;
        flex: 1 1 100%;

        width: auto;
        border-radius: $border-radius-md;
        background-color: $color-white-a5;

        &:hover, &:focus {
            @include border($color-white-a80);
            background-color: $color-white-a20;
        }

        selectvalue {
            display: inline;
            height: auto;
            margin: auto 0;
        }

        selectbox {
            @include border($color-border);
            margin-top: space(2);
            padding: space(4) 0;
            border-radius: $border-radius-md;
            background-color: $color-background-3;
            
            option {
                @extend %nav-all;
                @include trans-colors;
                padding: space(8) space(12);
                background-color: $color-transparent;
                color: $color-text-dim;
                font-weight: 400;

                &:hover, &:focus {
                    background-color: $color-white-a20;
                }

                &:hover:not(:checked) {
                    cursor: pointer;
                }

                &:checked {
                    background-color: $color-white-a5;
                    color: $color-white;
                }
            }
        }
    }
}
