Vertical alignment only works with inline or inline-block elements, and it's only relative to other inline[-block] elements. Because you float the label, it becomes a block element.
The simplest solution in your case is to set the label to display: inline-block
and add vertical-align: middle
to the labels and the inputs. (You might find that the height of the text is such that vertical align won't make any difference anyway.)