/**
 * Base file for gathering all components styles
 */

/**
 * Base colros
 */

/**
 * Base line height
 */

/**
 * Timing variables
 */

/**
 * Mixins
 */

.happy-color,
.happy-checkbox,
.happy-radio {
  color: #333333;
}

.happy-color > b,
.happy-checkbox > b,
.happy-radio > b {
  background-color: #333333;
}

.happy-color.active,
.active.happy-checkbox,
.active.happy-radio {
  color: #333333;
}

.happy-color.active > b,
.active.happy-checkbox > b,
.active.happy-radio > b {
  background-color: #333333;
}

.happy-color.primary,
.primary.happy-checkbox,
.primary.happy-radio {
  color: #333333;
}

.happy-color.primary > b,
.primary.happy-checkbox > b,
.primary.happy-radio > b {
  background-color: #333333;
}

.happy-color.primary.active,
.primary.active.happy-checkbox,
.primary.active.happy-radio {
  color: #4C86BB;
}

.happy-color.primary.active > b,
.primary.active.happy-checkbox > b,
.primary.active.happy-radio > b {
  background-color: #4C86BB;
}

.happy-color.success,
.success.happy-checkbox,
.success.happy-radio {
  color: #333333;
}

.happy-color.success > b,
.success.happy-checkbox > b,
.success.happy-radio > b {
  background-color: #333333;
}

.happy-color.success.active,
.success.active.happy-checkbox,
.success.active.happy-radio {
  color: #72B889;
}

.happy-color.success.active > b,
.success.active.happy-checkbox > b,
.success.active.happy-radio > b {
  background-color: #72B889;
}

.happy-color.info,
.info.happy-checkbox,
.info.happy-radio {
  color: #333333;
}

.happy-color.info > b,
.info.happy-checkbox > b,
.info.happy-radio > b {
  background-color: #333333;
}

.happy-color.info.active,
.info.active.happy-checkbox,
.info.active.happy-radio {
  color: #5bc0de;
}

.happy-color.info.active > b,
.info.active.happy-checkbox > b,
.info.active.happy-radio > b {
  background-color: #5bc0de;
}

.happy-color.warning,
.warning.happy-checkbox,
.warning.happy-radio {
  color: #333333;
}

.happy-color.warning > b,
.warning.happy-checkbox > b,
.warning.happy-radio > b {
  background-color: #333333;
}

.happy-color.warning.active,
.warning.active.happy-checkbox,
.warning.active.happy-radio {
  color: #F0BB65;
}

.happy-color.warning.active > b,
.warning.active.happy-checkbox > b,
.warning.active.happy-radio > b {
  background-color: #F0BB65;
}

.happy-color.danger,
.danger.happy-checkbox,
.danger.happy-radio {
  color: #333333;
}

.happy-color.danger > b,
.danger.happy-checkbox > b,
.danger.happy-radio > b {
  background-color: #333333;
}

.happy-color.danger.active,
.danger.active.happy-checkbox,
.danger.active.happy-radio {
  color: #ED6B6B;
}

.happy-color.danger.active > b,
.danger.active.happy-checkbox > b,
.danger.active.happy-radio > b {
  background-color: #ED6B6B;
}

.happy-color.white,
.white.happy-checkbox,
.white.happy-radio {
  color: #333333;
}

.happy-color.white > b,
.white.happy-checkbox > b,
.white.happy-radio > b {
  background-color: #333333;
}

.happy-color.white.active,
.white.active.happy-checkbox,
.white.active.happy-radio {
  color: #ffffff;
}

.happy-color.white.active > b,
.white.active.happy-checkbox > b,
.white.active.happy-radio > b {
  background-color: #ffffff;
}

.happy-border-color,
.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.active,
.active.happy-radio {
  border-color: #333333;
}

.happy-border-color.primary,
.primary.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.primary.active,
.primary.active.happy-radio {
  border-color: #4C86BB;
}

.happy-border-color.success,
.success.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.success.active,
.success.active.happy-radio {
  border-color: #72B889;
}

.happy-border-color.info,
.info.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.info.active,
.info.active.happy-radio {
  border-color: #5bc0de;
}

.happy-border-color.warning,
.warning.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.warning.active,
.warning.active.happy-radio {
  border-color: #F0BB65;
}

.happy-border-color.danger,
.danger.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.danger.active,
.danger.active.happy-radio {
  border-color: #ED6B6B;
}

