:root{

    --primary:#003B5C;
    --primary-light:#0B5C88;

    --secondary:#36B8C9;

    --accent:#F2B544;

    --bg:#F4F7FB;

    --white:#FFFFFF;

    --text:#1F2937;

    --muted:#6B7280;

    --border:#D9E3EC;

    --danger:#DC2626;

    --radius:20px;

    --font:'DM Sans',sans-serif;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:var(--font);
}

/* BODY */

body.login-page{

    min-height:100vh;

    background:
    linear-gradient(
    rgba(0,59,92,.92),
    rgba(0,59,92,.96)),

    url('');

    background-size:cover;

    background-position:center;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:20px;

}

/* CONTAINER */

.login-container{

    width:100%;

    max-width:450px;

}

/* CARD */

.login-card{

    background:rgba(255,255,255,.98);

    border-radius:34px;

    padding:42px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.20);

    backdrop-filter:blur(12px);

}

/* HEADER */

.login-header{

    text-align:center;

    margin-bottom:30px;

}

/* WRAPPER */

.logo-wrapper{

    width:100%;

    display:flex;

    justify-content:center;

    margin-bottom:28px;

}

/* LOGO BOX */

.logo-box{

    width:270px;

    height:105px;

    border-radius:24px;

    background:
    linear-gradient(
    135deg,
    #003B5C,
    #0B5C88);

    display:flex;

    align-items:center;

    justify-content:center;

    box-shadow:
    0 15px 35px rgba(0,59,92,.25);

}

/* LOGO */

.logo-box img{

    width:220px;

    max-width:90%;

    object-fit:contain;

}

/* SUBTITLE */

.login-header p{

    color:var(--muted);

    font-size:15px;

    line-height:1.5;

}

/* ALERT */

.alert{

    background:#FEF2F2;

    border:1px solid #FECACA;

    color:#991B1B;

    padding:14px 16px;

    border-radius:14px;

    margin-bottom:20px;

    font-size:13px;

    display:flex;

    align-items:center;

    gap:10px;

}

.alert i{

    color:var(--danger);

}

/* FORM */

.form-group{

    margin-bottom:22px;

}

.form-group label{

    display:block;

    margin-bottom:9px;

    color:var(--text);

    font-size:14px;

    font-weight:700;

}

/* INPUT */

.input-group{

    position:relative;

}

.input-group i{

    position:absolute;

    top:50%;

    left:18px;

    transform:translateY(-50%);

    color:#94A3B8;

    font-size:15px;

}

/* INPUT STYLE */

.form-group input{

    width:100%;

    height:58px;

    border-radius:18px;

    border:1px solid var(--border);

    background:#FAFCFE;

    padding:0 18px 0 50px;

    font-size:14px;

    transition:.25s;

}

.form-group input:focus{

    outline:none;

    border-color:var(--secondary);

    background:white;

    box-shadow:
    0 0 0 4px rgba(54,184,201,.12);

}

/* BUTTON */

button{

    width:100%;

    height:58px;

    border:none;

    border-radius:18px;

    background:
    linear-gradient(
    135deg,
    var(--primary),
    var(--primary-light));

    color:white;

    font-size:16px;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

    margin-top:10px;

}

button:hover{

    transform:translateY(-2px);

    box-shadow:
    0 15px 30px rgba(0,59,92,.25);

}

/* FOOTER */

.login-footer{

    margin-top:28px;

    text-align:center;

    color:var(--muted);

    font-size:13px;

}

/* RESPONSIVE */

@media(max-width:500px){

    .login-card{

        padding:30px 24px;

        border-radius:28px;

    }

    .logo-box{

        width:220px;

        height:90px;

    }

    .logo-box img{

        width:180px;

    }

}