\n/* =========================================================\n   AI-CRIMS — SHARED AUTHENTICATION DESIGN SYSTEM\n   Loaded after login.css + login-light-theme.css.\n   Visual-only layer for authentication pages.\n   ========================================================= */\n\nbody.login-light-theme.auth-shared-page {\n    --auth-primary: var(--lt-blue, #3E7BFA);\n    --auth-primary-deep: var(--lt-blue-deep, #2354D6);\n    --auth-violet: var(--lt-violet, #8B5CF6);\n    --auth-text: var(--lt-text, #1B2545);\n    --auth-text-soft: var(--lt-text-soft, #4B577C);\n    --auth-muted: var(--lt-muted, #7C88AC);\n    --auth-line: var(--lt-line, rgba(92,133,235,.22));\n    --auth-glass: var(--lt-card-bg, rgba(255,255,255,.60));\n    --auth-shadow: 0 30px 70px -24px rgba(62,90,160,.35);\n    /* Compatibility aliases used by the legacy auth components. */\n    --cyan: var(--lt-cyan, #22D3EE);\n    --danger: #C5342A;\n    --muted: var(--lt-muted, #7C88AC);\n    --muted-dim: #9AA5C2;\n    --ivory: var(--lt-text, #1B2545);\n    --line: var(--lt-line, rgba(92,133,235,.22));\n    --radius-pill: 999px;\n    min-height: 100vh;\n    overflow-x: hidden;\n}\n
/* =========================================================
   AUTHORITATIVE AUTH SHELL LAYOUT
   ========================================================= */

body.login-light-theme.auth-shared-page .shell {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px minmax(430px, 470px);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    gap: 30px;
    width: min(1320px, calc(100% - 64px));
    max-width: 1320px;
    height: 100svh;
    min-height: 100svh;
    margin: 0 auto;
    padding: 30px 0 34px;
    box-sizing: border-box;
    overflow: visible;
}

body.login-light-theme.auth-shared-page .promo-panel {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: 570px;
    justify-self: end;
    align-self: center;
    position: relative;
    z-index: 2;
    transform: none;
    animation: none;
}

body.login-light-theme.auth-shared-page .promo-headline {
    transform: none;
    animation: none;
}

body.login-light-theme.auth-shared-page .promo-illustration {
    grid-column: 2;
    grid-row: 1;
    width: 290px;
    max-width: 290px;
    justify-self: center;
    align-self: center;
    position: relative;
    margin: 0;
    z-index: 1;
    pointer-events: none;
}

body.login-light-theme.auth-shared-page .promo-illustration img {
    display: block;
    width: 100%;
    max-width: 290px;
    height: auto;
    border-radius: 18px;
}

body.login-light-theme.auth-shared-page .card-wrap {
    grid-column: 3;
    grid-row: 1;
    width: 100%;
    max-width: 470px;
    justify-self: start;
    align-self: center;
    position: relative;
    z-index: 3;
    flex: none;
}

@media (min-width: 1201px) {
    body.login-light-theme.auth-shared-page .shell {
        grid-template-columns: minmax(0, 1fr) 300px minmax(430px, 470px);
        width: min(1320px, calc(100% - 64px));
    }
}

@media (min-width: 941px) and (max-width: 1200px) {
    body.login-light-theme.auth-shared-page .shell {
        grid-template-columns: minmax(0, 1fr) minmax(410px, 450px);
        width: min(1120px, calc(100% - 36px));
    }
    body.login-light-theme.auth-shared-page .promo-panel {
        grid-column: 1;
        grid-row: 1;
        max-width: 560px;
    }
    body.login-light-theme.auth-shared-page .card-wrap {
        grid-column: 2;
        grid-row: 1;
        max-width: 450px;
    }
    body.login-light-theme.auth-shared-page .promo-illustration {
        display: none;
    }
}

/* Sign-up form: give the card enough width so all two-column fields
   remain readable at tablet/compact desktop widths. */
@media (max-width: 940px) and (min-width: 621px) {
    body.login-light-theme.auth-shared-page .shell {
        display: block;
        width: min(680px, calc(100% - 32px));
        max-width: 680px;
        height: auto;
        min-height: 100svh;
        padding: 28px 0 44px;
    }

    body.login-light-theme.auth-shared-page .promo-panel,
    body.login-light-theme.auth-shared-page .promo-illustration {
        display: none;
    }

    body.login-light-theme.auth-shared-page .card-wrap {
        width: 100%;
        max-width: 650px;
        margin: 0 auto;
    }
}

@media (max-width: 620px) {
    body.login-light-theme.auth-shared-page .shell {
        display: block;
        width: calc(100% - 22px);
        max-width: none;
        height: auto;
        min-height: 100svh;
        padding: 22px 0 36px;
    }

    body.login-light-theme.auth-shared-page .promo-panel,
    body.login-light-theme.auth-shared-page .promo-illustration {
        display: none;
    }

    body.login-light-theme.auth-shared-page .card-wrap {
        width: 100%;
        max-width: none;
        margin: 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.login-light-theme.auth-shared-page .promo-panel,
    body.login-light-theme.auth-shared-page .promo-headline,
    body.login-light-theme.auth-shared-page .promo-illustration,
    body.login-light-theme.auth-shared-page .card-wrap {
        animation: none !important;
    }
}

body.login-light-theme.auth-shared-page .card {
    padding: 34px 34px 30px !important;
    border-radius: 22px !important;
    color: var(--auth-text) !important;
}

body.login-light-theme.auth-shared-page .auth-page-title {
    color: var(--auth-text) !important;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(27px, 3vw, 36px);
    line-height: 1.12;
    letter-spacing: -.025em;
    margin: 24px 0 9px;
    text-align: center;
}

body.login-light-theme.auth-shared-page .auth-page-title .accent {
    color: var(--auth-primary-deep);
}

body.login-light-theme.auth-shared-page .auth-subtitle {
    color: var(--auth-text-soft);
    font-size: 14px;
    line-height: 1.65;
    text-align: center;
    margin: 0 auto 24px;
    max-width: 470px;
}

body.login-light-theme.auth-shared-page .auth-form {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    min-width: 0;
}

body.login-light-theme.auth-shared-page .auth-form .field {
    min-width: 0;
    width: 100%;
    margin-bottom: 17px !important;
}

body.login-light-theme.auth-shared-page .auth-form .field-box {
    min-height: 50px !important;
    width: 100%;
    min-width: 0;
    padding: 13px 15px !important;
    border-radius: 12px !important;
    display: flex;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    box-sizing: border-box;
}

body.login-light-theme.auth-shared-page .auth-form .field-box > i {
    flex: 0 0 20px;
    width: 20px;
    min-width: 20px;
    text-align: center;
}

body.login-light-theme.auth-shared-page .auth-form .field-box input {
    flex: 1 1 auto;
    width: 0;
    min-width: 0;
    max-width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--auth-text) !important;
    -webkit-text-fill-color: var(--auth-text) !important;
    font-size: 14px !important;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}

body.login-light-theme.auth-shared-page .auth-form .field-box select {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: 100%;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: var(--auth-text) !important;
    -webkit-text-fill-color: var(--auth-text) !important;
    font-size: 14px !important;
    line-height: 1.35;
    padding: 0 !important;
    margin: 0;
    appearance: auto;
}

body.login-light-theme.auth-shared-page .auth-form .field-box select option {
    background: #fff !important;
    color: var(--auth-text) !important;
}

body.login-light-theme.auth-shared-page .auth-form .field-box:focus-within + label,
body.login-light-theme.auth-shared-page .auth-form .field.filled label,
body.login-light-theme.auth-shared-page .auth-form .field input:not(:placeholder-shown) ~ label,
body.login-light-theme.auth-shared-page .auth-form .field-box:has(input:not(:placeholder-shown)) + label,
body.login-light-theme.auth-shared-page .auth-form .field select:valid ~ label {
    top: -8px !important;
    left: 13px !important;
    font-size: 10px !important;
    padding: 0 5px !important;
    color: var(--auth-primary-deep) !important;
}

body.login-light-theme.auth-shared-page .auth-form .field-error {
    display: block;
    min-height: 0;
    margin: 5px 2px 0;
    color: #C5342A;
    font-size: 11.5px;
    line-height: 1.35;
}

body.login-light-theme.auth-shared-page .auth-form .field-error:empty {
    display: none;
}

body.login-light-theme.auth-shared-page .auth-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
    width: 100%;
    min-width: 0;
}

body.login-light-theme.auth-shared-page .auth-grid .full-width {
    grid-column: 1 / -1;
}

body.login-light-theme.auth-shared-page .auth-grid .field {
    min-width: 0;
}

body.login-light-theme.auth-shared-page .submit-btn,
body.login-light-theme.auth-shared-page button[type="submit"] {
    min-height: 50px !important;
    margin-top: 4px;
    border-radius: 12px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    background: linear-gradient(100deg, var(--auth-primary) 0%, #6E6BF0 50%, var(--auth-violet) 100%) !important;
    color: #fff !important;
}

body.login-light-theme.auth-shared-page .auth-nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 18px;
    font-size: 12.5px;
}

body.login-light-theme.auth-shared-page .auth-nav .forgot {
    color: var(--auth-muted) !important;
}

body.login-light-theme.auth-shared-page .auth-nav .forgot:hover {
    color: var(--auth-primary) !important;
}

body.login-light-theme.auth-shared-page .auth-alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 12px 14px;
    margin: 0 0 18px;
    border-radius: 12px;
    border: 1px solid;
    font-size: 12.5px;
    line-height: 1.5;
}
body.login-light-theme.auth-shared-page .auth-alert.error {
    color: #B42318;
    background: rgba(248,113,113,.10);
    border-color: rgba(248,113,113,.28);
}
body.login-light-theme.auth-shared-page .auth-alert.success {
    color: #087443;
    background: rgba(52,211,153,.11);
    border-color: rgba(52,211,153,.28);
}
body.login-light-theme.auth-shared-page .auth-alert.info {
    color: #2354D6;
    background: rgba(62,123,250,.09);
    border-color: rgba(62,123,250,.22);
}
body.login-light-theme.auth-shared-page .auth-alert.warning {
    color: #9A6700;
    background: rgba(251,191,36,.12);
    border-color: rgba(251,191,36,.30);
}

