/* Keep form rows from shrinking into the padding reserved below the keyboard. */
[data-pos-keyboard-scroll] > * { flex-shrink: 0; }
html[data-pos-keyboard-scroll] { height: auto; min-height: 100%; overflow-y: auto; }
dialog.action-dialog[data-native-keyboard] { max-height: calc(var(--dialog-viewport-height, 100dvh) - 24px); }
dialog.action-dialog[data-native-keyboard][data-keyboard-occluded] { inset: var(--dialog-viewport-top, 0px) 0 auto; margin: 12px auto; }
.pos-keyboard.is-numeric { width: min(560px, calc(100vw - 32px)); }
.pos-keyboard.is-numeric .pos-keyboard-keys { width: 100%; max-width: none; }
.pos-keyboard header strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pos-keyboard-settings { max-height: min(320px, calc(100dvh - 100px)); overflow-y: auto; justify-content: flex-start; }
.pos-keyboard-settings > * { flex-shrink: 0; }
.pos-keyboard .pos-keyboard-row button { min-width: 44px; }
@media (min-width: 600px) and (max-height: 800px) {
  /* Browser chrome in landscape must not turn the large preference into a wall. */
  .pos-keyboard { padding: var(--space-2); }
  .pos-keyboard :is(.pos-keyboard-keys, .pos-keyboard-row) { gap: var(--space-1); }
  .pos-keyboard .pos-keyboard-row button { min-height: clamp(44px, 6.5dvh, 52px); font-size: var(--text-base); }
  .pos-keyboard header { margin-bottom: var(--space-1); }
  .pos-keyboard header button { min-height: 44px; }
  .pos-keyboard:not(.is-numeric):not([data-keyboard-symbols]) .pos-keyboard-keys > .pos-keyboard-row:first-child { display: none; }
}
@media (min-width: 600px) {
  .pos-keyboard { bottom: max(8px, env(safe-area-inset-bottom, 0px)); }
  .pos-keyboard-integrated .dialog-fixed-footer .btn { min-height: 52px; }
  .pos-keyboard[data-keyboard-tablet] .pos-keyboard-row button { min-height: clamp(44px, 6.5dvh, 52px); }
  .pos-keyboard[data-keyboard-tablet]:not(.is-numeric):not([data-keyboard-symbols]) .pos-keyboard-keys > .pos-keyboard-row:first-child { display: none; }
}
@media (min-width: 600px) and (max-width: 700px) {
  .pos-keyboard[data-keyboard-size] { width: calc(100vw - 16px); padding: var(--space-1); }
  dialog.action-dialog.pos-keyboard-integrated[data-keyboard-size] { width: calc(100vw - 16px); max-width: calc(100vw - 16px); padding: var(--space-2); }
  .pos-keyboard-integrated .dialog-keyboard-slot .pos-keyboard { padding: var(--space-1); }
  .pos-keyboard :is(.pos-keyboard-keys, .pos-keyboard-row) { gap: 2px; }
  .pos-keyboard .pos-keyboard-bottom button { padding-inline: 2px; font-size: var(--text-sm); }
}
