.sn-button {
  font-size: 0.8125rem;
  padding: 0.609375rem;
  min-height: 1.8125rem;
  @extend .border-0;
  @extend .rounded;
  @extend .border-solid;
  @extend .cursor-pointer;
  @extend .capitalize;
  @extend .font-bold;

  @extend .hover\:brightness-130;
  @extend .focus\:brightness-130;
  @extend .focus\:outline-none;
}

.sn-button.small {
  font-size: 0.7109375rem;
  padding: 0.40625rem 0.609375rem;
}

.sn-button.outlined {
  @extend .bg-default;
  @extend .border-1;
  @extend .border-main;
  @extend .color-text;
  @extend .hover\:bg-highlight;
  @extend .focus\:bg-highlight;
  @extend .focus\:shadow-none;
  @extend .focus\:outline-none;
}

.sn-button.contrast {
  @extend .hover\:brightness-130;
  background-color: var(--sn-stylekit-contrast-foreground-color);
  color: var(--sn-stylekit-contrast-background-color);
}

.sn-button.neutral {
  @extend .hover\:brightness-130;
  @extend .focus\:brightness-130;
  background-color: var(--sn-stylekit-neutral-color);
  color: var(--sn-stylekit-neutral-contrast-color);
}

.sn-button.info {
  @extend .bg-info;
  @extend .color-info-contrast;
}

.sn-button.warning {
  background-color: var(--sn-stylekit-warning-color);
  color: var(--sn-stylekit-warning-contrast-color);
}

.sn-button.danger {
  background-color: var(--sn-stylekit-danger-color);
  color: var(--sn-stylekit-danger-contrast-color);
}

.sn-button.success {
  background-color: var(--sn-stylekit-success-color);
  color: var(--sn-stylekit-success-contrast-color);
}

.sn-dropdown-menu {
  @extend .items-center;
  @extend .bg-default;
  @extend .border-0;
  @extend .border-main;
  @extend .rounded;
  @extend .border-solid;
  @extend .border-1;
  @extend .cursor-pointer;
  @extend .font-normal;
  @extend .m-h-32;
  @extend .hover\:bg-highlight;
  @extend .inline-flex;
  @extend .justify-center;
  @extend .leading-4;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
  @extend .px-2;
  @extend .py-1;
  @extend .color-text;
  @extend .text-sm;
  @extend .w-auto;
}

.sn-dropdown-menu > .sn-icon:first-child {
  @extend .mr-2;
}

.sn-dropdown-menu > .sn-icon:last-child {
  @extend .ml-2;
}

.sn-dropdown-menu-list {
  @extend .absolute;
  @extend .bg-default;
  @extend .border-main;
  @extend .rounded;
  @extend .box-shadow;
  @extend .font-normal;
  @extend .min-w-265px;
  @extend .mt-2;
  @extend .focus\:outline-none;
  @extend .origin-top-right;
  @extend .py-2;
  @extend .slide-down-animation;
  @extend .color-text;
  @extend .w-56;
}

.sn-dropdown-menu-list-item {
  @extend .items-center;
  @extend .cursor-pointer;
  @extend .flex;
  @extend .hover\:bg-highlight;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
  @extend .px-2;
  @extend .selected\:bg-color;
  @extend .selected\:fg-color;
  @extend .text-sm;
  @extend .m-h-32;
}

.sn-dropdown-menu-list-item > .sn-icon {
  @extend .mr-2;
}

.sn-select {
  @extend .items-center;
  @extend .bg-default;
  @extend .border-0;
  @extend .border-main;
  @extend .border-solid;
  @extend .border-1;
  @extend .border-box;
  @extend .rounded;
  @extend .cursor-pointer;
  @extend .font-normal;
  @extend .m-h-32;
  @extend .hover\:bg-highlight;
  @extend .inline-flex;
  @extend .justify-center;
  @extend .leading-4;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
  @extend .color-text;
  @extend .text-sm;
  @extend .w-auto;
}

.sn-select-button {
  @extend .items-center;
  @extend .border-0;
  @extend .cursor-pointer;
  @extend .inline-flex;
  @extend .justify-center;
  @extend .py-1;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
}

.sn-select-button > .sn-icon:last-child {
  @extend .ml-2;
}

.sn-select-list {
  @extend .bg-default;
  @extend .border-main;
  @extend .rounded;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
  @extend .origin-top-right;
  @extend .color-text;
  @extend .text-sm;
}

.sn-select-list-option {
  @extend .cursor-pointer;
  @extend .selected\:bg-color;
  @extend .selected\:fg-color;
  @extend .font-normal;
  @extend .text-sm;
  @extend .py-2;
}

.sn-select-popover {
  @extend .border-main;
  @extend .rounded;
  @extend .box-shadow;
  @extend .mt-2;
  @extend .focus\:outline-none;
  @extend .focus\:shadow-none;
  @extend .border-0;
  @extend .slide-down-animation;
}

/**
 * A button that is just an icon. Separated from .sn-button because there
 * is almost no style overlap.
 */
.sn-icon-button {
  @extend .color-neutral;
  @extend .min-w-8;
  @extend .h-8;
  @extend .flex;
  @extend .justify-center;
  @extend .items-center;
  @extend .border-solid;
  @extend .border-1;
  @extend .border-main;
  @extend .bg-clip-padding;
  @extend .m-0;
  @extend .p-0;
  @extend .bg-transparent;
  @extend .cursor-pointer;
  @extend .rounded-full;
  @extend .hover\:color-text;
  @extend .focus\:color-text;
  @extend .hover\:bg-contrast;
  @extend .focus\:bg-contrast;
  @extend .focus\:outline-none;
  @extend .focus\:ring-info;
}

.sn-icon {
  @extend .h-5;
  @extend .w-5;
  @extend .fill-current;

  &.sn-icon--small {
    @extend .h-3\.5;
    @extend .w-3\.5;
  }

  &.sn-icon--mid {
    @extend .w-4;
    @extend .h-4;
  }
}

.sn-icon-button.info {
  @extend .bg-info;
  @extend .color-info-contrast;

  &:hover,
  &:focus {
    @extend .color-info-contrast;
    @extend .bg-info-dark;
  }
}

.sn-full-screen {
  @extend .h-100vh;
  @extend .w-100vw;

  @extend .absolute;
  @extend .top-left-0;
}

.toast-progress-bar {
  @extend .rounded;
  @extend .w-full;
  @extend .bg-default;
  @extend .overflow-hidden;

  border-top-left-radius: 0;
  border-top-right-radius: 0;

  &__value {
    @extend .rounded;
    @extend .h-2;
    @extend .bg-info;

    border-top-left-radius: 0;
    transition: width 0.1s;
  }
}