body.login-light-theme.auth-shared-page .status-result,
body.login-light-theme.auth-shared-page .status-message,
body.login-light-theme.auth-shared-page .temporary-password-box {
    margin-top: 20px;
    padding: 18px;
    border-radius: 15px;
    border: 1px solid rgba(92,133,235,.18);
    background: rgba(255,255,255,.52);
    box-shadow: 0 14px 35px -24px rgba(62,90,160,.30);
}

body.login-light-theme.auth-shared-page .status-result h3,
body.login-light-theme.auth-shared-page .status-message h3,
body.login-light-theme.auth-shared-page .temporary-password-content h3 {
    color: var(--auth-text);
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 700;
}
body.login-light-theme.auth-shared-page .request-detail-row {
    display: grid;
    grid-template-columns: 120px 12px minmax(0,1fr);
    gap: 4px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(92,133,235,.10);
    font-size: 12.5px;
}
body.login-light-theme.auth-shared-page .request-detail-row:last-child { border-bottom: 0; }
body.login-light-theme.auth-shared-page .detail-label { color: var(--auth-muted); }
body.login-light-theme.auth-shared-page .detail-value { color: var(--auth-text); overflow-wrap: anywhere; }

body.login-light-theme.auth-shared-page .inline-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
}
body.login-light-theme.auth-shared-page .inline-status.approved { color:#087443; background:rgba(52,211,153,.14); }
body.login-light-theme.auth-shared-page .inline-status.pending { color:#8A5B00; background:rgba(251,191,36,.16); }
body.login-light-theme.auth-shared-page .inline-status.rejected { color:#B42318; background:rgba(248,113,113,.13); }

body.login-light-theme.auth-shared-page .status-message.approved { border-color:rgba(52,211,153,.25); }
body.login-light-theme.auth-shared-page .status-message.pending { border-color:rgba(251,191,36,.25); }
body.login-light-theme.auth-shared-page .status-message.rejected { border-color:rgba(248,113,113,.25); }

body.login-light-theme.auth-shared-page .temporary-password-box {
    display:flex; gap:12px; align-items:flex-start;
    background:linear-gradient(135deg,rgba(62,123,250,.08),rgba(139,92,246,.06));
}
body.login-light-theme.auth-shared-page .temporary-password-icon {
    width:38px; height:38px; min-width:38px; display:flex; align-items:center; justify-content:center;
    border-radius:10px; background:rgba(62,123,250,.10); color:var(--auth-primary-deep);
}
body.login-light-theme.auth-shared-page .temporary-password-content { flex:1; min-width:0; }
body.login-light-theme.auth-shared-page .temporary-password-content p,
body.login-light-theme.auth-shared-page .status-message p { color:var(--auth-text-soft); font-size:12.5px; line-height:1.55; margin:5px 0 0; }
body.login-light-theme.auth-shared-page .temporary-password-display {
    display:flex; align-items:center; gap:8px; min-height:44px; margin-top:10px; padding:5px 6px 5px 12px;
    border-radius:10px; background:rgba(255,255,255,.72); border:1px solid rgba(92,133,235,.18);
}
body.login-light-theme.auth-shared-page .temporary-password-display code {
    flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    color:var(--auth-primary-deep); font-family:"IBM Plex Mono",monospace;
}
body.login-light-theme.auth-shared-page .copy-password-btn {
    width:34px; height:34px; border:0; border-radius:8px; cursor:pointer;
    background:rgba(62,123,250,.10); color:var(--auth-primary-deep);
}

body.login-light-theme.auth-shared-page .auth-secondary {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 16px;
    border-radius:11px;
    color:var(--auth-primary-deep);
    background:rgba(62,123,250,.08);
    border:1px solid rgba(62,123,250,.16);
    text-decoration:none;
    font-size:12.5px;
    font-weight:700;
}
body.login-light-theme.auth-shared-page .auth-secondary:hover { background:rgba(62,123,250,.13); }

body.login-light-theme.auth-shared-page .strength-track {
    height:5px; margin:-7px 0 5px; overflow:hidden; border-radius:99px; background:rgba(92,133,235,.12);
}
body.login-light-theme.auth-shared-page .strength-bar { height:100%; width:0; border-radius:inherit; transition:width .2s ease,background .2s ease; }
body.login-light-theme.auth-shared-page #strengthText {
    display:block; margin:0 0 12px; color:var(--auth-muted); font-size:11px;
}
body.login-light-theme.auth-shared-page .password-rules {
    margin:0 0 17px; padding:12px 14px; border-radius:12px;
    background:rgba(62,123,250,.05); border:1px solid rgba(92,133,235,.12);
}
body.login-light-theme.auth-shared-page .password-rules h4 { margin:0 0 7px; color:var(--auth-text-soft); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
body.login-light-theme.auth-shared-page .password-rules ul { margin:0; padding:0; list-style:none; display:grid; gap:4px; }
body.login-light-theme.auth-shared-page .password-rules li { color:var(--auth-muted); font-size:11.5px; }
body.login-light-theme.auth-shared-page .password-rules li.valid { color:#16835d; }
body.login-light-theme.auth-shared-page #confirmMismatch { display:none; color:#B42318; font-size:11.5px; margin:-5px 0 10px; }
body.login-light-theme.auth-shared-page .submit-btn:disabled { opacity:.48; cursor:not-allowed; transform:none; }

/* Mobile form/detail refinements. Layout geometry remains above. */
@media (max-width: 620px) {
    body.login-light-theme.auth-shared-page .auth-grid {
        grid-template-columns: 1fr;
    }
    body.login-light-theme.auth-shared-page .auth-grid .full-width {
        grid-column: auto;
    }
    body.login-light-theme.auth-shared-page .auth-page-title {
        font-size: 27px;
    }
    body.login-light-theme.auth-shared-page .request-detail-row {
        grid-template-columns: 105px 10px minmax(0, 1fr);
    }
}
/* =========================================================
   AUTH BUTTON VISIBILITY FIX
   Login / Submit Request / Check Status / Send Reset Link
   ========================================================= */

body.login-light-theme.auth-shared-page .submit-btn,
body.login-light-theme.auth-shared-page button[type="submit"],
body.login-light-theme.auth-shared-page .auth-submit,
body.login-light-theme.auth-shared-page .primary-btn {
    min-height: 50px !important;
    border: 0 !important;
    border-radius: 12px !important;

    background: linear-gradient(
        100deg,
        var(--auth-primary, #3E7BFA) 0%,
        #6E6BF0 50%,
        var(--auth-violet, #8B5CF6) 100%
    ) !important;

    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;

    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;

    text-shadow: none !important;
    box-shadow: 0 10px 24px rgba(62, 123, 250, 0.18) !important;

    cursor: pointer !important;
}

/* Make EVERYTHING inside the button visible */
body.login-light-theme.auth-shared-page .submit-btn *,
body.login-light-theme.auth-shared-page button[type="submit"] *,
body.login-light-theme.auth-shared-page .auth-submit *,
body.login-light-theme.auth-shared-page .primary-btn * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
}

/* Icons */
body.login-light-theme.auth-shared-page .submit-btn i,
body.login-light-theme.auth-shared-page button[type="submit"] i,
body.login-light-theme.auth-shared-page .auth-submit i,
body.login-light-theme.auth-shared-page .primary-btn i {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    opacity: 1 !important;
}

/* Hover */
body.login-light-theme.auth-shared-page .submit-btn:not(:disabled):hover,
body.login-light-theme.auth-shared-page button[type="submit"]:not(:disabled):hover,
body.login-light-theme.auth-shared-page .auth-submit:not(:disabled):hover,
body.login-light-theme.auth-shared-page .primary-btn:not(:disabled):hover {
    opacity: 1 !important;
    filter: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Active */
body.login-light-theme.auth-shared-page .submit-btn:not(:disabled):active,
body.login-light-theme.auth-shared-page button[type="submit"]:not(:disabled):active,
body.login-light-theme.auth-shared-page .auth-submit:not(:disabled):active,
body.login-light-theme.auth-shared-page .primary-btn:not(:disabled):active {
    opacity: 1 !important;
    filter: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Only REAL disabled buttons should look disabled */
body.login-light-theme.auth-shared-page .submit-btn:disabled,
body.login-light-theme.auth-shared-page button[type="submit"]:disabled,
body.login-light-theme.auth-shared-page .auth-submit:disabled,
body.login-light-theme.auth-shared-page .primary-btn:disabled {
    opacity: 0.48 !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Prevent parent/card opacity from fading the button */
body.login-light-theme.auth-shared-page .card .submit-btn,
body.login-light-theme.auth-shared-page .card button[type="submit"],
body.login-light-theme.auth-shared-page .card .auth-submit,
body.login-light-theme.auth-shared-page .card .primary-btn {
    opacity: 1 !important;
    filter: none !important;
    visibility: visible !important;
}

/* =========================================================
   REQUEST ACCOUNT — PROGRAM FIELD FIT
   Keep the existing two-column form, but give Program the
   full row because its real option labels are substantially
   longer than the other field values.
   ========================================================= */

body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .field {
    min-width: 0;
}

body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .field > .field-box {
    min-width: 0;
}

body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .program-field {
    grid-column: 1 / -1;
}

body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .program-field .field-box {
    overflow: hidden;
}

body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .program-field select {
    min-width: 0;
    flex: 1 1 0;
    width: auto;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
}

@media (max-width: 620px) {
    body.login-light-theme.auth-shared-page.request-account-page .auth-grid > .program-field {
        grid-column: auto;
    }
}
