//
// Material Forms
// --------------------------------------------------

.form-material {
    position: relative;
    padding-top: 26px;

    // Labels
    > label {
        position: absolute;
        top: 6px;
        left: 0;
        margin-bottom: 0;
    }

    &.floating > label {
        font-size: $font-size-md;
        font-weight: 400;
        cursor: text;
        z-index: 2;
        transition: all .2s ease-out;
        transform: translateY(25px);
    }

    &.form-material-sm.floating > label {
        font-size: $font-size-base;
        transform: translateY(22px);
    }

    &.form-material-lg.floating > label {
        font-size: $font-size-lg;
        transform: translateY(27px);
    }

    > label,
    & > .form-control:focus + label,
    &.floating.open > label {
        font-size: $font-size-base;
        font-weight: 600;
        cursor: default;
        transform: translateY(0);
    }

    // :-webkit-autofill Use it separately because it causes issues with non webkit browsers when it is used along with the other selectors
    &.floating > .form-control:-webkit-autofill + label {
        font-size: $font-size-base;
        font-weight: 600;
        cursor: default;
        transform: translateY(0);
    }

    &.floating > .form-control[disabled] + label,
    &.floating > .form-control[readonly] + label,
    fieldset[disabled] &.floating > label {
        cursor: not-allowed;
    }

    // Form controls and input addons
    > .form-control {
        padding-left: 0;
        padding-right: 0;
        border-color: transparent;
        border-radius: 0;
        background-color: transparent;
        box-shadow: 0 1px 0 $input-border-color;
        transition: box-shadow .3s ease-out;

        ~ .input-group-append {
            box-shadow: 0 1px 0 $input-border-color;
            transition: box-shadow .3s ease-out;
        }

        &:focus {
            background-color: transparent;
            border-color: transparent;
            box-shadow: 0 2px 0 $input-focus-border-color;

            + label {
                color: $body-color;
            }

            ~ .input-group-append {
                box-shadow: 0 2px 0 $input-focus-border-color;
            }
        }
    }

    > select.form-control {
        border-radius: 1px; // Fixes an Opera bug (border not transparent as set but black)
    }

    .form-control[disabled],
    .form-control[readonly],
    fieldset[disabled] .form-control {
        background-color: $white;
        border-bottom: 1px dashed #ccc;
        box-shadow: none;
    }

    &.input-group .input-group-text {
        border: none;
        background-color: transparent;
    }

    // Form Focus Variations
    &.form-material-primary > .form-control {
        @include form-control-material-focus-variant($brand-primary);
    }

    &.form-material-success > .form-control {
        @include form-control-material-focus-variant($brand-success);
    }

    &.form-material-info > .form-control {
        @include form-control-material-focus-variant($brand-info);
    }

    &.form-material-warning > .form-control {
        @include form-control-material-focus-variant($brand-warning);
    }

    &.form-material-danger > .form-control {
        @include form-control-material-focus-variant($brand-danger);
    }
}

// Form State Variations
@include form-validation-state-material("valid", $brand-success);
@include form-validation-state-material("invalid", $brand-danger);
