Crying isn't going to do anything but bring you down more. Stop it. Realize that you're nowhere near as bad of a person as she is making you out to be, and just don't let the people she is telling this shit to see that in you.
It's not true.
None of it.
You don't steal. There is nothing you did wrong. You used YOUR money to get yourself food, not hers. It was a lie. Notice how she doesn't say this stuff when you're around? Because she doesn't want to get caught. Sure, you forgot to give the change back from lunch when you first got home, but you didn't plan on keeping it, and she knows it. She just wants to make you look bad for her benefit.
You know that you would gladly get up and go shopping with her. You know that you weren't sleeping until two in the afternoon, and that is all that matters. You know you were up. The only reason you didn't go anywhere was because SHE didn't want to go. SHE is the lazy one, not you.
What the hell? You know you're not greedy. You didn't ask to take her blanket so you could be warm, there was already a cover on the bed. Another lie you have to get past. You would never ask for someone else's blanket when you have one that is just as good.
Actually eating at the table is YOUR habit. And a GOOD habit to have. SHE doesn't do it, so why in the hell would anyone believe that she had to FORCE you to do it? That's bullshit! You and her both know she didn't say anything but 'goodnight' to you when you went downstairs to eat. She didn't care. The only reason she cares now is because she ran out of things to lie about. Forget it. Get over it. Let it go.
Only until June. That's all you have left. You'll be leaving soon. No one can get you in California. Bite your tongue and deal, or grow a pair and say something. Mom can't do anything from three hours away. Stop. Crying.