:root{
    --input-height-base: 34px;
    --input-height-small: 30px;
    --input-height-large: 46px;
    --padding-base-horizontal: 12px;
    --grid-gutter-width: 30px;
    --screen-sm-min: 768px;
}
.has-feedback   .form-control{
    padding-right: var(--input-height-base);
}
.has-feedback .form-control.input-sm,
.has-feedback .form-group-sm .form-control{
    padding-right: var(--input-height-small);
}
.has-feedback .form-control.input-lg,
.has-feedback .form-group-lg .form-control {
    padding-right: var(--input-height-large);
}

.has-feedback-left .form-control {
    padding-right: var(--padding-base-horizontal);
    padding-left: var(--input-height-base);
}
.has-feedback-left .form-control.input-sm,
.has-feedback-left .form-group-sm .form-control{
    padding-left: var(--input-height-small);
}
.has-feedback-left .form-control.input-lg,
.has-feedback-left .form-group-lg .form-control {
    padding-left: var(--input-height-large);
}

.has-feedback-left .form-control-feedback {
    left: 0;
}

.form-control-feedback {
    line-height: var(--input-height-base) !important;
}
.input-sm + .form-control-feedback,
.form-horizontal .form-group-sm .form-control-feedback {
    width: var(--input-height-small);
    height: var(--input-height-small);
    line-height: var(--input-height-small) !important;
}
.input-lg + .form-control-feedback,
.form-horizontal .form-group-lg .form-control-feedback {
    width: var(--input-height-large);
    height: var(--input-height-large);
    line-height: var(--input-height-large) !important;
}

.has-feedback label .sr-only ~ .form-control-feedback,
.has-feedback label .sr-only ~ div .form-control-feedback {
    top: 0;
}

@media (min-width: var(--screen-sm-min)) {
    .form-inline .inline-feedback {
        position: relative;
        display: inline-block;
    }

    .form-inline .has-feedback .form-control-feedback {
        top: 0;
    }
}

.form-horizontal .has-feedback-left .form-control-feedback {
    left: calc(var(--grid-gutter-width) / 2);
}