Three
Feeling selfish is not proof that you are.
Guilt shows up on schedule, usually within a minute of saying no. It tends to say the same three things, and it is not a reliable narrator.
It was useful once
If being agreeable kept things calm at home or at school, guilt is the alarm that used to keep you safe. It still fires, even in situations where nothing bad will happen.
New is not the same as wrong
The first few times you hold a limit, it feels unfamiliar, and unfamiliar reads as bad. Discomfort is not evidence that you have hurt someone.
Their reaction is theirs
You can be sorry that someone is disappointed without being the cause of it. Being the person who says no is not the same as being the person who did something wrong.
What to do with it
You do not have to argue the guilt away before you act. You can hold the boundary and feel bad at the same time โ awkwardly, imperfectly, with your stomach in a knot. The feeling passes faster than the resentment would have.
What helps: not reopening the conversation to explain yourself again. Explaining twice usually has more to do with easing your own discomfort than with the other person's understanding.
What also helps: noticing how you feel a day later, not five minutes later. The five-minute version is almost always the worst reading.
A quick check
If you want to know whether a no was unfair, ask what it required of the other person. A boundary asks someone to accept a limit. Being unfair means taking something from them, or punishing them for a decision they were allowed to make.
Most of the nos that keep people awake at night are the first kind.