:root {
    --input-padding-x: .75rem;
    --input-padding-y: .75rem;
}

html,
body {
    height: 100%;
}

h1 {
    color: #78ab46;
}

body {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #f5f5f5;
}

.container {
    display: flex;
    height: 100%;
}

.form-signin {
    width: 100%;
    max-width: 420px;
    padding: 15px;
    margin: auto;
}

.form-label-group {
    position: relative;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.form-control:focus + label,
.form-control:not(:placeholder-shown) + label {
    font-size: 100%;
    transform: translate3d(0, -100%, 0);
    opacity: 1;
}

.form-control:not(:placeholder-shown):not(:valid):not(:focus) + label {
    color: orangered;
}


.form-label-group > label {
    position: absolute;
    top: 0;
    padding: 7px 0 0 13px;
    transition: all 200ms;
    opacity: 0.5;
}

.form-label-group input::-webkit-input-placeholder {
    color: transparent;
}

.form-label-group input:-ms-input-placeholder {
    color: transparent;
}

.form-label-group input::-ms-input-placeholder {
    color: transparent;
}

.form-label-group input::-moz-placeholder {
    color: transparent;
}

.form-label-group input::placeholder {
    color: transparent;
}