/* ═══════════════════════════════════════════════════════════════════════
   DAWARCY POS — mobile-fix.css
   Load AFTER css/mobile.css:
     <link rel="stylesheet" href="css/style.css?v=191">
     <link rel="stylesheet" href="css/mobile.css?v=24">
     <link rel="stylesheet" href="css/mobile-fix.css?v=1">

   Additive only. Does not modify style.css or mobile.css.
   Breakpoint standardised on 768px (not 767) to close the
   fractional-DPR gap between the two existing sheets.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 0. GLOBAL GUARDS ─────────────────────────────────────────────────
   Kills the horizontal bleed at the root. `overflow-x:clip` on <html>
   is preferred over `hidden` because `hidden` on <html> silently makes
   position:sticky stop working inside descendants. */
@media (max-width: 768px) {
  html {
    overflow-x: clip;
    -webkit-text-size-adjust: 100%;   /* stops Safari inflating text after rotate */
  }
  body {
    overflow-x: clip !important;
    min-width: 0 !important;
  }

  /* Nothing may exceed the viewport. Broad safety net for the ~20 inline
     min-width declarations in the HTML that mobile.css does not target. */
  .app-shell, .app-body, .main-content,
  .card, .card-body, .card-header,
  .table-wrap, .panel, section, .modal {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Grid and flex children default to min-width:auto, which refuses to
     shrink below content width. This is the single most common cause of
     grid overflow and must be reset explicitly. */
  .kpi-grid > *, .form-grid > *, .dashboard-primary-row > *,
  .rpt-grid-2 > *, .rpt-grid-2-even > *, .table-toolbar > * {
    min-width: 0 !important;
  }

  img, svg, canvas, video, iframe {
    max-width: 100% !important;
    height: auto;
  }
}

/* ── 1. iOS ZOOM-ON-FOCUS ─────────────────────────────────────────────
   Any input below 16px causes iOS Safari to zoom the viewport on focus
   and never restore it — this is why the app "feels zoomed" for the rest
   of the session after login. 16px is the exact threshold.
   Visual size is preserved by trimming padding, so nothing grows. */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]), select, textarea,
  .input, .select, .textarea {
    font-size: 16px !important;
    padding: 10px 12px !important;
    line-height: 1.35 !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Checkboxes and radios are not text fields: the rule above used to
     stretch them to width:100% with 10px padding, which is why they
     rendered as oversized squares in every table select column. */
  input[type="checkbox"],
  input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    flex: 0 0 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    accent-color: var(--m-accent);
  }

  /* Neutralise every inline min-width:140px..220px on toolbar controls
     so .table-toolbar can wrap instead of overflowing. */
  .table-toolbar .input,
  .table-toolbar .select,
  .table-toolbar .search-wrap,
  [style*="min-width"].input,
  [style*="min-width"].select {
    min-width: 0 !important;
    width: 100% !important;
  }

  .table-toolbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .table-toolbar .btn {
    flex: 1 1 auto !important;
    min-height: 44px !important;   /* WCAG 2.5.8 minimum target size */
  }
}

/* ── 2. LOGIN SCREEN ──────────────────────────────────────────────────
   mobile.css contains no login rules at all; the auth panel inherits a
   card centred for a 1440px canvas. */
@media (max-width: 768px) {
  #authLoginPanel,
  #authScreen,
  .auth-shell {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100dvh !important;          /* dvh, not vh — accounts for
                                               the collapsing URL bar */
    margin: 0 !important;
    padding: calc(24px + env(safe-area-inset-top))
             20px
             calc(24px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
  }

  #authLoginPanel .card,
  #authLoginPanel > form,
  .auth-card {
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto !important;
    padding: 24px 20px !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.08) !important;
  }

  /* Tenant branding logo has no max-width, so a wide asset pushes the
     card past the viewport edge. */
  #authLoginPanel img,
  .auth-brand img,
  .tenant-logo {
    max-width: 180px !important;
    max-height: 72px !important;
    width: auto !important;
    object-fit: contain !important;
    margin: 0 auto 16px !important;
    display: block !important;
  }

  #authSignInBtn,
  #authLoginPanel .btn {
    width: 100% !important;
    min-height: 48px !important;
    font-size: 16px !important;
  }
}

/* ── 3. APP SHELL — bottom-nav clearance ──────────────────────────────
   mobile.css sets .main-content padding-bottom in 8 different rules
   (0, 56, 76, 88, 100, 128, 160px). Pages landing on 0 or 56px have
   their last row hidden under the 72px nav. One variable, one rule. */
@media (max-width: 768px) {
  :root {
    --m-nav-h: 72px;
    --m-topbar-h: 56px;
  }

  .main-content {
    padding-bottom: calc(var(--m-nav-h) + 24px + env(safe-area-inset-bottom)) !important;
  }

  /* Pages with a sticky action bar above the nav need extra clearance.
     Add class="has-action-bar" to <main> on POS / GRN / purchase entry. */
  .main-content.has-action-bar {
    padding-bottom: calc(var(--m-nav-h) + 80px + env(safe-area-inset-bottom)) !important;
  }

  .topbar {
    padding-top: env(safe-area-inset-top) !important;
    height: calc(var(--m-topbar-h) + env(safe-area-inset-top)) !important;
  }
}

/* ── 4. BOTTOM NAV — dark-mode fix ────────────────────────────────────
   mobile.css:87 hardcodes #5f6368 / #1a73e8 / #e8f0fe / white, ignoring
   the --m-* tokens declared at the top of the same file. Result: the nav
   stays white-on-white in dark mode. Re-point it at the tokens. */
@media (max-width: 768px) {
  .mobile-bottom-nav,
  #bottomNav {
    background: var(--m-surface) !important;
    border-top: 1px solid var(--m-border) !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06) !important;
  }
  .mobile-bottom-nav > a,
  .mobile-bottom-nav > button,
  .mobile-nav-item {
    color: var(--m-text-secondary) !important;
    min-height: 48px !important;
    min-width: 48px !important;
  }
  .mobile-bottom-nav > a.active,
  .mobile-bottom-nav > button.active,
  .mobile-nav-item.active {
    color: var(--m-accent) !important;
    background: var(--m-tint-cash-bg) !important;
  }
}

/* ── 5. TABLES → LABELLED CARDS ───────────────────────────────────────
   mobile.css:2280 hides <thead> and blocks out <td>, but no data-label
   exists anywhere in the codebase, so rows become anonymous stacks of
   values. Two fixes:
     (a) extend the card conversion to the 5 table classes it misses;
     (b) render data-label as a leading key when JS supplies it.
   See the JS snippet at the bottom of this file for (b)'s data source. */
@media (max-width: 768px) {

  /* (a) Classes that are NOT .data-table and therefore get no conversion:
         .items-table (POS cart, 3x), .dispensing-table (rx),
         .admin-table (admin), .po-items-table (purchases), .meta */
  .items-table, .dispensing-table, .admin-table,
  .po-items-table, .price-history-table, table.meta {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .items-table thead, .dispensing-table thead, .admin-table thead,
  .po-items-table thead, .price-history-table thead {
    display: none !important;
  }
  .items-table tbody, .items-table tbody tr,
  .dispensing-table tbody, .dispensing-table tbody tr,
  .admin-table tbody, .admin-table tbody tr,
  .po-items-table tbody, .po-items-table tbody tr,
  .price-history-table tbody, .price-history-table tbody tr {
    display: block !important;
    width: 100% !important;
  }
  .items-table tbody tr, .dispensing-table tbody tr,
  .admin-table tbody tr, .po-items-table tbody tr,
  .price-history-table tbody tr {
    background: var(--m-surface) !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 12px !important;
    margin-bottom: 8px !important;
    padding: 12px 14px !important;
  }
  .items-table td, .dispensing-table td, .admin-table td,
  .po-items-table td, .price-history-table td {
    display: block !important;
    width: auto !important;
    padding: 3px 0 !important;
    border: none !important;
    text-align: left !important;
  }

  /* (b) Label rendering. Applies to every converted table including the
         existing .data-table block. Cells without data-label are
         unaffected, so this is safe to ship before the JS change. */
  .data-table td[data-label],
  .items-table td[data-label],
  .dispensing-table td[data-label],
  .admin-table td[data-label],
  .po-items-table td[data-label] {
    display: grid !important;
    grid-template-columns: minmax(88px, 38%) minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: baseline !important;
    padding: 4px 0 !important;
  }
  .data-table td[data-label]::before,
  .items-table td[data-label]::before,
  .dispensing-table td[data-label]::before,
  .admin-table td[data-label]::before,
  .po-items-table td[data-label]::before {
    content: attr(data-label);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--m-text-muted);
  }

  /* Promote the first cell to a card title instead of a labelled row —
     gives each card an anchor the eye can scan. */
  .data-table tbody tr > td:first-child,
  .items-table tbody tr > td:first-child,
  .admin-table tbody tr > td:first-child {
    display: block !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
    padding-bottom: 8px !important;
    margin-bottom: 6px !important;
    border-bottom: 1px solid var(--m-border) !important;
  }
  .data-table tbody tr > td:first-child::before,
  .items-table tbody tr > td:first-child::before,
  .admin-table tbody tr > td:first-child::before {
    content: none !important;
  }

  /* Action cells go full-width at the card foot with real tap targets. */
  .data-table td.products-actions-cell,
  .data-table td:last-child .btn,
  .items-table td:last-child .btn,
  .admin-table td:last-child .btn {
    min-height: 40px !important;
  }
  .data-table td.products-actions-cell,
  .data-table td.actions-cell {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding-top: 10px !important;
    margin-top: 6px !important;
    border-top: 1px solid var(--m-border) !important;
  }
  .data-table td.products-actions-cell::before,
  .data-table td.actions-cell::before { content: none !important; }

  /* Fallback for any table that must stay a real table (wide numeric
     reports). Momentum scroll + a visible affordance. */
  .table-wrap.keep-table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
  }
  .table-wrap.keep-table > table {
    display: table !important;
    width: max-content !important;
    min-width: 100% !important;
  }
  .table-wrap.keep-table > table thead { display: table-header-group !important; }
  .table-wrap.keep-table > table tbody { display: table-row-group !important; }
  .table-wrap.keep-table > table tr    { display: table-row !important; }
  .table-wrap.keep-table > table td,
  .table-wrap.keep-table > table th    { display: table-cell !important;
                                         white-space: nowrap !important; }
}

/* ── 6. FORMS ─────────────────────────────────────────────────────────
   Four form-grid variants exist (form-grid, form-grid-3, .two, .three);
   none collapse at 767px. Inline grid-template-columns beat mobile.css
   because they are inline — hence !important here. */
@media (max-width: 768px) {
  .form-grid,
  .form-grid-3,
  .form-grid.two,
  .form-grid.three,
  .returns-entry-grid,
  .grn-meta-grid,
  .product-editor-grid,
  .product-editor-grid-right,
  .rpt-grid-2,
  .rpt-grid-2-even,
  [style*="grid-template-columns"] {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* Opt-out: add class="keep-2col" where two narrow fields genuinely
     read better side by side (e.g. qty + unit). */
  .keep-2col {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .form-row, .field-row, .input-group {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    width: 100% !important;
  }
  label { font-size: 0.82rem !important; font-weight: 600 !important; }
}

/* ── 7. MODALS ────────────────────────────────────────────────────────
   mobile.css:1057 styles the modal but never splits header/body/footer
   into a scroll container, so Save falls off-screen on long forms.
   Converted to a bottom sheet — the standard mobile pattern. */
@media (max-width: 768px) {
  .modal {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92dvh !important;
    margin: 0 !important;
    border-radius: 18px 18px 0 0 !important;
    transform: none !important;
  }
  .modal-header {
    flex: 0 0 auto !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    background: var(--m-surface) !important;
    padding: 16px !important;
  }
  .modal-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    padding: 16px !important;
  }
  .modal-footer {
    flex: 0 0 auto !important;
    position: sticky !important;
    bottom: 0 !important;
    z-index: 2 !important;
    display: flex !important;
    flex-direction: column-reverse !important;  /* primary action on top,
                                                   nearest the thumb */
    gap: 8px !important;
    background: var(--m-surface) !important;
    border-top: 1px solid var(--m-border) !important;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  }
  .modal-footer .btn {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
  }
}

/* ── 8. DASHBOARD ─────────────────────────────────────────────────────
   2-up KPI grid; the inline min-width:190px location select is what
   pushes the greeting row off-screen. */
@media (max-width: 768px) {
  .kpi-grid, .dashboard-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .kpi-card { padding: 12px !important; }
  .kpi-value {
    font-size: 1.05rem !important;
    overflow-wrap: anywhere !important;   /* stops "KES 1,240,000" clipping */
  }
  .kpi-label { font-size: 0.7rem !important; }

  .dashboard-divider-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }
  #dashboardLocationFilter {
    width: 100% !important;
    min-width: 0 !important;   /* overrides inline min-width:190px */
  }

  .dashboard-primary-row,
  .dashboard-main-col {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }
  .dashboard-chart-wrap { max-height: 200px !important; }
  .dashboard-chart-axis {
    display: flex !important;
    overflow-x: auto !important;
    font-size: 0.65rem !important;
    scrollbar-width: none;
  }
  .dashboard-trend-controls {
    display: flex !important;
    width: 100% !important;
  }
  .dashboard-trend-btn { flex: 1 1 0 !important; min-height: 40px !important; }
}

/* ── 9. POS ───────────────────────────────────────────────────────────
   pos.html has 1 table with 0 wrappers and class .items-table, so the
   shared conversion never fired. Section 5 handles the conversion; this
   handles the two-pane layout and the pay button falling below the fold. */
@media (max-width: 768px) {
  .pos-layout, .pos-shell, .pos-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .pos-search-results, .pos-product-list {
    max-height: 42dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .pos-cart, .pos-cart-panel {
    max-height: 46dvh !important;
    overflow-y: auto !important;
  }
  /* Pin the total + pay action above the bottom nav so it is always
     reachable regardless of cart length. */
  .pos-totals, .pos-checkout-bar {
    position: sticky !important;
    bottom: calc(var(--m-nav-h) + env(safe-area-inset-bottom)) !important;
    z-index: 20 !important;
    background: var(--m-surface) !important;
    border-top: 1px solid var(--m-border) !important;
    padding: 12px !important;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08) !important;
  }
  .pos-totals .btn, .pos-checkout-bar .btn {
    width: 100% !important;
    min-height: 52px !important;
    font-size: 16px !important;
  }
}

/* ── 10. REPORTS ──────────────────────────────────────────────────────
   14 tables. rpt-grid-2 handled in §6. Wide numeric report tables are
   better as scrollers than cards — opt them in via .keep-table. */
