/* =====================================================================
   Couplina — scroll lock & overlay scrolling fixes
   هر وقت مودال/پنل/صفحه‌ی تمام‌صفحه‌ای باز باشد، صفحه‌ی زیرش قفل می‌شود
   (scrolllock.js کلاس‌های sl-lock / sl-fixed را مدیریت می‌کند) و فقط خود
   پنل باز شده اسکرول می‌خورد.
   ===================================================================== */

/* --- قفل صفحه‌ی پشت (iOS/Android/Desktop) --- */
html.sl-lock{overflow:hidden!important;overscroll-behavior:none;scroll-behavior:auto!important}
html.sl-lock body.sl-fixed{
  position:fixed!important;left:0;right:0;width:100%;
  overflow:hidden!important;
  padding-right:var(--sl-sbw,0px);
}
/* قانون‌های قدیمی که overflow بدنه را visible/clip می‌کردند، قفل را باطل نکنند */
html.sl-lock body.relationship-calendar-open,
html.sl-lock body.policy-open{overflow:hidden!important}

/* --- اسکرولِ داخل پنل‌ها به صفحه‌ی پشت منتقل نشود (scroll chaining) ---
   فقط روی خود پنل‌ها؛ نه روی همه‌ی فرزندانشان. اگر فرزندی (مثل جدول افقی یا شبکه‌ی دکمه‌ها) overflow:auto داشته باشد
   و contain بگیرد، کشیدنِ انگشت روی آن اسکرول پنل را «قورت می‌دهد» و پنل اسکرول نمی‌خورد. */
.modal,
.policy-modal,
.relationship-calendar-modal,
.lg-modal,
.world-settings-overlay,
.privacy-settings-overlay,
.couplina-chat-overlay,
.sticker-store-overlay,
.sticker-detail-overlay,
.chat-pin-choice-overlay,
.chat-pins-list-overlay,
.cq-overlay,
.sp-overlay,
.sp-stage,
.music-lounge,
.couple-required-overlay,
.subscription-page-overlay,
.mobile-nav-drawer,
.header-panel,
.chat-msg-menu,
.emoji-grid,.chat-messages-wrap,.global-search-results,.quick-grid{
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
/* خود لایه‌ی تمام‌صفحه هم هرگز اسکرول را به بدنه ندهد */
.modal,.policy-modal,.relationship-calendar-modal,.lg-modal,
.world-settings-overlay,.privacy-settings-overlay,.couplina-chat-overlay,
.sticker-store-overlay,.sticker-detail-overlay,.chat-pin-choice-overlay,
.chat-pins-list-overlay,.cq-overlay,.sp-overlay,.sp-stage,.music-lounge,
.couple-required-overlay,.subscription-page-overlay{overscroll-behavior:contain}

/* --- کارت‌هایی که قبلاً امکان اسکرول نداشتند --- */
.lg-card{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden}
.chat-pin-choice{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto}
.mobile-nav-drawer{overflow-y:auto}
.header-panel{max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);overflow-y:auto;overflow-x:hidden}
.chat-pins-list{display:flex;flex-direction:column}
.chat-pins-list-items{min-height:0;flex:1 1 auto;overflow-y:auto}

/* --- ارتفاع‌ها بر اساس dvh (نوار آدرس موبایل ارتفاع vh را خراب می‌کند) --- */
@supports (height:100dvh){
  .mobile-nav-drawer{height:100dvh}
  .mobile-nav-grid{max-height:calc(100dvh - 220px)}
  .policy-box{max-height:min(82dvh,780px)}
  .policy-scroll{max-height:calc(min(82dvh,780px) - 105px)}
  .relationship-calendar-box{max-height:min(900px,96dvh)}
  .couplina-chat-shell{height:min(790px,94dvh)}
  .world-settings-page,.privacy-settings-page{max-height:92dvh}
  .sticker-store,.sticker-detail-card{max-height:min(88dvh,780px)}
  .chat-pins-list{max-height:min(78dvh,720px)}
  .couple-required-card,.subscription-page-card{max-height:90dvh}
  .music-lounge-card{max-height:94dvh}
  .sp-card,.sp-stage-card{max-height:94dvh}
  .search-panel{max-height:calc(100dvh - 105px)}
  @media(max-width:700px){
    .policy-box{max-height:88dvh}
    .policy-scroll{max-height:calc(88dvh - 95px)}
    .relationship-calendar-box{max-height:97dvh}
    .couplina-chat-shell{height:100dvh}
    .world-settings-page,.privacy-settings-page{max-height:94dvh}
  }
}


