label {
display: inline-block;
vertical-align: middle;
width: 45%;
box-sizing: border-box;
}
input:not([type="radio"]) {
display: block;
width: 100%;
}
В HTML у вас чуть-чуть ошибочка, там не совсем правильно обрамили радио, нужно открывающий тег перенести ниже, за предыдущий label.
Если нужно выровнять в одну горизонтальную линию еще и надписи к полям ввода, текст надписи тоже нужно обрамить тегом и сделать его вместе с input display: inline-block, а так же зафиксировать ширину, чтобы это всё не плавало.