:root{

    --green:#16a34a;
    --green-dark:#15803d;

    --border:#d7dfe8;
    --text:#111827;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,
body{
    height:100%;
}

body{

    min-height:100vh;

    display:flex;
    flex-direction:column;

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

    background:#ffffff;

    color:var(--text);

}

/*========================
 Header
========================*/

.site-header{

    background:#ffffff;

    border-bottom:1px solid #e5e7eb;

    text-align:center;

    padding:24px 20px;

    flex-shrink:0;

}

.site-logo{

    width:100%;
    max-width:600px;

}

/*========================
 Login Area
========================*/

.login-wrapper{

    flex:1;

    display:flex;

    justify-content:center;

    align-items:flex-start;

    padding:50px 20px 60px;

    background:
        radial-gradient(circle at left top,#2ecf6b 0%,transparent 30%),
        radial-gradient(circle at right bottom,#0b8f45 0%,transparent 35%),
        linear-gradient(135deg,#15803d,#14532d);

}

.login-card{

    width:100%;
    max-width:520px;

    background:#ffffff;

    border-radius:24px;

    padding:34px 38px;

    box-shadow:0 30px 60px rgba(0,0,0,.28);

}

.login-badge{

    width:fit-content;

    margin:0 auto 24px;

    padding:8px 18px;

    border-radius:999px;

    background:var(--green);

    color:#fff;

    font-size:12px;

    font-weight:800;

    letter-spacing:.15em;

}

.login-title{

    text-align:center;

    font-size:30px;

    font-weight:800;

    margin-bottom:16px;

}

.login-description{

    text-align:center;

    color:#64748b;

    font-size:14px;

    white-space:nowrap;

    margin-bottom:28px;

}

/*========================
 Form
========================*/

.form-group{

    margin-bottom:18px;

}

.form-group label{

    display:block;

    margin-bottom:10px;

    font-weight:700;

}

.form-group input{

    width:100%;

    height:54px;

    border:1px solid var(--border);

    border-radius:12px;

    padding:0 18px;

    font-size:15px;

    transition:.2s;

}

.form-group input:focus{

    outline:none;

    border-color:var(--green);

    box-shadow:0 0 0 4px rgba(22,163,74,.15);

}

.login-btn{

    width:100%;

    height:54px;

    margin-top:10px;

    border:none;

    border-radius:12px;

    background:linear-gradient(135deg,#1ab24e,#15803d);

    color:#fff;

    font-size:18px;

    font-weight:700;

    cursor:pointer;

    transition:.2s;

}

.login-btn:hover{

    transform:translateY(-2px);

    box-shadow:0 15px 30px rgba(22,163,74,.25);

}

.login-error{

    margin-bottom:24px;

    padding:14px 18px;

    border-left:5px solid #dc2626;

    background:#fef2f2;

    color:#b91c1c;

    border-radius:10px;

    font-weight:700;

}

/*========================
 Footer
========================*/

.site-footer{

    flex-shrink:0;

    background:#166534;

    color:#ffffff;

    text-align:center;

    padding:28px 20px;

    border-top:1px solid rgba(255,255,255,.15);

}

.footer-inner{

    max-width:800px;

    margin:auto;

}

.footer-inner h3{

    margin-bottom:12px;

    font-size:24px;

}

.footer-inner p{

    margin:6px 0;

    color:rgba(255,255,255,.9);

}

.footer-inner small{

    display:block;

    margin-top:18px;

    color:rgba(255,255,255,.7);

}

/*========================
 Mobile
========================*/

@media(max-width:768px){

    .site-logo{

        max-width:100%;

    }

    .login-wrapper{

        padding:40px 16px;

    }

    .login-card{

        padding:28px;

    }

    .login-title{

        font-size:30px;

    }

    .login-description{

        white-space:normal;

    }

}