/**
 * Styles for all components
 */
.osi-form-element{
    position:relative;
}

.osi-form-control,
.osi-form-control:focus{
    border: none;
    border-radius: 0px;
    outline: none;
    box-shadow: none;
    margin-bottom:16px;
    display: block;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #555;
}


.osi-form-control[disabled="disabled"]{
    opacity: .85;
    cursor: not-allowed!important;
}

textarea.osi-form-control,
textarea.osi-form-control:focus{
    resize: none;
    height:auto;
    min-height:34px;
}

.osi-form-control{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2);
    background-size: 0 2px, 100% 1px;
    background-repeat: no-repeat;
    background-position: center bottom, center calc(100% - 1px);
    background-color: rgba(0, 0, 0, 0);
    transition: background 0.3s ease-out;
}
.osi-form-control.osi-focus,
.osi-form-control:focus{
    background-size: 100% 2px, 0 1px;
    background-position: center bottom, center calc(100% - 1px);
}

.osi-form-element .dropdown-menu{
    box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.2);
    border: none;
    border-radius: 0px;
    margin-top:-16px;
    max-height:300px;
    overflow: hidden;
    overflow-y:auto;
}

.osi-form-element .dropdown-menu .dropdown-sub-menu{
    margin-left: -45px;
}


.osi-form-element ul.dropdown-menu li{
    padding: 3px 7px;
    transition: background 0.3s ease;
    cursor:pointer;
}

.osi-form-element ul.dropdown-sub-menu li{
    padding: 3px 7px;
    transition: background 0.3s ease;
    cursor:pointer;
    font-size: 14px;
    text-align: left;
    list-style: none;
}


.osi-form-element ul.dropdown-menu li:hover{
    background: #009688;
}
.osi-date .osi-form-control,
.osi-select .osi-form-control{
    padding-right:20px;
}

/*override number spinners*/
.osi-form-control[type=number]::-webkit-inner-spin-button,
.osi-form-control[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    margin: 0;
}
/*override number spinners*/
.osi-form-control[type=number]{
    -moz-appearance:textfield;
}

.osi-form-control.osi-form-control-percent{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/perc.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}

.osi-form-control.osi-form-control-percent:focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/perc_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

form.ng-invalid.ng-submitted .osi-form-control.osi-form-control-percent.ng-invalid,
.osi-form-control.osi-form-control-percent.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/perc_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}
form.ng-invalid.ng-submitted .osi-form-control.osi-form-control-percent.ng-invalid:focus,
.osi-form-control.ng-invalid.osi-form-control-percent.ng-touched:focus{
    background-size: 100% 2px, 0 1px, auto;
}

.osi-form-control.osi-form-control-euro{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/euro.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}

.osi-form-control.osi-form-control-euro:focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/euro_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

form.ng-invalid.ng-submitted .osi-form-control.osi-form-control-euro.ng-invalid,
.osi-form-control.osi-form-control-euro.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/euro_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}
form.ng-invalid.ng-submitted .osi-form-control.osi-form-control-euro.ng-invalid:focus,
.osi-form-control.ng-invalid.osi-form-control-euro.ng-touched:focus{
    background-size: 100% 2px, 0 1px, auto;
}

/**
 *  Validation
 */

form.ng-invalid.ng-submitted .osi-form-control.ng-invalid,
.osi-form-control.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336);
    background-size: 0 2px, 100% 1px;
}

form.ng-invalid.ng-submitted .osi-form-control.ng-invalid:focus,
.osi-form-control.ng-invalid.ng-touched:focus{
    background-size: 100% 2px, 0 1px;
}

.osi-invalid-msg{
    visibility: hidden;
    color: #f44336;
    height: 16px;
    display: block;
    margin-top:-16px;
    font-size:12px;

}


.osi-warn-msg{
    visibility: hidden;
    color: #724e10;
    height: 16px;
    display: block;
    margin-top:-16px;
    font-size:12px;

}

form.ng-invalid.ng-submitted .osi-form-control.ng-invalid ~ .osi-invalid-msg,
.osi-form-control.osi-validate-on-input.ng-invalid.ng-dirty ~ .osi-invalid-msg,
.osi-form-control.ng-invalid.ng-touched ~ .osi-invalid-msg{
    visibility: visible;
}

