/* ============================================================
   ثنا — ظاهر مدرن موبایل (بازنویسی بصری، بدون تغییر ساختار)
   ------------------------------------------------------------
   تمام رنگ‌ها از متغیرهای تم (--ds-*) گرفته می‌شوند تا ظاهر
   موبایل با تنظیمات «هویت بصری» (رنگ برند/پس‌زمینه) همگام بماند.
   این فایل آخرین استایل لود می‌شود و با !important لایهٔ
   «دفتر» (design-system) را برای بخش موبایل خنثی می‌کند.
   ============================================================ */

/* ── ۱) زیربنا ── */
html body.ds-app {
    background: var(--ds-bg) !important;
    color: var(--ds-ink) !important;
    font-family: 'Vazirmatn', Tahoma, Arial, sans-serif !important;
}

/* هالهٔ نرم برند در گوشهٔ بالا */
.mobile-content { position: relative; z-index: 0; }
.mobile-content::before {
    content: '';
    position: fixed;
    top: -140px; right: -90px;
    width: 300px; height: 300px;
    border-radius: 50%;
    background: var(--ds-brand-soft);
    filter: blur(70px);
    opacity: .55;
    pointer-events: none;
    z-index: 0;
}
.mobile-content > * { position: relative; z-index: 1; }

/* ── ۲) هدر بالایی ── */
html body.ds-app .mobile-header {
    background: var(--ds-surface) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    border-bottom: 1px solid var(--ds-line) !important;
    box-shadow: var(--ds-shadow) !important;
    padding: 12px 16px !important;
}
html body.ds-app .mobile-header .logo {
    border-radius: 10px !important;
    border: none !important;
    box-shadow: none !important;
}
html body.ds-app .mobile-header .brand-name {
    color: var(--ds-brand) !important;
    font-size: 15px !important;
    letter-spacing: -.3px;
}
html body.ds-app .mobile-header .brand-sub {
    color: var(--ds-ink-3) !important;
    font-size: 10px !important;
}
html body.ds-app .admin-status {
    background: var(--ds-surface-2) !important;
    border: 1px solid var(--ds-line) !important;
    color: var(--ds-ink-2) !important;
}
html body.ds-app .admin-status .dot.online {
    background: var(--ds-pos) !important;
    box-shadow: 0 0 8px var(--ds-pos-soft);
}
html body.ds-app .logout-btn {
    background: var(--ds-surface-2) !important;
    color: var(--ds-ink-2) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}
html body.ds-app .logout-btn:hover {
    background: var(--ds-neg-soft) !important;
    color: var(--ds-neg) !important;
    border-color: var(--ds-neg) !important;
}

/* ── ۳) ناوبری پایین (شناور و مدرن) ── */
html body.ds-app .bottom-nav {
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: 10px !important;
    width: calc(100% - 22px) !important;
    max-width: 460px !important;
    background: color-mix(in srgb, var(--ds-surface) 88%, transparent) !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 22px !important;
    box-shadow: var(--ds-shadow-hard) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom)) !important;
    display: flex !important;
    justify-content: space-around !important;
}
html body.ds-app .nav-item {
    flex: 1;
    min-width: 0 !important;
    color: var(--ds-ink-3) !important;
    font-size: 9.5px !important;
    font-weight: 600 !important;
    padding: 7px 4px !important;
    border-radius: 14px !important;
    transition: all .22s ease !important;
    position: relative;
}
html body.ds-app .nav-item svg {
    width: 23px !important;
    height: 23px !important;
    stroke: currentColor !important;
    fill: none !important;
    transition: all .22s ease !important;
}
html body.ds-app .nav-item.active {
    color: var(--ds-brand) !important;
    background-image: linear-gradient(135deg, var(--ds-brand-soft), var(--ds-brand-soft)) !important;
    background: var(--ds-brand-soft) !important;
    box-shadow: inset 0 0 0 1px var(--ds-line) !important;
}
html body.ds-app .nav-item.active svg {
    stroke: var(--ds-brand) !important;
    transform: translateY(-1px) !important;
    filter: drop-shadow(0 2px 6px var(--ds-brand-soft));
}
html body.ds-app .nav-item.active::before { display: none !important; }
html body.ds-app .nav-item:active { transform: scale(.9) !important; }
html body.ds-app .nav-item .badge {
    background: var(--ds-neg) !important;
    box-shadow: 0 0 0 2px var(--ds-surface);
}

