.auth-page .auth-page-content {
    min-height: calc(100vh - 200px);
    display: flex;
    align-items: center;
}

.auth-page .auth-title {
    color: #4FA3F7;
}

.auth-page .auth-form-column {
    max-width: 32.5rem;
}

.auth-page .auth-form-card {
    border-radius: 1.25rem;
    overflow: hidden;
}

.auth-page .auth-form-body {
    padding: 2rem 1.85rem !important;
}

.auth-page .auth-form-card .mb-3 {
    margin-bottom: 0.9rem !important;
}

.auth-page .auth-form-card .mb-4 {
    margin-bottom: 1.1rem !important;
}

.auth-page .auth-form-card .my-4 {
    margin-top: 1.15rem !important;
    margin-bottom: 1.15rem !important;
}

.auth-page .auth-form-card .form-label {
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
}

.auth-page .auth-form-card .form-check-label {
    font-size: 0.88rem;
    line-height: 1.4;
}

.auth-page .auth-form-card .form-check-label i {
    font-size: 0.82rem;
}

.auth-page .auth-form-card .form-control,
.auth-page .auth-form-card .form-select {
    border-radius: 0.9rem;
}

.auth-page .auth-form-card .form-control-lg,
.auth-page .auth-form-card .input-group-lg > .form-control,
.auth-page .auth-form-card .input-group-lg > .form-select,
.auth-page .auth-form-card .input-group-lg > .btn {
    min-height: 2.9rem;
    padding: 0.7rem 0.9rem;
    font-size: 0.96rem;
}

.auth-page .auth-form-card .btn-lg,
.auth-page .auth-form-card .btn-group > .btn {
    padding: 0.7rem 0.95rem;
    font-size: 0.94rem;
}

.auth-page .auth-form-card .alert {
    padding: 0.75rem 0.95rem;
    margin-bottom: 1rem;
    font-size: 0.84rem;
}

.auth-page .auth-form-card small,
.auth-page .auth-form-card .text-muted {
    font-size: 0.78rem;
    line-height: 1.4;
}

.auth-page .auth-country-select {
    max-width: 170px;
}

.auth-page .otp-digit,
.auth-page .auth-otp-field {
    font-family: 'Courier New', monospace;
    text-align: center;
    font-size: 1.25rem;
    letter-spacing: 0.34rem;
}

.auth-page .otp-digit:focus,
.auth-page .auth-otp-field:focus {
    border-color: #4FA3F7;
    box-shadow: 0 0 0 0.2rem rgba(79, 163, 247, 0.25);
}

.auth-page .auth-helper-list {
    font-size: 0.85rem;
}

.auth-page .password-strength {
    height: 4px;
    border-radius: 2px;
    margin-top: 5px;
    transition: all 0.3s;
}

.auth-page .password-weak {
    background-color: #dc3545;
}

.auth-page .password-medium {
    background-color: #ffc107;
}

.auth-page .password-strong {
    background-color: #28a745;
}

.auth-page .auth-link-disabled {
    pointer-events: none;
    opacity: 0.6;
}

.login-page-wrapper .auth-form-column {
    max-width: 31rem;
}

.login-page-wrapper .auth-title {
    margin-bottom: 1rem !important;
    font-size: 1.85rem;
    line-height: 1.1;
    font-weight: 700;
}

.login-page-wrapper .auth-title i {
    font-size: 1.45rem;
}

.login-page-wrapper .auth-form-body {
    padding: 1.75rem 1.55rem !important;
}

.login-page-wrapper .auth-form-card .mb-3 {
    margin-bottom: 0.78rem !important;
}

.login-page-wrapper .auth-form-card .mb-4 {
    margin-bottom: 0.95rem !important;
}

.login-page-wrapper .auth-form-card .form-label {
    font-size: 0.82rem;
    margin-bottom: 0.28rem;
}

.login-page-wrapper .auth-form-card .form-control-lg,
.login-page-wrapper .auth-form-card .input-group-lg > .form-control,
.login-page-wrapper .auth-form-card .input-group-lg > .form-select,
.login-page-wrapper .auth-form-card .input-group-lg > .btn,
.login-page-wrapper .auth-form-card .form-control:not(.form-control-lg) {
    min-height: 2.7rem;
    padding: 0.6rem 0.8rem;
    font-size: 0.9rem;
}

.login-page-wrapper .auth-form-card .btn-group > .btn,
.login-page-wrapper .auth-form-card .btn-lg {
    min-height: 2.7rem;
    padding: 0.58rem 0.8rem;
    font-size: 0.86rem;
    font-weight: 600;
}