@media (max-width: 768px) {
  .rpt-chart-wrap, .report-chart { max-height: 240px !important; }
  .rpt-filters {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .rpt-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

/* ── 11. PURCHASES / GRN LINE ITEMS ───────────────────────────────────
   grid-template-columns:minmax(160px,1fr) 68px 90px 90px 32px = 440px
   minimum, guaranteed overflow. mobile.css:476 fixes this for
   #purchaseEntryPanel only; GRN uses the same pattern unpatched. */
@media (max-width: 768px) {
  .purchase-items-row, .grn-items-row, .po-line-row {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding: 12px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 12px !important;
    margin-bottom: 8px !important;
  }
  .purchase-items-row > :first-child,
  .grn-items-row > :first-child,
  .po-line-row > :first-child {
    grid-column: 1 / -1 !important;   /* product name spans full width */
    font-weight: 600 !important;
  }
  .purchase-items-table-head, .grn-items-table-head {
    display: none !important;
  }
}

/* ── 12. SETTINGS / LOCATIONS / ADMIN ─────────────────────────────────
   settings.html (3 tables) and locations.html (1 table) have zero
   .table-wrap. admin.html does not link mobile.css at all — see the
   note below; this block only helps once that link is added. */
@media (max-width: 768px) {
  .settings-layout, .settings-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
  }
  .settings-nav, .settings-tabs {
    display: flex !important;
    overflow-x: auto !important;
    gap: 6px !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none;
    padding-bottom: 4px !important;
  }
  .settings-nav::-webkit-scrollbar,
  .settings-tabs::-webkit-scrollbar { display: none; }
  .settings-nav > *, .settings-tabs > * {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    min-height: 40px !important;
  }
}

/* ── 13. TAB STRIPS (global) ──────────────────────────────────────────
   Tab rows across GRN, Products, Reports, Stock all wrap onto 3 lines
   at 360px. Horizontal scroll keeps them one line. */
@media (max-width: 768px) {
  .tabs, .tab-bar, .nav-tabs, .segmented {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none;
    gap: 4px !important;
  }
  .tabs::-webkit-scrollbar,
  .tab-bar::-webkit-scrollbar,
  .nav-tabs::-webkit-scrollbar { display: none; }
  .tabs > *, .tab-bar > *, .nav-tabs > * {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    min-height: 42px !important;
  }
}

/* ── 14. POS CATEGORY SCROLL FIX + BASKET FAB ──────────────────────────
   Section 17's .main-content div:not(.hidden) (specificity 0,0,2,1)
   overrides overflow-x:auto on .pos-category-strip (0,0,1,0) because
   both carry !important, breaking horizontal scroll. Re-assert with
   a higher-specificity ID selector. Also constrain the "More"
   dropdown height + add internal scroll. Fix basket FAB badge
   overlap, centering, and clipping. */
@media (max-width: 768px) {
  #posCategoryStrip.pos-category-strip {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  #posCategoryStrip .pos-category-menu {
    max-height: 260px !important;
    overflow-y: auto !important;
  }

  /* ── Basket floating button ──────────────────────────────────── */
  .pos-right:not(.basket-open) {
    overflow: visible !important;
    background: none !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    padding: 0 !important;
    border: none !important;
    bottom: calc(64px + 14px) !important;
    right: 12px !important;
  }
  .pos-right:not(.basket-open) .basket-header {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    background: none !important;
    color: var(--m-accent) !important;
  }
  .pos-right:not(.basket-open) .basket-header::before {
    width: 40px !important;
    height: 40px !important;
    filter: brightness(0) saturate(100%) invert(35%) sepia(98%) saturate(1248%) hue-rotate(190deg) brightness(92%) contrast(90%) !important;
  }
  .pos-right:not(.basket-open) .basket-count {
    top: -6px !important;
    right: -6px !important;
    min-width: 18px !important;
    height: 18px !important;
    font-size: 0.65rem !important;
    padding: 0 4px !important;
    border-width: 0 !important;
    position: absolute !important;
  }
}

/* ── 15. DASHBOARD KPI — REMOVE TINTED BACKGROUNDS ────────────────────*/
@media (max-width: 768px) {
  .dashboard-kpi-grid .kpi-card,
  .dashboard-kpi-grid .kpi-card:nth-child(1),
  .dashboard-kpi-grid .kpi-card:nth-child(2),
  .dashboard-kpi-grid .kpi-card:nth-child(3),
  .dashboard-kpi-grid .kpi-card:nth-child(4) {
    background: var(--m-surface) !important;
    color: var(--m-text) !important;
    border-color: var(--m-border) !important;
  }
}

/* ── 16. PAST SALES — REMOVE TABLE WRAPPER, MATCH QUOTATION CARDS ────*/
@media (max-width: 768px) {
  #mainContent div:has(> #fullSalesList) {
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  #fullSalesList .past-sale-item.mobile-sale-card {
    background: linear-gradient(180deg, var(--m-surface) 0%, color-mix(in srgb, var(--m-accent) 4%, var(--m-surface)) 100%) !important;
    border: 1px solid color-mix(in srgb, var(--m-accent) 14%, var(--m-border)) !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 28px color-mix(in srgb, var(--m-accent) 12%, transparent) !important;
    color: var(--m-text) !important;
    padding: 14px !important;
    margin: 0 0 10px !important;
  }
  #fullSalesList .past-sale-item.mobile-sale-card .btn-outline,
  #fullSalesList .past-sale-item.mobile-sale-card .btn-ghost {
    color: var(--m-text-secondary) !important;
    border-color: var(--m-border) !important;
  }
}

/* ── 17. CREDIT KPI — MATCH QUEUED SIZE ───────────────────────────────*/
@media (max-width: 768px) {
  .mobile-credit-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
  }
  .mobile-credit-kpi-grid .kpi-card {
    min-height: 76px !important;
    padding: 12px !important;
    border-radius: 1em !important;
    border: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
  }
  .mobile-credit-kpi-grid .kpi-label {
    font-size: 0.7rem !important;
  }
  .mobile-credit-kpi-grid .kpi-value {
    font-size: 1.05rem !important;
  }
}

/* ── 18. LANDSCAPE / SMALL-HEIGHT ────────────────────────────────────
   mobile.css:1023 has an orientation rule but it does not reduce the
   sticky chrome, so on a 360x360 landscape viewport the topbar + nav
   consume 128px of 360px. */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {
  :root { --m-nav-h: 56px; --m-topbar-h: 44px; }
  .mobile-bottom-nav, #bottomNav { height: 56px !important; }
  .mobile-bottom-nav svg, .mobile-nav-item svg {
    width: 20px !important; height: 20px !important;
  }
  .modal { max-height: 96dvh !important; }
  .pos-search-results, .pos-cart { max-height: 34dvh !important; }
}

/* ── 19. DISPENSING FORM CARDS ───────────────────────────────────────*/
#dispensingModal .dispensing-form-card {
  background: var(--m-surface);
  border: 1px solid var(--m-border);
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
}
#dispensingModal .dis-item-name {
  font-size: 1.05rem;
  font-weight: 700;
  padding-bottom: 10px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--m-border);
}
#dispensingModal .dis-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  margin-bottom: 4px;
}
#dispensingModal .dis-field {
  margin-bottom: 10px;
}
#dispensingModal .dis-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--m-text-secondary);
  margin-bottom: 4px;
}
#dispensingModal .dispensing-input {
  min-height: 44px;
  font-size: 1rem;
  width: 100%;
  box-sizing: border-box;
}
#dispensingModal .dispensing-timing-cell {
  position: relative;
}
#dispensingModal .dispensing-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--m-surface);
  border: 1px solid var(--m-border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  max-height: 240px;
  overflow-y: auto;
}
#dispensingModal #instructionPreview,
#dispensingModal .dispensing-bulk-instruction {
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--m-text);
  font-style: italic;
  padding: 4px 0;
}

/* Desktop dispensing workspace. Keep the mobile sheet rules above unchanged. */
@media (min-width: 901px) {
  #dispensingModal {
    padding: 28px;
    background: rgba(8, 18, 31, 0.62);
  }

  #dispensingModal .dispensing-modal {
    width: min(1120px, calc(100vw - 56px)) !important;
    height: auto !important;
    max-height: min(760px, calc(100dvh - 56px)) !important;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--primary) 18%, var(--border));
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(8, 18, 31, 0.28);
  }

  #dispensingModal .modal-header {
    min-height: 84px;
    padding: 18px 24px;
    background:
      linear-gradient(115deg, color-mix(in srgb, var(--primary) 10%, var(--surface)) 0%, var(--surface) 48%),
      var(--surface);
  }

  #dispensingModal .modal-header h3 {
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.2;
    letter-spacing: -0.025em;
  }

  #dispensingModal #dispensingModalSub {
    margin-top: 5px !important;
    font-size: 0.9rem !important;
  }

  #dispensingModal .modal-close {
    width: 40px;
    height: 40px;
    border: 1px solid var(--border);
    border-radius: 12px;
  }

  #dispensingModal.dispensing-mode-single .modal-body {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.85fr);
    grid-template-rows: auto auto auto auto;
    gap: 14px 20px;
    padding: 20px 24px !important;
    overflow-y: auto;
    align-items: start;
    background: color-mix(in srgb, var(--surface-2) 42%, var(--surface));
  }

  #dispensingModal.dispensing-mode-single #dispensingTableBody {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0;
  }

  #dispensingModal.dispensing-mode-single #dispensingSafetyNote {
    grid-column: 1;
    grid-row: 3;
    margin: 0;
  }

  #dispensingModal.dispensing-mode-single #dispensingCustomInstructions {
    grid-column: 1;
    grid-row: 4;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
  }

  #dispensingModal.dispensing-mode-single #dispensingControlledBlock {
    grid-column: 1 / -1;
    grid-row: 5;
  }

  #dispensingModal.dispensing-mode-single #dispensingQtySummary {
    grid-column: 2;
    grid-row: 1;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 18px !important;
    border: 1px solid color-mix(in srgb, var(--primary) 28%, var(--border)) !important;
    border-radius: 16px !important;
    background:
      linear-gradient(145deg, color-mix(in srgb, var(--primary) 13%, var(--surface)) 0%, var(--surface) 70%) !important;
    box-shadow: 0 8px 24px rgba(15, 95, 160, 0.08);
  }

  #dispensingModal.dispensing-mode-single #dispensingQtyLabel {
    font-size: 1.25rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
  }

  #dispensingModal.dispensing-mode-single #dispensingQtyFormula {
    font-size: 0.84rem;
    line-height: 1.4;
  }

  #dispensingModal.dispensing-mode-single #dispensingQtyAvailability {
    margin: 6px 0 0 !important;
    padding: 5px 9px;
    border-radius: 999px;
    background: var(--success-soft);
    color: var(--success);
    font-size: 0.82rem;
  }

  #dispensingModal.dispensing-mode-single #dispensingStockNote {
    grid-column: 2;
    grid-row: 2;
    margin: -4px 2px 0 !important;
    padding: 0 4px;
    font-size: 0.82rem !important;
  }

  #dispensingModal.dispensing-mode-single #dispensingBatchChooser {
    grid-column: 2;
    grid-row: 3 / span 2;
    gap: 10px !important;
    margin: 0 !important;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
  }

  #dispensingModal.dispensing-mode-single #dispensingBatchSelect {
    min-height: 46px !important;
    border-radius: 10px;
    background: var(--surface-2);
  }

  #dispensingModal .dispensing-single-card {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(150px, 0.6fr);
    gap: 14px;
    margin: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
    box-shadow: 0 8px 24px rgba(8, 18, 31, 0.05);
  }

  #dispensingModal .dispensing-single-card .dis-item-name {
    display: none;
  }

  #dispensingModal .dispensing-single-card .dis-field-row {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
  }

  #dispensingModal .dispensing-single-card .dis-field {
    min-width: 0;
    margin: 0;
  }

  #dispensingModal .dispensing-single-card .dis-label {
    margin-bottom: 6px;
    color: var(--text-muted);
    font-size: 0.72rem;
    letter-spacing: 0.065em;
  }

  #dispensingModal .dispensing-single-card .dispensing-input {
    min-height: 46px;
    padding: 0 12px;
    transform: none;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-2);
    font-size: 0.95rem;
    font-weight: 650;
    text-align: left;
  }

  #dispensingModal .dispensing-single-card .dispensing-input:focus {
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);
  }

  #dispensingModal .dispensing-single-card .dis-timing-field {
    grid-column: 1;
  }

  #dispensingModal .dispensing-single-card .dis-qty-field {
    grid-column: 2;
  }

  #dispensingModal .dispensing-single-card .dis-qty-field .dispensing-input {
    color: var(--primary);
    font-size: 1.1rem;
    text-align: center;
  }

  #dispensingModal .dispensing-single-card .dis-instruction-field {
    grid-column: 1 / -1;
  }

  #dispensingModal .dispensing-single-card #instructionPreview {
    min-height: 46px;
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-left: 3px solid var(--primary);
    border-radius: 8px;
    background: color-mix(in srgb, var(--primary) 7%, var(--surface));
    color: var(--text);
    font-size: 0.92rem;
    font-style: normal;
    line-height: 1.4;
  }

  #dispensingModal #disCustomNote {
    min-height: 68px !important;
    resize: vertical;
  }

  #dispensingModal .modal-footer {
    min-height: 72px;
    padding: 12px 24px;
    background: var(--surface);
  }

  #dispensingModal .modal-footer .btn {
    min-height: 44px;
    padding-inline: 20px;
    border-radius: 11px;
  }

  #dispensingModal #addToBasketBtn {
    min-width: 170px;
  }

  #dispensingModal.dispensing-mode-bulk .dispensing-modal {
    width: min(1220px, calc(100vw - 56px)) !important;
  }

  #dispensingModal.dispensing-mode-bulk .modal-body {
    padding: 18px 24px !important;
  }

  #dispensingModal.dispensing-mode-bulk .dispensing-form-card {
    border-radius: 12px;
    padding: 12px 14px;
  }
}

