/*body.login-page { background: var(--karen-pale); }
.login-container { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:32px 16px; }
.login-card { width:100%; max-width:430px; padding:34px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.login-header { margin-bottom:27px; text-align:center; }
.login-logo { width:62px; height:62px; margin:0 auto 16px; border-radius:12px; font-size:26px; }
.login-title, .login-header h2 { margin:0 0 6px; color:var(--ink); font-size:25px; font-weight:700; }
.login-subtitle, .login-header p { margin:0; color:var(--muted); font-size:14px; }
.input-group { position:relative; }
.input-icon { position:absolute; top:50%; right:14px; z-index:3; color:var(--muted); transform:translateY(-50%); }
.input-with-icon { padding-right:42px; }
.password-toggle { left:6px; top:50%; z-index:3; color:var(--muted); transform:translateY(-50%); }
.checkbox-group { display:flex; align-items:center; gap:8px; margin:4px 0 20px; color:var(--muted); }
.custom-checkbox { width:18px; height:18px; margin:0; position:relative; }
.custom-checkbox input { position:absolute; opacity:0; }
.checkmark { display:block; width:18px; height:18px; border:1px solid var(--line); border-radius:5px; background:#fff; }
.custom-checkbox input:checked + .checkmark { background:var(--karen); border-color:var(--karen); }
.checkmark:after { content:""; display:none; width:5px; height:9px; margin:2px 6px; border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg); }
.custom-checkbox input:checked + .checkmark:after { display:block; }
.btn-login { width:100%; min-height:46px; }
.forgot-password { margin-top:15px; text-align:center; font-size:14px; }
.forgot-password a { text-decoration:none; }
.stepper { display:flex; align-items:center; justify-content:center; gap:10px; }
.step { display:flex; align-items:center; justify-content:center; width:30px; height:30px; color:var(--muted); background:#f3eeeb; border:1px solid var(--line); border-radius:50%; font-size:13px; font-weight:700; }
.step.active { color:#fff; background:var(--karen); border-color:var(--karen); }
.line { width:50px; height:1px; background:var(--line); }
#timer { color:var(--karen-dark); font-weight:700; }
#resendLink { color:var(--karen-dark); }
#successModal .modal-header { background:var(--karen-pale); justify-content:space-between; }
#successModal .success-icon { display:flex; align-items:center; justify-content:center; width:64px; height:64px; margin:0 auto 16px; color:var(--success); background:#eaf6f0; border-radius:50%; font-size:28px; }
#successModal .success-text { color:var(--muted); line-height:1.9; text-align:center; }
@media (max-width:480px) { .login-container { padding:16px; align-items:flex-start; } .login-card { padding:26px 20px; } }
*/


/* =====================================
   GLOBAL
===================================== */
@font-face {
    font-family: 'Vazirmatn';
    src: url('/fonts/Vazirmatn-RD-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Vazirmatn';
    src: url('/fonts/Vazirmatn-RD-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Vazirmatn';
    src: url('/fonts/Vazirmatn-RD-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Vazirmatn';
    src: url('/fonts/Vazirmatn-RD-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body.login-page {
    margin: 0;
    min-height: 100vh;
    background: #fffaf2;
    font-family: 'Vazirmatn', sans-serif;
}

.login-page input,
.login-page input::placeholder {
    font-family: 'Vazirmatn', Tahoma, sans-serif;
}


.login-layout {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 460px 1fr;
    direction: rtl;
}


/* =====================================
   LOGIN SIDE
===================================== */

.login-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    padding: 40px;
}


.login-card {
    width: 100%;
    max-width: 400px;
}


.login-header {
    text-align: center;
    margin-bottom: 30px;
}


.login-logo-img {
    width: 85px;
    margin-bottom: 20px;
}


.login-title {
    font-size: 28px;
    font-weight: 800;
    color: #2d210f;
    margin: 0;
}


.login-subtitle {
    margin-top: 10px;
    color: #8a7a63;
}


/* Inputs */

.form-group {
    margin-bottom: 20px;
}


.form-label {
    display: block;
    margin-bottom: 8px;
    color: #4b3820;
    font-weight: 600;
}


.input-group {
    position: relative;
}


.input-icon {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #c08a28;
    z-index: 2;
}


.input-with-icon {
    padding-right: 45px;
}



.form-control {
    height: 52px;
    border-radius: 14px;
    border: 1px solid #eadfc9;
    background: #fffdf9;
}


    .form-control:focus {
        border-color: #f2b94b;
        box-shadow: 0 0 0 4px rgba(242,185,75,.15);
    }



/* Button */

.btn-login {
    width: 100%;
    height: 52px;
    border-radius: 14px;
    border: none;
    font-weight: 700;
    color: #fff;
    background: linear-gradient( 135deg, #f59e0b, #d97706 );
    box-shadow: 0 12px 25px rgba(217,119,6,.25);
    transition: .3s;
}



    .btn-login:hover {
        transform: translateY(-2px);
    }



/* Timer */

#timer {
    color: #d97706;
    font-weight: 800;
}


#resendLink {
    color: #d97706;
}


/* Register */

.forgot-password {
    margin-top: 20px;
    text-align: center;
}


    .forgot-password a {
        color: #d97706;
        text-decoration: none;
    }



/* =====================================
   BANNER SIDE
===================================== */


.login-banner {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient( circle at top right, #ffe9a8, transparent 35% ), linear-gradient( 135deg, #fff8e7 0%, #ffd98a 55%, #f6a623 100% );
    color: #4b2d00;
}



    /* Background circles */


    .login-banner::before {
        content: "";
        position: absolute;
        width: 650px;
        height: 650px;
        border-radius: 50%;
        background: rgba(255,255,255,.55);
        top: -300px;
        left: -180px;
    }



    .login-banner::after {
        content: "";
        position: absolute;
        width: 450px;
        height: 450px;
        border-radius: 50%;
        background: rgba(255,255,255,.25);
        bottom: -180px;
        right: -100px;
    }




/* Content */


.banner-content {
    position: relative;
    z-index: 2;
    max-width: 620px;
    text-align: center;
    padding: 60px;
}



.badge-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px;
    border-radius: 50px;
    background: #ffffff;
    color: #d97706;
    font-weight: 700;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    margin-bottom: 25px;
}




.banner-content h2 {
    font-size: 46px;
    line-height: 1.35;
    font-weight: 900;
    color: #4a2a00;
    margin-bottom: 20px;
}



.banner-content p {
    font-size: 18px;
    line-height: 2;
    color: #6b4b16;
}




/* Features */


.feature-list {
    margin-top: 40px;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 18px;
}



.feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.55);
    border: 1px solid rgba(255,255,255,.7);
    box-shadow: 0 10px 25px rgba(180,120,20,.12);
    backdrop-filter: blur(15px);
    color: #5b3900;
}



    .feature-item i {
        font-size: 22px;
        color: #e58a00;
    }