.osi-info-msg{
    min-height: 16px;
    height: auto;
    display: block;
    margin-top:-16px;
    color:#a2a2a2;
    font-size:12px;
}

form.ng-invalid.ng-submitted .osi-form-control.ng-invalid ~ .osi-info-msg,
.osi-form-control.osi-validate-on-input.ng-invalid.ng-dirty ~ .osi-info-msg,
.osi-form-control.ng-invalid.ng-touched ~ .osi-info-msg{
    visibility: hidden;
}

/**
 * Styles for OSI-SELECT
 */
.osi-form-element.osi-combobox .osi-form-control,
.osi-form-element.osi-select .osi-form-control{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/select.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}

.osi-form-element.osi-combobox .osi-form-control:focus,
.osi-form-element.osi-select .osi-form-control:focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/select_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

form.ng-invalid.ng-submitted .osi-form-element.osi-combobox .osi-form-control.ng-invalid,
.osi-form-element.osi-combobox .osi-form-control.ng-invalid.ng-touched,
form.ng-invalid.ng-submitted .osi-form-element.osi-select .osi-form-control.ng-invalid,
.osi-form-element.osi-select .osi-form-control.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/select_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

form.ng-invalid.ng-submitted .osi-form-control.ng-invalid:focus,
.osi-form-element.osi-select .osi-form-control.ng-invalid.ng-touched:focus{
    background-size: 100% 2px, 0 1px, auto;
}

/**
 * Styles for OSI-MULTI-SELECT
 */
.osi-form-element.osi-multi-select ul.dropdown-menu li:hover{
    background: #f0f0f0;
}

/**
 * Styles for OSI-TAGS
 */
.osi-form-element.osi-tags .osi-form-control{
    cursor: text;
    height:auto;
    min-height:34px;
    overflow:hidden;
}

.osi-form-element.osi-tags .osi-form-control .osi-tags-editor,
.osi-form-element.osi-tags .osi-form-control .osi-tags-editor:focus{
    outline:none;
    display:inline-block;
    min-width: 20px;
}

/*.osi-form-element.osi-tags .osi-tags-tag{*/
/*cursor: pointer;*/
/*transition: all .1s ease;*/
/*!*white-space: nowrap;*!*/
/*!*padding:5px;*!*/
/*margin-right:10px;*/
/*}*/

/*.osi-form-element.osi-tags .osi-tags-tag:hover{*/

/*margin-right:0px;*/
/*font-weight:bold;*/
/*display:inline-block;*/
/*}*/
/*.osi-form-element.osi-tags .osi-tags-tag:hover .osi-comma{*/
/*display:none;*/
/*}*/
.osi-form-element.osi-tags .osi-tags-tag i{
    transition: all .3s ease;
    margin-left:5px;
    cursor:pointer;
}

.osi-form-element.osi-tags .osi-tags-tag i:hover{
    background-color:rgba(0, 0, 0, 0.075);

}



/**
 * Styles for OSI-DATE
 */

.osi-form-element.osi-date .osi-form-control{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/date.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}
.osi-form-element.osi-date .osi-form-control:focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/date_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

form.ng-invalid.ng-submitted .osi-form-element.osi-date .osi-form-control.ng-invalid,
.osi-form-element.osi-date .osi-form-control.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/date_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}


.osi-form-element.osi-date .osi-date-display{
    position:relative;
    width:100%;
    height:50px;
    padding: 6px 12px;

}

.osi-form-element.osi-date .osi-form-control{
    position:absolute;
    top:0px;
    left:0px;
    color:transparent;
    background-color:transparent;
}

.osi-form-element.osi-date .osi-info-msg,
.osi-form-element.osi-date .osi-invalid-msg{
    position:absolute;
    top: 34px;
    margin-top:0;
    margin-left:-12px;
}

.osi-form-element .bootstrap-datetimepicker-widget table th.prev,
.osi-form-element .bootstrap-datetimepicker-widget table th.picker-switch,
.osi-form-element .bootstrap-datetimepicker-widget table th.next,
.osi-form-element .bootstrap-datetimepicker-widget table span.decade,
.osi-form-element .bootstrap-datetimepicker-widget table span.year,
.osi-form-element .bootstrap-datetimepicker-widget table span.month,
.osi-form-element .bootstrap-datetimepicker-widget table td.day,
.osi-form-element .bootstrap-datetimepicker-widget table td.hour,
.osi-form-element .bootstrap-datetimepicker-widget table td.minute,
.osi-form-element .bootstrap-datetimepicker-widget table td.second{
    border-radius: 0px;
    transition: background 0.3s ease;
}

