
:root { color-scheme: light; }

/* --------Font--------------- */
/* persian-font */
@font-face {
    font-family: "IranSans";
    font-weight: 400;
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Regular.eot");
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Regular.eot?#iefix") format("embedded-opentype"), url("../font/iran-sans/ttf/IRANSansXFaNum-Regular.ttf") format("truetype"), url("../font/iran-sans/woff/IRANSansXFaNum-Regular.woff") format("woff"), url("../font/iran-sans/woff2/IRANSansXFaNum-Regular.woff2") format("woff2");
}

@font-face {
    font-family: "IranSans";
    font-weight: 500;
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Medium.eot");
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Medium.eot?#iefix") format("embedded-opentype"), url("../font/iran-sans/ttf/IRANSansXFaNum-Medium.ttf") format("truetype"), url("../font/iran-sans/woff/IRANSansXFaNum-Medium.woff") format("woff"), url("../font/iran-sans/woff2/IRANSansXFaNum-Medium.woff2") format("woff2");
}

@font-face {
    font-family: "IranSans";
    font-weight: 600;
    src: url("../font/iran-sans/eot/IRANSansXFaNum-DemiBold.eot");
    src: url("../font/iran-sans/eot/IRANSansXFaNum-DemiBold.eot?#iefix") format("embedded-opentype"), url("../font/iran-sans/ttf/IRANSansXFaNum-DemiBold.ttf") format("truetype"), url("../font/iran-sans/woff/IRANSansXFaNum-DemiBold.woff") format("woff"), url("../font/iran-sans/woff2/IRANSansXFaNum-DemiBold.woff2") format("woff2");
}

@font-face {
    font-family: "IranSans";
    font-weight: 700;
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Bold.eot");
    src: url("../font/iran-sans/eot/IRANSansXFaNum-Bold.eot?#iefix") format("embedded-opentype"), url("../font/iran-sans/ttf/IRANSansXFaNum-Bold.ttf") format("truetype"), url("../font/iran-sans/woff/IRANSansXFaNum-Bold.woff") format("woff"), url("../font/iran-sans/woff2/IRANSansXFaNum-ExtraBold.woff2") format("woff2");
}

@font-face {
    font-family: "IranSans";
    font-weight: 800;
    src: url("../font/iran-sans/eot/IRANSansXFaNum-ExtraBold.eot");
    src: url("../font/iran-sans/eot/IRANSansXFaNum-ExtraBold.eot?#iefix") format("embedded-opentype"), url("../font/iran-sans/ttf/IRANSansXFaNum-ExtraBold.ttf") format("truetype"), url("../font/iran-sans/woff/IRANSansXFaNum-ExtraBold.woff") format("woff"), url("../font/iran-sans/woff2/IRANSansXFaNum-ExtraBold.woff2") format("woff2");
}

* { box-sizing: border-box; }
html, body { min-height: 100%; direction:rtl}
body {
    min-height: 100vh;
    margin: 0;
    color: #122554;
    font-family: IranSans, sans-serif;
    background: #edf4ff;
    padding: 0;
}

.account-login {
    position: relative;
    display: grid;
    min-height: 100vh;
    min-height: 100svh;
    padding: 28px;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 13% 16%, rgba(125, 211, 252, .7), transparent 26rem),
        radial-gradient(circle at 88% 83%, rgba(129, 140, 248, .28), transparent 25rem),
        linear-gradient(135deg, #f8fbff 0%, #e5efff 100%);
}

    .account-login::before,
    .account-login::after {
        position: absolute;
        z-index: -1;
        width: 430px;
        height: 430px;
        content: '';
        border: 1px solid rgba(30, 58, 138, .1);
        border-radius: 50%;
    }

    .account-login::before { top: -230px; right: -120px; }
    .account-login::after { bottom: -270px; left: -115px; }

.account-login__shell {
    width: min(100%, 470px);
    overflow: hidden;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 24px;
    box-shadow: 0 28px 70px rgba(17, 43, 101, .18), 0 8px 22px rgba(17, 43, 101, .08);
}

.account-login__form-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 48px 46px 39px;
}

.account-login__logo {
    display: grid;
    width: 70px;
    height: 70px;
    place-items: center;
    margin-bottom: 25px;
    padding: 10px;
    background: #eff6ff;
    border-radius: 20px;
    box-shadow: inset 0 1px 0 #fff;
}

    .account-login__logo img { display: block; max-width: 100%; max-height: 47px; }

.account-login__eyebrow {
    margin: 0 0 7px;
    color: #2563eb;
    font-size: 13px;
    font-weight: 700;
}

.account-login__title {
    margin: 0;
    color: #10265c;
    font-size: 27px;
    font-weight: 800;
}

.account-login__subtitle {
    margin: 10px 0 29px;
    color: #64748b;
    font-size: 14px;
    line-height: 1.9;
}

.account-login__field { margin-bottom: 22px; }

.account-login__field .form-label {
    display: block;
    margin: 0 0 8px;
    color: #254278;
    font-size: 14px;
    font-weight: 700;
}