/* ── 20. BASKET SHEET — MOBILE TABLE REDESIGN ───────────────────────── */
@media (max-width: 768px) {
  body:has(.pos-right.basket-open) .pos-left,
  body:has(.pos-right.basket-open) .main-content {
    overflow: hidden !important;
    touch-action: none !important;
  }

  .pos-right.basket-open {
    display: grid !important;
    grid-template-rows: 48px minmax(0, 1fr) auto !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: var(--m-nav-h) !important;
    width: auto !important;
    /* Keep the sheet fixed: older mobile WebViews ignore dvh and otherwise let rows grow it. */
    height: 430px !important;
    min-height: 0 !important;
    max-height: calc(100vh - var(--m-nav-h) - 12px) !important;
    margin: 0 !important;
    border: none !important;
    border-top: 1px solid var(--m-border) !important;
    border-radius: 18px 18px 0 0 !important;
    background: var(--m-surface) !important;
    box-shadow: 0 -12px 34px rgba(15, 23, 42, 0.24) !important;
    cursor: default !important;
    overflow: hidden !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
    transform: none !important;
    transition: none !important;
  }

  .pos-right.basket-open .basket-header {
    grid-row: 1 !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
    height: 48px !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
  }
  .pos-right.basket-open .basket-header::before {
    content: "" !important;
    position: absolute !important;
    top: 5px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 32px !important;
    height: 3px !important;
    border-radius: 999px !important;
    background: var(--m-border) !important;
  }
  .pos-right.basket-open .basket-header > div:first-child {
    display: flex !important;
    align-items: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .pos-right.basket-open .basket-header h3 {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    font-size: 0.96rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    color: var(--m-text) !important;
  }
  .pos-right.basket-open .basket-count {
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 6px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    background: var(--m-accent) !important;
    color: var(--m-accent-text) !important;
  }
  .pos-right.basket-open .basket-header-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  .pos-right.basket-open .basket-header .pos-basket-action {
    flex: 0 0 auto !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 9px !important;
    border-radius: 8px !important;
    border: 1px solid var(--m-border) !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
  }
  .pos-right.basket-open .basket-header .pos-basket-action.danger {
    background: var(--m-tint-warn-bg) !important;
    border-color: color-mix(in srgb, var(--m-tint-warn-text) 35%, transparent) !important;
    color: var(--m-tint-warn-text) !important;
  }
  .pos-right.basket-open #mobileBasketClose {
    display: inline-flex !important;
    position: static !important;
    width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    border: 1px solid var(--m-border) !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .basket-items {
    grid-row: 2 !important;
    display: block !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: var(--m-surface) !important;
  }
  .basket-grid-head,
  .basket-items-body {
    display: none !important;
  }

  .basket-empty-state,
  .basket-items > .empty-state {
    min-height: 0 !important;
    padding: 28px 20px !important;
    text-align: center !important;
  }
  .basket-items > .empty-state .empty-state-icon {
    width: 44px !important;
    height: 44px !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
    display: grid !important;
    place-items: center !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
  }
  .basket-items > .empty-state .empty-state-icon svg {
    width: 22px !important;
    height: 22px !important;
  }
  .basket-items > .empty-state p {
    margin: 8px 0 2px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
  }
  .basket-items > .empty-state small {
    font-size: 0.76rem !important;
    color: var(--m-text-secondary) !important;
  }

  .basket-mobile-table-wrap {
    display: block !important;
    height: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 !important;
    background: var(--m-surface) !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .basket-mobile-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    background: var(--m-surface) !important;
  }
  .basket-mobile-table thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    height: 32px !important;
    padding: 0 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.64rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-transform: uppercase !important;
  }
  .basket-mobile-table th:nth-child(2),
  .basket-mobile-table td:nth-child(2) {
    width: 76px !important;
    text-align: center !important;
  }
  .basket-mobile-table th:nth-child(3),
  .basket-mobile-table td:nth-child(3) {
    width: 44px !important;
    text-align: center !important;
  }
  .basket-mobile-table-row td {
    height: 42px !important;
    padding: 5px 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
    vertical-align: middle !important;
  }
  .basket-mobile-table-row:nth-child(even) td {
    background: color-mix(in srgb, var(--m-surface-2) 54%, transparent) !important;
  }
  .basket-mobile-table-item {
    color: var(--m-text) !important;
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .basket-mobile-table-qty-input {
    width: 52px !important;
    height: 30px !important;
    margin: 0 auto !important;
    padding: 0 6px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 6px !important;
    background: var(--m-surface) !important;
    color: var(--m-text) !important;
    text-align: center !important;
    font-size: 0.86rem !important;
    font-weight: 800 !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
  }
  .basket-mobile-table-qty-input:focus {
    outline: none !important;
    border-color: var(--m-accent) !important;
    background: var(--m-surface) !important;
  }
  .basket-mobile-table-qty-input::-webkit-outer-spin-button,
  .basket-mobile-table-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
  }
  .basket-mobile-table-remove-btn {
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    color: var(--m-tint-warn-text) !important;
    font-size: 1.05rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }
  .basket-mobile-table-remove-btn:active {
    background: var(--m-tint-warn-bg) !important;
  }

  .pos-right.basket-open .basket-footer {
    grid-row: 3 !important;
    display: grid !important;
    gap: 8px !important;
    flex: 0 0 auto !important;
    padding: 8px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    border-top: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
    box-shadow: 0 -6px 18px rgba(15, 23, 42, 0.06) !important;
  }
  .basket-summary {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }
  .basket-summary-row {
    display: grid !important;
    gap: 2px !important;
    padding: 6px 8px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 8px !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.62rem !important;
    line-height: 1.15 !important;
  }
  .basket-summary-row strong {
    color: var(--m-text) !important;
    font-size: 0.74rem !important;
    font-weight: 800 !important;
  }
  .basket-total-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 !important;
    padding: 8px 2px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .basket-total-label {
    color: var(--m-text-secondary) !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-transform: uppercase !important;
  }
  .basket-total-value {
    color: var(--m-accent) !important;
    font-size: 1.22rem !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
  }
  .basket-actions .btn-lg {
    width: 100% !important;
    min-height: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    font-size: 0.96rem !important;
    font-weight: 800 !important;
    background: var(--m-accent) !important;
    border-color: var(--m-accent) !important;
    color: var(--m-accent-text) !important;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18) !important;
  }
  .basket-actions .btn-lg:disabled {
    opacity: 0.45 !important;
  }
}

.mobile-cart-panel {
  display: none;
}

/* ── 21. MOBILE CART — INDEPENDENT FIXED PANEL ───────────────────────*/
@media (max-width: 768px) {
  body:has(.mobile-cart-panel.is-open) {
    overflow: hidden !important;
  }
  body:has(.mobile-cart-panel.is-open) .basket-popup-backdrop {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .mobile-cart-panel {
    position: fixed !important;
    display: grid !important;
    grid-template-rows: 52px minmax(0, 1fr) auto !important;
    top: max(64px, calc(env(safe-area-inset-top) + 12px)) !important;
    right: 12px !important;
    bottom: calc(var(--m-nav-h) + env(safe-area-inset-bottom) + 12px) !important;
    left: 12px !important;
    z-index: 99999 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 16px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 20px 52px rgba(15, 23, 42, 0.3) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(12px) !important;
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease !important;
  }
  .mobile-cart-panel.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  .mobile-cart-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-width: 0 !important;
    padding: 0 8px 0 16px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
  }
  .mobile-cart-header h3 {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
    color: var(--m-text) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
  }
  .mobile-cart-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 7px !important;
    border-radius: 999px !important;
    background: var(--m-accent) !important;
    color: var(--m-accent-text) !important;
    font-size: 0.72rem !important;
  }
  .mobile-cart-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }
  .mobile-cart-clear,
  .mobile-cart-close {
    min-height: 44px !important;
    border: 0 !important;
    background: transparent !important;
    font-weight: 700 !important;
  }
  .mobile-cart-clear {
    padding: 0 10px !important;
    color: var(--m-tint-warn-text) !important;
    font-size: 0.78rem !important;
  }
  .mobile-cart-close {
    display: grid !important;
    width: 44px !important;
    padding: 0 !important;
    place-items: center !important;
    color: var(--m-text-secondary) !important;
  }
  .mobile-cart-close svg,
  .mobile-cart-checkout svg {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .mobile-cart-list {
    min-width: 0 !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    background: var(--m-surface) !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .mobile-cart-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
  }
  .mobile-cart-table th {
    position: sticky !important;
    top: 0 !important;
    z-index: 1 !important;
    height: 32px !important;
    padding: 0 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.64rem !important;
    font-weight: 800 !important;
    text-align: left !important;
    text-transform: uppercase !important;
  }
  .mobile-cart-table th:nth-child(2),
  .mobile-cart-table td:nth-child(2) {
    width: 72px !important;
    text-align: center !important;
  }
  .mobile-cart-table th:nth-child(3),
  .mobile-cart-table td:nth-child(3) {
    width: 48px !important;
    text-align: center !important;
  }
  .mobile-cart-table td {
    height: 48px !important;
    padding: 4px 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
    color: var(--m-text) !important;
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    vertical-align: middle !important;
  }
  .mobile-cart-table tbody tr:nth-child(even) td {
    background: color-mix(in srgb, var(--m-surface-2) 58%, var(--m-surface)) !important;
  }
  .mobile-cart-table td:first-child {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .mobile-cart-qty {
    width: 56px !important;
    height: 32px !important;
    margin: 0 auto !important;
    padding: 0 4px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 6px !important;
    background: var(--m-surface) !important;
    color: var(--m-text) !important;
    font-size: 0.86rem !important;
    font-weight: 800 !important;
    text-align: center !important;
    box-shadow: none !important;
    appearance: textfield !important;
  }
  .mobile-cart-qty:focus {
    outline: 2px solid color-mix(in srgb, var(--m-accent) 28%, transparent) !important;
    border-color: var(--m-accent) !important;
  }
  .mobile-cart-qty::-webkit-outer-spin-button,
  .mobile-cart-qty::-webkit-inner-spin-button {
    margin: 0 !important;
    -webkit-appearance: none !important;
  }
  .mobile-cart-remove {
    display: grid !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--m-tint-warn-text) !important;
    font-size: 1.1rem !important;
    font-weight: 900 !important;
  }
  .mobile-cart-remove:active {
    background: var(--m-tint-warn-bg) !important;
  }
  .mobile-cart-empty {
    display: grid !important;
    height: 100% !important;
    min-height: 120px !important;
    padding: 24px !important;
    place-items: center !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
  }

  .mobile-cart-footer {
    display: grid !important;
    gap: 8px !important;
    padding: 8px 12px 12px !important;
    border-top: 1px solid var(--m-border) !important;
    background: var(--m-surface) !important;
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.06) !important;
  }
  .mobile-cart-summary {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }
  .mobile-cart-summary > span {
    display: grid !important;
    gap: 2px !important;
    min-width: 0 !important;
    padding: 6px 8px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 8px !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.62rem !important;
  }
  .mobile-cart-summary strong {
    overflow: hidden !important;
    color: var(--m-text) !important;
    font-size: 0.74rem !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .mobile-cart-total {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 32px !important;
    padding: 0 2px !important;
  }
  .mobile-cart-total span {
    color: var(--m-text-secondary) !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
  }
  .mobile-cart-total strong {
    color: var(--m-accent) !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
  }
  .mobile-cart-checkout {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--m-accent) !important;
    color: var(--m-accent-text) !important;
    font-size: 0.96rem !important;
    font-weight: 800 !important;
    box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18) !important;
  }
  .mobile-cart-checkout:disabled {
    opacity: 0.45 !important;
  }
  .mobile-cart-approval-hint {
    color: var(--m-tint-warn-text) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-align: center !important;
  }
}

/* ── 22. CHECKOUT MODAL — COMPACT MOBILE LAYOUT ──────────────────────*/
@media (max-width: 768px) {
  #checkoutModal {
    z-index: 100000 !important;
  }
  #checkoutModal .modal {
    max-height: calc(100dvh - 12px) !important;
    border-radius: 18px 18px 0 0 !important;
    overflow: hidden !important;
  }
  #checkoutModal .modal-body {
    padding: 12px 16px !important;
  }
  #checkoutSaleTotal {
    font-size: 1.4rem !important;
    margin-bottom: 10px !important;
  }
  #checkoutTaxBreakdown {
    margin: 0 0 10px !important;
    padding: 8px 10px !important;
    font-size: 0.8rem !important;
  }
  #checkoutMiniItems {
    max-height: 120px !important;
    margin: 0 0 10px !important;
    font-size: 0.82rem !important;
  }
  #checkoutModal .form-group.mb-3 {
    margin-bottom: 10px !important;
  }
  #checkoutModal .form-label {
    font-size: 0.72rem !important;
    margin-bottom: 3px !important;
  }
  .checkout-payment-method-pills {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px !important;
  }
  .checkout-payment-pill {
    min-height: 44px !important;
    font-size: 0.85rem !important;
    padding: 8px !important;
  }
  #amountPaidGroup {
    margin-bottom: 8px !important;
  }
  #checkoutAmountPaid {
    min-height: 48px !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
  }
  #changeDisplay {
    padding: 10px !important;
    margin-bottom: 10px !important;
  }
  #changeDisplay > div:last-child {
    font-size: 1.3rem !important;
  }
  #checkoutModal .modal-footer .btn {
    min-height: 48px !important;
    font-size: 1rem !important;
  }
}

/* ── 21. TABLET DEAD ZONE (769–900px) ─────────────────────────────────
   style.css has rules at 780/820/900px that fire here while mobile.css
   (max 767) has stopped and .mobile-only elements are hidden. Result:
   desktop sidebar is collapsed but no mobile nav exists. Force the
   desktop shell back on above 768px so there is never a no-nav state. */
@media (min-width: 769px) and (max-width: 900px) {
  .desktop-sidebar { display: block !important; }
  .mobile-bottom-nav, #bottomNav { display: none !important; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .dashboard-primary-row { grid-template-columns: 1fr !important; }
}

/* ── 20. PRICELIST TABLE — MOBILE CARD LAYOUT ───────────────────────────
   Row markup (js/products.js renderPriceList): 9 columns —
   1 .price-select-cell checkbox, 2 product name, 3 buying, 4 selling,
   5 min, 6 discount, 7 VAT, 8 list margin, 9 net margin.
   §23 forces .data-table back to display:table with min-width:760px and
   nowrap cells, so every rule here needs the #priceListTableBody /
   #productsPriceListPanel id to outrank it. */
@media (max-width: 768px) {
  #productsPriceListPanel .products-table.data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
  }
  #productsPriceListPanel .products-table.data-table thead {
    display: none !important;
  }
  #productsPriceListPanel .inventory-manage-table-scroll {
    overflow-x: hidden !important;
  }
  #priceListTableBody {
    display: block !important;
    width: 100% !important;
  }

  /* Each row becomes a card; numeric fields auto-fit a 2-up grid. */
  #priceListTableBody tr[data-product-id] {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    width: auto !important;
    margin: 0 0 10px !important;
    padding: 12px 14px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
  }

  #priceListTableBody td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    text-align: left !important;
    white-space: normal !important;
  }

  /* Card head: checkbox and product name share the full width. */
  #priceListTableBody td.price-select-cell {
    grid-column: 1 / -1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }
  #priceListTableBody td:nth-child(2) {
    grid-column: 1 / -1 !important;
    padding: 0 0 10px !important;
    border-bottom: 1px solid var(--m-border) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
  }
  #priceListTableBody .price-product-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
  }

  /* thead is hidden, so each numeric cell carries its own caption. */
  #priceListTableBody td:nth-child(n+3)::before {
    display: block !important;
    margin-bottom: 4px !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    color: var(--m-text-muted) !important;
  }
  #priceListTableBody td:nth-child(3)::before { content: "Buying Price" !important; }
  #priceListTableBody td:nth-child(4)::before { content: "Selling Price" !important; }
  #priceListTableBody td:nth-child(5)::before { content: "Min Price" !important; }
  #priceListTableBody td:nth-child(6)::before { content: "Discount %" !important; }
  #priceListTableBody td:nth-child(7)::before { content: "VAT %" !important; }
  #priceListTableBody td:nth-child(8)::before { content: "List Margin" !important; }
  #priceListTableBody td:nth-child(9)::before { content: "Net Margin" !important; }

  /* Inputs carry inline width:100px / 62px — override so they fit the cell. */
  #priceListTableBody .pricelist-input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    padding: 8px 10px !important;
  }
  #priceListTableBody .price-sell-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }
}

/* ── 21. STOCK LEDGER DATE FILTERS — HORIZONTAL LAYOUT ────────────────*/
@media (max-width: 768px) {
  .ledger-toolbar {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    align-items: stretch !important;
  }
  .ledger-toolbar > .search-wrap {
    grid-column: 1 / -1 !important;
  }
  .ledger-toolbar > .ledger-filter-item {
    width: 100% !important;
  }
  .ledger-toolbar > span {
    display: none !important;
  }
  .ledger-toolbar > .input.ledger-date-input {
    width: 100% !important;
  }
}

