/* Shared phone ergonomics: preserve zoom, readable fields, and safe-area clearance. */
@media (max-width: 900px) {
  input:not([type=checkbox]):not([type=radio]), textarea, select { font-size: 16px !important; }
  .page { padding-bottom: max(96px, calc(76px + env(safe-area-inset-bottom))) !important; }
  .sidebar { padding-bottom: max(20px, env(safe-area-inset-bottom)) !important; }
  #modal { max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); margin: auto; overscroll-behavior: contain; }
  .sa-panel { overscroll-behavior: contain; }
  .sa-messages, .tablewrap, .tabs { -webkit-overflow-scrolling: touch; }
}
/* Landscape phones still need a pinned composer and a reachable close control. */
@media (max-height: 550px) {
  .sa-panel:not([hidden]) { display: flex; flex-direction: column; max-height: calc(100dvh - 32px - env(safe-area-inset-bottom)); overflow: hidden; }
  .sa-panel header, .sa-panel .sa-form, .sa-panel footer { flex-shrink: 0; }
  .sa-panel header { padding: 8px 12px; }
  .sa-panel .sa-options, .sa-panel .sa-voice { display: none; }
  .sa-messages { min-height: 40px; flex: 1 1 auto; overflow-y: auto; max-height: none; }
}
