/* The native Keyboard plugin resizes the WebView, not just document.body.
   A single measured viewport owns layout; keyboard height is never subtracted. */
html[data-platform] {
  --native-viewport-height: 100dvh;
  --native-bottom-inset: env(safe-area-inset-bottom, 0px);
}
html[data-platform][data-keyboard=open] { --native-bottom-inset: 0px; }
html[data-platform] body {
  padding-top: env(safe-area-inset-top, 0px);
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}
html[data-platform] body[data-view=chat] :is(.layout, #main) {
  height: calc(var(--native-viewport-height) - env(safe-area-inset-top, 0px));
  min-height: 0;
}
html[data-platform] body[data-view=chat] .chat-shell { position: relative; }
html[data-platform] .composer-zone {
  padding-bottom: max(10px, var(--native-bottom-inset));
}
html[data-platform] .chat-composer textarea {
  font-size: 16px;
  max-height: min(140px, calc(var(--native-viewport-height) * .24));
}
html[data-platform] :is(.chat-composer, .chat-pane-head) .icon-button {
  width: 44px;
  height: 44px;
  flex-basis: 44px;
}
html[data-platform] :is(button, a, summary) { touch-action: manipulation; }
html[data-platform] :is(dialog, #account-dialog, #mfa-dialog, #vault-dialog) {
  max-height: calc(var(--native-viewport-height) - env(safe-area-inset-top, 0px) - var(--native-bottom-inset) - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding-block: 20px;
}
html[data-platform] dialog :is(input, textarea, select) { font-size: 16px; }
html[data-platform] dialog :is(button, summary) { min-height: 44px; }
/* Status messages should never intercept composer or drawer touches. */
html[data-platform] :is(.toast, .storage-status) { pointer-events: none; }
@media (max-width: 820px) {
  html[data-platform] body[data-view=chat] .chat-threads {
    padding-bottom: max(18px, var(--native-bottom-inset));
    overflow-y: auto;
    overscroll-behavior: contain;
    pointer-events: none;
    visibility: hidden;
  }
  html[data-platform] body[data-view=chat].chat-drawer-open .chat-threads {
    pointer-events: auto;
    visibility: visible;
  }
  html[data-platform] body:not(.chat-drawer-open) .chat-drawer-scrim {
    display: none;
    pointer-events: none;
  }
}