/* ── 22. ACCESSIBILITY ────────────────────────────────────────────────*/
@media (max-width: 768px) {
  a, button, .btn, [role="button"], .mobile-nav-item {
    min-height: 44px;
    min-width: 44px;
  }
  .btn-sm, .btn-icon { min-height: 40px; min-width: 40px; }

  :focus-visible {
    outline: 2px solid var(--m-accent) !important;
    outline-offset: 2px !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-bottom-nav > a, .mobile-nav-item, .modal, .btn {
    transition: none !important;
    animation: none !important;
  }
}

/* ── 23. ADMIN-MATCHED MOBILE STANDARD ────────────────────────────────
   Mobile app pages should flow like admin.html: sticky top chrome,
   horizontal tab strip, natural document scroll, and real tables inside
   scroll containers. */
@media (max-width: 768px) {
  html,
  body {
    height: auto !important;
    min-height: 100dvh !important;
    overflow-x: clip !important;
    overflow-y: auto !important;
    background: var(--m-bg) !important;
  }

  .app-shell,
  .app-body {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: var(--m-bg) !important;
  }

  .desktop-sidebar {
    display: none !important;
  }

  .mobile-bottom-nav,
  #bottomNav {
    display: flex !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 90 !important;
  }

  .topbar {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    z-index: 30 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 64px !important;
    padding: calc(10px + env(safe-area-inset-top)) 14px 10px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: var(--m-surface) !important;
    border-bottom: 1px solid var(--m-border) !important;
    box-shadow: none !important;
  }

  #mobileSidebarToggleBtn {
    display: inline-flex !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
  }

  .topbar-brand {
    color: var(--m-text) !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
  }

  .topbar-actions {
    gap: 8px !important;
  }

  .topbar-actions .topbar-icon-btn,
  .topbar-actions .topbar-theme-toggle {
    width: 44px !important;
    height: 44px !important;
    border-radius: 14px !important;
    border: 1px solid var(--m-border) !important;
    background: var(--m-surface-2) !important;
  }

  .topbar-alert-dropdown {
    position: fixed !important;
    top: calc(64px + env(safe-area-inset-top)) !important;
    left: auto !important;
    right: 12px !important;
    width: min(320px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    border-radius: 18px !important;
    max-height: min(72dvh, 560px) !important;
    overflow-y: auto !important;
    transform-origin: top right !important;
  }

  .module-nav:not(.hidden) {
    position: relative !important;
    margin: 0 !important;
    padding: 10px 14px !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: #e5e7eb !important;
    box-shadow: none !important;
  }

  [data-theme="dark"] .module-nav:not(.hidden) {
    background: #181818 !important;
  }

  .module-nav::after,
  .module-nav-scroll-btn,
  .module-tab-indicator,
  .module-nav-identity {
    display: none !important;
  }

  .module-nav-inner,
  .module-nav-scroll-shell {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
  }

  .module-nav-track {
    display: flex !important;
    gap: 8px !important;
    padding: 0 !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
  }

  .module-nav-link {
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 10px 16px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    color: var(--m-text) !important;
    font-size: 0.92rem !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
    box-shadow: none !important;
  }

  .module-nav-link.active {
    background: var(--m-accent) !important;
    color: #fff !important;
  }

  .module-nav-context {
    flex: 0 0 auto !important;
    margin: 0 0 0 8px !important;
    gap: 8px !important;
  }

  .module-nav-context .btn {
    min-height: 44px !important;
    white-space: nowrap !important;
  }

  #mainContent,
  #mainContent.main-content,
  .main-content,
  .main-content[class] {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 20px 14px calc(96px + env(safe-area-inset-bottom)) !important;
    overflow: visible !important;
    background: var(--m-bg) !important;
    color: var(--m-text) !important;
  }

  .module-nav:not(.hidden) + .main-content {
    padding-top: 20px !important;
  }

  .main-content > section,
  .main-content > div,
  .main-content section:not(.hidden),
  .main-content div:not(.hidden) {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .card,
  .panel,
  .kpi-card,
  .table-wrap {
    border: 1px solid var(--m-border) !important;
    border-radius: 18px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.08) !important;
  }

  .table-wrap,
  .ledger-table-wrap,
  .finance-payables-table-wrap {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior-inline: contain !important;
    touch-action: pan-x pan-y !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  .table-wrap::-webkit-scrollbar,
  .ledger-table-wrap::-webkit-scrollbar,
  .finance-payables-table-wrap::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  .table-wrap::-webkit-scrollbar-thumb,
  .ledger-table-wrap::-webkit-scrollbar-thumb,
  .finance-payables-table-wrap::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  .data-table > thead > tr > th,
  .items-table > thead > tr > th,
  .dispensing-table > thead > tr > th,
  .admin-table > thead > tr > th,
  .po-items-table > thead > tr > th,
  .price-history-table > thead > tr > th,
  table.meta > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface) !important;
  }

  .data-table,
  .items-table,
  .dispensing-table,
  .admin-table,
  .po-items-table,
  .price-history-table {
    display: table !important;
    width: 100% !important;
    min-width: 760px !important;
    border-collapse: collapse !important;
    background: var(--m-surface) !important;
  }

  table.meta {
    display: table !important;
    width: 100% !important;
    min-width: 480px !important;
  }

  .data-table thead,
  .items-table thead,
  .dispensing-table thead,
  .admin-table thead,
  .po-items-table thead,
  .price-history-table thead {
    display: table-header-group !important;
  }

  .data-table tbody,
  .items-table tbody,
  .dispensing-table tbody,
  .admin-table tbody,
  .po-items-table tbody,
  .price-history-table tbody {
    display: table-row-group !important;
  }

  .data-table tr,
  .items-table tr,
  .dispensing-table tr,
  .admin-table tr,
  .po-items-table tr,
  .price-history-table tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .data-table tbody tr,
  .items-table tbody tr,
  .dispensing-table tbody tr,
  .admin-table tbody tr,
  .po-items-table tbody tr,
  .price-history-table tbody tr,
  #pastPurchasesTableBody tr,
  #purchaseDraftsTableBody tr,
  #purchasesTableBody tr,
  #pendingPoBody tr,
  #grnTableBody tr,
  #grnOpenPoList tbody tr,
  #supplierTableBody tr,
  #supplierMappingProductsBody tr,
  #supplierMappingSuppliersBody tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  .data-table th,
  .data-table td,
  .items-table th,
  .items-table td,
  .dispensing-table th,
  .dispensing-table td,
  .admin-table th,
  .admin-table td,
  .po-items-table th,
  .po-items-table td,
  .price-history-table th,
  .price-history-table td {
    display: table-cell !important;
    width: auto !important;
    padding: 13px 14px !important;
    text-align: left !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-right: 0 !important;
    white-space: nowrap !important;
  }

  .data-table td[data-label],
  .items-table td[data-label],
  .dispensing-table td[data-label],
  .admin-table td[data-label],
  .po-items-table td[data-label],
  .price-history-table td[data-label],
  #pastPurchasesTableBody td,
  #purchaseDraftsTableBody td,
  #purchasesTableBody td,
  #pendingPoBody td,
  #grnTableBody td,
  #grnOpenPoList tbody td,
  #supplierTableBody td,
  #supplierMappingProductsBody td,
  #supplierMappingSuppliersBody td,
  .data-table tbody tr > td:first-child,
  .items-table tbody tr > td:first-child,
  .dispensing-table tbody tr > td:first-child,
  .admin-table tbody tr > td:first-child,
  .po-items-table tbody tr > td:first-child,
  .price-history-table tbody tr > td:first-child,
  #pastPurchasesTableBody td:first-child,
  #purchaseDraftsTableBody td:nth-child(2),
  #purchasesTableBody td:first-child,
  #pendingPoBody td:first-child,
  #grnTableBody td:first-child,
  #grnOpenPoList tbody td:first-child,
  #supplierTableBody td:first-child,
  #supplierMappingProductsBody td:first-child,
  #supplierMappingSuppliersBody td:first-child {
    display: table-cell !important;
    width: auto !important;
    margin: 0 !important;
    padding: 13px 14px !important;
    border-bottom: 1px solid var(--m-border) !important;
    font-size: 0.8667rem !important;
    font-weight: 600 !important;
    color: var(--m-text) !important;
    grid-column: auto !important;
    grid-row: auto !important;
    text-align: left !important;
  }

  .data-table th,
  .items-table th,
  .dispensing-table th,
  .admin-table th,
  .po-items-table th,
  .price-history-table th {
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
  }

  .data-table td::before,
  .items-table td::before,
  .dispensing-table td::before,
  .admin-table td::before,
  .po-items-table td::before,
  .price-history-table td::before {
    content: none !important;
  }

  .data-table tbody tr.table-fill-row,
  .data-table tbody tr.finance-table-filler,
  .data-table tbody tr.finance-petty-filler {
    display: none !important;
  }

  .pos-page .pos-left {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .pos-page .pos-results {
    padding: 0 !important;
    background: transparent !important;
  }

  #mainContent > div:has(#fullPageQueuedList),
  #mainContent > div:has(#fullPageQuotationsList),
  #mainContent > div:has(#fullSalesList),
  .mobile-credit-page {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #fullPageQueuedList {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-item {
    min-height: 0 !important;
    padding: 10px 10px !important;
    gap: 8px 8px !important;
    grid-template-columns: minmax(0, 1fr) minmax(60px, 66px) !important;
    border-radius: 15px !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-main {
    gap: 10px !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-icon {
    width: 34px !important;
    height: 34px !important;
    font-size: 1.16rem !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-name {
    font-size: 0.94rem !important;
    line-height: 1.28 !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-sub {
    font-size: 0.81rem !important;
    line-height: 1.28 !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-stock,
  .pos-page .drug-results-body:not(.is-grid) .drug-result-price {
    font-size: 0.8rem !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-quick-add {
    height: 42px !important;
    min-width: 60px !important;
    width: 60px !important;
    border-radius: 9px !important;
    font-size: 0.8rem !important;
  }

  .pos-page .drug-result-mobile-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 66px !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    margin-bottom: 6px !important;
  }

  .pos-page .drug-results-body:not(.is-grid) .drug-result-mobile-row .drug-result-item {
    grid-template-columns: auto minmax(0, 1fr) !important;
    grid-template-areas:
      "main main"
      "qty price" !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    row-gap: 6px !important;
    column-gap: 8px !important;
    border-radius: 12px !important;
  }

  .pos-page .drug-result-mobile-row .drug-result-sub {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .pos-page .drug-result-mobile-row .drug-result-qty-wrap,
  .pos-page .drug-result-mobile-row .drug-result-price {
    align-self: center !important;
    justify-self: start !important;
    white-space: nowrap !important;
  }

  .pos-page .drug-result-mobile-row .drug-result-price {
    display: inline-flex !important;
    align-items: center !important;
  }

  .pos-page .drug-result-mobile-row .drug-result-price::before {
    content: "|" !important;
    margin-right: 8px !important;
    color: var(--m-border) !important;
    font-weight: 400 !important;
  }

  .pos-page .drug-result-mobile-row > .drug-result-action {
    display: flex !important;
    grid-area: auto !important;
    align-self: center !important;
  }

  .pos-page .drug-result-mobile-row > .drug-result-action .drug-quick-add {
    width: 100% !important;
    min-width: 0 !important;
    height: 48px !important;
    min-height: 48px !important;
    border-radius: 10px !important;
  }

  .pos-page .drug-results-body.is-grid .drug-result-mobile-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .pos-page .drug-results-body.is-grid .drug-result-mobile-row > .drug-result-action .drug-quick-add {
    height: 44px !important;
  }
}

/* ── 21. POS BULK ADD — COMPACT MOBILE LIST ───────────────────────── */
@media (max-width: 768px) {
  #bulkAddModal .bulk-add-modal {
    display: grid !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
    width: calc(100% - 16px) !important;
    height: calc(100dvh - 32px) !important;
    max-height: calc(100dvh - 32px) !important;
    margin: 16px 8px !important;
    overflow: hidden !important;
    border-radius: 18px !important;
  }

  #bulkAddModal .bulk-add-modal-body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    padding: 12px !important;
    overflow: hidden !important;
  }

  #bulkAddModal .bulk-add-toolbar {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }

  #bulkAddModal .bulk-add-toolbar .input-icon-wrap {
    flex: 1 0 100% !important;
    min-width: 0 !important;
  }

  #bulkAddModal .bulk-add-toolbar > .btn {
    flex: 1 1 0 !important;
    min-height: 40px !important;
  }

  #bulkAddModal #bulkAddSearchDropdown {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-radius: 12px !important;
  }

  #bulkAddModal .bulk-search-item {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 60px !important;
    padding: 8px 10px !important;
    background: var(--m-surface) !important;
  }

  #bulkAddModal .bulk-search-item:has(.bulk-checkbox:checked) {
    background: color-mix(in srgb, var(--m-accent) 8%, var(--m-surface)) !important;
  }

  #bulkAddModal .bulk-checkbox {
    width: 20px !important;
    min-width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #bulkAddModal .bulk-search-product,
  #bulkAddModal .bulk-search-meta {
    display: grid !important;
    height: auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  #bulkAddModal .bulk-search-product strong {
    font-size: 0.84rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }

  #bulkAddModal .bulk-search-product small,
  #bulkAddModal .bulk-search-meta small {
    font-size: 0.7rem !important;
  }

  #bulkAddModal .bulk-search-meta {
    gap: 3px !important;
    text-align: right !important;
  }

  #bulkAddModal .bulk-search-meta strong {
    font-size: 0.78rem !important;
  }

  #bulkAddModal #bulkAddTable {
    flex: 0 1 auto !important;
    min-height: 0 !important;
    max-height: 34vh !important;
    overflow-y: auto !important;
  }

  #bulkAddModal .bulk-add-header {
    display: none !important;
  }

  #bulkAddModal .bulk-add-row {
    display: grid !important;
    grid-template-columns: 58px minmax(0, 1fr) auto !important;
    grid-template-areas:
      "product product remove"
      "qty price total" !important;
    gap: 6px 8px !important;
    padding: 9px 10px !important;
  }

  #bulkAddModal .bulk-row-product {
    grid-area: product !important;
    white-space: normal !important;
  }

  #bulkAddModal .bulk-row-qty {
    grid-area: qty !important;
    width: 58px !important;
    min-height: 34px !important;
  }

  #bulkAddModal .bulk-row-price {
    grid-area: price !important;
    align-self: center !important;
  }

  #bulkAddModal .bulk-row-total {
    grid-area: total !important;
    align-self: center !important;
    white-space: nowrap !important;
  }

  #bulkAddModal .bulk-row-remove {
    grid-area: remove !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
  }
}

/* ── 22. NOTIFICATIONS — HERO CARD ────────────────────────────────── */
@media (max-width: 768px) {
  .notification-summary-hero::after {
    display: none !important;
  }
}

/* ── 22. NOTIFICATIONS — LIST ITEM COMPACT REDESIGN ───────────────────
   Base grid is `minmax(0,1fr) auto` — the actions column auto-sizes to
   fit "Mark unread" + "View" side by side, which squeezes the content
   column and forces the title/sub text to wrap across several lines.
   Switch to a single-column, two-row layout instead. */
