/* Phase 14-7 modern unified authentication UI for auth_identityotp. */
.auth-identityotp-wrapper {
    max-width: 430px;
    margin: 1.75rem auto;
    padding: 0 1rem;
}
.auth-identityotp-card {
    border: 1px solid #e3e7ea;
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(31, 42, 46, 0.06);
    overflow: hidden;
    background: #fff;
}
.auth-identityotp-card .card-body {
    padding: 2rem;
}
.auth-identityotp-modern-header {
    text-align: center;
    margin-bottom: 1.35rem;
}
.auth-identityotp-topbar {
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    margin-bottom: 1.7rem;
    direction: ltr;
}
.auth-identityotp-topbar.is-rtl {
    direction: rtl;
}
.auth-identityotp-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    color: #ffffff !important;
    background: #2A7FE3;
    border: 1px solid #2A7FE3;
    box-shadow: none;
    justify-self: start;
}
.auth-identityotp-back:hover,
.auth-identityotp-back:focus {
    background: #1f6fd0;
    border-color: #1f6fd0;
    color: #ffffff !important;
}
.auth-identityotp-back-placeholder {
    visibility: hidden;
}
.auth-identityotp-modern-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 42px;
}
.auth-identityotp-logo-img {
    max-width: 150px;
    max-height: 58px;
    width: auto;
    height: auto;
    object-fit: contain;
}
.auth-identityotp-modern-logo-text {
    font-weight: 800;
    font-size: 1.25rem;
    color: #1f2a2e;
}
.auth-identityotp-modern-title,
.auth-identityotp-card .card-title {
    font-weight: 800;
    font-size: 1.35rem;
    line-height: 1.55;
    margin: 0 0 .65rem;
    color: #1f2a2e;
}
.auth-identityotp-modern-subtitle,
.auth-identityotp-card .text-muted,
.auth-identityotp-custom-intro,
.auth-identityotp-footer-help {
    color: #6b7280;
    line-height: 1.9;
    font-size: .92rem;
}
.auth-identityotp-card .auth-identityotp-intro,
.auth-identityotp-card .fdescription.required {
    display: none !important;
}
.auth-identityotp-card .mform,
.auth-identityotp-card form {
    margin: 0;
}
.auth-identityotp-card .form-group,
.auth-identityotp-card .mb-3,
.auth-identityotp-card .fitem {
    margin-bottom: 1rem !important;
}
.auth-identityotp-card #fitem_id_identity .col-form-label,
.auth-identityotp-card #fitem_id_code .col-form-label {
    display: none !important;
}
.auth-identityotp-card #fitem_id_identity,
.auth-identityotp-card #fitem_id_code {
    margin-bottom: 1.25rem !important;
}
.auth-identityotp-card .col-md-3,
.auth-identityotp-card .col-md-9 {
    flex: 0 0 100%;
    max-width: 100%;
}
.auth-identityotp-card .form-control,
.auth-identityotp-card input[type="text"],
.auth-identityotp-card input[type="password"],
.auth-identityotp-card input[type="email"] {
    min-height: 48px;
    border-radius: 9px;
    border: 1px solid #cfd5da;
    padding: .65rem .85rem;
    font-size: 1rem;
    box-shadow: none !important;
}
.auth-identityotp-card input[type="text"]:focus,
.auth-identityotp-card input[type="password"]:focus,
.auth-identityotp-card input[type="email"]:focus,
.auth-identityotp-card .form-control:focus {
    border-color: #9aa5ad;
    box-shadow: 0 0 0 .15rem rgba(46, 125, 116, .12) !important;
}
.auth-identityotp-card .form-control[name="code"],
.auth-identityotp-card input[name="code"] {
    text-align: center !important;
    letter-spacing: .35rem;
    font-size: 1.3rem;
    font-weight: 700;
}
.auth-identityotp-card .btn-primary,
.auth-identityotp-card input[type="submit"].btn-primary,
.auth-identityotp-login-btn {
    width: 100%;
    min-height: 48px;
    border-radius: 9px;
    font-weight: 800;
    padding: .7rem 1rem;
    margin-top: .25rem;
}
.auth-identityotp-card .fitem_actionbuttons .col-md-9,
.auth-identityotp-card .form-group.fitem .col-md-9 {
    padding-left: 0;
    padding-right: 0;
}
.auth-identityotp-card .fitem_actionbuttons .btn + .btn,
.auth-identityotp-card .btn + .btn {
    margin-top: .65rem;
}
.auth-identityotp-card .btn-secondary,
.auth-identityotp-card .btn-link {
    border-radius: 9px;
}
.auth-identityotp-card .alert {
    border-radius: 12px;
    line-height: 1.75;
    font-size: .92rem;
}
.auth-identityotp-card .alert-info {
    background: #f8fafb;
    border-color: #e6eaed;
    color: #5f6b72;
}
.auth-identityotp-card .alert-success {
    background: #f2fbf8;
    border-color: #d8f0e8;
    color: #265f55;
}
.auth-identityotp-timer {
    color: #334155;
    font-size: .88rem;
    margin: 1.15rem 0;
}
.auth-identityotp-footer-help {
    font-size: .82rem;
    margin-top: 1.25rem !important;
}
.auth-identityotp-footer-help a {
    font-weight: 700;
}
.auth-identityotp-card .felement.fstatic {
    line-height: 1.7;
}
.auth-identityotp-card .fitem .col-form-label {
    font-weight: 700;
    color: #1f2a2e;
}
html[dir="rtl"] .auth-identityotp-card,
body.dir-rtl .auth-identityotp-card,
.dir-rtl .auth-identityotp-card {
    text-align: right;
}
html[dir="rtl"] .auth-identityotp-card .text-center,
body.dir-rtl .auth-identityotp-card .text-center,
.dir-rtl .auth-identityotp-card .text-center,
html[dir="rtl"] .auth-identityotp-modern-header,
body.dir-rtl .auth-identityotp-modern-header,
.dir-rtl .auth-identityotp-modern-header {
    text-align: center !important;
}
html[dir="rtl"] .auth-identityotp-back,
body.dir-rtl .auth-identityotp-back,
.dir-rtl .auth-identityotp-back,
.auth-identityotp-topbar.is-rtl .auth-identityotp-back {
    justify-self: end;
}
html[dir="rtl"] .auth-identityotp-card input[dir="ltr"],
.auth-identityotp-card .auth-identityotp-code-input {
    text-align: center !important;
}
html[dir="rtl"] .auth-identityotp-card .auth-identityotp-identity-input,
body.dir-rtl .auth-identityotp-card .auth-identityotp-identity-input,
.dir-rtl .auth-identityotp-card .auth-identityotp-identity-input {
    text-align: right !important;
    direction: rtl;
}
html[dir="ltr"] .auth-identityotp-card .auth-identityotp-identity-input,
body.dir-ltr .auth-identityotp-card .auth-identityotp-identity-input,
.dir-ltr .auth-identityotp-card .auth-identityotp-identity-input {
    text-align: left !important;
    direction: ltr;
}

