Trying to assign margin OR padding to form elements is most always a disaster cross-browser, as not only do no two browsers start with the same values, they also do not apply padding the same way. FF and IE have default paddings, one in px, the other in EM, that no amount of playing with padding will EVER change... and both of those browsers treat them as some form of 'special' element when applying width/height... FF obeying height and ignoring line-height, IE obeying line-height and ignoring height... Opera actually treats them as ordinary SHOCK inline-block ... and don't even get me STARTED about what the webkit nimrods have done with form elements.
My advice -- don't even TRY to apply margins, padding, or any other type of measurement to form elements and expect it to match across browsers, because it won't. The BEST you can hope for is to pad their parent element and prey that they all end up the same size on their own. Anyone tells you otherwise, they have no clue what they are talking about.
If you actually care about supporting legacy browsers, forget HTML 5 even exists... If you care about making clean accessible minimalist code that loads quickly... forget HTML 5 exists... Newer isn't always better... much less ready for primetime.
-- edit -- Oh, you MIGHT also try floating the inputs and/or throwing different vertical-alignments at them AND their parent until it all lines up. INPUT and SELECT are... kind-of inline-block but not really in FF/IE, so their behavior with vertical-align is... quirky.