body {
    /*background-image: linear-gradient(to right top, #051937, #004d7a, #008793, #00bf72, #a8eb12);*/
    background-image: url(/files/background/pb-fun-2570737_1920.jpg) !important;
    background-color: #212121;
    background-attachment: fixed;
    background-size: cover;
    background-repeat: repeat;
    font-family: Arial, Helvetica, sans-serif;
    height: 100%;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* title */
.title {
    display: flex;
    justify-content: center;
    padding: 2rem 0 2rem 0;
    color: #fff;
    font-family: Arial, Helvetica, sans-serif;
}

.title div {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.title img {
    filter: drop-shadow(.25rem .25rem 1rem #00000050);
    width: 20rem;
    height: fit-content;
}

.title img.icon {
    margin: 0 auto;
    width: 10rem;
}

.title p {
    text-shadow: .25rem .25rem 1rem #000;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
}

/* login */
.login {
    height: fit-content;
    width: 25rem;
    margin: 0 auto;
    /*background-color: #004d7ad7;*/
    background-color: #952fbda4;
    backdrop-filter: blur(10px);
    box-shadow: 1rem 1rem 5rem #000000;
    border-radius: .5rem;
    font-family: Arial, Helvetica, sans-serif;

}

.login form {
    padding: 2rem;
    display: flex;
    flex-direction: column;
}

.login label {
    font-size: 1.2rem;
}

.login input[type=text], .login input[type="password"] {
    background-color: #18181850;
    border: 0;
    border-radius: .3rem;
    padding: .5rem;
    box-shadow: .25rem .25rem 1rem #00000040;
    color: #fff;
    outline: none;
}

.login input[type=text]:focus, .login input[type="password"]:focus {
    box-shadow: inset 0 0 1rem #00000050, .25rem .25rem 1rem #00000040;
}

.login input[type=submit] {
    border-radius: .3rem;
    width: fit-content;
    padding: .5rem 2rem;
    font-size: 1.2rem;
    background-color: #45b2fa;
    box-shadow: 0 0 2rem #45b2fa;
    border: 0;
    color: #fff;
    opacity: 50%;
    margin: 2rem auto 0 auto;

    transition: all ease-in-out 250ms;

    cursor: pointer;
}

.login input[type=submit]:hover {
    opacity: 100%;
}

.login label {
    color: #fff;
    font-weight: 700;
    padding-bottom: .5rem;
}

.login .spacetext {
    height: 2.5rem;
}
/* Error message */
.error {
    animation: slideError 250ms ease-in-out;
    padding: 1rem;
    text-align: center;
    background-color: #f00026;
    border-radius: 5px;
    color: #fff;
    max-width: fit-content;
    margin: 1rem auto 0 auto;
}

.loginerror {
    animation: ErrorLogin 1000ms ease-in-out;
}

/* keyframes animations */
@keyframes slideError {
    0%   {
        opacity: 0%;
        transform: translateY(-15%); 		
    }
    100% {
        opacity: 100%;
        transform: translateY(0%); 
    }
}

@keyframes ErrorLogin {
    25%   {
        background-color: #bd2f2fd7;
    }
}

/* screen size */
@media screen and (max-width: 400px) {
    .login {
        width: 100%;
    }

    .title img {
        width: 85vw;
    }
    
    .title p {
        font-size: 10vw;
    }
}