/*
 * The content pages’ own pieces: the link columns of the indicator index and
 * the summary archive, the indicator glossary, the months and entries of
 * /changelog (changelog/show), the Excel page's lead, ticker box and quick
 * links (pages/excel/show), and a draft quarterly report (pages/quarterly_reports/show):
 * its tables and charts take the column's width, its text keeps the measure.
 */
@layer pages {
  .link-columns {
    columns: 1;
    column-gap: var(--space-xl);
    font-size: var(--text-ui);

    & > :is(a, li, span) {
      display: block;
      padding-block: var(--space-3xs);
      break-inside: avoid;
    }

    @media (width >= 768px) {
      columns: 3;
    }
  }

  /* The glossary (M09-D8, pages/indicators/glossary): Core as a list of
     terms — the name, what it means, how it is worked out in the data face —
     and every other indicator in a table per group. */
  .glossary__intro {
    margin-block-end: var(--space-lg);
    color: var(--color-ink-soft);
    font-family: var(--font-prose);
    font-size: var(--text-lead);
    line-height: var(--leading-lead);
  }

  .glossary__terms {
    display: grid;
    gap: var(--space-md);
    margin: 0;

    @media (width >= 1024px) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--space-md) var(--space-xl);
    }
  }

  .glossary__term {
    display: grid;
    gap: var(--space-3xs);
    align-content: start;

    & dt {
      font-weight: var(--weight-semibold);
    }

    & dd {
      margin: 0;
      color: var(--color-ink-soft);
      font-size: var(--text-ui-sm);
    }
  }

  .glossary__formula {
    font-family: var(--font-data);
    color: var(--color-ink-muted);
  }

  /* Meanings are sentences: the table lets them wrap. */
  .glossary__table td:last-child {
    min-inline-size: 18rem;
    white-space: normal;
  }

  /* /changelog: a dated list — each month under a heavy rule, each entry's
     kind and date in caps on one line above its title (tasks/redesign,
     D15). */
  .changelog__month {
    margin-block-start: var(--space-2xl);
    padding-block-start: var(--space-xs);
    border-block-start: var(--rule-heavy);
  }

  .changelog-entry {
    margin-block-start: var(--space-lg);
    padding-block-start: var(--space-lg);
    border-block-start: var(--rule-hairline);

    .heading + & {
      margin-block-start: var(--space-sm);
      padding-block-start: 0;
      border-block-start: 0;
    }

    & > .heading {
      margin-block: var(--space-2xs) var(--space-sm);
      scroll-margin-block-start: var(--space-md);
    }
  }

  .changelog-entry__meta {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    margin: 0;
    color: var(--color-ink-muted);
    font-size: var(--text-meta-xs);
    letter-spacing: var(--tracking-caps);
    text-transform: uppercase;
    font-variant-numeric: tabular-nums lining-nums;
  }

  /* /excel/financial-statements: the lead, the ticker box with its button
     beside it from 640px, and the row of companies to start from. */
  .excel-page__lead {
    max-inline-size: 42rem;
    margin-block: var(--space-sm) var(--space-lg);
    color: var(--color-ink-soft);
    font-family: var(--font-prose);
    font-size: var(--text-lead);
    line-height: var(--leading-lead);
  }

  .excel-page__lookup {
    max-inline-size: 36rem;
  }

  .excel-page__lookup-row {
    display: grid;
    gap: var(--space-xs);

    @media (width >= 640px) {
      grid-template-columns: 1fr auto;
      align-items: center;
    }
  }

  .excel-page__tickers {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs) var(--space-md);
    margin: 0 0 var(--space-lg);
    padding: 0;
    font-size: var(--text-ui);
    list-style: none;
  }

  .excel-page__faq .disclosure__body p {
    margin: 0;
  }

  .quarterly-report {
    max-inline-size: none;

    & > :is(p, ul, ol, h2, h3) {
      max-inline-size: var(--measure);
    }

    & figure {
      margin-block: var(--space-sm) var(--space-lg);
    }

    /* The build marks figure cells and their headers `align="right"`;
       prose's own cells start-align, which would win over the attribute. */
    & :is(th, td)[align="right"] {
      text-align: end;
    }

    & h1 {
      margin-block: var(--space-xl) var(--space-sm);
      padding-block-start: var(--space-sm);
      border-block-start: var(--rule-heavy);
    }
  }

  /* The contents menu: a closed disclosure above the text on a phone; from
     1024px a column beside it that stays in view, always open — the
     disclosure's content is shown and its summary hidden. */
  .quarterly-report-page {
    @media (width >= 1024px) {
      display: grid;
      grid-template-columns: 16rem minmax(0, 1fr);
      gap: var(--space-2xl);
      align-items: start;
    }
  }

  .quarterly-report :is(h1, h2, h3) {
    scroll-margin-block-start: var(--space-lg);
  }

  .report-nav {
    padding-block: var(--space-md);
    font-family: var(--font-ui);
    font-size: var(--text-ui-sm);
    line-height: var(--leading-ui-sm);

    @media (width >= 1024px) {
      position: sticky;
      inset-block-start: 0;
      max-block-size: 100vh;
      overflow-y: auto;
      overscroll-behavior: contain;
    }
  }

  .report-nav__disclosure {
    border-block: var(--rule-hairline);

    @media (width >= 1024px) {
      border-block: 0;

      &::details-content {
        content-visibility: visible;
        block-size: auto;
      }
    }
  }

  .report-nav__summary {
    padding-block: var(--space-xs);
    font-weight: var(--weight-semibold);
    cursor: pointer;

    @media (width >= 1024px) {
      display: none;
    }
  }

  .report-nav__list {
    margin: 0;
    padding: 0 0 var(--space-sm);
    list-style: none;
  }

  .report-nav__item {
    padding-block: var(--space-3xs);
  }

  .report-nav__item--part {
    margin-block-start: var(--space-sm);
    padding-block-start: var(--space-xs);
    border-block-start: var(--rule-heavy);
    font-weight: var(--weight-semibold);
  }

  .report-nav__item--sub {
    padding-inline-start: var(--space-md);
    color: var(--color-ink-muted);
  }

  .report-nav__link {
    color: inherit;
    text-decoration: none;

    &:hover {
      text-decoration: underline;
    }
  }
}
