.#{$prefix}form-item {
    display: table;
    table-layout: fixed;
    // Setting border-spacing to 0 ensures that fields don't inherit border-spacing from
    // above them if they are placed inside of a table.
    border-spacing: 0;
    border-collapse: separate;
}

.#{$prefix}form-item-label {
    overflow: hidden;
}

.#{$prefix}form-item.#{$prefix}form-item-no-label > .#{$prefix}form-item-label {
    display: none;
}

.#{$prefix}form-item-label,
.#{$prefix}form-item-body {
    display: table-cell;
}

.#{$prefix}form-item-body {
    vertical-align: middle;
    height: 100%; // grow if field height is not shrink wrap
}

.#{$prefix}form-item-label-inner {
    display: inline-block;
}

.#{$prefix}form-item-label-top {
    display: table-row;
    height: 1px; // shrink wrap height
    > .#{$prefix}form-item-label-inner {
        display: table-cell;
    }
}
.#{$prefix}form-item-label-top-side-error:after {
    display: table-cell;
    content: '';
}

.#{$prefix}form-item-label-right {
    text-align: right;
}

.#{$prefix}form-error-wrap-side {
    display: table-cell;
    vertical-align: middle;
}

.#{$prefix}form-error-wrap-under {
    display: table-row;
    height: 1px; // shrink wrap height
    > .#{$prefix}form-error-msg {
        display: table-cell;
    }
}

.#{$prefix}form-error-wrap-under-side-label:before {
    display: table-cell;
    content: '';
}

.#{$prefix}form-invalid-icon {
    overflow: hidden;
    ul {
        display: none;
    }
}

