/**
 * LMS login & forgot-password pages only.
 * Scoped to #page-login-index and #page-login-forgot_password so signup/other pages are unaffected.
 */

body#page-login-index,
body#page-login-forgot_password {
    background: linear-gradient(135deg, #19365e 0%, #086e37 100%) !important;
    min-height: 100vh;
}

#page-login-index,
#page-login-forgot_password {
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

#page-login-index.pagelayout-login #page-wrapper,
#page-login-forgot_password.pagelayout-login #page-wrapper,
#page-login-index.pagelayout-login #page,
#page-login-forgot_password.pagelayout-login #page,
#page-login-index.pagelayout-login #region-main-box,
#page-login-forgot_password.pagelayout-login #region-main-box,
#page-login-index.pagelayout-login #region-main,
#page-login-forgot_password.pagelayout-login #region-main {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

#page-login-index.pagelayout-login #page,
#page-login-forgot_password.pagelayout-login #page {
    background: linear-gradient(135deg, #19365e 0%, #086e37 100%) !important;
    min-height: 100vh;
}

#page-login-index .registration-topbar,
#page-login-forgot_password .registration-topbar {
    display: none !important;
}

#page-login-index #page-footer,
#page-login-forgot_password #page-footer {
    display: none !important;
}

#page-login-index .lms-login-wrapper-outer,
#page-login-forgot_password .lms-login-wrapper-outer {
    min-height: 100vh;
}

#page-login-index .lms-login-page,
#page-login-forgot_password .lms-login-page {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 2rem 1rem;
}

#page-login-index .lms-login-page-inner,
#page-login-forgot_password .lms-login-page-inner {
    margin: 0 auto;
    max-width: 520px;
    width: 100%;
}

/* Logo above the login card (login + forgot password). */
#page-login-index .lms-login-logo,
#page-login-forgot_password .lms-login-logo {
    display: block;
    margin-bottom: 1.5rem;
    text-align: center;
}

#page-login-index .lms-login-logo img,
#page-login-forgot_password .lms-login-logo img,
#page-login-confirm .lms-login-logo img {
    display: block;
    height: auto;
    margin: 0 auto;
    max-height: 72px;
    max-width: 240px;
    object-fit: contain;
    width: auto;
}

#page-login-index .lms-login-card,
#page-login-forgot_password .lms-login-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    color: #212529;
    padding: 3rem;
}

#page-login-index .login-wrapper,
#page-login-forgot_password .login-wrapper {
    height: auto !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

#page-login-index .login-container,
#page-login-forgot_password .login-container {
    background: transparent !important;
    box-shadow: none !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

/* Login form */
#page-login-index .lms-login-header {
    margin-bottom: 2rem;
    text-align: center;
}

#page-login-index .lms-login-title {
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}

#page-login-index .lms-login-subtitle {
    color: #6c757d;
    margin: 0;
}

#page-login-index .lms-loginform .form-control:focus,
#page-login-forgot_password .mform .form-control:focus {
    border-color: #086e37;
    box-shadow: 0 0 0 0.2rem rgba(8, 110, 55, 0.25);
}

#page-login-index .lms-portal-btn,
#page-login-forgot_password .lms-portal-btn {
    background: #19365e !important;
    border: none !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 0.75rem 1rem;
    transition: all 0.3s ease;
    width: 100%;
}

#page-login-index .lms-portal-btn:hover,
#page-login-forgot_password .lms-portal-btn:hover {
    background: #446591 !important;
    color: #fff !important;
    transform: scale(1.02);
}

#page-login-index .lms-portal-link,
#page-login-forgot_password .lms-portal-link {
    color: #19365e;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.3s ease;
}

#page-login-index .lms-portal-link:hover,
#page-login-forgot_password .lms-portal-link:hover {
    color: #446591;
    text-decoration: underline;
}

#page-login-index .login-form-password .form-control {
    border-bottom-right-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}

#page-login-index .login-form-password [data-passwordunmask] {
    border-color: #ced4da;
}

/* Hide extras on login index (match HTML mockup) */
#page-login-index .loginform .login-heading,
#page-login-index .loginform > h1.login-heading,
#page-login-index #loginlogo,
#page-login-index .login-divider,
#page-login-index .login-instructions,
#page-login-index .login-signup,
#page-login-index .login-identityproviders,
#page-login-index #guestlogin,
#page-login-index .lms-login-footer-actions {
    display: none !important;
}

/* Forgot: hide initial instructions only (not the post-submit #notice box). */
#page-login-forgot_password .generalbox.boxwidthnormal {
    display: none !important;
}

/* Success / error message after submit (#notice from Moodle notice()) */
#page-login-forgot_password #notice,
#page-login-forgot_password #notice.generalbox,
#page-login-forgot_password .generalbox#notice,
#page-login-forgot_password .lms-forgot-notice-visible {
    background: #f8f9fa !important;
    border: 1px solid #e9ecef !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: #212529 !important;
    display: block !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    margin: 0 0 1.5rem !important;
    opacity: 1 !important;
    padding: 1.25rem 1.5rem !important;
    text-align: center !important;
    visibility: visible !important;
    width: 100% !important;
}

