css
/* =========================================================
   RIGSAM GIS
   LOGIN PAGE
   =========================================================

   This stylesheet is intentionally scoped to:

       .login-page
       .login-card

   so existing base.css / style.css rules do not stretch
   the login controls across the browser width.
========================================================= */


/* =========================================================
   PAGE
========================================================= */

.login-page {
    position: relative;

    width: 100%;
    min-height: calc(100vh - 150px);

    display: flex;

    align-items: center;
    justify-content: center;

    padding:
        50px 20px 60px;

    background:
        linear-gradient(
            135deg,
            #f1f3ec 0%,
            #f7f5ed 52%,
            #eef3ef 100%
        );

    overflow: hidden;
}


/* =========================================================
   GIS BACKGROUND SHAPES
========================================================= */

.login-page::before {
    content: "";

    position: absolute;

    width: 480px;
    height: 480px;

    left: -250px;
    top: -190px;

    border-radius: 50%;

    border:
        1px solid rgba(102,134,88,0.18);

    box-shadow:
        0 0 0 35px rgba(102,134,88,0.035),
        0 0 0 75px rgba(57,129,138,0.025);

    pointer-events: none;
}


.login-page::after {
    content: "";

    position: absolute;

    width: 420px;
    height: 420px;

    right: -220px;
    bottom: -220px;

    border-radius: 50%;

    border:
        1px solid rgba(169,103,67,0.16);

    box-shadow:
        0 0 0 35px rgba(169,103,67,0.025),
        0 0 0 75px rgba(163,145,66,0.025);

    pointer-events: none;
}


/* =========================================================
   LOGIN CARD
========================================================= */

.login-card {
    position: relative;

    z-index: 5;

    width: 100%;
    max-width: 440px;

    padding:
        40px 42px 30px;

    background:
        #ffffff;

    border:
        1px solid #dce1da;

    border-radius:
        16px;

    box-shadow:
        0 22px 55px rgba(38,57,47,0.12);

    overflow: hidden;
}


/* =========================================================
   TOP GIS COLOUR STRIP
========================================================= */

.login-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 5px;

    background:
        linear-gradient(
            90deg,
            #668658 0%,
            #39818a 35%,
            #a96743 70%,
            #a39142 100%
        );
}


/* =========================================================
   BRAND
========================================================= */

.login-brand {
    display: flex;

    align-items: center;

    gap: 13px;

    margin-bottom: 32px;
}


.login-brand-mark {
    width: 48px;
    height: 48px;

    display: flex;

    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            #26392f,
            #354f44
        );

    color:
        #ffffff;

    font-size:
        15px;

    font-weight:
        800;

    letter-spacing:
        0.5px;

    box-shadow:
        0 7px 15px rgba(38,57,47,0.16);
}


.login-brand-name {
    display: flex;

    flex-direction: column;

    gap: 3px;
}


.login-brand-name strong {
    color:
        #26392f;

    font-size:
        18px;

    line-height:
        1.2;
}


.login-brand-name span {
    color:
        #748079;

    font-size:
        10px;

    letter-spacing:
        0.3px;
}


/* =========================================================
   HEADING
========================================================= */

.login-heading {
    margin-bottom:
        27px;
}


.login-heading h1 {
    margin:
        0 0 8px;

    color:
        #26392f;

    font-size:
        28px;

    line-height:
        1.2;

    font-weight:
        700;
}


.login-heading p {
    margin:
        0;

    color:
        #707b75;

    font-size:
        12px;

    line-height:
        1.65;
}


/* =========================================================
   FORM
========================================================= */

.login-form {
    width:
        100%;

    display:
        flex;

    flex-direction:
        column;

    gap:
        18px;
}


/* =========================================================
   FIELD
========================================================= */

.login-field {
    width:
        100%;

    display:
        flex;

    flex-direction:
        column;

    gap:
        7px;
}


.login-field label {
    color:
        #405048;

    font-size:
        12px;

    font-weight:
        700;
}


/* =========================================================
   INPUT / SELECT
========================================================= */

.login-field input,
.login-field select {
    display:
        block;

    width:
        100%;

    height:
        47px;

    padding:
        0 13px;

    border:
        1px solid #d5dcd6;

    border-radius:
        8px;

    background:
        #fafbf9;

    color:
        #30413a;

    font-family:
        inherit;

    font-size:
        13px;

    outline:
        none;

    box-shadow:
        none;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}


.login-field input::placeholder {
    color:
        #929b96;
}


.login-field select {
    cursor:
        pointer;

    color:
        #53615a;
}


/* =========================================================
   FOCUS
========================================================= */

.login-field input:focus,
.login-field select:focus {

    border-color:
        #39818a;

    background:
        #ffffff;

    box-shadow:
        0 0 0 3px rgba(57,129,138,0.11);
}


/* =========================================================
   LOGIN BUTTON
========================================================= */

.login-button {
    width:
        100%;

    height:
        49px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        12px;

    margin-top:
        3px;

    border:
        none;

    border-radius:
        8px;

    background:
        linear-gradient(
            135deg,
            #26392f,
            #354f44
        );

    color:
        #ffffff;

    font-family:
        inherit;

    font-size:
        13px;

    font-weight:
        700;

    letter-spacing:
        0.2px;

    cursor:
        pointer;

    box-shadow:
        0 8px 18px rgba(38,57,47,0.18);

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}


.login-button-arrow {
    font-size:
        18px;

    line-height:
        1;
}


.login-button:hover {
    background:
        linear-gradient(
            135deg,
            #1c2e27,
            #2f483c
        );

    transform:
        translateY(-1px);

    box-shadow:
        0 11px 24px rgba(38,57,47,0.23);
}


.login-button:active {
    transform:
        translateY(0);

    box-shadow:
        0 6px 13px rgba(38,57,47,0.17);
}


/* =========================================================
   FOOTER
========================================================= */

.login-footer {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    gap:
        5px;

    margin-top:
        25px;

    padding-top:
        20px;

    border-top:
        1px solid #e8ebe8;

    color:
        #77817c;

    font-size:
        12px;
}


.login-footer a {
    color:
        #39818a;

    font-weight:
        700;

    text-decoration:
        none;
}


.login-footer a:hover {
    color:
        #286872;

    text-decoration:
        underline;
}


/* =========================================================
   BOTTOM NOTE
========================================================= */

.login-note {
    margin-top:
        19px;

    color:
        #9aa29d;

    font-size:
        9px;

    line-height:
        1.5;

    text-align:
        center;

    letter-spacing:
        0.3px;
}


.login-note span {
    margin:
        0 5px;

    color:
        #a96743;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 600px) {

    .login-page {
        min-height:
            calc(100vh - 110px);

        padding:
            35px 15px 45px;
    }


    .login-card {
        max-width:
            440px;

        padding:
            35px 25px 28px;

        border-radius:
            13px;
    }


    .login-brand {
        margin-bottom:
            27px;
    }


    .login-heading h1 {
        font-size:
            25px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 380px) {

    .login-page {
        padding:
            25px 10px 35px;
    }


    .login-card {
        padding:
            32px 20px 25px;
    }


    .login-brand-mark {
        width:
            44px;

        height:
            44px;
    }


    .login-heading h1 {
        font-size:
            23px;
    }

}