.login-page-wrapper .auth-form-card .btn-group > .btn i,
.login-page-wrapper .auth-form-card .btn-lg i {
    font-size: 0.78rem;
}

.login-page-wrapper .auth-form-card .btn-group[role="group"] > .btn {
    min-height: 2.35rem;
    padding: 0.42rem 0.68rem;
    font-size: 0.76rem;
    font-weight: 600;
}

.login-page-wrapper .auth-form-card .btn-group[role="group"] > .btn i {
    font-size: 0.66rem;
}

.login-page-wrapper .auth-form-card small,
.login-page-wrapper .auth-form-card .text-muted,
.login-page-wrapper .auth-form-card a {
    font-size: 0.73rem;
}

.login-page-wrapper .auth-form-card .form-check-label {
    font-size: 0.84rem;
}

.login-page-wrapper .auth-form-card .form-check-input {
    margin-top: 0.18rem;
}

.login-page-wrapper .auth-form-card .otp-digit,
.login-page-wrapper .auth-form-card .auth-otp-field {
    font-size: 1.12rem;
    letter-spacing: 0.26rem;
}

.login-page-wrapper .auth-country-select {
    max-width: 155px;
}

body.login-page,
body.register-page {
    --auth-page-bg-color: #f4f9ff;
    --auth-page-bg-image:
        radial-gradient(circle at 18% 22%, rgba(79, 163, 247, 0.18) 0%, rgba(79, 163, 247, 0.08) 20%, rgba(79, 163, 247, 0) 48%),
        radial-gradient(circle at 82% 26%, rgba(45, 125, 210, 0.16) 0%, rgba(45, 125, 210, 0.07) 22%, rgba(45, 125, 210, 0) 52%),
        radial-gradient(circle at 50% 74%, rgba(79, 163, 247, 0.14) 0%, rgba(79, 163, 247, 0.05) 24%, rgba(79, 163, 247, 0) 60%),
        linear-gradient(180deg, #f8fbff 0%, #eef6ff 50%, #f7fbff 100%);
    --auth-page-bg-position: center, center, center, center;
    --auth-page-bg-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    background-color: var(--auth-page-bg-color) !important;
    background-image: var(--auth-page-bg-image) !important;
    background-repeat: no-repeat, no-repeat, no-repeat, no-repeat !important;
    background-position: var(--auth-page-bg-position) !important;
    background-size: var(--auth-page-bg-size) !important;
    background-attachment: fixed !important;
    margin: 0;
    padding: 0;
}

body.register-page {
    --auth-page-bg-image:
        radial-gradient(circle at 16% 24%, rgba(79, 163, 247, 0.2) 0%, rgba(79, 163, 247, 0.09) 20%, rgba(79, 163, 247, 0) 48%),
        radial-gradient(circle at 84% 28%, rgba(45, 125, 210, 0.17) 0%, rgba(45, 125, 210, 0.07) 22%, rgba(45, 125, 210, 0) 54%),
        radial-gradient(circle at 50% 78%, rgba(102, 181, 255, 0.15) 0%, rgba(102, 181, 255, 0.05) 24%, rgba(102, 181, 255, 0) 60%),
        linear-gradient(180deg, #f8fbff 0%, #edf6ff 50%, #f6fbff 100%);
}

.auth-page-shell {
    margin: 0;
    padding: 40px 0 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: transparent !important;
}

.auth-page-shell::before,
.auth-page-shell::after {
    content: "";
    position: absolute;
    inset: auto;
    width: min(44rem, 78vw);
    height: min(44rem, 78vw);
    border-radius: 50%;
    pointer-events: none;
    filter: blur(28px);
    opacity: 0.9;
    z-index: 0;
}

.auth-page-shell::before {
    top: -16rem;
    right: -10rem;
    background: radial-gradient(circle, rgba(79, 163, 247, 0.22) 0%, rgba(79, 163, 247, 0) 68%);
}

.auth-page-shell::after {
    bottom: -16rem;
    left: 50%;
    transform: translateX(-50%);
    width: min(58rem, 110vw);
    height: min(46rem, 88vw);
    background: radial-gradient(circle, rgba(79, 163, 247, 0.16) 0%, rgba(79, 163, 247, 0) 72%);
}

.auth-page-shell > .container.my-5 {
    margin-bottom: 0 !important;
    margin-top: 0.5rem !important;
    flex: 1 0 auto;
    position: relative;
    z-index: 1;
}

.register-page-wrapper .page-content {
    padding-top: 68px !important;
}

.auth-page-shell .card {
    position: relative;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(79, 163, 247, 0.14);
    box-shadow:
        0 26px 52px rgba(45, 125, 210, 0.08),
        0 10px 24px rgba(15, 23, 42, 0.08),
        0 1px 0 rgba(255, 255, 255, 0.92) inset;
    backdrop-filter: blur(16px);
}

.auth-page-shell .auth-form-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    border: 1px solid rgba(79, 163, 247, 0.1);
    box-shadow:
        inset 0 -1px 0 rgba(79, 163, 247, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.65);
    pointer-events: none;
}

.auth-page-shell .footer-modern {
    margin-top: clamp(1.75rem, 3vw, 2.75rem) !important;
    margin-bottom: 0 !important;
    padding-top: 3rem !important;
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}

@media (max-width: 991.98px) {
    .auth-page .auth-page-content {
        min-height: auto;
    }

    .auth-page-shell {
        padding-top: 24px;
    }

    body.login-page,
    body.register-page {
        background-attachment: scroll !important;
        background-position: center, center, center, center !important;
        background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100% !important;
    }

    body.register-page {
        background-position: center, center, center, center !important;
        background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100% !important;
    }

    .auth-page-shell::before,
    .auth-page-shell::after {
        width: 24rem;
        height: 24rem;
        filter: blur(20px);
        opacity: 0.75;
    }

    .auth-page-shell::before {
        top: -8rem;
        right: -7rem;
    }

    .auth-page-shell::after {
        bottom: -8rem;
        left: 50%;
        transform: translateX(-50%);
        width: 30rem;
        height: 24rem;
    }

    .auth-page-shell .card {
        background: rgba(255, 255, 255, 0.95);
        box-shadow:
            0 18px 34px rgba(45, 125, 210, 0.07),
            0 8px 18px rgba(15, 23, 42, 0.08);
    }

    .auth-page .auth-form-column {
        max-width: 100%;
    }

    .auth-page .auth-form-body {
        padding: 1.4rem 1.15rem !important;
    }

    .auth-page .auth-form-card .form-label {
        font-size: 0.84rem;
    }

    .auth-page .auth-form-card .form-check-label {
        font-size: 0.82rem;
    }

    .auth-page .auth-form-card .form-control-lg,
    .auth-page .auth-form-card .input-group-lg > .form-control,
    .auth-page .auth-form-card .input-group-lg > .form-select,
    .auth-page .auth-form-card .input-group-lg > .btn {
        min-height: 2.65rem;
        padding: 0.58rem 0.75rem;
        font-size: 0.9rem;
    }

    .auth-page .auth-form-card .btn-lg,
    .auth-page .auth-form-card .btn-group > .btn {
        padding: 0.62rem 0.8rem;
        font-size: 0.88rem;
    }

    .auth-page .auth-form-card .otp-digit,
    .auth-page .auth-form-card .auth-otp-field {
        font-size: 1.08rem;
        letter-spacing: 0.24rem;
    }

    .auth-page .auth-form-card .mb-3 {
        margin-bottom: 0.8rem !important;
    }

    .login-page-wrapper .auth-form-column {
        max-width: 100%;
    }

    .login-page-wrapper .auth-title {
        font-size: 1.55rem;
    }

    .login-page-wrapper .auth-title i {
        font-size: 1.2rem;
    }

    .login-page-wrapper .auth-form-body {
        padding: 1.25rem 1rem !important;
    }

    .login-page-wrapper .auth-form-card .form-label {
        font-size: 0.78rem;
    }

    .login-page-wrapper .auth-form-card .form-control-lg,
    .login-page-wrapper .auth-form-card .input-group-lg > .form-control,
    .login-page-wrapper .auth-form-card .input-group-lg > .form-select,
    .login-page-wrapper .auth-form-card .input-group-lg > .btn,
    .login-page-wrapper .auth-form-card .form-control:not(.form-control-lg) {
        min-height: 2.5rem;
        font-size: 0.86rem;
    }

    .login-page-wrapper .auth-form-card .btn-group > .btn,
    .login-page-wrapper .auth-form-card .btn-lg {
        min-height: 2.5rem;
        font-size: 0.82rem;
    }

    .login-page-wrapper .auth-form-card .btn-group[role="group"] > .btn {
        min-height: 2.18rem;
        padding: 0.38rem 0.58rem;
        font-size: 0.72rem;
    }

    .login-page-wrapper .auth-form-card small,
    .login-page-wrapper .auth-form-card .text-muted,
    .login-page-wrapper .auth-form-card a {
        font-size: 0.7rem;
    }

    .register-page-wrapper .page-content {
        padding-top: 52px !important;
    }
}

@media (max-width: 768px) {
    /* Mobile: background-attachment:fixed causes full-page GPU repaints on scroll */
    body.login-page,
    body.register-page {
        background-attachment: scroll !important;
    }
}
