/* ==================================================
   PREMIUM LOGIN PAGE
================================================== */

:root {
    --primary: #1b3585;
    --primary-light: #3158bd;
    --primary-dark: #10245f;

    --heading: #172033;
    --text: #667085;

    --border: #dfe5ef;
    --input-bg: #f7f9fd;

    --white: #ffffff;
}


/* ==================================================
   RESET
================================================== */

* {
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100%;
    margin: 0;
}

body {
    font-family: "Jost", sans-serif;
}


/* ==================================================
   LOGIN PAGE
================================================== */

.premium-login {
    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    width: 100%;

    min-height: 100vh;

    padding: 30px 15px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 10% 10%,
            rgba(49, 88, 189, 0.16),
            transparent 28%
        ),

        radial-gradient(
            circle at 90% 90%,
            rgba(27, 53, 133, 0.12),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #edf3ff,
            #f8faff
        );
}


/* BACKGROUND DECORATION */

.premium-login::before {
    content: "";

    position: absolute;

    top: -150px;

    right: -130px;

    width: 380px;

    height: 380px;

    background:
        rgba(27, 53, 133, 0.06);

    border-radius: 50%;
}


.premium-login::after {
    content: "";

    position: absolute;

    bottom: -180px;

    left: -150px;

    width: 420px;

    height: 420px;

    background:
        rgba(49, 88, 189, 0.06);

    border-radius: 50%;
}


/* ==================================================
   LOGIN AREA
================================================== */

.login-area {
    position: relative;

    z-index: 2;

    width: 100%;

    max-width: 460px;
}


/* ==================================================
   LOGIN BOX
================================================== */

.login-box {
    position: relative;

    width: 100%;

    padding: 42px 40px;

    overflow: hidden;

    background:
        rgba(255, 255, 255, 0.98);

    border:
        1px solid rgba(255, 255, 255, 0.9);

    border-radius: 20px;

    box-shadow:
        0 25px 65px
        rgba(16, 36, 95, 0.16);
}


/* TOP PRIMARY LINE */

.login-box::before {
    content: "";

    position: absolute;

    top: 0;

    left: 50%;

    width: 80px;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            var(--primary),
            var(--primary-light)
        );

    border-radius:
        0 0 10px 10px;

    transform:
        translateX(-50%);
}


/* ==================================================
   LOGO
================================================== */

.login-logo {
    display: block;

    width: 100%;

    margin-bottom: 27px;

    text-align: center;
}


.login-logo img {
    display: inline-block;

    width: auto;

    max-width: 205px;

    height: 53px;

    object-fit: contain;
}


/* ==================================================
   HEADING
================================================== */

.login-heading {
    margin-bottom: 29px;

    text-align: center;
}


.login-heading h1 {
    margin:
        0 0 8px;

    color:
        var(--heading);

    font-size:
        30px;

    font-weight:
        700;

    line-height:
        1.25;
}


.login-heading p {
    margin: 0;

    color:
        var(--text);

    font-size:
        14px;

    line-height:
        1.6;
}


/* ==================================================
   ALERT
================================================== */

.login-alert {
    display: flex;

    align-items: center;

    gap: 10px;

    width: 100%;

    margin-bottom: 20px;

    padding: 12px 14px;

    border: 1px solid;

    border-radius: 10px;

    font-size: 13px;

    font-weight: 500;
}


.login-alert i {
    font-size: 17px;
}


.login-error {
    color: #b42318;

    background: #fff1f2;

    border-color: #fecdd3;
}


.login-success {
    color: #087443;

    background: #ecfdf3;

    border-color: #bbf7d0;
}


/* ==================================================
   FORM
================================================== */

.form-group-custom {
    width: 100%;

    margin-bottom: 20px;
}


.form-group-custom label {
    display: block;

    margin:
        0 0 8px;

    color: #344054;

    font-size: 14px;

    font-weight: 600;
}


/* PASSWORD LABEL */

.password-label {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;
}


.password-label a {
    margin-bottom: 8px;

    color:
        var(--primary);

    font-size: 13px;

    font-weight: 600;

    text-decoration: none;

    transition:
        color 0.2s ease;
}


