/* Adicionando :root, que seria basicamente, utilizar variável em CSS com pseudoclasse, e, para edição em
repetição, caso o elemento se repita, podendo ser alterado de uma só vez*/  
:root {
    --input-linear: linear-gradient(-45deg, #EE7752, #E73C7E, #23A6D5, #23D5AB);
    --input-error: red;
    --button-linear: linear-gradient(-45deg, #EE7752, #E73C7E, #23A6D5, #23D5AB);
    --button-disabled: #ACACAC;
    --button-sucess: rgb(18, 151, 107);
    --white: #fff;
    --black: #303030;
    --gray: #929292;
    --light-gray: #cfcfcf;
    --border-height: 1px;
}
body {
    margin: 0;
    padding: 0;
    font-family: sans-serif;
}
.login {
    height: 100vh;
    background: var(--input-linear);     /*utilizando a variável inserida em :root para cor*/
    display: flex;
    justify-content: center;
    align-items: center;
}
.login__container {
    min-height: 400px;
    width: 300px;
    background-color: var(--white);     /*utilizando a variável inserida em :root para cor*/
    box-sizing: border-box;
    padding: 32px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.login__title {
    margin-bottom: 32px;
    color: var(--black);               /*utilizando a variável inserida em :root para cor*/
}
.login__form {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.login__input {
    height: 48px;
    width: 100%;
    box-sizing: border-box;
    padding-left: 8px;
    border: unset;
    outline: none;
}
.login__input-border {
    height: var(--border-height);                   /*utilizando a variável inserida em :root para altura*/
    width: 100%;
    margin-bottom: 16px;
    background-color: var(--light-gray);            /*utilizando a variável inserida em :root para cor*/
    transition: .3s ease-in-out;
}
.login__input-border::after {
    content: '';
    display: block;
    height: var(--border-height);                  /*utilizando a variável inserida em :root para altura*/
    width: 0;
    margin-bottom: 16px;
    background: var(--input-linear);
    transition: .3s ease-in-out;
}
/*Trabalhando com o focus/after, no momento que interagir com o input, criar efeito de transição */
.login__input:focus + .login__input-border:after {
    width: 100%;

}
.login__input-border.error {
    background: var(--input-error);
}
.login__input-border.error::after {
    background: var(--input-error);
}
.login__submit {
    /*height: 48px;*/
    width: 100%;
    outline: none;
    background: var(--button-linear);            /*utilizando a variável inserida em :root para cor*/
    background-size: 200%;
    margin-bottom: 32px;
    color: var(--white);
    font-size: 16px;
    font-weight: bold;
    border: unset;
    border-radius: 4px;
    cursor: pointer;
    transition: .5s ease-in-out;
    text-align: center;
    padding-top: 15px;
    padding-bottom: 15px;
}
.login__submit:disabled{
    background: var(--button-disabled);
    cursor: not-allowed; 
}
.login__submit:hover {
    background-position: right;
}
.login__submit.error {
background: var(--input-error);
}
.login__submit.success {
background: var(--button-sucess);
}

.login__reset {
    font-size: 12px;
    color: var(--gray);                       /*utilizando a variável inserida em :root para cor*/
    text-decoration: none;
}