/* ── ۴) کارت‌ها و بخش‌های عمومی ── */
html body.ds-app .glass-card {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 18px !important;
    box-shadow: var(--ds-shadow) !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
    transition: transform .2s ease, box-shadow .2s ease !important;
}
html body.ds-app .glass-card:active {
    transform: translateY(-2px);
    box-shadow: var(--ds-shadow-hard) !important;
}
html body.ds-app .section-title {
    color: var(--ds-ink) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    margin: 18px 0 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
html body.ds-app .section-title::before {
    content: '';
    width: 4px; height: 18px;
    border-radius: 4px;
    background-image: linear-gradient(180deg, var(--ds-brand), var(--ds-brand-hover)) !important;
}

/* ── ۵) لیست ارزها (صفحه معامله) ── */
html body.ds-app .m-trade { padding-bottom: 12px !important; }
html body.ds-app .m-big-amount {
    font-size: 30px !important;
    font-weight: 900 !important;
    color: var(--ds-ink) !important;
    letter-spacing: -1px !important;
}
html body.ds-app .m-unit { color: var(--ds-ink-3) !important; font-weight: 700 !important; }
html body.ds-app .ds-balances {
    border-top: 1px solid var(--ds-line) !important;
}
html body.ds-app .ds-balances-title { color: var(--ds-ink-3) !important; font-weight: 700 !important; }
html body.ds-app .ds-balance-chip {
    background: var(--ds-surface-2) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 10px !important;
    color: var(--ds-ink) !important;
    padding: 4px 9px !important;
    font-size: 11px !important;
}
/* جهت: عنوان راست‌به‌چپ، چیپ‌های ارز (نماد+عدد) چپ‌به‌راست */
html body.ds-app .ds-balances-title { direction: rtl !important; unicode-bidi: isolate !important; }
html body.ds-app .ds-balance-chip { direction: ltr !important; unicode-bidi: isolate !important; }
html body.ds-app .ds-subhead h2 { color: var(--ds-ink) !important; font-weight: 800 !important; }
html body.ds-app .ds-pill-ok {
    background: var(--ds-pos-soft) !important;
    color: var(--ds-pos) !important;
    border-radius: 20px !important;
    padding: 3px 10px !important;
    font-weight: 800 !important;
    font-size: 11px !important;
}

html body.ds-app .m-asset-list { display: flex !important; flex-direction: column !important; gap: 10px !important; }
html body.ds-app .m-asset {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    cursor: pointer !important;
    font-family: inherit !important;
    text-align: right !important;
    transition: border-color .18s, background .18s, transform .18s, box-shadow .18s !important;
}
html body.ds-app .m-asset:active,
html body.ds-app .m-asset:focus-visible {
    border-color: var(--ds-brand) !important;
    background: var(--ds-surface-2) !important;
    box-shadow: var(--ds-shadow) !important;
    outline: none !important;
    transform: translateY(-1px);
}
html body.ds-app .m-asset-name { font-weight: 800 !important; font-size: 15px !important; color: var(--ds-ink) !important; }
html body.ds-app .m-asset-symbol { font-size: 11px !important; color: var(--ds-ink-3) !important; }
html body.ds-app .m-price-label { font-size: 10px !important; color: var(--ds-ink-3) !important; font-weight: 700 !important; }
html body.ds-app .m-price-col b.ds-pos { color: var(--ds-pos) !important; }
html body.ds-app .m-price-col b.ds-neg { color: var(--ds-neg) !important; }
html body.ds-app .m-asset-prices .ds-icon-btn,
html body.ds-app .m-asset-prices svg { color: var(--ds-ink-3) !important; }

/* ── ۶) مودال معامله (واضح، مدرن، قابل خروج) ── */
html body.ds-app .m-modal { z-index: 1200 !important; }
html body.ds-app .m-modal-backdrop {
    position: absolute !important;
    inset: 0 !important;
    background: var(--ds-overlay) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    cursor: pointer !important;
}
html body.ds-app .m-modal-card {
    position: relative !important;
    width: 100% !important;
    max-width: 480px !important;
    margin: 0 12px !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 26px 26px 0 0 !important;
    box-shadow: var(--ds-shadow-hard) !important;
    padding: 10px 20px 26px !important;
    animation: mxSheetUp .26s cubic-bezier(.32,.72,0,1) !important;
}
@keyframes mxSheetUp { from { transform: translateY(24px); opacity: .55 } to { transform: none; opacity: 1 } }

/* دستگیرهٔ بالای شیت */
html body.ds-app .m-modal-card::before {
    content: '';
    display: block;
    width: 44px; height: 5px;
    border-radius: 3px;
    background: var(--ds-line-strong) !important;
    margin: 4px auto 14px !important;
}
html body.ds-app .m-modal-card .ds-subhead {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 14px !important;
}
html body.ds-app .m-modal-card #tmAsset {
    color: var(--ds-ink) !important;
    font-size: 18px !important;
    font-weight: 900 !important;
}
/* دکمهٔ بستن (×) برجسته */
html body.ds-app .m-modal-card .ds-icon-btn {
    width: 38px !important; height: 38px !important;
    border-radius: 50% !important;
    background: var(--ds-surface-2) !important;
    border: 1px solid var(--ds-line) !important;
    color: var(--ds-ink-2) !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    cursor: pointer !important;
}
html body.ds-app .m-modal-card .ds-icon-btn:active { transform: scale(.9) !important; }