.password-label a:hover {
    color:
        var(--primary-light);
}


/* ==================================================
   INPUT
================================================== */

.input-box {
    position: relative;

    width: 100%;

    height: 53px;
}


.input-box .input-icon {
    position: absolute;

    top: 50%;

    left: 17px;

    z-index: 2;

    color: #98a2b3;

    font-size: 16px;

    transform:
        translateY(-50%);

    pointer-events: none;

    transition:
        color 0.2s ease;
}


.input-box input {
    width: 100%;

    height: 53px;

    padding:
        10px 50px;

    color:
        var(--heading);

    background:
        var(--input-bg);

    border:
        1px solid
        var(--border);

    border-radius: 12px;

    outline: none;

    font-family:
        "Jost",
        sans-serif;

    font-size: 14px;

    font-weight: 500;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}


.input-box input::placeholder {
    color: #98a2b3;

    font-weight: 400;
}


.input-box input:hover {
    background: #ffffff;

    border-color: #b7c1d0;
}


.input-box input:focus {
    background: #ffffff;

    border-color:
        var(--primary);

    box-shadow:
        0 0 0 4px
        rgba(27, 53, 133, 0.10);
}


.input-box:focus-within
.input-icon {
    color:
        var(--primary);
}


/* ==================================================
   PASSWORD BUTTON
================================================== */

.password-toggle {
    position: absolute;

    top: 50%;

    right: 10px;

    z-index: 3;

    display: flex;

    align-items: center;

    justify-content: center;

    width: 37px;

    height: 37px;

    padding: 0;

    color: #98a2b3;

    background: transparent;

    border: 0;

    border-radius: 9px;

    outline: none;

    font-size: 16px;

    cursor: pointer;

    transform:
        translateY(-50%);

    transition:
        color 0.2s ease,
        background 0.2s ease;
}


.password-toggle:hover {
    color:
        var(--primary);

    background:
        rgba(27, 53, 133, 0.08);
}


/* ==================================================
   LOGIN BUTTON
================================================== */

.login-button {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 11px;

    width: 100%;

    height: 53px;

    margin-top: 6px;

    padding:
        0 25px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-light)
        );

    border: 0;

    border-radius: 12px;

    outline: none;

    font-family:
        "Jost",
        sans-serif;

    font-size: 15px;

    font-weight: 700;

    box-shadow:
        0 10px 25px
        rgba(27, 53, 133, 0.25);

    cursor: pointer;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.login-button i {
    font-size: 13px;

    transition:
        transform 0.2s ease;
}


.login-button:hover {
    background:
        linear-gradient(
            135deg,
            var(--primary-dark),
            var(--primary)
        );

    box-shadow:
        0 14px 30px
        rgba(27, 53, 133, 0.33);

    transform:
        translateY(-2px);
}


.login-button:hover i {
    transform:
        translateX(4px);
}


.login-button:active {
    transform:
        translateY(0);
}


/* ==================================================
   POWERED BY
================================================== */

.powered-by {
    margin-top: 20px;

    color: #7c8799;

    font-size: 13px;

    font-weight: 500;

    text-align: center;
}


.powered-by a {
    margin-left: 3px;

    color:
        var(--primary);

    font-weight: 700;

    text-decoration: none;
}


.powered-by a:hover {
    text-decoration: underline;
}


/* ==================================================
   MOBILE
================================================== */

@media (max-width: 576px) {

    .premium-login {
        align-items: center;

        padding:
            20px 14px;
    }


    .login-area {
        max-width:
            430px;
    }


    .login-box {
        padding:
            35px 22px;

        border-radius:
            17px;
    }


    .login-logo {
        margin-bottom:
            23px;
    }


    .login-logo img {
        max-width:
            180px;

        height:
            47px;
    }


    .login-heading {
        margin-bottom:
            25px;
    }


    .login-heading h1 {
        font-size:
            26px;
    }


    .login-heading p {
        font-size:
            13px;
    }


    .input-box,
    .input-box input {
        height:
            50px;
    }


    .login-button {
        height:
            50px;
    }


    .powered-by {
        margin-top:
            17px;
    }

}