/* Full mobile portal shell. All rules are scoped to the feature flag class. */
.portal-mobile-header,
.portal-mobile-public-header,
.portal-mobile-menu,
.portal-mobile-bottom-nav,
.portal-mobile-dashboard-hero,
.portal-mobile-quick-actions,
.portal-mobile-dashboard-bento,
.portal-mobile-asset-allocation,
.portal-mobile-section-heading,
.portal-mobile-compare-overview,
.portal-mobile-compare-list {
    display: none;
}
.portal-mobile-page-header { display: none; }
.mobile-request-fund-header { display: none; }

/* The certificates page retains its native title in desktop mode, even for users
   who are opted in to the mobile experience feature. */
@media (min-width: 768px) {
    .portal-mobile-experience .certificates-page-intro {
        display: block !important;
    }

    /* Bootstrap appends the backdrop to body while these request modals are
       rendered inside the portal shell. Keep the dialog above that backdrop
       (and the desktop fixed header) so its actions remain clickable. */
    #pageWrapper .modal {
        z-index: 100001;
    }

    body:has(#pageWrapper .modal.show) > .modal-backdrop {
        z-index: 100000;
    }

    /* The redemption amount field reuses the mobile markup. On desktop it is
       a regular detail row: label on the right, input and unit together on
       the left, rather than wrapping the label below the input. */
    .cancellation-request .mobile-request-input-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        min-height: 58px;
        padding: 10px 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .cancellation-request .mobile-request-input-row > label {
        margin: 0;
        color: #244c7a;
        font-weight: 700;
    }

    .cancellation-request .mobile-request-input-row__control {
        display: inline-flex;
        align-items: stretch;
        width: min(100%, 230px);
        min-width: 180px;
    }

    .cancellation-request .mobile-request-input-row .cancellation-request-input {
        min-width: 0;
        margin: 0 !important;
        border-radius: 0 .375rem .375rem 0;
        text-align: right;
    }

    .cancellation-request .mobile-request-input-row__unit {
        display: grid;
        place-items: center;
        min-width: 58px;
        border: 1px solid #ced4da;
        border-right: 0;
        border-radius: .375rem 0 0 .375rem;
        background: #f8fafc;
        color: #244c7a;
        font-size: .85rem;
        font-weight: 700;
    }
}

/* Used before the client-side experience selector has resolved as well as while data is loading. */
.portal-experience-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: clamp(220px, 38vh, 460px);
    margin-inline: auto;
    padding: 24px 16px;
    color: var(--portal-muted, #475569);
    text-align: center;
}

.portal-experience-loading--table {
    min-height: 172px;
}

/* Financial semantics remain visible in desktop tables as well as mobile cards. */
.mobile-card-table :is(th.mobile-card-table__debit, td.mobile-card-table__debit strong) {
    color: #b42318;
}

.mobile-card-table :is(th.mobile-card-table__credit, td.mobile-card-table__credit strong) {
    color: #137333;
}

