.page__header {
  align-items: center;
  column-gap: var(--size-4);
  display: flex;
  flex-wrap: wrap;
  border-block-end-width: var(--border);
  border-image: var(--divider-block-end);
  justify-content: space-between;
  padding-block-end: var(--size-3);
  row-gap: var(--size-2);
}

/* Square at the 44px touch minimum, like the steppers. */
.page__menu-button {
  --btn-icon-size: var(--size-5);
  --btn-padding: var(--size-3);
}

/* Notes and settings that would otherwise crowd the page, kept a tap away. */
.page__menu {
  --popover-size: min(var(--max-i-2xs), calc(100vw - var(--size-8)));

  font-size: var(--text-sm);
  padding: var(--size-3);
}

.page__subtitle {
  color: var(--color-text-subtle);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
  margin-block-start: var(--size-1);
}

.page__title {
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-tight);
}

/* Single-form screens: a login box has no business spanning the full 64rem
   container the lists need. Forms with side-by-side fields override the width. */
.page--narrow {
  margin-inline: auto;
  max-inline-size: var(--page-width, var(--max-i-sm));
}

.page--form {
  --page-width: var(--max-i-xl);
}

.empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--size-10) var(--size-4);
  row-gap: var(--size-2);
  text-align: center;
}

.empty__title {
  font-size: var(--text-lg);
  font-weight: var(--font-semibold);
}

.empty__body {
  color: var(--color-text-subtle);
  font-size: var(--text-sm);
  margin-block-end: var(--size-2);
  max-inline-size: var(--max-i-sm);
  text-wrap: pretty;
}

.code {
  font-family: var(--font-code);
  letter-spacing: var(--tracking-wide);
}

.skip-link {
  background-color: var(--color-surface);
  border: var(--border) solid var(--color-border);
  border-radius: var(--rounded-lg);
  font-weight: var(--font-medium);
  inset-block-start: var(--size-2);
  inset-inline-start: var(--size-2);
  padding: var(--size-2) var(--size-3);
  position: fixed;
  transform: translateY(-200%);
  z-index: 200;

  &:focus {
    transform: none;
  }
}
