/* Shared Android responsive safeguards */
html, body { max-width: 100%; overflow-x: hidden; }
body { padding-bottom: env(safe-area-inset-bottom, 0px); }

@media (max-width: 600px), (max-height: 600px) and (orientation: landscape) {
  :root {
    --android-safe-top: env(safe-area-inset-top, 0px);
    --android-safe-bottom: env(safe-area-inset-bottom, 0px);
  }

  body { font-size: 14px; }
  header, .top, .topbar, #siteHeader {
    box-sizing: border-box;
    padding-top: calc(6px + var(--android-safe-top)) !important;
  }
  main, .shell, .wrap, .app, .appShell, #page, #pageMain {
    box-sizing: border-box;
    max-width: 100%;
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: calc(16px + var(--android-safe-bottom)) !important;
  }
  h1 { font-size: 1.35rem !important; line-height: 1.2 !important; }
  h2 { font-size: 1.1rem !important; line-height: 1.25 !important; }
  p { line-height: 1.4; }

  button, select, input:not([type="hidden"]), textarea,
  a[role="button"], .btn, [class*="btn-"] {
    min-height: 44px;
  }
  input, select, textarea { max-width: 100%; }

  .toolbar, .toolbar-actions, .topbar-shell, .topbar-search-row,
  .actions, .filters, .controls, .form-actions {
    gap: 6px !important;
  }
  .card, [class*="-card"], [class*="Card"] {
    max-width: 100%;
  }
  .grid, [class*="-grid"] { gap: 8px !important; }
  .p-4, .p-6, [class~="md:p-6"] { padding: 10px !important; }
  .mb-4, .mt-4 { margin-top: 8px !important; margin-bottom: 8px !important; }

  table {
    font-size: .78rem;
  }
  .table-wrap, .table-container, .overflow-x-auto {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  dialog, .modal, [role="dialog"] {
    max-height: calc(100dvh - var(--android-safe-top) - var(--android-safe-bottom));
  }

  /* Connexion commune */
  body.h-screen {
    min-height: 100dvh !important;
    height: auto !important;
    padding: calc(12px + var(--android-safe-top)) 12px calc(12px + var(--android-safe-bottom));
  }
  body.h-screen > div {
    width: min(100%, 340px) !important;
    padding: 18px !important;
  }

  /* Caisse */
  body > * { max-width: 100%; }
  .overflow-x-auto {
    width: 100% !important;
    max-width: calc(100vw - 20px) !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
  }
  .overflow-x-auto > .min-w-max {
    min-width: 620px !important;
    width: max-content;
  }
  table.w-full {
    width: 100% !important;
    max-width: 100%;
  }
  #daySummaryGrid { gap: 7px !important; margin-top: 8px !important; }
  #daySummaryGrid > * { padding: 8px !important; }

  /* Devis */
  .top { min-height: 54px !important; padding-bottom: 6px !important; }
  .top .toolbar-actions { flex-wrap: wrap; }
  .shell { padding-top: 8px !important; }
  .subscription-grid { grid-template-columns: 1fr !important; }
  .print-card { margin-top: 8px !important; }

  /* E-commerce */
  #siteHeader { padding-bottom: 5px !important; }
  .topbar-shell { padding: 5px 8px !important; }
  .topbar-utility-row { margin-top: 4px !important; }
  #pageMain { padding-top: calc(var(--ecom-header-h, 7rem) + var(--android-safe-top)) !important; }
  .product-card { min-height: 0 !important; }

  /* Snack */
  .topbar { min-height: 50px !important; padding-bottom: 6px !important; }
  .appShell { padding-top: 8px !important; }
  .orderGrid, .menuGrid { gap: 8px !important; }
  .cartCard { padding: 10px !important; }

  /* MaComptabilité */
  #page { padding-top: 10px !important; }
  #accountingStatsCards { gap: 8px !important; margin-bottom: 8px !important; }
  #accountingStatsCards > * { padding: 9px !important; }

  /* LaBible */
  header .wrap, main.wrap, #app, #bibleApp, .panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  header .wrap > *, .result-top > *, .modal-bar > *,
  .modal-actions > *, .saved-passage > * {
    min-width: 0 !important;
  }
  .wrap { padding-top: 8px !important; }
  .accordion-content { padding: 8px !important; }
  .daily-grid { gap: 8px !important; }
  .quick, .event-list-toggles {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
  .connected-menu {
    right: 0 !important;
    left: auto !important;
    width: min(280px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
  }
  .result-modal, .modal-body, .main-passage, .possible-list {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .modal-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px !important;
    width: 100% !important;
  }
  .modal-actions button {
    min-width: 0 !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Camera */
  .app { padding-top: 6px !important; }
  .topbar { gap: 6px !important; }
  .dvrToolbar, .downloadsHeader, .filePlayerToolbar, .montageHeader {
    gap: 6px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}

@media (max-width: 600px) and (orientation: landscape) {
  header, .top, .topbar, #siteHeader {
    position: relative !important;
    padding-top: calc(4px + env(safe-area-inset-top, 0px)) !important;
  }
  main, .shell, .wrap, .app, .appShell, #page {
    padding-top: 6px !important;
  }
}
