/*
|--------------------------------------------------------------------------
| CyberDojo - Forgot Password
|--------------------------------------------------------------------------
|
| Page-specific styling for:
|
| /auth/forgot-password.php
|
| Shared authentication styling is provided by:
|
| /assets/css/auth/auth.css
|
*/


/*
|--------------------------------------------------------------------------
| Forgot Password Card
|--------------------------------------------------------------------------
*/

.forgot-password-card {
    max-width: 560px;
}


/*
|--------------------------------------------------------------------------
| Page Container
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-container {
    padding-top: 42px;
    padding-bottom: 42px;
}


/*
|--------------------------------------------------------------------------
| Heading
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-heading {
    margin-bottom: 26px;
}


.page-forgot-password .auth-heading h1 {
    margin-bottom: 10px;
}


.page-forgot-password .auth-heading p {
    max-width: 440px;
    margin-right: auto;
    margin-left: auto;
}


/*
|--------------------------------------------------------------------------
| Form
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-form {
    gap: 20px;
}


/*
|--------------------------------------------------------------------------
| Email Field
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-field {
    width: 100%;
}


.page-forgot-password .auth-input-wrapper input {
    width: 100%;
}


/*
|--------------------------------------------------------------------------
| Submit Button
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-submit {
    width: 100%;
    margin-top: 2px;
}


/*
|--------------------------------------------------------------------------
| Authentication Switch
|--------------------------------------------------------------------------
*/

.page-forgot-password .auth-switch {
    margin-top: 24px;
}


/*
|--------------------------------------------------------------------------
| Password Reset Splash
|--------------------------------------------------------------------------
*/

.password-reset-splash {
    display: flex;

    width: 100%;

    flex-direction: column;

    align-items: center;

    gap: 20px;

    padding:
        8px
        0
        4px;

    text-align: center;
}


/*
|--------------------------------------------------------------------------
| Splash Icon
|--------------------------------------------------------------------------
*/

.password-reset-splash-icon {
    display: grid;

    width: 82px;
    height: 82px;

    place-items: center;

    border:
        1px solid
        rgba(
            255,
            215,
            0,
            0.24
        );

    border-radius:
        var(--radius-round);

    background:
        rgba(
            255,
            215,
            0,
            0.07
        );

    color:
        var(--accent);

    font-size: 2rem;

    box-shadow:
        0 0 0 7px
        rgba(
            255,
            215,
            0,
            0.025
        ),
        0 0 38px
        rgba(
            255,
            215,
            0,
            0.12
        );

    animation:
        password-reset-icon-pulse
        3.8s
        ease-in-out
        infinite;
}


@keyframes password-reset-icon-pulse {

    0%,
    100% {

        box-shadow:
            0 0 0 7px
            rgba(
                255,
                215,
                0,
                0.025
            ),
            0 0 28px
            rgba(
                255,
                215,
                0,
                0.10
            );
    }


    50% {

        box-shadow:
            0 0 0 9px
            rgba(
                255,
                215,
                0,
                0.04
            ),
            0 0 48px
            rgba(
                255,
                215,
                0,
                0.19
            );
    }

}


/*
|--------------------------------------------------------------------------
| Splash Heading
|--------------------------------------------------------------------------
*/

.password-reset-splash-heading {
    width: 100%;
    max-width: 470px;
}


.password-reset-splash-eyebrow {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    margin-bottom: 10px;

    color:
        var(--accent);

    font-size:
        var(--text-xs);

    font-weight:
        var(--font-black);

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}


.password-reset-splash-heading h1 {
    margin:
        0
        0
        10px;

    color:
        var(--text-primary);

    font-size:
        clamp(
            1.9rem,
            5vw,
            2.35rem
        );

    font-weight:
        var(--font-black);

    letter-spacing:
        -0.04em;
}


.password-reset-splash-heading p {
    margin: 0;

    color:
        var(--text-muted);

    font-size:
        var(--text-sm);

    line-height:
        var(--leading-relaxed);
}


/*
|--------------------------------------------------------------------------
| Requested Email Address
|--------------------------------------------------------------------------
*/

.password-reset-email {
    display: inline-flex;

    max-width: 100%;

    align-items: center;

    justify-content: center;

    gap: 9px;

    padding:
        11px
        16px;

    border:
        1px solid
        var(--border-primary);

    border-radius:
        var(--radius-pill);

    background:
        var(--bg-tertiary);

    color:
        var(--text-primary);

    font-size:
        var(--text-sm);

    font-weight:
        var(--font-bold);
}


