/* Copyright 2026 Renofy Ltd. All rights reserved. */
/* Empty state — shared layout for list pages with no items.

   Grows into the leftover vertical space and centres its content. Requires
   .empty-state to be a descendant of <main>; the :has() rules below make
   <main> and any intermediate wrapper flex columns so the centring works. */

main:has(.empty-state) {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
}

main:has(.empty-state) > *:has(.empty-state) {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.empty-state {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  text-align: center;
}

@media (min-width: 821px) {
  /* Extra bottom padding shifts the visual centre up to compensate for the
     heading (and any bucket bar) above. */
  .empty-state {
    padding-bottom: clamp(2rem, 8vh, 8rem);
  }
}
