/* Prevent text and blocks selection */
input.labelauty + label ::-moz-selection
{
    background-color: rgba(255, 255, 255, 0);
}
input.labelauty + label ::selection
{
    background-color: rgba(255, 255, 255, 0);
}

input.labelauty + label ::-moz-selection
{
    background-color: rgba(255, 255, 255, 0);
}

/* Hide original checkboxes. They are ugly! */
input.labelauty
{
    display: none !important;
}

/*
 * Let's style the input
 * Feel free to work with it as you wish!
 */
input.labelauty + label
{
    font-size: 1rem;
    line-height: 1;

    display: table;

    margin-bottom: 0;
    padding: 10px 12px;

    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; 
    -webkit-transition: background-color .25s;
       -moz-transition: background-color .25s;
         -o-transition: background-color .25s;
            transition: background-color .25s;

    color: #757575;
    border-radius: .215rem;
    background-color: #eee;
}

/* Stylish text inside label */
input.labelauty + label > span.labelauty-unchecked,
input.labelauty + label > span.labelauty-checked
{
    line-height: 16px;

    display: inline-block;

    vertical-align: bottom;
}

/* Stylish icons inside label */
input.labelauty + label > span.labelauty-unchecked-image,
input.labelauty + label > span.labelauty-checked-image
{
    display: inline-block;

    width: 16px;
    height: 16px;

    -webkit-transition: background-image .5s linear;
       -moz-transition: background-image .5s linear;
         -o-transition: background-image .5s linear; 
            transition: background-image .5s linear;
    vertical-align: bottom;

    background-repeat: no-repeat;
    background-position: left center;
}

/* When there's a label, add a little margin to the left */
input.labelauty + label > span.labelauty-unchecked-image + span.labelauty-unchecked,
input.labelauty + label > span.labelauty-checked-image + span.labelauty-checked
{
    margin-left: 7px;
}

/* When not Checked */
input.labelauty:not(:checked):not([disabled]) + label:hover
{
    color: #757575; 
    background-color: #e0e0e0;
}

input.labelauty:not(:checked) + label > span.labelauty-checked-image
{
    display: none;
}

input.labelauty:not(:checked) + label > span.labelauty-checked
{
    display: none;
}

/* When Checked */
input.labelauty:checked + label
{
    color: #fff; 
    background-color: #3949ab;
}

input.labelauty:checked:not([disabled]) + label:hover
{
    background-color: #3f51b5;
}

input.labelauty:checked + label > span.labelauty-unchecked-image
{
    display: none;
}

input.labelauty:checked + label > span.labelauty-unchecked
{
    display: none;
}

input.labelauty:checked + label > span.labelauty-checked
{
    display: inline-block;
}

input.labelauty.no-label:checked + label > span.labelauty-checked
{
    display: block;
}

/* When Disabled */
input.labelauty[disabled] + label
{
    opacity: .7;
}

/* Add a background to (un)checked images */
input.labelauty + label > span.labelauty-unchecked-image
{
    background-image: url('images/input-unchecked.png');
}

input.labelauty + label > span.labelauty-checked-image
{
    background-image: url('images/input-checked.png');
}

input.to-labelauty + label
{
    min-width: 160px;
}

input.to-labelauty-icon + label
{
    display: inline-block;

    padding: 8px 8px;
}
input.to-labelauty-icon + label + span
{
    margin-left: 7px;
}
