I only very quickly glanced at your coding, so sorry if I've missed it, but I don't see anywhere you've set the width for each column in the big table. If you don't set a width, either in pixels or as a percent of the whole, the columns will automatically adjust themselves based on the amount of text inside. I'd put a width="25%" inside each TD tag of your main table.