@layer components {
  /* Plan badge
  /* ------------------------------------------------------------------------ */

  .billing-plan__badge {
    display: inline-block;
    padding: 0.2em 0.8em;
    border-radius: 2em;
    font-size: var(--text-small);
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
  }

  .billing-plan__badge--free {
    background: var(--color-ink-lightest);
    color: var(--color-ink-dark);
  }

  .billing-plan__badge--pro {
    background: var(--color-link);
    color: var(--color-white);
  }

  .billing-plan__badge--business {
    background: var(--color-ink-darker);
    color: var(--color-white);
  }

  /* Usage bars
  /* ------------------------------------------------------------------------ */

  .billing-usage {
    display: flex;
    flex-direction: column;
    gap: 0.75em;
  }

  .billing-usage__item {
    display: flex;
    flex-direction: column;
    gap: 0.25em;
  }

  .billing-usage__label {
    display: flex;
    justify-content: space-between;
    font-size: var(--text-small);
  }

  .billing-usage__bar {
    height: 6px;
    background: var(--color-ink-lightest);
    border-radius: 3px;
    overflow: hidden;
  }

  .billing-usage__fill {
    height: 100%;
    min-width: 4px;
    background: var(--color-link);
    border-radius: 3px;
    transition: width 0.3s ease;
  }

  .billing-usage__fill--warning {
    background: var(--color-negative);
  }

  /* Plan options
  /* ------------------------------------------------------------------------ */

  .billing-plans {
    display: flex;
    flex-direction: column;
    gap: 1em;
    margin-block-start: 0.5em;
  }

  .billing-plans__option {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    padding: 1em;
    border: 1px solid var(--color-ink-lightest);
    border-radius: 0.5em;
  }

  .billing-plans__option strong {
    font-size: var(--text-medium);
  }

  /* Upgrade prompt (inline in views)
  /* ------------------------------------------------------------------------ */

  .upgrade-prompt {
    padding: 1em;
    border: 1px solid var(--color-negative);
    border-radius: 0.5em;
    background: var(--color-ink-lightest);
    text-align: center;
  }

  .upgrade-prompt__message {
    margin-block-end: 0.5em;
    font-size: var(--text-small);
  }
}
