* {
    padding: 0; /* Remove default padding */
    margin: 0;  /* Remove default margin */
    box-sizing: border-box;
    font-family: sans-serif;
}

a, p, span {
    text-decoration: none;
    color: #fff;
}

.login-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--size) * 45px);

}

.login-page-title {
    font-size: calc(var(--size) * 65px);
    color: white;
}

.login-page-subtitle {
    font-size: calc(var(--size) * 45px);
    color: white;
}

.login-page-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
}

.login-page-head-line {
    height: 2px;
    width: 400px;
    background: white;
}

.login-page-body {
    padding: 0 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 30px;
    border-left: 2px white solid;
    border-right: 2px white solid;
}

.login-form {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.login-input-box {
    color: rgba(198, 115, 231, 0.7);
    width: fit-content;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.login-input-box.submit {
    margin-top: 50px;
}

.return-link {
    font-size: 20px;
}

.login-input {
    width: 400px;
    height: 54px;
    color: #ffffff;
    border: 2px solid transparent;
    border-radius: 60px;
    background: rgba(255, 255, 255, 0.08);
    transition: all 0.3s;
    padding: 21px 30px 0;
    margin: 0;
    box-shadow: rgba(255, 255, 255, 0.34) 0px 3px 0px;

}

.login-input-label {
    color: rgba(255, 255, 255, 0.58);
    height: 15px;
    width: fit-content;
    transition: all 0.1s;
    transform: translate(45px, -41px);
}

.login-input:focus, .login-input:hover, .login-input:valid {
    top: 6px;
    box-shadow: none;
    border: 2px solid #fffc;
    outline: none !important;
}

.login-input:focus + .login-input-label,
.login-input:valid + .login-input-label,
.login-input:hover + .login-input-label,
.login-input-label:hover {
    letter-spacing: 3px;
    transform: translate(39px, -53px);
    font-size: 18px;
    color: white;
}

.invalid_input {
    background: rgba(232, 0, 0, 0.5);
    box-shadow: rgb(218, 98, 98) 0 3px 0;
}

.invalid_input:focus, .invalid_input:hover, .invalid_input:valid {
    border: 2px solid rgba(246, 0, 0, 0.8);
}

.invalid_input + .login-input-label {
    color: #d3d3d3;
}

.input_error_hint {
    letter-spacing: 3px;
    transform: translate(0, -11px);
    opacity: 0;
    font-size: small;
    color: rgb(218, 98, 98);
    transition: all 0.1s;
}

.login-button {
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    width: 310px;
    padding: 10px 20px;
    background: #fffc;
    border-radius: 60px;
    border: 1px solid transparent;
    color: #5d5d5d;
    box-shadow: rgba(229, 229, 229, 0.7) 0 6px 0;
    transition: all 0.3s;
    font-size: 24px;
}


input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active{
    -webkit-background-clip: text;
    -webkit-text-fill-color: #ffffff;
    transition: background-color 5000s ease-in-out 0s;
    box-shadow: inset 0 0 30px 30px rgba(255, 255, 255, 0.08);
}

.login-button:hover {
    cursor: pointer;
    background: rgba(255, 255, 255, 0.85);
}

.login_features {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    transition: .3s;
    margin: 0 0 0 0;
    gap: 60px;
}

.login_features span, .login_features a {
    font-size: 24px;
}

.remember-me-container {
    display: flex;
    align-items: center;
    gap: 20px;
}

input[type=checkbox] {
    vertical-align: middle;
    position: relative;
    transform: scale(1.8);
}

.redirect-hint-text {
    font-size: 24px;
}

.feedback-container {
    height: var(--button-x-small);
    width: var(--button-xx-large);
}

.feedback {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    text-align: center;
    border-radius: var(--border-mid);
    background: rgb(216, 172, 61);
    color: rgb(99, 80, 1);
    border: 1px solid rgb(99, 80, 1);
}

.feedback.green {
    background: #81f781;
    color: rgb(26, 138, 26);
    border: 1px solid rgb(26, 138, 26);
}

.feedback.red {
    background: rgba(232, 86, 86, 1);
    color: #6a0101;
    border: 1px solid #6a0101;
}

