/* 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 {
  display: table;
  padding: 10px 12px;
  margin-bottom: 0;
  font-size: 1rem;
  line-height: 1;
  color: #76838f;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-color: #f3f7f9;
  border-radius: 0.215rem;
  transition: background-color .25s; }

/* Stylish text inside label */
input.labelauty + label > span.labelauty-unchecked, input.labelauty + label > span.labelauty-checked {
  display: inline-block;
  line-height: 16px;
  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;
  vertical-align: bottom;
  background-repeat: no-repeat;
  background-position: left center;
  transition: background-image .5s linear; }

/* 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: #76838f;
  background-color: #e4eaec; }

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: #3e8ef7; }

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

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("input-unchecked.png"); }

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

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

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