/**
 * Admin mobile (iPhone Safari) — load LAST.
 * Desktop layout unchanged; applies at ≤900px (shell already collapses).
 */
@media (max-width: 900px) {
  html,
  body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  body.admin-shell-ready.admin-authenticated,
  body.admin-shell-ready.admin-authenticated .page {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  .page {
    padding: 10px 10px 28px !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .page > header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  body.admin-shell-ready.admin-authenticated .page > header {
    position: sticky;
    top: 0;
    z-index: 30;
    background: #e8efe9;
    padding-top: calc(8px + env(safe-area-inset-top, 0px)) !important;
  }

  .page > header nav {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
  }

  .page > header nav a {
    font-size: 12px !important;
    padding: 8px 10px !important;
  }

  .brand-text-sub {
    display: none !important;
  }

  .card {
    padding: 12px !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .section,
  .section-header {
    max-width: 100% !important;
  }

  /* Login */
  #admin-login-section .grid,
  #admin-login-controls.grid,
  #admin-login-controls {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  #admin-login-fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
  }

  #admin-action-buttons {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }

  #admin-action-buttons .btn {
    width: 100% !important;
    min-height: 44px !important;
  }

  .grid,
  .relation-fields,
  .batch-tools,
  .batch-summary,
  .fm-layout,
  .fm-person-data-grid {
    grid-template-columns: 1fr !important;
  }

  .field,
  .field input,
  .field select,
  .field textarea {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .btn,
  .btn-sm {
    min-height: 40px !important;
    white-space: normal !important;
  }

  table {
    min-width: 0 !important;
    width: 100% !important;
  }

  .table-wrap,
  .sql-ws-results .table-wrap,
  .sql-ws-table-wrap {
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .sql-ws-results table {
    min-width: 0 !important;
  }

  /* Requests → compact cards */
  #admin-requests-section .table-wrap {
    overflow: visible !important;
    max-height: none !important;
    border: none !important;
    background: transparent !important;
  }

  #admin-requests-section table,
  #admin-requests-section thead,
  #admin-requests-section tbody,
  #admin-requests-section tr,
  #admin-requests-section th,
  #admin-requests-section td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #admin-requests-section thead {
    display: none !important;
  }

  #admin-requests-section tbody tr {
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border: 1px solid rgba(16, 36, 28, 0.14) !important;
    border-radius: 14px !important;
    padding: 8px 10px 10px !important;
    margin: 0 0 10px !important;
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06) !important;
  }

  #admin-requests-section tbody td {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 5px 0 !important;
    border: none !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    word-break: break-word !important;
  }

  #admin-requests-section th:nth-child(n),
  #admin-requests-section td:nth-child(n) {
    display: flex !important;
    min-width: 0 !important;
    max-width: none !important;
    width: 100% !important;
    white-space: normal !important;
  }

  #admin-requests-section tbody td::before {
    content: attr(data-label);
    flex: 0 0 32%;
    max-width: 36%;
    color: #5b6b63;
    font-size: 12px;
    font-weight: 800;
    text-align: right;
  }

  #admin-requests-section tbody td > * {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
  }

  #admin-requests-section tbody td[data-label="إجراء"] {
    flex-direction: column !important;
    align-items: stretch !important;
    order: 50 !important;
    margin-top: 6px !important;
    padding-top: 10px !important;
    border-top: 1px solid rgba(16, 36, 28, 0.1) !important;
  }

  #admin-requests-section tbody td[data-label="إجراء"]::before {
    display: none !important;
  }

  #admin-requests-section tbody td.is-blank-mobile {
    display: none !important;
  }

  #admin-requests-section details.msg,
  #admin-requests-section details.msg > div {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  #admin-requests-section .btn,
  #admin-requests-section .btn-sm {
    min-height: 38px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
  }

  #admin-requests-section .cell-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }

  #admin-requests-section .cell-actions .btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    white-space: nowrap !important;
  }

  /* Keep قبول/رفض visible on phone even when disabled (muted, not hidden) */
  #admin-requests-section .cell-actions .btn[disabled] {
    display: flex !important;
    opacity: 0.55 !important;
    pointer-events: none !important;
  }

  #admin-requests-section .delegate-admin-email {
    grid-column: 1 / -1;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 0 4px !important;
    padding: 8px !important;
    box-sizing: border-box !important;
  }

  #admin-requests-section .delegate-admin-email input {
    min-height: 40px;
  }

  #requests-toolbar,
  .requests-toolbar {
    grid-template-columns: 1fr !important;
  }

  .requests-pager {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }

  #events-source-manager > .card > .grid,
  #banner-messages-manager > .card > .grid,
  #events-source-form .grid,
  #banner-general-form .grid,
  #banner-messages-manager .grid,
  #special-cards-manager .grid {
    grid-template-columns: 1fr !important;
  }

  .source-tree-list {
    max-height: 260px !important;
  }

  dialog {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    margin: 8px auto !important;
  }

  .edit-dialog-body {
    padding: 14px 12px !important;
  }

  .tce-original-review .tce-kv {
    grid-template-columns: 1fr !important;
  }

  body.admin-shell-ready.admin-authenticated #admin-protected-sections,
  body.admin-shell-ready.admin-authenticated #bulk-name-audit-section,
  body.admin-shell-ready.admin-authenticated #admin-module-hub,
  body.admin-shell-ready.admin-authenticated #admin-module-delegates,
  body.admin-shell-ready.admin-authenticated .admin-shell-main {
    padding-inline: 10px !important;
    padding-top: 8px !important;
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .admin-shell-mobile-toggle {
    min-height: 44px !important;
    padding: 10px 14px !important;
  }

  .admin-module-hub-grid,
  .admin-hub-grid {
    grid-template-columns: 1fr !important;
  }

  #admin-memory-section .table-wrap table,
  #admin-module-delegates table {
    min-width: 0 !important;
  }
}

@media (max-width: 430px) {
  .page > header nav a {
    font-size: 11px !important;
    padding: 7px 8px !important;
  }
}

@media (max-width: 900px) {

  /* Family management — touch targets & search overlay on phones */
  .fm-search-results {
    z-index: 60 !important;
    max-height: min(42vh, 260px) !important;
    -webkit-overflow-scrolling: touch;
  }
  .fm-search-item {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    padding: 10px 12px !important;
  }
  .fm-search-item:active,
  .fm-search-item.fm-highlight {
    background: #dbeafe !important;
  }
  .fm-row-actions .btn,
  .fm-toolbar .btn,
  .fm-type-tab,
  .fm-accordion > summary {
    min-height: 44px !important;
  }
  .fm-add-sheet-backdrop.fm-open {
    align-items: flex-end !important;
  }
  .fm-add-sheet {
    width: 100% !important;
    max-width: 100% !important;
    max-height: min(92dvh, 920px) !important;
    border-radius: 16px 16px 0 0 !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .source-tree-toolbar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .source-tree-toolbar .btn {
    width: 100% !important;
    min-height: 44px !important;
  }

}
