/* Student password-recovery composition. Loaded only on forgot_password.php. */
html:has(body.student-recovery-page),
body.student-recovery-page{min-height:100%}

body.student-recovery-page{
    min-height:100svh!important;
    margin:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    color:#102a43!important;
    background:
        linear-gradient(112deg,rgba(1,37,27,.94),rgba(2,91,59,.74) 46%,rgba(5,57,51,.38)),
        var(--student-recovery-bg) center/cover fixed no-repeat!important;
}

body.student-recovery-page .top-header,
body.student-recovery-page>.portal-footer{display:none!important}

body.student-recovery-page .recovery-shell{
    position:relative;
    isolation:isolate;
    width:min(1160px,100%);
    height:100svh;
    min-height:0;
    margin:0 auto;
    padding:10px 16px 62px;
    display:grid;
    grid-template-rows:auto minmax(0,1fr);
    gap:10px;
    box-sizing:border-box;
}

body.student-recovery-page .recovery-brandbar{
    width:100%;
    min-height:2.8rem;
    padding:.45rem .7rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    box-sizing:border-box;
    border:1px solid rgba(255,255,255,.82);
    border-radius:1rem;
    background:rgba(255,255,255,.96);
    box-shadow:0 10px 26px rgba(1,35,24,.16);
    backdrop-filter:blur(12px);
}

body.student-recovery-page .recovery-brand{
    min-width:0;
    display:inline-flex;
    align-items:center;
    gap:.7rem;
    color:#0a5037;
    text-decoration:none;
}

body.student-recovery-page .recovery-brand img{
    width:2.65rem;
    height:2.65rem;
    flex:0 0 2.65rem;
    padding:.25rem;
    box-sizing:border-box;
    object-fit:contain;
    border:1px solid #d4eadb;
    border-radius:.78rem;
    background:#fff;
    box-shadow:0 7px 16px rgba(7,83,51,.14);
}