.osi-form-element .bootstrap-datetimepicker-widget table th.prev:hover,
.osi-form-element .bootstrap-datetimepicker-widget table th.picker-switch:hover,
.osi-form-element .bootstrap-datetimepicker-widget table th.next:hover,
.osi-form-element .bootstrap-datetimepicker-widget table span.decade:hover,
.osi-form-element .bootstrap-datetimepicker-widget table span.year:hover,
.osi-form-element .bootstrap-datetimepicker-widget table span.month:hover,
.osi-form-element .bootstrap-datetimepicker-widget table td.day:hover,
.osi-form-element .bootstrap-datetimepicker-widget table td.hour:hover,
.osi-form-element .bootstrap-datetimepicker-widget table td.minute:hover,
.osi-form-element .bootstrap-datetimepicker-widget table td.second:hover{
    background-color: #009688;
}

.osi-form-element .bootstrap-datetimepicker-widget table td.today:before{

    border-bottom-color: #009688;
    transition: border-color 0.3s ease;
}

.osi-form-element .bootstrap-datetimepicker-widget table td.today:hover:before{

    border-bottom-color: #ffffff;
}
.osi-form-element .bootstrap-datetimepicker-widget.dropdown-menu.top:after,
.osi-form-element .bootstrap-datetimepicker-widget.dropdown-menu.top:before,
.osi-form-element .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after,
.osi-form-element .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{
    display:none;
}
.osi-form-element .bootstrap-datetimepicker-widget .datepicker table tr td.today{
    background:transparent;
}

.osi-form-element .bootstrap-datetimepicker-widget .datepicker table tr td.active{
    background:transparent;
    font-weight:bold;
    color: #009688;
}
.osi-form-element .bootstrap-datetimepicker-widget .datepicker table tr td.active:hover{
    background:#009688;
    font-weight:bold;
    color: white;
}

.osi-form-element .bootstrap-datetimepicker-widget .datepicker table tr td.disabled{
    background: transparent!important;
    cursor: not-allowed;
}

.osi-form-element .bootstrap-datetimepicker-widget span.glyphicon{
    color:#009688;
}




/**
 * Radio Buttons
 */
.osi-form-element.osi-radio{
    display: inline-block;
    position:relative;
    height: 34px;
    line-height:34px;
    vertical-align:middle;
    margin-bottom: 16px;

}
/*.osi-form-element.osi-radio + .osi-radio{
    margin-left: 14px;
}*/

.osi-form-element.osi-radio input[type="radio"]{
    display:none;
}

.osi-form-element.osi-radio label{
    padding:0;
    padding-left: 19px;
    margin:0;
    cursor:pointer;
    user-select: none;
}

.osi-radio-icon {
    position: absolute;
    top: 6px;
    left: 0;
    cursor: pointer;
    display: block;
    font-size: 1em;
    user-select: none;
    color: #D2D2D2;
}
.osi-radio-icon::before, .osi-radio-icon::after {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 14px;
    height: 14px;
    transition: -webkit-transform 0.28s ease;
    transition: transform 0.28s ease;
    transition: transform 0.28s ease, -webkit-transform 0.28s ease;
    border-radius: 50%;
    border: 1px solid currentColor;
}
.osi-radio-icon::after {
    -webkit-transform: scale(0);
    transform: scale(0);
    background-color: #009688;
    border-color: #009688;
}
.radio label:hover .helper {
    color: #D2D2D2;
    transform: scale(0.5);
}
.osi-radio-icon.checked::after {
    transform: scale(0.5);
}

.osi-radio-icon.checked::before {
    color: #009688;
}


/**
 * Checkbox
 */
.osi-form-element.osi-checkbox{
    display: inline-block;
    position:relative;
    height: 34px;
    line-height:34px;
    vertical-align:middle;
    margin-bottom: 16px;

}
/*.osi-form-element.osi-checkbox + .osi-checkbox{
    margin-left: 14px;
}*/

.osi-form-element.osi-checkbox input[type="checkbox"]{
    display:none;
}

.osi-form-element.osi-checkbox label{
    padding:0;
    padding-left: 19px;
    margin:0;
    cursor:pointer;
    user-select: none;
}