/* فیلدها */
html body.ds-app .ds-field { margin-bottom: 12px !important; }
html body.ds-app .ds-field label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--ds-ink-2) !important;
    margin-bottom: 6px !important;
}
html body.ds-app .ds-field input,
html body.ds-app input[type="text"],
html body.ds-app input[type="number"] {
    width: 100% !important;
    padding: 14px 16px !important;
    background: var(--ds-surface-2) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 14px !important;
    color: var(--ds-ink) !important;
    font-family: inherit !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    transition: border-color .18s, box-shadow .18s !important;
}
html body.ds-app .ds-field input:focus,
html body.ds-app input:focus {
    outline: none !important;
    border-color: var(--ds-brand) !important;
    box-shadow: 0 0 0 4px var(--ds-brand-soft) !important;
}
html body.ds-app .ds-readonly,
html body.ds-app .ds-readonly-sm {
    background: var(--ds-surface-2) !important;
    border: 1px dashed var(--ds-line-strong) !important;
    border-radius: 14px !important;
    color: var(--ds-ink) !important;
    font-weight: 800 !important;
    padding: 14px 16px !important;
    font-size: 16px !important;
}
html body.ds-app .ds-muted { color: var(--ds-ink-3) !important; }
html body.ds-app .ds-hint { color: var(--ds-neg) !important; font-weight: 700 !important; min-height: 18px !important; }

/* دکمه‌های خرید / فروش — کاملاً متمایز */
html body.ds-app .m-trade-actions { display: flex !important; gap: 10px !important; margin-top: 6px !important; }
html body.ds-app #tmBuy,
html body.ds-app #tmSell {
    flex: 1 !important;
    padding: 16px !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    border: none !important;
    border-radius: 16px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    color: var(--ds-pos-on) !important;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}
html body.ds-app #tmBuy {
    background-image: linear-gradient(135deg, var(--ds-pos), var(--ds-pos)) !important;
    background: var(--ds-pos) !important;
    box-shadow: 0 8px 20px var(--ds-pos-soft) !important;
}
html body.ds-app #tmSell {
    background-image: linear-gradient(135deg, var(--ds-neg), var(--ds-neg)) !important;
    background: var(--ds-neg) !important;
    box-shadow: 0 8px 20px var(--ds-neg-soft) !important;
}
html body.ds-app #tmBuy:active,
html body.ds-app #tmSell:active { transform: scale(.96) !important; filter: brightness(1.05) !important; }
html body.ds-app .mx-ico { font-size: 13px !important; line-height: 1 !important; }