@media (max-width: 767.98px) {
    /* The mobile page header already owns back navigation on the issuance/redemption flow. */
    .portal-mobile-experience .cancellation-request > .back-link {
        display: none !important;
    }
    .portal-mobile-experience :is(.portal-page-content,.portal-mobile-page-host):has(.mobile-request-fund-header) > .portal-mobile-page-header {
        display: none;
    }
    .portal-mobile-experience .cancellation-request > .fund-header {
        display: none;
    }

    html:has(.portal-mobile-menu.is-open),
    body:has(.portal-mobile-menu.is-open) {
        height: 100%;
        overflow: hidden;
        overscroll-behavior: none;
    }

    .portal-mobile-experience {
        --portal-mobile-gutter: 14px;
        --portal-navy: #0f172a;
        --portal-blue: #1e3a8a;
        --portal-gold: #a16207;
        --portal-gold-soft: #fef3c7;
        --portal-surface: #f8fafc;
        --portal-card: #ffffff;
        --portal-text: #020617;
        --portal-muted: #475569;
        --portal-border: #e2e8f0;
        --portal-success: #15803d;
        font-family: Vazirmatn, sans-serif;
        font-size: 16px;
        color: var(--portal-text);
        background:
            radial-gradient(circle at 100% 0, rgba(161,98,7,.055), transparent 210px),
            var(--portal-surface);
        min-height: 100vh;
        padding-bottom: calc(88px + env(safe-area-inset-bottom));
        overscroll-behavior-y: contain;
        scroll-padding-top: 82px;
    }

    .portal-anonymous-shell.portal-mobile-experience,
    .portal-auth-shell.portal-mobile-experience {
        padding-bottom: calc(24px + env(safe-area-inset-bottom));
    }
    .portal-anonymous-shell.portal-mobile-experience > .container {
        padding-inline: var(--portal-mobile-gutter) !important;
    }

    .portal-skip-link {
        position: fixed; top: calc(8px + env(safe-area-inset-top)); right: 12px; z-index: 1300;
        padding: 10px 14px; color: #fff; background: #1e3a8a; border-radius: 10px;
        font-family: Vazirmatn, sans-serif; font-weight: 700; text-decoration: none;
        transform: translateY(-150%);
    }
    .portal-skip-link:focus { transform: translateY(0); }

    .portal-mobile-header, .portal-mobile-public-header {
        position: sticky; top: 0; z-index: 1050; display: flex; align-items: center;
        justify-content: space-between; min-height: 72px;
        padding: calc(10px + env(safe-area-inset-top)) 16px 10px;
        font-family: Vazirmatn, sans-serif; color: #fff;
        background: linear-gradient(115deg, #075d8f 0%, #087c8d 56%, #14a9a4 100%);
        border-bottom: 3px solid #d8a741; box-shadow: 0 5px 16px rgba(7,93,143,.22);
    }
    .portal-mobile-brand { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
    .portal-mobile-brand-mark { display: grid; place-items: center; width: 46px; height: 46px; padding: 5px; border-radius: 12px; background: #fff; }
    .portal-mobile-brand-mark img { display: block; width: 100%; height: auto; }
    .portal-mobile-brand-copy { display: grid; line-height: 1.35; }
    .portal-mobile-brand-copy strong { color: #fff; font-size: .96rem; font-weight: 800; }
    .portal-mobile-brand-copy small { color: rgba(255,255,255,.82); font-size: .75rem; font-weight: 500; }
    .portal-mobile-header-actions { display: contents; }
    .portal-mobile-avatar, .portal-mobile-login-link {
        display: inline-grid; place-items: center; min-width: 44px; height: 44px;
        border: 1px solid rgba(255,255,255,.36); border-radius: 12px; color: #fff;
        text-decoration: none; background: rgba(3,66,100,.26); transition: background-color 180ms ease, border-color 180ms ease;
    }
    .portal-mobile-avatar:active, .portal-mobile-login-link:active { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.7); }
    .portal-mobile-login-link { padding: 0 16px; font-size: .82rem; font-weight: 700; }
    .portal-mobile-menu { position: relative;display: block; }
    .portal-mobile-menu-trigger {
        position: relative; z-index: 1302; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; cursor: pointer;
        list-style: none; color: #fff; border: 1px solid rgba(255,255,255,.36);
        border-radius: 12px; background: rgba(3,66,100,.26); transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease;
    }
    .portal-mobile-launcher-icon { display: grid; grid-template-columns: repeat(3,4px); grid-auto-rows: 4px; gap: 5px; width: 22px; height: 22px; align-content: center; justify-content: center; }
    .portal-mobile-launcher-icon > span { display: block; width: 4px; height: 4px; border-radius: 50%; background: currentColor; }
    .portal-mobile-menu.is-open .portal-mobile-menu-trigger { color: #fff; border-color: #1769e0; background: #1769e0; }
    .portal-mobile-drawer-backdrop { position: fixed; inset: calc(68px + env(safe-area-inset-top)) 0 0; z-index: 1300; border: 0; pointer-events: none; opacity: 0; background: rgba(15,23,42,.36); backdrop-filter: blur(2px); transition: opacity 160ms ease; }
    .portal-mobile-drawer {
        position: fixed; top: calc(68px + env(safe-area-inset-top)); right: 0; bottom: 0; left: 0;
        z-index: 1301; display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-width: none; min-height: 0;
        margin: 0; overflow: hidden; color: #0f172a; pointer-events: none; opacity: 0;
        border: 0; border-top: 1px solid #dfe7f2; border-radius: 0; background: #fff; box-shadow: 0 20px 55px rgba(12,29,54,.24);
        transform: translateY(-14px) scale(.98); transform-origin: top left;
        transition: transform 220ms cubic-bezier(.2,.8,.2,1), opacity 160ms ease;
    }
    .portal-mobile-menu.is-open .portal-mobile-drawer-backdrop, .portal-mobile-menu.is-open .portal-mobile-drawer { pointer-events: auto; }
    .portal-mobile-menu.is-visible .portal-mobile-drawer-backdrop { opacity: 1; }
    .portal-mobile-menu.is-visible .portal-mobile-drawer { opacity: 1; transform: translateY(0) scale(1); }
    body:has(.portal-mobile-menu.is-open) .portal-mobile-header, body:has(.portal-mobile-menu.is-open) .portal-mobile-public-header { z-index: 1400; }
    .portal-mobile-drawer__header { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 14px 0; padding: 0 2px 12px; border-bottom: 1px solid #e5ebf3; }
    .portal-mobile-drawer__header div { display: grid; gap: 3px; }
    .portal-mobile-drawer__header strong { color: #14213d; font-size: 1rem; font-weight: 900; }
    .portal-mobile-drawer__header span { color: #64748b; font-size: .72rem; }
    .portal-mobile-drawer__header button { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; color: #315b92; border: 1px solid #e0e9f6; border-radius: 13px; background: #f4f8fe; }
    .portal-mobile-menu-grid { display: grid; flex: 1 1 auto; min-height: 0; align-content: start; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; padding: 14px; }
    .portal-mobile-menu-grid a, .portal-mobile-pwa-install, .portal-mobile-logout button {
        display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 10px 12px;
        color: #334155; text-decoration: none; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;
        cursor: pointer; touch-action: manipulation; transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease;
    }
    .portal-mobile-menu-grid a, .portal-mobile-pwa-install { flex-direction: column; min-width: 0; min-height: 86px; padding: 9px 5px; text-align: center; font-size: .72rem; font-weight: 700; line-height: 1.45; }
    .portal-mobile-menu-grid a span, .portal-mobile-pwa-install span { max-width: 100%; overflow-wrap: anywhere; }
    .portal-mobile-menu-grid a i, .portal-mobile-pwa-install i, .portal-mobile-logout button i { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; color: #1e3a8a; border-radius: 12px; background: #e8ecf1; font-size: 1rem; }
    .portal-mobile-menu-grid a.active { color: #174ea6; border-color: #bfd4fa; background: #eaf2ff; }
    .portal-mobile-menu-grid a.active i { color: #fff; background: #1769e0; }
    .portal-mobile-logout { flex: 0 0 auto; margin: 0; padding: 10px 14px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid #e5ebf3; background: #fff; }
    .portal-mobile-pwa-install { width: 100%; color: #075d8f; border: 1px solid #cde6f1; border-radius: 12px; background: #f3fbfd; cursor: pointer; touch-action: manipulation; }
    .portal-mobile-pwa-install i { color: #087c8d; background: #dff4f3; }
    .portal-mobile-logout button { width: 100%; color: #b4232f; border-color: #f2d7da; background: #fff8f8; }
    .portal-mobile-logout button i { color: #b4232f; background: #fdebed; }

    .portal-mobile-experience .page-sidebar, .portal-mobile-experience .page-header,
    .portal-mobile-experience .custom-footer, .portal-mobile-experience .top-header-login,
    .portal-mobile-experience .middle-header-login, .portal-mobile-experience .custom-navbar,
    .portal-mobile-experience .custom-navbar-login { display: none !important; }
    .portal-mobile-experience .page-wrapper, .portal-mobile-experience .page-body-wrapper {
        margin: 0 !important; padding: 0 !important; min-height: 100vh; background: var(--portal-surface);
    }
    .portal-mobile-experience .page-body { padding: 18px var(--portal-mobile-gutter) 24px !important; min-height: calc(100vh - 146px); }
    .portal-mobile-experience .container, .portal-mobile-experience .container-fluid { max-width: none; width: 100%; }
    /* Desktop pages commonly start with a Bootstrap container. The page shell already owns the mobile gutter. */
    .portal-mobile-experience :is(.page-body,.portal-mobile-page-host) > :is(.container,.container-fluid) { padding-inline: 0 !important; }

    .portal-mobile-experience .card, .portal-mobile-experience .asset-card,
    .portal-mobile-experience .fund-card, .portal-mobile-experience .terms-conditions-card,
    .portal-mobile-experience .confirm-card, .portal-mobile-experience .cancel-card {
        border: 1px solid var(--portal-border) !important; border-radius: 14px !important;
        background: var(--portal-card); box-shadow: 0 2px 6px rgba(15,23,42,.055) !important; overflow: hidden;
    }
    .portal-mobile-experience .card-body { padding: 16px !important; }
    .portal-mobile-experience .page-main-title, .portal-mobile-experience .news-portal-main-title,
    .portal-mobile-experience .faq-title { color: var(--portal-navy) !important; font-size: 1.25rem !important; line-height: 1.7; font-weight: 800; letter-spacing: -.2px; }
    .portal-mobile-experience .page-sub-title, .portal-mobile-experience .news-portal-sub-title,
    .portal-mobile-experience .faq-subtitle { color: var(--portal-muted); font-size: .875rem; line-height: 1.85; }
    .portal-mobile-experience .btn-primary, .portal-mobile-experience .btn-dark {
        min-height: 44px; border: 0; border-radius: 10px; background: var(--portal-gold);
        color: #fff; font-weight: 700; box-shadow: 0 2px 4px rgba(161,98,7,.16);
        cursor: pointer; touch-action: manipulation; transition: background-color 180ms ease, box-shadow 180ms ease;
    }
    .portal-mobile-experience .btn-primary:active, .portal-mobile-experience .btn-dark:active { background: #854d0e; box-shadow: inset 0 0 0 2px rgba(255,255,255,.2); }
    .portal-mobile-experience .btn-outline-primary { min-height: 44px; color: var(--portal-blue); border-color: var(--portal-blue); border-radius: 10px; }
    .portal-mobile-experience .form-control, .portal-mobile-experience .form-select,
    .portal-mobile-experience select, .portal-mobile-experience input:not([type=checkbox]):not([type=radio]) {
        min-height: 46px; border: 1px solid var(--portal-border); border-radius: 10px; background: #fff;
        color: var(--portal-text); font-size: 1rem; transition: border-color 180ms ease, box-shadow 180ms ease;
    }
    .portal-mobile-experience .form-control:focus, .portal-mobile-experience .form-select:focus,
    .portal-mobile-experience select:focus, .portal-mobile-experience input:focus {
        border-color: var(--portal-blue); box-shadow: 0 0 0 3px rgba(30,58,138,.14); outline: 0;
    }
    .portal-mobile-experience .row { --bs-gutter-x: .9rem; --bs-gutter-y: .9rem; }
    .portal-mobile-experience .table-responsive { border: 1px solid var(--portal-border); border-radius: 14px; }
    .portal-mobile-experience table { min-width: 620px; }
    .portal-mobile-experience th { background: #f1f5f9; color: var(--portal-navy); }
    .portal-mobile-experience td, .portal-mobile-experience th { padding: .82rem .7rem; vertical-align: middle; white-space: nowrap; }

    .portal-mobile-bottom-nav {
        position: fixed; z-index: 1100; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); left: 10px;
        display: grid; grid-template-columns: repeat(4,1fr); gap: 4px; min-height: 62px; padding: 6px;
        border: 1px solid #e2e8f0; border-radius: 16px; background: rgba(255,255,255,.97);
        box-shadow: 0 10px 25px rgba(15,23,42,.14); backdrop-filter: blur(14px);
    }
    .portal-mobile-nav-item { display: grid; place-items: center; gap: 3px; min-height: 48px; color: #64748b; text-decoration: none; font-size: .75rem; font-weight: 600; border-radius: 11px; cursor: pointer; touch-action: manipulation; transition: color 180ms ease, background-color 180ms ease; }
    .portal-mobile-nav-item i { font-size: 1rem; }
    .portal-mobile-nav-item span { max-width: 100%; line-height: 1.35; text-align: center; text-wrap: balance; }
    .portal-mobile-nav-item.active { color: #854d0e; background: #fef3c7; box-shadow: inset 0 0 0 1px #fde68a; }

    /* The external customer-support launcher is intentionally disabled on the mobile shell. */
    :is(
        [aria-label="Customer support chat widget"],
        [title="Customer support chat widget"],
        iframe[aria-label*="Customer support" i],
        iframe[title*="Customer support" i]
    ) { display: none !important; visibility: hidden !important; pointer-events: none !important; }
    body > :has(> iframe[aria-label*="Customer support" i]),
    body > :has(> iframe[title*="Customer support" i]) { display: none !important; }
    .portal-mobile-experience .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: 6px; padding-bottom: 4px; scrollbar-width: none; }
    .portal-mobile-experience .nav-tabs::-webkit-scrollbar { display: none; }
    .portal-mobile-experience .nav-tabs .nav-link { white-space: nowrap; border-radius: 10px; }
    .portal-mobile-experience .modal-dialog { margin: 12px; }
    .portal-mobile-experience .modal-content { border-radius: 18px; }

    /* Shared page polish: headings, filters, content and states */
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) > .row,
    .portal-mobile-experience .certificates-page + .row,
    .portal-mobile-experience .news-section-wrapper > .container-fluid:first-child > .row {
        padding: 14px 16px; border: 1px solid #dbe4f0; border-radius: 16px;
        background: linear-gradient(135deg,#fff,#eff6ff); box-shadow: 0 3px 12px rgba(15,23,42,.055);
    }
    .portal-mobile-experience :is(.page-main-title,.news-portal-main-title) { margin-bottom: 2px !important; text-wrap: balance; }
    .portal-mobile-experience .card-header { padding: 14px 16px; border-bottom: 1px solid #edf2f7; background: linear-gradient(180deg,#fff,#f8fafc); }
    .portal-mobile-experience .card-header h3 { margin: 0; color: #0f172a; font-size: .92rem; font-weight: 900; }
    .portal-mobile-experience :is(label,.form-label) { color: #334155; font-size: .75rem; font-weight: 700; line-height: 1.7; }
    .portal-mobile-experience .validation-message { display: block; margin-top: 5px; color: #b91c1c; font-size: .7rem; line-height: 1.6; }
    .portal-mobile-experience :is(.alert,.validation-summary-errors) { border: 0; border-right: 4px solid currentColor; border-radius: 11px; font-size: .74rem; line-height: 1.8; }
    .portal-mobile-experience .pagination { flex-wrap: wrap; justify-content: center; gap: 4px; }
    .portal-mobile-experience .page-link { display: grid; place-items: center; min-width: 42px; min-height: 42px; margin: 0 !important; border-radius: 9px !important; }

    /* Fund catalogue and utility pages */
    .portal-mobile-experience .fund-list { padding: 0 !important; }
    .portal-mobile-experience .fund-list .fund-card { margin-bottom: 12px; border-top: 3px solid #1e3a8a !important; }
    .portal-mobile-experience .fund-list .fund-avatar { flex: 0 0 50px; width: 50px; height: 50px; border-color: #dbe4f0; background: #f8fafc; }
    .portal-mobile-experience .market-tabs { position: sticky; top: 72px; z-index: 20; padding: 8px; border: 1px solid #e2e8f0; border-radius: 13px; background: rgba(248,250,252,.96); backdrop-filter: blur(10px); }
    .portal-mobile-experience .certificates-page .fund-card,
    .portal-mobile-experience .reinvestdividend-page .fund-card { padding: 14px !important; border-top: 3px solid #a16207 !important; }
    .portal-mobile-experience .certificates-page .btn,
    .portal-mobile-experience .reinvestdividend-page .btn { min-height: 44px; border-radius: 10px; }
    .portal-mobile-experience .reinvestdividend-page .form-check { min-height: 50px; padding: 13px 38px 13px 12px; border: 1px solid #e2e8f0; border-radius: 11px; background: #f8fafc; }

    /* Profile and account information */
    .portal-mobile-experience .user-profile .nav-pills,
    .portal-mobile-experience .profile-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border-radius: 13px; background: #e8ecf1; scrollbar-width: none; }
    .portal-mobile-experience .user-profile :is(.nav-link,.profile-tab) { min-height: 44px; padding: 9px 12px; border-radius: 9px; white-space: nowrap; }
    .portal-mobile-experience .user-profile :is(.nav-link.active,.profile-tab.active) { color: #fff; background: #1e3a8a; }
    .portal-mobile-experience .bank-account-card { margin-bottom: 10px; border-right: 3px solid #1e3a8a; }
    .portal-mobile-experience .mobile-profile-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 12px 0; padding: 5px; border-radius: 15px; background: #eaf0f8; }
    .portal-mobile-experience .mobile-profile-tabs button { display: grid; place-items: center; gap: 4px; min-height: 52px; padding: 7px 4px; color: #5f718a; border: 0; border-radius: 11px; background: transparent; font-family: Vazirmatn,sans-serif; font-size: .66rem; font-weight: 800; transition: background-color 180ms ease,color 180ms ease,box-shadow 180ms ease; }
    .portal-mobile-experience .mobile-profile-tabs button i { font-size: .9rem; }
    .portal-mobile-experience .mobile-profile-tabs button.is-active { color: #1769e0; background: #fff; box-shadow: 0 4px 10px rgba(25,53,94,.1); }
    .portal-mobile-experience .mobile-profile-tabs button:active { background: #dceaff; }
    .portal-mobile-experience .mobile-profile-tab-panel { animation: portal-mobile-panel-in 180ms ease both; }

    /* FAQ, news and long-form services */
    .portal-mobile-experience .faq-header { color: #fff; border: 1px solid #1e3a8a; background: linear-gradient(145deg,#0f172a,#1e3a8a); box-shadow: 0 10px 24px rgba(15,23,42,.14); }
    .portal-mobile-experience .faq-header :is(.faq-title,.faq-subtitle) { color: #fff !important; }
    .portal-mobile-experience .faq-header .faq-icon { display: grid; place-items: center; width: 44px; height: 44px; color: #0f172a; border-radius: 12px; background: #fef3c7; }
    .portal-mobile-experience .faq-form { position: sticky; top: 72px; z-index: 20; margin-top: 10px; border: 1px solid #e2e8f0; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); }
    .portal-mobile-experience .accordion-item { overflow: hidden; margin-bottom: 9px; border: 1px solid #e2e8f0; border-radius: 12px !important; }
    .portal-mobile-experience .accordion-button { min-height: 52px; color: #0f172a; font-size: .78rem; font-weight: 800; }
    .portal-mobile-experience .news-portal-item-card { border: 1px solid #e2e8f0; box-shadow: 0 4px 14px rgba(15,23,42,.06); }
    .portal-mobile-experience .article-container { border-top: 4px solid #1e3a8a; }
    .portal-mobile-experience .article-container .job-description { position: relative; padding: 14px !important; border-right: 3px solid #a16207; }
    .portal-mobile-experience .article-container ul { padding-right: 20px; }

    /* Multi-step forms stay readable above the fixed mobile navigation. */
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) { padding-bottom: 22px !important; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .card { overflow: visible; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .card-body { padding: 14px !important; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .btn-group,
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .action-buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; width: 100%; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) textarea { min-height: 110px; resize: vertical; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) input[type=file] { min-height: 52px; padding: 8px; font-size: .74rem; }

    /* Dashboard */
    .portal-mobile-experience .portal-dashboard-page { margin-top: 12px !important; padding: 0 !important; }
    .portal-mobile-experience .portal-dashboard-page > .row.justify-content-center { display: none; }
    .portal-mobile-experience .portal-mobile-dashboard-hero {
        position: relative; display: grid; gap: 22px; overflow: hidden; margin: 0 -2px 14px; padding: 24px 20px 22px;
        color: #fff; border: 1px solid #253b67; border-radius: 22px;
        background: linear-gradient(145deg,#081528 0%,#123367 58%,#1e4d93 100%);
        box-shadow: 0 16px 34px rgba(15,23,42,.22);
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero::before,
    .portal-mobile-experience .portal-mobile-dashboard-hero::after {
        content: ""; position: absolute; border-radius: 999px; pointer-events: none;
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero::before { width: 170px; height: 170px; top: -95px; left: -55px; background: rgba(255,255,255,.07); }
    .portal-mobile-experience .portal-mobile-dashboard-hero::after { width: 115px; height: 115px; bottom: -65px; right: -25px; border: 20px solid rgba(202,138,4,.16); }
    .portal-mobile-experience .portal-mobile-dashboard-hero__copy,
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount { position: relative; z-index: 1; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__eyebrow { display: block; margin-bottom: 5px; color: #fde68a; font-size: .73rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-dashboard-hero h1 { margin: 0 0 5px; color: #fff; font-size: 1.24rem; font-weight: 900; line-height: 1.7; }
    .portal-mobile-experience .portal-mobile-dashboard-hero p { max-width: 310px; margin: 0; color: #dbeafe; font-size: .78rem; line-height: 1.8; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 3px 8px; padding: 16px 15px 14px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; background: rgba(255,255,255,.075); backdrop-filter: blur(8px); }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount span { grid-column: 1 / -1; color: #cbd5e1; font-size: .72rem; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount strong { direction: ltr; justify-self: end; color: #fff; font-size: 1.5rem; font-weight: 900; letter-spacing: .2px; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount small { padding-bottom: 4px; color: #fde68a; font-size: .75rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-quick-actions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin-bottom: 14px; }
    .portal-mobile-experience .portal-mobile-quick-actions a { display: grid; justify-items: center; gap: 7px; min-width: 0; padding: 10px 3px; color: #334155; border: 1px solid var(--portal-border); border-radius: 14px; background: #fff; box-shadow: 0 3px 8px rgba(15,23,42,.06); text-align: center; text-decoration: none; font-size: .75rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-quick-actions__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; font-size: .9rem; }
    .portal-mobile-experience .portal-mobile-quick-actions__icon--primary { color: #1d4ed8; background: #dbeafe; }
    .portal-mobile-experience .portal-mobile-quick-actions__icon--gold { color: #92400e; background: #fef3c7; }
    .portal-mobile-experience .portal-mobile-quick-actions__icon--green { color: #166534; background: #dcfce7; }
    .portal-mobile-experience .portal-mobile-quick-actions__icon--rose { color: #9f1239; background: #ffe4e6; }
    .portal-mobile-experience .portal-mobile-dashboard-bento { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card { position: relative; display: flex; flex-direction: column; min-height: 148px; padding: 16px; border: 1px solid #dce4ef; border-radius: 18px; background: #fff; box-shadow: 0 5px 15px rgba(15,23,42,.07); }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--units { background: linear-gradient(155deg,#eff6ff,#fff 72%); }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--funds { background: linear-gradient(155deg,#fffbeb,#fff 72%); }
    .portal-mobile-experience .portal-mobile-dashboard-bento__icon { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 18px; color: #1e3a8a; border-radius: 12px; background: #dbeafe; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--funds .portal-mobile-dashboard-bento__icon { color: #92400e; background: #fef3c7; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__label { color: #64748b; font-size: .75rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card > strong { margin-top: 2px; color: #0f172a; font-size: 1.35rem; font-weight: 900; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card small { margin-top: auto; color: #64748b; font-size: .72rem; line-height: 1.7; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: 46px 1fr; align-items: center; gap: 13px; min-height: 94px; color: #fff; border-color: #18423a; background: linear-gradient(135deg,#123c35,#1f6f5f); box-shadow: 0 8px 18px rgba(20,83,69,.16); }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--featured .portal-mobile-dashboard-bento__icon { width: 46px; height: 46px; margin: 0; color: #166534; background: #dcfce7; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--featured .portal-mobile-dashboard-bento__label { color: #bbf7d0; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--featured strong { display: block; margin: 3px 0 0; color: #fff; font-size: .88rem; font-weight: 800; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card--featured small { display: block; margin-top: 3px; color: #d1fae5; }
    .portal-mobile-experience .portal-mobile-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 5px 1px 12px; }
    .portal-mobile-experience .portal-mobile-section-heading > div { min-width: 0; }
    .portal-mobile-experience .portal-mobile-section-heading span { display: block; margin-bottom: 1px; color: #a16207; font-size: .72rem; font-weight: 800; }
    .portal-mobile-experience .portal-mobile-section-heading h2 { margin: 0; color: #0f172a; font-size: 1rem; font-weight: 900; line-height: 1.7; }
    .portal-mobile-experience .portal-mobile-section-heading a { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; min-height: 40px; padding: 8px 10px; color: #1e3a8a; border-radius: 9px; background: #eff6ff; text-decoration: none; font-size: .72rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-asset-allocation { display: block; margin-bottom: 17px; padding: 17px 15px; border: 1px solid #dce4ef; border-radius: 19px; background: #fff; box-shadow: 0 6px 18px rgba(15,23,42,.065); }
    .portal-mobile-experience .portal-mobile-allocation-item { padding: 11px 0; border-top: 1px solid #f1f5f9; }
    .portal-mobile-experience .portal-mobile-allocation-item:first-of-type { border-top: 0; }
    .portal-mobile-experience .portal-mobile-allocation-item__top,
    .portal-mobile-experience .portal-mobile-allocation-item__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    .portal-mobile-experience .portal-mobile-allocation-item__fund { min-width: 0; color: #334155; font-size: .78rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .portal-mobile-experience .portal-mobile-allocation-item__share { direction: ltr; color: #1e3a8a; font-size: .72rem; font-weight: 900; }
    .portal-mobile-experience .portal-mobile-allocation-item__track { overflow: hidden; height: 6px; margin: 8px 0 7px; border-radius: 999px; background: #e8eef6; }
    .portal-mobile-experience .portal-mobile-allocation-item__track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#ca8a04,#1e3a8a); }
    .portal-mobile-experience .portal-mobile-allocation-item__meta { color: #64748b; font-size: .72rem; }
    .portal-mobile-experience .portal-mobile-allocation-item__meta strong { color: #0f172a; font-size: .75rem; }
    .portal-mobile-experience .portal-mobile-empty-state { display: grid; justify-items: center; gap: 8px; padding: 22px 10px 12px; color: #64748b; font-size: .75rem; }
    .portal-mobile-experience .portal-mobile-empty-state i { display: grid; place-items: center; width: 42px; height: 42px; color: #1e3a8a; border-radius: 13px; background: #eff6ff; }
    .portal-mobile-experience .portal-dashboard-desktop-metrics { display: none !important; }
    .portal-mobile-experience .portal-dashboard-kpis { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 0 0 14px; }
    .portal-mobile-experience .portal-dashboard-kpis > div { width: auto; padding: 0; }
    .portal-mobile-experience .portal-dashboard-kpi--assets { display: none !important; }
    .portal-mobile-experience .portal-dashboard-page .asset-card {
        min-height: 104px; padding: 16px !important; background: #fff;
    }
    .portal-mobile-experience .portal-dashboard-kpi { flex-direction: column-reverse !important; align-items: flex-start !important; justify-content: space-between !important; min-height: 132px !important; }
    .portal-mobile-experience .portal-dashboard-kpi .text-end { width: 100%; text-align: right !important; }
    .portal-mobile-experience .portal-dashboard-kpi .text-muted { margin-bottom: 4px; color: #64748b !important; }
    .portal-mobile-experience .portal-dashboard-kpi--units { border-top: 3px solid #2563eb !important; }
    .portal-mobile-experience .portal-dashboard-kpi--funds { border-top: 3px solid #ca8a04 !important; }
    .portal-mobile-experience .portal-dashboard-page .asset-card .fs-4 { font-size: 1.08rem !important; color: var(--portal-navy); }
    .portal-mobile-experience .portal-dashboard-page .icon-box { width: 45px; height: 45px; border-radius: 14px; }
    .portal-mobile-experience .portal-dashboard-page > .row:not(.portal-dashboard-kpis):not(.justify-content-center) { margin-inline: 0; }
    .portal-mobile-experience .portal-dashboard-page > .row:not(.portal-dashboard-kpis) > div { padding-inline: 0; }
    .portal-mobile-experience .total-assets-card .card-header,
    .portal-mobile-experience .pending-request-card .card-header { padding: 15px 16px 0; background: #fff; }
    .portal-mobile-experience .pending-requests-stack { display: grid; grid-template-columns: 1fr; gap: 10px; }
    .portal-mobile-experience .pending-request-card { margin: 0 !important; }
    .portal-mobile-experience .pending-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px dashed #e2e8f0; }
    .portal-mobile-experience .pending-item:last-child { border-bottom: 0; }
    .portal-mobile-experience .portal-mobile-section-heading--requests { margin-top: 20px; }
    .portal-mobile-experience .portal-dashboard-insights { margin-bottom: 20px; }
    .portal-mobile-experience .portal-dashboard-chart-column { display: none; }
    .portal-mobile-experience .portal-dashboard-pending-column { width: 100%; }
    .portal-mobile-experience .pending-requests-stack { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
    .portal-mobile-experience .pending-request-card { min-height: 154px !important; }
    .portal-mobile-experience .pending-request-card h3 { font-size: .78rem; font-weight: 900; }
    .portal-mobile-experience .pending-request-card .card-body { padding-top: 10px !important; }
    .portal-mobile-experience .pending-request-card .pending-item { display: grid; gap: 4px; }
    .portal-mobile-experience .pending-request-card .pending-item-title { color: #64748b; font-size: .64rem; }
    .portal-mobile-experience .pending-request-card .pending-item-value { font-size: .7rem; }
    .portal-mobile-experience .portal-mobile-section-heading--funds { margin-top: 23px; }

    /* Fund catalogue and fund details */
    .portal-mobile-experience .user-profile.social-app-profile { margin: 0 !important; }
    .portal-mobile-experience .user-profile .hovercard { padding: 0 !important; background: transparent; }
    .portal-mobile-experience .user-profile .nav-fund {
        min-width: 260px; padding: 12px !important; border: 1px solid var(--portal-border);
        border-radius: 14px; background: #fff; box-shadow: 0 2px 6px rgba(15,23,42,.055);
    }
    .portal-mobile-experience .user-profile .nav-fund.active { border-color: var(--portal-gold); box-shadow: 0 0 0 3px rgba(161,98,7,.12); }
    .portal-mobile-experience .fund-header { display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding: 16px; border-radius: 14px; background: #0f172a; color: #fff; border-bottom: 3px solid var(--portal-gold); }
    .portal-mobile-experience .fund-header-right, .portal-mobile-experience .fund-header-left { width: 100%; justify-content: flex-start; }
    .portal-mobile-experience .fund-header .fund-avatar { background: #fff; border-radius: 13px; padding: 6px; }
    .portal-mobile-experience .fund-detail { padding: 0 !important; }
    .portal-mobile-experience .fund-detail-tabs { justify-content: flex-start !important; padding: 8px !important; border: 1px solid var(--portal-border) !important; border-radius: 14px; background: #fff; }
    .portal-mobile-experience .fund-detail-tabs .nav-item { flex: 0 0 auto; min-width: 125px; }
    .portal-mobile-experience .funddetail-information { padding: 12px !important; }
    .portal-mobile-experience .card-subscription-redemption { margin: 0 !important; }
    .portal-mobile-experience .fd-card { min-height: 92px; padding: 14px; border: 1px solid var(--portal-border); border-radius: 12px; background: #fff; }
    .portal-mobile-experience .fund-list { padding: 0 !important; }
    .portal-mobile-experience .fund-list > .row > div { padding-inline: 0; }
    .portal-mobile-experience .fund-list .fund-card { overflow: hidden; margin-bottom: 14px !important; border: 1px solid var(--portal-border); border-radius: 18px !important; background: #fff; box-shadow: 0 5px 14px rgba(15,23,42,.07); }
    .portal-mobile-experience .fund-list .fund-header { border-radius: 0; border-bottom: 0; background: linear-gradient(135deg,#0f172a,#1e3a8a); }
    .portal-mobile-experience .fund-list .fund-title { align-items: flex-start !important; }
    .portal-mobile-experience .fund-list .fund-title .info-box { min-width: 0; }
    .portal-mobile-experience .fund-list .fund-title .fw-bold { color: #fff; line-height: 1.75; }
    .portal-mobile-experience .fund-list .badge { margin: 3px 0 0 3px; padding: 5px 7px; color: #1e3a8a !important; background: #dbeafe !important; border-radius: 7px; font-size: .62rem; }
    .portal-mobile-experience .fund-list .fund-box { margin: 0 0 12px; padding: 13px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
    .portal-mobile-experience .fund-list .fund-box h4 { color: #334155; font-size: .8rem; }
    .portal-mobile-experience .fund-list .fund-box-row,
    .portal-mobile-experience .fund-list .fund-stats .stat { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 9px 0; border-bottom: 1px dashed #e2e8f0; }
    .portal-mobile-experience .fund-list .fund-stats .stat:last-child { border-bottom: 0; }
    .portal-mobile-experience .fund-list .fund-stats .label { color: #64748b; font-size: .7rem; }
    .portal-mobile-experience .fund-list .fund-stats .value { color: #0f172a; font-size: .78rem; font-weight: 800; text-align: left; }
    .portal-mobile-experience .fund-list .fund-actions { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-mobile-experience .fund-list .fund-actions .more { grid-column: 1 / -1; color: #1e3a8a; border: 1px solid #bfdbfe; background: #eff6ff; }
    .portal-mobile-experience .comparefunds { margin: 8px 0 20px !important; padding: 0 !important; }
    .portal-mobile-experience .comparefunds > .container-fluid:first-child { padding: 0 !important; }
    .portal-mobile-experience .comparefunds-desktop-table { display: none; }
    .portal-mobile-experience .portal-mobile-compare-overview { display: block; overflow: hidden; margin: 16px 0 13px; color: #fff; border: 1px solid #243b67; border-radius: 21px; background: linear-gradient(145deg,#0f172a,#1e3a8a); box-shadow: 0 12px 25px rgba(15,23,42,.17); }
    .portal-mobile-experience .portal-mobile-compare-overview__hero { padding: 20px 18px 16px; }
    .portal-mobile-experience .portal-mobile-compare-overview__eyebrow { color: #fde68a; font-size: .72rem; font-weight: 800; }
    .portal-mobile-experience .portal-mobile-compare-overview h2 { max-inline-size: 22ch; margin: 5px 0; color: #fff; font-size: 1.13rem; font-weight: 900; line-height: 1.7; text-wrap: balance; }
    .portal-mobile-experience .portal-mobile-compare-overview p { margin: 0; color: #dbeafe; font-size: .78rem; line-height: 1.9; }
    .portal-mobile-experience .portal-mobile-compare-overview__stats { display: grid; grid-template-columns: repeat(3,1fr); padding: 12px 8px; border-top: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.06); }
    .portal-mobile-experience .portal-mobile-compare-overview__stats div { display: grid; justify-items: center; gap: 2px; border-left: 1px solid rgba(255,255,255,.12); }
    .portal-mobile-experience .portal-mobile-compare-overview__stats div:last-child { border-left: 0; }
    .portal-mobile-experience .portal-mobile-compare-overview__stats strong { color: #fff; font-size: 1.04rem; }
    .portal-mobile-experience .portal-mobile-compare-overview__stats span { color: #cbd5e1; font-size: .7rem; }
    .portal-mobile-experience .portal-mobile-compare-list { display: grid; gap: 11px; }
    .portal-mobile-experience .portal-mobile-compare-card { overflow: hidden; border: 1px solid #dce4ef; border-radius: 17px; background: #fff; box-shadow: 0 4px 13px rgba(15,23,42,.065); }
    .portal-mobile-experience .portal-mobile-compare-card summary { display: grid; grid-template-columns: 48px minmax(0,1fr) auto 22px; align-items: center; gap: 10px; min-height: 82px; padding: 13px; cursor: pointer; list-style: none; touch-action: manipulation; }
    .portal-mobile-experience .portal-mobile-compare-card summary::-webkit-details-marker { display: none; }
    .portal-mobile-experience .portal-mobile-compare-card__logo { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid #e2e8f0; border-radius: 13px; background: #f8fafc; }
    .portal-mobile-experience .portal-mobile-compare-card__logo img { width: 36px; height: 36px; object-fit: contain; }
    .portal-mobile-experience .portal-mobile-compare-card__identity { min-width: 0; }
    .portal-mobile-experience .portal-mobile-compare-card__identity strong { display: block; color: #0f172a; font-size: .78rem; line-height: 1.7; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .portal-mobile-experience .portal-mobile-compare-card__identity > span { display: block; color: #64748b; font-size: .72rem; }
    .portal-mobile-experience .portal-mobile-compare-card__type { padding: 5px 7px; border-radius: 8px; font-size: .68rem; font-weight: 800; white-space: nowrap; }
    .portal-mobile-experience .portal-mobile-compare-card__type.is-etf { color: #1e3a8a; background: #dbeafe; }
    .portal-mobile-experience .portal-mobile-compare-card__type.is-mutual { color: #166534; background: #dcfce7; }
    .portal-mobile-experience .portal-mobile-compare-card__chevron { display: grid; place-items: center; width: 22px; height: 22px; color: #64748b; transition: transform 180ms ease; }
    .portal-mobile-experience .portal-mobile-compare-card[open] { border-color: #93b4e8; box-shadow: 0 8px 20px rgba(30,58,138,.11); }
    .portal-mobile-experience .portal-mobile-compare-card[open] .portal-mobile-compare-card__chevron { transform: rotate(180deg); }
    .portal-mobile-experience .portal-mobile-compare-card__content { padding: 0 14px 14px; border-top: 1px solid #edf2f7; }
    .portal-mobile-experience .portal-mobile-compare-card__highlight { display: grid; gap: 3px; margin: 13px 0; padding: 12px; border-radius: 12px; background: #eff6ff; }
    .portal-mobile-experience .portal-mobile-compare-card__highlight span { color: #64748b; font-size: .72rem; }
    .portal-mobile-experience .portal-mobile-compare-card__highlight strong { color: #1e3a8a; font-size: .78rem; line-height: 1.7; }
    .portal-mobile-experience .portal-mobile-compare-card__details { margin: 0; }
    .portal-mobile-experience .portal-mobile-compare-card__details div { display: grid; grid-template-columns: minmax(105px,.8fr) minmax(0,1.2fr); gap: 10px; padding: 10px 0; border-bottom: 1px dashed #e2e8f0; }
    .portal-mobile-experience .portal-mobile-compare-card__details dt { color: #64748b; font-size: .72rem; font-weight: 600; }
    .portal-mobile-experience .portal-mobile-compare-card__details dd { margin: 0; color: #0f172a; font-size: .75rem; font-weight: 700; line-height: 1.8; text-align: left; overflow-wrap: anywhere; }
    .portal-mobile-experience .portal-mobile-compare-card__action { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; margin-top: 13px; color: #fff; border-radius: 11px; background: #1e3a8a; text-decoration: none; font-size: .78rem; font-weight: 800; }

    /* Mobile fund comparison: pick two funds, then compare the same fields side by side. */
    .portal-mobile-experience .mobile-fund-compare { display: grid; gap: 14px; padding: 4px 0 18px; }
    .portal-mobile-experience .mobile-fund-compare__hero { padding: 19px 17px; color: #fff; border: 1px solid #047b8c; border-radius: 20px; background: linear-gradient(135deg,#075d8f,#087c8d 62%,#13a9a5); box-shadow: 0 11px 24px rgba(7,93,143,.16); }
    .portal-mobile-experience .mobile-fund-compare__eyebrow { display: inline-flex; align-items: center; gap: 7px; color: #fce4a6; font-size: .73rem; font-weight: 800; }
    .portal-mobile-experience .mobile-fund-compare__hero h1 { margin: 7px 0 6px; color: #fff; font-size: 1.12rem; font-weight: 900; line-height: 1.7; }
    .portal-mobile-experience .mobile-fund-compare__hero p { margin: 0; color: rgba(255,255,255,.88); font-size: .78rem; line-height: 1.95; }
    .portal-mobile-experience .mobile-fund-compare__selection,
    .portal-mobile-experience .mobile-fund-compare__result { padding: 15px; border: 1px solid #dbe6ed; border-radius: 18px; background: #fff; box-shadow: 0 5px 16px rgba(15,23,42,.055); }
    .portal-mobile-experience .mobile-fund-compare__section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
    .portal-mobile-experience .mobile-fund-compare__section-heading > div { display: grid; gap: 2px; }
    .portal-mobile-experience .mobile-fund-compare__section-heading > div > span { color: #087c8d; font-size: .68rem; font-weight: 800; }
    .portal-mobile-experience .mobile-fund-compare__section-heading h2 { margin: 0; color: #0f2942; font-size: .98rem; font-weight: 900; }
    .portal-mobile-experience .mobile-fund-compare__section-heading > strong { padding: 6px 8px; color: #075d8f; border-radius: 9px; background: #e6f5f4; font-size: .69rem; white-space: nowrap; }
    .portal-mobile-experience .mobile-fund-compare__section-heading > small { max-width: 126px; color: #64748b; font-size: .66rem; line-height: 1.65; text-align: left; }
    .portal-mobile-experience .mobile-fund-compare__result .mobile-fund-compare__section-heading { gap: 6px; }
    .portal-mobile-experience .mobile-fund-compare__result .mobile-fund-compare__section-heading > small { max-width: none; flex: 0 0 auto; white-space: nowrap; font-size: .58rem; letter-spacing: -.12px; }
    .portal-mobile-experience .mobile-fund-compare__filters { display: grid; grid-template-columns: 1fr 1.45fr .72fr; gap: 7px; margin-bottom: 11px; }
    .portal-mobile-experience .mobile-fund-compare__filter { min-height: 42px; padding: 7px; color: #475569; border: 1px solid #dbe6ed; border-radius: 10px; background: #f8fafc; font: inherit; font-size: .71rem; font-weight: 700; cursor: pointer; touch-action: manipulation; }
    .portal-mobile-experience .mobile-fund-compare__filter.is-active { color: #075d8f; border-color: #65b9c2; background: #e6f5f4; }
    .portal-mobile-experience .mobile-fund-compare__fund-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    .portal-mobile-experience .mobile-fund-compare__fund-option { display: grid; grid-template-columns: 36px minmax(0,1fr) 26px; align-items: center; gap: 6px; width: 100%; min-height: 80px; padding: 8px; color: #0f2942; border: 1px solid #dbe6ed; border-radius: 13px; background: #fff; font: inherit; text-align: right; cursor: pointer; touch-action: manipulation; transition: background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease; }
    .portal-mobile-experience .mobile-fund-compare__fund-option:active { background: #f1f8f8; }
    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected { border-color: #0c99a3; background: #f0fbfa; box-shadow: 0 3px 10px rgba(8,124,141,.1); }
    .portal-mobile-experience .mobile-fund-compare__fund-option:disabled { cursor: not-allowed; opacity: .52; }
    .portal-mobile-experience .mobile-fund-compare__fund-logo { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #e3edf2; border-radius: 10px; background: #fff; }
    .portal-mobile-experience .mobile-fund-compare__fund-logo img { width: 27px; height: 27px; object-fit: contain; }
    .portal-mobile-experience .mobile-fund-compare__fund-name { display: grid; min-width: 0; gap: 2px; }
    .portal-mobile-experience .mobile-fund-compare__fund-name strong { overflow: hidden; color: #0f2942; font-size: .69rem; font-weight: 800; line-height: 1.55; overflow-wrap: anywhere; }
    .portal-mobile-experience .mobile-fund-compare__fund-name small { color: #64748b; font-size: .61rem; }
    .portal-mobile-experience .mobile-fund-compare__check { display: grid; place-items: center; width: 26px; height: 26px; color: #087c8d; border: 1px solid #a8d5d6; border-radius: 50%; background: #fff; font-size: .7rem; }
    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected .mobile-fund-compare__check { color: #fff; border-color: #087c8d; background: #087c8d; }
    .portal-mobile-experience .mobile-fund-compare__matrix { overflow: hidden; border: 1px solid #dbe6ed; border-radius: 14px; }
    .portal-mobile-experience .mobile-fund-compare__matrix-head,
    .portal-mobile-experience .mobile-fund-compare__matrix-row { display: grid; grid-template-columns: 86px repeat(2,minmax(0,1fr)); }
    .portal-mobile-experience .mobile-fund-compare__matrix-head { background: #eaf7f6; }
    .portal-mobile-experience .mobile-fund-compare__matrix-label { display: flex; align-items: center; padding: 9px; color: #496174; font-size: .66rem; font-weight: 800; }
    .portal-mobile-experience .mobile-fund-compare__matrix-fund { display: grid; justify-items: center; align-content: start; gap: 4px; min-height: 74px; padding: 9px 6px; color: #075d8f; border-right: 1px solid #cbe4e4; text-decoration: none; font-size: .64rem; font-weight: 800; line-height: 1.55; text-align: center; }
    .portal-mobile-experience .mobile-fund-compare__matrix-fund img { width: 27px; height: 27px; object-fit: contain; }
    .portal-mobile-experience .mobile-fund-compare__matrix-row { border-top: 1px solid #e5edf2; }
    .portal-mobile-experience .mobile-fund-compare__matrix-row > strong { display: flex; align-items: center; padding: 10px 8px; color: #486176; background: #f8fbfc; font-size: .64rem; font-weight: 800; line-height: 1.55; }
    .portal-mobile-experience .mobile-fund-compare__matrix-row > span { display: flex; align-items: center; min-width: 0; padding: 10px 7px; color: #173247; border-right: 1px solid #e5edf2; font-size: .66rem; font-weight: 650; line-height: 1.75; overflow-wrap: anywhere; }
    .portal-mobile-experience .mobile-fund-compare__empty { display: flex; align-items: center; gap: 9px; padding: 13px; color: #496174; border: 1px dashed #a8d5d6; border-radius: 14px; background: #f5fbfb; font-size: .76rem; line-height: 1.7; }
    .portal-mobile-experience .mobile-fund-compare__empty i { color: #087c8d; font-size: 1rem; }
    .portal-mobile-experience .article-container .job-description { margin-bottom: 14px; padding: 13px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
    .portal-mobile-experience .article-container .job-description h4 { color: #1e3a8a; font-size: .92rem; line-height: 1.8; }
    .portal-mobile-experience .article-container :is(p,li) { color: #334155; font-size: .82rem; line-height: 2; }

    /* Subscription / redemption catalogue */
    .portal-mobile-experience .subscription-tedemption-header { margin-top: 8px !important; padding: 0 !important; }
    .portal-mobile-experience .subscription-redemption-list { margin: 14px 0 !important; padding: 0 !important; }
    .portal-mobile-experience .subscription-redemption-list .pivot-card { position: relative; padding: 16px !important; margin-bottom: 13px; border-top: 3px solid #1e3a8a !important; }
    .portal-mobile-experience .subscription-redemption-list .pivot-card > .row { gap: 4px; }
    .portal-mobile-experience .subscription-redemption-list .fund-avatar { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; margin-left: 12px; border: 1px solid #dbe4f0; border-radius: 14px; background: #f8fafc; }
    .portal-mobile-experience .subscription-redemption-list .fund-avatar img { width: 38px; height: 38px; object-fit: contain; }
    .portal-mobile-experience .subscription-redemption-list .info-box { min-width: 0; flex: 1; }
    .portal-mobile-experience .subscription-redemption-list .info-box > .fw-bold { color: #0f172a; font-size: .97rem; line-height: 1.7; }
    .portal-mobile-experience .subscription-redemption-list .badge { margin: 3px 0 0 3px; padding: 5px 7px; color: #1e3a8a !important; background: #e8eef9 !important; border-radius: 7px; font-size: .63rem; }
    .portal-mobile-experience .subscription-redemption-list .profit-box { margin: 0 !important; border: 1px solid #fde68a; border-radius: 12px; background: #fffbeb; }
    .portal-mobile-experience .subscription-redemption-list .profit-title { color: #78350f; font-size: .72rem; }
    .portal-mobile-experience .subscription-redemption-list .profit-value { margin-block: 3px; color: #92400e; font-size: 1.18rem; font-weight: 900; }
    .portal-mobile-experience .subscription-redemption-list .gift-card-button-row { display: grid; grid-template-columns: 48px 1fr; gap: 8px; }
    .portal-mobile-experience .subscription-redemption-list .gift-card-subscription-btn { width: 48px; min-height: 46px; border-radius: 12px; }
    .portal-mobile-experience .subscription-redemption-list .btn-link { display: block; width: 100%; padding: 10px; }
    .portal-mobile-experience .subscription-redemption-list .btn-danger { min-height: 46px; border-radius: 10px; font-weight: 700; }

    /* Multi-step request forms */
    .portal-mobile-experience .cancellation-request { margin-top: 12px !important; padding: 0 !important; }
    .portal-mobile-experience .mobile-request-fund-header {
        position: relative; overflow: hidden; display: grid; grid-template-columns: 42px 44px minmax(0,1fr); align-items: center; gap: 10px;
        min-height: 76px; margin: 0 0 16px; padding: 13px 14px; border: 1px solid #e1eaf5; border-radius: 17px;
        background: linear-gradient(135deg,#fff 0%,#f2f7ff 100%); box-shadow: 0 8px 22px rgba(25,53,94,.06);
    }
    .portal-mobile-experience .mobile-request-fund-header::after {
        position: absolute; top: -28px; left: -18px; width: 92px; height: 92px; border: 16px solid rgba(23,105,224,.07); border-radius: 50%; content: ''; pointer-events: none;
    }
    .portal-mobile-experience .mobile-request-fund-header__back {
        position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; color: #1e3a8a; border: 1px solid #dbe6f4; border-radius: 13px; background: #f6f9fd;
    }
    .portal-mobile-experience .mobile-request-fund-header__avatar {
        position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; padding: 5px; border: 1px solid #e1e9f4; border-radius: 13px; background: #fff;
    }
    .portal-mobile-experience .mobile-request-fund-header__avatar img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
    .portal-mobile-experience .mobile-request-fund-header > div { position: relative; z-index: 1; display: grid; min-width: 0; gap: 1px; }
    .portal-mobile-experience .mobile-request-fund-header > div > span { color: #6c7f99; font-size: .68rem; font-weight: 700; }
    .portal-mobile-experience .mobile-request-fund-header h1 { margin: 0; overflow: hidden; color: #14213d; font-size: 1rem; font-weight: 900; line-height: 1.65; text-overflow: ellipsis; white-space: nowrap; }
    .portal-mobile-experience .wizzard-box { margin-top: 12px !important; padding: 0 !important; }
    .portal-mobile-experience .wizzard-box > .row > div:first-child { display: none; }
    .portal-mobile-experience .wizzard-box > .row > div:last-child { width: 100%; }
    .portal-mobile-experience .step-wrapper { display: flex !important; align-items: flex-start; justify-content: space-between; width: 100%; padding: 14px 12px 10px; border: 1px solid var(--portal-border); border-radius: 16px; background: #fff; box-shadow: 0 2px 6px rgba(15,23,42,.05); }
    .portal-mobile-experience .step-box { position: relative; display: grid; flex: 1 1 0; justify-items: center; min-width: 0; padding: 0 3px !important; font-size: .7rem; text-align: center; }
    .portal-mobile-experience .step-box .circle { position: relative; z-index: 2; display: grid; place-items: center; width: 31px; height: 31px; margin: 0 0 6px !important; color: #64748b; border: 2px solid #cbd5e1; border-radius: 50%; background: #fff; font-size: .75rem; font-weight: 800; }
    .portal-mobile-experience .step-box .circle.active { color: #fff; border-color: #1e3a8a; background: #1e3a8a; box-shadow: 0 0 0 4px #dbeafe; }
    .portal-mobile-experience .step-box .wizzard-label { color: #64748b; font-size: .67rem; font-weight: 700; }
    .portal-mobile-experience .step-box .wizzard-label.active { color: #1e3a8a; }
    .portal-mobile-experience .step-box .wizzard-line { position: absolute; z-index: 1; top: 15px; right: calc(50% + 17px); width: calc(100% - 34px); height: 2px; margin: 0 !important; background: #e2e8f0; }
    .portal-mobile-experience .step-box .wizzard-line.active { background: #1e3a8a; }
    .portal-mobile-experience .cancellation-request > .row.mt-4 > div:first-child { order: 2; }
    .portal-mobile-experience .cancellation-request > .row.mt-4 > div:last-child { order: 1; }
    .portal-mobile-experience .cancellation-request .card-title-border-top { border-top: 3px solid #1e3a8a !important; }
    .portal-mobile-experience .cancellation-request .cancel-title { margin-bottom: 16px; color: #0f172a; font-size: 1rem; font-weight: 900; line-height: 1.8; }
    .portal-mobile-experience .cancellation-request .form-row { display: grid !important; grid-template-columns: minmax(90px,.75fr) minmax(0,1.25fr); align-items: center; gap: 10px; min-height: 52px; margin: 0 !important; padding: 11px 0; border-bottom: 1px solid #edf2f7; }
    .portal-mobile-experience .cancellation-request .form-row > label { margin: 0; color: #64748b; font-size: .76rem; }
    .portal-mobile-experience .cancellation-request .cancel-item { min-width: 0; color: #0f172a; font-size: .82rem; font-weight: 800; text-align: left; overflow-wrap: anywhere; }
    .portal-mobile-experience .cancellation-request .form-check { padding: 12px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
    .portal-mobile-experience .cancellation-request .form-check-label { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 9px; color: #334155; font-size: .75rem; line-height: 1.9; }
    .portal-mobile-experience .terms-conditions-card { min-height: auto !important; margin-bottom: 12px; }
    .portal-mobile-experience .terms-conditions-card .card-body { max-height: 250px; overflow-y: auto; }
    .portal-mobile-experience .cancel-card, .portal-mobile-experience .confirm-card { width: 100%; margin: 0; }
    .portal-mobile-experience .subscription-funding-tabs { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab { min-height: 46px; margin: 0 !important; border-radius: 12px; }
    .portal-mobile-experience .gift-card-selection { padding: 12px !important; border-radius: 16px; }
    .portal-mobile-experience .gift-card-selection__cards { display: grid; grid-template-columns: 1fr; gap: 10px; }
    .portal-mobile-experience .gift-card-option { width: 100%; min-width: 0; border-radius: 16px; }
    .portal-mobile-experience .gift-card-selection__input { display: grid; grid-template-columns: 1fr; gap: 8px; }
    .portal-mobile-experience .gift-card-selection__input > * { width: 100% !important; border-radius: 12px !important; }
    .portal-mobile-experience .accept-form, .portal-mobile-experience .cancellation-request .btn { min-height: 46px; }
    .portal-mobile-experience .subscription-payment-tabs { display: flex; gap: 7px; padding: 7px; border: 1px solid #e2e8f0; border-radius: 14px; background: #f8fafc; }
    .portal-mobile-experience .subscription-payment-tabs .nav-item { flex: 1 0 auto; }
    .portal-mobile-experience .subscription-payment-tabs .payment-tab { min-height: 43px; padding: 10px; color: #475569; border: 0; border-radius: 10px; text-align: center; }
    .portal-mobile-experience .subscription-payment-tabs .payment-tab.active { color: #fff; background: #1e3a8a; }
    .portal-mobile-experience .gift-card-payment { border: 1px solid #bfdbfe; background: linear-gradient(145deg,#eff6ff,#fff); }

    /* Search/filter pages and data tables */
    .portal-mobile-experience .request-history-page, .portal-mobile-experience .account-turnover-page { margin-top: 8px !important; padding: 0 !important; }
    .portal-mobile-experience .request-history-page .border-top-custom,
    .portal-mobile-experience .account-turnover-page .border-top-custom { border-top: 3px solid var(--portal-gold) !important; background: #fff; }
    .portal-mobile-experience .request-history-page form .row > div,
    .portal-mobile-experience .account-turnover-page form .row > div { width: 100%; }
    .portal-mobile-experience .request-history-page form .btn,
    .portal-mobile-experience .account-turnover-page form .btn { width: 100%; min-height: 44px; margin: 3px 0 !important; }
    .portal-mobile-experience .mobile-history-filter {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 10px 9px;
        margin: 0 !important;
        padding: 13px !important;
        border: 1px solid #dce7f4;
        border-radius: 16px;
        background: linear-gradient(145deg,#f8fbff,#eef5ff);
        position: relative;
        padding-top: 13px !important;
    }
    .portal-mobile-experience .mobile-history-filter::before {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        min-height: 27px;
        color: #244f83;
        font-size: .76rem;
        font-weight: 900;
        content: 'فیلتر و بازه زمانی';
    }
    .portal-mobile-experience .mobile-history-filter > div {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .portal-mobile-experience .mobile-history-filter > div:first-of-type,
    .portal-mobile-experience .mobile-history-filter__actions { grid-column: 1 / -1; }
    .portal-mobile-experience .mobile-history-filter .form-label {
        display: flex;
        align-items: center;
        min-height: 23px;
        margin: 0 1px 5px;
        color: #4b6484;
        font-size: .68rem;
        font-weight: 800;
    }
    .portal-mobile-experience .mobile-history-filter :is(.form-select,.form-control) {
        min-height: 48px;
        border-color: #d6e3f1;
        border-radius: 12px;
        background-color: #fff;
        box-shadow: 0 2px 5px rgba(25,53,94,.025);
        font-size: .78rem;
    }
    .portal-mobile-experience .mobile-history-filter :is(#DateFromInput,#DateToInput) {
        direction: ltr;
        text-align: center;
        font-variant-numeric: tabular-nums;
    }
    body:has(.portal-mobile-experience) .pdp-default {
        position: fixed !important;
        z-index: 1600 !important;
        right: 12px !important;
        bottom: calc(92px + env(safe-area-inset-bottom)) !important;
        left: 12px !important;
        top: auto !important;
        width: auto !important;
        max-width: 360px;
        margin-inline: auto;
        overflow: hidden;
        border: 1px solid #d6e3f1;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 18px 45px rgba(15,23,42,.24) !important;
    }
    body:has(.portal-mobile-experience) .pdp-default .pdp-header,
    body:has(.portal-mobile-experience) .pdp-default .pdp-footer {
        min-height: 44px !important;
        height: 44px !important;
    }
    body:has(.portal-mobile-experience) .pdp-default .dows,
    body:has(.portal-mobile-experience) .pdp-default .days > div {
        display: grid !important;
        grid-template-columns: repeat(7,minmax(0,1fr));
    }
    body:has(.portal-mobile-experience) .pdp-default .days > div:not(:has(.day)) {
        display: none !important;
    }
    body:has(.portal-mobile-experience) .pdp-default .cell,
    body:has(.portal-mobile-experience) .pdp-default .day {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: auto !important;
        min-width: 0;
        height: 44px !important;
        line-height: 1 !important;
    }
    body:has(.portal-mobile-experience) .pdp-default .nul {
        display: flex !important;
        visibility: hidden;
    }
    body:has(.portal-mobile-experience) .pdp-default :is(.monthSelect,.yearSelect) {
        right: 0;
        left: 0;
        width: 100% !important;
        margin-inline: 0;
    }
    .portal-mobile-experience .mobile-history-filter__actions {
        display: flex !important;
        align-items: stretch !important;
        gap: 8px;
        position: static;
        gap: 8px;
        align-items: stretch !important;
        margin-top: 2px !important;
    }
    .portal-mobile-experience .mobile-history-filter__actions .btn {
        display: inline-flex !important;
        align-items: center;
        justify-content: center !important;
        min-height: 48px !important;
        margin: 0 !important;
        border-radius: 12px;
        font-size: .74rem;
        font-weight: 850;
    }
    .portal-mobile-experience .mobile-history-filter__actions .mobile-history-filter__export {
        position: static;
        width: auto !important;
        min-height: 36px !important;
        margin: 0 !important;
        padding: 7px 12px !important;
        border-radius: 10px;
        font-size: .68rem;
        color: #fff !important;
    }
    .portal-mobile-experience .mobile-history-filter__actions .mobile-history-filter__export i,
    .portal-mobile-experience .mobile-history-filter__actions .mobile-history-filter__export .spinner-border { color: #fff !important; }
    .portal-mobile-experience .mobile-history-filter__actions .mobile-history-filter__export + .btn {
        width: auto !important;
        flex: 1 1 auto;
        min-height: 42px !important;
        padding: 8px 12px !important;
        border-radius: 10px;
        font-size: .72rem;
    }
    .portal-mobile-experience .mobile-history-filter__actions .btn-success {
        color: #376080;
        border-color: #d6e3f1;
        background: #fff;
    }
    .portal-mobile-experience .mobile-history-filter__actions .btn-primary {
        border-color: #155db2;
        background: linear-gradient(135deg,#1769e0,#0c4fae);
        box-shadow: 0 7px 14px rgba(23,105,224,.16);
    }
    .portal-mobile-experience .table-wrapper { overflow: visible; border: 0; }
    .portal-mobile-experience .mobile-card-table { display: block; min-width: 0; margin: 0; }
    .portal-mobile-experience .mobile-card-table thead { display: none; }
    .portal-mobile-experience .mobile-card-table tbody { display: grid; gap: 14px; }
    .portal-mobile-experience .mobile-card-table tbody tr { display: grid; overflow: hidden; padding: 0 14px 7px; border: 1px solid #e1e9f4; border-top: 3px solid #1769e0; border-radius: 17px; background: #fff !important; box-shadow: 0 8px 20px rgba(25,53,94,.07); }
    .portal-mobile-experience .mobile-card-table tbody tr,
    .portal-mobile-experience .mobile-card-table tbody td {
        --bs-table-bg: #fff !important;
        --bs-table-accent-bg: #fff !important;
        --bs-table-striped-bg: #fff !important;
        background: #fff !important;
        background-image: none !important;
    }
    .portal-mobile-experience .mobile-card-table tbody td { display: grid; grid-template-columns: minmax(96px,.82fr) minmax(0,1.18fr); align-items: center; gap: 10px; width: 100%; min-height: 43px; padding: 10px 0; color: #223852; white-space: normal; text-align: left; border: 0; border-bottom: 1px dashed #e2e8f0; overflow-wrap: anywhere; }
    .portal-mobile-experience .mobile-card-table tbody td:last-child { border-bottom: 0; }
    .portal-mobile-experience .mobile-card-table tbody td::before { content: attr(data-label); color: #72819a; font-size: .67rem; font-weight: 700; text-align: right; }
    .portal-mobile-experience .mobile-card-table tbody td[colspan] { display: block; min-height: 100px; padding: 28px 12px; text-align: center; }
    .portal-mobile-experience .mobile-card-table tbody td[colspan]::before { content: none; }
    .portal-mobile-experience .mobile-card-table__fund { display: flex !important; align-items: center !important; min-height: 56px !important; margin: 0 -14px; padding: 13px 14px !important; color: #173d70 !important; border-bottom: 1px solid #e8eff8 !important; background: linear-gradient(135deg,#f5f9ff,#edf5ff); font-size: .82rem; }
    .portal-mobile-experience .mobile-card-table__fund::before { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; margin-left: 9px; color: #1769e0; border-radius: 9px; background: #dcecff; font-family: "Font Awesome 6 Free"; font-size: .75rem; content: "\\f0d6"; }
    .portal-mobile-experience .mobile-card-table__fund strong { min-width: 0; overflow-wrap: anywhere; }
    .portal-mobile-experience .mobile-card-table__number span, .portal-mobile-experience .mobile-card-table__tracking span { direction: ltr; justify-self: end; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-card-table__amount { grid-template-columns: 1fr auto !important; min-height: 54px !important; margin: 3px 0; padding: 10px 11px !important; border: 1px solid #d6e7fb !important; border-radius: 12px; background: #f5f9ff; }
    .portal-mobile-experience .mobile-card-table__amount::before { color: #315b92; }
    .portal-mobile-experience .mobile-card-table__amount strong, .portal-mobile-experience .mobile-card-table__balance strong { direction: ltr; justify-self: end; color: #0c4fae; font-size: .85rem; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-card-table__status span, .portal-mobile-experience .mobile-card-table__type span { justify-self: end; padding: 5px 9px; color: #315b92; border-radius: 999px; background: #eaf2ff; font-size: .66rem; font-weight: 800; }
    .portal-mobile-experience .mobile-card-table__date span { justify-self: end; color: #4c6381; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-card-table__count strong { justify-self: end; color: #1e3a5f; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-card-table__debit strong, .portal-mobile-experience .mobile-card-table__credit strong { direction: ltr; justify-self: end; font-size: .8rem; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-card-table__debit strong { color: #b64554; }
    .portal-mobile-experience .mobile-card-table__credit strong { color: #16815f; }
    .portal-mobile-experience .mobile-card-table__balance { grid-template-columns: 1fr auto !important; min-height: 54px !important; margin: 3px 0; padding: 10px 11px !important; border: 1px solid #d6e7fb !important; border-radius: 12px; background: #f5f9ff; }
    .portal-mobile-experience .mobile-card-table__balance::before { color: #315b92; }
    .portal-mobile-experience .mobile-card-table__description { align-items: start !important; }
    .portal-mobile-experience .mobile-card-table__description span { line-height: 1.8; }
    .portal-mobile-experience .mobile-card-table__actions { display: flex !important; flex-wrap: wrap; justify-content: flex-start; }
    .portal-mobile-experience .mobile-card-table__actions::before { width: 100%; margin-bottom: 6px; }
    .portal-mobile-experience .mobile-card-table__actions .btn { flex: 1 1 90px; min-height: 40px; margin: 0 0 0 6px !important; border-radius: 9px; }

    /* Gift cards */
    .portal-mobile-experience .gift-cards-page { margin: 8px 0 20px !important; padding: 0 !important; }
    .portal-mobile-experience .gift-cards-hero { padding: 18px; border: 1px solid #334155; border-radius: 16px; background: #0f172a; }
    .portal-mobile-experience .gift-card-lookup { padding: 16px; border: 1px solid var(--portal-border); border-top: 3px solid var(--portal-gold); border-radius: 14px; background: #fff; }
    .portal-mobile-experience .gift-card-lookup__form { display: grid; grid-template-columns: 1fr; gap: 9px; }
    .portal-mobile-experience .gift-card-lookup__button { width: 100%; min-height: 46px; }
    .portal-mobile-experience .gift-cards-grid { display: grid; grid-template-columns: 1fr; gap: 13px; }
    .portal-mobile-experience .investor-gift-card { width: 100%; min-width: 0; border-radius: 16px; box-shadow: 0 4px 10px rgba(15,23,42,.12); }
    .portal-mobile-experience .lookup-result { display: grid; grid-template-columns: 1fr; gap: 12px; }

    /* Profile, certificates and reinvestment */
    .portal-mobile-experience .user-information-style { display: grid; gap: 14px; padding: 0 !important; }
    .portal-mobile-experience .mobile-profile-overview { position: relative; display: grid; grid-template-columns: 54px minmax(0,1fr); gap: 12px; overflow: hidden; padding: 17px; color: #fff; border-radius: 19px; background: linear-gradient(135deg,#075d8f 0%,#087c8d 58%,#14a9a4 100%); box-shadow: 0 10px 24px rgba(7,93,143,.17); }
    .portal-mobile-experience .mobile-profile-overview::after { position: absolute; width: 126px; height: 126px; left: -38px; bottom: -62px; border: 22px solid rgba(255,255,255,.10); border-radius: 50%; content: ''; pointer-events: none; }
    .portal-mobile-experience .mobile-profile-overview__avatar { display: grid; place-items: center; width: 54px; height: 54px; color: #075d8f; border: 2px solid rgba(255,255,255,.45); border-radius: 17px; background: #fff; box-shadow: 0 5px 11px rgba(0,46,82,.18); }
    .portal-mobile-experience .mobile-profile-overview__identity { position: relative; z-index: 1; display: grid; min-width: 0; align-content: center; gap: 2px; }
    .portal-mobile-experience .mobile-profile-overview__identity > span { color: rgba(255,255,255,.77); font-size: .68rem; font-weight: 700; }
    .portal-mobile-experience .mobile-profile-overview__identity h2 { overflow-wrap: anywhere; margin: 0; color: #fff; font-size: 1rem; font-weight: 900; line-height: 1.55; }
    .portal-mobile-experience .mobile-profile-overview__identity small { color: rgba(255,255,255,.85); font-size: .66rem; direction: rtl; }
    .portal-mobile-experience .mobile-profile-overview__password { position: relative; z-index: 1; grid-column: 1 / -1; display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; margin-top: 3px; color: #075d8f; border-radius: 12px; background: #fff; font-size: .76rem; font-weight: 800; text-decoration: none; }
    .portal-mobile-experience .mobile-profile-overview__password:active { color: #064c74; background: #e7f8f7; }
    .portal-mobile-experience .user-information-style > .card { margin: 0 !important; border-color: #d8e7ea !important; border-radius: 17px !important; box-shadow: 0 6px 16px rgba(7,93,143,.06) !important; }
    .portal-mobile-experience .user-information-style .card-header { padding: 0 15px; border: 0; border-bottom: 1px solid #e4eef1; background: linear-gradient(100deg,#f7fcfc,#edf8fa); }
    .portal-mobile-experience .user-information-style .user-information-title { display: flex; align-items: center; gap: 8px; min-height: 56px; padding-top: 0 !important; color: #123d59; font-size: .96rem; font-weight: 900; }
    .portal-mobile-experience .user-information-style .user-information-title::before { width: 4px; height: 21px; border-radius: 99px; background: #14a9a4; content: ''; }
    .portal-mobile-experience .user-information-style .card-body { padding: 13px !important; }
    .portal-mobile-experience .user-information-style .info-item { display: flex; justify-content: space-between; gap: 12px; min-height: 54px; padding: 11px 13px; border: 1px solid #e0edf0; border-radius: 12px; background: linear-gradient(135deg,#fff,#f4fbfc); }
    .portal-mobile-experience .user-information-style .info-label { color: #64748b; font-size: .75rem; }
    .portal-mobile-experience .user-information-style .info-value { color: #0f172a; font-weight: 700; overflow-wrap: anywhere; }
    .portal-mobile-experience .user-information-style #UserAuthLogs { padding: 10px !important; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table { min-width: 0 !important; margin: 0 !important; border: 0 !important; background: transparent; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table thead { display: none; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody { display: grid; gap: 9px; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; border: 1px solid #dce8ee; border-radius: 13px; background: #fff; box-shadow: 0 3px 9px rgba(15,23,42,.045); }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td { display: flex !important; align-items: center; justify-content: space-between; gap: 8px; min-height: 43px; padding: 8px 10px !important; color: #173247; border: 0 !important; border-top: 1px solid #edf2f5 !important; font-size: .72rem; font-weight: 700; text-align: left !important; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:first-child { display: none !important; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(2) { grid-column: 1 / -1; min-height: 48px; border-top: 0 !important; background: #f0fbfa; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(2)::before { content: "نوع رویداد"; color: #4e697a; font-size: .67rem; font-weight: 600; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(3)::before { content: "نشانی IP"; color: #64748b; font-size: .66rem; font-weight: 600; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(4)::before { content: "تاریخ و ساعت"; color: #64748b; font-size: .66rem; font-weight: 600; }
    .portal-mobile-experience .user-information-style #UserAuthLogs .pagination { flex-wrap: wrap; justify-content: center; gap: 5px; margin: 12px 0 2px; }
    .portal-mobile-experience .user-information-style #UserAuthLogs {
        overflow: hidden;
        border: 1px solid #e3edf3;
        border-radius: 14px;
        background: linear-gradient(145deg,#fbfeff,#f5fbfc);
    }
    .portal-mobile-experience .user-information-style #UserAuthLogs .pagination {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 6px;
        width: 100%;
        margin: 13px 0 4px;
        padding: 0;
    }
    .portal-mobile-experience .user-information-style #UserAuthLogs .pagination .page-item { margin: 0; }
    .portal-mobile-experience .user-information-style #UserAuthLogs .pagination .page-link {
        display: grid;
        place-items: center;
        min-width: 42px;
        min-height: 42px;
        padding: 7px 10px;
        color: #315b92;
        border: 1px solid #d7e5f2;
        border-radius: 11px !important;
        background: #fff;
        font-size: .72rem;
        font-weight: 800;
    }
    .portal-mobile-experience .user-information-style #UserAuthLogs .pagination .page-item.active .page-link {
        color: #fff;
        border-color: #1769e0;
        background: linear-gradient(135deg,#1769e0,#0c4fae);
        box-shadow: 0 5px 11px rgba(23,105,224,.18);
    }
    .portal-mobile-experience .user-information-style #UserAuthLogs :is(select,[class*="page-size"],.items-per-page) {
        min-height: 44px;
        max-width: 100%;
        margin: 5px 0;
        padding-inline: 10px;
        color: #315b92;
        border: 1px solid #d7e5f2;
        border-radius: 11px;
        background: #fff;
        font-size: .72rem;
    }
    .portal-mobile-experience .bank-account-card { padding: 12px; border: 1px solid var(--portal-border); border-radius: 12px; background: #f8fafc; }
    .portal-mobile-experience .certificates-page, .portal-mobile-experience .reinvestdividend-page { padding: 0 !important; }
    .portal-mobile-experience .certificates-page .fund-card, .portal-mobile-experience .reinvestdividend-page .fund-card { margin-bottom: 12px !important; }
    .portal-mobile-experience .fund-actions { display: grid; gap: 8px; }
    .portal-mobile-experience .fund-actions .btn { width: 100%; min-height: 44px; }

    /* Dedicated dashboard components */
    /* The sticky header participates in normal flow; only a compact content gutter is needed here. */
    .portal-mobile-page-host { min-height: calc(100dvh - 72px); padding: 12px var(--portal-mobile-gutter) 18px; }
    .portal-mobile-page-header { display: grid; grid-template-columns: 42px 44px minmax(0,1fr); align-items: center; gap: 10px; max-width: 760px; min-height: 70px; margin: 0 auto 14px; padding: 11px 13px; border: 1px solid #d7e7eb; border-radius: 17px; background: linear-gradient(135deg,#fff,#f0faf9); box-shadow: 0 5px 15px rgba(7,93,143,.06); }
    .portal-mobile-page-header__back { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; color: #1e3a8a; border: 1px solid #dbe6f4; border-radius: 13px; background: #f6f9fd; cursor: pointer; transition: color 180ms ease,background-color 180ms ease,border-color 180ms ease; }
    .portal-mobile-page-header__back:active { color: #fff; border-color: #1e3a8a; background: #1e3a8a; }
    .portal-mobile-page-header__icon { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; color: #fff; border-radius: 13px; background: linear-gradient(135deg,#075d8f,#10a3a0); box-shadow: 0 4px 10px rgba(7,93,143,.2); }
    .portal-mobile-page-header__icon i { font-size: 1rem; }
    .portal-mobile-page-header > div { display: grid; min-width: 0; gap: 1px; }
    .portal-mobile-page-header > div > span { color: #5c7a86; font-size: .68rem; font-weight: 700; }
    .portal-mobile-page-header h1 { margin: 0; color: #0f2942; font-size: 1rem; font-weight: 900; line-height: 1.65; }

    /* The route header is the single page title on mobile. Hide only legacy page-title blocks, never article/fund titles. */
    .portal-mobile-experience .account-turnover-page,
    .portal-mobile-experience .request-history-page,
    .portal-mobile-experience .certificates-page-intro,
    .portal-mobile-experience .reinvestdividend-page-intro,
    .portal-mobile-experience .portal-mobile-news-page > .container-fluid:first-child,
    .portal-mobile-experience .gift-cards-hero,
    .portal-mobile-experience .portal-mobile-faq-shell .faq-header { display: none; }
    .portal-mobile-experience .portal-mobile-faq-shell { margin-top: 0 !important; }
    .portal-mobile-experience .portal-mobile-faq-shell .faq-form { margin-top: 0 !important; }
    .portal-mobile-experience .user-profile-title-section { justify-content: flex-end !important; margin-bottom: 0 !important; }
    .portal-mobile-experience .user-profile-title-section > div:first-child { display: none; }
    .portal-mobile-experience .user-profile-title-section > button { display: none !important; }
    .portal-mobile-experience .mobile-fund-compare__hero h1,
    .portal-mobile-experience .mobile-investment-hub__hero h1 { display: none; }

    /* Certificates and reinvestment cards */
    .portal-mobile-experience .certificates-page-intro,
    .portal-mobile-experience .reinvestdividend-page-intro { margin: -4px 0 12px !important; padding: 0 !important; }
    .portal-mobile-experience :is(.certificates-page-intro,.reinvestdividend-page-intro) .news-portal-main-title { display: none; }
    .portal-mobile-experience :is(.certificates-page-intro,.reinvestdividend-page-intro) .news-portal-sub-title { margin: 0; padding: 10px 12px; color: #496174; border: 1px solid #d8e9e9; border-radius: 12px; background: #f3fbfa; font-size: .74rem; line-height: 1.8; }
    .portal-mobile-experience .certificates-page .fund-card,
    .portal-mobile-experience .reinvestdividend-page .fund-card { margin-bottom: 12px !important; border-top: 3px solid #0c99a3 !important; }
    .portal-mobile-experience .certificates-page .fund-title,
    .portal-mobile-experience .reinvestdividend-page .fund-title { margin: 14px !important; }
    .portal-mobile-experience .certificates-page .fund-stats { margin: 16px 14px !important; }
    .portal-mobile-experience .certificates-page .fund-card > .m-4 { margin: 0 14px 14px !important; }
    .portal-mobile-experience .certificates-page .fund-actions .btn,
    .portal-mobile-experience .reinvestdividend-page .fund-actions .btn { min-height: 46px; border-radius: 12px; }
    .portal-mobile-experience .reinvestdividend-page > .row > label { margin: 0 0 12px; padding: 0; }
    .portal-mobile-experience .reinvestdividend-page > .row > label .asset-card { display: block; padding: 13px !important; color: #385367; border: 1px solid #d8e9e9 !important; border-radius: 14px; background: #f3fbfa !important; font-size: .75rem; line-height: 2; }
    .portal-mobile-experience .reinvestdividend-page .p-3 { padding: 14px !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat { align-items: center; min-height: 54px; }
    .portal-mobile-experience .reinvestdividend-page .input-group { max-width: 126px; }
    .portal-mobile-experience .reinvestdividend-page .input-group .form-control { min-height: 42px; width: auto !important; font-size: .86rem; }

    /* News: one clear mobile feed, with a compact filter and readable cards. */
    .portal-mobile-experience .portal-mobile-news-page { margin-top: -4px !important; }
    .portal-mobile-experience .portal-mobile-news-page .news-portal-main-title,
    .portal-mobile-experience .portal-mobile-news-page .news-portal-sub-title { display: none; }
    .portal-mobile-experience .portal-mobile-news-page .container-fluid { padding-inline: 0 !important; }
    .portal-mobile-experience .portal-mobile-news-page .news-portal-filter-card { overflow: hidden; margin-bottom: 12px; border: 1px solid #d8e9e9; border-radius: 15px; box-shadow: none; }
    .portal-mobile-experience .portal-mobile-news-page .news-portal-filter-card .card-body { padding: 12px !important; }
    .portal-mobile-experience .portal-mobile-news-page .news-portal-search-group .form-control,
    .portal-mobile-experience .portal-mobile-news-page .news-portal-select { min-height: 46px; font-size: .82rem; }
    .portal-mobile-experience .news-content-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; padding: 0 !important; }
    .portal-mobile-experience .news-portal-main-content { display: grid; grid-template-columns: minmax(0,1fr); gap: 11px; }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card { display: grid; grid-template-columns: 108px minmax(0,1fr); overflow: hidden; min-height: 126px; border: 1px solid #dce8ee; border-radius: 15px; box-shadow: 0 4px 12px rgba(15,23,42,.06); }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card-image { min-height: 100%; }
    .portal-mobile-experience .news-portal-main-content .news-portal-image { width: 100%; height: 100%; object-fit: cover; }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card .card-body { min-width: 0; padding: 11px; }
    .portal-mobile-experience .news-portal-main-content .news-portal-title-lg { margin: 0 0 4px; font-size: .79rem; line-height: 1.75; }
    .portal-mobile-experience .news-portal-main-content .news-portal-summary-lg { display: -webkit-box; overflow: hidden; margin: 0; color: #5b7080; font-size: .7rem; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .portal-mobile-experience .news-portal-main-content .news-portal-tags-bar { display: none; }
    .portal-mobile-experience .news-portal-main-content .news-portal-footer { margin-top: 7px; }
    .portal-mobile-experience .news-content-grid > .sidebar-style { order: 2; border: 1px solid #dce8ee; border-radius: 15px; background: #fff; box-shadow: none; }
    .portal-mobile-experience .news-content-grid > .sidebar-style .news-portal-sidebar-article { display: grid; grid-template-columns: 74px minmax(0,1fr); gap: 9px; padding: 10px; border-top: 1px solid #edf2f5; }
    .portal-mobile-experience .news-content-grid > .sidebar-style .news-portal-sidebar-img-wrapper { width: 74px; height: 64px; margin: 0; border-radius: 9px; }
    .portal-mobile-experience .news-content-grid > .sidebar-style .news-portal-sidebar-summary { display: none; }

    /* Change password uses a full-width, touch-friendly card in the mobile account layout. */
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page { min-height: calc(100dvh - 124px); margin: 0 !important; padding: 16px 14px 24px; align-items: flex-start !important; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page > div { width: 100%; max-width: 520px; padding: 0; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page .card { overflow: hidden; border: 1px solid #d8e9e9 !important; border-radius: 19px; box-shadow: 0 8px 21px rgba(7,93,143,.09) !important; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__header { display: flex; align-items: center; gap: 10px; padding: 15px; color: #fff; border: 0; background: linear-gradient(135deg,#075d8f,#0c99a3) !important; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__header > span:last-child { display: grid; gap: 1px; font-size: .95rem; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__header small { color: rgba(255,255,255,.76); font-size: .67rem; font-weight: 500; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__icon { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.35); border-radius: 12px; background: rgba(255,255,255,.13); }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__body { padding: 16px; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__form label { margin-bottom: 6px; color: #27455b; font-size: .78rem; font-weight: 800; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__form .form-control { min-height: 48px; border-color: #cedee5; border-radius: 11px; font-size: .86rem; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__actions { display: grid !important; grid-template-columns: minmax(0,1fr); margin-top: 20px; }
    .portal-auth-shell.portal-mobile-experience .portal-change-password-page__actions .btn { display: grid; place-items: center; min-height: 46px; border-radius: 11px; font-size: .82rem; font-weight: 800; }
    /* Change-password is an authenticated page, so it uses the same mobile shell as the rest of the portal. */
    .portal-mobile-experience .portal-change-password-page { min-height: calc(100dvh - 146px); margin: 0 !important; padding: 16px 14px 28px; align-items: flex-start !important; }
    .portal-mobile-experience .portal-change-password-page > div { width: 100%; max-width: 520px; padding: 0; }
    .portal-mobile-experience .portal-change-password-page .card { overflow: hidden; border: 1px solid #d8e9e9 !important; border-radius: 19px; box-shadow: 0 8px 21px rgba(7,93,143,.09) !important; }
    .portal-mobile-experience .portal-change-password-page__header { display: flex; align-items: center; gap: 10px; padding: 15px; color: #fff; border: 0; background: linear-gradient(135deg,#075d8f,#0c99a3) !important; }
    .portal-mobile-experience .portal-change-password-page__header { background: linear-gradient(135deg,#1769e0,#0c4fae) !important; }
    .portal-mobile-experience .portal-change-password-page__body { padding: 16px; }
    .portal-mobile-experience .portal-change-password-page__form label { margin-bottom: 6px; color: #27455b; font-size: .78rem; font-weight: 800; }
    .portal-mobile-experience .portal-change-password-page__form .form-control { min-height: 48px; border-color: #cedee5; border-radius: 11px; font-size: .86rem; }
    .portal-mobile-experience .portal-change-password-page__actions { display: grid !important; grid-template-columns: minmax(0,1fr); margin-top: 20px; }
    .portal-mobile-experience .portal-change-password-page__actions .btn { display: grid; place-items: center; min-height: 46px; border-radius: 11px; font-size: .82rem; font-weight: 800; }
    .portal-mobile-experience .portal-change-password-page { width: 100% !important; max-width: 760px !important; margin-inline: auto !important; padding-inline: 0 !important; }
    .portal-mobile-experience .portal-change-password-page > div { max-width: none !important; }
    .portal-mobile-experience .portal-change-password-page__header { position: relative; color: #173d70 !important; border-bottom: 1px solid #e1eaf4; background: linear-gradient(135deg,#ffffff,#f1f7ff) !important; }
    .portal-mobile-experience .portal-change-password-page__header::after { position: absolute; right: 0; bottom: 0; width: 42px; height: 3px; border-radius: 3px 0 0 0; background: #d59a2c; content: ''; }
    .portal-mobile-experience .portal-change-password-page__header > span:last-child { color: #173d70; }
    .portal-mobile-experience .portal-change-password-page__header > span:last-child { display: grid; gap: 3px; line-height: 1.55; }
    .portal-mobile-experience .portal-change-password-page__header small { color: #6c7f99; }
    .portal-mobile-experience .portal-change-password-page__icon { color: #1769e0; border-color: #cfe0f6; background: #eaf2ff; }
    .mobile-dashboard-screen, .mobile-compare-screen { width: 100%; max-width: 760px; margin-inline: auto; }
    .mobile-dashboard-requests, .mobile-dashboard-funds { margin-top: 18px; }
    .mobile-dashboard-requests__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .mobile-dashboard-requests__grid article { display: flex; align-items: center; gap: 10px; min-height: 82px; padding: 13px; border: 1px solid var(--portal-border); border-radius: 14px; background: #fff; box-shadow: 0 3px 10px rgba(15,23,42,.05); }
    .mobile-dashboard-requests__grid article > span { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; }
    .mobile-dashboard-requests__grid .is-subscription { color: #047857; background: #d1fae5; }
    .mobile-dashboard-requests__grid .is-redemption { color: #be123c; background: #ffe4e6; }
    .mobile-dashboard-requests__grid div { display: grid; gap: 2px; }
    .mobile-dashboard-requests__grid small { color: #64748b; font-size: .69rem; }
    .mobile-dashboard-requests__grid strong { color: #0f172a; font-size: 1.15rem; }
    .mobile-dashboard-funds__list { display: grid; gap: 12px; }
    .mobile-dashboard-fund-card { position: relative; overflow: hidden; padding: 14px; border: 1px solid #d9e7ee; border-radius: 18px; background: linear-gradient(145deg,#fff 0%,#f6fbfd 100%); box-shadow: 0 6px 18px rgba(15,76,129,.07); }
    .mobile-dashboard-fund-card::after { position: absolute; inset: auto -18px -28px auto; width: 100px; height: 100px; border: 18px solid rgba(20,169,164,.06); border-radius: 50%; content: ''; pointer-events: none; }
    .mobile-dashboard-fund-card header { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 10px; }
    .mobile-dashboard-fund-card header img { width: 44px; height: 44px; object-fit: contain; border: 1px solid #e2e8f0; border-radius: 12px; }
    .mobile-dashboard-fund-card header div { display: grid; min-width: 0; }
    .mobile-dashboard-fund-card header strong { color: #0f172a; font-size: .86rem; line-height: 1.65; }
    .mobile-dashboard-fund-card header span { color: #64748b; font-size: .69rem; }
    .mobile-dashboard-fund-card header em { padding: 5px 8px; border-radius: 999px; font-size: .62rem; font-style: normal; font-weight: 700; white-space: nowrap; }
    .mobile-dashboard-fund-card header em.is-etf { color: #1d4ed8; background: #dbeafe; }
    .mobile-dashboard-fund-card header em.is-mutual { color: #047857; background: #d1fae5; }
    .mobile-dashboard-fund-card__quote { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 13px; }
    .mobile-dashboard-fund-card__quote-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 3px 5px; min-height: 70px; padding: 10px; border-radius: 13px; }
    .mobile-dashboard-fund-card__quote-item > span { grid-column: 1 / -1; display: flex; align-items: center; gap: 5px; color: #64748b; font-size: .65rem; font-weight: 700; }
    .mobile-dashboard-fund-card__quote-item > strong { min-width: 0; color: #0f172a; font-size: .84rem; letter-spacing: -.02em; direction: ltr; text-align: right; }
    .mobile-dashboard-fund-card__quote-item > small { color: #64748b; font-size: .61rem; }
    .mobile-dashboard-fund-card__quote-item.is-subscription { border: 1px solid #ccefe8; background: #effbf8; }
    .mobile-dashboard-fund-card__quote-item.is-subscription i { color: #059669; }
    .mobile-dashboard-fund-card__quote-item.is-redemption { border: 1px solid #dbeafe; background: #f1f7ff; }
    .mobile-dashboard-fund-card__quote-item.is-redemption i { color: #2563eb; }
    .mobile-dashboard-fund-card__returns { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 11px 1px 12px; color: #64748b; font-size: .64rem; }
    .mobile-dashboard-fund-card__returns span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
    .mobile-dashboard-fund-card__returns i { color: #0f766e; }
    .mobile-dashboard-fund-card__returns strong { color: #0f172a; font-size: .7rem; direction: ltr; }
    .mobile-dashboard-fund-card__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 7px; }
    .mobile-dashboard-fund-card__actions :is(a,button) { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 12px; border: 0; border-radius: 9px; font-size: .72rem; font-weight: 700; text-decoration: none; }
    .mobile-dashboard-fund-card__actions .is-details { color: #334155; background: #f1f5f9; }
    .mobile-dashboard-fund-card__actions .is-subscribe, .mobile-dashboard-fund-card__actions .is-external { color: #fff; background: #0f4c81; }
    .mobile-dashboard-fund-card__actions .is-redeem { color: #9f1239; background: #fff1f2; }
    .mobile-dashboard-fund-card__actions .is-gift { width: 38px; padding: 0; color: #92400e; background: #fef3c7; }

    /* Fund detail */
    .mobile-back-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin-bottom: 8px; padding: 8px 2px; color: #334155; font-size: .78rem; font-weight: 700; text-decoration: none; }
    .mobile-fund-detail__hero { overflow: hidden; padding: 18px; color: #fff; border: 1px solid #1e3a8a; border-radius: 20px; background: linear-gradient(145deg,#0f172a 0%,#123c73 58%,#1e3a8a 100%); box-shadow: 0 12px 28px rgba(15,23,42,.18); }
    .mobile-fund-detail__identity { display: flex; align-items: center; gap: 12px; }
    .mobile-fund-detail__identity img { width: 54px; height: 54px; padding: 5px; object-fit: contain; border-radius: 15px; background: #fff; }
    .mobile-fund-detail__identity div { display: grid; min-width: 0; }
    .mobile-fund-detail__identity span { color: #fde68a; font-size: .68rem; font-weight: 700; }
    .mobile-fund-detail__identity h1 { margin: 2px 0; color: #fff; font-size: 1.08rem; font-weight: 900; line-height: 1.7; }
    .mobile-fund-detail__identity small { color: #cbd5e1; font-size: .7rem; }
    .mobile-fund-detail__navs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-top: 17px; }
    .mobile-fund-detail__navs > div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 5px; padding: 12px; border: 1px solid rgba(255,255,255,.13); border-radius: 13px; background: rgba(255,255,255,.07); }
    .mobile-fund-detail__navs span { grid-column: 1/-1; color: #cbd5e1; font-size: .66rem; }
    .mobile-fund-detail__navs strong { direction: ltr; justify-self: end; color: #fff; font-size: 1rem; font-variant-numeric: tabular-nums; }
    .mobile-fund-detail__navs small { color: #fde68a; font-size: .65rem; }
    .mobile-fund-detail__actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 13px; }
    .mobile-fund-detail__actions a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 46px; padding: 10px; border-radius: 11px; font-size: .78rem; font-weight: 800; text-decoration: none; }
    .mobile-fund-detail__actions .is-primary { color: #0f172a; background: #fef3c7; }
    .mobile-fund-detail__actions .is-danger { color: #fff; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.09); }
    .mobile-fund-detail__actions .is-full { grid-column: 1/-1; }
    .mobile-fund-detail__overview { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 12px 0; }
    .mobile-fund-detail__overview article { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 1px 8px; padding: 11px; border: 1px solid var(--portal-border); border-radius: 13px; background: #fff; }
    .mobile-fund-detail__overview i { grid-row: 1/3; display: grid; place-items: center; width: 32px; height: 32px; color: #1e3a8a; border-radius: 9px; background: #eff6ff; }
    .mobile-fund-detail__overview span { color: #64748b; font-size: .62rem; }
    .mobile-fund-detail__overview strong { color: #0f172a; font-size: .72rem; line-height: 1.6; overflow-wrap: anywhere; }
    .mobile-fund-detail__sections { display: grid; gap: 9px; }
    .mobile-fund-detail__sections > details { overflow: hidden; border: 1px solid var(--portal-border); border-radius: 14px; background: #fff; }
    .mobile-fund-detail__sections > details > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 12px 14px; color: #0f172a; cursor: pointer; list-style: none; font-size: .8rem; font-weight: 800; }
    .mobile-fund-detail__sections > details > summary::-webkit-details-marker { display: none; }
    .mobile-fund-detail__sections > details > summary span { display: inline-flex; align-items: center; gap: 9px; }
    .mobile-fund-detail__sections > details > summary span i { color: #a16207; }
    .mobile-fund-detail__sections > details > summary > i { color: #64748b; transition: transform .2s ease; }
    .mobile-fund-detail__sections > details[open] > summary > i { transform: rotate(180deg); }
    .mobile-fund-detail__sections > details > :not(summary) { border-top: 1px solid #eef2f7; }
    .mobile-fund-detail__details-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 12px; }
    .mobile-fund-detail__details-grid > div { display: grid; gap: 3px; padding: 10px; border-radius: 10px; background: #f8fafc; }
    .mobile-fund-detail__details-grid span, .mobile-fund-bank-list small { color: #64748b; font-size: .64rem; }
    .mobile-fund-detail__details-grid strong { color: #0f172a; font-size: .73rem; line-height: 1.65; }
    .mobile-fund-composition, .mobile-fund-nav-history, .mobile-fund-bank-list, .mobile-fund-links { display: grid; gap: 9px; padding: 12px; }
    .mobile-fund-composition > div > div { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 5px; font-size: .72rem; }
    .mobile-fund-composition progress { width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 999px; accent-color: #1e3a8a; }
    .mobile-fund-nav-history > div { display: grid; grid-template-columns: .85fr 1fr 1fr; gap: 7px; padding: 10px; border: 1px solid #e5ebf3; border-radius: 10px; background: #fff; font-size: .66rem; }
    .mobile-fund-nav-history span { display: grid; gap: 3px; min-width: 0; color: #64748b; }
    .mobile-fund-nav-history small { color: #7b8798; font-size: .59rem; white-space: nowrap; }
    .mobile-fund-nav-history time, .mobile-fund-nav-history strong { color: #0f172a; direction: ltr; font-variant-numeric: tabular-nums; white-space: nowrap; }
    .mobile-fund-nav-history__date time { color: #435a78; }
    .mobile-rich-content { padding: 14px; color: #334155; font-size: .76rem; line-height: 2; text-align: justify; }
    .mobile-rich-content :is(img,table) { max-width: 100%; height: auto; }
    .mobile-fund-bank-list article { padding: 12px; border: 1px solid #e2e8f0; border-radius: 11px; background: #f8fafc; }
    .mobile-fund-bank-list header { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
    .mobile-fund-bank-list header span { color: #64748b; font-size: .68rem; }
    .mobile-fund-bank-list article > div { display: flex; justify-content: space-between; gap: 8px; padding-top: 7px; }
    .mobile-fund-bank-list code { color: #0f172a; direction: ltr; font: 700 .72rem Vazirmatn,sans-serif; overflow-wrap: anywhere; }
    .mobile-fund-links a { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; min-height: 52px; padding: 9px; color: #0f172a; border-radius: 10px; background: #f8fafc; text-decoration: none; }
    .mobile-fund-links a > i:first-child { display: grid; place-items: center; width: 32px; height: 32px; color: #1e3a8a; border-radius: 9px; background: #dbeafe; }
    .mobile-fund-links a span { display: grid; min-width: 0; }
    .mobile-fund-links a strong { font-size: .72rem; }
    .mobile-fund-links a small { color: #64748b; font-size: .62rem; overflow-wrap: anywhere; }

    /* Subscription / redemption hub */
    .mobile-investment-hub__hero { position: relative; overflow: hidden; padding: 20px 18px; color: #fff; border-radius: 20px; background: linear-gradient(145deg,#0f172a,#1e3a8a); box-shadow: 0 12px 28px rgba(15,23,42,.16); }
    .mobile-investment-hub__hero > span { color: #fde68a; font-size: .7rem; font-weight: 800; }
    .mobile-investment-hub__hero h1 { margin: 3px 0; color: #fff; font-size: 1.2rem; font-weight: 900; }
    .mobile-investment-hub__hero p { max-width: 36ch; margin: 0; color: #dbeafe; font-size: .75rem; line-height: 1.8; }
    .mobile-investment-hub__hero > div { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; padding: 6px 9px; color: #dcfce7; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: rgba(255,255,255,.07); font-size: .65rem; }
    .mobile-investment-hub__toolbar { position: sticky; top: 72px; z-index: 20; margin: 12px 0; padding: 10px; border: 1px solid var(--portal-border); border-radius: 15px; background: rgba(248,250,252,.94); backdrop-filter: blur(10px); }
    .mobile-investment-hub__toolbar label { display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; min-height: 46px; border: 1px solid #cbd5e1; border-radius: 11px; background: #fff; }
    .mobile-investment-hub__toolbar label i { color: #64748b; text-align: center; }
    .mobile-investment-hub__toolbar input { width: 100%; min-width: 0; height: 44px; padding: 0 4px 0 10px; border: 0; outline: 0; background: transparent; font: inherit; font-size: .76rem; }
    .mobile-investment-hub__filters { display: flex; gap: 7px; overflow-x: auto; margin-top: 8px; scrollbar-width: none; }
    .mobile-investment-hub__filters button { min-height: 38px; padding: 7px 12px; color: #475569; border: 1px solid #e2e8f0; border-radius: 999px; background: #fff; font-size: .68rem; font-weight: 700; white-space: nowrap; cursor: pointer; }
    .mobile-investment-hub__filters button.is-active { color: #fff; border-color: #1e3a8a; background: #1e3a8a; }
    .mobile-investment-fund-list { display: grid; gap: 12px; }
    .mobile-investment-fund-card { padding: 14px; border: 1px solid var(--portal-border); border-radius: 16px; background: #fff; box-shadow: 0 4px 14px rgba(15,23,42,.06); }
    .mobile-investment-fund-card header { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 10px; }
    .mobile-investment-fund-card header img { width: 46px; height: 46px; padding: 4px; object-fit: contain; border: 1px solid #e2e8f0; border-radius: 12px; }
    .mobile-investment-fund-card header div { display: grid; min-width: 0; }
    .mobile-investment-fund-card header strong { color: #0f172a; font-size: .8rem; line-height: 1.65; }
    .mobile-investment-fund-card header span { color: #64748b; font-size: .65rem; }
    .mobile-investment-fund-card header em { padding: 5px 7px; border-radius: 999px; font-size: .6rem; font-style: normal; font-weight: 800; }
    .mobile-investment-fund-card header em.is-etf { color: #1d4ed8; background: #dbeafe; }
    .mobile-investment-fund-card header em.is-mutual { color: #047857; background: #d1fae5; }
    .mobile-investment-fund-card__facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0; }
    .mobile-investment-fund-card__facts > div { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 9px; border-radius: 10px; background: #f8fafc; }
    .mobile-investment-fund-card__facts i { color: #a16207; }
    .mobile-investment-fund-card__facts span { display: grid; min-width: 0; }
    .mobile-investment-fund-card__facts small { color: #64748b; font-size: .6rem; }
    .mobile-investment-fund-card__facts strong { color: #0f172a; font-size: .69rem; overflow-wrap: anywhere; }
    .mobile-investment-fund-card__actions { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
    .mobile-investment-fund-card__actions :is(a,button) { display: grid; place-items: center; gap: 3px; min-width: 0; min-height: 54px; padding: 6px 3px; border: 0; border-radius: 10px; font-size: .6rem; font-weight: 800; text-decoration: none; cursor: pointer; }
    .mobile-investment-fund-card__actions i { font-size: .86rem; }
    .mobile-investment-fund-card__actions .is-subscribe { color: #fff; background: #0f4c81; }
    .mobile-investment-fund-card__actions .is-redeem { color: #9f1239; background: #fff1f2; }
    .mobile-investment-fund-card__actions .is-gift { color: #92400e; background: #fef3c7; }
    .mobile-investment-fund-card__actions .is-detail { color: #334155; background: #f1f5f9; }
    .mobile-investment-fund-card__actions .is-trade { grid-column: span 3; color: #fff; background: #0f4c81; }

    /* News, FAQ and public content */
    .portal-mobile-experience .news-section-wrapper { margin-top: 8px !important; }
    .portal-mobile-experience .news-portal-filter-card { border-radius: 18px; overflow: hidden; }
    .portal-mobile-experience .news-portal-filter-card .card-body { padding: 14px !important; }
    .portal-mobile-experience .news-portal-item-card { margin-bottom: 13px; border-radius: 18px; overflow: hidden; }
    .portal-mobile-experience .news-portal-item-card-image { height: 190px; }
    .portal-mobile-experience .news-portal-item-card-image img { width: 100%; height: 100%; object-fit: cover; }
    .portal-mobile-experience .faq-header { padding: 18px; border-radius: 18px; }
    .portal-mobile-experience .faq-form { padding: 14px; border-radius: 16px; }
    .portal-mobile-experience .article-container { margin: 12px 0 !important; padding: 18px !important; border: 1px solid var(--portal-border); border-radius: 14px; background: #fff; box-shadow: 0 2px 6px rgba(15,23,42,.055); }
    .portal-mobile-experience .article-container img { max-width: 100%; height: auto; }

    /* Long-form content, news and operation results use mobile-native reading and feedback surfaces. */
    .portal-mobile-experience .portal-mobile-loading-state { display: grid; place-items: center; gap: 10px; min-height: 38vh; margin: 0 !important; padding: 28px 14px !important; color: #526779; }
    .portal-mobile-experience .portal-mobile-empty-state { display: grid; place-items: center; min-height: 180px; margin: 12px 0 !important; padding: 22px !important; color: #64748b; border: 1px dashed #bad2da; border-radius: 16px; background: #f7fcfc; }
    .portal-mobile-experience :is(.portal-mobile-content-article,.portal-mobile-news-detail) { padding-inline: 0 !important; }
    .portal-mobile-experience .article-container :is(.job-description,.content-text) { overflow-wrap: anywhere; }
    .portal-mobile-experience .article-container .job-description:first-child { margin-top: 0; }
    .portal-anonymous-shell.portal-mobile-experience .article-container { margin: 12px 0 20px !important; }
    .portal-anonymous-shell.portal-mobile-experience .article-container .job-description { border-right-color: #14a9a4; }
    .portal-anonymous-shell.portal-mobile-experience .article-container :is(h1,h4) { text-wrap: balance; }
    .portal-mobile-experience .portal-mobile-news-detail .back-link { min-height: 44px; margin: 0 0 7px; }
    .portal-mobile-experience .portal-mobile-news-detail .back-link { display: none !important; }
    .portal-mobile-experience .portal-mobile-news-detail .article-container { overflow: hidden; padding: 0 !important; border: 1px solid #dbe8ed; border-radius: 18px; box-shadow: 0 7px 18px rgba(7,93,143,.07); }
    .portal-mobile-experience .portal-mobile-news-detail .header-image { height: 190px; margin: 0; background: #e9f4f5; }
    .portal-mobile-experience .portal-mobile-news-detail .header-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .portal-mobile-experience .portal-mobile-news-detail .title { padding: 16px 15px 8px !important; color: #123d59; font-size: 1.05rem; font-weight: 900; line-height: 1.8; }
    .portal-mobile-experience .portal-mobile-news-detail .title a { color: inherit; text-decoration: none; }
    .portal-mobile-experience .portal-mobile-news-detail .meta-info { flex-wrap: wrap; gap: 7px; padding: 0 15px 12px !important; color: #5f7382; }
    .portal-mobile-experience .portal-mobile-news-detail .meta-info > div { flex-wrap: wrap; gap: 6px; }
    .portal-mobile-experience .portal-mobile-news-detail .meta-info .ms-3 { margin-right: 0 !important; }
    .portal-mobile-experience .portal-mobile-news-detail .alert-intro { margin: 0 15px 13px !important; padding: 12px; color: #24445d; border-right: 3px solid #14a9a4; border-radius: 10px; background: #eefafa; font-size: .82rem; line-height: 1.95; }
    .portal-mobile-experience .portal-mobile-news-detail .content-text { padding: 0 15px 15px !important; color: #334155; font-size: .86rem; line-height: 2.05; }
    .portal-mobile-experience .portal-mobile-news-detail .tags-section,
    .portal-mobile-experience .portal-mobile-news-detail .related-box { margin: 0 15px 15px; padding: 12px; border: 1px solid #e0ecef; border-radius: 12px; background: #f8fbfc; }
    .portal-mobile-experience .portal-mobile-news-detail .related-box-show-fund { display: flex; align-items: center; justify-content: space-between; min-height: 42px; padding: 8px 10px; color: #075d8f; border-radius: 9px; background: #eaf5fb; }
    .portal-mobile-experience .portal-mobile-news-detail { width: 100%; max-width: 760px; margin-top: 0 !important; }
    .portal-mobile-experience .portal-mobile-news-detail .article-container { margin-top: 0 !important; }
    .portal-mobile-experience .portal-mobile-news-detail .content-text :is(img,video,table) { max-width: 100%; height: auto; }
    .portal-mobile-experience .portal-mobile-news-detail .content-text :is(h2,h3,h4) { margin-top: 1rem; color: #193e70; font-size: .98rem; line-height: 1.9; }
    .portal-mobile-experience .portal-mobile-payment-result { margin-top: 0 !important; }
    .portal-mobile-experience .portal-mobile-payment-result .card { justify-content: center; min-height: 300px; padding: 22px 16px !important; border: 1px solid #d7e7ea !important; border-radius: 20px !important; background: linear-gradient(145deg,#fff,#f6fcfc); box-shadow: 0 10px 24px rgba(7,93,143,.09) !important; }
    .portal-mobile-experience .portal-mobile-payment-result svg { width: 88px; height: 88px; }
    .portal-mobile-experience .portal-mobile-payment-result .accepted-title { margin: 16px 0 10px !important; }
    .portal-mobile-experience .portal-mobile-payment-result h4 { font-size: .98rem; font-weight: 900; line-height: 1.9; }
    .portal-mobile-experience .portal-mobile-payment-result a { display: inline-flex; align-items: center; min-height: 42px; margin-top: 8px; padding: 7px 12px; color: #075d8f; border: 1px solid #b9dce3; border-radius: 10px; font-weight: 800; text-decoration: none; }
    .portal-mobile-experience .faq-page { margin-top: 0 !important; }
    .portal-mobile-experience .faq-page .faq-tabs { display: flex; flex-wrap: nowrap; gap: 7px; overflow-x: auto; margin: 12px 0 !important; padding: 5px 1px; scrollbar-width: none; }
    .portal-mobile-experience .faq-page .faq-tab { min-height: 42px; padding: 8px 13px; white-space: nowrap; border-radius: 11px; }
    .portal-mobile-experience .faq-page .faq-accordion { --bs-gutter-x: 0; gap: 9px; }

    /* Mobile modals are bottom sheets: keep the page context visible while
       allowing a tall sheet to scroll independently above the safe area. */
    .portal-mobile-experience .modal { z-index: 1200; padding: 0 !important; }
    body:has(.portal-mobile-experience .modal.show) > .modal-backdrop { z-index: 1190; }
    .portal-mobile-experience .modal .modal-dialog { display: flex; align-items: flex-end; width: 100%; max-width: none; min-height: 100dvh; height: 100dvh; margin: 0; }
    .portal-mobile-experience .modal .modal-content { width: 100%; height: auto; max-height: min(82dvh, 760px); overflow-y: auto; border: 0; border-radius: 22px 22px 0 0; }
    .portal-mobile-experience .modal .modal-header { position: sticky; top: 0; z-index: 1; padding-top: calc(1rem + env(safe-area-inset-top)); background: #fff; }
    .portal-mobile-experience .modal .modal-body { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
    .portal-mobile-experience .modal .modal-footer { position: sticky; bottom: 0; gap: 8px; padding: 12px calc(12px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); }
    .portal-mobile-experience .modal .modal-footer .btn { flex: 1 1 0; min-height: 44px; margin: 0 !important; }
    body:has(.portal-mobile-experience .modal.show) .portal-mobile-bottom-nav { visibility: hidden; pointer-events: none; transform: translateY(calc(100% + env(safe-area-inset-bottom))); }

    /* The base theme reduced toast dismiss controls to 5px. Keep global
       toasts above fixed navigation and give their close control a real tap target. */
    body:has(.portal-mobile-experience) .toast-container.toast-index { position: fixed !important; z-index: 1500; top: env(safe-area-inset-top); right: 0; left: 0; width: auto; padding: 12px !important; pointer-events: none; }
    body:has(.portal-mobile-experience) .toast-container.toast-index .toast { width: min(100%, 420px); margin-inline: auto; }
    body:has(.portal-mobile-experience) .toast-container.toast-index .toast .btn-close { display: grid; flex: 0 0 44px; place-items: center; box-sizing: border-box; width: 44px !important; height: 44px !important; margin: 0 4px !important; padding: 0; touch-action: manipulation; }

    .portal-mobile-experience a, .portal-mobile-experience button,
    .portal-mobile-header a, .portal-mobile-header button,
    .portal-mobile-public-header a, .portal-mobile-public-header button { touch-action: manipulation; }
    .portal-mobile-experience :is(a,button,input,select,textarea,[tabindex]):focus-visible,
    .portal-mobile-header :is(a,button,summary):focus-visible,
    .portal-mobile-public-header :is(a,button):focus-visible {
        outline: 2px solid #ca8a04; outline-offset: 3px;
    }
    .portal-mobile-experience button:disabled, .portal-mobile-experience .btn.disabled {
        cursor: not-allowed; opacity: .58; box-shadow: none !important; transform: none !important;
    }

    /* Refined mobile visual layer: keeps the current routes and components, while using a lighter app-like hierarchy. */
    .portal-mobile-experience {
        --portal-navy: #102a52;
        --portal-blue: #1769e0;
        --portal-gold: #d59a2c;
        --portal-surface: #f4f7fb;
        --portal-card: #ffffff;
        --portal-text: #14213d;
        --portal-muted: #60708a;
        --portal-border: #e2e9f3;
        background:
            radial-gradient(circle at 8% -4%, rgba(46,115,223,.13), transparent 245px),
            radial-gradient(circle at 100% 15%, rgba(213,154,44,.10), transparent 220px),
            var(--portal-surface);
    }
    .portal-mobile-experience .page-body {
        padding-top: 14px !important;
        background: transparent;
    }
    .portal-mobile-page-host { padding-bottom: calc(126px + env(safe-area-inset-bottom)) !important; }
    .portal-mobile-header, .portal-mobile-public-header {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) 44px;
        min-height: 68px;
        color: var(--portal-text);
        border: 0;
        border-bottom: 1px solid rgba(224,231,241,.92);
        background: rgba(255,255,255,.92);
        box-shadow: 0 5px 18px rgba(23,48,84,.06);
        backdrop-filter: blur(18px);
    }
    .portal-mobile-brand { grid-column: 2; justify-self: center; color: var(--portal-text); }
    .portal-mobile-brand-mark {
        width: 42px; height: 42px; padding: 5px;
        border: 1px solid #e3eaf4; border-radius: 14px;
        box-shadow: 0 5px 13px rgba(29,66,125,.08);
    }
    .portal-mobile-brand-copy strong { color: var(--portal-text); font-size: .92rem; }
    .portal-mobile-brand-copy small { color: var(--portal-muted); }
    .portal-mobile-avatar, .portal-mobile-login-link, .portal-mobile-menu-trigger {
        color: #245da5; border-color: #e0e9f6; background: #f4f8fe;
    }
    .portal-mobile-menu-trigger { grid-column: 1; grid-row: 1; justify-self: start; }
    .portal-mobile-avatar { grid-column: 3; grid-row: 1; justify-self: end; }
    .portal-mobile-public-header .portal-mobile-login-link { grid-column: 3; grid-row: 1; justify-self: end; }
    .portal-mobile-menu-trigger:active, .portal-mobile-avatar:active, .portal-mobile-login-link:active {
        color: #fff; border-color: var(--portal-blue); background: var(--portal-blue);
    }
    .portal-mobile-drawer { border: 0; border-top: 1px solid #e1e9f4; background: linear-gradient(180deg,#fff 0%,#f8fbff 100%); }
    .portal-mobile-menu-grid { gap: 8px; }
    .portal-mobile-menu-grid a, .portal-mobile-pwa-install, .portal-mobile-logout button {
        border-color: #e5ebf4; background: #f9fbfe;
    }
    .portal-mobile-menu-grid a:active, .portal-mobile-pwa-install:active { color: #174ea6; border-color: #a9c7f5; background: #e3efff; }
    .portal-mobile-menu-grid a:active i, .portal-mobile-pwa-install:active i { color: #fff; background: var(--portal-blue); }

    .portal-mobile-bottom-nav {
        right: 0; bottom: 0; left: 0;
        min-height: 70px; padding: 7px 9px calc(7px + env(safe-area-inset-bottom)); border-color: rgba(222,230,241,.96);
        border-radius: 20px 20px 0 0; box-shadow: 0 -8px 25px rgba(20,43,79,.13);
    }
    .portal-mobile-nav-item { min-height: 52px; color: #718198; font-size: .67rem; }
    .portal-mobile-nav-item i { font-size: 1.02rem; }
    .portal-mobile-nav-item.active { color: #9a6412; background: #fff5dc; box-shadow: inset 0 0 0 1px #f5d88f; }

    .portal-mobile-experience .card, .portal-mobile-experience .asset-card,
    .portal-mobile-experience .fund-card, .portal-mobile-experience .terms-conditions-card,
    .portal-mobile-experience .confirm-card, .portal-mobile-experience .cancel-card {
        border-color: #e2e9f3 !important;
        border-radius: 18px !important;
        box-shadow: 0 7px 20px rgba(25,53,94,.055) !important;
    }
    .portal-mobile-experience .btn-primary, .portal-mobile-experience .btn-dark {
        background: linear-gradient(135deg,#1769e0,#0c4fae);
        box-shadow: 0 7px 16px rgba(23,105,224,.2);
    }
    .portal-mobile-experience .btn-primary:active, .portal-mobile-experience .btn-dark:active { background: #0c4fae; }
    .portal-mobile-experience .form-control, .portal-mobile-experience .form-select,
    .portal-mobile-experience select, .portal-mobile-experience input:not([type=checkbox]):not([type=radio]) {
        border-color: #dce5f1; background: #fbfcfe;
    }

    .portal-mobile-experience .portal-mobile-dashboard-hero,
    .mobile-investment-hub__hero,
    .mobile-fund-detail__hero,
    .mobile-fund-compare__hero {
        border-color: #dce8fb;
        background: linear-gradient(135deg,#0f3d7b 0%,#1769e0 62%,#3187ea 100%);
        box-shadow: 0 16px 32px rgba(22,83,165,.2);
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero { gap: 18px; padding: 22px 18px 20px; }
    .portal-mobile-experience .portal-mobile-dashboard-hero::before { background: rgba(255,255,255,.09); }
    .portal-mobile-experience .portal-mobile-dashboard-hero::after { border-color: rgba(255,255,255,.13); }
    .portal-mobile-experience .portal-mobile-dashboard-hero__eyebrow,
    .mobile-investment-hub__hero > span,
    .mobile-fund-detail__identity span { color: #fde68a; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount {
        border-color: rgba(255,255,255,.2); background: rgba(4,35,82,.17);
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount small,
    .portal-mobile-experience .portal-mobile-dashboard-hero__amount span { color: #fde68a; }
    .portal-mobile-experience .portal-mobile-dashboard-hero::after { border-color: rgba(253,230,138,.42); }
    .portal-mobile-experience .portal-mobile-dashboard-hero__summary {
        position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px;
        padding-top: 2px;
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero__summary > div {
        display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 1px 7px; align-items: center;
        min-height: 58px; padding: 9px; border: 1px solid rgba(255,255,255,.14); border-radius: 13px;
        background: rgba(3,29,73,.18);
    }
    .portal-mobile-experience .portal-mobile-dashboard-hero__summary i { grid-row: 1 / span 2; color: #fde68a; font-size: .88rem; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__summary span { color: #dbeafe; font-size: .65rem; font-weight: 700; }
    .portal-mobile-experience .portal-mobile-dashboard-hero__summary strong { direction: ltr; justify-self: start; color: #fff; font-size: .9rem; font-weight: 900; }
    .portal-mobile-experience .portal-mobile-favorites { margin: 20px 0 23px; }
    .portal-mobile-experience .portal-mobile-favorites__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
    .portal-mobile-experience .portal-mobile-favorites__grid a { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 2px 9px; min-height: 86px; padding: 12px 10px; color: #263e5b; border: 1px solid #e1e9f4; border-radius: 17px; background: #fff; box-shadow: 0 6px 16px rgba(25,53,94,.05); text-decoration: none; transition: transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease; }
    .portal-mobile-experience .portal-mobile-favorites__grid a > span { grid-row: 1 / span 2; display: grid; place-items: center; width: 40px; height: 40px; color: #1769e0; border-radius: 13px; background: #eaf2ff; }
    .portal-mobile-experience .portal-mobile-favorites__grid a strong { align-self: end; overflow: hidden; color: #213956; font-size: .76rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
    .portal-mobile-experience .portal-mobile-favorites__grid a small { align-self: start; overflow: hidden; color: #718198; font-size: .63rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
    .portal-mobile-experience .portal-mobile-favorites__grid a.is-primary { color: #fff; border-color: #155dab; background: linear-gradient(135deg,#0f3d7b,#1769e0); box-shadow: 0 9px 18px rgba(23,105,224,.2); }
    .portal-mobile-experience .portal-mobile-favorites__grid a.is-primary > span { color: #fde68a; background: rgba(255,255,255,.14); }
    .portal-mobile-experience .portal-mobile-favorites__grid a.is-primary strong { color: #fff; }
    .portal-mobile-experience .portal-mobile-favorites__grid a.is-primary small { color: #dbeafe; }
    .portal-mobile-experience .portal-mobile-favorites__grid a:active { transform: translateY(1px); box-shadow: 0 3px 9px rgba(25,53,94,.08); }
    /* Quick operations stay compact in a single swipeable row. */
    .portal-mobile-experience .portal-mobile-favorites { margin: 12px 0 16px; }
    .portal-mobile-experience .portal-mobile-favorites__grid {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding: 2px 1px 5px;
        scrollbar-width: none;
    }
    .portal-mobile-experience .portal-mobile-favorites__grid::-webkit-scrollbar { display: none; }
    .portal-mobile-experience .portal-mobile-favorites__grid a {
        display: flex;
        flex: 0 0 116px;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 4px;
        min-height: 70px;
        padding: 9px 10px;
        border-radius: 14px;
        box-shadow: 0 3px 10px rgba(25,53,94,.05);
    }
    .portal-mobile-experience .portal-mobile-favorites__grid a > span {
        display: grid;
        flex: 0 0 28px;
        width: 28px;
        height: 28px;
        border-radius: 9px;
        font-size: .78rem;
    }
    .portal-mobile-experience .portal-mobile-favorites__grid a strong { font-size: .7rem; }
    .portal-mobile-experience .portal-mobile-favorites__grid a small { display: none; }
    .portal-mobile-experience .portal-mobile-dashboard-bento__card,
    .portal-mobile-experience .mobile-dashboard-requests__grid article,
    .portal-mobile-experience .mobile-fund-detail__overview article {
        border-color: #e1e9f4; background: #fff; box-shadow: 0 6px 16px rgba(25,53,94,.045);
    }
    .portal-mobile-experience .portal-mobile-section-heading h2 { color: #14213d; }
    .portal-mobile-experience .portal-mobile-section-heading > a { color: #1769e0; }
    .portal-mobile-experience .portal-mobile-allocation-item,
    .portal-mobile-experience .mobile-dashboard-fund-card,
    .portal-mobile-experience .mobile-investment-fund-card {
        border-color: #e1e9f4; background: #fff; box-shadow: 0 7px 20px rgba(25,53,94,.055);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card { border-radius: 20px; }
    .portal-mobile-experience .mobile-dashboard-fund-card__quote-item.is-subscription { border-color: #cde7ff; background: #f2f8ff; }
    .portal-mobile-experience .mobile-dashboard-fund-card__quote-item.is-redemption { border-color: #dce7f6; background: #f7faff; }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-subscribe,
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-subscribe {
        background: linear-gradient(135deg,#16a34a,#15803d);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-external,
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-trade {
        background: linear-gradient(135deg,#1769e0,#0c4fae);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions :is(a,button),
    .portal-mobile-experience .mobile-investment-fund-card__actions :is(a,button) { transition: transform 160ms ease, filter 160ms ease; }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions :is(a,button):active,
    .portal-mobile-experience .mobile-investment-fund-card__actions :is(a,button):active { transform: translateY(1px); filter: brightness(.94); }

    /* Dashboard fund cards intentionally behave like a touch carousel; the full list remains on the investment page. */
    .portal-mobile-experience .mobile-dashboard-funds__list {
        display: flex;
        gap: 12px;
        margin-inline: calc(var(--portal-mobile-gutter) * -1);
        padding: 3px var(--portal-mobile-gutter) 15px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline mandatory;
        scroll-padding-inline: var(--portal-mobile-gutter);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .portal-mobile-experience .mobile-dashboard-funds__list::-webkit-scrollbar { display: none; }
    .portal-mobile-experience .mobile-dashboard-fund-card {
        flex: 0 0 min(86vw, 338px);
        min-height: 268px;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
    .portal-mobile-experience .mobile-dashboard-funds__list::after {
        flex: 0 0 2px;
        content: '';
    }
    .portal-mobile-experience .mobile-dashboard-funds .portal-mobile-section-heading > a::before {
        content: none;
    }
    @keyframes portal-mobile-panel-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

    .portal-mobile-experience .mobile-investment-hub__toolbar,
    .portal-mobile-experience .mobile-fund-compare__selection {
        border-color: #e0e9f5; background: rgba(255,255,255,.92);
        box-shadow: 0 8px 20px rgba(25,53,94,.06);
    }
    /* The filter is the page control on mobile: it pins to the viewport edge instead of floating below it. */
    .portal-mobile-experience .mobile-investment-hub__toolbar {
        top: 0;
        margin: 0 calc(var(--portal-mobile-gutter) * -1) 15px;
        padding: 10px var(--portal-mobile-gutter) 12px;
        border-width: 0 0 1px;
        border-radius: 0 0 18px 18px;
        background: rgba(255,255,255,.97);
        box-shadow: 0 8px 18px rgba(25,53,94,.11);
        backdrop-filter: blur(16px);
    }
    .portal-mobile-experience .mobile-investment-hub__toolbar label { min-height: 48px; border-color: #d7e3f2; border-radius: 14px; background: #f8fbff; }
    .portal-mobile-experience .mobile-investment-hub__toolbar input { height: 46px; font-size: .8rem; }
    .portal-mobile-experience .mobile-investment-hub__filters { gap: 7px; margin-top: 9px; }
    .portal-mobile-experience .mobile-investment-hub__filters button { min-height: 40px; padding: 8px 13px; border-radius: 12px; background: #f4f7fb; }
    .portal-mobile-experience .mobile-investment-hub__filters button.is-active,
    .portal-mobile-experience .mobile-fund-compare__filters button.is-active { color: #fff !important; border-color: #1769e0; background: #1769e0; }
    /* Fund actions are intentionally two-column controls, not four compressed labels. */
    .portal-mobile-experience .mobile-investment-fund-card__actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding-top: 2px; }
    .portal-mobile-experience .mobile-investment-fund-card__actions :is(a,button) { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 48px; padding: 9px 8px; border: 1px solid transparent; border-radius: 13px; font-size: .73rem; font-weight: 850; line-height: 1; }
    .portal-mobile-experience .mobile-investment-fund-card__actions i { font-size: .88rem; }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-subscribe { color: #fff; border-color: #15803d; background: linear-gradient(135deg,#16a34a,#15803d); }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-redeem { color: #fff; border-color: #b91c1c; background: linear-gradient(135deg,#ef4444,#b91c1c); }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-detail { color: #315b92; border-color: #d9e5f4; background: #f5f9ff; }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-gift { color: #925f10; border-color: #f5dfa4; background: #fff8e6; }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-trade { grid-column: auto; color: #fff; border-color: #155db2; background: linear-gradient(135deg,#1769e0,#0c4fae); }
    .portal-mobile-experience .mobile-investment-fund-card__facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-mobile-experience .mobile-investment-fund-card__facts > div:first-child { grid-column: 1 / -1; }

    /* The dashboard carousel shares the same full-size action language as the investment list. */
    .portal-mobile-experience .mobile-dashboard-fund-card__actions {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions :is(a,button) {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        flex: 1 1 0;
        min-height: 48px;
        min-width: 0;
        padding: 9px 8px;
        border: 1px solid transparent;
        border-radius: 13px;
        font-size: .73rem;
        font-weight: 850;
        line-height: 1;
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions i { font-size: .88rem; }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-subscribe {
        color: #fff;
        border-color: #15803d;
        background: linear-gradient(135deg,#16a34a,#15803d);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-external {
        color: #fff;
        border-color: #155db2;
        background: linear-gradient(135deg,#1769e0,#0c4fae);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-redeem { color: #a33a49; border-color: #f1ccd3; background: #fff7f8; }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-details { color: #315b92; border-color: #d9e5f4; background: #f5f9ff; }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-gift { flex: 0 0 48px; width: 48px; color: #925f10; border-color: #f5dfa4; background: #fff8e6; }
    .portal-mobile-experience .mobile-dashboard-fund-card__returns { flex-wrap: wrap; align-items: stretch; }
    .portal-mobile-experience .mobile-dashboard-fund-card__returns > span { flex: 1 1 45%; min-width: 0; min-height: 40px; padding: 7px 8px; color: #61748d; border: 1px solid #e1eaf4; border-radius: 11px; background: #f8fbff; white-space: normal; line-height: 1.6; }
    .portal-mobile-experience .mobile-dashboard-fund-card__returns > span > strong { direction: ltr; color: #173d70; font-variant-numeric: tabular-nums; }
    .portal-mobile-experience .mobile-fund-detail__overview i,
    .portal-mobile-experience .mobile-fund-links a > i:first-child { color: #1769e0; background: #eaf2ff; }
    .portal-mobile-experience .mobile-fund-detail__sections > details { border-color: #e1e9f4; box-shadow: 0 4px 12px rgba(25,53,94,.035); }
    .portal-mobile-experience .mobile-back-link { min-height: 46px; margin: 0 0 11px; padding: 10px 12px; color: #315b92; border: 1px solid #e1e9f4; border-radius: 14px; background: rgba(255,255,255,.82); box-shadow: 0 4px 12px rgba(25,53,94,.04); }
    .portal-mobile-experience .mobile-back-link i { display: grid; place-items: center; width: 27px; height: 27px; color: #1769e0; border-radius: 9px; background: #eaf2ff; }
    .portal-mobile-experience .mobile-fund-detail__actions .is-primary {
        color: #fff;
        border: 1px solid #15803d;
        background: linear-gradient(135deg,#16a34a,#15803d);
        box-shadow: 0 6px 13px rgba(21,128,61,.22);
    }
    .portal-mobile-experience .mobile-fund-detail__actions .is-danger {
        color: #fff;
        border: 1px solid #b91c1c;
        background: linear-gradient(135deg,#ef4444,#b91c1c);
        box-shadow: 0 6px 13px rgba(185,28,28,.2);
    }

    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected,
    .portal-mobile-experience .mobile-fund-compare__matrix { border-color: #a9cdfd; box-shadow: 0 8px 20px rgba(23,105,224,.08); }
    .portal-mobile-experience .portal-mobile-empty-state {
        color: #58718d; border-color: #cddded; background: linear-gradient(145deg,#fff,#f2f7ff);
    }

    /* Shared page identity: every non-dashboard screen gets the same calm, app-like entry point. */
    .portal-mobile-page-header {
        position: relative; overflow: hidden; min-height: 76px; margin-bottom: 16px;
        padding: 13px 14px; border-color: #e1eaf5;
        background: linear-gradient(135deg,#fff 0%,#f2f7ff 100%);
        box-shadow: 0 8px 22px rgba(25,53,94,.06);
    }
    .portal-mobile-page-header::after {
        position: absolute; top: -28px; left: -18px; width: 92px; height: 92px;
        border: 16px solid rgba(23,105,224,.07); border-radius: 50%; content: ''; pointer-events: none;
    }
    .portal-mobile-page-header__icon {
        position: relative; z-index: 1; flex-basis: 46px; width: 46px; height: 46px;
        border-radius: 15px; background: linear-gradient(135deg,#1769e0,#0d4fa9);
        box-shadow: 0 7px 14px rgba(23,105,224,.22);
    }
    .portal-mobile-page-header > div { position: relative; z-index: 1; }
    .portal-mobile-page-header > div > span { color: #6c7f99; }
    .portal-mobile-page-header h1 { color: #14213d; font-size: 1.03rem; }

    /* Comparison stays genuinely comparative on small screens, not a compressed desktop table. */
    .portal-mobile-experience .mobile-fund-compare__hero { padding: 20px 18px; }
    .portal-mobile-experience .mobile-fund-compare__eyebrow,
    .portal-mobile-experience .mobile-fund-compare__section-heading > div > span { color: #dbeafe; }
    .portal-mobile-experience .mobile-fund-compare__selection,
    .portal-mobile-experience .mobile-fund-compare__result { border-color: #e1e9f4; border-radius: 20px; }
    .portal-mobile-experience .mobile-fund-compare__selection .mobile-fund-compare__section-heading > div > span,
    .portal-mobile-experience .mobile-fund-compare__result .mobile-fund-compare__section-heading > div > span { color: #1769e0; }
    .portal-mobile-experience .mobile-fund-compare__section-heading > strong { color: #1769e0; background: #eaf2ff; }
    .portal-mobile-experience .mobile-fund-compare__filters { gap: 6px; padding: 4px; border-radius: 13px; background: #f3f6fa; }
    .portal-mobile-experience .mobile-fund-compare__filters button { min-height: 40px; border: 0; border-radius: 10px; background: transparent; }
    .portal-mobile-experience .mobile-fund-compare__filters button.is-active { box-shadow: 0 4px 10px rgba(23,105,224,.16); }
    .portal-mobile-experience .mobile-fund-compare__fund-option { min-height: 84px; border-color: #e1e9f4; border-radius: 15px; background: #fcfdff; }
    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected { background: #f2f7ff; }
    .portal-mobile-experience .mobile-fund-compare__check { color: #1769e0; border-color: #b9d3fa; }
    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected .mobile-fund-compare__check { border-color: #1769e0; background: #1769e0; }
    .portal-mobile-experience .mobile-fund-compare__matrix-head { background: #eff6ff; }
    .portal-mobile-experience .mobile-fund-compare__matrix-fund { color: #164f9f; border-color: #d7e5f7; }
    .portal-mobile-experience .mobile-fund-compare__matrix-row > strong { color: #526b87; background: #f8fbff; }

    /* Gift cards retain their brand treatment but now feel like a complete mobile feature. */
    .portal-mobile-experience .gift-cards-hero {
        position: relative; overflow: hidden; padding: 20px; border-color: #185db3;
        border-radius: 20px; background: linear-gradient(135deg,#0d3d7c,#1769e0 66%,#3187ea);
        box-shadow: 0 15px 30px rgba(22,83,165,.19);
    }
    .portal-mobile-experience .gift-cards-hero::after {
        position: absolute; left: -25px; bottom: -42px; width: 130px; height: 130px;
        border: 20px solid rgba(253,230,138,.22); border-radius: 50%; content: ''; pointer-events: none;
    }
    .portal-mobile-experience .gift-card-lookup {
        border-top-color: #1769e0; border-color: #e0e9f4;
        border-radius: 18px; box-shadow: 0 8px 20px rgba(25,53,94,.055);
    }
    .portal-mobile-experience .gift-card-lookup__button { background: linear-gradient(135deg,#1769e0,#0c4fae); }
    .portal-mobile-experience .gift-cards-hero :is(.gift-cards-hero__eyebrow,.gift-cards-hero__amount-label) { color: #fde68a; }
    .portal-mobile-experience .investor-gift-card { border-radius: 19px; box-shadow: 0 10px 20px rgba(16,55,112,.14); }

    /* Data-heavy pages: clearer touchable filter surfaces and a less dense horizontal table treatment. */
    .portal-mobile-experience .table-responsive { border-color: #e1e9f4; background: #fff; box-shadow: 0 5px 14px rgba(25,53,94,.04); }
    .portal-mobile-experience th { color: #365270; background: #f3f7fc; font-size: .72rem; }
    .portal-mobile-experience td { color: #334b66; font-size: .73rem; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) .card-header,
    .portal-mobile-experience .filter-card .card-header { background: linear-gradient(135deg,#fff,#f5f9ff); }

    /* Data pages use one filter-to-result rhythm instead of their desktop grid arrangement. */
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) { margin-top: 0 !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) > .row { margin: 0 !important; padding: 3px 2px 8px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) :is(.page-main-title,.page-sub-title) { display: none; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) + .container-fluid { margin-top: 0 !important; padding-inline: 0 !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) + .container-fluid .asset-card:first-child { margin-bottom: 12px; border-top: 3px solid #1769e0 !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) form.row { row-gap: 11px; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) form .align-items-end { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; margin: 2px 0 0 !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) form .align-items-end .btn { display: inline-flex !important; align-items: center; justify-content: center !important; min-height: 46px; margin: 0 !important; padding-inline: 9px; font-size: .76rem; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) .table-wrapper { max-height: none; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) .pagination { margin-top: 14px; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) .table-responsive { position: relative; padding-top: 0; overflow: visible !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) .table-responsive::before { display: none; }
    .portal-mobile-experience .page-body { padding-bottom: calc(148px + env(safe-area-inset-bottom)) !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) form .align-items-end { grid-template-columns: minmax(104px,.7fr) minmax(0,1.3fr) !important; }
    .portal-mobile-experience :is(.request-history-page,.account-turnover-page) form .align-items-end .btn-success { width: auto !important; min-width: 104px; padding-inline: 8px; font-size: .68rem; }

    /* Certificates and dividend reinvestment share a clear section entry and compact fund cards. */
    .portal-mobile-experience :is(.certificates-page-intro,.reinvestdividend-page-intro) { display: none; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) { margin-top: 0 !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-card { overflow: hidden; border-top: 3px solid #1769e0 !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-card { padding: 0 !important; background: linear-gradient(145deg,#fff 0%,#f7fbff 100%); }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title { margin: 0 !important; padding: 14px; border-bottom: 1px solid #e8eff7; background: linear-gradient(135deg,#f7fbff,#edf5ff); }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .fund-avatar { flex: 0 0 48px; width: 48px; height: 48px; margin-left: 10px !important; padding: 5px; border: 1px solid #d6e5f4; border-radius: 14px; background: #fff; box-shadow: 0 4px 10px rgba(25,53,94,.07); }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .fund-avatar img { width: 100%; height: 100%; object-fit: contain; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .info-box { min-width: 0; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .info-box > div:first-child { overflow-wrap: anywhere; color: #173d70; font-size: .82rem; font-weight: 900; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .badge2 { display: inline-flex; align-items: center; min-height: 22px; margin: 3px 2px 0 0 !important; padding: 3px 7px; color: #315b92; border: 1px solid #d6e5f4; border-radius: 999px; background: #fff; font-size: .58rem; font-weight: 800; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 14px !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat { display: grid; align-content: center; gap: 4px; min-height: 70px; padding: 10px; border: 1px solid #e1eaf4; border-radius: 13px; background: #f8fbff; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat .label { color: #71839a; font-size: .65rem; line-height: 1.65; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat .value { color: #173d70; font-size: .77rem; font-weight: 900; overflow-wrap: anywhere; }
    .portal-mobile-experience .certificates-page .fund-stats .stat .value { direction: rtl; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions { display: grid; gap: 8px; margin: 14px !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; width: 100%; border: 0; border-radius: 13px; font-size: .76rem; font-weight: 850; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions .btn.primary { color: #fff; background: linear-gradient(135deg,#1769e0,#0c4fae); box-shadow: 0 7px 14px rgba(23,105,224,.15); }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions .btn.reinvestdividend-save-btn { color: #315b92; border: 1px solid #dbe6f2; background: #f5f9ff; }
    .portal-mobile-experience .reinvestdividend-page > .row > label { margin-bottom: 10px; }
    .portal-mobile-experience .reinvestdividend-page > .row > label .asset-card { border-right: 3px solid #1769e0 !important; background: #f4f8ff !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats { grid-template-columns: 1fr; margin: 0 !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat { min-height: 62px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat .label { display: flex; align-items: center; gap: 8px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat .label input[type="checkbox"] { flex: 0 0 auto; width: 19px; height: 19px; accent-color: #1769e0; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .input-group { width: 100%; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .input-group .form-control { min-height: 44px; border-color: #d6e5f3; border-radius: 0 10px 10px 0; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .input-group-text { min-width: 40px; justify-content: center; border-radius: 10px 0 0 10px; }
    .portal-mobile-experience .reinvestdividend-page .fund-card > .p-3 { padding: 14px !important; }
    /* Certificates keeps the useful desktop description, while using a denser mobile card. */
    .portal-mobile-experience .certificates-page-intro {
        display: block !important;
        margin: 0 0 12px !important;
        padding: 0 !important;
    }
    .portal-mobile-experience .certificates-page-intro .news-portal-main-title { display: none; }
    .portal-mobile-experience .certificates-page-intro .news-portal-sub-title {
        display: block;
        margin: 0;
        padding: 9px 11px;
        color: #496174;
        border: 1px solid #d8e9e9;
        border-radius: 12px;
        background: #f3fbfa;
        font-size: .7rem;
        line-height: 1.75;
    }
    .portal-mobile-experience .certificates-page .fund-title { padding: 10px 12px !important; }
    .portal-mobile-experience .certificates-page .fund-title .fund-avatar { flex-basis: 40px; width: 40px; height: 40px; padding: 4px; border-radius: 11px; }
    .portal-mobile-experience .certificates-page .fund-stats { gap: 6px; }
    .portal-mobile-experience .certificates-page .fund-stats .stat { min-height: 56px; padding: 8px; border-radius: 11px; }
    .portal-mobile-experience .certificates-page .fund-actions .btn { min-height: 42px; border-radius: 11px; font-size: .7rem; }
    .portal-mobile-experience .certificates-page > .row { margin-inline: 0 !important; }
    .portal-mobile-experience .certificates-page > .row > [class*="col-"] { padding-inline: 0 !important; }
    .portal-mobile-experience .certificates-page .fund-card {
        position: relative;
        overflow: hidden;
        padding: 14px !important;
        border: 1px solid #d9e7ee !important;
        border-top: 1px solid #d9e7ee !important;
        border-radius: 18px;
        background: linear-gradient(145deg,#fff 0%,#f6fbfd 100%) !important;
        box-shadow: 0 6px 18px rgba(15,76,129,.07);
    }
    .portal-mobile-experience .certificates-page .fund-card::after {
        position: absolute;
        right: -34px;
        bottom: -42px;
        width: 120px;
        height: 120px;
        border: 18px solid rgba(20,169,164,.07);
        border-radius: 50%;
        content: '';
        pointer-events: none;
    }
    .portal-mobile-experience .certificates-page .fund-title {
        display: flex;
        align-items: center;
        gap: 10px;
        margin: 0 !important;
        padding: 0 0 11px !important;
        border-bottom: 1px solid #e8eff7;
        background: transparent;
        direction: ltr;
    }
    .portal-mobile-experience .certificates-page .fund-title .fund-avatar { flex: 0 0 44px; width: 44px; height: 44px; margin: 0 !important; padding: 4px; border-radius: 12px; }
    .portal-mobile-experience .certificates-page .fund-title .info-box { direction: rtl; text-align: right; }
    .portal-mobile-experience .certificates-page .fund-title .info-box > div:first-child { font-size: .8rem; }
    .portal-mobile-experience .certificates-page .fund-stats {
        grid-template-columns: repeat(3,minmax(0,1fr));
        gap: 7px;
        margin: 12px 0 0 !important;
        padding-top: 10px;
        border-top: 1px solid #e8eff7;
    }
    .portal-mobile-experience .certificates-page .fund-stats .stat {
        min-height: 62px;
        padding: 8px 6px;
        border: 1px solid #dbeafe;
        border-radius: 12px;
        background: #f1f7ff;
    }
    .portal-mobile-experience .certificates-page .fund-stats .stat:last-child:nth-child(odd) { grid-column: auto !important; }
    .portal-mobile-experience .certificates-page .fund-stats .stat .label { font-size: .59rem; white-space: nowrap; }
    .portal-mobile-experience .certificates-page .fund-stats .stat .value { font-size: .69rem; white-space: nowrap; }
    .portal-mobile-experience .certificates-page .fund-stats .stat .value { direction: ltr; justify-self: start; text-align: left; }
    .portal-mobile-experience .certificates-page .fund-card > .m-4 { margin: 12px 0 0 !important; }
    .portal-mobile-experience .certificates-page .fund-actions .btn { min-height: 42px; font-size: .72rem; }
    /* Certificate and reinvestment cards share the dashboard card composition. */
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-card {
        position: relative;
        overflow: hidden;
        border: 1px solid #d9e7ee !important;
        border-top: 3px solid #1769e0 !important;
        border-radius: 18px;
        background: linear-gradient(145deg,#fff 0%,#f6fbfd 100%) !important;
        box-shadow: 0 6px 18px rgba(15,76,129,.07);
    }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-card::after {
        position: absolute;
        right: -34px;
        bottom: -42px;
        width: 120px;
        height: 120px;
        border: 18px solid rgba(20,169,164,.07);
        border-radius: 50%;
        content: '';
        pointer-events: none;
    }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title {
        display: flex;
        direction: rtl;
        align-items: center;
        gap: 10px;
        margin: 0 !important;
        padding: 0 0 11px !important;
        border-bottom: 1px solid #e8eff7;
        background: transparent;
    }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .fund-avatar { order: 0; flex: 0 0 44px; width: 44px; height: 44px; margin: 0 !important; padding: 4px; border-radius: 12px; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-title .info-box { direction: rtl; text-align: right; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 7px; margin: 12px 0 0 !important; padding-top: 10px; border-top: 0; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat { min-height: 58px; padding: 8px; border: 1px solid #dbeafe; border-radius: 12px; background: #f1f7ff; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-stats .stat:last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions { position: relative; z-index: 1; margin: 12px 0 0 !important; }
    .portal-mobile-experience :is(.certificates-page,.reinvestdividend-page) .fund-actions .btn { min-height: 42px; border-radius: 11px; }
    .portal-mobile-experience .reinvestdividend-page .fund-card > .p-3 > p { margin: 0 0 14px !important; padding: 11px 12px; color: #526b87; border: 1px solid #dce8f4; border-radius: 12px; background: #f6faff; font-size: .72rem; line-height: 1.9; }
    .portal-mobile-experience .reinvestdividend-page > .row { margin-inline: 0 !important; }
    .portal-mobile-experience .reinvestdividend-page > .row > [class*="col-"] { padding-inline: 0 !important; }
    .portal-mobile-experience .reinvestdividend-page > .row { padding-top: 14px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat { min-height: 76px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat .label { font-size: .62rem; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat .value { font-size: .72rem; }
    .portal-mobile-experience .reinvest-info-note {
        margin: 0 0 12px;
        padding: 9px 11px;
        color: #526b87;
        border-right: 3px solid #1769e0;
        border-radius: 11px;
        background: #f4f8ff;
        font-size: .7rem;
        line-height: 1.85;
        text-align: justify;
    }
    .portal-mobile-experience .reinvestdividend-page .fund-title { padding-top: 6px !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat { min-height: 84px; padding: 10px !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat .label { line-height: 1.65; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .input-group { min-height: 38px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .input-group .form-control { min-height: 38px; }
    .portal-mobile-experience .reinvestdividend-page .fund-actions .reinvestdividend-save-btn { color: #fff !important; background: linear-gradient(135deg,#1769e0,#0c4fae) !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px; }
    .portal-mobile-experience .reinvestdividend-page .fund-actions .btn { min-height: 42px; width: 100%; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat { min-width: 0; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child { align-content: space-between; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .value { min-width: 0; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .input-group { width: 100%; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:nth-child(2) { border-color: transparent; background: transparent; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:nth-child(2) .label { width: 100%; margin: 0; padding: 9px; color: #315b92; border: 1px solid #dbeafe; border-radius: 10px; background: #f1f7ff; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .label { display: block; margin-bottom: 6px; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .value { display: block; width: 100%; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .input-group { display: flex; flex-wrap: nowrap !important; align-items: stretch; width: 100%; overflow: hidden; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .input-group { direction: ltr !important; flex-direction: row !important; border-radius: 8px !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .input-group-text { order: 0; flex: 0 0 38px; min-width: 38px; height: 42px; padding: 0; border-radius: 8px 0 0 8px !important; }
    .portal-mobile-experience .reinvestdividend-page .fund-stats .stat:first-child .input-group .form-control { order: 1; flex: 1 1 auto; min-width: 0; width: 100% !important; max-width: none !important; height: 42px; min-height: 42px; border-radius: 0 8px 8px 0 !important; direction: ltr; text-align: right; }
    .portal-mobile-experience .reinvestdividend-page .fund-actions .reinvestdividend-save-btn { min-height: 42px; color: #fff !important; border-radius: 11px !important; background: linear-gradient(135deg,#1769e0,#0c4fae) !important; box-shadow: 0 7px 14px rgba(23,105,224,.15); }
    .portal-mobile-experience .mobile-fund-compare__fund-option {
        min-height: 68px;
        padding: 9px 10px;
        border-radius: 14px;
        background: #fff;
    }
    .portal-mobile-experience .mobile-fund-compare__fund-logo { width: 38px; height: 38px; }
    .portal-mobile-experience .mobile-fund-compare__fund-option.is-selected { border-color: #1769e0; background: #f4f8ff; }
    .portal-mobile-experience .certificates-page .fund-card::before,
    .portal-mobile-experience .reinvestdividend-page .fund-card::before { display: none !important; content: none !important; }

    /* Public long-form pages read like a dedicated mobile article instead of a desktop document. */
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article { padding-inline: 0 !important; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .article-container { margin: 12px 0 22px !important; padding: 17px 15px !important; border-top: 3px solid #1769e0; border-radius: 18px; box-shadow: 0 8px 21px rgba(25,53,94,.055); }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .article-container > .card { background: transparent; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .page-main-title { margin-bottom: 10px !important; color: #14213d; font-size: 1.15rem !important; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .job-description { margin: 0 0 16px; padding: 0 0 14px !important; border: 0; border-bottom: 1px solid #ebf0f6; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .job-description:last-child { margin-bottom: 0; padding-bottom: 0 !important; border-bottom: 0; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .job-description :is(h4,b) { color: #193e70; font-size: .84rem; line-height: 1.9; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article :is(p,li) { color: #42546e; font-size: .82rem; line-height: 2.05; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article ul { padding-right: 19px !important; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article table { min-width: 520px; margin: 0; font-size: .72rem; }
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .table-responsive,
    .portal-anonymous-shell.portal-mobile-experience .portal-mobile-content-article .table { display: block; max-width: 100%; overflow-x: auto; }

    /* The public fund catalogue keeps an intentional compact selector rather than a horizontal desktop grid. */
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login { padding-inline: 0 !important; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .hovercard { background: transparent; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .market-tabs { top: 68px; margin-top: 0 !important; padding: 8px; border-radius: 16px; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .market-tabs > ul { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; margin: 0; padding: 0; scrollbar-width: none; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .market-tabs > ul > li { flex: 0 0 min(80vw,285px); margin: 0 !important; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .nav-fund { min-height: 68px; border: 1px solid #e0e9f4; border-radius: 14px !important; background: #fff !important; }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .nav-fund.active { border-color: #a9cdfd; background: #f1f6ff !important; box-shadow: 0 6px 14px rgba(23,105,224,.1); }
    .portal-anonymous-shell.portal-mobile-experience #fund-not-login .fund-avatar { width: 42px; height: 42px; margin-inline: 10px !important; border-color: #dce7f5; }

    /* Request wizards preserve their existing steps but get a clearer mobile progression. */
    .portal-mobile-experience .cancellation-request { margin-top: 0 !important; }
    .portal-mobile-experience .cancellation-request .wizzard-box { margin-top: 18px !important; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) > .row { --bs-gutter-x: 0; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .card { border-color: #e0e9f4 !important; border-radius: 19px !important; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .card-title-border-top { border-top-color: #1769e0 !important; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .form-row { border-bottom-color: #eaf0f6; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .form-check { border-color: #dbe7f4; background: #f7faff; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .form-check-input:checked { border-color: #1769e0; background-color: #1769e0; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .accept-form,
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .btn-primary { background: linear-gradient(135deg,#1769e0,#0c4fae); }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .step-box .circle.active { border-color: #d59a2c; background: #d59a2c; box-shadow: 0 0 0 4px #fff1cf; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .step-box .wizzard-label.active { color: #81530e; }
    .portal-mobile-experience :is(.cancellation-request,.wizzard-box) .step-box .wizzard-line.active { background: #d59a2c; }

    /* Issuance/redemption fund identity: align it with the light mobile cards, not the dark detail header. */
    .portal-mobile-experience .cancellation-request .fund-header {
        flex-direction: row;
        align-items: center;
        gap: 10px;
        padding: 12px 14px;
        color: #123e76;
        border: 1px solid #dce8f6;
        border-bottom: 1px solid #dce8f6;
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 6px 16px rgba(31, 73, 125, .07);
    }
    .portal-mobile-experience .cancellation-request .fund-header-right { align-items: center; gap: 10px; }
    .portal-mobile-experience .cancellation-request .fund-header .fund-avatar {
        width: 42px;
        height: 42px;
        padding: 5px;
        border: 1px solid #e1ebf7;
        border-radius: 13px;
        background: #f5f9ff;
    }
    .portal-mobile-experience .cancellation-request .fund-header h2 {
        margin: 0;
        color: #123e76;
        font-size: .92rem;
        font-weight: 900;
        line-height: 1.75;
    }

    /* One quiet semantic action palette across dashboard, fund list and fund details. */
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-subscribe,
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-subscribe,
    .portal-mobile-experience .mobile-fund-detail__actions .is-primary {
        color: #fff;
        border: 0;
        background: linear-gradient(135deg,#16a34a,#08783b);
        box-shadow: 0 5px 12px rgba(8,120,59,.18);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-redeem,
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-redeem,
    .portal-mobile-experience .mobile-fund-detail__actions .is-danger {
        color: #fff;
        border: 0;
        background: linear-gradient(135deg,#ef3346,#b70e24);
        box-shadow: 0 5px 12px rgba(183,14,36,.18);
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-details,
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-detail {
        color: #245d9f;
        border: 1px solid #cbdff4;
        background: #f4f8fe;
        box-shadow: none;
    }
    .portal-mobile-experience .mobile-dashboard-fund-card__actions .is-details { order: 4; }
    /* Trading is an external destination, not a subscription action. Keep it
       distinct from the green issue button and strong enough over the dark hero. */
    .portal-mobile-experience .mobile-fund-detail__actions .is-trading {
        color: #0d4fa9;
        border: 1px solid rgba(255,255,255,.72);
        background: #fff;
        box-shadow: 0 6px 14px rgba(8,27,61,.24);
    }
    .portal-mobile-experience .mobile-fund-detail__actions .is-trading:active {
        color: #093f8c;
        background: #eaf2ff;
    }

    /* Profile, FAQ and news use the same blue information hierarchy as the rest of the app. */
    .portal-mobile-experience .mobile-profile-overview { border: 1px solid #1d63be; border-top: 3px solid #d59a2c; background: linear-gradient(135deg,#0c2c59,#155dab 68%,#2a7bce); box-shadow: 0 14px 29px rgba(22,83,165,.18); }
    .portal-mobile-experience .mobile-profile-overview__avatar,
    .portal-mobile-experience .mobile-profile-overview__password { color: #155dbf; }
    .portal-mobile-experience .mobile-profile-overview__password:active { color: #0f4fa8; background: #eef5ff; }
    .portal-mobile-experience .mobile-profile-overview__actions { position: relative; z-index: 1; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 3px; }
    .portal-mobile-experience .mobile-profile-overview__actions .mobile-profile-overview__password { grid-column: auto; margin-top: 0; }
    .portal-mobile-experience .mobile-profile-overview__sejam { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 10px; color: #155dbf; border: 0; border-radius: 12px; background: #eaf2ff; font: inherit; font-size: .72rem; font-weight: 800; }
    .portal-mobile-experience .mobile-profile-overview__sejam:disabled { cursor: wait; opacity: .72; }
    .portal-mobile-experience .mobile-profile-overview__sejam:active { background: #dceaff; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody tr { border-color: #e1e9f4; box-shadow: 0 5px 13px rgba(25,53,94,.045); }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(2) { background: #f2f7ff; }
    .portal-mobile-experience .user-information-style .mobile-auth-log-table tbody td:nth-child(2)::before { color: #54708f; }
    .portal-mobile-experience .user-information-style,
    .portal-mobile-experience .user-information-style .mobile-profile-tabs,
    .portal-mobile-experience .user-information-style .mobile-profile-tab-panel { width: 100% !important; max-width: none !important; }
    .portal-mobile-experience .user-information-style .mobile-profile-tabs,
    .portal-mobile-experience .user-information-style .mobile-profile-tab-panel { width: calc(100% + 10px) !important; margin-inline: -5px !important; }
    .portal-mobile-experience .user-information-style { width: calc(100% + 26px) !important; margin-inline: -13px !important; }
    .portal-mobile-experience .user-information-style .mobile-profile-tabs,
    .portal-mobile-experience .user-information-style .mobile-profile-tab-panel { width: 100% !important; margin-inline: 0 !important; }

    .portal-mobile-experience .faq-header { border-color: #195fb7; background: linear-gradient(135deg,#0f3d7b,#1769e0); }
    .portal-mobile-experience .faq-form { border-color: #e0e9f4; box-shadow: 0 7px 17px rgba(25,53,94,.055); }
    .portal-mobile-experience .faq-page .faq-tab.active { color: #fff; background: #1769e0; }
    .portal-mobile-experience .portal-mobile-faq-shell .faq-form { position: relative; padding: 14px !important; }
    .portal-mobile-experience .portal-mobile-faq-shell .faq-form > .form-control { width: 100%; min-height: 46px; padding-left: 42px !important; }
    .portal-mobile-experience .portal-mobile-faq-shell .faq-form > .faq-search { top: 50% !important; left: 27px !important; right: auto !important; width: 20px; height: 20px; transform: translateY(-50%); pointer-events: none; }
    .portal-mobile-experience .portal-mobile-faq-shell .faq-form { position: relative !important; top: auto !important; z-index: 1 !important; margin-bottom: 12px !important; }
    .portal-mobile-experience .portal-mobile-faq-shell + .faq-page { margin-top: 0 !important; }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card { border-color: #e1e9f4; box-shadow: 0 7px 18px rgba(25,53,94,.055); }
    .portal-mobile-experience .news-portal-main-content .news-portal-title-lg { color: #193e70; }
    /* Keep every news item full-width on phones; the desktop two-column feed must not leak into mobile. */
    .portal-mobile-experience .portal-mobile-news-page ~ .news-content-grid,
    .portal-mobile-experience .news-content-grid { width: 100% !important; grid-template-columns: minmax(0, 1fr) !important; }
    .portal-mobile-experience .news-portal-main-content { width: 100% !important; grid-template-columns: minmax(0, 1fr) !important; }
    .portal-mobile-experience .news-portal-main-content { display: grid !important; grid-column: 1 / -1 !important; }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card { width: 100% !important; min-width: 0; grid-column: 1 / -1 !important; }
    .portal-mobile-experience .news-content-grid > .news-portal-main-content,
    .portal-mobile-experience .news-content-grid > .sidebar-style { min-width: 0 !important; }

    /* The news page is rendered as two desktop grids by default. On phones,
       use a simple full-width feed so the desktop 300px card constraint cannot
       make the list appear half-width. */
    .portal-mobile-experience .news-content-grid {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        margin-inline: 0 !important;
        padding-inline: 0 !important;
    }
    .portal-mobile-experience .news-portal-main-content {
        display: flex !important;
        flex-direction: column;
        width: 100% !important;
        min-width: 0 !important;
    }
    .portal-mobile-experience .news-portal-main-content .news-portal-item-card {
        inline-size: 100% !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }

    /* Anonymous authentication keeps its functional form layout, with an app-level surface and spacing. */
    .portal-auth-shell.portal-mobile-experience .card,
    .portal-anonymous-shell.portal-mobile-experience .login-card,
    .portal-anonymous-shell.portal-mobile-experience .register-card {
        border-color: #e1e9f4 !important; box-shadow: 0 12px 28px rgba(25,53,94,.08) !important;
    }
    .portal-auth-shell.portal-mobile-experience :is(.btn-primary,.btn-dark) { background: linear-gradient(135deg,#1769e0,#0c4fae); }

    /* Login is a focused entry screen on mobile: no content feed, no promotional carousel. */
    .portal-auth-shell.portal-mobile-experience .auth-entry-section {
        display: grid; place-items: center; min-height: calc(100dvh - 68px);
        padding: 18px 16px calc(24px + env(safe-area-inset-bottom)) !important;
    }
    .portal-auth-shell.portal-mobile-experience .auth-entry-row { width: min(100%, 390px); margin: 0 !important; }
    .portal-auth-shell.portal-mobile-experience .auth-form-column { width: 100%; padding: 0 !important; }
    .portal-auth-shell.portal-mobile-experience .auth-slider-column,
    .portal-auth-shell.portal-mobile-experience .auth-latest-news { display: none !important; }
    .portal-auth-shell.portal-mobile-experience .login-card {
        height: auto !important; margin: 0 !important; padding: 22px 20px 20px !important;
        border: 1px solid #e1e9f4 !important; border-top: 3px solid #d59a2c !important;
        border-radius: 22px !important; background: rgba(255,255,255,.98) !important;
        box-shadow: 0 16px 36px rgba(25,53,94,.11) !important;
    }
    .portal-auth-shell.portal-mobile-experience .login-card > div,
    .portal-auth-shell.portal-mobile-experience .login-main { height: auto !important; }
    .portal-auth-shell.portal-mobile-experience .investor-tabs {
        display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; margin: 0 0 22px;
        padding: 4px; border-radius: 14px; background: #f1f5fa;
    }
    .portal-auth-shell.portal-mobile-experience .investor-tabs .divider { display: none; }
    .portal-auth-shell.portal-mobile-experience .investor-tabs .tab {
        min-height: 44px; padding: 8px 5px; color: #687b95; border: 0; border-radius: 10px;
        background: transparent; font-family: Vazirmatn,sans-serif; font-size: .75rem; font-weight: 800;
        transition: color 180ms ease,background-color 180ms ease,box-shadow 180ms ease;
    }
    .portal-auth-shell.portal-mobile-experience .investor-tabs .tab.active {
        color: #fff; background: linear-gradient(135deg,#0f3d7b,#1769e0); box-shadow: 0 5px 12px rgba(23,105,224,.22);
    }
    .portal-auth-shell.portal-mobile-experience .login-entry-title { margin: 0; color: #14213d; font-size: 1.2rem; font-weight: 900; }
    .portal-auth-shell.portal-mobile-experience .login-entry-subtitle { margin: 7px 0 20px; color: #60708a; font-size: .78rem; line-height: 1.85; }
    .portal-auth-shell.portal-mobile-experience .login-main .form-group { margin-bottom: 15px; }
    .portal-auth-shell.portal-mobile-experience .login-main .form-group > label { margin-bottom: 6px; }
    .portal-auth-shell.portal-mobile-experience .captcha-row {
        display: grid; grid-template-columns: minmax(0,1fr) 160px; gap: 8px; align-items: center;
    }
    .portal-auth-shell.portal-mobile-experience .captcha-row .validation-message,
    .portal-auth-shell.portal-mobile-experience .captcha-row .text-danger { grid-column: 1 / -1; }
    .portal-auth-shell.portal-mobile-experience .captcha-input { width: 100% !important; min-width: 0; min-height: 46px; font-size: .76rem; }
    .portal-auth-shell.portal-mobile-experience .captcha-box { display: block; width: 160px; min-height: 44px; overflow: visible; border-radius: 11px; }
    .portal-auth-shell.portal-mobile-experience .captcha-box .divCaptcha { display: grid; grid-template-columns: 112px 44px; gap: 4px; width: 160px; height: 44px; direction: ltr; }
    .portal-auth-shell.portal-mobile-experience .captcha-box .divCaptcha > img { display: block; width: 112px !important; height: 44px !important; border: 1px solid #dce5f1; border-radius: 10px; object-fit: cover; }
    .portal-auth-shell.portal-mobile-experience .captcha-box .btn-refresh { display: grid; place-items: center; width: 44px !important; height: 44px !important; padding: 0; color: #1769e0; border: 1px solid #cfe0f6; border-radius: 10px; background: #eef5ff !important; cursor: pointer; }
    .portal-auth-shell.portal-mobile-experience .captcha-box .btn-refresh::before { font-family: "Font Awesome 6 Free"; font-size: .92rem; font-weight: 900; content: "\f2f1"; }
    .portal-auth-shell.portal-mobile-experience .captcha-box .btn-refresh:active { color: #fff; border-color: #1769e0; background: #1769e0 !important; }
    .portal-auth-shell.portal-mobile-experience .checkbox-checked {
        display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center;
    }
    .portal-auth-shell.portal-mobile-experience .checkbox-checked > .mb-1 { margin: 0 !important; text-align: left; }
    .portal-auth-shell.portal-mobile-experience .checkbox-checked > .text-end,
    .portal-auth-shell.portal-mobile-experience .checkbox-checked > .text-center { grid-column: 1 / -1; margin: 2px 0 0 !important; }
    .portal-auth-shell.portal-mobile-experience .checkbox-checked .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; }
    .portal-auth-shell.portal-mobile-experience .checkbox-checked .link { color: #1769e0; font-size: .75rem; font-weight: 700; text-decoration: none; }
    .portal-auth-shell.portal-mobile-experience .login-main .alert { margin-bottom: 14px; }

    /* Shared app affordances: focus remains visible and motion remains optional. */
    .portal-mobile-experience :is(a,button,input,select,textarea,summary):focus-visible,
    .portal-mobile-header :is(a,button,summary):focus-visible,
    .portal-mobile-public-header :is(a,button,summary):focus-visible {
        outline: 3px solid #d59a2c;
        outline-offset: 2px;
    }
    :where(.portal-mobile-experience,.portal-mobile-header,.portal-mobile-bottom-nav,.portal-mobile-public-header) :is(a,button,summary) {
        -webkit-tap-highlight-color: rgba(23, 105, 224, .16);
        touch-action: manipulation;
        transition: transform 110ms ease, filter 110ms ease, opacity 110ms ease;
    }
    :where(.portal-mobile-experience,.portal-mobile-header,.portal-mobile-bottom-nav,.portal-mobile-public-header) :is(a,button,summary):not([disabled]):is(:active,.portal-mobile-pressed) {
        transform: scale(.975);
        filter: brightness(.94);
        opacity: .92;
    }
    .portal-mobile-navigation-feedback {
        position: fixed;
        inset: 0;
        z-index: 2200;
        display: grid;
        place-items: center;
        padding: 24px;
        pointer-events: none;
        opacity: 0;
        visibility: hidden;
        transition: opacity 140ms ease, visibility 140ms ease;
    }
    body.portal-mobile-navigation-pending .portal-mobile-navigation-feedback {
        opacity: 1;
        visibility: visible;
    }
    .portal-mobile-navigation-feedback__panel {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        min-height: 48px;
        padding: 10px 14px;
        color: #173d70;
        border: 1px solid #d5e4f4;
        border-radius: 15px;
        background: rgba(255,255,255,.96);
        box-shadow: 0 12px 30px rgba(25,53,94,.18);
        font-size: .76rem;
        font-weight: 800;
        backdrop-filter: blur(10px);
    }
    .portal-mobile-navigation-feedback__spinner {
        width: 18px;
        height: 18px;
        border: 2px solid #c8dbef;
        border-top-color: #1769e0;
        border-radius: 50%;
        animation: portal-mobile-navigation-spin .7s linear infinite;
    }
    @keyframes portal-mobile-navigation-spin { to { transform: rotate(360deg); } }
    @media (prefers-reduced-motion: reduce) {
        .portal-mobile-experience *, .portal-mobile-header *, .portal-mobile-public-header * {
            scroll-behavior: auto !important;
            animation-duration: .01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: .01ms !important;
        }
    }

    /* Keep investment actions in one compact, touch-friendly row like the dashboard cards. */
    .portal-mobile-experience .mobile-investment-fund-card__actions {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        padding-top: 2px;
    }
    .portal-mobile-experience .mobile-investment-fund-card__actions :is(a,button) {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 1 1 0;
        min-width: 0;
        min-height: 42px;
        gap: 6px;
        padding: 8px 6px;
        white-space: nowrap;
        font-size: .66rem;
    }
    .portal-mobile-experience .mobile-investment-fund-card__actions .is-gift {
        flex: 0 0 48px;
        width: 48px;
        padding-inline: 0;
    }
    /* Shared mobile button scale, matching the dashboard issuance controls. */
    .portal-mobile-experience .page-body-wrapper :is(button,.btn),
    .portal-mobile-experience .portal-mobile-page-host :is(button,.btn) {
        min-height: 42px;
        padding: 8px 12px;
        border-radius: 11px;
        font-size: .72rem;
        font-weight: 800;
        line-height: 1.2;
    }

    /* History and turnover are intentionally plain, single-column records on phones. */
    .portal-mobile-experience .mobile-card-table tbody { gap: 10px; }
    .portal-mobile-experience .table-wrapper,
    .portal-mobile-experience .mobile-card-table,
    .portal-mobile-experience .mobile-card-table tbody { background: #fff !important; }
    .portal-mobile-experience .mobile-card-table tbody tr {
        padding: 7px 12px;
        border: 1px solid #e3e7ed;
        border-radius: 14px;
        background: #fff !important;
        box-shadow: none;
    }
    .portal-mobile-experience .mobile-card-table tbody td,
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__amount,
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__balance {
        display: grid;
        grid-template-columns: 1fr;
        gap: 3px;
        min-height: 0;
        margin: 0;
        padding: 8px 0;
        color: #374151;
        border-bottom: 1px solid #edf0f3;
        border-radius: 0;
        background: transparent !important;
    }
    .portal-mobile-experience .mobile-card-table tbody td::before {
        display: block;
        color: #6b7280;
        font-size: .66rem;
        font-weight: 700;
        text-align: right;
    }
    .portal-mobile-experience .mobile-card-table tbody td > span,
    .portal-mobile-experience .mobile-card-table tbody td > strong { justify-self: start; text-align: right; }
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__fund {
        display: flex !important;
        min-height: 0 !important;
        margin: 0;
        padding: 8px 0 !important;
        color: #374151 !important;
        border-bottom: 1px solid #e5e7eb !important;
        background: transparent !important;
        font-size: .8rem;
    }
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__fund::before { display: none; }
    .portal-mobile-experience .mobile-card-table__amount strong,
    .portal-mobile-experience .mobile-card-table__balance strong { color: #374151; font-size: .8rem; }
    .portal-mobile-experience .mobile-card-table__status span,
    .portal-mobile-experience .mobile-card-table__type span {
        justify-self: start;
        padding: 0;
        color: #374151;
        border-radius: 0;
        background: transparent;
        font-size: .72rem;
        font-weight: 700;
    }
    /* Compact two-column rows: label and value stay side by side while the card remains white. */
    .portal-mobile-experience .mobile-card-table tbody td,
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__amount,
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__balance {
        display: grid;
        grid-template-columns: minmax(88px,.8fr) minmax(0,1.2fr);
        align-items: center;
        gap: 8px;
        min-height: 38px;
        padding: 6px 0;
        background: #fff !important;
    }
    .portal-mobile-experience .mobile-card-table tbody td::before {
        display: block;
        text-align: right;
    }
    .portal-mobile-experience .mobile-card-table tbody td > span,
    .portal-mobile-experience .mobile-card-table tbody td > strong {
        justify-self: end;
        text-align: left;
    }
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__amount,
    .portal-mobile-experience .mobile-card-table tbody td.mobile-card-table__balance {
        margin: 0 !important;
        padding: 6px 0 !important;
        min-height: 38px !important;
        border: 0 !important;
        border-bottom: 1px solid #edf0f3 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }
    .portal-mobile-experience .mobile-card-table__status span,
    .portal-mobile-experience .mobile-card-table__type span {
        justify-self: end;
    }
    .portal-mobile-experience .mobile-card-table__description span {
        line-height: 1.55;
    }

    /* Gift-card states use the light mobile palette while keeping each state distinct. */
    .portal-mobile-experience .investor-gift-card {
        color: #18324f;
        border: 1px solid #d9e6f2;
        background: linear-gradient(145deg, #ffffff 0%, #f5f9ff 100%) !important;
        box-shadow: 0 8px 20px rgba(25, 66, 112, .10);
    }
    .portal-mobile-experience .investor-gift-card.available {
        border-color: #b7e5d2;
        background: linear-gradient(145deg, #ffffff 0%, #effbf5 100%) !important;
        box-shadow: 0 8px 20px rgba(22, 129, 95, .12);
    }
    .portal-mobile-experience .investor-gift-card.used {
        border-color: #d8e0ec;
        background: linear-gradient(145deg, #ffffff 0%, #f3f6fb 100%) !important;
    }
    .portal-mobile-experience .investor-gift-card.inactive {
        border-color: #f0d2d7;
        background: linear-gradient(145deg, #ffffff 0%, #fff5f6 100%) !important;
        opacity: 1;
    }
    .portal-mobile-experience .investor-gift-card :is(.investor-gift-card__brand,
        .investor-gift-card__recipient, .investor-gift-card__fund-row,
        .investor-gift-card__funds-title) { color: #24496d; }
    .portal-mobile-experience .investor-gift-card__code { color: #496781; }
    .portal-mobile-experience .investor-gift-card__amount,
    .portal-mobile-experience .available .investor-gift-card__amount { color: #173d70 !important; text-shadow: none; }
    .portal-mobile-experience .investor-gift-card__amount small { color: #71839a; }
    .portal-mobile-experience .investor-gift-card__meta { color: #617a94; border-bottom-color: #dce7f1; }
    .portal-mobile-experience .investor-gift-card__meta svg { color: #3f83c4; }
    .portal-mobile-experience .investor-gift-card__fund-row + .investor-gift-card__fund-row { border-top-color: #e4edf5; }
    .portal-mobile-experience .investor-gift-card__fund-name small { color: #7890a7; }
    .portal-mobile-experience .status-pill.available { color: #08734e; background: #dff7ea; border: 1px solid #bce9d1; }
    .portal-mobile-experience .status-pill.used { color: #526b87; background: #edf2f8; border: 1px solid #dbe4ef; }
    .portal-mobile-experience .status-pill.inactive { color: #a33a49; background: #fff0f2; border: 1px solid #f3ccd2; }
    .portal-mobile-experience .investor-gift-card__recipient-icon { color: #1769e0; background: #eaf2ff; }
    .portal-mobile-experience .investor-gift-card__bank-mark .investor-gift-card__chip { background: linear-gradient(135deg, #f3cc75, #b78334); }
    .portal-mobile-experience .investor-gift-card__used-fund-icon { color: #08734e; background: #dff7ea; }

    /* Dedicated mobile request flow: one calm form surface, compact choice tabs and readable money inputs. */
    .portal-mobile-experience .cancellation-request .wizzard-box { margin: 12px 0 14px !important; }
    .portal-mobile-experience .cancellation-request .step-wrapper { padding: 12px 14px 11px; border-color: #dce8f5; box-shadow: 0 5px 16px rgba(25,53,94,.05); }
    .portal-mobile-experience .cancellation-request .step-box .circle { width: 29px; height: 29px; margin-bottom: 5px !important; font-size: .7rem; }
    .portal-mobile-experience .cancellation-request .step-box .wizzard-label { font-size: .63rem; }
    .portal-mobile-experience .cancellation-request .step-box .wizzard-line { top: 14px; }
    .portal-mobile-experience .cancellation-request > .row.mt-4 { row-gap: 14px; margin-top: 0 !important; }
    .portal-mobile-experience .cancellation-request :is(.cancel-card,.confirm-card) > .card,
    .portal-mobile-experience .cancellation-request .cancel-card .card { overflow: hidden; border-top: 0 !important; background: #fff; box-shadow: 0 8px 22px rgba(25,53,94,.055); }
    .portal-mobile-experience .cancellation-request .cancel-card .card { padding: 16px !important; }
    .portal-mobile-experience .cancellation-request .cancel-title { display: none; }
    .portal-mobile-experience .cancellation-request .terms-conditions-card { overflow: hidden; margin: 0 !important; border-color: #dfeaf2 !important; background: #fbfdff; box-shadow: none; }
    .portal-mobile-experience .cancellation-request .terms-conditions { display: flex; align-items: center; min-height: 44px; padding: 0 14px; border-bottom: 1px solid #e7eef5; background: #f4f8fc; }
    .portal-mobile-experience .cancellation-request .terms-conditions .title { color: #315b92; font-size: .78rem; font-weight: 900; }
    .portal-mobile-experience .cancellation-request .terms-conditions .title {
        align-self: stretch;
        display: flex;
        align-items: center;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .portal-mobile-experience .cancellation-request .terms-conditions .title::before {
        top: 0;
        right: 0;
        left: auto;
        width: 100%;
        background: linear-gradient(90deg,#2bb0a6,#0a78b8);
    }
    .portal-mobile-experience .cancellation-request.redemption-request .terms-conditions .title::before {
        background: linear-gradient(90deg,#ef3346,#b70e24);
    }
    .portal-mobile-experience .cancellation-request .terms-conditions-card .content { max-height: 172px; margin: 0; padding: 12px 14px; overflow-y: auto; color: #53677e; font-size: .74rem; line-height: 1.95; }
    .portal-mobile-experience .subscription-funding-method { margin-bottom: 16px !important; }
    .portal-mobile-experience .subscription-funding-tabs { gap: 8px; padding: 5px; border: 1px solid #dfe9f4; border-radius: 14px; background: #f6f9fd; }
    .portal-mobile-experience .subscription-funding-tabs > .subscription-funding-tab { min-width: 0; padding: 0 !important; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%; min-height: 44px; padding: 8px !important; color: #58708c; border: 1px solid transparent; border-radius: 10px; background: transparent; font-size: .73rem; font-weight: 800; box-shadow: none; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab svg { flex: 0 0 18px; width: 18px; height: 18px; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab.active { color: #145abc; border-color: #cfe0f6; background: #fff; box-shadow: 0 3px 8px rgba(23,105,224,.1); }
    .portal-mobile-experience .mobile-request-input-row { display: grid; grid-template-columns: minmax(0,1fr); gap: 7px; margin: 14px 0 10px; padding: 13px; border: 1px solid #dce8f5; border-radius: 14px; background: #f7fbff; }
    .portal-mobile-experience .mobile-request-input-row > label { margin: 0; color: #496781; font-size: .75rem; font-weight: 800; }
    .portal-mobile-experience .mobile-request-input-row__control { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; min-width: 0; overflow: hidden; border: 1px solid #cfdfee; border-radius: 10px; background: #fff; }
    .portal-mobile-experience .mobile-request-input-row .cancellation-request-input { width: 100% !important; min-width: 0; height: 44px; margin: 0 !important; padding-inline: 11px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; text-align: right; }
    .portal-mobile-experience .mobile-request-input-row__unit { display: grid; place-items: center; min-width: 52px; padding: 0 9px; color: #1769e0; border-right: 1px solid #dbe7f3; background: #edf5ff; font-size: .72rem; font-weight: 800; }
    .portal-mobile-experience .cancellation-request .form-row { min-height: 48px; padding: 9px 0; }
    .portal-mobile-experience .cancellation-request .form-row > label { font-size: .72rem; }
    .portal-mobile-experience .cancellation-request .cancel-item { font-size: .78rem; }
    .portal-mobile-experience .cancellation-request .form-check { margin: 14px 0 !important; padding: 12px; border-radius: 14px; }
    /* Make consent choices genuinely touchable. Bootstrap's floated checkbox
       leaves only a tiny, awkward target in RTL mobile layouts. */
    .portal-mobile-experience .cancellation-request .form-check {
        display: grid;
        gap: 8px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
    }
    .portal-mobile-experience .cancellation-request .form-check-label {
        display: grid !important;
        grid-template-columns: 22px minmax(0,1fr);
        align-items: start;
        gap: 10px;
        min-height: 56px;
        margin: 0 !important;
        padding: 12px;
        color: #334e6d;
        border: 1px solid #d9e6f4;
        border-radius: 13px;
        background: #f8fbff;
        font-size: .75rem;
        font-weight: 750;
        line-height: 1.9;
        cursor: pointer;
    }
    .portal-mobile-experience .cancellation-request .form-check-input {
        float: none !important;
        width: 22px;
        height: 22px;
        margin: 2px 0 0 !important;
        border-color: #a9c6e5;
        accent-color: #1769e0;
        cursor: pointer;
    }
    .portal-mobile-experience .cancellation-request .form-check-label:has(.form-check-input:checked) {
        color: #174f98;
        border-color: #8eb8e8;
        background: #edf6ff;
        box-shadow: 0 3px 9px rgba(23,105,224,.09);
    }
    .portal-mobile-experience .cancellation-request .subscription-payment-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; padding: 5px; border-color: #dfe9f4; background: #f6f9fd; }
    .portal-mobile-experience .cancellation-request .subscription-payment-tabs .nav-item { min-width: 0; }
    .portal-mobile-experience .cancellation-request .subscription-payment-tabs .payment-tab { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 7px; color: #58708c; border-radius: 10px; font-size: .7rem; font-weight: 800; }
    .portal-mobile-experience .cancellation-request .subscription-payment-tabs .payment-tab svg { width: 17px; height: 17px; }
    .portal-mobile-experience .cancellation-request .subscription-payment-tabs .payment-tab.active { color: #145abc; background: #fff; box-shadow: 0 3px 8px rgba(23,105,224,.1); }
    /* Payment step: the desktop inline bank selector and receipt fields need
       full-width, touch-sized controls on a phone. */
    .portal-mobile-experience .cancellation-request .tab-content { padding-top: 12px; }
    .portal-mobile-experience .cancellation-request .tab-pane > br { display: none; }
    .portal-mobile-experience .cancellation-request .tab-pane > .form-row:has(> ul),
    .portal-mobile-experience .cancellation-request .tab-pane form > .form-row:has(> ul) {
        display: block !important;
        width: 100%;
        min-height: 0;
        padding: 10px 2px;
    }
    .portal-mobile-experience .cancellation-request .tab-pane > .form-row > ul,
    .portal-mobile-experience .cancellation-request .tab-pane form > .form-row > ul {
        width: 100%;
        margin: 0 !important;
        padding-right: 19px;
        color: #38516e;
        font-size: .75rem;
        line-height: 2;
    }
    .portal-mobile-experience .cancellation-request .payment-method-options {
        display: grid;
        grid-template-columns: repeat(auto-fit,minmax(132px,1fr));
        gap: 8px;
        width: 100%;
        margin: 3px 0 0;
    }
    .portal-mobile-experience .cancellation-request .form-row:has(.payment-method-options) {
        grid-template-columns: 1fr;
        gap: 7px;
    }
    .portal-mobile-experience .cancellation-request .payment-method-option {
        display: flex !important;
        align-items: center;
        justify-content: center;
        min-height: 50px;
        min-width: 0;
        margin: 0 !important;
        padding: 9px 7px;
        color: #274766;
        border: 1px solid #dbe7f4;
        border-radius: 12px;
        background: #f8fbff;
        font-size: .73rem !important;
        font-weight: 800 !important;
        white-space: nowrap;
        cursor: pointer;
    }
    .portal-mobile-experience .cancellation-request .payment-method-option .radio_animated {
        appearance: auto;
        flex: 0 0 18px;
        width: 18px;
        height: 18px;
        margin: 0 0 0 10px !important;
        accent-color: #1769e0;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-field {
        display: grid;
        grid-template-columns: minmax(0,1fr);
        gap: 7px;
        margin-top: 14px;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-field > label {
        margin: 0;
        color: #496781;
        font-size: .75rem;
        font-weight: 800;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-field :is(.form-control,.form-select) {
        width: 100% !important;
        min-height: 44px;
        margin: 0 !important;
        border-color: #d4e2f0;
        border-radius: 11px;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-field input[type=file] {
        padding: 8px 10px;
        color: #53677e;
        font-size: .69rem;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-field__label {
        color: #496781;
        font-size: .75rem;
        font-weight: 800;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker {
        position: relative;
        min-height: 56px;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker__input {
        position: absolute;
        inset: 0;
        z-index: 1;
        width: 100%;
        height: 100%;
        margin: 0 !important;
        opacity: 0;
        cursor: pointer;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker label {
        display: grid;
        grid-template-columns: 24px minmax(0,1fr);
        align-items: center;
        column-gap: 8px;
        min-height: 56px;
        margin: 0;
        padding: 8px 12px;
        color: #315b92;
        border: 1px dashed #b9d2ec;
        border-radius: 11px;
        background: #f7fbff;
        cursor: pointer;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker label > i {
        grid-row: span 2;
        display: grid;
        place-items: center;
        width: 24px;
        height: 24px;
        color: #1769e0;
        border-radius: 7px;
        background: #e9f2ff;
        font-size: .76rem;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker label > span {
        overflow: hidden;
        color: #315b92;
        font-size: .74rem;
        font-weight: 800;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker label > small {
        color: #71839a;
        font-size: .62rem;
        line-height: 1.4;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker.is-selected label {
        color: #08783b;
        border-color: #9fd9b6;
        background: #f1fbf5;
    }
    .portal-mobile-experience .cancellation-request .payment-slip-file-picker.is-selected label > i {
        color: #08783b;
        background: #dff5e8;
    }
    .portal-mobile-experience .cancellation-request .btn-link { min-height: 42px; color: #58708c; font-size: .76rem; font-weight: 800; text-decoration: none; }
    /* Keep the request form to one primary surface; tabs and amount fields are controls, not nested cards. */
    .portal-mobile-experience .subscription-funding-tabs { padding: 0; border: 0; border-radius: 0; background: transparent; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab { min-height: 42px; border-color: #e0e9f3; background: #f8fbfe; }
    .portal-mobile-experience .subscription-funding-tabs .funding-tab.active { border-color: #c9dcf4; background: #fff; }
    .portal-mobile-experience .mobile-request-input-row { margin: 15px 0 8px; padding: 0; border: 0; border-radius: 0; background: transparent; }
    .portal-mobile-experience .mobile-request-input-row > label { padding-inline: 2px; }
    /* The outer request wrapper is structural only. Let the inner card be the
       single visible surface, rather than rendering a card inside a card. */
    .portal-mobile-experience .cancellation-request .cancel-card {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
    }
    .portal-mobile-experience .cancellation-request .cancel-card > .card {
        margin: 0 !important;
    }
    .portal-mobile-experience .cancellation-request .confirm-card {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* The conditions card is itself the one surface for the guide; its title
       and body should not look like another nested panel. */
    .portal-mobile-experience .cancellation-request .terms-conditions-card {
        min-height: 0 !important;
        padding: 0 !important;
        border: 1px solid #dfe9f3 !important;
        border-radius: 18px !important;
        background: #fff !important;
        box-shadow: 0 7px 20px rgba(25,53,94,.055) !important;
    }

    /* Each fact remains a single full-width row. The old desktop rule put a
       second, short border under only the value column. */
    .portal-mobile-experience .cancellation-request .form-row {
        border-bottom: 1px solid #e6edf4 !important;
    }
    .portal-mobile-experience .cancellation-request .form-row .cancel-item {
        padding: 0 !important;
        border-bottom: 0 !important;
    }

    @media (min-width: 600px) {
        .portal-mobile-experience { --portal-mobile-gutter: 24px; }
        .portal-mobile-experience .page-body { width: min(100%, 760px); margin-inline: auto !important; }
        .portal-mobile-page-host { width: min(100%, 760px); margin-inline: auto; }
        .portal-mobile-experience .gift-cards-grid,
        .portal-mobile-experience .gift-card-selection__cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    }

    @media (prefers-reduced-motion: reduce) {
        .portal-mobile-experience *, .portal-mobile-header *, .portal-mobile-public-header * {
            scroll-behavior: auto !important; animation-duration: .01ms !important;
            animation-iteration-count: 1 !important; transition-duration: .01ms !important;
        }
    }
}

/* Legacy responsive portal: users outside the mobile rollout keep the
   established desktop information architecture even on a narrow viewport.
   Do not let the feature-only profile markup leak into that experience. */
@media (max-width: 991.98px) {
    /* A user can be entitled to the mobile rollout while explicitly viewing
       the desktop shell. That shell has no legacy marker, so match it by its
       desktop wrapper as well. Keep all profile sections readable in order. */
    #pageWrapper:not(.portal-mobile-experience) .user-profile-title-section {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 8px;
        padding-inline: 12px;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile-title-section .page-main-title {
        margin-bottom: 3px;
        font-size: 1.2rem;
        line-height: 1.55;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile-title-section .page-sub-title {
        margin-bottom: 10px !important;
        font-size: .78rem;
        line-height: 1.7;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile-title-section > .btn {
        align-self: flex-start;
        min-height: 40px;
        padding-inline: 11px;
        font-size: .72rem;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile.d-none.d-md-block {
        display: block !important;
        padding-inline: 12px;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-information-style.d-block.d-md-none,
    #pageWrapper:not(.portal-mobile-experience) .user-profile .col-xl-3.box-col-6 {
        display: none !important;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile :is(.email-right-aside,.email-body,.tab-content,.tab-pane),
    #pageWrapper:not(.portal-mobile-experience) .user-profile .col-xl-9.col-md-12.box-col-12 {
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .col-xl-9.col-md-12.box-col-12 {
        flex: 0 0 100%;
        padding-inline: 0;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .email-wrap > .row {
        margin-inline: 0;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .email-body > .ps-0 {
        padding-inline: 0 !important;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .tab-content > .tab-pane {
        display: block !important;
        opacity: 1 !important;
        margin-bottom: 16px;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .tab-content > .tab-pane:last-child {
        margin-bottom: 0;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .user-information-title {
        padding-top: 14px !important;
        font-size: 1rem;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .email-body .card-body {
        padding: 14px;
    }

    #pageWrapper:not(.portal-mobile-experience) .user-profile .info-item {
        min-height: 0;
        padding: 11px 12px;
        overflow-wrap: anywhere;
    }

    /* Bootstrap adds the backdrop directly below body, while this modal lives
       inside the legacy shell. Keep the confirmation dialog above its own
       backdrop so its actions remain available at a narrow desktop viewport. */
    #pageWrapper.portal-legacy-responsive .modal {
        z-index: 1200;
    }

    body:has(#pageWrapper.portal-legacy-responsive) > .modal-backdrop {
        z-index: 1190;
    }

    .portal-legacy-responsive .page-body > .page-body {
        padding-top: 14px !important;
    }

    .portal-legacy-responsive :is(.account-turnover-page,.request-history-page) {
        margin-top: 14px !important;
        padding-inline: 12px;
    }

    /* An opted-in user can explicitly keep the desktop shell on a narrow
       viewport. That shell intentionally has no legacy class, but its data
       page headers need the same compact desktop treatment. */
    #pageWrapper:not(.portal-mobile-experience) :is(.account-turnover-page,.request-history-page) {
        margin-top: 14px !important;
        padding-inline: 12px;
    }

    .portal-legacy-responsive :is(.account-turnover-page,.request-history-page) .page-main-title,
    .portal-legacy-responsive .user-profile-title-section .page-main-title {
        margin-bottom: 3px;
        font-size: 1.2rem;
        line-height: 1.55;
    }

    #pageWrapper:not(.portal-mobile-experience) :is(.account-turnover-page,.request-history-page) .page-main-title {
        margin-bottom: 3px;
        font-size: 1.2rem;
        line-height: 1.55;
    }

    .portal-legacy-responsive :is(.account-turnover-page,.request-history-page) .page-sub-title,
    .portal-legacy-responsive .user-profile-title-section .page-sub-title {
        margin-bottom: 10px !important;
        font-size: .78rem;
        line-height: 1.7;
    }

    #pageWrapper:not(.portal-mobile-experience) :is(.account-turnover-page,.request-history-page) .page-sub-title {
        margin-bottom: 10px !important;
        font-size: .78rem;
        line-height: 1.7;
    }

    /* Use the original profile structure, not the rollout-only mobile card. */
    .portal-legacy-responsive .user-profile.d-none.d-md-block {
        display: block !important;
        padding-inline: 12px;
    }

    .portal-legacy-responsive .user-information-style.d-block.d-md-none {
        display: none !important;
    }

    .portal-legacy-responsive .user-profile-title-section {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 8px;
        padding-inline: 12px;
    }

    .portal-legacy-responsive .user-profile-title-section > .btn {
        align-self: flex-start;
        min-height: 40px;
        padding-inline: 11px;
        font-size: .72rem;
    }

    /* The old account page is a two-column desktop composition. At this
       breakpoint its sidebar is already visually hidden by the base theme,
       so remove the empty column itself and let the original information
       panel use the whole available width. */
    .portal-legacy-responsive .user-profile .email-wrap > .row {
        margin-inline: 0;
    }

    .portal-legacy-responsive .user-profile .col-xl-3.box-col-6 {
        display: none;
    }

    .portal-legacy-responsive .user-profile .col-xl-9.col-md-12.box-col-12 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        padding-inline: 0;
    }

    .portal-legacy-responsive .user-profile :is(.email-right-aside,.email-body,.tab-content,.tab-pane) {
        min-width: 0;
        width: 100%;
    }

    .portal-legacy-responsive .user-profile .email-body > .ps-0 {
        padding-inline: 0 !important;
    }

    /* There is no usable desktop tab rail at phone width. Keep every original
       section available in document order rather than leaving only the active
       personal-information tab visible. */
    .portal-legacy-responsive .user-profile .tab-content > .tab-pane {
        display: block !important;
        opacity: 1 !important;
        margin-bottom: 16px;
    }

    .portal-legacy-responsive .user-profile .tab-content > .tab-pane:last-child {
        margin-bottom: 0;
    }

    .portal-legacy-responsive .user-profile .user-information-title {
        padding-top: 14px !important;
        font-size: 1rem;
    }

    .portal-legacy-responsive .user-profile .email-body .card-body {
        padding: 14px;
    }

    .portal-legacy-responsive .user-profile .info-item {
        min-height: 0;
        padding: 11px 12px;
        overflow-wrap: anywhere;
    }

    /* Issuance and redemption share a newer input-row component. Its desktop
       rules start at 768px and its feature-mobile rules are opt-in, so give
       the legacy narrow layout an explicit, full-width form treatment too. */
    .portal-legacy-responsive .cancellation-request .mobile-request-input-row {
        display: grid;
        grid-template-columns: minmax(0,1fr);
        gap: 7px;
        margin: 14px 0 10px;
        padding: 13px;
        border: 1px solid #dce8f5;
        border-radius: 14px;
        background: #f7fbff;
    }

    .portal-legacy-responsive .cancellation-request .mobile-request-input-row > label {
        width: auto;
        margin: 0;
        color: #496781;
        font-size: .75rem;
        font-weight: 800;
    }

    .portal-legacy-responsive .cancellation-request .mobile-request-input-row__control {
        display: grid;
        grid-template-columns: minmax(0,1fr) auto;
        align-items: stretch;
        min-width: 0;
        overflow: hidden;
        border: 1px solid #cfdfee;
        border-radius: 10px;
        background: #fff;
    }

    .portal-legacy-responsive .cancellation-request .mobile-request-input-row .cancellation-request-input {
        width: 100% !important;
        min-width: 0;
        height: 44px;
        margin: 0 !important;
        padding-inline: 11px;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        text-align: right;
    }

    .portal-legacy-responsive .cancellation-request .mobile-request-input-row__unit {
        display: grid;
        place-items: center;
        min-width: 52px;
        padding: 0 9px;
        color: #1769e0;
        border-right: 1px solid #dbe7f3;
        background: #edf5ff;
        font-size: .72rem;
        font-weight: 800;
    }

    .portal-legacy-responsive .cancellation-request .form-row {
        display: grid;
        grid-template-columns: minmax(90px,.75fr) minmax(0,1.25fr);
        align-items: center;
        gap: 10px;
        min-height: 52px;
        margin: 0;
        padding: 11px 0;
        border-bottom: 1px solid #edf2f7;
    }

    .portal-legacy-responsive .cancellation-request .form-row > label {
        width: auto;
        margin: 0;
        color: #64748b;
        font-size: .76rem;
    }

    .portal-legacy-responsive .cancellation-request .form-row .cancel-item {
        min-width: 0;
        min-height: 0;
        padding: 0;
        color: #0f172a;
        border-bottom: 0;
        background: transparent;
        font-size: .82rem;
        font-weight: 800;
        text-align: left;
        overflow-wrap: anywhere;
    }

    /* In the legacy (non-mobile-feature) shell, the payment guidance rows
       inherit the two-column form grid. A row containing only guidance must
       span the card, otherwise its text is squeezed into the value column. */
    .portal-legacy-responsive .cancellation-request .tab-pane > .form-row:has(> ul),
    .portal-legacy-responsive .cancellation-request .tab-pane form > .form-row:has(> ul) {
        display: block;
        min-height: 0;
        padding: 12px 2px;
    }

    .portal-legacy-responsive .cancellation-request .tab-pane > .form-row > ul,
    .portal-legacy-responsive .cancellation-request .tab-pane form > .form-row > ul {
        width: 100%;
        margin: 0 !important;
        padding-right: 19px;
        color: #38516e;
        font-size: .78rem;
        line-height: 2;
    }

    /* These fund headers are the desktop page headers in the legacy shell.
       Keep them explicit at the narrow breakpoint instead of replacing them
       with feature-gated mobile headers. */
    .portal-legacy-responsive :is(.cancellation-request,.fund-detail) > .fund-header,
    .portal-legacy-responsive .fund-detail > .fund-header {
        display: flex !important;
        min-height: 0;
        margin-top: 0;
        padding: 14px;
    }

    .portal-legacy-responsive .cancellation-request > .fund-header {
        border-radius: 14px;
    }

    .portal-legacy-responsive .subscription-tedemption-header {
        display: block !important;
        margin-top: 14px !important;
        padding-inline: 12px;
    }

    .portal-legacy-responsive .subscription-tedemption-header .news-portal-main-title {
        display: block !important;
        margin-bottom: 3px;
        font-size: 1.2rem;
        line-height: 1.55;
    }

    .portal-legacy-responsive .subscription-tedemption-header .news-portal-sub-title {
        display: block !important;
        font-size: .78rem;
        line-height: 1.7;
    }

    .portal-legacy-responsive .portal-dashboard-banner {
        display: block !important;
        min-width: 0;
    }

    .portal-legacy-responsive .portal-dashboard-banner .card,
    .portal-legacy-responsive .portal-dashboard-banner .carousel,
    .portal-legacy-responsive .portal-dashboard-banner .carousel-inner,
    .portal-legacy-responsive .portal-dashboard-banner .carousel-item {
        display: block;
    }

    .portal-legacy-responsive .portal-dashboard-banner .carousel-item img {
        display: block;
        width: 100%;
        height: auto;
        min-height: 140px;
        max-height: 250px