.password-reset-email i {
    flex-shrink: 0;

    color:
        var(--accent);
}


.password-reset-email span {
    overflow: hidden;

    max-width: 100%;

    text-overflow: ellipsis;

    white-space: nowrap;
}


/*
|--------------------------------------------------------------------------
| Reset Instruction
|--------------------------------------------------------------------------
*/

.password-reset-instruction {
    max-width: 450px;

    margin: 0;

    color:
        var(--text-muted);

    font-size:
        var(--text-sm);

    line-height:
        var(--leading-relaxed);
}


/*
|--------------------------------------------------------------------------
| Email Help Card
|--------------------------------------------------------------------------
*/

.password-reset-mail-help {
    width: 100%;

    padding: 18px;

    border:
        1px solid
        var(--border-primary);

    border-radius:
        var(--radius-xl);

    background:
        rgba(
            255,
            255,
            255,
            0.018
        );

    text-align: left;
}


/*
|--------------------------------------------------------------------------
| Email Help Heading
|--------------------------------------------------------------------------
*/

.password-reset-mail-help-heading {
    display: flex;

    align-items:
        flex-start;

    gap: 11px;

    padding-bottom: 14px;

    border-bottom:
        1px solid
        var(--border-neutral);
}


.password-reset-mail-help-heading > i {
    flex-shrink: 0;

    margin-top: 2px;

    color:
        var(--accent);

    font-size:
        1.05rem;
}


.password-reset-mail-help-heading strong,
.password-reset-mail-help-heading span {
    display: block;
}


.password-reset-mail-help-heading strong {
    color:
        var(--text-primary);

    font-size:
        var(--text-sm);
}


.password-reset-mail-help-heading span {
    margin-top: 4px;

    color:
        var(--text-subtle);

    font-size:
        var(--text-xs);

    line-height: 1.55;
}


/*
|--------------------------------------------------------------------------
| Email Folder Checklist
|--------------------------------------------------------------------------
*/

.password-reset-mail-checklist {
    display: grid;

    gap: 10px;

    margin:
        15px
        0
        0;

    padding: 0;

    list-style: none;
}


.password-reset-mail-checklist li {
    display: flex;

    align-items:
        flex-start;

    gap: 9px;

    color:
        var(--text-muted);

    font-size:
        var(--text-xs);

    line-height: 1.55;
}


.password-reset-mail-checklist li > i {
    flex-shrink: 0;

    margin-top: 2px;

    color:
        var(--accent);
}


.password-reset-mail-checklist strong {
    color:
        var(--text-secondary);
}


/*
|--------------------------------------------------------------------------
| Reset Link Expiry
|--------------------------------------------------------------------------
*/

.password-reset-expiry {
    display: flex;

    width: 100%;

    align-items:
        center;

    justify-content:
        center;

    gap: 9px;

    padding:
        13px
        15px;

    border:
        1px solid
        rgba(
            255,
            215,
            0,
            0.15
        );

    border-radius:
        var(--radius-lg);

    background:
        rgba(
            255,
            215,
            0,
            0.035
        );

    color:
        var(--text-muted);

    font-size:
        var(--text-xs);

    line-height: 1.5;
}


.password-reset-expiry > i {
    flex-shrink: 0;

    color:
        var(--accent);

    font-size:
        1rem;
}


.password-reset-expiry strong {
    color:
        var(--accent);
}


/*
|--------------------------------------------------------------------------
| Primary Action
|--------------------------------------------------------------------------
*/

.password-reset-primary-action {
    display: inline-flex;

    width: 100%;

    align-items: center;

    justify-content: center;

    gap: 8px;

    margin-top: 2px;

    text-decoration: none;
}


/*
|--------------------------------------------------------------------------
| Request Another Email
|--------------------------------------------------------------------------
*/

.password-reset-again {
    width: 100%;

    margin: 0;
}


.password-reset-again-button {
    display: inline-flex;

    width: 100%;

    min-height: 44px;

    align-items: center;

    justify-content: center;

    gap: 8px;

    padding:
        10px
        14px;

    border:
        1px solid
        var(--border-neutral);

    border-radius:
        var(--radius-md);

    background:
        transparent;

    color:
        var(--text-muted);

    font: inherit;

    font-size:
        var(--text-xs);

    font-weight:
        var(--font-bold);

    cursor: pointer;

    transition:
        border-color
        var(--transition-fast),
        background
        var(--transition-fast),
        color
        var(--transition-fast),
        transform
        var(--transition-fast);
}


