/* Shared layout primitives for route-level page shells */
.hoard-page {
  display: flex;
  flex-direction: column;
  gap: var(--hoard-page-gap, var(--space-6));
  margin-inline: auto;
  width: min(100%, var(--hoard-page-width, 1120px));
  padding-block:
    var(--hoard-page-padding-start, var(--space-4))
    var(--hoard-page-padding-end, var(--space-8));
}

.hoard-page--centered {
  width: 100%;
  margin-inline: 0;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - var(--hoard-centered-offset, 210px));
  padding: var(--hoard-centered-padding, var(--space-8) var(--space-4));
}

.hoard-shell-grid {
  display: grid;
  gap: var(--hoard-shell-gap, var(--space-8));
  width: min(100%, var(--hoard-shell-width, 1040px));
  padding: var(--hoard-shell-padding, var(--space-8));
}

@media (width <= 960px) {
  .hoard-page {
    width: 100%;
    gap: var(--hoard-page-gap-mobile, var(--space-5));
    padding-inline:
      var(--hoard-page-padding-inline-start-mobile, max(var(--space-2), env(safe-area-inset-left)))
      var(--hoard-page-padding-inline-end-mobile, max(var(--space-2), env(safe-area-inset-right)));
    padding-block:
      var(--hoard-page-padding-start-mobile, var(--space-2))
      var(--hoard-page-padding-end-mobile, var(--space-6));
  }

  .hoard-page--centered {
    width: 100%;
    min-height: calc(100vh - var(--hoard-centered-offset-mobile, 180px));
    padding: var(--hoard-centered-padding-mobile, var(--space-5) var(--space-2));
  }

  .hoard-shell-grid {
    width: 100%;
    gap: var(--hoard-shell-gap-mobile, var(--space-5));
    padding:
      var(--hoard-shell-padding-block-mobile, var(--space-5))
      var(--hoard-shell-padding-inline-mobile, var(--space-4));
  }
}

@media (width <= 600px) {
  .hoard-page {
    gap: var(--hoard-page-gap-mobile-xs, var(--space-4));
    padding-block:
      var(--hoard-page-padding-start-mobile-xs, var(--space-2))
      var(--hoard-page-padding-end-mobile-xs, var(--space-5));
  }

  .hoard-page--centered {
    min-height: calc(100vh - var(--hoard-centered-offset-mobile-xs, 164px));
    padding: var(--hoard-centered-padding-mobile-xs, var(--space-4) var(--space-2));
  }

  .hoard-shell-grid {
    gap: var(--hoard-shell-gap-mobile-xs, var(--space-4));
    padding:
      var(--hoard-shell-padding-block-mobile-xs, var(--space-4))
      var(--hoard-shell-padding-inline-mobile-xs, var(--space-3));
  }
}
