/*
 * Empty states (S-02, S-03, S-06, S-10): centered column, 72px tinted icon disc, 24px/700 title,
 * 15px body, one next step. empty_state(title:, body:, action:, icon:, tone:, card:).
 * .empty--card wraps the state in a surface card (S-10 "No documents match these filters").
 */
@layer components {
  .empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    max-width: 600px;
    margin: 0 auto;
    padding: 48px 32px;
    text-align: center;
  }

  .empty__icon {
    width: 72px;
    height: 72px;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 30px;
  }

  .empty__title {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
  }

  .empty__body {
    margin: 0;
    color: var(--color-neutral-800);
    font-size: 15px;
    line-height: 1.55;
    text-wrap: pretty;
  }

  .empty__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 4px;
  }

  .empty-card {
    padding: 8px;
    border-radius: var(--radius-card);
    background: var(--color-surface);
  }
  .empty-card .empty { max-width: 560px; }

  /* Full-height centering inside .main (S-06) */
  .empty-page {
    flex: 1;
    display: grid;
    place-items: center;
  }
  /* UI spec §24 "File unavailable": the S-08 notice, centred at the design's width. */
  .file-unavailable { width: min(100%, 496px); }

  /* E-12 "This page isn't available to you" (shared/_resources_unavailable): left-aligned, centred
     vertically in .main, 64px surface disc, 38px title, 16px body, one button. */
  .blocked {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 16px;
    max-width: 560px;
    padding-bottom: 80px;
  }
  .blocked__icon {
    width: 64px;
    height: 64px;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--color-surface);
    font-size: 28px;
  }
  .blocked__title {
    margin: 0;
    font-size: 38px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.12;
  }
  .blocked__body {
    margin: 0;
    color: var(--color-neutral-800);
    font-size: 16px;
    line-height: 1.55;
  }

  @media (max-width: 767px) {
    .empty { padding: 32px 8px; }
    .empty__title { font-size: 21px; }
    .empty__body { font-size: 14px; }
    .blocked { padding: 24px 0 40px; }
    .blocked__title { font-size: 28px; }
    .blocked__body { font-size: 15px; }
  }
}