/* دکمهٔ انصراف / خروج — همیشه دیده میشود */
html body.ds-app .m-cancel {
    width: 100% !important;
    margin-top: 12px !important;
    padding: 13px !important;
    background: transparent !important;
    border: 1px solid var(--ds-line-strong) !important;
    border-radius: 14px !important;
    color: var(--ds-ink-2) !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background .15s ease !important;
}
html body.ds-app .m-cancel:active { background: var(--ds-surface-2) !important; }

/* ── ۶-ب) کارت ارز با دو گزینهٔ مجزا: خرید / فروش (مثل اپ مشتری، ولی صیقلی‌تر) ── */
html body.ds-app .m-asset-list { display: flex !important; flex-direction: column !important; gap: 10px !important; }
html body.ds-app .m-asset-card {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 16px !important;
    padding: 13px 15px !important;
    box-shadow: var(--ds-shadow) !important;
    transition: transform .2s ease, box-shadow .2s ease !important;
}
html body.ds-app .m-asset-card:active { transform: translateY(-1px); box-shadow: var(--ds-shadow) !important; }
html body.ds-app .m-asset-head { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 11px !important; }
html body.ds-app .m-asset-head .m-asset-name { font-weight: 800 !important; font-size: 15px !important; color: var(--ds-ink) !important; }
html body.ds-app .m-asset-head .m-asset-symbol { font-size: 11px !important; color: var(--ds-ink-3) !important; }
html body.ds-app .m-asset-head .m-tag {
    margin-inline-start: auto !important; font-size: 10px !important; font-weight: 800 !important;
    background: var(--ds-pos-soft) !important; color: var(--ds-pos) !important;
    border-radius: 20px !important; padding: 3px 10px !important;
}
html body.ds-app .m-trade-split { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
html body.ds-app .m-opt {
    display: flex !important; flex-direction: column !important; align-items: center !important; gap: 3px !important;
    padding: 12px 8px !important; border-radius: 14px !important; cursor: pointer !important;
    font-family: inherit !important; border: 1px solid transparent !important;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}
html body.ds-app .m-opt:active { transform: scale(.97) !important; }
html body.ds-app .m-opt-label { font-size: 12px !important; font-weight: 700 !important; }
html body.ds-app .m-opt-price { font-size: 15px !important; font-weight: 900 !important; font-family: 'Vazirmatn', Tahoma, sans-serif !important; }
html body.ds-app .m-opt-buy { background: var(--ds-pos-soft) !important; border-color: var(--ds-pos-soft) !important; }
html body.ds-app .m-opt-buy .m-opt-label,
html body.ds-app .m-opt-buy .m-opt-price { color: var(--ds-pos) !important; }
html body.ds-app .m-opt-buy:active { box-shadow: 0 6px 18px var(--ds-pos-soft) !important; filter: brightness(1.04); }
html body.ds-app .m-opt-sell { background: var(--ds-neg-soft) !important; border-color: var(--ds-neg-soft) !important; }
html body.ds-app .m-opt-sell .m-opt-label,
html body.ds-app .m-opt-sell .m-opt-price { color: var(--ds-neg) !important; }
html body.ds-app .m-opt-sell:active { box-shadow: 0 6px 18px var(--ds-neg-soft) !important; filter: brightness(1.04); }

/* مودال: نشانگر نوع + دکمهٔ تأیید تک‌رنگ (خرید=سبز / فروش=قرمز) */
html body.ds-app .m-mode-badge {
    display: inline-block !important; font-size: 11px !important; font-weight: 800 !important;
    padding: 4px 12px !important; border-radius: 20px !important; margin-bottom: 12px !important;
}
html body.ds-app .m-mode-badge.is-buy { background: var(--ds-pos-soft) !important; color: var(--ds-pos) !important; }
html body.ds-app .m-mode-badge.is-sell { background: var(--ds-neg-soft) !important; color: var(--ds-neg) !important; }
html body.ds-app .m-confirm {
    width: 100% !important; margin-top: 4px !important; padding: 16px !important;
    border: none !important; border-radius: 16px !important; color: var(--ds-neg-on) !important;
    font-family: inherit !important; font-size: 15px !important; font-weight: 900 !important;
    cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease !important;
}
html body.ds-app .m-confirm.is-buy { background: var(--ds-pos) !important; box-shadow: 0 8px 20px var(--ds-pos-soft) !important; }
html body.ds-app .m-confirm.is-sell { background: var(--ds-neg) !important; box-shadow: 0 8px 20px var(--ds-neg-soft) !important; }
html body.ds-app .m-confirm:active { transform: scale(.97) !important; filter: brightness(1.05) !important; }

/* نوار مانده (ریال + همین ارز) در مودال معامله */
html body.ds-app .m-bal-strip { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; margin-bottom: 14px !important; }
html body.ds-app .m-bal-cell { background: var(--ds-surface-2) !important; border: 1px solid var(--ds-line) !important; border-radius: 12px !important; padding: 10px 12px !important; text-align: center !important; }
html body.ds-app .m-bal-lbl { display: block !important; font-size: 10px !important; color: var(--ds-ink-3) !important; font-weight: 700 !important; margin-bottom: 4px !important; }
html body.ds-app .m-bal-val { font-weight: 900 !important; font-size: 14px !important; color: var(--ds-ink) !important; }

/* ============================================================
   ۱۳) موشن / زنده بودن رابط
   ------------------------------------------------------------
   همهٔ انیمیشنها فقط transform یا opacity را لمس میکنند
   (بدون reflow، مناسب موبایل). هیچ وابستگی به منطق تراکنش نیست.
   ============================================================ */
@keyframes mxEnter      { from { opacity:0; transform:translateY(14px) scale(.985) } to { opacity:1; transform:none } }
@keyframes mxPop        { 0% { opacity:0; transform:scale(.86) } 68% { opacity:1; transform:scale(1.045) } 100% { transform:scale(1) } }
@keyframes mxBlink      { 0%,100% { opacity:1; transform:scale(1) } 50% { opacity:.35; transform:scale(.72) } }
@keyframes mxPulse      { 0% { box-shadow:0 0 0 0 var(--ds-pos-soft) } 70% { box-shadow:0 0 0 7px transparent } 100% { box-shadow:0 0 0 0 transparent } }
@keyframes mxSheen      { from { transform:translateX(-170%) skewX(-18deg) } to { transform:translateX(260%) skewX(-18deg) } }
@keyframes mxRipple     { to { transform:scale(2.7); opacity:0 } }
@keyframes mxSheetSpring{ 0% { transform:translateY(112%) } 58% { transform:translateY(-9px) } 78% { transform:translateY(3px) } 100% { transform:none } }
@keyframes mxBackdrop   { from { opacity:0 } to { opacity:1 } }
@keyframes mxDraw       { from { stroke-dashoffset:440 } to { stroke-dashoffset:0 } }

/* ورود پلکانی — مودال و فرزندانش عمداً مستثنی میشوند تا
   position:fixed مودال تحت تأثیر transform قرار نگیرد. */
html body.ds-app .mobile-content .ds-card:not(.m-modal-card),
html body.ds-app .mobile-content .glass-card,
html body.ds-app .mobile-content .m-asset-card,
html body.ds-app .mobile-content .ds-subhead,
html body.ds-app .mobile-content .section-title,
html body.ds-app .mobile-content .tx-item,
html body.ds-app .mobile-content .ds-row-item,
html body.ds-app .mobile-content .m-filter-row,
html body.ds-app .mobile-content > h2 {
    animation: mxEnter .44s cubic-bezier(.22,.8,.25,1) both !important;
    animation-delay: calc(var(--i, 0) * 45ms) !important;
}

/* هدر: لوگو پاپ میشود، نقطهٔ آنلاین نفس میکشد */
html body.ds-app .mobile-header .logo { animation: mxPop .62s cubic-bezier(.22,.9,.3,1.18) both !important; }
html body.ds-app .admin-status .dot.online { animation: mxPulse 2.4s ease-out infinite !important; }

/* نشان LIVE / تغییرات مثبت */
html body.ds-app .ds-pill-ok::before {
    content: '' !important;
    display: inline-block !important;
    width: 6px !important; height: 6px !important;
    border-radius: 50% !important;
    background: currentColor !important;
    margin-inline-end: 6px !important;
    vertical-align: middle !important;
    animation: mxBlink 1.9s ease-in-out infinite !important;
}

/* ناوبری: آیتم فعال با فنر کوچک جان میگیرد */
html body.ds-app .nav-item.active { animation: mxPop .46s cubic-bezier(.22,.9,.3,1.2) both !important; }
@media (hover:hover) {
    html body.ds-app .m-asset-card:hover { transform: translateY(-3px) !important; box-shadow: var(--ds-shadow-hard) !important; }
    html body.ds-app .nav-item:not(.active):hover { color: var(--ds-ink-2) !important; }
}

/* دکمهها: بستر ripple + درخشش عبوری هنگام لمس */
html body.ds-app .m-opt,
html body.ds-app .m-confirm,
html body.ds-app .m-cancel,
html body.ds-app .ds-btn,
html body.ds-app .m-filter-btn { position: relative !important; overflow: hidden !important; }
html body.ds-app .mx-ripple {
    position: absolute !important;
    border-radius: 50% !important;
    pointer-events: none !important;
    background: var(--ds-brand-soft) !important;
    transform: scale(0) !important;
    opacity: .7 !important;
    animation: mxRipple .58s ease-out forwards !important;
}
html body.ds-app .m-opt::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; bottom: 0 !important; left: 0 !important;
    width: 45% !important;
    background: linear-gradient(90deg, transparent, var(--ds-surface-3), transparent) !important;
    transform: translateX(-170%) skewX(-18deg) !important;
    pointer-events: none !important;
}
html body.ds-app .m-opt:active::after { animation: mxSheen .62s ease-out !important; }
html body.ds-app .m-opt:active,
html body.ds-app .m-confirm:active { transition-duration: .09s !important; }