#page-login-forgot_password #notice p,
#page-login-forgot_password #notice.generalbox p {
    color: #212529 !important;
    display: block !important;
    font-size: 1rem !important;
    margin: 0 0 0.75rem !important;
    visibility: visible !important;
}

#page-login-forgot_password #notice p:last-child {
    margin-bottom: 0 !important;
}

#page-login-forgot_password .continuebutton,
#page-login-forgot_password .continuebutton a,
#page-login-forgot_password .continuebutton .btn {
    display: block;
    margin: 0 auto;
    text-align: center;
    width: 100%;
}

#page-login-forgot_password .continuebutton .btn-primary,
#page-login-forgot_password .continuebutton a.btn-primary {
    background: #19365e !important;
    border: none !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 0.75rem 1rem;
    width: 100%;
    max-width: 100%;
}

#page-login-forgot_password .continuebutton .btn-primary:hover,
#page-login-forgot_password .continuebutton a.btn-primary:hover {
    background: #446591 !important;
    color: #fff !important;
}

/* Forgot: hide JS portal header if present (markup kept). */
#page-login-forgot_password .lms-login-forgot-header {
    display: none !important;
}

#page-login-forgot_password #id_searchbyusernameheader,
#page-login-forgot_password #id_searchbyemailheader {
    border-bottom: 1px solid #dee2e6;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 1.25rem 0 0.75rem;
    padding-bottom: 0.5rem;
    width: 100%;
}

#page-login-forgot_password #id_searchbyusernameheader {
    margin-top: 0;
}

#page-login-forgot_password .mform hr {
    margin: 1.25rem 0;
}

/* Full-width fields (same rules as Moodle .mform.full-width-labels) */
#page-login-forgot_password .lms-login-card form.mform .fitem.row {
    margin-left: 0;
    margin-right: 0;
}

#page-login-forgot_password .lms-login-card form.mform .fitem.row > .col-md-3,
#page-login-forgot_password .lms-login-card form.mform .fitem.row > .col-md-9 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding-left: 0;
    padding-right: 0;
    width: 100% !important;
}

#page-login-forgot_password .lms-login-card form.mform .fitem.row.femptylabel > .col-md-3 {
    display: none;
}

#page-login-forgot_password .lms-login-card form.mform .fitem.row .form-control,
#page-login-forgot_password .lms-login-card form.mform .felement[data-fieldtype="text"] input {
    width: 100% !important;
    max-width: 100% !important;
}

#page-login-forgot_password .lms-login-card form.mform .felement.d-flex[data-fieldtype="text"] {
    display: block !important;
}

#page-login-forgot_password .lms-login-card form.mform #fitem_id_username label,
#page-login-forgot_password .lms-login-card form.mform #fitem_id_email label {
    font-weight: 600;
    margin-bottom: 0.35rem;
}

#page-login-forgot_password .lms-login-card form.mform input#id_username,
#page-login-forgot_password .lms-login-card form.mform input#id_email {
    font-size: 1.1rem;
    min-height: 3rem;
    padding: 0.55rem 0.85rem;
}

#page-login-forgot_password .lms-login-card form.mform #fitem_id_submit {
    margin-top: 1.5rem;
}

#page-login-forgot_password .lms-login-card form.mform #fitem_id_submit .felement[data-fieldtype="submit"] {
    display: block !important;
    width: 100% !important;
}

#page-login-forgot_password .lms-login-card form.mform input#id_submit.lms-portal-btn,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.btn-primary {
    --bs-btn-bg: #19365e;
    --bs-btn-border-color: #19365e;
    --bs-btn-hover-bg: #446591;
    --bs-btn-hover-border-color: #446591;
    --bs-btn-active-bg: #446591;
    --bs-btn-active-border-color: #446591;
    background: #19365e !important;
    border: none !important;
    border-radius: 8px !important;
    box-sizing: border-box;
    color: #fff !important;
    display: block;
    font-size: 1.1rem;
    font-weight: 600;
    min-height: 3rem;
    padding: 0.75rem 1rem;
    transition: all 0.3s ease;
    width: 100% !important;
    max-width: 100% !important;
}

#page-login-forgot_password .lms-login-card form.mform input#id_submit.lms-portal-btn:hover,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.btn-primary:hover,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.lms-portal-btn:focus,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.btn-primary:focus,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.lms-portal-btn:active,
#page-login-forgot_password .lms-login-card form.mform input#id_submit.btn-primary:active {
    background: #446591 !important;
    border: none !important;
    box-shadow: 0 0 0 0.2rem rgba(25, 54, 94, 0.25);
    color: #fff !important;
    outline: none;
    transform: scale(1.02);
}

#page-login-forgot_password .lms-login-back {
    border-top: 1px solid #dee2e6;
    margin-top: 2rem;
    padding-top: 2rem;
}

#page-login-forgot_password .mform .fdescription,
#page-login-forgot_password .mform .form-control-static {
    display: none;
}

@media (max-width: 575.98px) {
    #page-login-index .lms-login-card,
    #page-login-forgot_password .lms-login-card {
        padding: 2rem 1.25rem;
    }
}
