/*
 * Librarium Militaris: operational parameters.
 *
 * Everything the archive records about one game, as a description list: the
 * term on the left, the value on the right, and every value that names a facet
 * links back into the archive.
 */

@layer components {
  .params {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    padding: var(--space-20);
    background-color: var(--color-surface);
    border-radius: var(--radius);
  }

  .params__head {
    padding-bottom: var(--space-12);
    border-bottom: 1px solid var(--color-border);
  }

  .params__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    font-size: var(--text-14);
    line-height: var(--leading-20);
  }

  /* Term over value on a phone, side by side once there is room for both. */
  .params__row {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding-bottom: var(--space-8);
    border-bottom: 1px solid var(--color-border-faint);

    @media (min-width: 640px) {
      flex-direction: row;
      align-items: baseline;
      gap: var(--space-16);
    }
  }

  /* The last row closes the list; a rule under it would be a rule under nothing. */
  .params__row--last {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .params__term {
    --params-term-width: 8rem;

    flex: none;
    width: var(--params-term-width);
    color: var(--color-ink-dim);
    font-family: var(--font-heading);
    letter-spacing: var(--tracking-2xs);
    text-transform: uppercase;
  }

  .params__value { min-width: 0; }

  .params__value--stack {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
  }

  .params__link {
    color: var(--color-ink-strong);
    text-decoration: underline;
    text-decoration-color: var(--color-border);
    text-underline-offset: 4px;
    transition: color var(--transition-fast);

    &:hover { color: var(--color-accent); }
  }

  .params__chip {
    display: inline-flex;
    padding: var(--space-2) var(--space-8);
    background-color: var(--color-canvas);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    color: var(--color-ink-soft);
    font-size: var(--text-12);
    line-height: var(--leading-16);
    transition: color var(--transition-chip), border-color var(--transition-chip);

    &:hover {
      color: var(--color-accent);
      border-color: var(--color-accent);
    }
  }

  /* A value with nowhere to go: no facet of the archive is filed under it. */
  .params__plain { color: var(--color-ink-muted); }

  .params__chip:focus-visible,
  .params__link:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-ring-offset);
  }
}
