@layer components {
  /* A section of the page above the prose, closed off by a hairline. */
  .context-panel {
    border-block-end: var(--border);
    display: flex;
    flex-direction: column;
    gap: var(--block-space-half);
    padding: calc(var(--block-space) * 0.75) var(--block-space-half) var(--block-space);
  }

  .context-panel__header {
    align-items: center;
    display: flex;
    gap: var(--inline-space);
    justify-content: space-between;
  }

  .context-panel__title {
    color: var(--color-ink);
    font-family: var(--font-prose);
    font-size: var(--text-normal);
    font-weight: 500;
    margin: 0;
  }

  .context-panel__actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: var(--inline-space-half);
  }

  .context-panel__badge {
    align-self: flex-start;
    border: var(--border);
    border-radius: var(--radius);
    color: var(--color-ink-muted);
    font-size: var(--text-xs);
    font-weight: 500;
    padding-inline: 0.45em;
  }

  .context-panel__body {
    display: flex;
    flex-direction: column;
    gap: var(--block-space);
  }

  .context-panel__section {
    display: flex;
    flex-direction: column;
    gap: var(--block-space-quarter);
  }

  .context-panel__subtitle {
    color: var(--color-ink-muted);
    font-size: var(--text-xs);
    font-weight: 500;
    margin: 0;
  }

  .context-panel__text {
    color: var(--color-ink);
    font-family: var(--font-prose);
    font-size: var(--text-small);
    line-height: 1.6;
    margin: 0;
  }

  .context-panel__text--muted {
    color: var(--color-ink-secondary);
    font-style: italic;
  }

  .context-panel__list {
    color: var(--color-ink);
    font-family: var(--font-prose);
    font-size: var(--text-small);
    line-height: 1.6;
    margin: 0;
    padding-inline-start: var(--inline-space-double);
  }

  .context-panel__list li {
    margin-block-end: var(--block-space-quarter);
  }

  /* The characters present are names, so they read as a line of the story
     rather than as chips. */
  .context-panel__tags {
    display: flex;
    flex-wrap: wrap;
  }

  .context-panel__tag {
    color: var(--color-ink);
    font-family: var(--font-prose);
    font-size: var(--text-small);
  }

  .context-panel__tag:not(:last-child)::after {
    content: ",";
    margin-inline-end: 1ch;
  }

  .context-panel__footer {
    color: var(--color-ink-muted);
    font-size: var(--text-xs);
    font-variant-numeric: tabular-nums;
  }

  .context-panel__empty {
    color: var(--color-ink-muted);
    font-size: var(--text-small);
    padding-block: var(--block-space-half);
    padding-inline: 0;
  }

  .context-panel__empty p {
    margin: 0;
    margin-block-end: var(--block-space-half);
  }

  .context-panel__hint {
    color: var(--color-ink-muted);
    font-size: var(--text-xs);
    font-style: italic;
  }

  /* The panel's live region stays in the page while it has nothing to say. */
  .context-panel__status:not(:has(*)) {
    display: none;
  }

  .context-panel__reason {
    color: var(--color-ink-secondary);
    font-size: var(--text-small);
    margin: 0;
  }
}