/* Phone Image */


.phone-preview {
    margin-top: 45px;
}



    .phone-preview img {
        width: 280px;
        max-width: 100%;
        filter: drop-shadow( 0 25px 40px rgba(120,70,0,.25) );
    }



/* =====================================
   MOBILE
===================================== */


@media(max-width:992px) {


    .login-layout {
        grid-template-columns: 1fr;
    }



    .login-banner {
        display: none;
    }



    .login-panel {
        padding: 20px;
    }
}
/* =========================================
   Subtle Animation - Login Banner
   فقط انیمیشن، بدون تغییر ظاهر
   ========================================= */

.login-banner {
    position: relative;
    overflow: hidden;
}


    /* حرکت خیلی آرام نور پس زمینه */
    .login-banner::before {
        content: "";
        position: absolute;
        width: 350px;
        height: 350px;
        top: -120px;
        left: -100px;
        border-radius: 50%;
        background: radial-gradient( circle, rgba(245, 158, 11, 0.10), transparent 70% );
        pointer-events: none;
        animation: bannerGlowMove 8s ease-in-out infinite;
    }


    /* یک نور خیلی ظریف سمت پایین */
    .login-banner::after {
        content: "";
        position: absolute;
        width: 300px;
        height: 300px;
        right: -120px;
        bottom: -120px;
        border-radius: 50%;
        background: radial-gradient( circle, rgba(245, 158, 11, 0.08), transparent 70% );
        pointer-events: none;
        animation: bannerGlowMove2 10s ease-in-out infinite;
    }


    /* =========================================
   حرکت خیلی کم محتوای سمت چپ
   ========================================= */

    .login-banner .banner-content {
        position: relative;
        animation: bannerContentMove 6s ease-in-out infinite;
    }


    /* =========================================
   Badge کمی زنده باشد
   ========================================= */

    .login-banner .badge-title {
        animation: badgeMove 4s ease-in-out infinite;
    }


    /* =========================================
   آیکون‌های امکانات
   ========================================= */

    .login-banner .feature-item i {
        animation: iconFloat 3.5s ease-in-out infinite;
    }

    .login-banner .feature-item:nth-child(2) i {
        animation-delay: .4s;
    }

    .login-banner .feature-item:nth-child(3) i {
        animation-delay: .8s;
    }

    .login-banner .feature-item:nth-child(4) i {
        animation-delay: 1.2s;
    }


/* =========================================
   انیمیشن‌ها
   ========================================= */

@keyframes bannerGlowMove {

    0%, 100% {
        transform: translate(0, 0);
        opacity: .7;
    }

    50% {
        transform: translate(60px, 40px);
        opacity: 1;
    }
}


@keyframes bannerGlowMove2 {

    0%, 100% {
        transform: translate(0, 0);
        opacity: .5;
    }

    50% {
        transform: translate(-40px, -30px);
        opacity: .9;
    }
}


@keyframes bannerContentMove {

    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}


