@mixin status-color($color-light, $color-main, $color-dark) {
  color: $color-main;
  border-color: $color-main;

  &:not(span):hover {
    background-color: $color-light;
    color: $color-dark;
    border-color: $color-dark;

    svg {
      fill: $color-dark;
    }
  }

  svg {
    fill: $color-main;
  }
}

.ci-status {
  padding: 2px 7px 4px;
  border: 1px solid $gray-darker;
  white-space: nowrap;
  border-radius: 4px;

  &:hover,
  &:focus {
    text-decoration: none;
  }

  svg {
    height: 13px;
    width: 13px;
    position: relative;
    top: 2px;
    overflow: visible;
  }

  &.ci-failed {
    @include status-color($red-50, $red-500, $red-600);
  }

  &.ci-success {
    @include status-color($green-50, $green-500, $green-700);
  }

  &.ci-canceled,
  &.ci-disabled,
  &.ci-manual {
    color: $gl-text-color;
    border-color: $gl-text-color;

    &:not(span):hover {
      background-color: rgba($gl-text-color, .07);
    }
  }

  &.ci-pending,
  &.ci-failed_with_warnings,
  &.ci-success_with_warnings {
    @include status-color($orange-50, $orange-500, $orange-700);
  }

  &.ci-info,
  &.ci-running {
    @include status-color($blue-50, $blue-500, $blue-600);
  }

  &.ci-created,
  &.ci-skipped {
    color: $gl-text-color-secondary;
    border-color: $gl-text-color-secondary;

    &:not(span):hover {
      background-color: rgba($gl-text-color-secondary, .07);
    }

    svg {
      fill: $gl-text-color-secondary;
    }
  }
}

.visible-xs-inline {
  .ci-status-link {
    position: relative;
    top: 2px;
    left: 5px;
  }
}

.ci-status-link {
  svg {
    overflow: visible;
  }
}
