.fields {
    width: calc(100% + 1.5em);
    margin-left: -0.75em;
    margin-right: -0.75em;
    -moz-display: flex;
    -webkit-display: flex;
    -ms-display: flex;
    display: flex;
    -moz-align-items: flex-start;
    -webkit-align-items: flex-start;
    -ms-align-items: flex-start;
    align-items: flex-start;
    -moz-flex-direction: row;
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
    -moz-justify-content: flex-start;
    -webkit-justify-content: flex-start;
    -ms-justify-content: flex-start;
    justify-content: flex-start;
    -moz-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}

.fields .field {
    margin: 0; /* получаем от label*/
    padding: 0 0.75em;
    text-align: left;
    box-sizing: border-box;
    flex-shrink: 0;
    flex-grow: 0;
}

.fields .field .field {
    padding: 0;
}

.fields .field.full,
.fields .field.half,
.fields .field.third,
.fields .field.twothirds {

}

/*.field.half > .field.half, .field.third > .field.third, .field.half > .field.third, field.third > .field.half {
    margin: 0;
    padding: 0;
}*/

.fields .field.full {
    width: 100%;
}

.fields .field.half {
    width: 50%;
}

.fields .field.half + .field.half {
}

.fields .field.third {
    width: 33.333%;
}

.fields .field.third + .field.third {
}

.fields .field.third + .field.third + .field.third,
.fields .field.twothirds + .field.third {
}

.fields .field.twothirds {
    width: 66.666%;
}

.fields .field.third + .field.twothirds {
}

@media screen and (max-width: 800px) {
    .fields .half .half {
        width: 100% !important;
        margin: 0 !important;
    }
}

@media screen and (max-width: 500px) {
    .fields .fields,
    .fields .field {
        width: 100% !important;
        margin: 0 !important;
    }
}

input.needcheckdate,
input.needchecktime {
    text-align: center;
}

.field label {
    white-space: nowrap
}