You need to fix your width. It's very strange that you are building everything as a table and using td even for headers. I will recommend you to think about table restructuring.
However for the current code you can go for the following css
table td
{
min-width:100px; //change width according to your own need
display:inline-block;
}
By default table has display:table-cell property. But it doesn't accomodate width attribute very well. So I am changing it to display:inline-block.