/* مودال: شیت فنری + بکدراپ نرم */
html body.ds-app .m-modal-card { animation: mxSheetSpring .44s cubic-bezier(.22,.9,.28,1.06) both !important; }
html body.ds-app .m-modal-backdrop { animation: mxBackdrop .28s ease both !important; }
html body.ds-app.modal-open .bottom-nav {
    transform: translateX(-50%) translateY(9px) scale(.97) !important;
    opacity: .62 !important;
    transition: transform .32s ease, opacity .32s ease !important;
}

/* نمودار تحلیل بهتدریج رسم میشود */
html body.ds-app .m-spark path[stroke] {
    stroke-dasharray: 440 !important;
    animation: mxDraw 1.25s cubic-bezier(.3,.8,.3,1) .12s both !important;
}

/* ♿ احترام به تنظیم سیستم: کاهش حرکت */
@media (prefers-reduced-motion: reduce) {
    html body.ds-app *,
    html body.ds-app *::before,
    html body.ds-app *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        animation-delay: 0ms !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ── ۷) دکمه‌های عمومی ── */
html body.ds-app .ds-btn {
    padding: 13px 18px !important;
    border-radius: 14px !important;
    border: 1px solid var(--ds-line) !important;
    background: var(--ds-surface-2) !important;
    color: var(--ds-ink) !important;
    font-family: inherit !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}