@media (max-width: 768px) {
  .notification-center-list {
    gap: 8px !important;
    padding: 8px !important;
  }
  .notification-center-item {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    border-left-width: 3px !important;
    border-radius: 12px !important;
    box-shadow: none !important;
  }
  .notification-center-item-main {
    gap: 10px !important;
  }
  .notification-center-item-icon {
    width: 30px !important;
    height: 30px !important;
    border-radius: 9px !important;
  }
  .notification-center-item-icon svg {
    width: 15px !important;
    height: 15px !important;
  }
  .notification-center-item-title-row {
    flex-wrap: nowrap !important;
    gap: 6px !important;
  }
  .notification-center-item-title {
    font-size: 0.86rem !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .notification-center-item-state {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    padding: 2px 7px !important;
    font-size: 0.6rem !important;
  }
  .notification-center-item-sub {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin: 3px 0 6px !important;
    font-size: 0.78rem !important;
  }
  .notification-center-item-meta {
    gap: 6px !important;
  }
  .notification-center-item-type,
  .notification-center-item-time {
    font-size: 0.62rem !important;
  }
  .notification-center-item-actions {
    width: 100% !important;
    display: flex !important;
    gap: 6px !important;
    margin-top: 2px !important;
  }
  .notification-center-item-actions .btn {
    flex: 1 1 0 !important;
    width: auto !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 10px !important;
    font-size: 0.74rem !important;
    border-radius: 8px !important;
  }
  .notification-center-tab.active {
    box-shadow: none !important;
  }
}

/* ── 23. INVENTORY — MODULE NAV OVERFLOW FIX ──────────────────────────
   .module-nav-context (Add Product / Bulk Import) is flex:0 0 auto and
   not scoped desktop-only, so it sits fixed-width beside the scrollable
   tab track and starves it down to a sliver. Stack it as its own
   full-width row instead. */
@media (max-width: 768px) {
  .module-nav:not(.hidden) {
    padding: 4px 4px 8px !important;
  }
  .module-nav-inner {
    flex-wrap: wrap !important;
  }
  .module-nav-scroll-shell {
    flex: 1 1 100% !important;
    width: 100% !important;
    order: 1 !important;
  }
  .module-nav-context {
    order: 2 !important;
    flex: 1 1 100% !important;
    width: 100% !important;
    margin: 6px 0 0 !important;
    padding: 0 6px !important;
    gap: 8px !important;
    display: flex !important;
  }
  .module-nav-context .btn {
    flex: 1 1 0 !important;
    min-height: 36px !important;
    height: 36px !important;
    padding: 0 10px !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    border-radius: 10px !important;
    white-space: nowrap !important;
  }
  .module-nav-context .btn-primary {
    background: var(--m-accent) !important;
    border-color: var(--m-accent) !important;
    color: var(--m-accent-text) !important;
  }
  .module-nav-context .btn-outline {
    background: var(--m-surface) !important;
    border-color: var(--m-border) !important;
    color: var(--m-text) !important;
  }
}

/* ── 24. INVENTORY — PRODUCTS LIST CARD REDESIGN ──────────────────────
   Standard card layout: name + subtitle, SKU badge, meta row (form /
   price / stock) with labels, category pill, status + actions footer. */
@media (max-width: 768px) {
  .products-admin-surface,
  .products-admin-surface > * {
    min-width: 0 !important;
  }

  table.products-table.data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  table.products-table.data-table thead {
    display: none !important;
  }
  #productsTableBody {
    display: block !important;
    width: 100% !important;
  }

  /* Card container */
  #productsTableBody tr[data-product-id] {
    display: block !important;
    width: auto !important;
    background: var(--m-surface) !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 16px !important;
    padding: 14px !important;
    margin: 0 0 10px !important;
    box-shadow: none !important;
  }

  /* Base cell reset */
  #productsTableBody td {
    display: block !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    white-space: normal !important;
    text-align: left !important;
    vertical-align: baseline !important;
    grid-area: auto !important;
  }
  #productsTableBody td.products-row-no-cell {
    display: none !important;
  }

  /* ── Card head: drug name + strength ────────────────────────── */
  #productsTableBody td.products-name-cell {
    padding-bottom: 6px !important;
    margin-bottom: 8px !important;
    border-bottom: 1px solid var(--m-border) !important;
  }
  #productsTableBody .products-name-primary {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
    line-height: 1.3 !important;
  }
  #productsTableBody .products-name-secondary {
    font-size: 0.78rem !important;
    color: var(--m-text-secondary) !important;
    margin-top: 2px !important;
  }

  /* ── SKU badge ──────────────────────────────────────────────── */
  #productsTableBody td.products-sku-cell {
    display: inline-block !important;
    padding: 2px 8px !important;
    margin-bottom: 8px !important;
    font-size: 0.66rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--m-text-muted) !important;
    background: var(--m-surface-2) !important;
    border-radius: 6px !important;
  }

  /* ── Category pill ──────────────────────────────────────────── */
  #productsTableBody td:nth-child(4) {
    margin-bottom: 8px !important;
  }
  #productsTableBody .products-category-pill {
    display: inline-flex !important;
    padding: 3px 9px !important;
    border-radius: 999px !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
  }

  /* ── Meta row: Form / Price / Stock ─────────────────────────── */
  #productsTableBody td.products-muted-cell,
  #productsTableBody td.products-price-cell,
  #productsTableBody td.products-stock-cell {
    display: inline-block !important;
    width: calc(33.33% - 6px) !important;
    vertical-align: top !important;
    margin-right: 6px !important;
  }
  #productsTableBody td.products-stock-cell {
    margin-right: 0 !important;
  }
  #productsTableBody td.products-muted-cell::before,
  #productsTableBody td.products-price-cell::before,
  #productsTableBody td.products-stock-cell::before {
    display: block !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    color: var(--m-text-muted) !important;
    margin-bottom: 2px !important;
  }
  #productsTableBody td.products-muted-cell::before { content: "Form" !important; }
  #productsTableBody td.products-price-cell::before { content: "Price" !important; }
  #productsTableBody td.products-stock-cell::before { content: "Stock" !important; }
  #productsTableBody td.products-price-cell,
  #productsTableBody .products-stock-primary {
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  #productsTableBody .products-stock-secondary {
    font-size: 0.68rem !important;
    color: var(--m-text-muted) !important;
  }

  /* ── Footer: status + actions ───────────────────────────────── */
  #productsTableBody td:nth-child(8) {
    margin-top: 10px !important;
    padding-top: 10px !important;
    border-top: 1px solid var(--m-border) !important;
  }
  #productsTableBody td:nth-child(8) .products-stock-status {
    font-size: 0.72rem !important;
    font-weight: 700 !important;
  }

  #productsTableBody td.products-actions-cell {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: -28px !important;
    padding-top: 0 !important;
  }
  #productsTableBody .product-row-menu-trigger {
    width: 36px !important;
    height: 36px !important;
  }
}

/* Keep the independent cart isolated from the global mobile content reset above. */
@media (max-width: 768px) {
  #mainContent .mobile-cart-panel {
    display: grid !important;
    grid-template-rows: 52px minmax(0, 1fr) auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  #mainContent .mobile-cart-panel .mobile-cart-list {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}

/* Confirmation and prompt dialogs must stay above the mobile cart and checkout. */
@media (max-width: 768px) {
  #confirmBackdrop,
  #promptBackdrop {
    z-index: 100200 !important;
  }
}

/* Requested operational modules keep one real desktop table layout on mobile.
   Narrow screens scroll the table horizontally instead of converting rows to cards. */
@media (max-width: 768px) {
  #mainContent.desktop-table-page .table-wrap,
  #mainContent.desktop-table-page .ledger-table-wrap,
  #mainContent.desktop-table-page .finance-payables-table-wrap,
  #mainContent.desktop-table-page div:has(> table.data-table) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: auto !important;
  }

  #mainContent.desktop-table-page table.data-table {
    display: table !important;
    width: 100% !important;
    min-width: 680px !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
  }

  #mainContent.desktop-table-page table.data-table:has(th:nth-child(7)) {
    min-width: 860px !important;
  }

  #mainContent.desktop-table-page table.data-table:has(th:nth-child(9)) {
    min-width: 1080px !important;
  }

  #mainContent.desktop-table-page table.data-table:has(th:nth-child(11)) {
    min-width: 1260px !important;
  }

  #mainContent.desktop-table-page table.data-table > thead {
    display: table-header-group !important;
  }

  #mainContent.desktop-table-page table.data-table > tbody {
    display: table-row-group !important;
  }

  #mainContent.desktop-table-page table.data-table > thead > tr,
  #mainContent.desktop-table-page table.data-table > tbody > tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  #mainContent.desktop-table-page table.data-table > thead > tr > th,
  #mainContent.desktop-table-page table.data-table > tbody > tr > td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #mainContent.desktop-table-page table.data-table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 2 !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.74rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
  }

  #mainContent.desktop-table-page table.data-table > tbody > tr:nth-child(even) > td {
    background: color-mix(in srgb, var(--m-surface-2) 55%, transparent) !important;
  }

  #mainContent.desktop-table-page table.data-table > tbody > tr > td::before {
    content: none !important;
    display: none !important;
  }

  #mainContent.desktop-table-page table.data-table .btn,
  #mainContent.desktop-table-page table.data-table button,
  #mainContent.desktop-table-page table.data-table input,
  #mainContent.desktop-table-page table.data-table select {
    width: auto !important;
    max-width: none !important;
  }

  #mainContent.desktop-table-page table.data-table > tbody > tr.table-fill-row,
  #mainContent.desktop-table-page table.data-table > tbody > tr.finance-table-filler,
  #mainContent.desktop-table-page table.data-table > tbody > tr.finance-petty-filler {
    display: none !important;
  }
}

/* Inventory tables become complete compact cards on mobile. */
@media (max-width: 768px) {
  #mainContent.inventory-card-table-page .table-wrap,
  #mainContent.inventory-card-table-page .ledger-table-wrap,
  #mainContent.inventory-card-table-page div:has(> table.data-table) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.inventory-card-table-page table.data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: auto !important;
    background: transparent !important;
  }

  #mainContent.inventory-card-table-page table.data-table > thead {
    display: none !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody {
    display: grid !important;
    width: 100% !important;
    gap: 10px !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 16px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td {
    display: flex !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 2px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.82rem !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-label]::before {
    content: attr(data-label) !important;
    display: block !important;
    margin: 0 0 1px !important;
    color: var(--m-text-muted) !important;
    font-size: 0.64rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-card-primary] {
    grid-column: 1 / -1 !important;
    padding-bottom: 8px !important;
    border-bottom: 1px solid var(--m-border) !important;
    color: var(--m-text) !important;
    font-size: 0.94rem !important;
    font-weight: 800 !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-card-primary]::before {
    display: none !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-card-actions] {
    grid-column: 1 / -1 !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    padding-top: 8px !important;
    border-top: 1px solid var(--m-border) !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-card-actions]::before {
    display: none !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr.inventory-card-empty-row {
    display: block !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr.inventory-card-empty-row > td {
    display: block !important;
    width: 100% !important;
    padding: 8px 0 !important;
    text-align: center !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr.inventory-card-empty-row > td::before {
    display: none !important;
  }

  #mainContent.inventory-card-table-page table.data-table input,
  #mainContent.inventory-card-table-page table.data-table select {
    width: 100% !important;
    max-width: 100% !important;
  }

  #mainContent.inventory-card-table-page table.data-table .btn,
  #mainContent.inventory-card-table-page table.data-table button {
    width: auto !important;
    max-width: 100% !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr.table-fill-row,
  #mainContent.inventory-card-table-page table.data-table > tbody > tr.finance-table-filler {
    display: none !important;
  }
}

/* Compact Inventory cards and match Catalogue rows to the mobile product pattern. */
@media (max-width: 768px) {
  #mainContent.inventory-card-table-page table.data-table > tbody {
    gap: 8px !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr {
    gap: 6px 12px !important;
    padding: 10px 12px !important;
    border-radius: 13px !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td {
    gap: 1px !important;
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-label]::before {
    font-size: 0.59rem !important;
  }

  #mainContent.inventory-card-table-page table.data-table > tbody > tr > td[data-card-primary] {
    padding-bottom: 6px !important;
    font-size: 0.88rem !important;
  }

  #mainContent.products-admin-page #productsTableBody tr[data-product-id] {
    position: relative !important;
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 3px 8px !important;
    min-height: 0 !important;
    padding: 10px 40px 10px 12px !important;
  }

  #mainContent.products-admin-page #productsTableBody td {
    min-height: 0 !important;
  }

  #mainContent.products-admin-page #productsTableBody td::before {
    display: none !important;
    content: none !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-row-no-cell {
    display: none !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-name-cell {
    display: block !important;
    grid-column: 1 / -1 !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    border: 0 !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-name-primary {
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    line-height: 1.22 !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-name-secondary {
    margin-top: 1px !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-sku-cell,
  #mainContent.products-admin-page #productsTableBody td:nth-child(4),
  #mainContent.products-admin-page #productsTableBody td.products-muted-cell {
    display: block !important;
    width: auto !important;
    margin: 2px 0 5px !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: var(--m-text-muted) !important;
    background: transparent !important;
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-sku-cell {
    grid-column: 1 / 3 !important;
  }

  #mainContent.products-admin-page #productsTableBody td:nth-child(4) {
    grid-column: 3 / 5 !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-muted-cell {
    grid-column: 5 / 7 !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-category-pill {
    display: block !important;
    max-width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: var(--m-text-muted) !important;
    background: transparent !important;
    font-size: inherit !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-stock-cell,
  #mainContent.products-admin-page #productsTableBody td.products-price-cell {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 2px 0 0 !important;
    color: var(--m-text) !important;
    font-size: 0.8rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-stock-cell {
    grid-column: 1 / 4 !important;
    color: #078447 !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-price-cell {
    grid-column: 4 / 7 !important;
    padding-left: 10px !important;
    border-left: 1px solid var(--m-border) !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-stock-primary {
    display: inline !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-stock-primary::after {
    content: " available" !important;
  }

  #mainContent.products-admin-page #productsTableBody .products-stock-secondary {
    display: none !important;
  }

  #mainContent.products-admin-page #productsTableBody tr:has(.products-stock-status.is-low) td.products-stock-cell {
    color: #b45309 !important;
  }

  #mainContent.products-admin-page #productsTableBody tr:has(.products-stock-status.is-out) td.products-stock-cell {
    color: #dc2626 !important;
  }

  #mainContent.products-admin-page #productsTableBody td:nth-child(8) {
    display: none !important;
  }

  #mainContent.products-admin-page #productsTableBody td:nth-child(8):has(.badge) {
    display: block !important;
    grid-column: 1 / -1 !important;
    margin: 4px 0 0 !important;
    padding: 4px 0 0 !important;
    border-top: 1px solid var(--m-border) !important;
  }

  #mainContent.products-admin-page #productsTableBody td:nth-child(8) .products-stock-status {
    display: none !important;
  }

  #mainContent.products-admin-page #productsTableBody td.products-actions-cell {
    position: absolute !important;
    right: 5px !important;
    bottom: 5px !important;
    display: flex !important;
    width: 32px !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
  }

  #mainContent.products-admin-page #productsTableBody .product-row-menu-trigger {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
  }
}

