.gm-checkbox {
  font-weight: normal;
  margin: 0;
  cursor: pointer;

  &.gm-checkbox-block {
    display: block;
  }
  &.gm-checkbox-inline {
    display: inline-block;
    padding-right: 10px;
  }
  &.gm-checkbox-indeterminate {
    .gm-checkbox-input + .gm-checkbox-span {
      &::after {
        content: '';
        position: absolute;
        width: 0;
        height: 0;
        top: 2px;
        left: 2px;
        border: 4px solid @brand-primary;
      }
    }
  }

  &.disabled {
    cursor: not-allowed;
    color: @gm-color-fourth;

    .gm-checkbox-input + .gm-checkbox-span {
      background: #eee;
    }

    &.gm-checkbox-indeterminate {
      .gm-checkbox-input + .gm-checkbox-span {
        &::after {
          border-color: @gm-border-color;
        }
      }
    }

    .gm-checkbox-input:checked + .gm-checkbox-span {
      border-color: @gm-border-color;
      background: #eee;

      &::after {
        border-left-color: @gm-border-color;
        border-bottom-color: @gm-border-color;
      }
    }
  }

  .gm-checkbox-input {
    display: none;
  }

  .gm-checkbox-input + .gm-checkbox-span {
    position: relative;
    top: 2px;
    background-color: #fff;
    margin-right: 5px;
    -webkit-appearance: none;
    border: 1px solid @gm-border-color;
    display: inline-block;
    width: 14px;
    height: 14px;
    transition: background-color 0.1s linear;
    border-radius: @gm-border-radius;
  }

  .gm-checkbox-input:checked + .gm-checkbox-span {
    border: 1px solid @brand-primary;
    background-color: @brand-primary;

    &::after {
      content: '';
      position: absolute;
      width: 8px;
      height: 5px;
      top: 3px;
      left: 2px;
      border-left: 2px solid #fff;
      border-bottom: 2px solid #fff;
      transform: rotate(-45deg);
    }
  }
}