/* --- گوشی: بالای کادرِ «موسیقی» و «قرارها» نباید زیر نوار بالای گوشی برود ---
   vh در موبایل ارتفاعِ بدون نوار آدرس است و کارتِ وسط‌چین از بالا بریده می‌شد؛
   اینجا کارت از بالا شروع می‌شود، با فاصله‌ی امن، و ارتفاعش بر اساس dvh است. */
@media(max-width:700px){
  .music-lounge{align-items:flex-start!important;padding:max(14px,env(safe-area-inset-top,0px)) 8px max(8px,env(safe-area-inset-bottom,0px))!important}
  .music-lounge .music-lounge-card{max-height:calc(100vh - 28px)!important;max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px))!important;margin:0 auto}
  .mt-overlay{padding-top:max(14px,env(safe-area-inset-top,0px))!important}
  .mt-overlay .mt-card{max-height:calc(100vh - 28px)!important;max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px))!important}
}

/* --- قرارها / فاصله‌مون / نامه‌ها: اسکرول هرگز به صفحه‌ی زیرین نرسد --- */
.mt-overlay,.mt-card,.ds-overlay,.ds-overlay *,.lt-overlay,.sp-overlay,.music-lounge,.music-lounge-card{overscroll-behavior:contain}
.mt-overlay{touch-action:pan-y}

/* --- کاهش لگ گوشی --- */
/* وقتی یک صفحه‌ی تمام‌صفحه باز است، انیمیشن‌های تزئینیِ پشتش متوقف می‌شوند */
html.sl-bgpause .spooky-sides,html.sl-bgpause .spooky-sides *,
html.sl-bgpause .header-shell *,html.sl-bgpause .main-nav *,
html.sl-bgpause .hero *,html.sl-bgpause .cp-feature-slider *,html.sl-bgpause .cp-timecapsule *{animation-play-state:paused!important}
/* انیمیشن‌های بی‌نهایتِ سنگین (سایه‌ی متحرک، جابه‌جایی پس‌زمینه، فیلتر) روی گوشی خاموش */
@media(max-width:900px),(pointer:coarse){
  .cp-autumn-heading h2 em,
  .cp-timecapsule-intro h2 em,
  .cs-match-view .cs-xo-turn.is-mine,
  .ds-livehead .live i,
  .ds-pin-in,
  .ds-stat .live i,
  .footer-cta-pro h2 em,
  .footer-message h2 em,
  .ft-canvas.is-mine,
  .lt-slot.ready,
  .main-nav .nav-link.nav-png-only img,
  .mt-today-st.now,
  .poster h2 em,
  .primary,
  .relationship-day.selected,
  .sp-rec.is-rec .sp-rec-btn,
  .sun,
  .welcome-popup h2 em,
  h1 strong{animation:none!important}
  .mt-card,.music-lounge-card,.ds-overlay *{will-change:auto}
  .mt-item{transition:none}
  .mt-item:hover{transform:none}
}


/* --- اصلاح اسکرول گوشی: کشیدن عمودی انگشت روی اسکرولرهای افقی/بی‌حاشیه باید به پنل برسد --- */
.subscription-compare-scroll{overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
@media(max-width:560px){
  /* شبکه‌ی «یه چیز قشنگ بسازیم؟» ارتفاع محدود ندارد؛ نباید خودش اسکرولر باشد (خود پنل اسکرول می‌خورد) */
  .quick-grid{overflow:visible!important;max-height:none!important;overscroll-behavior:auto!important}
}
