:root{
    --login-green:#006b57;
    --login-green-dark:#003f34;
    --login-deep:#00382f;
    --login-gold:#f7bd00;
    --login-soft:#ebfaf5;
    --login-text:#1f2e2a;
    --login-muted:#777f7c;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body.school-login{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:30px;
    overflow-x:hidden;
    background:radial-gradient(circle at 50% 42%,#0a6654 0,#024c40 42%,#002f28 100%);
    color:var(--login-text);
    font-family:"Poppins",sans-serif;
}
.login-card-shell{
    width:min(725px,88vw);
    min-height:340px;
    display:grid;
    grid-template-columns:1.02fr .98fr;
    overflow:hidden;
    background:#fff;
    border:1px solid rgba(255,255,255,.9);
    border-radius:34px;
    box-shadow:0 22px 64px rgba(0,25,21,.30);
}
.login-visual{
    position:relative;
    min-height:440px;
    overflow:hidden;
    color:#fff;
    background-image:var(--login-cover);
    background-size:cover;
    background-position:center;
}
.login-visual::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--login-cover);
    background-size:cover;
    background-position:center;
    transform:scale(1.01);
}
.login-visual-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(105deg,rgba(0,71,57,.96) 0%,rgba(0,90,71,.86) 48%,rgba(0,70,57,.73) 100%);
}
.login-visual-content{
    position:relative;
    z-index:2;
    height:100%;
    min-height:440px;
    display:flex;
    flex-direction:column;
    padding:30px 34px 28px;
}
.login-badge{
    width:max-content;
    padding:7px 16px;
    border:1.5px solid var(--login-gold);
    border-radius:999px;
    color:var(--login-gold);
    background:rgba(255,190,0,.08);
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
}
.login-tagline{margin:auto 0 24px}
.login-tagline h1{
    margin:0 0 18px;
    max-width:460px;
    font-family:"Philosopher",serif;
    font-size:42px;
    font-weight:700;
    line-height:1.08;
    letter-spacing:-.6px;
    text-shadow:0 2px 10px rgba(0,0,0,.14);
}
.login-tagline h1 span{color:var(--login-gold)}
.login-tagline p{
    margin:0;
    padding-left:14px;
    border-left:3px solid var(--login-gold);
    color:rgba(255,255,255,.8);
    font-size:14px;
    line-height:1.7;
}
.login-quote{
    padding:18px 20px;
    border:1px solid rgba(255,255,255,.27);
    border-radius:20px;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(12px);
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}
.login-quote p{
    margin:0 0 13px;
    color:#fff;
    font-size:14px;
    font-style:italic;
    font-weight:600;
    line-height:1.55;
}
.login-quote strong{
    color:var(--login-gold);
    font-size:11px;
    font-weight:700;
    letter-spacing:.4px;
}
.login-form-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px 34px 24px;
    background:#fff;
}
.login-form-inner{width:min(100%,390px)}
.login-brand{text-align:center;margin-bottom:28px}
.login-logo{
    width:78px;
    height:78px;
    display:grid;
    place-items:center;
    margin:0 auto 10px;
    color:var(--login-green);
    font-size:36px;
}
.login-logo img{width:100%;height:100%;object-fit:contain}
.login-brand h2{
    margin:0;
    color:#003d32;
    font-family:"Philosopher",serif;
    font-size:27px;
    font-weight:700;
    line-height:1.1;
}
.login-brand p{margin:5px 0 0;color:#8a8a8a;font-size:12px}
.login-field{margin-bottom:18px}
.login-field label{
    display:block;
    margin:0 0 7px;
    color:#00483a;
    font-size:12px;
    font-weight:700;
    letter-spacing:1.2px;
}
.login-label-row{display:flex;align-items:center;justify-content:space-between;gap:15px}
.login-label-row a{
    margin-bottom:7px;
    color:#7e7e7e;
    font-size:11px;
    text-decoration:none;
}
.login-label-row a:hover{color:var(--login-green)}
.login-input-wrap{
    width:100%;
    height:48px;
    display:flex;
    align-items:center;
    gap:13px;
    padding:0 15px;
    border:1.6px solid #bfded4;
    border-radius:13px;
    background:#fff;
    transition:.2s ease;
}
.login-field:nth-of-type(2) .login-input-wrap{background:var(--login-soft);border-color:transparent}
.login-input-wrap:focus-within{
    border-color:var(--login-green);
    background:#fff;
    box-shadow:0 0 0 4px rgba(0,107,87,.08);
}
.login-input-wrap>i{width:18px;color:var(--login-green);font-size:17px;text-align:center}
.login-input-wrap input{
    min-width:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:#303735;
    font:600 14px "Poppins",sans-serif;
}
.login-input-wrap input::placeholder{color:#7b7b7b;opacity:1}
.password-toggle{
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    flex:0 0 30px;
    padding:0;
    border:0;
    background:transparent;
    color:#6d7774;
    cursor:pointer;
    font-size:17px;
}
.remember-row{
    width:max-content;
    display:flex;
    align-items:center;
    gap:9px;
    margin:3px 0 28px;
    color:#737b78;
    cursor:pointer;
    font-size:12px;
}
.remember-row input{width:17px;height:17px;margin:0;accent-color:var(--login-green)}
.login-submit{
    width:100%;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:0 18px;
    border:0;
    border-radius:12px;
    color:#fff;
    background:linear-gradient(90deg,#005f4e,#00715c);
    box-shadow:0 10px 22px rgba(0,102,82,.23);
    cursor:pointer;
    font:700 13px "Poppins",sans-serif;
    transition:.2s ease;
}
.login-submit:hover{transform:translateY(-1px);box-shadow:0 13px 28px rgba(0,102,82,.28)}
.login-submit:disabled{opacity:.75;cursor:not-allowed;transform:none}
.login-footer{
    margin-top:22px;
    color:#c0c0c0;
    font-size:10px;
    font-weight:500;
    letter-spacing:3px;
    text-align:center;
}
.login-alert{
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin:-18px 0 18px;
    padding:10px 12px;
    border-radius:10px;
    font-size:11px;
    line-height:1.5;
}
.login-alert.success{color:#116044;background:#eaf8f2}.login-alert.danger{color:#9b2e2e;background:#fff0f0}
@media(max-width:900px){
    body.school-login{padding:14px;overflow-y:auto}
    .login-card-shell{width:min(540px,94vw);grid-template-columns:1fr;border-radius:28px}
    .login-visual{min-height:250px}
    .login-visual-content{min-height:250px;padding:24px 26px}
    .login-tagline{margin:auto 0 0}
    .login-tagline h1{font-size:34px;margin-bottom:10px}
    .login-tagline p{font-size:12px;line-height:1.55}
    .login-quote{display:none}
    .login-form-panel{padding:30px 28px 28px}
    .login-brand{margin-bottom:25px}
}
@media(max-width:480px){
    body.school-login{padding:0;background:#fff}
    .login-card-shell{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none}
    .login-visual{min-height:220px}
    .login-visual-content{min-height:220px;padding:20px}
    .login-badge{font-size:9px;padding:5px 11px}
    .login-tagline h1{font-size:29px}
    .login-tagline p{display:none}
    .login-form-panel{padding:26px 20px 24px}
    .login-logo{width:72px;height:72px}
    .login-brand h2{font-size:26px}
}