html body.ds-app .ds-btn:active { transform: scale(.97) !important; }
html body.ds-app .ds-btn-primary {
    background-image: linear-gradient(135deg, var(--ds-brand), var(--ds-brand-hover)) !important;
    background: var(--ds-brand) !important;
    color: var(--ds-brand-on) !important;
    border-color: transparent !important;
    box-shadow: 0 8px 20px var(--ds-brand-soft) !important;
}

/* ── ۸) جداول / لیست‌ها ── */
html body.ds-app table th { color: var(--ds-ink-3) !important; font-weight: 800 !important; }
html body.ds-app table td { color: var(--ds-ink) !important; border-bottom: 1px solid var(--ds-line) !important; }
html body.ds-app .ds-pos { color: var(--ds-pos) !important; }
html body.ds-app .ds-neg { color: var(--ds-neg) !important; }

/* فاصلهٔ امن از ناوبری شناور */
html body.ds-app { padding-bottom: 92px !important; }

/* ============================================================
   پوشش کامل صفحه‌های /mobile/* (یکدست با صفحهٔ معامله)
   تمام صفحه‌ها از توکنهای تم (--ds-*) استفاده میکنند تا با
   تنظیمات «هویت بصری» همگام بمانند.
   ============================================================ */

/* ── ۹) صفحهٔ تحلیل بازار ── */
html body.ds-app .m-analysis { padding-bottom: 12px !important; }
html body.ds-app .m-rate-row { display: flex !important; gap: 12px !important; }
html body.ds-app .m-rate {
    flex: 1 !important;
    background: var(--ds-surface-2) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}
