Lettuce is the moisture barrier you're missing.
The trick to stop soggy bread is a barrier—lettuce, a slice of cheese, or a fat-based spread like butter or mayo—between the bread and the wet ingredients.
Don’t just lay tomato or pickles straight on the bread. Their moisture seeps into the crumb and turns it into paste. A full lettuce leaf is the classic move because it’s cheap and works. A schmear of butter or mayo also works because fat doesn’t mix with water. If you’re using cheese, put the tomato on the cheese side, not the bread side.
If you have no time for a barrier, at least pat the tomato slices dry with a paper towel, and do the same with pickles. Toasting the bread also helps—the toasted crust holds up longer against moisture.
Pack it like tomorrow-you has to eat it, not just transport it.