.password-reset-again-button:hover {
    border-color:
        rgba(
            255,
            215,
            0,
            0.30
        );

    background:
        var(--accent-bg);

    color:
        var(--accent);

    transform:
        translateY(-1px);
}


.password-reset-again-button:active {
    transform:
        translateY(0);
}


.password-reset-again-button i {
    transition:
        transform
        var(--transition-fast);
}


.password-reset-again-button:hover i {
    transform:
        rotate(-35deg);
}


/*
|--------------------------------------------------------------------------
| Support
|--------------------------------------------------------------------------
*/

.password-reset-support {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    justify-content: center;

    gap:
        5px
        7px;

    color:
        var(--text-subtle);

    font-size:
        var(--text-xs);
}


.password-reset-support a {
    color:
        var(--accent);

    font-weight:
        var(--font-bold);

    text-decoration: none;
}


.password-reset-support a:hover {
    text-decoration:
        underline;
}


/*
|--------------------------------------------------------------------------
| Card Entry Animation
|--------------------------------------------------------------------------
*/

.page-forgot-password
.auth-page.auth-page-ready
.forgot-password-card {
    animation:
        forgot-password-card-entry
        480ms
        ease
        both;
}


@keyframes forgot-password-card-entry {

    from {

        opacity: 0;

        transform:
            translateY(18px)
            scale(0.985);
    }


    to {

        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }

}


/*
|--------------------------------------------------------------------------
| Success Splash Entry
|--------------------------------------------------------------------------
*/

.page-forgot-password
.auth-page.auth-page-ready
.password-reset-splash {
    animation:
        password-reset-splash-entry
        520ms
        ease
        both;
}


@keyframes password-reset-splash-entry {

    from {

        opacity: 0;

        transform:
            translateY(10px);
    }


    to {

        opacity: 1;

        transform:
            translateY(0);
    }

}


/*
|--------------------------------------------------------------------------
| Tablet
|--------------------------------------------------------------------------
*/

@media (
    max-width: 768px
) {

    .forgot-password-card {
        max-width: 540px;
    }


    .password-reset-splash-heading {
        max-width: 100%;
    }

}


/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (
    max-width: 620px
) {

    .forgot-password-card {
        max-width: 100%;
    }


    .page-forgot-password .auth-container {
        padding-top: 20px;
        padding-bottom: 20px;
    }


    .password-reset-splash {
        gap: 18px;
    }


    .password-reset-splash-icon {
        width: 72px;
        height: 72px;

        font-size: 1.75rem;
    }


    .password-reset-splash-heading h1 {
        font-size: 1.85rem;
    }


    .password-reset-mail-help {
        padding: 16px;
    }


    .password-reset-expiry {
        align-items:
            flex-start;

        justify-content:
            flex-start;

        text-align: left;
    }

}


/*
|--------------------------------------------------------------------------
| Small Mobile
|--------------------------------------------------------------------------
*/

@media (
    max-width: 420px
) {

    .password-reset-splash {
        gap: 16px;
    }


    .password-reset-splash-icon {
        width: 66px;
        height: 66px;

        font-size: 1.6rem;
    }


    .password-reset-splash-heading h1 {
        font-size: 1.7rem;
    }


    .password-reset-email {
        width: 100%;

        border-radius:
            var(--radius-lg);
    }


    .password-reset-mail-help {
        padding: 14px;
    }


    .password-reset-mail-help-heading {
        gap: 9px;
    }


    .password-reset-expiry {
        padding: 12px;
    }


    .password-reset-again-button {
        min-height: 42px;
    }

}


/*
|--------------------------------------------------------------------------
| Reduced Motion
|--------------------------------------------------------------------------
*/

@media (
    prefers-reduced-motion: reduce
) {

    .password-reset-splash-icon,

    .page-forgot-password
    .auth-page.auth-page-ready
    .forgot-password-card,

    .page-forgot-password
    .auth-page.auth-page-ready
    .password-reset-splash {
        animation:
            none !important;
    }


    .password-reset-again-button,

    .password-reset-again-button i {
        transition:
            none;
    }

}