input[type=checkbox].ace,
input[type=radio].ace {
  opacity: 0;
  position: absolute;
  z-index: 1;
  width: 18px;
  height: 18px;
  cursor: pointer;
}
label input[type=checkbox].ace,
label input[type=radio].ace {
  z-index: -100 !important;
  width: 1px !important;
  height: 1px !important;
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute;
}
input[type=checkbox].ace:checked,
input[type=radio].ace:checked,
input[type=checkbox].ace:focus,
input[type=radio].ace:focus {
  outline: none !important;
}
input[type=checkbox].ace + .lbl,
input[type=radio].ace + .lbl {
  position: relative;
  display: inline-block;
  margin: 0;
  line-height: 20px;
  min-height: 18px;
  min-width: 18px;
  font-weight: normal;
  cursor: pointer;
  font-size: 12px;
}
input[type=checkbox].ace + .lbl::before,
input[type=radio].ace + .lbl::before {
  cursor: pointer;
  font-family: fontAwesome;
  font-weight: normal;
  font-size: 12px;
  color: #32a3ce;
  content: "\a0";
  background-color: #FAFAFA;
  border: 1px solid #c8c8c8;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  /*, inset 0px -15px 10px -12px rgba(0,0,0,0.05);*/
  border-radius: 0;
  display: inline-block;
  text-align: center;
  height: 16px;
  line-height: 14px;
  min-width: 16px;
  margin-right: 9px;
  position: relative;
  top: -1px;
}
input[type=checkbox].ace:checked + .lbl::before,
input[type=radio].ace:checked + .lbl::before {
  display: inline-block;
  content: '\f00c';
  background-color: #F5F8FC;
  border-color: #adb8c0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05), inset 15px 10px -12px rgba(255, 255, 255, 0.1);
}
input[type=checkbox].ace:hover + .lbl::before,
input[type=radio].ace:hover + .lbl::before,
input[type=checkbox].ace + .lbl:hover::before,
input[type=radio].ace + .lbl:hover::before {
  border-color: #ff893c;
}
input[type=checkbox].ace:active + .lbl::before,
input[type=radio].ace:active + .lbl::before,
input[type=checkbox].ace:checked:active + .lbl::before,
input[type=radio].ace:checked:active + .lbl::before {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05), inset 0px 1px 3px rgba(0, 0, 0, 0.1);
}
input[type=checkbox].ace.ace-checkbox-2 + .lbl::before,
input[type=radio].ace.ace-checkbox-2 + .lbl::before {
  box-shadow: none;
}
input[type=checkbox].ace.ace-checkbox-2:checked + .lbl::before,
input[type=radio].ace.ace-checkbox-2:checked + .lbl::before {
  background-color: #f9a021;
  border-color: #f9a021;
  color: #FFF;
}
input[type=checkbox].ace:disabled + .lbl::before,
input[type=radio].ace:disabled + .lbl::before,
input[type=checkbox].ace[disabled] + .lbl::before,
input[type=radio].ace[disabled] + .lbl::before,
input[type=checkbox].ace.disabled + .lbl::before,
input[type=radio].ace.disabled + .lbl::before {
  background-color: #DDD !important;
  border-color: #CCC !important;
  box-shadow: none !important;
  color: #BBB;
}
.checkbox label input[type=checkbox].ace + .lbl,
.radio label input[type=radio].ace + .lbl {
  margin-left: -10px;
}
/**
input[type=radio].ace @{lbl}::before {
	border-radius:100%;
	font-size: 34px;
	font-family: Helvetica, Arial, "Sans-Serif";//looks better but incosistent
	line-height: 13px;
}
*/
input[type=radio].ace + .lbl::before {
  border-radius: 100%;
  font-size: 10px;
  font-family: FontAwesome;
  text-shadow: 0 0 1px #32a3ce;
  line-height: 15px;
  height: 17px;
  min-width: 17px;
}
input[type=radio].ace:checked + .lbl::before {
  content: "\f111";
}
input[type=checkbox].ace.input-lg + .lbl::before {
  border-radius: 4px;
  font-size: 16px;
  height: 24px;
  line-height: 21px;
  min-width: 24px;
  top: auto;
}
input[type=radio].ace.input-lg + .lbl::before {
  font-size: 14px;
  height: 24px;
  line-height: 22px;
  min-width: 24px;
  top: auto;
}
/* CSS3 on/off switches */
input[type=checkbox].ace.ace-switch {
  width: 55px;
  height: 25px;
}
input[type=checkbox].ace.ace-switch + .lbl {
  margin: 0 4px;
  min-height: 24px;
}
input[type=checkbox].ace.ace-switch + .lbl::before {
  font-family: 'Open Sans';
  content: "ON\a0\a0\a0\a0\a0\a0\a0\a0\a0OFF";
  color: #999;
  text-shadow: 0 0 0 #999;
  font-weight: normal;
  font-size: 11px;
  line-height: 17px;
  height: 20px;
  overflow: hidden;
  border-radius: 12px;
  background-color: #F5F5F5;
  -webkit-box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.15);
  border: 1px solid #CCC;
  text-align: left;
  float: left;
  padding: 0;
  width: 52px;
  text-indent: -21px;
  margin-right: 0;
  -webkit-transition: text-indent .3s ease;
  -o-transition: text-indent .3s ease;
  transition: text-indent .3s ease;
  top: auto;
}
input[type=checkbox].ace.ace-switch + .lbl::after {
  font-family: 'Open Sans';
  content: 'III';
  font-size: 12px;
  font-weight: normal;
  letter-spacing: 0;
  color: #AAA;
  text-shadow: none;
  background-color: #FFF;
  border-radius: 100%;
  width: 22px;
  height: 22px;
  line-height: 22px;
  text-align: center;
  position: absolute;
  top: -2px;
  left: -3px;
  -webkit-box-shadow: 0px 1px 1px 1px rgba(0,0,0,.3);
  box-shadow: 0px 1px 1px 1px rgba(0,0,0,.3);
  -webkit-transition: left .3s ease;
  -o-transition: left .3s ease;
  transition: left .3s ease;
}
input[type=checkbox].ace.ace-switch:checked + .lbl::before {
  text-indent: 8px;
  color: #FFF;
  text-shadow: 0 0 0 #FFF;
  background-color: #8ab2c9;
  border-color: #6a8ca8;
}
input[type=checkbox].ace.ace-switch:checked + .lbl::after {
  left: 34px;
  background-color: #FFF;
  color: #98A0A5;
}
input[type=checkbox].ace.ace-switch.ace-switch-2 + .lbl::before {
  content: "YES\a0\a0\a0\a0\a0\a0\a0\a0\a0NO";
}
input[type=checkbox].ace.ace-switch.ace-switch-3 + .lbl::after {
  font-family: FontAwesome;
  font-size: 13px;
  line-height: 22px;
  content: "\f00d";
  top: -1px;
  text-shadow: none;
  padding: 0;
  text-align: center;
  color: #BBB;
  letter-spacing: 0;
}
input[type=checkbox].ace.ace-switch.ace-switch-3:checked + .lbl::after {
  content: "\f00c";
  color: #8AB2C9;
  text-shadow: none;
}
input[type=checkbox].ace.ace-switch.ace-switch-4,
input[type=checkbox].ace.ace-switch.ace-switch-5 {
  width: 60px;
}
input[type=checkbox].ace.ace-switch.ace-switch-4 + .lbl::before,
input[type=checkbox].ace.ace-switch.ace-switch-5 + .lbl::before {
  content: "ON\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0OFF";
  font-size: 12px;
  line-height: 21px;
  height: 24px;
  overflow: hidden;
  border-radius: 12px;
  background-color: #8b9aa3;
  border: 1px solid #8b9aa3;
  color: #FFF;
  width: 56px;
  text-indent: -25px;
  text-shadow: 0 0 0 #FFF;
  display: inline-block;
  position: relative;
  box-shadow: none;
  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}