.osi-checkbox-icon {
    position: absolute;
    top: 9px;
    left: 0;
    width: 1em;
    height: 1em;
    z-index: 0;
    border: 1px solid currentColor;
    border-radius: 0.0625em;
    -webkit-transition: border-color 0.28s ease;
    transition: border-color 0.28s ease;
    color: #D2D2D2;
}
.osi-checkbox-icon::before, .osi-checkbox-icon::after {
    position: absolute;
    height: 0;
    width: 0.2em;
    background-color: #009688;
    display: block;
    -webkit-transform-origin: left top;
    transform-origin: left top;
    border-radius: 0.25em;
    content: '';
    -webkit-transition: opacity 0.28s ease, height 0s linear 0.28s;
    transition: opacity 0.28s ease, height 0s linear 0.28s;
    opacity: 0;
}
.osi-checkbox-icon::before {
    top: 0.65em;
    left: 0.38em;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
    box-shadow: 0 0 0 0.0625em #fff;
}
.osi-checkbox-icon::after {
    top: 0.3em;
    left: 0;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.osi-checkbox-icon.checked{
    color: #009688;
}

.osi-checkbox-icon.checked::after,
.osi-checkbox-icon.checked::before{
    opacity: 1;
    -webkit-transition: height 0.28s ease;
    transition: height 0.28s ease;
}

.osi-checkbox-icon.checked::after{
    height: 0.5em;
}

.osi-checkbox-icon.checked::before {
    height: 1.2em;
    -webkit-transition-delay: 0.28s;
    transition-delay: 0.28s;
}



.dspx-select-option.disabled .osi-checkbox-icon::before{
    background-color: #777777;
}
.dspx-select-option.disabled .osi-checkbox-icon::after{
    background-color: #777777;
}

.dspx-select-option.disabled {
    color: #777777;
}
.dspx-select-option.disabled .osi-checkbox-icon{
    color: #777777;
}


/**
 * File upload
 */
.osi-form-element input[type="file"] {
    position:absolute;
    top:0px;
    width:100%;
    height:34px;
    opacity:0;
    z-index: 9;
    cursor:pointer;

}
.osi-form-element.osi-file-upload .osi-form-control{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/file.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}
.osi-form-element.osi-file-upload .osi-form-control:focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/file_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}


.osi-form-element.osi-file-upload .osi-form-control.ng-invalid.ng-touched{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/file_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

/**
 * Buttons
 */

.osi-btn{
    display:inline-block;
    border-radius:0px;
    border:none;
    box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.2);
    height: 26px;
    line-height: 26px;
    vertical-align: middle;
    text-align: center;
    padding: 0 14px;
    outline:none;
    min-width: 100px;
    text-transform:uppercase;
    transition: background-color .3s ease;
    color:white;
    background:transparent;
    margin: 0 7px 0 0;
}

.osi-btn-xs:link,
.osi-btn-xs:visited,
.osi-btn-xs:active,
.osi-btn-xs:focus,
.osi-btn-sm:link,
.osi-btn-sm:visited,
.osi-btn-sm:active,
.osi-btn-sm:focus,
.osi-btn:link,
.osi-btn:visited,
.osi-btn:active,
.osi-btn:focus{
    outline:none;
    border:none;
    text-decoration: none;
    color:white;
}

.osi-btn-sm{
    display:inline-block;
    border-radius:13px;
    border:none;
    box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.2);
    height: 26px;
    width:26px;
    line-height: 26px;
    vertical-align: top;
    text-align: center;
    padding: 0;
    margin:0;
    outline:none;
    transition: background-color .3s ease;
    color:white;
}

.osi-btn-xs {
    display: inline-block;
    border-radius: 50%;
    border: none;
    box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.2);
    height: 12px;
    width: 12px;
    line-height: 12px;
    vertical-align: middle;
    text-align: center;
    padding: 0;
    margin: 0;
    outline: none;
    transition: background-color .3s ease;
    color: white;
    font-size: 8px;
}

/** vertical align icons*/
.osi-btn-sm span.fa{
    display:block;
    height:26px;
    line-height:26px;
    /* vertical-align: middle; */
    font-size:16px;
}

