* {
    box-sizing: border-box;
    font-family: "Arial", sans-serif;
}


body {

    margin: 0;
    height: 100vh;

    display: flex;
    justify-content: center;
    align-items: center;

    background: linear-gradient(
        135deg,
        #0f172a,
        #1e293b
    );

}


/* karta logowania */

.auth-card {

    width: 380px;

    background: white;

    padding: 40px;

    border-radius: 20px;

    box-shadow:
        0 20px 50px rgba(0,0,0,0.3);

}



/* nagłówek */

h2 {

    text-align:center;

    margin-bottom:30px;

    color:#111827;

    font-size:28px;

}



/* pola Django form.as_p */

form p {

    display:flex;

    flex-direction:column;

    margin-bottom:18px;

}



form label {

    margin-bottom:6px;

    color:#374151;

    font-weight:bold;

}



/* input username/password */

input {

    width:100%;

    padding:12px 14px;

    border:1px solid #d1d5db;

    border-radius:10px;

    font-size:16px;

    transition:0.3s;

}



input:focus {

    outline:none;

    border-color:#16a34a;

    box-shadow:
        0 0 0 3px rgba(22,163,74,0.2);

}



/* obszar bili */

#login-form {

    display:flex;

    flex-direction:column;

    align-items:center;

}



/* bila jako przycisk */

#ball {


    margin-top:25px;


    width:75px;

    height:75px;


    border-radius:50%;


    background:
        radial-gradient(
            circle at 30% 30%,
            #4ade80,
            #16a34a 60%,
            #065f46
        );


    color:white;


    font-size:32px;

    font-weight:bold;


    border:none;


    cursor:pointer;


    display:flex;

    justify-content:center;

    align-items:center;


    box-shadow:

        inset -10px -10px 20px rgba(0,0,0,0.35),

        0 8px 20px rgba(0,0,0,0.4);


    transition:

        transform 1.4s cubic-bezier(.25,.8,.25,1),

        opacity .3s;


}


/* animacja wbicia */

#ball.move {


    transform:

        translateX(260px)

        rotate(1080deg)

        scale(0.15);


    opacity:0;

}

#ball.return {


    transform:

        translateX(0)

        rotate(-720deg)

        scale(1);

    opacity:1;

}

/* błędy Django */

.errorlist {

    padding:0;

    margin:5px 0;

    list-style:none;

    color:#dc2626;

    font-size:14px;

}



/* linki */

a {

    color:#16a34a;

    text-decoration:none;

}


a:hover {

    text-decoration:underline;

}

/* ========================= */
/* REJESTRACJA */
/* ========================= */


.auth-card {

    width:380px;

    background:white;

    padding:40px;

    border-radius:20px;

    box-shadow:
        0 20px 50px rgba(0,0,0,0.3);

}



h1 {

    text-align:center;

    margin-bottom:30px;

    color:#111827;

}



.form-field {

    display:flex;

    flex-direction:column;

    margin-bottom:18px;

}



.form-field label {

    margin-bottom:6px;

    font-weight:bold;

    color:#374151;

}



.form-field input {


    padding:12px 14px;

    border-radius:10px;

    border:1px solid #d1d5db;

    font-size:16px;


    transition:.3s;

}



.form-field input:focus {


    outline:none;

    border-color:#16a34a;

    box-shadow:
        0 0 0 3px rgba(22,163,74,.2);

}



/* bila rejestracji */

#register-ball {


    margin:25px auto 0;


    width:75px;

    height:75px;


    border-radius:50%;


    border:none;


    background:
        radial-gradient(
            circle at 30% 30%,
            #4ade80,
            #16a34a 60%,
            #065f46
        );


    color:white;


    font-size:32px;

    font-weight:bold;


    cursor:pointer;


    display:flex;

    justify-content:center;

    align-items:center;



    box-shadow:

        inset -10px -10px 20px rgba(0,0,0,.35),

        0 8px 20px rgba(0,0,0,.4);


    transition:

        transform 1.4s cubic-bezier(.25,.8,.25,1),

        opacity .3s;

}



#register-ball:hover {


    transform:scale(1.1);

}



#register-ball.move {


    transform:

        translateX(260px)

        rotate(1080deg)

        scale(.15);


    opacity:0;

}



.error {


    color:#dc2626;

    font-size:14px;

    margin-top:5px;

}
