html[data-touch-viewport="true"] {
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: pan-x pan-y;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

html[data-touch-viewport="true"] body,
html[data-touch-viewport="true"] #root,
html[data-touch-viewport="true"] .app-shell {
  height: var(--app-viewport-height, 100dvh);
  min-height: 0;
  overflow: hidden;
}

/* Keep one viewport owner; iOS pans the visual viewport on input focus. */
html[data-touch-viewport="true"] body {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
}
html[data-touch-viewport="true"] #root {
  position: absolute;
  top: var(--app-viewport-top, 0px);
  left: 0;
  width: 100%;
}
html[data-keyboard-open="true"] .app-shell { padding-top: 0; }
html[data-keyboard-open="true"] .reference-chat-panel .aui-thread-viewport-footer {
  padding-bottom: 4px;
}

html[data-touch-viewport="true"] .app-shell {
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

html[data-touch-viewport="true"] .login-shell,
html[data-touch-viewport="true"] .auth-loading {
  height: 100%;
  min-height: 0;
  overflow-y: auto;
}

/* iOS focuses small inputs by zooming; retain the page scale in every form. */
html[data-touch-viewport="true"] input,
html[data-touch-viewport="true"] textarea,
html[data-touch-viewport="true"] select,
html[data-touch-viewport="true"] [contenteditable="true"] {
  font-size: 16px;
}
