This is easily possible as the SD library for itself will use almost half of the RAM of an UNO. Your code wastes a lot of memory by not using the F() macro for string literals.
No, the IDE just tells you how much flash the sketch uses and how much RAM the global variables need. It never says that there is still space.