I'm trying to find out if bitcoin can replace cash and I'm having an important question about that right now, probably because I don't understand how a wallet's balance is stored:
A wallet's balance is not "stored" anywhere. Bitcoins exist purely as
transactions, which are stored in the blockchain. Each transaction contains a reference to one or more previous transactions, eg, if someone sends you 10 BTC, you can create a transaction that sends those
specific 10 BTC to someone else, after which the transaction in which you received the 10 BTC is considered "spent" and cannot be referenced in future transactions (trying to spend a transaction which has already been spent is called "double-spending" and is invalid). Note that this 10 BTC must be spent entirely in one transaction; if you want to spend (say) 8 BTC, then the transaction will be split into two parts: 8 BTC goes to the person you want to send it to, while the remaining 2 BTC is sent to yourself as "change". A wallet's balance is simply the sum of all unspent transactions that have been sent to it.
Is it possible to make secure bitcoin transactions offline?
No. To verify that a transaction is valid, it is necessary to ensure that the previous transaction(s) which make it up haven't been already spent. This is only possible with an up-to-date copy of the blockchain, and even then it is necessary to wait until the new transaction is mined into a block (at which point it is considered "confirmed"), since until a transaction is confirmed, it may be invalidated by a double-spend in the future.
I know transactions can be stored and flushed to the network later on, but does this mean that offline there is no verification possible of whether the sender actually has enough bitcoins to make the transaction? So... say, there is no internet available. I imagine that if someone who's standing in front of me buys from me and they try to make a transaction they cannot make to me (because their wallet does not have the required bitcoins available), I can only find out the transaction was not valid (it failed) after I exported the transaction online to the bitcoin network? I assume that a negative balance is not possible.
Correct. Without a connection to the Bitcoin network, there is absolutely no way to know whether a transaction sent to you is valid.