/*
 * ACTS — Global compact mobile layout (Round 160).
 * ONE shared stylesheet for the Members Portal (body.mp-body) and the ACTS System (body.admin-body), loaded from the two shared
 * layouts. Everything that changes anything lives inside @media (max-width:600px): desktop and tablet are untouched.
 * Cache: asset_url() appends ?v=<file mtime>, so installing this file changes the stylesheet URL and phones fetch it again.
 * `!important` appears only where marked [!]: overriding inline style="" attributes and the per-context positions in app-switch.css.
 */
.mc-m-only { display: none; }
.mc-pair { display: contents; }

@media (max-width: 600px) {
  .mc-m-only { display: block; }
  .mc-m-only.mc-inline { display: inline; }
  details.mc-m-only { display: block; }
  button.mc-m-only, a.mc-m-only { display: inline-flex; }
  .mc-hide-m { display: none !important; } /* [!] helper must win over component display rules */

  /* ===== 1. tokens ===== */
  :root {
    --m-page-pad: 12px; --m-section-gap: 12px; --m-card-pad: 12px; --m-item-pad: 10px 12px;
    --m-radius: 12px; --m-radius-sm: 10px; --m-radius-in: 8px; --m-border: 1px solid rgba(0,0,0,.08);
    --m-h1: 1.25rem; --m-subtitle: .78rem; --m-h2: 1rem; --m-h3: .905rem; --m-body: .845rem; --m-meta: .75rem;
    --m-input-font: 16px; --m-input-h: 40px; --m-btn-h: 34px; --m-btn-font: .8125rem; --m-avatar: 40px;
    --m-badge: .6875rem; --m-appbar-h: 52px; --m-bottomnav-h: 56px; --m-fab: 44px;
    --m-safe-b: env(safe-area-inset-bottom, 0px);
  }
  html, body { overflow-x: clip; }   /* clip (not hidden) so position:sticky keeps working */
  body.mp-body, body.admin-body { font-size: var(--m-body); }
  img, video, canvas, iframe { max-width: 100%; }

  /* ===== 2. app bars ===== */
  body.mp-body .mp-header-inner { min-height: var(--m-appbar-h); padding: 0 var(--m-page-pad); gap: 8px; grid-template-columns: minmax(0,1fr) auto; }
  body.mp-body .mp-header-title { display: none; }
  body.mp-body .mp-brand-logo { max-height: 34px; width: auto; }
  body.mp-body .mp-brand-text strong { font-size: .8125rem; }
  body.mp-body .mp-header-right { gap: 2px; }
  body.mp-body .mp-bell, body.mp-body .mp-user-btn { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
  body.mp-body .mp-avatar--sm { width: 32px; height: 32px; }
  body.mp-body .mp-welcome { display: none; }
  body.admin-body .admin-topbar { min-height: var(--m-appbar-h); height: auto; padding: 0 var(--m-page-pad); gap: 8px; flex-wrap: nowrap; }
  body.admin-body .admin-topbar h1 { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  body.admin-body .admin-topbar-actions { gap: 6px; flex-wrap: nowrap; flex: none; }
  body.admin-body .admin-topbar-actions .btn { min-height: 34px; padding: 0 10px; font-size: var(--m-btn-font); }
  body.admin-body .crumb-help { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; min-height: 34px; border-radius: 999px; font-weight: 700; }

  /* ===== 3. page frame ===== */
  body.mp-body .mp-main { padding: 12px var(--m-page-pad) 24px; }
  body.mp-body.mp-has-bottom-nav { padding-bottom: calc(var(--m-bottomnav-h) + var(--m-safe-b)); }   /* Round 170: the footer sits directly above the bottom bar (no empty band) */
  body.admin-body .admin-content { padding: var(--m-page-pad); }
  body.mp-body .mp-main > * + *, body.admin-body .admin-content > * + * { margin-top: var(--m-section-gap); }

  /* ===== 4. page intro ===== */
  body.mp-body .mp-back { font-size: .8125rem; min-height: 28px; margin: 0 0 2px; }
  body.mp-body .mp-page-head { margin: 0 0 var(--m-section-gap); }
  body.mp-body .mp-page-head h1 { font-size: var(--m-h1); line-height: 1.2; margin: 0 0 2px; }
  body.mp-body .mp-page-head p { font-size: var(--m-subtitle); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ink-soft); }
  body.mp-body .mp-page-head--row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
  body.admin-body .page-header-title, body.admin-body .admin-content h1 { font-size: var(--m-h1); line-height: 1.2; }

  /* ===== 5. tabs ===== */
  .mp-tabs, .pe-tabs, .module-nav-list, .ministry-tabs, .reim-tabs, .sub-tabs, .tab-strip {
    display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: 0; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .mp-tabs::-webkit-scrollbar, .pe-tabs::-webkit-scrollbar, .module-nav-list::-webkit-scrollbar, .ministry-tabs::-webkit-scrollbar, .reim-tabs::-webkit-scrollbar, .sub-tabs::-webkit-scrollbar, .tab-strip::-webkit-scrollbar { display: none; }
  .mp-tabs > *, .pe-tabs > *, .module-nav-list > *, .ministry-tabs > *, .reim-tabs > *, .sub-tabs > *, .tab-strip > * { flex: none; scroll-snap-align: center; min-height: 40px; padding: 8px 12px; font-size: .8125rem; white-space: nowrap; display: inline-flex; align-items: center; }
  [data-mc-fade~="r"] { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 28px), transparent); }
  [data-mc-fade~="l"] { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 28px), transparent); }
  [data-mc-fade~="l"][data-mc-fade~="r"] { -webkit-mask-image: linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(to right, transparent, #000 28px, #000 calc(100% - 28px), transparent); }

  /* ===== 6. section cards ===== */
  body.mp-body .mp-card, body.admin-body .admin-panel { border-radius: var(--m-radius); border: var(--m-border); box-shadow: none; }
  body.admin-body .admin-panel { padding: var(--m-card-pad); margin-bottom: var(--m-section-gap); }
  body.admin-body .admin-panel .admin-panel { border: 0; padding: 0; box-shadow: none; background: transparent; margin-bottom: 0; }
  body.mp-body .mp-card-head { padding: 10px var(--m-card-pad); border-top-width: 2px; }
  body.mp-body .mp-card-head h2, body.admin-body .admin-panel h2 { font-size: var(--m-h2); gap: 8px; margin: 0 0 6px; }
  body.mp-body .mp-card-head h2 { margin: 0; }
  body.mp-body .mp-card-head h2 .mp-icon { width: 16px; height: 16px; }
  body.mp-body .mp-card-body { padding: var(--m-card-pad); }
  body.mp-body .mp-card-foot { padding: 10px var(--m-card-pad); gap: 8px; }
  body.mp-body .mp-card-foot:has(button[type=submit]):not(#mc) { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); gap: 8px; }
  body.mp-body .mp-card-foot:has(button[type=submit]) .btn:not(#mc) { width: 100%; min-height: 40px; padding: 0 6px; }
  body.mp-body .mp-card .mp-card { border: 0; border-radius: 0; box-shadow: none; }
  body.mp-body .mp-card .mp-card .mp-card-head { border-top: 0; }

  /* ===== 7. list rows + ministry pattern ===== */
  body.mp-body .mp-row { padding: 8px 6px; min-height: 52px; gap: 10px; }
  body.mp-body .mp-row-title { font-size: var(--m-h3); }
  body.mp-body .mp-row-sub, body.mp-body .mp-meta { font-size: var(--m-meta); }
  body.mp-body .mp-group { padding: var(--m-item-pad); }
  body.mp-body .mp-group-top { gap: 10px; align-items: flex-start; }
  body.mp-body .mp-group .mp-avatar--md { width: var(--m-avatar); height: var(--m-avatar); }
  body.mp-body .mp-group-name { font-size: var(--m-h3); font-weight: 600; position: static; }
  body.mp-body .mp-group-name::after { content: ""; position: absolute; inset: 0; }  /* stretched link: the whole row opens the group */
  body.mp-body .mp-group { position: relative; }
  body.mp-body .mp-group-main { min-width: 0; }
  body.mp-body .mp-group-main .mp-meta.mc-m-only { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  body.mp-body .mp-group-actions { display: flex; align-items: center; gap: 6px; margin-top: 8px; position: static; flex-wrap: wrap; }
  body.mp-body .mp-group-actions > :not(.mc-ovf) { position: relative; z-index: 1; }
  details.mc-ovf { position: absolute; top: 4px; right: 4px; z-index: 2; }
  details.mc-ovf > summary { list-style: none; cursor: pointer; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.25rem; line-height: 1; border-radius: 999px; color: var(--navy-800, #1d3a4b); }
  details.mc-ovf > summary::-webkit-details-marker { display: none; }
  details.mc-ovf[open] > summary { background: rgba(0,0,0,.06); }
  .mc-ovf-menu { position: absolute; right: 0; top: 40px; min-width: 180px; background: #fff; border: var(--m-border); border-radius: var(--m-radius-sm); box-shadow: 0 8px 24px rgba(12,35,48,.18); padding: 4px; }
  .mc-ovf-menu .mp-linkbtn, .mc-ovf-menu button { display: block; width: 100%; text-align: left; min-height: 40px; padding: 0 12px; background: none; border: 0; font-size: var(--m-body); }
  body.mp-body .mp-group-top .mp-badge { margin-right: 36px; }
  body.mp-body .mp-group-top { padding-right: 0; }

  /* ===== 8. label / value rows ===== */
  body.mp-body .mp-dl div { padding: 8px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
  body.mp-body .mp-dl dt { font-size: var(--m-meta); }
  body.mp-body .mp-dl dd { font-size: var(--m-body); overflow-wrap: anywhere; }

  /* ===== 9. buttons + badges ===== */
  body.mp-body .btn, body.admin-body .btn, body.mp-body .mp-card .btn, body.mp-body .mp-card .btn-sm, body.mp-body .mp-card-head .btn { min-height: var(--m-btn-h); padding: 0 12px; font-size: var(--m-btn-font); display: inline-flex; align-items: center; justify-content: center; gap: 6px; position: relative; }
  body.mp-body .btn::after, body.admin-body .btn::after { content: ""; position: absolute; left: 0; right: 0; top: -3px; bottom: -3px; }  /* 34px button, 40px hit area */
  body.mp-body .btn-primary[type=submit], body.admin-body .btn-primary[type=submit], body.mp-body .mp-form-actions .btn, body.mp-body .mp-card-foot .btn-primary { min-height: 40px; }
  body.mp-body .mp-badge, body.admin-body .badge { font-size: var(--m-badge); padding: 2px 8px; border-radius: 999px; }

  /* ===== 10. forms ===== */
  body.mp-body .field, body.admin-body .field { margin-bottom: 10px; gap: 4px; }
  body.mp-body .mp-form-grid, body.mp-body .mp-grid { gap: 10px; }
  body.mp-body .mp-form-grid > .field, .mc-pair > .field { margin-bottom: 0; }
  body.mp-body label, body.admin-body label { font-size: var(--m-meta); }
  body.mp-body input:not(#mc):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]), body.mp-body select:not(#mc), body.mp-body textarea:not(#mc),
  body.admin-body input:not(#mc):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]), body.admin-body select:not(#mc), body.admin-body textarea:not(#mc) {
    font-size: var(--m-input-font); min-height: var(--m-input-h); border-radius: var(--m-radius-in); padding-top: 0; padding-bottom: 0; box-sizing: border-box; }
  body.mp-body textarea:not(#mc), body.admin-body textarea:not(#mc) { padding: 8px 10px; }
  body.mp-body .field .field-hint, body.admin-body .field .field-hint { font-size: var(--m-meta); }
  .mc-pair { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 10px; }
  .mc-pair > .field { margin-bottom: 10px; min-width: 0; }
  body.mp-body .mp-form-actions { position: sticky; bottom: calc(var(--m-bottomnav-h) + var(--m-safe-b)); z-index: 30; background: #fff; border-top: var(--m-border); padding: 8px var(--m-page-pad); margin: 0 calc(-1 * var(--m-page-pad)); }
  body.mp-body .mp-card-foot:has(button[type=submit]) { position: sticky; bottom: calc(var(--m-bottomnav-h) + var(--m-safe-b)); z-index: 30; }
  body.mp-body .mp-card:has(.mp-card-foot button[type=submit]) { overflow: clip; }

  /* ===== 11. tables → stacked cards (no inputs inside, not .keep-table) ===== */
  body.admin-body .data-table-wrap, body.mp-body .mp-table-wrap { border-radius: var(--m-radius); box-shadow: none; border: var(--m-border); overflow-x: auto; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) { min-width: 0; display: block; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) thead { display: none; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) tbody { display: block; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) tr { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; padding: 10px var(--m-card-pad); border-bottom: 1px solid rgba(0,0,0,.08); }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td { display: block; padding: 0; border: 0; font-size: var(--m-meta); color: var(--ink-soft); white-space: normal; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td:first-child { flex: 1 1 60%; font-size: var(--m-h3); font-weight: 600; color: var(--navy-950); min-width: 0; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td.num, body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td.amount { margin-left: auto; font-weight: 700; color: var(--navy-950); font-size: var(--m-body); }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td:empty { display: none; }
  body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td .row-actions, body.admin-body .data-table:not(.keep-table):not(:has(td:nth-child(8))):not(:has(select, textarea, input:not([type=checkbox]):not([type=hidden]))) td:last-child .row-actions { flex-basis: 100%; }
  body.admin-body .data-table.keep-table th, body.admin-body .data-table.keep-table td { padding: 8px 10px; font-size: .78rem; }
  body.admin-body .data-table th, body.admin-body .data-table td { font-size: .78rem; }
  body.admin-body .data-table .row-actions a, body.admin-body .data-table .row-actions button { min-height: 40px; display: inline-flex; align-items: center; }

  /* ===== 12. search, filters sheet, pagination ===== */
  .mc-filters-btn { min-height: 40px; }
  body .filters-btn:not(#mc):has(~ .mc-filters-btn), body .mc-filters-btn:not(#mc) ~ .filters-btn { display: none; }
  .mc-has-sheet:not(#mc) .ls-extra > .field:not(.ls-sort), .mc-has-sheet:not(#mc) .ls-extra > label, .mc-has-sheet:not(#mc) .filter-more > .field:not(.ls-sort), .mc-has-sheet:not(#mc) .filter-more > label, .mc-has-sheet:not(#mc) > .field:not(.ls-sort) { display: none; }   /* Round 187: the Sort control stays beside Search / Filters on a phone */
  .mc-sheet-body .field:not(#mc), .mc-sheet-body > label:not(#mc) { display: block; }
  form.ls-bar .ls-extra, form.filter-bar .filter-more { display: flex; flex-wrap: wrap; gap: 8px; }
  .mc-sheet-backdrop[hidden]:not(#mc), .mc-sheet[hidden]:not(#mc) { display: none; }
  .mc-sheet-backdrop { position: fixed; inset: 0; background: rgba(12,35,48,.45); z-index: 900; }
  .mc-sheet:not(#mc) { position: fixed; left: 0; right: 0; bottom: 0; z-index: 901; background: #fff; border-radius: 14px 14px 0 0; max-height: 85vh; display: flex; flex-direction: column; padding: 0; box-shadow: 0 -8px 30px rgba(12,35,48,.25); }
  .mc-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 12px; border-bottom: var(--m-border); }
  .mc-sheet-title { margin: 0; font-size: var(--m-h2); }
  .mc-sheet-body { overflow-y: auto; padding: 12px; padding-bottom: calc(12px + var(--m-safe-b)); display: grid; gap: 10px; }
  .mc-sheet-body .field { margin: 0; width: 100%; }
  .pagination, .ls-pager, .pager { display: flex; justify-content: center; align-items: center; gap: 6px; font-size: .8125rem; flex-wrap: wrap; }
  .pagination a, .ls-pager a, .pager a { min-height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; }

  /* ===== 13. stat cards ===== */
  .stat-grid, .kpi-grid, .stats-grid, div:has(> .stat-card), div:has(> .kpi-card) { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .stat-card, .kpi-card { padding: 10px; border-radius: var(--m-radius-sm); }
  .stat-card .num:not(#mc):not(#mc2), .kpi-card .kpi-value:not(#mc):not(#mc2) { font-size: 1.125rem; font-weight: 700; }
  .stat-card .label, .kpi-card .kpi-label { font-size: .72rem; }

  /* ===== 14. modals as bottom sheets ===== */
  dialog.cs-dialog, .unsaved-modal, #leave-modal { position: fixed; left: 0; right: 0; bottom: 0; top: auto; margin: 0; width: 100%; max-width: 100%; max-height: 85vh; overflow-y: auto; border-radius: 14px 14px 0 0; padding: 12px; }
  dialog.cs-dialog h2, .unsaved-modal h2, #leave-modal h2 { font-size: var(--m-h2); }

  /* ===== 15-16. empty states, alerts, media ===== */
  .mp-empty, .empty-state { padding: 16px; font-size: var(--m-body); }
  .mp-flash, .alert, .notice { padding: 8px 10px; font-size: .78rem; border-radius: var(--m-radius-in); }
  .mp-preview img, .receipt-thumb { max-width: 100%; }

  /* ===== 17. floating ⇄ button (app-switch.css is injected at the end of <body>, hence the doubled selectors) ===== */
  body .as-fab-root .as-fab-btn { width: var(--m-fab); height: var(--m-fab); }
  body .as-fab-root .as-fab-btn .as-fab-ico { width: 20px; height: 20px; }
  .as-fab-root { right: calc(var(--m-page-pad) + env(safe-area-inset-right, 0px)) !important; } /* [!] app-switch.css sets it per context */
  .as-fab-root[data-as-ctx="portal"] { bottom: calc(var(--m-bottomnav-h) + 12px + var(--m-safe-b)) !important; } /* [!] */
  .as-fab-root[data-as-ctx="cms"], .as-fab-root[data-as-ctx="site"] { bottom: calc(16px + var(--m-safe-b)) !important; } /* [!] */
  body.mc-has-sticky-actions .as-fab-root[data-as-ctx="cms"] { bottom: calc(72px + var(--m-safe-b)) !important; } /* [!] above a sticky Save bar */
  body.mc-has-sticky-actions .as-fab-root[data-as-ctx="portal"] { bottom: calc(var(--m-bottomnav-h) + 72px + var(--m-safe-b)) !important; } /* [!] */
  body .as-fab-root.is-scrolling { opacity: .7; }
  body .as-fab-root .as-fab-menu { bottom: calc(var(--m-fab) + 8px); }
  body .as-fab-root .as-fab-item { min-height: 44px; font-size: var(--m-body); }

  /* ===== 18. bottom nav ===== */

  /* ===== 19. section links / footers ===== */
  body.mp-body .mp-join summary, body.mp-body .mp-foot-link { font-size: var(--m-body); padding: 10px var(--m-card-pad); min-height: 40px; display: flex; align-items: center; }
  body.mp-body .mp-footer { padding: 12px var(--m-page-pad); font-size: var(--m-meta); }

  /* ===== 20. auth screens ===== */
  body.mp-auth-body .mp-auth { padding: 16px var(--m-page-pad); }
  body.mp-auth-body .mp-auth-card { padding: 16px; border-radius: var(--m-radius); }
  body.mp-auth-body .mp-auth-card h1 { font-size: var(--m-h1); }

  /* ===== 21. bypass clean-up (inline styles / page-specific grids) ===== */
  [style*="grid-template-columns"]:not(.mc-keep-cols):not(.stat-grid):not(.kpi-grid):not(:has(> .stat-card)):not(:has(> .kpi-card)) { grid-template-columns: minmax(0,1fr) !important; } /* [!] inline grid overrides */
  [style*="display:flex"][style*="gap"] { flex-wrap: wrap; }
  [style*="width:"], [style*="min-width"] { max-width: 100%; }
  pre, code { overflow-x: auto; max-width: 100%; word-break: break-word; }
  /* ===== 22. fine-tuning from the page audit ===== */
  body.mp-body .mp-brand { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .mp-back { min-height: 40px; margin: -6px 0 -4px; }
  body.mp-body .mp-footer a { min-height: 40px; display: inline-flex; align-items: center; padding: 0 4px; }
  body.mp-body .mp-footer { display: flex; flex-wrap: wrap; gap: 0 12px; align-items: center; }
  body.mp-body .pd-more { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .ph-chip { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .ph-title { position: static; }
  body.mp-body .ph-title::after { content: ""; position: absolute; inset: 0; }
  body.mp-body .mp-pw-toggle { min-height: 40px; min-width: 44px; }
  body.mp-body .pd-svc-lab, body.mp-body .pd-ov-lab, body.mp-body .pd-h { font-size: var(--m-meta); }
  body.mp-body i, body.mp-body .mp-card i { font-size: var(--m-meta); }
  body.mp-body .mp-c-myclasses a, body.mp-body [class*="myclasses"] a { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .ph-chips a { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .ph-date span { font-size: var(--m-meta); }

  /* ACTS System audit fixes */
  body.admin-body .admin-sidebar-toggle { width: 40px; height: 40px; min-width: 40px; }
  body.admin-body .admin-online-pill { font-size: var(--m-meta); min-height: 34px; position: relative; }
  body.admin-body .admin-online-pill::after { content: ""; position: absolute; left: 0; right: 0; top: -3px; bottom: -3px; }
  body.admin-body .admin-user-chip { min-height: 40px; }
  body.admin-body .admin-user-caret { font-size: var(--m-meta); }
  body.admin-body .crumb-help { min-width: 40px; min-height: 40px; font-size: var(--m-meta); }
  body.admin-body .admin-breadcrumb, body.admin-body .admin-breadcrumb a, body.admin-body .admin-breadcrumb span { font-size: var(--m-meta); }
  body.admin-body .admin-breadcrumb a, body.admin-body .admin-breadcrumb-module { min-height: 40px; display: inline-flex; align-items: center; }
  body.admin-body .admin-back { min-height: 40px; display: inline-flex; align-items: center; font-size: var(--m-meta); }
  body.admin-body .ls-go { width: 40px; height: 40px; }
  body.admin-body details.dd a, body.admin-body .dd-menu a, body.admin-body .dd-menu button { min-height: 40px; display: flex; align-items: center; }
  body.admin-body .filter-chip { min-height: 40px; display: inline-flex; align-items: center; font-size: var(--m-meta); }
  body.admin-body .stat-note, body.admin-body .kpi-heading, body.admin-body .as-switch-title, body.admin-body .stat-card .trend { font-size: var(--m-meta); }
  body.admin-body .btn-sm { font-size: var(--m-btn-font); }
  body.admin-body .admin-usermenu-head span, body.admin-body .as-switch .as-switch-title, body .as-switch-title, body .as-cur { font-size: var(--m-meta); }
  body.admin-body .alert-row .btn, body.admin-body .alert-row span.btn { font-size: var(--m-btn-font); }
  body.admin-body .stat-note, body.admin-body span.stat-note, body.admin-body p.stat-note { font-size: var(--m-meta); }
  body.admin-body .row-expand-btn, body.admin-body .qv-open { position: relative; }
  body.admin-body .row-expand-btn::after, body.admin-body .qv-open::after { content: ""; position: absolute; left: -10px; right: -10px; top: -12px; bottom: -12px; }
  body.admin-body .stat-note:not(#mc):not(#mc2), body.admin-body h2.kpi-heading:not(#mc):not(#mc2) { font-size: var(--m-meta); }
  /* [!] inline style="font-size:.7rem" etc. on small notes: lifted to the 12px floor (only an !important rule can beat an inline style) */
  [style*="font-size:.6"], [style*="font-size:.7"], [style*="font-size: .6"], [style*="font-size: .7"], [style*="font-size:10"], [style*="font-size:11"] { font-size: var(--m-meta) !important; }
  body.admin-body summary:not(#mc) { min-height: 40px; display: flex; align-items: center; }
  body.admin-body .cl-help-link, body.admin-body .module-nav-item, body.admin-body .admin-nav-section-body a { min-height: 40px; display: inline-flex; align-items: center; }
  body.admin-body .admin-nav-section-body a { display: flex; }
  body.admin-body .cl-help-link:not(#mc) { font-size: var(--m-meta); }
  body.admin-body th:not(#mc):not(#mc2), body.admin-body .act-role:not(#mc):not(#mc2), body.admin-body .act-st:not(#mc):not(#mc2), body.admin-body .hlp-toc-topic:not(#mc), body.admin-body span.lbl:not(#mc) { font-size: var(--m-meta); }
  body.admin-body .hlp-guides a { min-height: 40px; display: inline-flex; align-items: center; }
  body.admin-body .page-header-desc a { display: inline-block; padding: 11px 0; margin: -11px 0; }
  body.admin-body .hlp-toc a, body.admin-body [class*="hlp-toc"] a { min-height: 40px; display: flex; align-items: center; }
}

/* Round 164 — the three verse buttons stay on one row: 44px high, 12.5px labels */
@media (max-width: 600px) {
  body.mp-body .cf-vbtn:not(#mc) { height: 44px; min-height: 44px; font-size: .78rem; }
  body.mp-body .cf-vbtn:not(#mc) svg { width: 16px; height: 16px; }
}
@media (max-width: 350px) { body.mp-body .cf-vbtn:not(#mc):not(#mc2) { font-size: .75rem; padding: 0 4px; } }

/* Round 163 — Daily verse rows and the Understand-the-Context page: 44px rows, 12px labels */
@media (max-width: 600px) {
  body.mp-body .cf-verse-rows:not(#mc) a { min-height: 44px; font-size: var(--m-body, .84rem); }
  body.mp-body .cf-vctx-sec:not(#mc) h2 { font-size: var(--m-meta); }
  body.mp-body .cf-vctx:not(#mc) .mp-card-body { padding: 14px; }
}

/* Round 161 — Community feed on the Portal Home + its moderation page: 40px touch targets, 12px text floor */
@media (max-width: 600px) {
  body.mp-body .cf-react:not(#mc), body.mp-body .cf-link:not(#mc), body.mp-body .cf-reflect summary:not(#mc) { min-height: 40px; }
  body.mp-body .cf-more summary:not(#mc) { min-width: 40px; min-height: 40px; }
  body.mp-body .cf-times:not(#mc) li { gap: 0 10px; }
  body.mp-body .cf-times:not(#mc) a { display: inline-flex; align-items: center; min-height: 40px; }
  body.mp-body .cf-eyebrow:not(#mc):not(#mc2), body.mp-body .cf-pin:not(#mc):not(#mc2) { font-size: var(--m-meta); }
  body.admin-body #feed-table details button:not(#mc), body.admin-body #feed-table details summary:not(#mc) { min-height: 40px; display: inline-flex; align-items: center; padding: 0 12px; }
  body.admin-body #feed-table details li:not(#mc) { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
  /* Round 162 — composer, celebrations, devotion, notification tabs, Groups hub */
  body.mp-body .cf-adv summary:not(#mc), body.mp-body .cf-pick summary:not(#mc), body.mp-body .cf-pick-list label:not(#mc), body.mp-body .cf-check:not(#mc) { min-height: 40px; }
  body.mp-body .cf-greet summary:not(#mc) { min-height: 40px; display: inline-flex; align-items: center; }
  body.mp-body .cf-celebrate .cf-cel-list li:not(#mc) { flex-wrap: wrap; }
  body.mp-body .cf-greet .cf-more-menu:not(#mc) { left: 0; right: auto; min-width: min(280px, 86vw); }
  body.mp-body .cf-dev-week:not(#mc) { margin-left: 0; }
  body.mp-body .cx-markread:not(#mc) { min-width: 40px; min-height: 40px; }
  body.mp-body .cx-tabs .mp-tab:not(#mc) { min-height: 40px; padding: 8px 12px; }
  body.mp-body .cx-hub a:not(#mc) { min-height: 56px; }
  body.mp-body .cf-post-video:not(#mc) { max-height: 260px; }
  body.mp-body .cf-vtime select:not(#mc) { min-height: 40px; font-size: 16px; }
}

@media (max-width: 359px) { body.mp-body .mp-page-head p { display: none; } }
@media print { .mc-sheet, .mc-sheet-backdrop { display: none !important; } }

/* Round 165 — compact social-app portal: 44px primary taps, 40px chips/buttons, 12px text floor */
@media (max-width: 600px) {
  body.mp-body .cf-chip:not(#mc), body.mp-body .ph-chips .ph-chip:not(#mc) { min-height: 40px; font-size: var(--m-body, .845rem); }
  body.mp-body .cf-chips:not(#mc), body.mp-body .ph-chips:not(#mc) { margin-bottom: 10px; }
  body.mp-body .cf-arow-btns:not(#mc) { width: 100%; }
  body.mp-body .cf-arow-btns:not(#mc) .btn { flex: 1 1 0; min-height: 44px; }
  body.mp-body .gx-card:not(#mc) { min-height: 68px; padding: 10px 12px; gap: 10px; }
  body.mp-body .gx-name:not(#mc) { font-size: var(--m-body, .845rem); }
  body.mp-body .gx-meta:not(#mc) { font-size: var(--m-meta, .75rem); }
  body.mp-body .gx-manage-row:not(#mc), body.mp-body .gx-more-list:not(#mc) > a { min-height: 48px; }
  body.mp-body .gx-manage-form:not(#mc) .btn { min-height: 44px; }
  body.mp-body .ph-group:not(#mc) { font-size: var(--m-body, .845rem); }
}
@media (max-width: 600px) {
  body.mp-body .gx-mhead:not(#mc) h1 { margin: 0 0 2px; }
  body.mp-body .gx-mhead-meta:not(#mc) { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; margin: 0; line-height: 1.35; }
}
@media (max-width: 600px) { body.mp-body .gx-mhead-lead:not(#mc) { display: none; } }   /* the About card right below already names the leader */
@media (max-width: 600px) {
  body.mp-body .gx-meta:not(#mc) { white-space: normal; }
  body.mp-body .gx-role:not(#mc) { align-self: flex-start; margin-top: 2px; }
}
