Use could, might and may to show that something is possible in the future, though you are not 100% certain.
She could be late. She might be late. She may be late.
Use could have, might have and may have to show that something was possible in the past up until now.
They haven’t called, but it is possible that they could have already arrived at their hotel.
They might have already arrived at their hotel.
They may have already arrived at their hotel.
Use can and could to talk about general things that are possible.
It can be very hot in Texas in the summer.
You could get heat stroke if you aren’t careful!
Use can’t or cannot to talk about things that are not possible now.
You can’t say that to the President!
You cannot say that to the President!
Use couldn’t have or could not have to talk about things that were not possible in the past.
You couldn’t have know about this. It was top secret!
You could not have known about this. It was top secret!