.account-login__field .form-control {
    width: 100%;
    min-height: 52px;
    padding: 12px 15px;
    color: #10265c;
    background: #f8fbff;
    border: 1px solid #d7e3f6;
    border-radius: 12px;
    box-shadow: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

    .account-login__field .form-control:focus {
        background: #fff;
        border-color: #2563eb;
        box-shadow: 0 0 0 4px rgba(37, 99, 235, .12);
    }

.account-login .field-validation-error,
.account-login .validation-summary-errors {
    display: block;
    margin-top: 8px;
    color: #dc2626;
    font-size: 12px;
}

.account-login .validation-summary-valid { display: none; }
.account-login .validation-summary-errors ul { padding-right: 18px; margin: 0 0 15px; }

.account-login__submit {
    display: inline-flex;
    width: 100%;
    min-height: 53px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    background: linear-gradient(135deg, #2563eb, #1e3a8a);
    border: 0;
    border-radius: 12px;
    box-shadow: 0 10px 20px rgba(30, 58, 138, .22);
    transition: transform .2s ease, box-shadow .2s ease;
}

    .account-login__submit:hover,
    .account-login__submit:focus {
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 14px 24px rgba(30, 58, 138, .28);
    }

    .account-login__submit.is-loading,
    .account-login__submit:disabled {
        cursor: wait;
        opacity: .86;
        transform: none;
        box-shadow: none;
    }

    .account-login__submit.is-loading .bi { display: none; }

    .account-login__submit.is-loading::after {
        width: 17px;
        height: 17px;
        content: '';
        border: 2px solid rgba(255, 255, 255, .45);
        border-top-color: #fff;
        border-radius: 50%;
        animation: account-login-spin .7s linear infinite;
    }

@keyframes account-login-spin {
    to { transform: rotate(360deg); }
}

.account-login__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: center;
    margin-top: 24px;
    color: #64748b;
    font-size: 13px;
}

    .account-login__back:hover { color: #1e3a8a; }

.access-denied__student-button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 700;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 10px;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

    .access-denied__student-button:hover,
    .access-denied__student-button:focus {
        color: #1e3a8a;
        background: #dbeafe;
        transform: translateY(-2px);
        box-shadow: 0 8px 16px rgba(30, 58, 138, .12);
    }

.access-denied-page .card {
    position: relative;
    overflow: hidden;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 24px;
    box-shadow: 0 28px 70px rgba(17, 43, 101, .18), 0 8px 22px rgba(17, 43, 101, .08);
}

.access-denied-page .card::before {
    position: absolute;
    top: -95px;
    left: -70px;
    width: 220px;
    height: 220px;
    content: '';
    background: radial-gradient(circle, rgba(254, 226, 226, .85), rgba(254, 242, 242, 0) 68%);
    pointer-events: none;
}

.access-denied-page .row {
    width: 100%;
    margin: 0;
}

.access-denied-page .col-md-6 {
    width: min(100%, 470px);
    max-width: 470px;
    padding: 0;
}

.access-denied-page .card-header {
    padding: 15px 24px 16px;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 700;
    background: #fffafa;
    border-bottom: 1px solid #fee2e2;
}

.access-denied-page .card-body { padding: 25px 40px 38px; }

.access-denied-page .card-body > p {
    margin: 0 0 25px;
    color: #64748b;
    font-size: 14px;
    line-height: 1.9;
}

.access-denied-page .card-body .d-flex { gap: 12px; }

.access-denied__illustration {
    position: relative;
    display: grid;
    width: 100px;
    height: 88px;
    place-items: center;
    margin: 26px auto 0;
    color: #dc2626;
    font-size: 45px;
}

.access-denied__illustration-ring {
    position: absolute;
    width: 82px;
    height: 82px;
    background: radial-gradient(circle at 35% 25%, #fff, #fee2e2);
    border: 1px solid #fecaca;
    border-radius: 50%;
    box-shadow: 0 12px 22px rgba(220, 38, 38, .14);
}

.access-denied__illustration > .bi { position: relative; z-index: 1; }

.access-denied__illustration-alert {
    position: absolute;
    z-index: 2;
    bottom: 4px;
    right: 2px;
    display: grid;
    width: 27px;
    height: 27px;
    place-items: center;
    color: #fff;
    font-size: 13px;
    background: #dc2626;
    border: 3px solid #fff;
    border-radius: 50%;
}

.access-denied-page .account-login__submit,
.access-denied-page .access-denied__student-button {
    width: auto;
    min-width: 145px;
    min-height: 46px;
    padding: 9px 17px;
    font-size: 14px;
}

.access-denied-page .account-login__submit {
    background: linear-gradient(135deg, #dc2626, #991b1b);
    box-shadow: 0 10px 20px rgba(153, 27, 27, .22);
}

    .access-denied-page .account-login__submit:hover,
    .access-denied-page .account-login__submit:focus {
        box-shadow: 0 14px 24px rgba(153, 27, 27, .28);
    }

.access-denied-page .access-denied__student-button {
    color: #b91c1c;
    background: #fff7f7;
    border-color: #fecaca;
}

    .access-denied-page .access-denied__student-button:hover,
    .access-denied-page .access-denied__student-button:focus {
        color: #991b1b;
        background: #fee2e2;
        box-shadow: 0 10px 20px rgba(153, 27, 27, .12);
    }

@media (max-width: 575px) {
    .access-denied-page .card-body { padding: 32px 24px; }
    .access-denied-page .card-body .d-flex { flex-direction: column; }
    .access-denied-page .account-login__submit,
    .access-denied-page .access-denied__student-button { width: 100%; }
}

@media (max-width: 767px) {
    .account-login {
        padding: 20px 16px;
        align-items: center;
    }

    .account-login__shell {
        width: 100%;
        border-radius: 22px;
    }

    .account-login__form-panel { padding: 38px 28px 32px; }
    .account-login__logo { margin-bottom: 22px; }
    .account-login__title { font-size: 26px; }
    .account-login__field .form-control,
    .account-login__submit { min-height: 54px; }
}

@media (max-width: 380px) {
    .account-login__form-panel { padding: 30px 21px; }
    .account-login__title { font-size: 24px; }
}