.osi-btn:hover,
.osi-btn-sm:hover,
.osi-btn-xs:hover{
    text-decoration: none;
    color:white;
}
.osi-btn-flat:link,
.osi-btn-flat:visited,
.osi-btn-flat:active,
.osi-btn-flat:focus,
.osi-btn-flat{
    color:black;
    background:transparent;
    box-shadow: none;
}
.osi-btn-flat:hover{
    background: rgba(0, 0, 0, 0.075);
    color:black;
}

.osi-btn-flat{
    background:transparent;
    box-shadow: none;
}
.osi-btn.osi-btn-flat:hover{
    background: rgba(0, 0, 0, 0.075);
}

.osi-btn-blue{
    background:#2782bb;
}
.osi-btn-blue:hover{
    background:#07629b;
}

.osi-btn-green{
    background:#15907c;
}
.osi-btn-green:hover{
    background:#00705c;
}

.osi-btn-red{
    background:#bf3a29;
}
.osi-btn-red:hover{
    background:#9f1a09;
}

.osi-btn-grey{
    background: #777777;
}
.osi-btn-grey:hover{
    background: #575757;
}

.osi-btn-light-grey {
    background: #c0c0c0;
}

.osi-btn-light-grey:hover{
    background: #9e9e9e;
}

.osi-btn[disabled],
.osi-btn-sm[disabled],
.osi-btn-xs[disabled],
.osi-btn[disabled]:hover,
.osi-btn-sm[disabled]:hover,
.osi-btn-xs[disabled]:hover{
    opacity: .5;
    cursor: not-allowed;
}


.osi-form-element.osi-tags .dropdown-menu{
    margin-top:0px;
}

.osi-form-element.osi-tags-auto .osi-form-control{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/tags.png);
    background-size: 0 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
    cursor:pointer;
}
.osi-form-element.osi-tags-auto .osi-form-control.osi-focus{
    background-image: linear-gradient(#009688, #009688), linear-gradient(#D2D2D2, #D2D2D2), url(../img/tags_hover.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

.osi-form-element.osi-tags .osi-tags-tag{
    display:inline-block;
}

.osi-combobox{
    position:relative;
    overflow: visible;
}

.osi-combobox input{
    border:none;
    width:100%;
    padding: 6px 12px;
    background:transparent;
    cursor:pointer;
}

.osi-combobox input:focus{
    outline:none;
}

.osi-combobox .combobox-dropdown{
    background:white;
    position:absolute;
    left:0px;
    top:34px;
    z-index:989;
    box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.2);
    max-height:300px;
    overflow: hidden;
    overflow-y:auto;
}
.osi-combobox .combobox-dropdown ul{
    padding: 0;
    margin: 0;
    list-style: none;
}

.osi-combobox .combobox-dropdown li{
    padding: 3px 7px;
    transition: background 0.3s ease;
    cursor: pointer;
}

.osi-combobox .combobox-dropdown li:hover{
    background: #009688;
}

.osi-combobox .osi-form-control{
    padding: 0
}

/**
 * Datetime component
 */
.osi-datetime{
    position:relative;
}

.osi-datetime .flex-container{
    display:flex;
}

.osi-datetime .flex-container > div:first-child{
    flex:2;
}
.osi-datetime .flex-container > div:last-child{
    flex:1;
    padding-left:15px;
}

.osi-datetime.osi-datetime-invalid .osi-datetime-time{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336);
    background-size: 0 2px, 100% 1px;
}

.osi-datetime.osi-datetime-invalid .osi-datetime-time:focus{
    background-size: 100% 2px, 0 1px;
}

.osi-datetime.osi-datetime-invalid .osi-date .osi-form-control{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/date_error.png);
    background-size: 0% 2px, 100% 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}

.osi-datetime.osi-datetime-invalid .osi-date .osi-form-control:focus{
    background-image: linear-gradient(#f44336, #f44336), linear-gradient(#f44336, #f44336), url(../img/date_error.png);
    background-size: 100% 2px, 0 1px, auto;
    background-position: center bottom, center calc(100% - 1px), right center;
}



.osi-datetime .osi-datetime-error{
    color: #f44336;
    min-height: 16px;
    height: auto;
    display: block;
    margin-top:-16px;
    font-size:12px;

}


.osi-datetime .osi-datetime-info{
    min-height: 16px;
    height: auto;
    display: block;
    margin-top:-16px;
    color:#a2a2a2;
    font-size:12px;
}