input[type=checkbox].ace.ace-switch.ace-switch-4 + .lbl::after,
input[type=checkbox].ace.ace-switch.ace-switch-5 + .lbl::after {
  content: 'III';
  font-size: 11px;
  position: absolute;
  top: 2px;
  left: 2px;
  letter-spacing: 0;
  width: 20px;
  height: 20px;
  line-height: 19px;
  text-shadow: none !important;
  color: #939393;
  background-color: #FFF;
  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
}
input[type=checkbox].ace.ace-switch.ace-switch-4:checked + .lbl::before,
input[type=checkbox].ace.ace-switch.ace-switch-5:checked + .lbl::before {
  text-indent: 9px;
  background-color: #468fcc;
  border-color: #468FCC;
}
input[type=checkbox].ace.ace-switch.ace-switch-4:checked + .lbl::after,
input[type=checkbox].ace.ace-switch.ace-switch-5:checked + .lbl::after {
  left: 34px;
  background-color: #FFF;
  color: #848484;
}
input[type=checkbox].ace.ace-switch.ace-switch-5 + .lbl::before {
  content: "YES\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0NO";
}
input[type=checkbox].ace.ace-switch.ace-switch-5:checked + .lbl::before {
  text-indent: 8px;
}
input[type=checkbox].ace.ace-switch.ace-switch-6 + .lbl {
  position: relative;
}
input[type=checkbox].ace.ace-switch.ace-switch-6 + .lbl::before {
  font-family: FontAwesome;
  content: "\f00d";
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  box-shadow: none;
  border-width: 0;
  font-weight: lighter;
  font-size: 16px;
  border-radius: 12px;
  display: inline-block;
  background-color: #888;
  color: #F2F2F2;
  width: 52px;
  height: 22px;
  line-height: 21px;
  text-indent: 32px;
  -webkit-transition: background 0.1s ease;
  -o-transition: background 0.1s ease;
  transition: background 0.1s ease;
}
input[type=checkbox].ace.ace-switch.ace-switch-6 + .lbl::after {
  content: '';
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  position: absolute;
  top: 2px;
  left: 3px;
  border-radius: 12px;
  box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  width: 18px;
  height: 18px;
  text-align: center;
  background-color: #F2F2F2;
  border: 4px solid #F2F2F2;
  -webkit-transition: left 0.2s ease;
  -o-transition: left 0.2s ease;
  transition: left 0.2s ease;
}
input[type=checkbox].ace.ace-switch.ace-switch-6:checked + .lbl::before {
  content: "\f00c";
  text-indent: 6px;
  color: #FFF;
  border-color: #b7d3e5;
  background-color: #ff893c;
}
input[type=checkbox].ace.ace-switch.ace-switch-6:checked + .lbl::after {
  left: 32px;
  background-color: #FFF;
  border: 4px solid #FFF;
  text-shadow: 0 -1px 0 rgba(0, 200, 0, 0.25);
}
input[type=checkbox].ace.ace-switch.ace-switch-7 {
  width: 75px;
}
input[type=checkbox].ace.ace-switch.ace-switch-7 + .lbl {
  position: relative;
}
input[type=checkbox].ace.ace-switch.ace-switch-7 + .lbl::before {
  content: "OFF\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0ON";
  font-weight: bolder;
  font-size: 13px;
  line-height: 20px;
  background-color: #FFF;
  border: 2px solid #AAA;
  border-radius: 0;
  box-shadow: none;
  color: #AAA;
  width: 74px;
  height: 26px;
  line-height: 22px;
  overflow: hidden;
  text-indent: 5px;
  display: inline-block;
  position: relative;
  -webkit-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
input[type=checkbox].ace.ace-switch.ace-switch-7 + .lbl::after {
  content: '\f00d';
  font-family: FontAwesome;
  font-size: 16px;
  position: absolute;
  top: 3px;
  left: 39px;
  width: 32px;
  height: 20px;
  line-height: 18px;
  text-align: center;
  padding: 0;
  text-indent: 0;
  background-color: #AAA;
  color: #FFF;
  border-radius: 0;
  box-shadow: none;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
input[type=checkbox].ace.ace-switch.ace-switch-7:checked + .lbl::before {
  color: #468fcc;
  background-color: #FFF;
  text-indent: -28px;
  border-color: #6fb3e0;
}
input[type=checkbox].ace.ace-switch.ace-switch-7:checked + .lbl::after {
  left: 3px;
  content: '\f00c';
  background-color: #468fcc;
  color: #FFF;
}
input[type=checkbox].ace.ace-switch + .lbl[data-lbl]::before {
  content: attr(data-lbl);
}
input[type=checkbox].ace.ace-switch.btn-empty + .lbl::after {
  content: "";
}
input[type=checkbox].ace.ace-switch.btn-rotate + .lbl::after {
  content: "\2261";
  line-height: 20px;
  font-size: 17px;
}
input[type=checkbox].ace.ace-switch-4.btn-rotate + .lbl::after,
input[type=checkbox].ace.ace-switch-5.btn-rotate + .lbl::after {
  line-height: 17px;
}
input[type=checkbox].ace.ace-switch.btn-flat + .lbl::before,
input[type=checkbox].ace.ace-switch.btn-flat + .lbl::after {
  border-radius: 0 !important;
}
input[type=checkbox].ace.ace-switch.ace-switch-4 + .lbl::before,
input[type=checkbox].ace.ace-switch.ace-switch-5 + .lbl::before {
  text-indent: -24px;
}
input[type=checkbox].ace.ace-switch.ace-switch-4:checked + .lbl::before,
input[type=checkbox].ace.ace-switch.ace-switch-5:checked + .lbl::before {
  text-indent: 7px;
}