Welcome to the Browser-Base Game Zone forums!
form { display: inline;margin: 0px; padding: 0px;border: 0px;}
The problem is whitespace in the HTML. Because all of these little tiles are displayed inline, whitespace between them matters. Your <form> tags are indented in your PHP and the tabs are leaking into the HTML. Delete them, as well as the spacing between the hidden inputs.If you had made the tiles all float left they'd be displayed in block box model and the whitespace between them would be ignored.
Its definitely your <form> tag thats causing the spaces. Try adding height: 0px; width: 0px; maybe?
Something is causing the form element to be 29px tall, instead of 25px like the rest of the row.I think it's your hidden input elements in the forms, they all have margins of 2px.
Thanks everyone, I can go an lie down in a darkened room somewhere now.