Why didn't Hashem accept קין's קרבן?
The ספר העיקרים has an intersting p'shat. He says that קין and הבל had an idealogical dispute. קין held that man was on the same level as animals and therefore man had no right to use animals. Because of this, he was an עובד אדמה and brought produce as his korban and refused to bring an animal korban. הבל on the other hand, held that man was allowed to use animals and therefore he was a shephard and he brought animals as his korban. Hashem accepted הבל's korban because he wanted to show קין that he was wrong, that man is on a different level then animals and is allowed to use the animals for his benefit.
This is an important lesson for our times where there is a growing movement that claims that animals have the same rights as people etc.