.auth-identityotp-card .mform .fitem,
.auth-identityotp-card .mform .form-group,
.auth-identityotp-card .mform .fitem > .row,
.auth-identityotp-card .mform .form-group > .row {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.auth-identityotp-card .felement,
.auth-identityotp-card .fitem .felement,
.auth-identityotp-card .fitem_actionbuttons,
.auth-identityotp-card .fitem_actionbuttons .felement,
.auth-identityotp-card .form-group .col-md-9 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}
.auth-identityotp-card .felement,
.auth-identityotp-card .fitem_actionbuttons .felement,
.auth-identityotp-card .fitem .col-md-9,
.auth-identityotp-card .form-group .col-md-9 {
    max-width: 360px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .form-control,
.auth-identityotp-card input[type="text"],
.auth-identityotp-card input[type="password"],
.auth-identityotp-card input[type="email"],
.auth-identityotp-card .btn-primary,
.auth-identityotp-card input[type="submit"].btn-primary,
.auth-identityotp-login-btn {
    width: 100% !important;
    max-width: 360px;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    display: block;
}
.auth-identityotp-card .form-control::placeholder,
.auth-identityotp-card input::placeholder {
    opacity: .75;
}
html[dir="rtl"] .auth-identityotp-card .form-control::placeholder,
body.dir-rtl .auth-identityotp-card .form-control::placeholder,
.dir-rtl .auth-identityotp-card .form-control::placeholder,
html[dir="rtl"] .auth-identityotp-card input::placeholder,
body.dir-rtl .auth-identityotp-card input::placeholder,
.dir-rtl .auth-identityotp-card input::placeholder {
    text-align: right;
    direction: rtl;
}
html[dir="ltr"] .auth-identityotp-card .form-control::placeholder,
body.dir-ltr .auth-identityotp-card .form-control::placeholder,
.dir-ltr .auth-identityotp-card .form-control::placeholder,
html[dir="ltr"] .auth-identityotp-card input::placeholder,
body.dir-ltr .auth-identityotp-card input::placeholder,
.dir-ltr .auth-identityotp-card input::placeholder {
    text-align: left;
    direction: ltr;
}

@media (max-width: 576px) {
    .auth-identityotp-wrapper {
        margin: 1rem auto;
        padding: 0 .75rem;
    }
    .auth-identityotp-card .card-body {
        padding: 1.4rem;
    }
    .auth-identityotp-topbar {
        margin-bottom: 1.25rem;
    }
    .auth-identityotp-card .felement,
    .auth-identityotp-card .fitem_actionbuttons .felement,
    .auth-identityotp-card .fitem .col-md-9,
    .auth-identityotp-card .form-group .col-md-9,
    .auth-identityotp-card .form-control,
    .auth-identityotp-card input[type="text"],
    .auth-identityotp-card input[type="password"],
    .auth-identityotp-card input[type="email"],
    .auth-identityotp-card .btn-primary,
    .auth-identityotp-card input[type="submit"].btn-primary,
    .auth-identityotp-login-btn,
    .auth-identityotp-terms-notice {
        max-width: 100%;
    }
}

.auth-identityotp-terms-notice {
    max-width: 360px;
    margin: .9rem auto 0;
    color: #6b7280;
    font-size: .82rem;
    line-height: 1.9;
}
.auth-identityotp-terms-notice a,
.auth-identityotp-terms-link {
    font-weight: 700;
}

/* Phase 14-13: center all action buttons and button labels for cleaner stacked layouts. */
.auth-identityotp-card .btn,
.auth-identityotp-card input[type="submit"],
.auth-identityotp-card button,
.auth-identityotp-login-btn {
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
}
.auth-identityotp-card .btn-primary,
.auth-identityotp-card .btn-secondary,
.auth-identityotp-card .btn-link,
.auth-identityotp-card input[type="submit"].btn-primary,
.auth-identityotp-card input[type="submit"].btn-secondary,
.auth-identityotp-login-btn {
    display: flex !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .fitem_actionbuttons,
.auth-identityotp-card .fitem_actionbuttons .felement,
.auth-identityotp-card .form-group.fitem .felement,
.auth-identityotp-card .mt-3 {
    text-align: center !important;
}
.auth-identityotp-card a.btn-link,
.auth-identityotp-card .btn-link {
    width: auto !important;
    display: inline-flex !important;
}


/* v1.0.1: final alignment fix for stacked fields and buttons. */
.auth-identityotp-card .mform,
.auth-identityotp-card form.mform {
    max-width: 360px;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .mform .row,
.auth-identityotp-card .mform .fitem > .row,
.auth-identityotp-card .mform .form-group > .row {
    display: block !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}
.auth-identityotp-card .mform .col-md-3,
.auth-identityotp-card .mform .col-md-9,
.auth-identityotp-card .mform .col-form-label,
.auth-identityotp-card .mform .felement,
.auth-identityotp-card .mform .fitem_actionbuttons,
.auth-identityotp-card .mform .fitem_actionbuttons .felement {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}
.auth-identityotp-card .mform .form-control,
.auth-identityotp-card .mform input[type="text"],
.auth-identityotp-card .mform input[type="password"],
.auth-identityotp-card .mform input[type="email"],
.auth-identityotp-card .mform .btn-primary,
.auth-identityotp-card .mform .btn-secondary,
.auth-identityotp-card .mform input[type="submit"].btn-primary,
.auth-identityotp-card .mform input[type="submit"].btn-secondary {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 48px;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}
.auth-identityotp-card .mform .form-control,
.auth-identityotp-card .mform input[type="text"],
.auth-identityotp-card .mform input[type="password"],
.auth-identityotp-card .mform input[type="email"] {
    display: block !important;
}
.auth-identityotp-card .mform .fitem_actionbuttons .btn + .btn,
.auth-identityotp-card .mform .fitem_actionbuttons input[type="submit"] + .btn,
.auth-identityotp-card .mform .fitem_actionbuttons .btn + input[type="submit"] {
    margin-top: .65rem !important;
}
.auth-identityotp-card .mform .btn-link,
.auth-identityotp-card .mform a.btn-link {
    width: auto !important;
    max-width: 100% !important;
    min-height: auto !important;
    display: inline-flex !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .auth-identityotp-terms-notice,
.auth-identityotp-card .auth-identityotp-footer-help {
    max-width: 360px;
    margin-left: auto !important;
    margin-right: auto !important;
}
@media (max-width: 576px) {
    .auth-identityotp-card .mform,
    .auth-identityotp-card form.mform,
    .auth-identityotp-card .auth-identityotp-terms-notice,
    .auth-identityotp-card .auth-identityotp-footer-help {
        max-width: 100% !important;
    }
}


/* v1.0.2 layout normalization: keep controls visually justified like a single auth column. */
.auth-identityotp-card {
    --auth-identityotp-control-width: 334px;
}
.auth-identityotp-card .mform {
    width: var(--auth-identityotp-control-width) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .mform .fitem,
.auth-identityotp-card .mform .form-group,
.auth-identityotp-card .mform .fitem > .row,
.auth-identityotp-card .mform .form-group > .row,
.auth-identityotp-card .mform .felement,
.auth-identityotp-card .mform .col-md-9,
.auth-identityotp-card .mform .col-md-3,
.auth-identityotp-card .mform .fitem_actionbuttons,
.auth-identityotp-card .mform .fitem_actionbuttons .felement {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}
.auth-identityotp-card .form-control,
.auth-identityotp-card input[type="text"],
.auth-identityotp-card input[type="password"],
.auth-identityotp-card input[type="email"],
.auth-identityotp-card input[type="submit"],
.auth-identityotp-card button,
.auth-identityotp-card .btn:not(.auth-identityotp-back) {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
}
.auth-identityotp-card .btn:not(.auth-identityotp-back) {
    display: inline-flex !important;
    white-space: normal;
}
.auth-identityotp-card .btn-link:not(.auth-identityotp-back) {
    min-height: auto;
    padding-left: .5rem;
    padding-right: .5rem;
}
.auth-identityotp-card .btn + .btn,
.auth-identityotp-card .btn + a,
.auth-identityotp-card a + .btn,
.auth-identityotp-card input[type="submit"] + .btn,
.auth-identityotp-card .singlebutton + .singlebutton {
    margin-top: .65rem !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.auth-identityotp-card .auth-identityotp-action-row,
.auth-identityotp-card .mt-3:has(> .btn),
.auth-identityotp-card .mt-3:has(> a.btn) {
    width: var(--auth-identityotp-control-width) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}
.auth-identityotp-card .auth-identityotp-timer {
    width: var(--auth-identityotp-control-width) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .alert,
.auth-identityotp-card .auth-identityotp-terms-notice,
.auth-identityotp-card .auth-identityotp-footer-help {
    max-width: var(--auth-identityotp-control-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
@media (max-width: 576px) {
    .auth-identityotp-card {
        --auth-identityotp-control-width: 100%;
    }
}


/* v1.1.0 Digikala-style flow refinements */
.auth-identityotp-wrapper {
    max-width: 440px;
}
.auth-identityotp-card {
    border: 1px solid #dfe1e6;
    border-radius: 12px;
    box-shadow: none;
}
.auth-identityotp-card .card-body {
    padding: 1.85rem 1.25rem 1.65rem;
}
.auth-identityotp-topbar {
    grid-template-columns: 32px 1fr 32px;
    margin-bottom: 1.5rem;
}
.auth-identityotp-back {
    width: 28px;
    height: 28px;
    background: transparent;
    border: 0;
    color: #111827 !important;
    font-size: 1.9rem;
    font-weight: 400;
    padding: 0;
    border-radius: 0;
}
.auth-identityotp-back:hover,
.auth-identityotp-back:focus {
    background: transparent;
    border: 0;
    color: #111827 !important;
}
.auth-identityotp-logo-img {
    max-width: 150px;
    max-height: 64px;
}
.auth-identityotp-modern-title,
.auth-identityotp-card .card-title {
    font-size: 1.95rem;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: .9rem;
}
.auth-identityotp-modern-subtitle {
    font-size: .97rem;
    line-height: 2;
    color: #6b7280;
    max-width: 330px;
    margin: 0 auto 1.1rem;
}
.auth-identityotp-maincol,
.auth-identityotp-terms-notice,
.auth-identityotp-stacked-actions,
.auth-identityotp-password-link,
.auth-identityotp-timer {
    max-width: 330px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.auth-identityotp-card .mform {
    display: block;
    width: 100%;
}
.auth-identityotp-card .mform fieldset,
.auth-identityotp-card .mform .fcontainer,
.auth-identityotp-card .mform > div,
.auth-identityotp-card form > div {
    width: 100%;
}
.auth-identityotp-card .mform .fitem,
.auth-identityotp-card .mform .form-group,
.auth-identityotp-card .mform .fitem > .row,
.auth-identityotp-card .mform .form-group > .row,
.auth-identityotp-card .fitem .felement,
.auth-identityotp-card .fitem_actionbuttons,
.auth-identityotp-card .fitem_actionbuttons .felement,
.auth-identityotp-card .form-group .col-md-9,
.auth-identityotp-card .fitem .col-md-9,
.auth-identityotp-card .mform .felement {
    width: 100% !important;
    max-width: 330px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
}
.auth-identityotp-card .mform .form-control,
.auth-identityotp-card .mform input[type="text"],
.auth-identityotp-card .mform input[type="password"],
.auth-identityotp-card .mform input[type="email"],
.auth-identityotp-card .mform .btn-primary,
.auth-identityotp-card .mform input[type="submit"].btn-primary,
.auth-identityotp-login-btn {
    width: 100% !important;
    max-width: 330px !important;
    min-width: 330px;
    box-sizing: border-box;
    display: block;
    margin-left: auto !important;
    margin-right: auto !important;
}
.auth-identityotp-card .mform .form-control,
.auth-identityotp-card .mform input[type="text"],
.auth-identityotp-card .mform input[type="password"],
.auth-identityotp-card .mform input[type="email"] {
    min-height: 48px;
    border-radius: 8px;
    border-color: #d1d5db;
    padding-inline: 1rem;
    font-size: .98rem;
    background: #fff;
}
.auth-identityotp-card .mform .btn-primary,
.auth-identityotp-card .mform input[type="submit"].btn-primary,
.auth-identityotp-login-btn {
    min-height: 48px;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 700;
    margin-top: .45rem;
}
.auth-identityotp-card .fitem.femptylabel,
.auth-identityotp-card .fitem_actionbuttons {
    margin-bottom: .75rem !important;
}
.auth-identityotp-card .fitem .form-control-feedback,
.auth-identityotp-card .fitem .error,
.auth-identityotp-card .fitem .invalid-feedback,
.auth-identityotp-card .felement .form-control-feedback {
    max-width: 330px;
    margin: .35rem auto 0 !important;
    font-size: .86rem;
}
.auth-identityotp-card .felement.fstatic,
.auth-identityotp-card .alert {
    max-width: 330px;
    margin-left: auto;
    margin-right: auto;
}
.auth-identityotp-card .btn + .btn,
.auth-identityotp-card .fitem_actionbuttons .btn + .btn {
    margin-top: .75rem;
}
.auth-identityotp-inline-link {
    color: #19bfd3 !important;
    text-decoration: none !important;
    font-weight: 500;
}
.auth-identityotp-inline-link:hover,
.auth-identityotp-inline-link:focus {
    color: #0ea5b7 !important;
}
.auth-identityotp-password-link {
    margin-top: .25rem;
    margin-bottom: .85rem;
    font-size: .95rem;
}
.auth-identityotp-timer {
    font-size: .95rem;
    color: #374151;
    margin: .85rem auto 1.05rem;
}
.auth-identityotp-terms-notice {
    margin-top: .55rem;
    font-size: .84rem;
    line-height: 1.9;
    color: #6b7280;
}
.auth-identityotp-terms-notice a {
    color: #19bfd3 !important;
    font-weight: 500;
}
.auth-identityotp-footer-help { display:none; }
@media (max-width: 576px) {
    .auth-identityotp-card .card-body {
        padding: 1.7rem 1rem 1.35rem;
    }
    .auth-identityotp-modern-title,
    .auth-identityotp-card .card-title {
        font-size: 1.75rem;
    }
    .auth-identityotp-maincol,
    .auth-identityotp-terms-notice,
    .auth-identityotp-stacked-actions,
    .auth-identityotp-password-link,
    .auth-identityotp-timer,
    .auth-identityotp-modern-subtitle,
    .auth-identityotp-card .mform .fitem,
    .auth-identityotp-card .mform .form-group,
    .auth-identityotp-card .mform .fitem > .row,
    .auth-identityotp-card .mform .form-group > .row,
    .auth-identityotp-card .fitem .felement,
    .auth-identityotp-card .fitem_actionbuttons,
    .auth-identityotp-card .fitem_actionbuttons .felement,
    .auth-identityotp-card .form-group .col-md-9,
    .auth-identityotp-card .fitem .col-md-9,
    .auth-identityotp-card .mform .felement,
    .auth-identityotp-card .mform .form-control,
    .auth-identityotp-card .mform input[type="text"],
    .auth-identityotp-card .mform input[type="password"],
    .auth-identityotp-card .mform input[type="email"],
    .auth-identityotp-card .mform .btn-primary,
    .auth-identityotp-card .mform input[type="submit"].btn-primary,
    .auth-identityotp-login-btn,
    .auth-identityotp-card .fitem .form-control-feedback,
    .auth-identityotp-card .fitem .invalid-feedback,
    .auth-identityotp-card .felement.fstatic,
    .auth-identityotp-card .alert {
        max-width: 100% !important;
        min-width: 0 !important;
    }
}


/* v1.1.1 PaViraNet Academy refinements */
.auth-identityotp-card .alert {
    position: relative;
    padding-inline-start: 2.75rem !important;
    padding-inline-end: 2.75rem !important;
    overflow-wrap: anywhere;
}
.auth-identityotp-card .alert .close,
.auth-identityotp-card .alert button.close,
.auth-identityotp-card .alert [data-dismiss="alert"],
.auth-identityotp-card .alert [data-bs-dismiss="alert"] {
    position: absolute !important;
    top: .75rem !important;
    inset-inline-start: .75rem !important;
    inset-inline-end: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 1.6rem;
    height: 1.6rem;
    line-height: 1.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    float: none !important;
    z-index: 2;
}
html[dir="ltr"] .auth-identityotp-card .alert .close,
html[dir="ltr"] .auth-identityotp-card .alert button.close,
body.dir-ltr .auth-identityotp-card .alert .close,
body.dir-ltr .auth-identityotp-card .alert button.close,
.dir-ltr .auth-identityotp-card .alert .close,
.dir-ltr .auth-identityotp-card .alert button.close {
    left: .75rem !important;
    right: auto !important;
}
html[dir="rtl"] .auth-identityotp-card .alert .close,
html[dir="rtl"] .auth-identityotp-card .alert button.close,
body.dir-rtl .auth-identityotp-card .alert .close,
body.dir-rtl .auth-identityotp-card .alert button.close,
.dir-rtl .auth-identityotp-card .alert .close,
.dir-rtl .auth-identityotp-card .alert button.close {
    right: .75rem !important;
    left: auto !important;
}
.auth-identityotp-back {
    font-size: 1.55rem;
    width: 30px;
    height: 30px;
}
.auth-identityotp-inline-link {
    display: inline-block;
}
.auth-identityotp-card .btn-secondary {
    background: #e9ecef !important;
    border-color: #e9ecef !important;
    color: #1f2a2e !important;
}


/* v1.2.2 final UI fixes */
.auth-identityotp-topbar {
    grid-template-columns: 56px 1fr 56px;
}
.auth-identityotp-back {
    width: 44px;
    height: 44px;
    font-size: 2rem;
    font-weight: 900;
    background: transparent;
    color: #111827 !important;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.auth-identityotp-back:hover,
.auth-identityotp-back:focus {
    background: transparent;
    color: #111827 !important;
    border: 0;
}
.auth-identityotp-topbar.is-ltr .auth-identityotp-back { justify-self: start; }
.auth-identityotp-topbar.is-rtl .auth-identityotp-back { justify-self: end; }
.auth-identityotp-card .alert {
    position: relative;
    padding-left: 1rem;
    padding-right: 2.4rem;
}
html[dir="rtl"] .auth-identityotp-card .alert,
body.dir-rtl .auth-identityotp-card .alert,
.dir-rtl .auth-identityotp-card .alert {
    padding-right: 1rem;
    padding-left: 2.4rem;
}
.auth-identityotp-card .alert .close,
.auth-identityotp-card .alert .btn-close {
    position: absolute;
    top: .6rem;
    right: .75rem;
    margin: 0;
    opacity: .6;
    float: none;
}
html[dir="rtl"] .auth-identityotp-card .alert .close,
html[dir="rtl"] .auth-identityotp-card .alert .btn-close,
body.dir-rtl .auth-identityotp-card .alert .close,
body.dir-rtl .auth-identityotp-card .alert .btn-close,
.dir-rtl .auth-identityotp-card .alert .close,
.dir-rtl .auth-identityotp-card .alert .btn-close {
    right: auto;
    left: .75rem;
}
.auth-identityotp-card .mform .passwordunmask,
.auth-identityotp-card .mform .unmask,
.auth-identityotp-card .mform .unmasklabel,
.auth-identityotp-card .mform .fp-btn-choose,
.auth-identityotp-card .mform .adv-checkbox {
    display: none !important;
}
.auth-identityotp-card .mform input[type="password"] {
    background-image: none !important;
}


/* v1.2.3 deterministic back arrow placement fix */
.auth-identityotp-topbar,
.auth-identityotp-topbar.is-ltr,
.auth-identityotp-topbar.is-rtl {
    direction: ltr !important;
    display: grid !important;
    grid-template-columns: 56px 1fr 56px !important;
    align-items: center !important;
}
.auth-identityotp-topbar .auth-identityotp-back {
    grid-row: 1 !important;
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #111827 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 2.15rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transform: none !important;
}
.auth-identityotp-topbar.is-ltr .auth-identityotp-back {
    grid-column: 1 !important;
    justify-self: start !important;
}
.auth-identityotp-topbar.is-rtl .auth-identityotp-back {
    grid-column: 3 !important;
    justify-self: end !important;
}
.auth-identityotp-topbar .auth-identityotp-modern-logo {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
}
.auth-identityotp-topbar .auth-identityotp-topbar-spacer {
    grid-column: 3 !important;
    grid-row: 1 !important;
    visibility: hidden !important;
}
.auth-identityotp-topbar.is-rtl .auth-identityotp-topbar-spacer {
    grid-column: 1 !important;
}


/* v1.2.4 final back-arrow corner placement */
.auth-identityotp-modern-header {
    position: relative !important;
}
.auth-identityotp-topbar,
.auth-identityotp-topbar.is-ltr,
.auth-identityotp-topbar.is-rtl {
    position: relative !important;
    display: block !important;
    min-height: 76px !important;
    margin-bottom: 1.25rem !important;
    direction: ltr !important;
}
.auth-identityotp-topbar .auth-identityotp-back {
    position: absolute !important;
    top: 0 !important;
    width: 46px !important;
    height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.8rem !important;
    line-height: 1 !important;
    color: #111827 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 2 !important;
}
.auth-identityotp-topbar.is-ltr .auth-identityotp-back {
    left: 0 !important;
    right: auto !important;
}
.auth-identityotp-topbar.is-rtl .auth-identityotp-back {
    right: 0 !important;
    left: auto !important;
}
.auth-identityotp-topbar .auth-identityotp-modern-logo {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin: 0 auto !important;
}
.auth-identityotp-topbar .auth-identityotp-topbar-spacer {
    display: none !important;
}


/* v1.2.5 remove arrow navigation and use text links only. */
.auth-identityotp-back,
.auth-identityotp-back-placeholder,
.auth-identityotp-topbar-spacer {
    display: none !important;
}
.auth-identityotp-topbar,
.auth-identityotp-topbar.is-ltr,
.auth-identityotp-topbar.is-rtl {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    min-height: auto !important;
    margin-bottom: 1.45rem !important;
    direction: ltr !important;
}
.auth-identityotp-logo-row,
.auth-identityotp-topbar .auth-identityotp-modern-logo {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto !important;
}
.auth-identityotp-text-links {
    max-width: 360px;
    margin: .95rem auto 0;
    font-size: .92rem;
    line-height: 1.9;
}
.auth-identityotp-text-links a {
    text-decoration: none !important;
    font-weight: 500;
}
.auth-identityotp-link-separator {
    color: #c2c7cc;
    padding: 0 .35rem;
}

/* v1.2.10 responsive Moodle login-shell cleanup.
   Keep the plugin card unchanged, but remove the extra white Moodle shell around it. */
body.path-auth-identityotp #page,
body.path-auth-identityotp #page-wrapper,
body.path-auth-identityotp #page-content,
body.path-auth-identityotp #region-main,
body.path-auth-identityotp .login-wrapper,
body.path-auth-identityotp .login-container,
body.path-auth-identityotp .loginbox,
body.path-auth-identityotp .loginform {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
body.path-auth-identityotp #page-content,
body.path-auth-identityotp #region-main,
body.path-auth-identityotp .login-wrapper,
body.path-auth-identityotp .login-container,
body.path-auth-identityotp .loginbox,
body.path-auth-identityotp .loginform {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.path-auth-identityotp .login-container,
body.path-auth-identityotp .loginbox,
body.path-auth-identityotp .loginform {
    width: 100% !important;
    max-width: none !important;
}
body.path-auth-identityotp .auth-identityotp-wrapper {
    width: 100% !important;
    max-width: 440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}
@media (max-width: 576px) {
    body.path-auth-identityotp .auth-identityotp-wrapper {
        max-width: 100% !important;
        margin-top: 1rem !important;
        margin-bottom: 1rem !important;
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }
    body.path-auth-identityotp .auth-identityotp-card .card-body {
        padding: 1.65rem 1.35rem !important;
    }
}
