.sp-checkbox {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    color: #000000d9;
    font-size: 14px;
    font-variant: tabular-nums;
    line-height: 1.5715;
    list-style: none;
    font-feature-settings: "tnum";
    display: inline-flex;
    align-items: baseline;
    line-height: unset;
    cursor: pointer;
    padding-right: 8px;

    &.--indeterminate {
        .sp-checkbox-core {

            &-inner {
                background-color: #fff;
                border-color: #d9d9d9;
                &::after {
                    top: 50%;
                    left: 50%;
                    width: 8px;
                    height: 8px;
                    background-color: var(--color-primary);
                    border: 0;
                    transform: translate(-50%, -50%) scale(1);
                    opacity: 1;
                    content: " ";
                }
            }
        }
    }

    &.--checked {
        .sp-checkbox-core {
            &-inner {
                border-color: var(--color-primary);
                background-color: var(--color-primary);

                &:after {

                    position: absolute;
                    display: table;
                    border: 2px solid #fff;
                    border-top: 0;
                    border-left: 0;
                    transform: rotate(45deg) scale(1) translate(-50%, -50%);
                    opacity: 1;
                    transition: all .2s cubic-bezier(.12, .4, .29, 1.46) .1s;
                    content: " ";
                }

            }
        }
    }
    &.--disabled {
        color: #00000040;
        position: relative;
        cursor: not-allowed;
        .sp-checkbox-core {
            cursor: not-allowed;
            input {
            cursor: not-allowed;
            }
            &-inner {
                background-color: #f5f5f5;
                border-color: #d9d9d9!important;
                cursor: not-allowed;
                &:after {
                    border-color: #00000040;
                    -webkit-animation-name: none;
                    animation-name: none;
                    border-collapse: separate;
                }

            }
        }
    }

    &:hover {
        &-core-input {
            border-color: var(--color-primary);
        }
    }

    &-core {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        color: #000000d9;
        font-size: 14px;
        font-variant: tabular-nums;
        line-height: 1.5715;
        list-style: none;
        font-feature-settings: "tnum";
        position: relative;
        top: 0.2em;
        line-height: 1;
        white-space: nowrap;
        outline: none;
        cursor: pointer;
        padding-right: 8px;

        &-inner {
            position: relative;
            top: 0;
            left: 0;
            display: block;
            width: 16px;
            height: 16px;
            direction: ltr;
            background-color: #fff;
            border: 1px solid #d9d9d9;
            border-radius: 2px;
            border-collapse: separate;
            transition: all .3s;

            &:after {
                position: absolute;
                top: 50%;
                left: 21.5%;
                display: table;
                width: 5.71428571px;
                height: 9.14285714px;
                border: 2px solid #fff;
                border-top: 0;
                border-left: 0;
                transform: rotate(45deg) scale(0) translate(-50%, -50%);
                opacity: 0;
                transition: all .1s cubic-bezier(.71, -.46, .88, .6), opacity .1s;
                content: " ";
            }
        }

        &-input {
            box-sizing: border-box;
            padding: 0;
            position: absolute;
            inset: 0;
            z-index: 1;
            width: 100%;
            height: 100%;
            cursor: pointer;
            opacity: 0;

            &:hover {
                border-color: var(--color-primary);

            }
        }
    }
}