@keyframes badgeMove {

    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-3px);
    }
}


@keyframes iconFloat {

    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-3px);
    }
}


/* =========================================
   موبایل - انیمیشن کمتر
   ========================================= */

@media (max-width: 768px) {

    .login-banner .banner-content {
        animation: none;
    }

    .login-banner::before,
    .login-banner::after {
        opacity: .5;
    }
}


/* =========================================
   اگر کاربر Motion را خاموش کرده
   ========================================= */

@media (prefers-reduced-motion: reduce) {

    .login-banner::before,
    .login-banner::after,
    .login-banner .banner-content,
    .login-banner .badge-title,
    .login-banner .feature-item i {
        animation: none !important;
    }
}

/* Hover Animation برای آیتم‌های سمت چپ */

.login-banner .feature-item {
    cursor: default;
    transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

    .login-banner .feature-item:hover {
        transform: translateY(-5px) translateX(-4px);
        background: rgba(255, 255, 255, 0.07);
        border-color: rgba(245, 158, 11, 0.25);
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15), 0 0 20px rgba(245, 158, 11, 0.08);
    }


        /* آیکون هم کمی بزرگ شود */

        .login-banner .feature-item:hover i {
            transform: scale(1.12) rotate(-5deg);
            background: rgba(245, 158, 11, 0.16);
            color: #f59e0b;
        }


        /* متن هم کمی جابه‌جا شود */

        .login-banner .feature-item:hover span {
            transform: translateX(-3px);
            color: #fff;
        }


    .login-banner .feature-item span {
        transition: transform 0.25s ease, color 0.25s ease;
    }

.login-banner .feature-item {
    position: relative;
    overflow: hidden;
}

    .login-banner .feature-item::before,
    .login-banner .feature-item::after {
        content: "";
        position: absolute;
        width: 2px;
        height: 32%;
        border-radius: 10px;
        background: linear-gradient( to bottom, transparent, #f59e0b, #ffd166, transparent );
        box-shadow: 0 0 8px rgba(245, 158, 11, .7), 0 0 16px rgba(245, 158, 11, .3);
    }


    /* سمت راست */
    .login-banner .feature-item::after {
        right: 0;
        top: -35%;
        animation: lightRight 3s ease-in-out infinite;
    }


    /* سمت چپ */
    .login-banner .feature-item::before {
        left: 0;
        top: 100%;
        animation: lightLeft 3s ease-in-out infinite;
    }


@keyframes lightRight {

    0% {
        top: -35%;
        opacity: 0;
    }

    15% {
        opacity: 1;
    }

    50% {
        top: 100%;
        opacity: 1;
    }

    70% {
        opacity: 0;
    }

    100% {
        top: 100%;
        opacity: 0;
    }
}


@keyframes lightLeft {

    0% {
        top: 100%;
        opacity: 0;
    }

    15% {
        opacity: 1;
    }

    50% {
        top: -35%;
        opacity: 1;
    }

    70% {
        opacity: 0;
    }

    100% {
        top: -35%;
        opacity: 0;
    }
}
/* =========================================
   Animated Side Light - Login Layout
   ========================================= */

.login-panel,
.login-banner {
    position: relative;
    overflow: hidden;
}


    /* خط نور سمت راست */
    .login-panel::after,
    .login-banner::after {
        content: "";
        position: absolute;
        top: -25%;
        right: 0;
        width: 3px;
        height: 25%;
        border-radius: 10px;
        background: linear-gradient( to bottom, transparent, #f59e0b, #ffd166, transparent );
        box-shadow: 0 0 8px rgba(245, 158, 11, .8), 0 0 18px rgba(245, 158, 11, .4);
        animation: loginLightRight 4s ease-in-out infinite;
        z-index: 20;
        pointer-events: none;
    }


    /* خط نور سمت چپ */
    .login-panel::before,
    .login-banner::before {
        content: "";
        position: absolute;
        left: 0;
        top: 100%;
        width: 3px;
        height: 25%;
        border-radius: 10px;
        background: linear-gradient( to bottom, transparent, #f59e0b, #ffd166, transparent );
        box-shadow: 0 0 8px rgba(245, 158, 11, .8), 0 0 18px rgba(245, 158, 11, .4);
        animation: loginLightLeft 4s ease-in-out infinite;
        z-index: 20;
        pointer-events: none;
    }


/* =========================================
   حرکت نور سمت راست
   ========================================= */

@keyframes loginLightRight {

    0% {
        top: -25%;
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    50% {
        top: 100%;
        opacity: 1;
    }

    65% {
        opacity: 0;
    }

    100% {
        top: 100%;
        opacity: 0;
    }
}


/* =========================================
   حرکت نور سمت چپ
   ========================================= */

@keyframes loginLightLeft {

    0% {
        top: 100%;
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    50% {
        top: -25%;
        opacity: 1;
    }

    65% {
        opacity: 0;
    }

    100% {
        top: -25%;
        opacity: 0;
    }
}
