
/**
 * Checkbox
 * --------------------------------------------------
 */

.checkbox {
  // set the color defaults
  @include checkbox-style($checkbox-off-border-default, $checkbox-on-bg-default);

  position: relative;
  display: inline-block;
  padding: ($checkbox-height / 4) ($checkbox-width / 4);
  cursor: pointer;

  &.checkbox-light  {
    @include checkbox-style($checkbox-off-border-light, $checkbox-on-bg-light);
  }
  &.checkbox-stable  {
    @include checkbox-style($checkbox-off-border-stable, $checkbox-on-bg-stable);
  }
  &.checkbox-positive  {
    @include checkbox-style($checkbox-off-border-positive, $checkbox-on-bg-positive);
  }
  &.checkbox-calm  {
    @include checkbox-style($checkbox-off-border-calm, $checkbox-on-bg-calm);
  }
  &.checkbox-assertive  {
    @include checkbox-style($checkbox-off-border-assertive, $checkbox-on-bg-assertive);
  }
  &.checkbox-balanced  {
    @include checkbox-style($checkbox-off-border-balanced, $checkbox-on-bg-balanced);
  }
  &.checkbox-energized  {
    @include checkbox-style($checkbox-off-border-energized, $checkbox-on-bg-energized);
  }
  &.checkbox-royal  {
    @include checkbox-style($checkbox-off-border-royal, $checkbox-on-bg-royal);
  }
  &.checkbox-dark  {
    @include checkbox-style($checkbox-off-border-dark, $checkbox-on-bg-dark);
  }
}

.checkbox input {
  position: relative;
  width: $checkbox-width;
  height: $checkbox-height;
  border: 0;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;

  &:before {
    /* what the checkbox looks like when its not checked */
    display: table;
    width: 100%;
    height: 100%;
    border-radius: $checkbox-border-radius;
    background: $checkbox-off-bg-color;
    content: ' ';
    transition: background-color .1s ease-in-out;
  }
}

/* the checkmark within the box */
.checkbox input:after {
  @include transition(opacity .05s ease-in-out);
  @include rotate(-45deg);
  position: absolute;
  top: 30%;
  left: 26%;
  display: table;
  width: ($checkbox-width / 2) + 1;
  height: ($checkbox-width / 3) + 1;
  border: $checkbox-check-width solid $checkbox-check-color;
  border-top: 0;
  border-right: 0;
  content: ' ';
  opacity: 0;
}

.grade-c .checkbox input:after {
  @include rotate(0);
  top: 3px;
  left: 4px;
  border: none;
  color: $checkbox-check-color;
  font-weight: bold;
  font-size: 20px;
  content: '\2713';
}

/* what the checkmark looks like when its checked */
.checkbox input:checked:after {
  opacity: 1;
}

/* make sure item content have enough padding on left to fit the checkbox */
.item-checkbox {
  padding-left: ($item-padding * 2) + $checkbox-width;

  &.active {
    box-shadow: none;
  }
}

/* position the checkbox to the left within an item */
.item-checkbox .checkbox {
  @include display-flex();
  @include align-items(center);
  position: absolute;
  top: 0;
  left: $item-padding / 2;
  z-index: $z-index-item-checkbox;
  height: 100%;
}
