﻿.checkbox *,
.radio *,
.checkbox-inline *,
.radio-inline * {
    cursor: pointer;
}

.checkbox label:after, .radio label:after, .checkbox-inline label:after, .radio-inline label:after {
    content: '';
    display: table;
    clear: both;
}

.checkbox .cr,
.radio .cr,
.checkbox-inline .cr,
.radio-inline .cr {
    position: relative;
    display: inline-block;
    border: 1px solid #a9a9a9;
    border-radius: .25em;
    width: 1.3em;
    height: 1.3em;
    float: left;
    margin-right: .5em;
}

.checkbox .cr, .checkbox-inline .cr {
    border-radius: 0px;
}

.radio .cr, .radio-inline .cr {
    border-radius: 50%;
}

    .checkbox .cr .cr-icon,
    .radio .cr .cr-icon,
    .checkbox-inline .cr .cr-icon,
    .radio-inline .cr .cr-icon {
        position: absolute;
        font-size: .8em;
        line-height: 0;
        top: 50%;
        left: 20%;
    }

    .checkbox .cr .cr-icon,
    .checkbox-inline .cr .cr-icon,
    .radio .cr .cr-icon,
    .radio-inline .cr .cr-icon {
        margin-left: -1px;
        margin-top: 1px;
    }

.checkbox label input[type="checkbox"],
.radio label input[type="radio"],
.checkbox-inline label input[type="checkbox"],
.radio-inline label input[type="radio"] {
    display: none;
}

    .checkbox label input[type="checkbox"] ~ .cr > .cr-icon,
    .radio label input[type="radio"] ~ .cr > .cr-icon,
    .checkbox-inline label input[type="checkbox"] ~ .cr > .cr-icon,
    .radio-inline label input[type="radio"] ~ .cr > .cr-icon {
        transform: scale(3) rotateZ(-20deg);
        opacity: 0;
        transition: all .3s ease-in;
    }

    .checkbox label input[type="checkbox"]:checked ~ .cr,
    .radio label input[type="radio"]:checked ~ .cr,
    .checkbox-inline label input[type="checkbox"]:checked ~ .cr,
    .radio-inline label input[type="radio"]:checked ~ .cr {
        opacity: 1;
        transition: all .3s ease-in;
        background-color: #5cb85c;
        border-color: #4cae4c;
    }

        .checkbox label input[type="checkbox"]:checked ~ .cr > .cr-icon,
        .radio label input[type="radio"]:checked ~ .cr > .cr-icon,
        .checkbox-inline label input[type="checkbox"]:checked ~ .cr > .cr-icon,
        .radio-inline label input[type="radio"]:checked ~ .cr > .cr-icon {
            transform: scale(1) rotateZ(0deg);
            opacity: 1;
            color: #fff;
        }

    .checkbox label input[type="checkbox"]:disabled ~ .cr,
    .radio label input[type="radio"]:disabled ~ .cr,
    .checkbox-inline label input[type="checkbox"]:disabled ~ .cr,
    .radio-inline label input[type="radio"]:disabled ~ .cr {
        opacity: .5;
    }