/* Customers use compact records instead of wide desktop tables on mobile. */
@media (max-width: 768px) {
  #mainContent.customer-card-table-page .table-wrap {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.customer-card-table-page table.data-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    background: transparent !important;
  }

  #mainContent.customer-card-table-page table.data-table > thead {
    display: none !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody {
    display: grid !important;
    width: 100% !important;
    gap: 8px !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 6px 10px !important;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 13px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr > td {
    display: flex !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 1px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.76rem !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr > td::before {
    display: block !important;
    margin-bottom: 1px !important;
    color: var(--m-text-muted) !important;
    font-size: 0.58rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(1) {
    grid-column: 1 / -1 !important;
    padding-bottom: 5px !important;
    border-bottom: 1px solid var(--m-border) !important;
    font-size: 0.9rem !important;
    font-weight: 800 !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(1)::before,
  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(7)::before {
    display: none !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(2) {
    grid-column: 1 / 4 !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(2)::before {
    content: "Phone" !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(3) {
    grid-column: 4 / 7 !important;
    padding-left: 10px !important;
    border-left: 1px solid var(--m-border) !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(3)::before {
    content: "ID / Ref" !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(4) {
    grid-column: 1 / 3 !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(4)::before {
    content: "Visits" !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(5) {
    grid-column: 3 / 5 !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(5)::before {
    content: "Spend" !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(6) {
    grid-column: 5 / 7 !important;
    justify-content: center !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(6)::before {
    content: "Status" !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(7) {
    grid-column: 1 / -1 !important;
    padding-top: 6px !important;
    border-top: 1px solid var(--m-border) !important;
  }

  #mainContent.customer-card-table-page #customersTableBody > tr > td:nth-child(7) > div {
    display: flex !important;
    width: 100% !important;
    justify-content: flex-end !important;
    gap: 4px !important;
    flex-wrap: nowrap !important;
  }

  #mainContent.customer-card-table-page #customersTableBody .btn {
    min-width: 0 !important;
    min-height: 30px !important;
    padding: 4px 7px !important;
    font-size: 0.67rem !important;
    white-space: nowrap !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr > td[colspan] {
    grid-column: 1 / -1 !important;
    align-items: center !important;
    text-align: center !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr > td[colspan]::before {
    display: none !important;
  }

  #mainContent.customer-card-table-page table.data-table > tbody > tr.table-fill-row {
    display: none !important;
  }
}

/* Dense mobile datasets stay tabular inside a bounded horizontal viewport. */
@media (max-width: 768px) {
  #mainContent.desktop-table-page {
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  #mainContent.desktop-table-page :is(section, div):has(> .table-wrap),
  #mainContent.desktop-table-page :is(section, div):has(> table.data-table) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #mainContent.desktop-table-page .table-wrap,
  #mainContent.desktop-table-page .ledger-table-wrap,
  #mainContent.desktop-table-page .finance-payables-table-wrap,
  #mainContent.desktop-table-page div:has(> table.data-table) {
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior-inline: contain !important;
    touch-action: pan-x pan-y !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.desktop-table-page .table-wrap::-webkit-scrollbar,
  #mainContent.desktop-table-page .ledger-table-wrap::-webkit-scrollbar,
  #mainContent.desktop-table-page .finance-payables-table-wrap::-webkit-scrollbar,
  #mainContent.desktop-table-page div:has(> table.data-table)::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.desktop-table-page .table-wrap::-webkit-scrollbar-thumb,
  #mainContent.desktop-table-page .ledger-table-wrap::-webkit-scrollbar-thumb,
  #mainContent.desktop-table-page .finance-payables-table-wrap::-webkit-scrollbar-thumb,
  #mainContent.desktop-table-page div:has(> table.data-table)::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.desktop-table-page table.data-table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
  }

  /* ── 27. INVENTORY — HIDE STORAGE TAB ON MOBILE ────────────────────────
     Cold chain compliance is a desktop feature; mobile doesn't need it. */
  [data-module-child-id="coldChainInventory"] {
    display: none !important;
  }

  /* ── 28. INVENTORY › MANAGE — EXCEL-LIKE TABLE + MOBILE LAYOUT ───────────
     Convert desktop split-grid (items table | edit form) to mobile stack.
     Items table: max-height with visible scrollbar (Excel-like grid lines).
     Edit form: below table, full-width, single column. */
  #productsManagePanel {
    padding: 0 !important;
  }

  .product-editor-split-grid {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  .product-editor-items-card,
  .product-editor-settings-card {
    margin-bottom: 14px !important;
    border-radius: 14px !important;
  }

  .product-editor-items-card {
    width: 100% !important;
    margin-bottom: 14px !important;
  }

  .product-editor-settings-card {
    width: 100% !important;
  }

  #productsManageItemsHeader {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface) !important;
    width: 100% !important;
    display: table !important;
    border-collapse: collapse !important;
  }

  #productsManageItemsHeader thead {
    display: table-header-group !important;
  }

  #productsManageItemsHeader th {
    background: var(--m-surface-2) !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: 11px 12px !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-right: 1px solid var(--m-border) !important;
    text-align: left !important;
  }

  #productsManageItemsHeader th:last-child {
    border-right: none !important;
  }

  #productsManageItemsPanel {
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-y: auto !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #productsManageItemsPanel::-webkit-scrollbar {
    width: 6px !important;
  }

  #productsManageItemsPanel::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
    border-radius: 3px !important;
  }

  .batch-movement-item-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: var(--m-surface) !important;
  }

  .batch-movement-item-table thead {
    display: table-header-group !important;
  }

  .batch-movement-item-table tbody {
    display: table-row-group !important;
  }

  .batch-movement-item-table tr {
    display: table-row !important;
    border-bottom: 1px solid var(--m-border) !important;
  }

  .batch-movement-item-table th,
  .batch-movement-item-table td {
    display: table-cell !important;
    padding: 11px 12px !important;
    text-align: left !important;
    border-right: 1px solid var(--m-border) !important;
    vertical-align: middle !important;
    font-size: 0.82rem !important;
  }

  .batch-movement-item-table th:last-child,
  .batch-movement-item-table td:last-child {
    border-right: none !important;
  }

  .batch-movement-item-table th {
    background: var(--m-surface-2) !important;
    font-weight: 700 !important;
    color: var(--m-text) !important;
    font-size: 0.74rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
  }

  .batch-movement-item-table th[style*="text-align:right"],
  .batch-movement-item-table td:nth-child(2) {
    text-align: right !important;
  }

  #productsManageSettingsPanel {
    height: auto !important;
    max-height: none !important;
    overflow-y: visible !important;
  }

  .product-editor-grid {
    grid-template-columns: 1fr !important;
  }

  .product-editor-grid [class*="pe-span"] {
    grid-column: 1 / -1 !important;
  }

  .product-editor-card-head {
    padding: 14px 14px 10px !important;
  }

  .product-editor-card-head h4 {
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--m-text) !important;
  }

  /* ── 29. INVENTORY — ADD PRODUCT BUTTON COLOR ─────────────────────────
     Mobile only: change Add Product button background to #e4edf8. */
  .products-control-add {
    background: #e4edf8 !important;
    border-color: #e4edf8 !important;
    color: var(--m-text) !important;
  }

  .products-control-add:hover {
    background: #d4dde8 !important;
    border-color: #d4dde8 !important;
  }
}

/* ── INVENTORY MOBILE TABLES — REBUILT ────────────────────────────────
   Inventory stays tabular on mobile. Each dataset owns a bounded,
   touch-scrollable viewport; the application page never grows wider. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  #mainContent.inventory-table-page > *,
  #mainContent.inventory-table-page section,
  #mainContent.inventory-table-page section > *,
  #mainContent.inventory-table-page .products-admin-surface,
  #mainContent.inventory-table-page .settings-content-scroll {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #mainContent.inventory-table-page :is(
    .table-wrap,
    .ledger-table-wrap,
    .stocktake-report-table-wrap,
    .batch-movement-panel
  ),
  #mainContent.inventory-table-page div:has(> table.data-table),
  #mainContent.inventory-table-page div:has(> table.table) {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 58%, transparent) transparent !important;
  }

  #mainContent.inventory-table-page :is(
    .table-wrap,
    .ledger-table-wrap,
    .stocktake-report-table-wrap,
    .batch-movement-panel
  )::-webkit-scrollbar,
  #mainContent.inventory-table-page div:has(> table.data-table)::-webkit-scrollbar,
  #mainContent.inventory-table-page div:has(> table.table)::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.inventory-table-page :is(
    .table-wrap,
    .ledger-table-wrap,
    .stocktake-report-table-wrap,
    .batch-movement-panel
  )::-webkit-scrollbar-thumb,
  #mainContent.inventory-table-page div:has(> table.data-table)::-webkit-scrollbar-thumb,
  #mainContent.inventory-table-page div:has(> table.table)::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--m-text-muted) 58%, transparent) !important;
  }

  #mainContent.inventory-table-page table.data-table,
  #mainContent.inventory-table-page table.table,
  #mainContent.inventory-table-page .table-wrap > table {
    display: table !important;
    width: 100% !important;
    min-width: 660px !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.inventory-table-page table:has(th:nth-child(7)) {
    min-width: 840px !important;
  }

  #mainContent.inventory-table-page table:has(th:nth-child(9)) {
    min-width: 1060px !important;
  }

  #mainContent.inventory-table-page table:has(th:nth-child(11)) {
    min-width: 1260px !important;
  }

  #mainContent.inventory-table-page table > thead {
    display: table-header-group !important;
  }

  #mainContent.inventory-table-page table > tbody {
    display: table-row-group !important;
    width: auto !important;
  }

  #mainContent.inventory-table-page table > thead > tr,
  #mainContent.inventory-table-page table > tbody > tr,
  #mainContent.inventory-table-page #productsTableBody tr[data-product-id] {
    position: static !important;
    display: table-row !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  #mainContent.inventory-table-page table > thead > tr > th,
  #mainContent.inventory-table-page table > tbody > tr > td,
  #mainContent.inventory-table-page #productsTableBody td {
    position: static !important;
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.76rem !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #mainContent.inventory-table-page table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
  }

  #mainContent.inventory-table-page table > tbody > tr:nth-child(even) > td {
    background: color-mix(in srgb, var(--m-surface-2) 52%, transparent) !important;
  }

  #mainContent.inventory-table-page table > tbody > tr > td::before,
  #mainContent.inventory-table-page #productsTableBody td::before {
    display: none !important;
    content: none !important;
  }

  #mainContent.inventory-table-page table > tbody > tr:last-child > td {
    border-bottom: 0 !important;
  }

  #mainContent.inventory-table-page table > :is(thead, tbody) > tr > :last-child {
    border-right: 0 !important;
  }

  #mainContent.inventory-table-page table > tbody > tr.table-fill-row,
  #mainContent.inventory-table-page table > tbody > tr.finance-table-filler,
  #mainContent.inventory-table-page table > tbody > tr.finance-petty-filler {
    display: none !important;
  }

  #mainContent.inventory-table-page table input,
  #mainContent.inventory-table-page table select {
    width: auto !important;
    min-width: 78px !important;
    max-width: 150px !important;
    min-height: 34px !important;
    padding: 5px 7px !important;
    font-size: 0.74rem !important;
  }

  #mainContent.inventory-table-page table .btn,
  #mainContent.inventory-table-page table button {
    width: auto !important;
    min-width: 34px !important;
    max-width: none !important;
    min-height: 34px !important;
    padding: 5px 8px !important;
    font-size: 0.7rem !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page #productsTableBody td.products-row-no-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-sku-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-name-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-muted-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-price-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-stock-cell,
  #mainContent.inventory-table-page #productsTableBody td.products-actions-cell,
  #mainContent.inventory-table-page #productsTableBody td:nth-child(4),
  #mainContent.inventory-table-page #productsTableBody td:nth-child(8) {
    position: static !important;
    display: table-cell !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: transparent !important;
    color: var(--m-text) !important;
    font-size: 0.76rem !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page #productsTableBody .products-name-primary {
    font-size: 0.78rem !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
  }

  #mainContent.inventory-table-page #productsTableBody .products-name-secondary,
  #mainContent.inventory-table-page #productsTableBody .products-stock-secondary {
    margin-top: 1px !important;
    color: var(--m-text-muted) !important;
    font-size: 0.66rem !important;
    line-height: 1.2 !important;
  }

  #mainContent.inventory-table-page #productsTableBody .products-stock-primary::after {
    content: none !important;
  }

  #mainContent.inventory-table-page #productsTableBody .products-category-pill {
    display: inline-flex !important;
    max-width: none !important;
    padding: 2px 7px !important;
    overflow: visible !important;
    border-radius: 999px !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text-secondary) !important;
    font-size: 0.66rem !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page #productsTableBody td.products-actions-cell {
    min-width: 48px !important;
    text-align: center !important;
  }

  #mainContent.inventory-table-page #productsTableBody .product-row-menu-trigger {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
  }
}

/* Requested Inventory lists use the exact Manage-tab table shell on mobile. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page .inventory-manage-table-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-shell > .table-toolbar {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table {
    display: table !important;
    width: 100% !important;
    min-width: 660px !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table:has(th:nth-child(7)) {
    min-width: 840px !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table:has(th:nth-child(9)) {
    min-width: 1060px !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > thead {
    display: table-header-group !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > tbody {
    display: table-row-group !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > :is(thead, tbody) > tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > :is(thead, tbody) > tr > :is(th, td) {
    position: static !important;
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.82rem !important;
    line-height: 1.25 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface-2) !important;
    color: var(--m-text) !important;
    font-size: 0.74rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > tbody > tr:nth-child(even) > td {
    background: color-mix(in srgb, var(--m-surface-2) 52%, transparent) !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > :is(thead, tbody) > tr > :last-child {
    border-right: 0 !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > tbody > tr > td::before {
    display: none !important;
    content: none !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll #productsTableBody td,
  #mainContent.inventory-table-page .inventory-manage-table-scroll #priceListTableBody td,
  #mainContent.inventory-table-page .inventory-manage-table-scroll #expiryTableBody td {
    position: static !important;
    display: table-cell !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 11px 12px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: transparent !important;
    color: var(--m-text) !important;
    font-size: 0.82rem !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll #productsTableBody td.products-actions-cell {
    min-width: 48px !important;
    text-align: center !important;
  }
}

/* Inventory table sizing audit: autofit narrow schemas and cap every row viewport. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page .inventory-manage-table-scroll > table,
  #mainContent.inventory-table-page .inventory-manage-table-scroll > table:has(th:nth-child(7)),
  #mainContent.inventory-table-page .inventory-manage-table-scroll > table:has(th:nth-child(9)),
  #mainContent.inventory-table-page .inventory-manage-table-scroll > table:has(th:nth-child(11)) {
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > :is(thead, tbody) > tr > :is(th, td) {
    width: auto !important;
    min-width: 0 !important;
    max-width: 190px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > thead > tr > th {
    max-width: 150px !important;
  }

  #mainContent.inventory-table-page .inventory-manage-table-scroll > table > :is(thead, tbody) > tr > :is(th, td):has(
    input,
    select,
    button,
    .btn
  ) {
    max-width: none !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page :is(
    .inventory-manage-table-scroll,
    .ledger-table-scroll,
    .batch-movement-panel
  ),
  #mainContent.inventory-table-page .table-wrap:has(> table),
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.data-table),
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.table) {
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
  }

  #mainContent.inventory-table-page :is(
    .inventory-manage-table-scroll,
    .ledger-table-scroll,
    .batch-movement-panel
  ) {
    height: min(50dvh, 420px) !important;
  }

  #mainContent.inventory-table-page .table-wrap:has(> table) > .table-toolbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 5 !important;
  }

  #mainContent.inventory-table-page table.data-table,
  #mainContent.inventory-table-page table.table,
  #mainContent.inventory-table-page .table-wrap > table,
  #mainContent.inventory-table-page table:has(th:nth-child(7)),
  #mainContent.inventory-table-page table:has(th:nth-child(9)),
  #mainContent.inventory-table-page table:has(th:nth-child(11)) {
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
  }

  #mainContent.inventory-table-page table > :is(thead, tbody) > tr > :is(th, td) {
    width: auto !important;
    min-width: 0 !important;
    max-width: 190px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page table > thead > tr > th {
    max-width: 150px !important;
  }

  #mainContent.inventory-table-page :is(
    #productsTableBody,
    #priceListTableBody,
    #expiryTableBody
  ) > tr > td {
    width: auto !important;
    min-width: 0 !important;
    max-width: 190px !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page :is(
    #productsTableBody,
    #priceListTableBody,
    #expiryTableBody
  ) > tr > td:has(input, select, button, .btn) {
    max-width: none !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page #productsManagePanel .batch-movement-item-table,
  #mainContent.inventory-table-page #productsAddPanel .batch-movement-item-table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  #mainContent.inventory-table-page #productsManagePanel .batch-movement-item-table :is(th, td):first-child,
  #mainContent.inventory-table-page #productsAddPanel .batch-movement-item-table :is(th, td):first-child {
    width: 78% !important;
    max-width: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page #productsManagePanel .batch-movement-item-table :is(th, td):last-child,
  #mainContent.inventory-table-page #productsAddPanel .batch-movement-item-table :is(th, td):last-child {
    width: 22% !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page :is(
    .inventory-manage-table-scroll,
    .ledger-table-scroll,
    .batch-movement-panel
  )::-webkit-scrollbar,
  #mainContent.inventory-table-page .table-wrap:has(> table)::-webkit-scrollbar,
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.data-table)::-webkit-scrollbar,
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.table)::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.inventory-table-page :is(
    .inventory-manage-table-scroll,
    .ledger-table-scroll,
    .batch-movement-panel
  )::-webkit-scrollbar-thumb,
  #mainContent.inventory-table-page .table-wrap:has(> table)::-webkit-scrollbar-thumb,
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.data-table)::-webkit-scrollbar-thumb,
  #mainContent.inventory-table-page div:not(.product-editor-card):has(> table.table)::-webkit-scrollbar-thumb {
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--m-text-muted) 58%, transparent) !important;
  }
}

/* Price List: compact editable grid while retaining in-table scrolling. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page #productsPriceListPanel .inventory-manage-table-scroll > table.products-table {
    width: 720px !important;
    min-width: 720px !important;
    max-width: 720px !important;
    table-layout: fixed !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table > thead {
    display: table-header-group !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel #priceListTableBody {
    display: table-row-group !important;
    width: auto !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel #priceListTableBody > tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td) {
    display: table-cell !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px 6px !important;
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(1) { width: 32px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(2) { width: 145px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(3) { width: 78px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(4) { width: 112px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(5) { width: 78px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(6) { width: 64px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(7) { width: 58px !important; }
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(8),
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(9) { width: 76px !important; }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(2) {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel #priceListTableBody td::before {
    content: none !important;
    display: none !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel :is(
    #priceListSelectAll,
    .price-select-checkbox
  ) {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 2px !important;
    accent-color: var(--primary) !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .pricelist-input {
    width: 68px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 30px !important;
    min-height: 30px !important;
    padding: 3px 4px !important;
    font-size: 13px !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table td:nth-child(6) .pricelist-input,
  #mainContent.inventory-table-page #productsPriceListPanel .products-table td:nth-child(7) .pricelist-input {
    width: 52px !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .price-sell-wrap {
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .price-calc-inline-btn {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
    padding: 0 !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(8),
  #mainContent.inventory-table-page #productsPriceListPanel .products-table :is(th, td):nth-child(9) {
    white-space: normal !important;
    overflow-wrap: normal !important;
    text-align: center !important;
  }

  #mainContent.inventory-table-page #productsPriceListPanel #priceListTableBody td:nth-child(8),
  #mainContent.inventory-table-page #productsPriceListPanel #priceListTableBody td:nth-child(9) {
    font-size: 0.67rem !important;
    line-height: 1.35 !important;
  }
}

/* Stock Ledger: compact summary grid with bounded two-axis scrolling. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page .ledger-table-scroll > table.ledger-table {
    width: 720px !important;
    min-width: 720px !important;
    max-width: 720px !important;
    table-layout: fixed !important;
  }

  #mainContent.inventory-table-page .ledger-table col:nth-child(1) { width: 90px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(2) { width: 68px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(3) { width: 138px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(4) { width: 64px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(5) { width: 52px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(6) { width: 56px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(7) { width: 64px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(8) { width: 92px !important; }
  #mainContent.inventory-table-page .ledger-table col:nth-child(9) { width: 96px !important; }

  #mainContent.inventory-table-page .ledger-table :is(th, td) {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px 6px !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    vertical-align: middle !important;
  }

  #mainContent.inventory-table-page .ledger-table th {
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  #mainContent.inventory-table-page .ledger-table :is(th, td):nth-child(3),
  #mainContent.inventory-table-page .ledger-table :is(th, td):nth-child(8),
  #mainContent.inventory-table-page .ledger-table :is(th, td):nth-child(9) {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page .ledger-table .ledger-summary-drill-btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    padding: 2px 4px !important;
    font-size: 0.68rem !important;
    line-height: 1.25 !important;
    white-space: normal !important;
  }

  #mainContent.inventory-table-page .ledger-table .ledger-ref-clamp {
    display: block !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.inventory-table-page .ledger-toolbar .ledger-date-input {
    font-size: 13px !important;
  }

  #mainContent.inventory-table-page .ledger-toolbar .ledger-date-input::-webkit-datetime-edit {
    font-size: 13px !important;
  }
}

/* Transfers: keep the search icon separate from the placeholder text. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page #transferSearch {
    padding-left: 42px !important;
  }

  #mainContent.inventory-table-page #transferSearch::placeholder {
    font-size: 13px !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> #transferSearch) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> #transferSearch) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }
}

/* Returns, Adjustments, and Stock Take: normalized mobile search fields. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page :is(
    #supplierReturnSearchInput,
    #adjSearchInput,
    #takeSearchInput,
    #takeProductSearchInput
  ) {
    padding-left: 42px !important;
  }

  #mainContent.inventory-table-page :is(
    #supplierReturnSearchInput,
    #adjSearchInput,
    #takeSearchInput,
    #takeProductSearchInput
  )::placeholder {
    font-size: 13px !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> :is(
    #supplierReturnSearchInput,
    #adjSearchInput,
    #takeSearchInput,
    #takeProductSearchInput
  )) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> :is(
    #supplierReturnSearchInput,
    #adjSearchInput,
    #takeSearchInput,
    #takeProductSearchInput
  )) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }
}

/* Stock Ledger: keep the search icon separate from its placeholder. */
@media (max-width: 768px) {
  #mainContent.inventory-table-page #ledgerSearchInput {
    padding-left: 42px !important;
  }

  #mainContent.inventory-table-page #ledgerSearchInput::placeholder {
    font-size: 13px !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> #ledgerSearchInput) {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.inventory-table-page .search-wrap:has(> #ledgerSearchInput) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }
}

/* Customer records: Inventory-style mobile table and corrected search field. */
@media (max-width: 768px) {
  #mainContent.customer-card-table-page .customer-records-table-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-shell > .table-toolbar {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  #mainContent.customer-card-table-page #customerSearchInput {
    padding-left: 42px !important;
  }

  #mainContent.customer-card-table-page #customerSearchInput::placeholder {
    font-size: 13px !important;
  }

  #mainContent.customer-card-table-page .search-wrap:has(> #customerSearchInput) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.customer-card-table-page .search-wrap:has(> #customerSearchInput) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table.data-table {
    display: table !important;
    width: 750px !important;
    min-width: 750px !important;
    max-width: 750px !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > thead {
    display: table-header-group !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > tbody {
    display: table-row-group !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > :is(thead, tbody) > tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > :is(thead, tbody) > tr > :is(th, td) {
    position: static !important;
    display: table-cell !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 7px 7px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface-2) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll > table > tbody > tr:nth-child(even) > td {
    background: color-mix(in srgb, var(--m-surface-2) 52%, transparent) !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll #customersTableBody > tr > td::before {
    content: none !important;
    display: none !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(1) { width: 120px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(2) { width: 90px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(3) { width: 80px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(4) { width: 55px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(5) { width: 100px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(6) { width: 55px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(7) { width: 70px !important; }
  #mainContent.customer-card-table-page .customer-records-table-scroll .data-table :is(th, td):nth-child(8) { width: 180px !important; }

  #mainContent.customer-card-table-page .customer-records-table-scroll #customersTableBody > tr > td:nth-child(8) > div {
    display: flex !important;
    width: auto !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    flex-wrap: nowrap !important;
  }

  #mainContent.customer-card-table-page .customer-records-table-scroll #customersTableBody .btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    padding: 3px 6px !important;
    font-size: 0.66rem !important;
    white-space: nowrap !important;
  }
}

/* Prescription modules: Inventory-style mobile tables and filter controls. */
@media (max-width: 768px) {
  #mainContent.rx-page .rx-mobile-table-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.rx-page .rx-mobile-table-shell > .table-toolbar {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  #mainContent.rx-page :is(
    #rxSearchInput,
    #pendingCollectionSearch,
    #longTermPatientsSearch
  ) {
    padding-left: 42px !important;
  }

  #mainContent.rx-page :is(
    #rxSearchInput,
    #pendingCollectionSearch,
    #longTermPatientsSearch
  )::placeholder {
    font-size: 13px !important;
  }

  #mainContent.rx-page .search-wrap:has(> :is(
    #rxSearchInput,
    #pendingCollectionSearch,
    #longTermPatientsSearch
  )) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.rx-page .search-wrap:has(> :is(
    #rxSearchInput,
    #pendingCollectionSearch,
    #longTermPatientsSearch
  )) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  #mainContent.rx-page .rx-date-range {
    flex: 1 0 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 8px !important;
  }

  #mainContent.rx-page .rx-date-range > span {
    display: none !important;
  }

  #mainContent.rx-page .rx-date-range > .input {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 13px !important;
  }

  #mainContent.rx-page .rx-date-range > .input::-webkit-datetime-edit {
    font-size: 13px !important;
  }

  #mainContent.rx-page #longTermPatientsPanel .ltp-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #mainContent.rx-page #longTermPatientsPanel .ltp-upcoming-card {
    grid-column: 1 / -1 !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table.data-table {
    display: table !important;
    max-width: none !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) {
    width: 680px !important;
    min-width: 680px !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) {
    width: 845px !important;
    min-width: 845px !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) {
    width: 1100px !important;
    min-width: 1100px !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > thead {
    display: table-header-group !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > tbody {
    display: table-row-group !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > :is(thead, tbody) > tr {
    display: table-row !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > :is(thead, tbody) > tr > :is(th, td) {
    position: static !important;
    display: table-cell !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 7px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--m-text) !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface-2) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table > tbody > tr:nth-child(even) > td {
    background: color-mix(in srgb, var(--m-surface-2) 52%, transparent) !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(1) { width: 80px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(2) { width: 90px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(3) { width: 120px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(4) { width: 110px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(5) { width: 50px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(6) { width: 80px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(7) { width: 80px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#rxTableBody) :is(th, td):nth-child(8) { width: 70px !important; }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(1) { width: 85px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(2) { width: 110px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(3) { width: 90px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(4) { width: 120px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(5) { width: 100px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(6) { width: 45px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(7) { width: 85px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(8) { width: 75px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#pendingCollectionTableBody) :is(th, td):nth-child(9) { width: 135px !important; }

  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(1) { width: 110px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(2) { width: 90px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(3) { width: 130px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(4) { width: 65px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(5) { width: 65px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(6) { width: 90px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(7) { width: 120px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(8) { width: 120px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(9) { width: 90px !important; }
  #mainContent.rx-page .rx-mobile-table-scroll > table:has(#longTermPatientsTableBody) :is(th, td):nth-child(10) { width: 220px !important; }

  #mainContent.rx-page .rx-mobile-table-scroll td:last-child > div {
    display: flex !important;
    gap: 4px !important;
    flex-wrap: nowrap !important;
  }

  #mainContent.rx-page .rx-mobile-table-scroll .btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    padding: 3px 6px !important;
    font-size: 0.66rem !important;
    white-space: nowrap !important;
  }
}

/* Compliance: compact controls and Inventory-style mobile table viewports. */
@media (max-width: 768px) {
  [data-module-child-id="coldChainCompliance"] {
    display: none !important;
  }

  #mainContent.desktop-table-page .controlled-mobile-table-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.desktop-table-page .controlled-mobile-table-shell > .table-toolbar {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  #mainContent.desktop-table-page :is(#ctrlSearchInput, #ctrlApprovalSearchInput) {
    padding-left: 42px !important;
  }

  #mainContent.desktop-table-page :is(#ctrlSearchInput, #ctrlApprovalSearchInput)::placeholder {
    font-size: 13px !important;
  }

  #mainContent.desktop-table-page .search-wrap:has(> :is(
    #ctrlSearchInput,
    #ctrlApprovalSearchInput
  )) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.desktop-table-page .search-wrap:has(> :is(
    #ctrlSearchInput,
    #ctrlApprovalSearchInput
  )) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  #mainContent.desktop-table-page .ctrl-date-range {
    flex: 1 0 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 8px !important;
  }

  #mainContent.desktop-table-page .ctrl-date-range > span {
    display: none !important;
  }

  #mainContent.desktop-table-page .ctrl-date-range > .input {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 13px !important;
  }

  #mainContent.desktop-table-page .ctrl-date-range > .input::-webkit-datetime-edit {
    font-size: 13px !important;
  }

  #mainContent.desktop-table-page .ctrl-register-actions {
    flex: 1 0 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    margin-left: 0 !important;
    gap: 8px !important;
  }

  #mainContent.desktop-table-page .ctrl-register-drug-filter {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  #mainContent.desktop-table-page .ctrl-register-actions > .btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  ) {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  )::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  )::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  ) > table.data-table {
    display: table !important;
    max-width: none !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.desktop-table-page .ctrl-register-scroll > table {
    width: 1020px !important;
    min-width: 1020px !important;
  }

  #mainContent.desktop-table-page .controlled-mobile-table-scroll > table:has(#ctrlApprovalsBody) {
    width: 790px !important;
    min-width: 790px !important;
  }

  #mainContent.desktop-table-page .controlled-balance-table-scroll > table:has(#ctrlBalanceBody) {
    width: max-content !important;
    min-width: 100% !important;
    table-layout: auto !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  ) > table > :is(thead, tbody) > tr > :is(th, td) {
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    padding: 7px !important;
    border: 0 !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    background: transparent !important;
    color: var(--m-text) !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  ) > table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface-2) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
  }

  #mainContent.desktop-table-page .controlled-balance-table-scroll > table > :is(thead, tbody) > tr > :is(th, td) {
    width: auto !important;
    max-width: 120px !important;
  }

  #mainContent.desktop-table-page :is(
    .ctrl-register-scroll,
    .controlled-mobile-table-scroll
  ) .btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    padding: 3px 6px !important;
    font-size: 0.66rem !important;
    white-space: nowrap !important;
  }
}

