@layer layout {
  .page-wrap {
    inline-size: 100%;
    margin-inline: auto;
    max-inline-size: var(--max-width);
    padding-inline: var(--spacing-page);
  }

  main {
    flex: 1;
    inline-size: 100%;
    margin-inline: auto;
    max-inline-size: var(--max-width);
    padding-block: 2rem;
    padding-inline: var(--spacing-page);
  }

  main.main-wide {
    max-inline-size: var(--max-width-wide);
  }

  .skip-link {
    background: var(--color-primary);
    border-radius: 0 0 var(--radius-sm) 0;
    color: var(--color-text-on-primary); inset-block-start: -100%; inset-inline-start: 0;
    padding: 0.5rem 1rem;
    position: absolute;
    text-decoration: none;
    z-index: 9999;
  }
  .skip-link:focus { inset-block-start: 0; }

  .page-header {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    margin-block-end: 1.5rem;

    @media (max-width: 640px) {
      align-items: flex-start;
      flex-direction: column;
    }
  }
  /* Matches .page-subtitle */
  .page-header-subtitle {
    color: var(--color-text-muted);
    font-size: var(--text-sm);
    margin-block-start: var(--space-1);
  }

  .demo-banner {
    background: oklch(var(--oklch-warning));
    color: oklch(0.2 0 0);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 0.375rem 1rem;
    text-align: center;
  }

  .trial-banner {
    background: oklch(0.92 0.08 60);
    border-block-end: 2px solid oklch(0.8 0.1 60);
    color: oklch(0.35 0.10 60);
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.5rem 1rem;
    text-align: center;
    a {
      color: oklch(0.35 0.10 60);
      font-weight: 600;
      text-decoration: underline;
    }
    a:hover {
      opacity: 0.8;
      text-decoration-color: oklch(0.35 0.10 60);
    }
  }

  .stats-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    margin-block-end: 2rem;

    @media (max-width: 640px) { grid-template-columns: 1fr; }
  }

  /* Printed pages (#1367), such as the student agenda and a venue sheet, show only the content. */
  @media print {
    .navbar,
    .site-footer,
    .flash,
    .demo-banner,
    .trial-banner,
    .video-drawer,
    .header-actions,
    .exam-calendar-nav,
    .exam-calendar-chips,
    [data-controller="print"] { display: none; }

    .venue-sheet { break-before: page; }
    .venue-sheet:first-of-type { break-before: auto; }
  }
}