body.student-recovery-page .recovery-brand span{display:grid;min-width:0;gap:.12rem}
body.student-recovery-page .recovery-brand strong{color:#0a5037;font-size:.78rem;font-weight:900;line-height:1.2}
body.student-recovery-page .recovery-brand small{color:#527568;font-size:.62rem;font-weight:700}
body.student-recovery-page .recovery-back-top{color:#087f50;font-size:.68rem;font-weight:850;text-decoration:none;white-space:nowrap}
body.student-recovery-page .recovery-back-top:hover{color:#075a38}

body.student-recovery-page .recovery-grid{
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1.12fr) minmax(21rem,.88fr);
    gap:14px;
}

body.student-recovery-page .recovery-story,
body.student-recovery-page .recovery-card{min-width:0;min-height:0;box-sizing:border-box;border-radius:1rem}

body.student-recovery-page .recovery-story{
    position:relative;
    isolation:isolate;
    height:100%;
    overflow:hidden;
    padding:clamp(1.25rem,3vw,2rem);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    color:#fff;
    background:
        linear-gradient(135deg,rgba(1,43,29,.95),rgba(0,100,63,.68)),
        var(--student-recovery-bg) center/cover no-repeat;
    box-shadow:0 2rem 4rem rgba(1,32,22,.28);
}

body.student-recovery-page .recovery-story::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:radial-gradient(circle at 82% 16%,rgba(170,255,204,.24),transparent 32%),linear-gradient(0deg,rgba(0,35,23,.25),transparent 60%);
}

body.student-recovery-page .recovery-story-copy{position:relative;z-index:3;max-width:34rem}
body.student-recovery-page .recovery-eyebrow{margin:0;color:#c6f6d7;font-size:.66rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
body.student-recovery-page .recovery-eyebrow i{margin-right:.35rem;color:#a5efbf}
body.student-recovery-page .recovery-story h1{max-width:13ch;margin:.65rem 0 0;color:#fff;font-size:clamp(2rem,3.7vw,3.45rem);font-weight:850;letter-spacing:-.065em;line-height:.99;text-shadow:0 3px 22px rgba(0,24,16,.38)}
body.student-recovery-page .recovery-story-copy>p:last-child{max-width:27rem;margin:.7rem 0 0;color:#edfff3;font-size:.8rem;line-height:1.5}

body.student-recovery-page .recovery-students{position:absolute;z-index:1;right:-1rem;bottom:0;width:min(42%,24rem);max-height:68%;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 1.4rem 1.8rem rgba(0,0,0,.23));pointer-events:none}

body.student-recovery-page .recovery-trust{position:relative;z-index:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;max-width:31rem}
body.student-recovery-page .recovery-trust span{display:grid;grid-template-columns:1.75rem minmax(0,1fr);align-items:center;column-gap:.45rem;padding:.5rem;border:1px solid rgba(220,255,232,.28);border-radius:.7rem;background:rgba(0,39,26,.45);backdrop-filter:blur(8px)}
body.student-recovery-page .recovery-trust i{grid-row:span 2;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.55rem;background:rgba(231,255,239,.14);color:#d7ffe2}
body.student-recovery-page .recovery-trust strong{color:#fff;font-size:.63rem;font-weight:850}
body.student-recovery-page .recovery-trust small{color:#d8f9e4;font-size:.56rem;line-height:1.3}

body.student-recovery-page .recovery-card{
    align-self:stretch;
    width:100%;
    max-width:35rem;
    margin-left:auto;
    padding:clamp(1.35rem,2.8vw,2rem);
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:rgba(255,255,255,.98);
    border:1px solid rgba(255,255,255,.86);
    box-shadow:0 2rem 4rem rgba(3,40,28,.22);
}

body.student-recovery-page .recovery-card-icon{display:grid;place-items:center;width:2.65rem;height:2.65rem;margin-bottom:.65rem;border-radius:.78rem;background:linear-gradient(145deg,#e6faed,#c9f1d7);color:#087f50;font-size:1.15rem}
body.student-recovery-page .recovery-kicker{margin:0;color:#087f50;font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
body.student-recovery-page .recovery-card h2{margin:.4rem 0 0;color:#102a43;font-size:clamp(1.45rem,2.4vw,1.95rem);font-weight:850;letter-spacing:-.05em;line-height:1.08}
body.student-recovery-page .recovery-intro{max-width:28rem;margin:.55rem 0 1.1rem;color:#637789;font-size:.72rem;line-height:1.55}

body.student-recovery-page .recovery-alert{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 1rem;padding:.65rem .7rem;border-radius:.7rem;font-size:.68rem;line-height:1.4}
body.student-recovery-page .recovery-alert i{flex:0 0 auto;margin-top:.1rem}
body.student-recovery-page .recovery-alert--success{border:1px solid #b8dfc4;background:#effaf1;color:#18633d}
body.student-recovery-page .recovery-alert--warning{border:1px solid #efd9a6;background:#fff8e8;color:#805e18}
body.student-recovery-page .recovery-alert--danger{border:1px solid #efc1bc;background:#fff2f1;color:#8d2e2b}
body.student-recovery-page .recovery-alert--info{border:1px solid #c7ddec;background:#f0f7fc;color:#315d7e}

body.student-recovery-page .recovery-form{display:grid;gap:.7rem}
body.student-recovery-page .recovery-field{display:grid;gap:.35rem}
body.student-recovery-page .recovery-field label{color:#29465a;font-size:.66rem;font-weight:850}
body.student-recovery-page .recovery-input{position:relative;display:flex;align-items:center}
body.student-recovery-page .recovery-input>i{position:absolute;left:.82rem;color:#087f50;pointer-events:none}
body.student-recovery-page .recovery-input input{width:100%;min-height:2.75rem;padding:.62rem .75rem .62rem 2.55rem;box-sizing:border-box;border:1px solid #c7d7e2;border-radius:.7rem;background:#fbfdff;color:#102a43;font-size:.8rem;outline:0}
body.student-recovery-page .recovery-input input:focus{border-color:#0f8a5c;box-shadow:0 0 0 .22rem rgba(15,138,92,.14)}
body.student-recovery-page .recovery-submit{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;min-height:2.85rem;border:0;border-radius:.7rem;background:linear-gradient(135deg,#087f50,#21b44e);color:#fff;font-size:.78rem;font-weight:900;box-shadow:0 12px 24px rgba(8,127,80,.22);cursor:pointer}
body.student-recovery-page .recovery-submit:hover{filter:brightness(1.04);transform:translateY(-1px)}
body.student-recovery-page .recovery-help{margin:.75rem 0 0;padding-top:.65rem;border-top:1px solid #e1eaf0;color:#6a7d8c;font-size:.62rem;line-height:1.5}
body.student-recovery-page .recovery-help i{margin-right:.25rem;color:#087f50}
body.student-recovery-page .recovery-help a{color:#087f50;font-weight:850;text-decoration:none}
body.student-recovery-page .recovery-help a:hover{text-decoration:underline}

body.student-recovery-page .recovery-footer{position:fixed;z-index:20;right:0;bottom:0;left:0;width:100%;height:52px;min-height:52px;padding:.55rem 1rem;display:flex;align-items:center;justify-content:center;gap:1rem;box-sizing:border-box;border-top:1px solid rgba(187,247,208,.3);background:rgba(2,44,34,.95);box-shadow:0 -1rem 2.5rem rgba(1,32,22,.24);backdrop-filter:blur(16px);color:#e5ffed;font-size:.62rem}
body.student-recovery-page .recovery-footer i{color:#a7f3c5}
body.student-recovery-page .recovery-shell a:focus-visible,
body.student-recovery-page .recovery-shell button:focus-visible,
body.student-recovery-page .recovery-shell input:focus-visible{outline:3px solid #52d58d;outline-offset:3px}

@media(max-width:991px){
    body.student-recovery-page{height:auto!important;min-height:100svh!important;overflow:auto!important;background-attachment:scroll!important}
    body.student-recovery-page .recovery-shell{height:auto;min-height:0;padding:10px 12px 4.4rem;gap:10px}
    body.student-recovery-page .recovery-grid{grid-template-columns:1fr;max-width:54rem;margin:0 auto}
    body.student-recovery-page .recovery-story,
    body.student-recovery-page .recovery-card{height:auto;min-height:0}
    body.student-recovery-page .recovery-story{min-height:28rem}
    body.student-recovery-page .recovery-card{max-width:none;margin:0}
}

@media(max-width:640px){
    body.student-recovery-page .recovery-shell{padding:.75rem .75rem 4.2rem}
    body.student-recovery-page .recovery-brandbar{padding:.4rem .55rem}
    body.student-recovery-page .recovery-brand img{width:2.4rem;height:2.4rem;flex-basis:2.4rem}
    body.student-recovery-page .recovery-brand strong{font-size:.7rem}
    body.student-recovery-page .recovery-brand small{font-size:.56rem}
    body.student-recovery-page .recovery-back-top{font-size:.6rem}
    body.student-recovery-page .recovery-story{min-height:0;padding:1.15rem;gap:1rem}
    body.student-recovery-page .recovery-story h1{font-size:clamp(1.9rem,10vw,2.8rem)}
    body.student-recovery-page .recovery-students{position:relative;right:auto;bottom:auto;width:min(100%,21rem);max-height:none;margin:-.2rem auto 0;order:2}
    body.student-recovery-page .recovery-trust{order:3;grid-template-columns:1fr 1fr}
    body.student-recovery-page .recovery-card{padding:1.2rem;border-radius:.9rem}
}

@media(max-width:390px){
    body.student-recovery-page .recovery-trust{grid-template-columns:1fr}
    body.student-recovery-page .recovery-footer{height:auto;min-height:3.25rem;align-items:flex-start;flex-direction:column;gap:.15rem;padding:.55rem .75rem}
}

@media(prefers-reduced-motion:reduce){
    body.student-recovery-page *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
