From the looks of it, we’re calling wp_enqueue_style() at a point that’s too late to make it into the header. However, instead of trying to load another css file, I’m sticking with my recommendation for stronger selectors. IDs are notably strong in specificity with CSS.
Continuing with my example of twentysixteen, the field is getting a width of 100% because of this selector matching the email field:
input[type="date"], input[type="time"], input[type="datetime-local"], input[type="week"], input[type="month"], input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea
At the same time, twentysixteen has a parent <div id=”primary” class=”content-area”> wrapping the contact form output, and dropping in #primary input[type="email"] { width: 100%; }
it in at the end of the twentysixteen stylesheet took over. Should be completely possible to not load a custom css file so late.
We are still looking into the late loading, no matter what I say above, but above should help ease the burden of compatibility with themes.