/* Shared normal-flow page layout. No content track grows or shrinks. */
html body,
html body #root {
  min-height: 100vh;
  min-height: 100dvh;
}

html body :is(.page-shell, .email-landing) {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  padding-bottom: 36px;
}

html body :is(.page-shell, .email-landing) > * {
  flex-shrink: 0;
}

html body :is(.page-shell, .email-landing) > .footer {
  margin-block-start: auto;
}

/* Retain the native gap before the footer without stretching the last panel.
   Fixed dialog siblings do not change which content block owns this gap. */
html body .page-shell > :is(main, section):last-of-type {
  margin-block-end: 34px;
}
