/* ==========================================================================
   FLUTTER MOBILE PARTIALS v190 — scoped under body.dz-flutter-mobile
   Source: Flutter Dart screens + Dubuz Theme/Mobile View (merged per screen)
   Emerald: #059669 — maps to var(--primary) when admin green preset active
   ========================================================================== */
@media (max-width: 767px) {
  body.dz-flutter-mobile {
    --fm-emerald: #059669;
    --fm-emerald-light: #ecfdf5;
    --fm-slate-900: #0f172a;
    --fm-slate-800: #1e293b;
    --fm-slate-600: #475569;
    --fm-slate-500: #64748b;
    --fm-slate-400: #94a3b8;
    --fm-slate-200: #e2e8f0;
    --fm-slate-100: #f1f5f9;
    --fm-slate-50: #f8fafc;
    --fm-rose: #f43f5e;
    --fm-rose-dark: #e11d48;
    --fm-blue: #3b82f6;
    --fm-accent: var(--primary, var(--fm-emerald));
    --fm-nav-h: 56px;
    --fm-bottom-nav-h: calc(var(--fm-nav-h, 56px) + env(safe-area-inset-bottom, 0px));
    /* v190: alias shared light theme-tinted price-glass tokens from hd-theme-system.css */
    --fm-glass-bg: var(--price-glass-bg, color-mix(in srgb, var(--primary, #FF4A1C) 18%, rgba(255, 255, 255, 0.78)));
    --fm-glass-border: var(--price-glass-border, color-mix(in srgb, var(--primary, #FF4A1C) 25%, transparent));
    --fm-glass-blur: var(--price-glass-blur, 12px);
    --fm-glass-shadow: var(--price-glass-shadow, 0 4px 14px color-mix(in srgb, var(--primary, #FF4A1C) 14%, rgba(0, 0, 0, 0.1)));
  }

  /* v184: document scroll — never trap pages in 100dvh shells (reels/stories exempt) */
  html:has(body.dz-flutter-mobile:not(.dz-flutter-route-reels):not(.sng-stories-page)),
  html:has(body.dash-body) {
    height: auto !important;
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto !important;
    overscroll-behavior-y: auto;
  }
  body.dz-flutter-mobile:not(.dz-flutter-route-reels):not(.sng-stories-page),
  body.dash-body {
    height: auto !important;
    min-height: 100dvh;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }
  body.dz-flutter-mobile .sng-feed-container,
  body.dz-flutter-mobile .sng-feed-container > main.min-h-screen {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.dz-flutter-mobile .sng-feed-container > main.min-h-screen {
    background: var(--fm-slate-100);
    padding-bottom: calc(var(--fm-bottom-nav-h, 72px) + 16px) !important;
  }

  /* Hide legacy mobile UI when flutter partials active */
  body.dz-flutter-mobile.dz-flutter-route-explore .fm-legacy-marketplace-mobile,
  body.dz-flutter-mobile.dz-flutter-route-explore .mp-workspace,
  body.dz-flutter-mobile.dz-flutter-route-explore #mp-sidebar,
  body.dz-flutter-mobile.dz-flutter-route-explore #mp-list,
  body.dz-flutter-mobile.dz-flutter-route-explore #mp-grid,
  body.dz-flutter-mobile.dz-flutter-route-explore #mp-mobile-grid,
  body.dz-flutter-mobile.dz-flutter-route-explore .mp-top-bar,
  body.dz-flutter-mobile.dz-flutter-route-explore .sng-feed-left,
  body.dz-flutter-mobile.dz-flutter-route-explore .sng-feed-right {
    display: none !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-explore .sng-feed-layout--marketplace {
    display: block !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-explore #mp-feed {
    min-width: 0;
    width: 100%;
  }
  body.dz-flutter-mobile .al-bottom-nav:not(.fm-bottom-nav) {
    display: none !important;
  }

  /* ---- Bottom nav: Flutter labels + Theme active tile ---- */
  .fm-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--fm-slate-200);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .fm-bottom-nav-inner {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    height: var(--fm-nav-h);
    max-width: 500px;
    margin: 0 auto;
    padding: 4px 8px 0;
  }
  .fm-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    text-decoration: none;
    color: var(--fm-slate-400);
    -webkit-tap-highlight-color: transparent;
  }
  .fm-nav-icon {
    width: 32px;
    height: 32px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
  }
  .fm-nav-icon i { font-size: 18px; line-height: 1; }
  .fm-nav-label {
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
  }
  .fm-nav-item.is-active { color: var(--fm-accent); }
  .fm-nav-item.is-active .fm-nav-icon { background: var(--fm-emerald-light); }
  .fm-nav-item.is-active .fm-nav-label { font-weight: 700; }

  /* ---- Home header (Flutter AppBar) ---- */
  .fm-home-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 40;
    background: #fff;
  }
  .fm-home-header-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px 8px 16px;
    min-height: 52px;
  }
  .fm-home-header-title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
  }
  .fm-home-brand {
    color: var(--fm-accent);
    font-size: 24px;
    font-weight: 900;
    letter-spacing: -0.5px;
    text-decoration: none;
    line-height: 1;
  }
  .fm-home-city-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    background: var(--fm-slate-100);
    border: 1px solid var(--fm-slate-200);
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    color: var(--fm-slate-600);
    cursor: pointer;
    font-family: inherit;
    max-width: 130px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .fm-home-city-pill .fa-location-dot { font-size: 10px; color: var(--fm-accent); }
  .fm-home-city-pill .fa-chevron-down { font-size: 10px; color: var(--fm-slate-600); }
  .fm-home-search-expand { flex: 1; min-width: 0; }
  .fm-home-search-form {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 10px;
    background: var(--fm-slate-100);
    border: 1px solid var(--fm-slate-200);
    border-radius: 12px;
  }
  .fm-home-search-form i { font-size: 14px; color: var(--fm-slate-400); }
  .fm-home-search-form input {
    flex: 1;
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    outline: none;
    font-family: inherit;
  }
  .fm-home-header-actions { display: flex; align-items: center; }
  .fm-home-action-group { display: flex; align-items: center; gap: 0; }
  .fm-home-icon-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: var(--fm-slate-100);
    color: var(--fm-slate-800);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    position: relative;
    cursor: pointer;
  }
  .fm-home-icon-btn i { font-size: 14px; }
  .fm-home-msg-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: var(--fm-rose);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    line-height: 16px;
    border-radius: 999px;
    text-align: center;
  }
  .fm-home-header-border { height: 1px; background: var(--fm-slate-200); }
  .fm-home-header-spacer { height: calc(52px + env(safe-area-inset-top, 0px)); }

  /* ---- Home filters (Flutter chips) ---- */
  .fm-home-filters {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: #fff;
    padding: 12px 16px;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
    max-height: 56px;
  }
  .fm-home-filters::-webkit-scrollbar { display: none; }
  .fm-home-filters.is-collapsed {
    max-height: 0;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    pointer-events: none;
  }
  .fm-home-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 8px 16px;
    border-radius: 20px;
    border: 1px solid var(--fm-slate-200);
    background: var(--fm-slate-100);
    color: #334155;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    white-space: nowrap;
  }
  .fm-home-filter-chip i { font-size: 12px; color: var(--fm-slate-600); }
  .fm-home-filter-chip.is-active {
    background: var(--fm-slate-900);
    border-color: var(--fm-slate-900);
    color: #fff;
  }
  .fm-home-filter-chip.is-active i { color: #fff; }

  /* ---- Home feed card (Flutter HomeFeedCard + Theme stats/actions) ---- */
  .fm-home-feed-list { padding-bottom: 8px; }
  .fm-feed-card {
    margin-top: 8px;
    background: #fff;
    border-top: 1px solid var(--fm-slate-200);
    border-bottom: 1px solid var(--fm-slate-200);
  }
  .fm-feed-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 16px 12px;
  }
  .fm-feed-card-user {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex: 1;
    color: inherit;
  }
  a.fm-feed-card-user:hover .fm-feed-card-name { color: var(--primary, #c64949); }
  .fm-feed-card-avatar {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: var(--fm-slate-900);
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fm-feed-card-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .fm-feed-card-name-row { display: flex; align-items: center; gap: 4px; }
  .fm-feed-card-name { font-size: 13px; font-weight: 700; color: var(--fm-slate-900); }
  .fm-feed-card-verified { font-size: 10px; color: var(--fm-blue); }
  .fm-feed-card-time { font-size: 10px; font-weight: 500; color: var(--fm-slate-500); display: block; }
  .fm-feed-card-more { color: var(--fm-slate-400); padding: 4px; }
  .fm-feed-card-more i { font-size: 16px; }
  .fm-feed-card-copy { padding: 0 16px 12px; }
  .fm-feed-card-title {
    display: block;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--fm-slate-800);
    margin-bottom: 4px;
  }
  .fm-feed-card-desc {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--fm-slate-600);
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .fm-feed-card-media-inner {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fm-feed-card-photo { width: 100%; height: 100%; object-fit: cover; }
  .fm-feed-card-placeholder-icon {
    font-size: 80px;
    color: rgba(255, 255, 255, 0.05);
  }
  .fm-feed-card-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    padding: 6px 10px;
    border-radius: 20px;
    background: linear-gradient(135deg, #f59e0b, #f97316);
    color: #fff;
    font-size: 10px;
  }
  .fm-feed-card-price {
    position: absolute;
    bottom: 16px;
    left: 16px;
    z-index: 2;
    padding: 8px 16px;
    border-radius: 12px;
    background: var(--fm-glass-bg);
    border: 1px solid var(--fm-glass-border);
    backdrop-filter: blur(var(--fm-glass-blur));
    -webkit-backdrop-filter: blur(var(--fm-glass-blur));
    box-shadow: var(--fm-glass-shadow);
    color: var(--price-glass-text, color-mix(in srgb, var(--primary, #FF4A1C) 82%, #000));
    font-size: 16px;
    font-weight: 900;
    letter-spacing: 0.5px;
  }
  .fm-feed-card-stats {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px;
    border-bottom: 1px solid var(--fm-slate-100);
    font-size: 11px;
    color: var(--fm-slate-500);
    font-weight: 500;
  }
  .fm-feed-card-stats-left { display: flex; align-items: center; gap: 6px; font-weight: 600; }
  .fm-feed-card-stats-heart {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--fm-rose);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .fm-feed-card-stats-heart i { font-size: 8px; }
  .fm-feed-card-stats-right { display: flex; gap: 12px; }
  .fm-feed-card-actions {
    display: flex;
    gap: 8px;
    padding: 12px;
  }
  .fm-feed-card-action {
    flex: 1;
    height: 40px;
    border: none;
    border-radius: 12px;
    background: var(--fm-slate-50);
    color: var(--fm-slate-600);
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    font-family: inherit;
  }
  .fm-feed-card-action i { font-size: 14px; }
  .fm-feed-card-action.is-saved {
    background: #fff1f2;
    color: var(--fm-rose-dark);
  }

  /* ---- Feed comments bottom sheet (above fm-bottom-nav z-index:50) ---- */
  .fm-feed-comments-sheet {
    position: fixed;
    inset: 0;
    z-index: 10050;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    pointer-events: auto;
  }
  .fm-feed-comments-sheet-inner {
    background: #fff;
    width: 100%;
    max-width: 520px;
    max-height: min(72dvh, 640px);
    min-height: 42dvh;
    border-radius: 18px 18px 0 0;
    padding: 8px 16px max(12px, env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25);
    pointer-events: auto;
  }
  .fm-feed-comments-sheet-handle {
    width: 40px;
    height: 4px;
    border-radius: 4px;
    background: var(--fm-slate-200);
    margin: 4px auto 10px;
    flex-shrink: 0;
  }
  .fm-feed-comments-sheet-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    flex-shrink: 0;
  }
  .fm-feed-comments-sheet-header strong { font-size: 15px; color: var(--fm-slate-900); }
  .fm-feed-comments-close {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: var(--fm-slate-100);
    color: var(--fm-slate-600);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
  }
  .fm-feed-comments-list {
    flex: 1;
    overflow-y: auto;
    min-height: 80px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .fm-feed-comment-item {
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
    font-size: 13px;
  }
  .fm-feed-comment-av {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
  }
  .fm-feed-comment-body strong { display: block; font-size: 13px; color: var(--fm-slate-900); }
  .fm-feed-comment-body small { color: var(--fm-slate-400); font-size: 11px; }
  .fm-feed-comment-body p {
    margin: 2px 0 0;
    color: var(--fm-slate-600);
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
  }
  .fm-feed-comments-empty {
    font-size: 13px;
    color: var(--fm-slate-500);
    text-align: center;
    padding: 16px 0;
  }
  .fm-feed-comments-form {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--fm-slate-200);
    flex-shrink: 0;
  }
  .fm-feed-comments-input {
    flex: 1;
    border: 1px solid var(--fm-slate-200);
    border-radius: 20px;
    padding: 8px 14px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
    background: var(--fm-slate-50);
    color: var(--fm-slate-900);
  }
  .fm-feed-comments-post {
    border: 0;
    border-radius: 20px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    background: var(--fm-accent);
    color: #fff;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .fm-feed-comments-signin {
    text-align: center;
    font-size: 12px;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--fm-slate-200);
  }
  .fm-feed-comments-signin a { color: var(--fm-accent); font-weight: 600; text-decoration: none; }
  .fm-feed-comments-signin span { color: var(--fm-slate-500); }
  .fm-feed-report-overlay { z-index: 10060 !important; }
  .fm-feed-card-actions,
  .fm-feed-card-stats-right span[style*="cursor"] {
    position: relative;
    z-index: 2;
  }
  .fm-feed-card-action,
  .fm-feed-card-more {
    position: relative;
    z-index: 2;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  .fm-home-feed-empty {
    text-align: center;
    padding: 48px 24px;
    color: var(--fm-slate-500);
  }
  .fm-home-feed-empty i { font-size: 48px; margin-bottom: 8px; opacity: 0.5; }
  .fm-home-feed-empty-btn {
    margin-top: 12px;
    padding: 10px 20px;
    border: none;
    border-radius: 12px;
    background: var(--fm-accent);
    color: #fff;
    font-weight: 600;
    font-size: 13px;
  }

  /* ---- Explore page (Flutter explore_page.dart) ---- */
  body.dz-flutter-mobile.dz-flutter-route-explore .sng-feed-container > main.min-h-screen {
    /* No global mtopbar on explore — drop legacy topbar offset (was ~52px gap above search) */
    padding-top: 0 !important;
    padding-bottom: calc(var(--fm-nav-h) + env(safe-area-inset-bottom, 0px)) !important;
  }
  .fm-explore-page {
    background: var(--fm-slate-100);
    min-height: calc(100dvh - var(--fm-nav-h));
  }
  .fm-explore-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: calc(8px + env(safe-area-inset-top, 0px)) 16px 12px;
    background: #fff;
  }
  .fm-explore-search {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 12px;
    background: var(--fm-slate-100);
    border-radius: 12px;
  }
  .fm-explore-search i { font-size: 14px; color: var(--fm-slate-400); }
  .fm-explore-search input {
    flex: 1;
    border: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    outline: none;
    font-family: inherit;
  }
  .fm-explore-icon-btn {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    border: none;
    background: var(--fm-slate-100);
    color: var(--fm-slate-800);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
    flex-shrink: 0;
  }
  .fm-explore-icon-btn i { font-size: 14px; }
  .fm-explore-categories {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
    background: #fff;
    height: 60px;
    transition: height 0.3s ease, opacity 0.3s ease;
  }
  .fm-explore-categories.is-collapsed { height: 0; opacity: 0; overflow: hidden; }
  .fm-explore-categories::-webkit-scrollbar { display: none; }
  .fm-explore-cat-tab {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 16px;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--fm-slate-500);
    font-size: 10px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
  }
  .fm-explore-cat-tab i { font-size: 16px; }
  .fm-explore-cat-tab.is-active {
    color: var(--fm-accent);
    border-bottom-color: var(--fm-accent);
    font-weight: 700;
  }
  .fm-explore-cat-tab.is-active + span,
  .fm-explore-cat-tab.is-active { color: var(--fm-slate-900); }
  .fm-explore-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px;
    background: #fff;
    border-bottom: 1px solid var(--fm-slate-200);
  }
  .fm-explore-results-count { font-size: 11px; font-weight: 700; color: var(--fm-slate-500); }
  .fm-explore-view-toggle {
    display: flex;
    padding: 2px;
    border-radius: 8px;
    border: 1px solid var(--fm-slate-200);
    background: #fff;
  }
  .fm-explore-view-btn {
    border: none;
    background: transparent;
    padding: 6px 10px;
    border-radius: 6px;
    color: var(--fm-slate-400);
    cursor: pointer;
  }
  .fm-explore-view-btn i { font-size: 12px; }
  .fm-explore-view-btn.is-active {
    background: var(--fm-slate-900);
    color: #fff;
  }
  .fm-explore-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2px;
    padding: 0;
    width: 100%;
  }
  .fm-explore-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
  }
  .fm-explore-page[data-fm-view="grid"] .fm-explore-list { display: none !important; }
  .fm-explore-page[data-fm-view="list"] .fm-explore-grid { display: none !important; }
  .fm-explore-page[data-fm-view="list"] .fm-explore-list { display: flex !important; }
  .fm-explore-empty { grid-column: 1 / -1; padding: 32px; text-align: center; color: var(--fm-slate-500); font-size: 13px; }

  .fm-explore-card--grid {
    background: #fff;
    border: 1px solid var(--fm-slate-200);
    overflow: hidden;
    color: inherit;
    min-width: 0;
    width: 100%;
  }
  .fm-explore-card-media {
    position: relative;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .fm-explore-card-media img { width: 100%; height: 100%; object-fit: cover; }
  .fm-explore-card-placeholder { font-size: 40px; color: rgba(255,255,255,0.05); }
  .fm-explore-card-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 3px 6px;
    border-radius: 4px;
    background: var(--fm-accent);
    color: #fff;
    font-size: 8px;
    font-weight: 900;
  }
  .fm-explore-card-price {
    position: absolute;
    bottom: 8px;
    left: 8px;
    z-index: 2;
    padding: 4px 8px;
    border-radius: 8px;
    background: var(--fm-glass-bg);
    border: 1px solid var(--fm-glass-border);
    backdrop-filter: blur(var(--fm-glass-blur));
    -webkit-backdrop-filter: blur(var(--fm-glass-blur));
    box-shadow: var(--fm-glass-shadow);
    color: var(--price-glass-text, color-mix(in srgb, var(--primary, #FF4A1C) 82%, #000));
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.02em;
  }
  .fm-explore-card-body { padding: 10px; }
  .fm-explore-card-title {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--fm-slate-800);
    line-height: 1.2;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .fm-explore-card-desc {
    margin: 4px 0 0;
    font-size: 11px;
    color: var(--fm-slate-500);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .fm-explore-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin: 6px 0 0;
    font-size: 10px;
    color: var(--fm-slate-400);
    min-width: 0;
  }
  .fm-explore-card-loc {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .fm-explore-card-loc i { font-size: 9px; color: var(--fm-slate-400); flex-shrink: 0; }
  .fm-explore-card-time {
    flex-shrink: 0;
    font-size: 10px;
    color: var(--fm-slate-400);
  }
  .fm-explore-card--list {
    display: flex;
    background: #fff;
    border: 1px solid var(--fm-slate-200);
    color: inherit;
  }
  .fm-explore-card-list-media {
    width: 140px;
    height: 120px;
    flex-shrink: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .fm-explore-card-list-media img { width: 100%; height: 100%; object-fit: cover; }
  .fm-explore-card-list-body { padding: 12px; min-width: 0; flex: 1; }
  .fm-explore-card-list-price {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 900;
    color: var(--fm-slate-900);
  }
  .fm-explore-card-list-title {
    margin: 0 0 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--fm-slate-800);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .fm-explore-card-list-desc {
    margin: 0 0 8px;
    font-size: 11px;
    color: var(--fm-slate-500);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .fm-explore-card-list-meta {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    font-size: 10px;
    color: var(--fm-slate-400);
    min-width: 0;
  }
  .fm-explore-card-list-meta i { font-size: 9px; color: var(--fm-slate-400); flex-shrink: 0; }
  .fm-explore-card-list-meta span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Hide legacy mobile UI when flutter partials active */
  body.dz-flutter-mobile.dz-flutter-route-partners .fm-legacy-partners-mobile,
  body.dz-flutter-mobile.dz-flutter-route-partners .biz-status-bar,
  body.dz-flutter-mobile.dz-flutter-route-partners .biz-list-wrap,
  body.dz-flutter-mobile.dz-flutter-route-partners #biz-grid-wrap,
  body.dz-flutter-mobile.dz-flutter-route-partners #biz-sidebar { display: none !important; }
  body.dz-flutter-mobile.dz-flutter-route-account .fm-legacy-account-mobile,
  body.dz-flutter-mobile.dz-flutter-route-account .dash-topbar,
  body.dz-flutter-mobile.dz-flutter-route-account .dash-page-head,
  body.fm-account-hub-page .dash-topbar,
  body.fm-account-hub-page .dash-page-head { display: none !important; }
  body.dz-flutter-mobile.dz-flutter-route-account .dash-content,
  body.fm-account-hub-page .dash-content {
    padding: 0 0 calc(var(--fm-bottom-nav-h, 72px) + 16px) !important;
    flex: none !important;
    height: auto !important;
    overflow: visible !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-account .dash-main,
  body.fm-account-hub-page .dash-main {
    height: auto !important;
    max-height: none !important;
    min-height: 100dvh;
    overflow: visible !important;
    padding-bottom: 0 !important;
  }

  /* ---- Account sub-pages (Flutter back header + slate canvas) ---- */
  .fm-account-subheader {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
    background: #fff;
    border-bottom: 1px solid var(--fm-slate-200);
    position: sticky;
    top: 0;
    z-index: 30;
  }
  .fm-account-subheader-back {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--fm-slate-100);
    color: var(--fm-slate-800);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
  }
  .fm-account-subheader-title {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--fm-slate-900);
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-topbar,
  body.dz-flutter-mobile.dz-account-subpage .dash-sidebar,
  body.dz-flutter-mobile.dz-account-subpage .dash-overlay,
  body.dz-flutter-mobile.dz-account-subpage .dash-page-head,
  body.dz-flutter-mobile.dz-account-subpage .dz-account-subheader {
    display: none !important;
  }
  body.dz-flutter-mobile.dz-account-subpage .fm-account-subheader { display: flex !important; }
  body.dz-flutter-mobile.dz-account-subpage .dash-main {
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    max-height: none !important;
    min-height: 100dvh;
    overflow: visible !important;
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-content {
    padding: 0 0 calc(var(--fm-bottom-nav-h, 72px) + 16px) !important;
    max-width: none;
    background: var(--fm-slate-100);
    flex: none !important;
    height: auto !important;
    overflow: visible !important;
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-card,
  body.dz-flutter-mobile.dz-account-subpage .acct-section,
  body.dz-flutter-mobile.dz-account-subpage .dash-info-grid,
  body.dz-flutter-mobile.dz-account-subpage .pb-page,
  body.dz-flutter-mobile.dz-account-subpage .dash-panel-stack {
    margin: 12px 0 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    box-shadow: none;
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-tabs {
    margin: 12px 0 0;
    padding: 0 12px;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-tab {
    flex-shrink: 0;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-tab.active {
    background: var(--fm-accent);
    color: #fff;
    border-color: var(--fm-accent);
  }
  body.dz-flutter-mobile.dz-account-subpage .dash-alert {
    margin: 12px;
    border-radius: 12px;
  }
  body.dz-flutter-mobile.dz-account-subpage .mx-3.lg\:mx-0,
  body.dz-flutter-mobile.dz-account-subpage #saved-grid-items {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* ---- Seller profile (/profile/{user}) — Theme HTML + fm polish ---- */
  body.dz-flutter-mobile.dz-flutter-route-seller .al-topbar,
  body.dz-flutter-mobile.dz-flutter-route-seller .al-topbar-spacer-block,
  body.dz-flutter-mobile.dz-flutter-route-seller .sng-header {
    display: none !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-seller .sng-feed-container > main.min-h-screen {
    padding-bottom: calc(var(--fm-nav-h) + env(safe-area-inset-bottom, 0px)) !important;
    background: var(--fm-slate-100);
  }
  body.dz-flutter-mobile.dz-flutter-route-seller .dz-seller-profile-header {
    background: #fff;
    border-bottom: 1px solid var(--fm-slate-200);
  }
  body.dz-flutter-mobile.dz-flutter-route-seller .dz-seller-profile-title {
    font-weight: 900;
    color: var(--fm-slate-900);
  }
  body.dz-flutter-mobile.dz-flutter-route-seller .dz-seller-profile-icon-btn {
    background: var(--fm-slate-100);
    color: var(--fm-slate-800);
  }
  body.dz-flutter-mobile.dz-flutter-route-seller .dz-seller-profile-btn--primary {
    background: var(--fm-accent);
    border-color: var(--fm-accent);
  }

  /* ---- Partners infinite scroll footer ---- */
  .fm-partners-scroll-end { padding: 12px; text-align: center; }
  .fm-partners-scroll-end p { margin: 0; font-size: 12px; color: var(--fm-slate-500); }
  #fm-partners-scroll-loader { padding: 16px; text-align: center; color: var(--fm-slate-500); font-size: 12px; }

  /* ---- Ad details / business / chat deeper polish ---- */
  body.dz-flutter-mobile.dz-flutter-route-listing .ld-card {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
  body.dz-flutter-mobile .dz-partner-mobile-header {
    position: sticky;
    top: 0;
    z-index: 20;
  }
  body.dz-flutter-mobile.dz-flutter-route-messages .chat-sidebar {
    border-right: 0;
  }

  /* ---- Partners / B2B directory ---- */
  .fm-partners-page { background: var(--fm-slate-50); padding-bottom: calc(var(--fm-nav-h) + 12px); }
  .fm-partners-header { background: #fff; padding: 8px 20px 0; }
  .fm-partners-header-row { display: flex; align-items: center; justify-content: space-between; }
  .fm-partners-header-actions { display: flex; align-items: center; gap: 8px; }
  .fm-partners-title { margin: 0; font-size: 20px; font-weight: 900; letter-spacing: -0.5px; color: var(--fm-slate-900); }
  .fm-partners-search-toggle {
    width: 36px; height: 36px; border-radius: 50%; border: 0;
    background: var(--fm-slate-100); color: var(--fm-slate-800);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .fm-partners-search {
    display: flex; align-items: center; gap: 8px; margin-top: 12px;
    height: 40px; padding: 0 12px; border-radius: 12px;
    background: var(--fm-slate-50); border: 1px solid var(--fm-slate-200);
  }
  .fm-partners-search i { color: var(--fm-slate-400); font-size: 14px; }
  .fm-partners-search input {
    flex: 1; border: 0; background: transparent; font-size: 12px; font-weight: 500;
    color: var(--fm-slate-800); outline: none;
  }
  .fm-partners-cats {
    display: flex;
    gap: 0;
    overflow-x: auto;
    margin-top: 8px;
    height: 60px;
    scrollbar-width: none;
  }
  .fm-partners-cats::-webkit-scrollbar { display: none; }
  .fm-partners-cat-tab {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 14px;
    min-width: 64px;
    text-decoration: none;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--fm-slate-500);
    font-size: 10px;
    font-weight: 600;
    font-family: inherit;
  }
  .fm-partners-cat-tab i { font-size: 16px; line-height: 1; }
  .fm-partners-cat-tab span {
    max-width: 72px;
    text-align: center;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-partners-cat-tab.is-active {
    color: var(--fm-accent);
    border-bottom-color: var(--fm-accent);
    font-weight: 700;
  }
  .fm-partners-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    background: var(--fm-slate-50);
    border-bottom: 1px solid var(--fm-slate-200);
  }
  .fm-partners-results-count { font-size: 11px; font-weight: 700; color: var(--fm-slate-600); }
  .fm-partners-view-toggle {
    display: flex;
    padding: 2px;
    border-radius: 8px;
    border: 1px solid var(--fm-slate-200);
    background: #fff;
  }
  .fm-partners-view-btn {
    border: none;
    background: transparent;
    padding: 6px 10px;
    border-radius: 6px;
    color: var(--fm-slate-400);
    cursor: pointer;
  }
  .fm-partners-view-btn i { font-size: 12px; }
  .fm-partners-view-btn.is-active {
    background: var(--fm-slate-900);
    color: #fff;
  }
  .fm-partners-list { display: flex; flex-direction: column; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 12px;
    background: var(--fm-slate-50);
  }
  .fm-partners-card {
    display: flex; gap: 16px; padding: 16px 20px; background: #fff;
    border-bottom: 1px solid var(--fm-slate-100); text-decoration: none; color: inherit;
  }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card {
    flex-direction: column;
    gap: 0;
    padding: 0;
    border: 1px solid var(--fm-slate-200);
    border-radius: 14px;
    overflow: hidden;
    border-bottom: 1px solid var(--fm-slate-200);
  }
  .fm-partners-card-media { display: none; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-media {
    display: block;
    position: relative;
    height: 96px;
    background: var(--fm-slate-100);
  }
  .fm-partners-card-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .fm-partners-card-cover--empty {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--fm-slate-100);
  }
  .fm-partners-card-media-logo {
    position: absolute;
    left: 6px;
    top: 6px;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    overflow: hidden;
    border: 1.5px solid #fff;
    box-shadow: 0 1px 4px rgba(0,0,0,.15);
    background: var(--fm-slate-900);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fm-partners-card-media-logo img { width: 100%; height: 100%; object-fit: cover; }
  .fm-partners-card-verified {
    position: absolute;
    left: 6px;
    bottom: 6px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    color: var(--fm-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
  }
  .fm-partners-card-logo {
    width: 56px; height: 56px; border-radius: 14px; overflow: hidden; flex-shrink: 0;
    background: var(--fm-slate-900); display: flex; align-items: center; justify-content: center;
  }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-logo { display: none; }
  .fm-partners-card-logo img { width: 100%; height: 100%; object-fit: cover; }
  .fm-partners-card-initials { color: #fff; font-weight: 900; font-size: 16px; }
  .fm-partners-card-body { min-width: 0; flex: 1; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-body { padding: 10px; }
  .fm-partners-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-head {
    align-items: center;
    gap: 4px;
  }
  .fm-partners-card-name { margin: 0; font-size: 14px; font-weight: 900; color: var(--fm-slate-900); flex: 1; min-width: 0; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-name {
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-partners-card-verified-inline {
    color: var(--fm-accent);
    font-size: 12px;
    flex-shrink: 0;
  }
  .fm-partners-page[data-fm-view="list"] .fm-partners-card-verified-inline { display: none; }
  .fm-partners-card-rating { font-size: 11px; font-weight: 700; color: var(--fm-slate-600); white-space: nowrap; flex-shrink: 0; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-rating { font-size: 10px; }
  .fm-partners-card-rating i { color: #fbbf24; font-size: 10px; }
  .fm-partners-card-cat { margin: 4px 0 0; font-size: 11px; font-weight: 600; color: var(--fm-accent); }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-cat {
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-partners-card-loc { margin: 4px 0 8px; font-size: 11px; color: var(--fm-slate-500); }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-card-loc {
    font-size: 10px;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-partners-card-loc i { color: var(--fm-slate-400); font-size: 10px; }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-badge { display: none; }
  .fm-partners-badge {
    display: inline-block; padding: 4px 8px; border-radius: 6px;
    font-size: 9px; font-weight: 900; letter-spacing: 0.3px;
  }
  .fm-partners-badge--emerald { background: var(--fm-emerald-light); color: var(--fm-accent); }
  .fm-partners-badge--blue { background: #eff6ff; color: #2563eb; }
  .fm-partners-badge--muted { background: var(--fm-slate-100); color: var(--fm-slate-600); }
  .fm-partners-empty { padding: 48px 20px; text-align: center; color: var(--fm-slate-500); }
  .fm-partners-page[data-fm-view="grid"] .fm-partners-empty { grid-column: 1 / -1; }
  .fm-partners-empty i { font-size: 32px; margin-bottom: 12px; opacity: 0.4; }

  /* ---- Account profile hub ---- */
  /* ---- Account hub (Theme User Account.html, mobile ≤767px) ---- */
  .fm-account-page {
    min-height: 0;
    background: var(--bg-page, #f0f2f5);
    padding-bottom: 0;
  }
  .fm-account-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px 10px;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
    background: var(--bg-card, #fff);
    border-bottom: 1px solid var(--border, #e5e7eb);
    position: sticky;
    top: 0;
    z-index: 30;
  }
  .fm-account-header-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--text-main, #111827);
  }
  .fm-account-header-actions { position: relative; }
  .fm-account-bell {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 999px;
    border: 0;
    background: var(--bg-page, #f3f4f6);
    color: var(--text-main, #1f2937);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }
  .fm-account-bell-badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--primary);
    color: var(--color-on-primary, #fff);
    font-size: 9px;
    font-weight: 800;
    line-height: 16px;
    text-align: center;
  }
  .fm-account-header-actions .dash-dropdown-menu {
    right: 0;
    left: auto;
    top: calc(100% + 8px);
  }
  .fm-account-scroll {
    padding: 14px 14px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .fm-account-profile-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--border, #e5e7eb);
    background: var(--bg-card, #fff);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  }
  .fm-account-avatar-wrap { position: relative; flex-shrink: 0; }
  .fm-account-avatar {
    width: 64px !important;
    height: 64px !important;
    border: 2px solid var(--primary) !important;
  }
  .fm-account-online {
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: var(--color-success, #22c55e);
    border: 2px solid var(--bg-card, #fff);
  }
  .fm-account-profile-meta { min-width: 0; flex: 1; }
  .fm-account-profile-name {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--text-main, #111827);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-account-email {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--text-muted, #6b7280);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .fm-account-rating {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-muted, #6b7280);
  }
  .fm-account-rating-score {
    color: var(--warning, #d97706);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .fm-account-rating-score i { color: #fbbf24; }
  .fm-account-verified {
    color: var(--primary);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .fm-account-section-label {
    margin: 6px 2px 0;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted, #9ca3af);
  }
  .fm-account-nav-card {
    border-radius: 16px;
    border: 1px solid var(--border, #e5e7eb);
    background: var(--bg-card, #fff);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  }
  .fm-account-nav-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid color-mix(in srgb, var(--border, #e5e7eb) 80%, transparent);
  }
  .fm-account-nav-row:last-child { border-bottom: 0; }
  .fm-account-nav-row:active { background: var(--bg-page, #f9fafb); }
  .fm-account-nav-ico {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 15px;
  }
  .fm-account-nav-ico--primary { background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
  .fm-account-nav-ico--success { background: color-mix(in srgb, var(--color-success, #16a34a) 14%, transparent); color: var(--color-success, #16a34a); }
  .fm-account-nav-ico--rose { background: color-mix(in srgb, #db2777 12%, transparent); color: #db2777; }
  .fm-account-nav-ico--purple { background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); }
  .fm-account-nav-ico--amber { background: color-mix(in srgb, var(--warning, #d97706) 14%, transparent); color: var(--warning, #d97706); }
  .fm-account-nav-ico--orange { background: color-mix(in srgb, #ea580c 12%, transparent); color: #ea580c; }
  .fm-account-nav-ico--sky { background: color-mix(in srgb, #0ea5e9 12%, transparent); color: #0ea5e9; }
  .fm-account-nav-ico--slate { background: var(--bg-page, #f3f4f6); color: var(--text-muted, #64748b); }
  .fm-account-nav-ico--danger { background: color-mix(in srgb, #ef4444 10%, transparent); color: #dc2626; }
  .fm-account-nav-text { min-width: 0; flex: 1; }
  .fm-account-nav-title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: 800;
    color: var(--text-main, #111827);
  }
  .fm-account-nav-desc {
    display: block;
    margin-top: 2px;
    font-size: 11px;
    color: var(--text-muted, #6b7280);
  }
  .fm-account-nav-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-success, #16a34a) 16%, transparent);
    color: var(--color-success, #16a34a);
    font-size: 10px;
    font-weight: 800;
  }
  .fm-account-nav-pill--biz,
  .fm-account-nav-pill--pro {
    background: color-mix(in srgb, var(--primary) 14%, transparent);
    color: var(--primary);
  }
  .fm-account-nav-pill--alert {
    background: color-mix(in srgb, var(--primary) 16%, transparent);
    color: var(--primary);
  }
  .fm-account-nav-chev {
    color: var(--text-muted, #9ca3af);
    font-size: 12px;
    flex-shrink: 0;
  }
  .fm-account-nav-badge {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 20px;
    text-align: center;
    flex-shrink: 0;
  }
  .fm-account-nav-row--danger .fm-account-nav-title { color: #dc2626; }
  .fm-account-logout-form { margin: 4px 0 0; }
  .fm-account-logout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid color-mix(in srgb, #ef4444 22%, var(--border, #e5e7eb));
    background: color-mix(in srgb, #ef4444 8%, var(--bg-card, #fff));
    color: #dc2626;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
  }
  .fm-account-logout:active { transform: scale(0.99); }

  /* ---- Reels route: full-bleed ---- */
  body.dz-flutter-mobile.dz-flutter-route-reels .sng-feed-container > main.min-h-screen {
    padding-bottom: 0 !important; background: #000;
  }

  /* ---- Stories page: listing card docked above bottom nav (mobile ≤767px) ---- */
  @media (max-width: 767px) {
    body.sng-stories-page.dz-flutter-route-reels .sng-reels-listing-dock {
      max-width: none;
    }
    body.sng-stories-page.dz-flutter-route-reels .sng-reels-listing-img {
      object-fit: cover;
    }
  }

  /* ---- Listing detail mobile polish ---- */
  body.dz-flutter-mobile.dz-flutter-route-listing .ld-page { padding-bottom: calc(var(--fm-nav-h) + 72px); }
  body.dz-flutter-mobile.dz-flutter-route-listing .ld-gallery-overlay-btn { backdrop-filter: blur(8px); }

  /* ---- Login mobile ---- */
  body.dz-flutter-mobile.dz-flutter-route-login .al-auth-page {
    padding-bottom: calc(var(--fm-nav-h) + env(safe-area-inset-bottom, 0px));
  }
  body.dz-flutter-mobile.dz-flutter-route-login .al-auth-card {
    border-radius: 2rem; box-shadow: 0 24px 60px rgba(15,23,42,0.08);
  }
  body.dz-flutter-mobile.dz-flutter-route-login .al-auth-card-logo,
  body.dz-flutter-mobile.dz-flutter-route-register .al-auth-card-logo {
    background: linear-gradient(to top right, var(--fm-accent), #14b8a6);
  }
  body.dz-flutter-mobile.dz-flutter-route-register .al-auth-page {
    padding-bottom: calc(var(--fm-nav-h) + env(safe-area-inset-bottom, 0px));
  }
  body.dz-flutter-mobile.dz-flutter-route-register .al-auth-card {
    border-radius: 2rem;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.08);
  }

  /* ---- Messages hub mobile ---- */
  body.dz-flutter-mobile.dz-flutter-route-messages .dash-main {
    display: flex !important;
    flex-direction: column !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-messages .dash-content-messages {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    padding: 0 !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-messages .messaging-wrapper {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
  }
  body.dz-flutter-mobile.dz-flutter-route-messages .chat-pills-bar { padding-top: 8px; }
  @media (max-width: 767px) {
    body.dz-flutter-mobile.dz-flutter-route-messages .messaging-wrapper.erp-msg-has-thread {
      height: 100% !important;
    }
  }

  /* ---- Modals / notification sheets above bottom nav ---- */
  .dash-notif-menu.show,
  #fmAccountNotifMenu.show,
  #dashNotifMenu.show {
    display: flex !important;
  }
  .fm-account-header-actions .dash-notif-menu,
  .dash-notif-menu.show {
    z-index: 200 !important;
  }
  .dash-notif-scroll {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* ---- Business storefront mobile ---- */
  body.dz-flutter-mobile .dz-partner-mobile-header { background: #fff; border-bottom: 1px solid var(--fm-slate-200); }
}

@media (min-width: 768px) {
  .fm-bottom-nav,
  .fm-home-header,
  .fm-home-header-spacer,
  .fm-home-feed,
  .fm-explore-page,
  .fm-partners-page,
  .fm-account-page { display: none !important; }
}

/* ---- Quick post full page (mobile ≤767px) ---- */
@media (max-width: 767px) {
  body.dz-quick-post-page .sng-mtopbar,
  body.dz-quick-post-page .sng-mtopbar-spacer,
  body.dz-quick-post-page .sng-tab-bar,
  body.dz-quick-post-page .al-topbar,
  body.dz-quick-post-page .al-topbar-spacer-block,
  body.dz-quick-post-page .fm-bottom-nav,
  body.dz-quick-post-page .dz-mtopbar,
  body.dz-quick-post-page #pwaInstallBanner {
    display: none !important;
  }

  body.dz-quick-post-page .sng-feed-container {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
  }

  body.dz-quick-post-page main.min-h-screen {
    min-height: 100dvh;
    padding: 0 !important;
  }

  .sng-qp-wrap--page {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--fm-slate-100, var(--bg-page, #f1f5f9));
  }

  .sng-qp-page {
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    width: 100%;
  }

  .sng-qp-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    padding-top: calc(12px + env(safe-area-inset-top, 0px));
    background: #fff;
    border-bottom: 1px solid var(--fm-slate-200, var(--border, #e2e8f0));
    position: sticky;
    top: 0;
    z-index: 40;
    flex-shrink: 0;
  }

  .sng-qp-wrap--page .sng-qp-back {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 0;
    background: var(--fm-slate-100, var(--bg-page, #f1f5f9));
    color: var(--fm-slate-800, var(--text-main, #1e293b));
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
  }

  .sng-qp-page-title {
    margin: 0;
    flex: 1;
    text-align: center;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--fm-slate-900, var(--text-main, #0f172a));
  }

  .sng-qp-cancel {
    border: 0;
    background: transparent;
    color: var(--primary, var(--fm-accent, #c64949));
    font-size: 14px;
    font-weight: 700;
    padding: 6px 4px;
    cursor: pointer;
    flex-shrink: 0;
  }

  .sng-qp-page-scroll {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .sng-qp-wrap--page .sng-qp-body {
    padding: 16px;
    max-width: 42rem;
    margin: 0 auto;
  }

  .sng-qp-wrap--page .sng-qp-toast {
    margin: 12px 16px 0;
  }
}