html body.ds-app .m-rate span { font-size: 10.5px !important; color: var(--ds-ink-3) !important; font-weight: 700 !important; }
html body.ds-app .m-rate b { font-size: 18px !important; font-weight: 800 !important; }
html body.ds-app .m-spark { width: 100% !important; height: 72px !important; margin-top: 12px !important; display: block !important; }
html body.ds-app .m-filter-row {
    display: flex !important; gap: 8px !important;
    overflow-x: auto !important; padding: 6px 0 14px !important;
    scrollbar-width: none !important;
}
html body.ds-app .m-filter-row::-webkit-scrollbar { display: none !important; }
html body.ds-app .m-filter-btn {
    padding: 8px 16px !important;
    border-radius: 999px !important;
    border: 1px solid var(--ds-line) !important;
    background: var(--ds-surface) !important;
    color: var(--ds-ink-2) !important;
    font-size: 12px !important; font-weight: 700 !important;
    white-space: nowrap !important; text-decoration: none !important;
    transition: all .18s ease !important;
}
html body.ds-app .m-filter-btn.active {
    background-image: linear-gradient(135deg, var(--ds-brand), var(--ds-brand-hover)) !important;
    background: var(--ds-brand) !important;
    color: var(--ds-brand-on) !important;
    border-color: transparent !important;
    box-shadow: 0 6px 16px var(--ds-brand-soft) !important;
}
html body.ds-app .m-filter-btn:active { transform: scale(.95) !important; }
html body.ds-app .m-history { display: flex !important; flex-direction: column !important; gap: 8px !important; }

/* ردیفهای عمومی (تحلیل / مانده / منو) */
html body.ds-app .ds-row-item {
    display: flex !important; align-items: center !important; gap: 10px !important;
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    transition: background .15s ease, transform .15s ease !important;
}
html body.ds-app .ds-row-item:active { background: var(--ds-surface-2) !important; transform: scale(.99) !important; }
html body.ds-app .ds-row-party { color: var(--ds-ink) !important; font-weight: 700 !important; }
html body.ds-app .ds-row-meta { color: var(--ds-ink-2) !important; margin-inline-start: auto !important; font-size: 12px !important; }
html body.ds-app .ds-asset-chip {
    background: var(--ds-brand-soft) !important; color: var(--ds-brand) !important;
    border-radius: 8px !important; padding: 3px 9px !important;
    font-weight: 800 !important; font-size: 11px !important;
}
html body.ds-app .ds-empty { color: var(--ds-ink-3) !important; text-align: center !important; padding: 20px !important; }
html body.ds-app .ds-pill { border-radius: 20px !important; padding: 3px 10px !important; font-weight: 800 !important; font-size: 11px !important; }
html body.ds-app .ds-pill-ok { background: var(--ds-pos-soft) !important; color: var(--ds-pos) !important; }
html body.ds-app .ds-pill-bad { background: var(--ds-neg-soft) !important; color: var(--ds-neg) !important; }
html body.ds-app .ds-subhead { display: flex !important; align-items: center !important; justify-content: space-between !important; margin: 16px 0 12px !important; }
html body.ds-app .ds-subhead h2 { color: var(--ds-ink) !important; font-weight: 800 !important; }

