:root {

    --bg:
    linear-gradient(
        160deg,
        #f8fafc,
        #e2e8f0
    );

    --card:rgba(255,255,255,.78);

    --text:#0f172a;
    --muted:#64748b;

    --primary:#2563eb;
    --primary-dark:#1d4ed8;

    --danger:#dc2626;
    --danger-bg:#fee2e2;

    --border:
    rgba(15,23,42,.08);

    --shadow:
    0 20px 50px rgba(15,23,42,.15);

    --radius:28px;

}


* {
    box-sizing:border-box;
}



html,
body {

    margin:0;
    padding:0;

    min-height:100%;

    font-family:
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

}



body {

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:24px;

    background:var(--bg);

    color:var(--text);

}



/* LOGIN CARD */

.login {

    width:100%;

    max-width:420px;

    background:var(--card);

    backdrop-filter:blur(14px);

    border:

    1px solid

    var(--border);

    border-radius:32px;

    padding:

    38px

    28px;

    box-shadow:var(--shadow);

}



/* LOGO */


.logo {

    width:82px;

    height:82px;

    display:grid;

    place-items:center;

    margin:

    0 auto

    24px;

    border-radius:26px;

    font-size:42px;

    background:

    linear-gradient(
        135deg,
        #2563eb,
        #4f46e5
    );

    box-shadow:

    0 12px 30px

    rgba(37,99,235,.35);

}



/* TEXT */


h1 {

    margin:0;

    text-align:center;

    font-size:34px;

    letter-spacing:-.04em;

}



.login > p {

    margin:

    10px

    0

    34px;

    text-align:center;

    color:var(--muted);

    font-size:16px;

}



/* FORM */


.field {

    display:flex;

    flex-direction:column;

    gap:8px;

    margin-bottom:20px;

}



label {

    font-size:.9rem;

    color:var(--muted);

    font-weight:500;

}



input {

    width:100%;

    height:58px;

    border:none;

    outline:none;

    border-radius:18px;

    background:

    rgba(241,245,249,.9);

    padding:

    0

    18px;

    font-size:16px;

    color:var(--text);

    transition:.2s;

}



input:focus {

    background:white;

    box-shadow:

    0 0 0 4px

    rgba(37,99,235,.18);

}



/* ERROR */


.error {

    margin:

    0

    0

    18px;

    padding:14px 16px;

    border-radius:16px;

    background:var(--danger-bg);

    color:var(--danger);

    font-size:.9rem;

}



/* BUTTON */


button {

    width:100%;

    height:58px;

    border:none;

    border-radius:18px;

    background:

    linear-gradient(
        135deg,
        #2563eb,
        #4f46e5
    );

    color:white;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    box-shadow:

    0 10px 25px

    rgba(37,99,235,.3);

    transition:

    transform .15s ease,
    box-shadow .15s ease;

}



button:hover {

    box-shadow:

    0 15px 35px

    rgba(37,99,235,.4);

}



button:active {

    transform:scale(.97);

}



/* MOBILE */

@media(max-width:420px){

    .login {

        padding:

        30px

        22px;

        border-radius:26px;

    }


    h1 {

        font-size:28px;

    }


    .logo {

        width:72px;

        height:72px;

        font-size:36px;

    }

}



/* DARK MODE */


@media(prefers-color-scheme:dark){


    :root {

        --bg:

        linear-gradient(
            160deg,
            #020617,
            #0f172a
        );


        --card:

        rgba(15,23,42,.75);


        --text:#f8fafc;


        --muted:#94a3b8;


        --border:

        rgba(255,255,255,.08);

    }



    input {

        background:

        rgba(30,41,59,.8);

        color:white;

    }


    input:focus {

        background:#1e293b;

    }



}
