/**
 * iPhone Safari — app-wide pane hit-testing.
 * Fixed off-screen panes (translateX(100%)) still receive taps on iOS unless
 * they are display:none / pointer-events:none. Contacts-only rules used to leave
 * Email / Tasks / Calendar / Deals / Inbox untappable.
 */

@media (max-width: 767px) {
  /* ── Shared: active stack panes always receive taps ── */
  .is-mobile .folderPane.active,
  .is-mobile .listPane.active,
  .is-mobile .contactListWrap.active,
  .is-mobile .pipelinePane.active,
  .is-mobile #pipelineWrap.active,
  .is-mobile .projectsPane.active,
  .is-mobile #projectsWrap.active,
  .is-mobile #budgetsWrap.active,
  .is-mobile #invoicesWrap.active,
  .is-mobile .analyticsPane.active,
  .is-mobile #analyticsWrap.active,
  .is-mobile .calendarPane.active,
  .is-mobile #calendarWrap.active,
  .is-mobile .tasksPane.active,
  .is-mobile #tasksWrap.active,
  .is-mobile .leadsPane.active,
  .is-mobile #leadsWrap.active,
  .is-mobile .detailPane.active,
  .is-mobile #detailPanel.active,
  .is-mobile #emailInboxView.active,
  .is-mobile #reportsWrap.active,
  .is-mobile #templatesView.active,
  .is-mobile #documentsView.active,
  .is-mobile #formsView.active,
  .is-mobile #dealDoctorWrap.active {
    visibility: visible !important;
    pointer-events: auto !important;
    opacity: 1 !important;
  }

  /* Inactive stack panes must not hit-test (beats leftover inline styles). */
  .is-mobile .mainSplit > aside:not(.active):not(.hidden),
  .is-mobile .mainSplit > section:not(.active):not(.hidden),
  .is-mobile .mainSplit > .folderPane:not(.active) {
    pointer-events: none !important;
  }

  /* Helper: bring one host pane into normal flow */
  .app-shell[data-view="deals"] .mainSplit > #pipelineWrap,
  .app-shell[data-view="projects"] .mainSplit > #projectsWrap,
  .app-shell[data-view="budgets"] .mainSplit > #budgetsWrap,
  .app-shell[data-view="invoices"] .mainSplit > #invoicesWrap,
  .app-shell[data-view="calendar"] .mainSplit > #calendarWrap,
  .app-shell[data-view="tasks"] .mainSplit > #tasksWrap,
  .app-shell[data-view="leads"] .mainSplit > #leadsWrap,
  .app-shell[data-view="analytics"] .mainSplit > #analyticsWrap,
  .app-shell[data-view="reports"] .mainSplit > #reportsWrap,
  .app-shell[data-view="templates"] .mainSplit > #templatesView,
  .app-shell[data-view="documents"] .mainSplit > #documentsView,
  .app-shell[data-view="forms"] .mainSplit > #formsView,
  .app-shell[data-view="inbox"] .mainSplit > #emailInboxView,
  .app-shell[data-view="dealDoctor"] .mainSplit > #dealDoctorWrap {
    display: flex !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    transform: none !important;
    transition: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 2 !important;
  }

  .app-shell[data-view="deals"] .mainSplit > *:not(#pipelineWrap),
  .app-shell[data-view="projects"] .mainSplit > *:not(#projectsWrap),
  .app-shell[data-view="budgets"] .mainSplit > *:not(#budgetsWrap),
  .app-shell[data-view="invoices"] .mainSplit > *:not(#invoicesWrap),
  .app-shell[data-view="calendar"] .mainSplit > *:not(#calendarWrap),
  .app-shell[data-view="leads"] .mainSplit > *:not(#leadsWrap),
  .app-shell[data-view="analytics"] .mainSplit > *:not(#analyticsWrap),
  .app-shell[data-view="reports"] .mainSplit > *:not(#reportsWrap),
  .app-shell[data-view="templates"] .mainSplit > *:not(#templatesView),
  .app-shell[data-view="documents"] .mainSplit > *:not(#documentsView),
  .app-shell[data-view="forms"] .mainSplit > *:not(#formsView),
  .app-shell[data-view="inbox"] .mainSplit > *:not(#emailInboxView),
  .app-shell[data-view="dealDoctor"] .mainSplit > *:not(#dealDoctorWrap) {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  /* ── Contacts list ── */
  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > #contactListWrap {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    transform: none !important;
    transition: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 1 !important;
  }

  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > #contactListWrap #contactList,
  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > #contactListWrap .contact-list-card,
  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > #contactListWrap .contact-row,
  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > #contactListWrap tr.contact-row {
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  .app-shell[data-view="contacts"]:not(.contact-detail-visible) .mainSplit > *:not(#contactListWrap) {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  /* ── Contact detail ── */
  .app-shell[data-view="contacts"].contact-detail-visible .mainSplit > #contactListWrap {
    display: none !important;
  }

  .app-shell[data-view="contacts"].contact-detail-visible .mainSplit > #detailPanel,
  .app-shell[data-view="contacts"].contact-detail-visible .mainSplit > #detailPanel:not(.active) {
    display: flex !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    transform: none !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 2 !important;
  }

  .app-shell[data-view="contacts"].contact-detail-visible .mainSplit > *:not(#detailPanel) {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel #detailContent,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-record-shell,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-record-main,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-record-quick-rail,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-detail-tabs-body,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-detail-tab-panel,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel button,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel a[href],
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .btn,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .contact-record-quick-rail__btn,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .task-row,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel .td-record-email__row,
  .app-shell[data-view="contacts"].contact-detail-visible #detailPanel [role="button"] {
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  .app-shell .mainSplit {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  /* Inbox: off-screen conversation column must not swallow thread-list taps */
  .td-inbox:not(.td-inbox--conversation-open) .td-inbox__conv-col {
    pointer-events: none !important;
    visibility: hidden !important;
  }

  .td-inbox.td-inbox--conversation-open .td-inbox__conv-col {
    pointer-events: auto !important;
    visibility: visible !important;
  }

  /* Open modals / sheets stay above and tappable */
  .backdrop.show,
  .task-event-backdrop.show,
  .fme-email-composer-backdrop,
  .fme-more-sheet.open,
  .mobile-more-sheet.open,
  #mobileNav,
  .mobile-create-fab {
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  /* #19: contact detail must never cover Leads Convert (or any non-Contacts view). */
  .app-shell:not([data-view="contacts"]) #detailPanel {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  /* False-positive boot recovery must not sit above Leads / Convert. */
  #bootRecovery:not(.is-visible) {
    display: none !important;
    pointer-events: none !important;
  }
}