.happy-border-color.white,
.white.happy-radio {
  border-color: rgba(51, 51, 51, 0.8);
}

.happy-border-color.white.active,
.white.active.happy-radio {
  border-color: #ffffff;
}

/**
 * Common
 */

input[type=radio].happy,
input[type=checkbox].happy {
  position: absolute;
  top: -50%;
  left: -50%;
  opacity: 0;
}

label:not(.selectable),
.noselect {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

label {
  cursor: pointer;
  position: relative;
}

/**
 * Checkbox
 */

.happy-checkbox {
  border-color: #333333;
  margin-right: 0.2em;
  position: relative;
  display: inline-block;
  line-height: 20px;
  vertical-align: middle;
  width: 16px;
  height: 16px;
  border-width: 2px;
  border-style: solid;
  cursor: pointer;
  box-sizing: border-box;
  top: -2px;
  -webkit-border-radius: 2.66667px;
  -moz-border-radius: 2.66667px;
  border-radius: 2.66667px;
}

.happy-checkbox svg {
  position: absolute;
  display: block;
  top: -2px;
  left: -2px;
  height: 16px;
  width: 16px;
  opacity: 0;
  -webkit-border-radius: 2.66667px;
  -moz-border-radius: 2.66667px;
  border-radius: 2.66667px;
  background-color: #333333;
  -ms-transform: scale(0.4);
  -webkit-transform: scale(0.4);
  transform: scale(0.4);
  -ms-transition: all 180ms;
  -webkit-transition: all 180ms;
  transition: all 180ms;
}

.happy-checkbox svg rect {
  fill: white;
}

.happy-checkbox svg rect:first-child {
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.happy-checkbox svg rect:nth-child(2) {
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  /* fill: yellow; */
}

.happy-checkbox.thin {
  border-width: 1px;
}

.happy-checkbox.thin svg {
  top: -1px;
  left: -1px;
}

.happy-checkbox.white {
  border-color: #ffffff;
}

.happy-checkbox.gray-border {
  border-color: #858585;
}

.happy-checkbox.primary-border {
  border-color: #4C86BB;
}

.happy-checkbox.success-border {
  border-color: #72B889;
}

.happy-checkbox.info-border {
  border-color: #5bc0de;
}

.happy-checkbox.warning-border {
  border-color: #F0BB65;
}

.happy-checkbox.danger-border {
  border-color: #ED6B6B;
}

.happy-checkbox.primary svg {
  background-color: #4C86BB;
}

.happy-checkbox.success svg {
  background-color: #72B889;
}

.happy-checkbox.info svg {
  background-color: #5bc0de;
}

.happy-checkbox.warning svg {
  background-color: #F0BB65;
}

.happy-checkbox.danger svg {
  background-color: #ED6B6B;
}

.happy-checkbox.white svg {
  background-color: #ffffff;
}

.happy-checkbox.white svg rect {
  fill: #333333;
}

.happy-checkbox.active {
  border-color: transparent;
}

.happy-checkbox.active svg {
  opacity: 1;
  -ms-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1);
}

/**
 * Radio
 */

.happy-radio {
  position: relative;
  display: inline-block;
  line-height: 20px;
  vertical-align: middle;
  width: 16px;
  height: 16px;
  border-width: 2px;
  border-style: solid;
  cursor: pointer;
  box-sizing: border-box;
  top: -2px;
  -webkit-border-radius: 16px;
  -moz-border-radius: 16px;
  border-radius: 16px;
}

.happy-radio.thin {
  border-width: 1.66667px;
}

.happy-radio b {
  position: absolute;
  display: block;
  top: 2px;
  left: 2px;
  bottom: 2px;
  right: 2px;
  opacity: 0;
  -webkit-border-radius: 10.66667px;
  -moz-border-radius: 10.66667px;
  border-radius: 10.66667px;
  -ms-transform: scale(0.4);
  -webkit-transform: scale(0.4);
  transform: scale(0.4);
  -ms-transition: all 180ms;
  -webkit-transition: all 180ms;
  transition: all 180ms;
}

.happy-radio.active b {
  opacity: 1;
  -ms-transform: scale(1);
  -webkit-transform: scale(1);
  transform: scale(1);
}

.happy-radio.focus {
  outline: none;
  -webkit-box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
  -moz-box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
  box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
}