:root {
  --action-bar-button-padding: 1rem;
  --action-bar-button-width: 100%;
}

.action-bar__buttons {
  display: flex;
  flex-wrap: wrap;
  list-style: none;

  .action-bar:not(.action-bar--inline) & {
    @include use-responsive-sizing(flex-direction, (xs: row, m: column));
  }

  @include use-responsive-sizing(gap, (xs: 0.5rem 1.5rem, m: 1.5rem));
  @include use-responsive-sizing(align-items, (xs: center, m: stretch));
}

.action-bar__button {
  align-items: center;
  border: 1px solid var(--color-grey-x-light);
  border-radius: 0.5rem;
  color: var(--color-midnight);
  display: flex;
  gap: 1rem;
  inline-size: var(--action-bar-button-width);
  overflow: hidden;
  padding: var(--action-bar-button-padding);
  position: relative;
  text-align: center;
  transition-property: background-color, color;

  .action-bar--inline & {
    background-color: var(--color-grey-x-light);
    block-size: var(--action-bar-button-block-size, 4rem);
    border-color: transparent;
    border-radius: 50%;
    inline-size: var(--action-bar-button-inline-size, 4rem);

    &:hover,
    &:focus-visible:not(.u-invisible-focus) {
      background-color: var(--color-midnight);
      color: var(--color-white);
    }

    &:is([aria-pressed='true']) {
      background-color: var(--color-midnight);
      color: var(--color-white);

      &:hover,
      &:focus-visible:not(.u-invisible-focus) {
        background-color: var(--color-grey-x-light);
        color: var(--color-midnight);
      }
    }
  }

  &.is-loading {
    pointer-events: none;
  }

  @include use-responsive-sizing(flex-direction, (xs: row, m: column));
}

.action-bar__icon {
  font-size: 2rem;
}

.action-bar__text {
  --underline-height: 2px;

  font-size: 1.4rem;
  font-weight: var(--font-weight-bold);

  .action-bar--inline & {
    display: none;
  }
}

.action-bar__loading {
  --loading-color: var(--color-grey-dark);
  --loading-size: 3rem;
  --loading-stroke-width: 0.5rem;

  align-items: center;
  background-color: rgba(#fff, 0.9);
  display: flex;
  flex-direction: column;
  inset: 0;
  justify-content: center;
  position: absolute;

  .action-bar--inline & {
    --loading-size: 1.6rem;
  }

  .action-bar__button:not(.is-loading) & {
    display: none;
  }
}
