/*
 * Librarium Militaris: where the footage came from.
 *
 * The channel on one side, the way out to the source on the other, and the game
 * in a sentence under the rule that closes the plate off.
 */

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

  /* Stacks on a phone, where the two of them will not share a line. */
  .sourcebar__row {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-16);

    @media (min-width: 640px) {
      flex-direction: row;
      align-items: center;
    }
  }

  /* Quiet: it is context for the stream above it, not a section of its own. */
  .sourcebar__summary {
    padding-top: var(--space-16);
    border-top: 1px solid var(--color-border);
    color: var(--color-ink-soft);
    font-size: var(--text-14);
    line-height: var(--leading-digest);
  }

  .sourcebar__channel {
    display: flex;
    align-items: center;
    gap: var(--space-12);
    min-width: 0;
  }

  .sourcebar__avatar {
    --avatar-size: var(--space-40);

    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: var(--avatar-size);
    height: var(--avatar-size);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-pill);
    background-color: var(--color-border);
    color: var(--color-ink-soft);

    & svg {
      width: var(--space-20);
      height: var(--space-20);
    }
  }

  .sourcebar__name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--color-ink-bright);
    font-size: var(--text-16);
    font-weight: 500;
    transition: color var(--transition-fast);

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

  .sourcebar__facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-16);
    color: var(--color-ink-soft);
    font-size: var(--text-14);
    line-height: var(--leading-20);

    @media (min-width: 640px) { gap: var(--space-24); }
  }

  .sourcebar__external {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    flex: none;
    padding: var(--space-6) var(--space-16);
    background-color: var(--color-surface-sunken);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius);
    color: var(--color-ink-muted);
    font-family: var(--font-heading);
    font-size: var(--text-12);
    line-height: var(--leading-16);
    letter-spacing: var(--tracking-2xs);
    text-transform: uppercase;
    white-space: nowrap;
    transition: color var(--transition-fast), border-color var(--transition-fast);

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

    & svg {
      width: var(--space-12);
      height: var(--space-12);
      flex: none;
    }
  }

  .sourcebar__name:focus-visible,
  .sourcebar__external:focus-visible {
    outline: var(--focus-ring);
    outline-offset: var(--focus-ring-offset);
  }
}