/* ── ۱۰) صفحهٔ مانده حساب ── */
html body.ds-app .m-balance { padding-bottom: 12px !important; }
html body.ds-app .m-big { font-size: 30px !important; font-weight: 900 !important; color: var(--ds-ink) !important; letter-spacing: -1px !important; }
html body.ds-app .m-unit { color: var(--ds-ink-3) !important; font-weight: 700 !important; }
html body.ds-app .m-bal-list { display: flex !important; flex-direction: column !important; gap: 8px !important; }

/* ── ۱۱) صفحهٔ گردش حساب ── */
html body.ds-app .transactions-page { padding-bottom: 8px !important; }
html body.ds-app .transactions-page > h2 { color: var(--ds-ink) !important; font-size: 19px !important; font-weight: 900 !important; margin-bottom: 4px !important; }
html body.ds-app .transactions-page > p { color: var(--ds-ink-3) !important; font-size: 13px !important; margin-bottom: 15px !important; }
html body.ds-app .tx-item {
    background: var(--ds-surface) !important;
    border: 1px solid var(--ds-line) !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    margin-bottom: 10px !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}
html body.ds-app .tx-item:active { transform: scale(.985) !important; box-shadow: var(--ds-shadow) !important; }
html body.ds-app .tx-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 8px !important; }
html body.ds-app .tx-type { font-weight: 800 !important; font-size: 14px !important; display: flex !important; align-items: center !important; gap: 6px !important; }
html body.ds-app .tx-type.buy { color: var(--ds-pos) !important; }
html body.ds-app .tx-type.sell { color: var(--ds-neg) !important; }
html body.ds-app .tx-type.deposit { color: var(--ds-brand) !important; }
html body.ds-app .tx-amount { font-weight: 900 !important; font-size: 16px !important; }
html body.ds-app .tx-amount.positive { color: var(--ds-pos) !important; }
html body.ds-app .tx-amount.negative { color: var(--ds-neg) !important; }
html body.ds-app .tx-details { display: flex !important; justify-content: space-between !important; font-size: 13px !important; color: var(--ds-ink-2) !important; }
html body.ds-app .tx-date { font-size: 11px !important; color: var(--ds-ink-3) !important; margin-top: 6px !important; }
html body.ds-app .empty-state { text-align: center !important; padding: 60px 20px !important; color: var(--ds-ink-3) !important; }

/* ── ۱۲) صفحهٔ پروفایل ── */
html body.ds-app .m-profile { padding-bottom: 12px !important; }
html body.ds-app .m-avatar-wrap { display: inline-block !important; text-align: center !important; }
html body.ds-app .m-avatar {
    width: 84px !important; height: 84px !important;
    border-radius: 50% !important; object-fit: cover !important;
    border: 3px solid var(--ds-brand-soft) !important;
    box-shadow: 0 0 0 5px var(--ds-surface), 0 10px 26px var(--ds-brand-soft) !important;
}
html body.ds-app .m-name { font-size: 20px !important; font-weight: 900 !important; margin-top: 12px !important; color: var(--ds-ink) !important; }
html body.ds-app .m-menu { text-decoration: none !important; cursor: pointer !important; margin-bottom: 8px !important; width: 100% !important; }
html body.ds-app .m-menu .ds-row-party { color: var(--ds-ink) !important; font-weight: 700 !important; }
html body.ds-app .m-arrow { color: var(--ds-ink-3) !important; margin-inline-start: auto !important; display: inline-flex !important; }
html body.ds-app .m-menu svg:first-child { color: var(--ds-brand) !important; flex: none !important; }
html body.ds-app .m-version { text-align: center !important; margin-top: 26px !important; font-size: 11.5px !important; color: var(--ds-ink-3) !important; }

/* متن دکمههای خرید/فروش متناسب با رنگ زمینه (نه سفید ثابت) */
html body.ds-app #tmBuy, html body.ds-app .m-confirm.is-buy { color: var(--ds-pos-on) !important; }
html body.ds-app #tmSell, html body.ds-app .m-confirm.is-sell { color: var(--ds-neg-on) !important; }
html body.ds-app .logout-btn { color: var(--ds-neg-on) !important; }