/* Finance: responsive chart, compact filters, and bounded mobile tables. */
@media (max-width: 768px) {
  #mainContent.finance-page .finance-summary-trend-card {
    min-width: 0 !important;
    padding: 12px !important;
    overflow: hidden !important;
  }

  #mainContent.finance-page .finance-summary-chart,
  #mainContent.finance-page .finance-trend-widget,
  #mainContent.finance-page .finance-trend-chart-wrap {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #mainContent.finance-page .finance-trend-chart-wrap {
    min-height: 200px !important;
    height: 210px !important;
    max-height: 210px !important;
    padding: 6px 2px 10px !important;
    border-radius: 14px !important;
  }

  #mainContent.finance-page .finance-trend-chart-wrap canvas {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #mainContent.finance-page .finance-trend-card-header .finance-trend-legend {
    min-width: 0 !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  #mainContent.finance-page .finance-trend-legend-item,
  #mainContent.finance-page .finance-trend-chip {
    min-height: 26px !important;
    padding: 4px 7px !important;
    font-size: 0.66rem !important;
  }

  #mainContent.finance-page .finance-mobile-table-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.finance-page .finance-mobile-table-shell > .table-toolbar {
    position: relative !important;
    top: auto !important;
    z-index: 1 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  #mainContent.finance-page #expenseSearchInput {
    padding-left: 42px !important;
  }

  #mainContent.finance-page #expenseSearchInput::placeholder {
    font-size: 13px !important;
  }

  #mainContent.finance-page .search-wrap:has(> #expenseSearchInput) {
    position: relative !important;
    flex: 1 0 100% !important;
    width: 100% !important;
    max-width: none !important;
  }

  #mainContent.finance-page .search-wrap:has(> #expenseSearchInput) > .search-icon {
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    z-index: 2 !important;
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
    min-height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
  }

  #mainContent.finance-page .finance-expense-date-range {
    flex: 1 0 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 8px !important;
  }

  #mainContent.finance-page .finance-expense-date-range > span {
    display: none !important;
  }

  #mainContent.finance-page .finance-expense-date-range > .input,
  #mainContent.finance-page #financeReportsMonth {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 13px !important;
  }

  #mainContent.finance-page .finance-expense-date-range > .input::-webkit-datetime-edit,
  #mainContent.finance-page #financeReportsMonth::-webkit-datetime-edit {
    font-size: 13px !important;
  }

  #mainContent.finance-page #financeReportsPanel .finance-reports-header {
    align-items: stretch !important;
  }

  #mainContent.finance-page #financeReportsPanel .finance-reports-header > .form-group {
    width: 100% !important;
    min-width: 0 !important;
  }

  #mainContent.finance-page :is(
    .finance-mobile-table-scroll,
    #financeCashPanel .finance-payables-table-wrap,
    #financePettyPanel .finance-petty-table-wrap,
    #financeVatPanel .table-wrap
  ) {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 50dvh !important;
    max-height: 50dvh !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.finance-page :is(
    .finance-mobile-table-scroll,
    #financeCashPanel .finance-payables-table-wrap,
    #financePettyPanel .finance-petty-table-wrap,
    #financeVatPanel .table-wrap
  )::-webkit-scrollbar {
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.finance-page :is(
    .finance-mobile-table-scroll,
    #financeCashPanel .finance-payables-table-wrap,
    #financePettyPanel .finance-petty-table-wrap,
    #financeVatPanel .table-wrap
  )::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.finance-page .finance-mobile-table-scroll > table {
    width: 760px !important;
    min-width: 760px !important;
    max-width: 760px !important;
    table-layout: fixed !important;
  }

  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(1) { width: 80px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(2) { width: 95px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(3) { width: 140px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(4) { width: 85px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(5) { width: 110px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(6) { width: 75px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(7) { width: 85px !important; }
  #mainContent.finance-page .finance-mobile-table-scroll .data-table :is(th, td):nth-child(8) { width: 90px !important; }

  #mainContent.finance-page #financeCashPanel .finance-payables-table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  #mainContent.finance-page #financeCashPanel .finance-payables-table :is(th, td):nth-child(1) { width: 45% !important; }
  #mainContent.finance-page #financeCashPanel .finance-payables-table :is(th, td):nth-child(2) { width: 30% !important; }
  #mainContent.finance-page #financeCashPanel .finance-payables-table :is(th, td):nth-child(3) { width: 25% !important; }

  #mainContent.finance-page #financeVatPanel .data-table {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  #mainContent.finance-page #financeVatPanel .data-table :is(th, td) {
    width: 25% !important;
  }

  #mainContent.finance-page :is(
    .finance-mobile-table-scroll,
    #financeCashPanel .finance-payables-table-wrap,
    #financePettyPanel .finance-petty-table-wrap,
    #financeVatPanel .table-wrap
  ) table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    background: var(--m-surface-2) !important;
  }

  #mainContent.finance-page :is(
    .finance-mobile-table-scroll,
    #financeCashPanel .finance-payables-table-wrap,
    #financePettyPanel .finance-petty-table-wrap,
    #financeVatPanel .table-wrap
  ) table :is(th, td) {
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.finance-page .finance-petty-toolbar {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  #mainContent.finance-page .finance-petty-toolbar > :is(.select, .input) {
    width: 100% !important;
    min-width: 0 !important;
  }

  #mainContent.finance-page .finance-petty-toolbar > div {
    grid-column: 1 / -1 !important;
    order: 3 !important;
    margin-left: 0 !important;
    text-align: center !important;
    font-size: 0.7rem !important;
  }

  #mainContent.finance-page .finance-petty-toolbar > .btn {
    grid-column: 1 / -1 !important;
    order: 2 !important;
    width: 100% !important;
  }

  #mainContent.finance-page .finance-petty-sheet-header {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #mainContent.finance-page .finance-petty-sheet-cell,
  #mainContent.finance-page .finance-petty-sheet-title,
  #mainContent.finance-page .finance-petty-sheet-note {
    min-height: 48px !important;
    padding: 8px 10px !important;
  }

  #mainContent.finance-page .finance-petty-sheet-title,
  #mainContent.finance-page .finance-petty-sheet-note {
    grid-column: 1 / -1 !important;
  }

  #mainContent.finance-page .finance-petty-sheet-title {
    font-size: 1rem !important;
  }

  #mainContent.finance-page .finance-petty-sheet-note {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    font-size: 0.75rem !important;
  }

  #mainContent.finance-page .finance-petty-sheet-note > div {
    padding: 4px 0 !important;
  }

  #mainContent.finance-page .finance-petty-sheet-note > div + div {
    border-top: 0 !important;
    border-left: 1px solid var(--m-border) !important;
    padding-left: 8px !important;
  }

  #mainContent.finance-page #financePettyPanel .finance-petty-table {
    width: 1040px !important;
    min-width: 1040px !important;
    max-width: 1040px !important;
    table-layout: fixed !important;
  }
}

/* Reports: viewport-safe mobile panels with bounded, auto-fit tables. */
@media (max-width: 768px) {
  #mainContent.reports-page {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: calc(100dvh - var(--m-topbar-h) - var(--m-bottom-nav-h)) !important;
    max-height: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  #mainContent.reports-page :is(
    #rptOverviewPanel,
    #rptDailyPanel,
    #rptProfitPanel,
    #rptStockPanel,
    #rptExpiryPanel,
    #rptPurchasesPanel,
    #rptCashiersPanel,
    #rptSuppliersPanel,
    #rptCustomersPanel,
    #rptTaxPanel,
    #rptReorderPanel,
    #rptInventoryAuditPanel,
    #rptStatementsPanel,
    #rptActivityPanel
  ) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: none !important;
    flex-direction: column !important;
    gap: 12px !important;
    overflow: visible !important;
  }

  #mainContent.reports-page :is(
    #rptStockPanel,
    #rptExpiryPanel,
    #rptPurchasesPanel,
    #rptCashiersPanel,
    #rptSuppliersPanel,
    #rptCustomersPanel,
    #rptReorderPanel,
    #rptInventoryAuditPanel,
    #rptStatementsPanel,
    #rptActivityPanel
  ) > div {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: none !important;
    overflow: visible !important;
  }

  #mainContent.reports-page :is(
    .rpt-grid-2,
    .rpt-grid-2-even,
    .rpt-chart-grid
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  #mainContent.reports-page .kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #mainContent.reports-page .kpi-card {
    min-width: 0 !important;
    padding: 11px 12px !important;
  }

  #mainContent.reports-page .kpi-value {
    font-size: clamp(1rem, 5vw, 1.3rem) !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.reports-page :is(
    .card,
    .card-body,
    .rpt-chart-card,
    .dashboard-chart-card,
    .rpt-rank-list,
    .rpt-rank-item,
    .rpt-rank-main
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #mainContent.reports-page .rpt-chart-card {
    width: 100% !important;
    overflow: hidden !important;
  }

  #mainContent.reports-page .rpt-chart-card .card-body {
    min-height: 210px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    overflow: hidden !important;
  }

  #mainContent.reports-page :is(
    #rptStockCatScroll,
    #rptExpiryScroll,
    #rptPurchScroll,
    #rptCashScroll,
    #rptSuppScroll,
    #rptCustRevScroll,
    #rptCustOrdScroll,
    #rptReorderScroll,
    #rptAgeingScroll,
    #rptActivityScroll
  ) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  #mainContent.reports-page :is(
    #rptStockCategoryChart,
    #rptExpiryMonthChart,
    #rptPurchasesTrendChart,
    #rptCashiersChart,
    #rptSuppliersChart,
    #rptCustomersRevenueChart,
    #rptCustomersOrdersChart,
    #rptReorderChart,
    #rptStockAgeingChart,
    #rptActivityChart
  ) {
    max-width: 100% !important;
    height: 220px !important;
    max-height: 220px !important;
  }

  #mainContent.reports-page .rpt-chart-svg,
  #mainContent.reports-page canvas {
    max-width: 100% !important;
  }

  #mainContent.reports-page .rpt-rank-item {
    gap: 7px !important;
  }

  #mainContent.reports-page .rpt-rank-name {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.reports-page .rpt-rank-value {
    max-width: 42% !important;
    padding: 2px 6px !important;
    font-size: 0.72rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.reports-page :is(
    #rptProfitPanel,
    #rptDailyPanel
  ) > div:has(> input[type="date"]) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  #mainContent.reports-page :is(
    #rptProfitPanel,
    #rptDailyPanel
  ) > div:has(> input[type="date"]) > span {
    display: none !important;
  }

  #mainContent.reports-page :is(
    #rptProfitFrom,
    #rptProfitTo,
    #rptDateFrom,
    #rptDateTo,
    #rptStatementDateFrom,
    #rptStatementDateTo
  ) {
    width: 100% !important;
    min-width: 0 !important;
    font-size: 13px !important;
  }

  #mainContent.reports-page :is(
    #rptProfitFrom,
    #rptProfitTo,
    #rptDateFrom,
    #rptDateTo,
    #rptStatementDateFrom,
    #rptStatementDateTo
  )::-webkit-datetime-edit {
    font-size: 13px !important;
  }

  #mainContent.reports-page #rptProfitFilterBtn {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  #mainContent.reports-page :is(#rptFilterBtn, #rptExportBtn) {
    width: 100% !important;
    margin-left: 0 !important;
  }

  #mainContent.reports-page div:has(> #rptStatementDateFrom) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    margin-left: 0 !important;
    gap: 6px !important;
  }

  #mainContent.reports-page div:has(> #rptStatementDateFrom) > span {
    display: none !important;
  }

  #mainContent.reports-page div:has(> #rptStatementDateFrom) > .btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  #mainContent.reports-page :is(
    #rptStockPanel,
    #rptExpiryPanel,
    #rptPurchasesPanel,
    #rptCashiersPanel,
    #rptSuppliersPanel,
    #rptCustomersPanel,
    #rptReorderPanel,
    #rptInventoryAuditPanel,
    #rptStatementsPanel,
    #rptActivityPanel
  ) [style*="margin-left:auto"] {
    margin-left: 0 !important;
  }

  #mainContent.reports-page :is(
    #rptStockPanel,
    #rptExpiryPanel,
    #rptPurchasesPanel,
    #rptCashiersPanel,
    #rptSuppliersPanel,
    #rptCustomersPanel,
    #rptReorderPanel,
    #rptInventoryAuditPanel,
    #rptStatementsPanel,
    #rptActivityPanel
  ) div[style*="display:flex"][style*="align-items:center"] {
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }

  #mainContent.reports-page .table-wrap:has(> table.data-table),
  #mainContent.reports-page #rptDailyPanel .rpt-daily-scroll {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: min(50dvh, 420px) !important;
    min-height: 0 !important;
    max-height: min(50dvh, 420px) !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    border: 1px solid var(--m-border) !important;
    border-radius: 14px !important;
    background: var(--m-surface) !important;
    box-shadow: 0 5px 16px rgba(15, 23, 42, 0.05) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    scrollbar-width: thin !important;
    scrollbar-color: color-mix(in srgb, var(--m-text-muted) 55%, transparent) transparent !important;
  }

  #mainContent.reports-page #rptDailyPanel > .table-wrap {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  #mainContent.reports-page .table-wrap:has(> table.data-table)::-webkit-scrollbar,
  #mainContent.reports-page #rptDailyPanel .rpt-daily-scroll::-webkit-scrollbar {
    display: block !important;
    width: 6px !important;
    height: 6px !important;
  }

  #mainContent.reports-page .table-wrap:has(> table.data-table)::-webkit-scrollbar-thumb,
  #mainContent.reports-page #rptDailyPanel .rpt-daily-scroll::-webkit-scrollbar-thumb {
    border-radius: 3px !important;
    background: color-mix(in srgb, var(--m-text-muted) 55%, transparent) !important;
  }

  #mainContent.reports-page :is(
    .table-wrap:has(> table.data-table),
    #rptDailyPanel .rpt-daily-scroll
  ) > table.data-table {
    display: table !important;
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: var(--m-surface) !important;
  }

  #mainContent.reports-page :is(
    .table-wrap:has(> table.data-table),
    #rptDailyPanel .rpt-daily-scroll
  ) > table > :is(thead, tbody) > tr > :is(th, td) {
    width: auto !important;
    min-width: 0 !important;
    max-width: 170px !important;
    height: auto !important;
    padding: 7px !important;
    border-right: 1px solid var(--m-border) !important;
    border-bottom: 1px solid var(--m-border) !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    text-align: left !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #mainContent.reports-page :is(
    .table-wrap:has(> table.data-table),
    #rptDailyPanel .rpt-daily-scroll
  ) > table > thead > tr > th {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    max-width: 135px !important;
    background: var(--m-surface-2) !important;
    font-size: 0.69rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.025em !important;
    text-transform: uppercase !important;
  }

  #mainContent.reports-page :is(
    .table-wrap:has(> table.data-table),
    #rptDailyPanel .rpt-daily-scroll
  ) .btn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    padding: 3px 6px !important;
    font-size: 0.66rem !important;
    white-space: nowrap !important;
  }

  #mainContent.reports-page #rptTaxPanel .table-wrap > table {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: fixed !important;
  }

  #mainContent.reports-page #rptTaxPanel .table-wrap > table :is(th, td) {
    width: 20% !important;
  }
}

/* Global mobile dark mode: #181818 canvas and visible native calendar fields. */
@media (max-width: 768px) {
  html[data-theme="dark"] {
    --m-bg: #181818;
    --bg: #181818;
    color-scheme: dark;
  }

  html[data-theme="dark"],
  html[data-theme="dark"] body,
  html[data-theme="dark"] .app-shell,
  html[data-theme="dark"] .app-body,
  html[data-theme="dark"] .main-content {
    background-color: #181818 !important;
  }

  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  ) {
    color-scheme: dark !important;
    background-color: var(--m-surface) !important;
    color: var(--m-text) !important;
    -webkit-text-fill-color: var(--m-text) !important;
    caret-color: var(--m-text) !important;
  }

  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit,
  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit-fields-wrapper,
  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit-text,
  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit-day-field,
  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit-month-field,
  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-datetime-edit-year-field {
    color: var(--m-text-secondary) !important;
    -webkit-text-fill-color: var(--m-text-secondary) !important;
    opacity: 1 !important;
  }

  html[data-theme="dark"] input:is(
    [type="date"],
    [type="month"],
    [type="datetime-local"]
  )::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.25) !important;
    opacity: 0.9 !important;
  }
}

/* ── 30. DASHBOARD DARK MODE — KPI TEXT VISIBILITY ──────────────────*/
@media (max-width: 768px) {
  [data-theme="dark"] .dashboard-kpi-grid .kpi-card {
    background: var(--m-surface) !important;
    color: var(--m-text) !important;
    border-color: var(--m-border) !important;
  }
  [data-theme="dark"] .dashboard-kpi-grid .kpi-label,
  [data-theme="dark"] .dashboard-kpi-grid .kpi-value {
    color: var(--m-text) !important;
  }
}
