.evi-filter-bar {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 2px;
  padding: 4px;
  overflow-x: auto;
  border: 0;
  border-radius: 15px;
  background: #fff;
  box-shadow: none;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.evi-filter-bar::-webkit-scrollbar {
  display: none;
}

.evi-filter-button {
  display: inline-flex;
  min-width: 58px;
  min-height: 34px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: .4rem .55rem;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #667085;
  font-family: var(--evi-button-font-family, 'Causten', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
  font-size: .82rem;
  font-weight: var(--evi-button-font-weight, 700);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
  user-select: none;
  transition: background .16s ease, color .16s ease, box-shadow .16s ease, transform .12s ease;
}

.evi-filter-button:hover {
  background: #f4f7fb;
  color: #344054;
}

.evi-filter-button:active {
  transform: scale(.985);
}

.evi-filter-button:focus-visible {
  outline: 3px solid rgba(var(--evi-brand-rgb), .22);
  outline-offset: -2px;
}

.evi-filter-button.active,
.evi-filter-button[aria-pressed='true'],
.evi-filter-button[aria-selected='true'] {
  background: var(--evi-brand-strong);
  color: #fff;
  box-shadow: none;
}

.evi-filter-skeleton {
  position: relative;
  overflow: hidden;
  cursor: default;
  pointer-events: none;
}

/* Keep the same width as the eventual group name, including its padding. */
.evi-filter-skeleton > span {
  visibility: hidden;
}

.evi-filter-skeleton::after {
  content: '';
  position: absolute;
  inset-inline: .55rem;
  top: 50%;
  height: .8em;
  border-radius: 5px;
  background: linear-gradient(90deg, var(--evi-skeleton-a, #eceff3) 25%, var(--evi-skeleton-b, #f7f8fa) 50%, var(--evi-skeleton-a, #eceff3) 75%);
  background-size: 200% 100%;
  transform: translateY(-50%);
  animation: evi-filter-shimmer 1.5s ease-in-out infinite;
}

@keyframes evi-filter-shimmer {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .evi-filter-skeleton::after { animation: none; }
}

@media (max-width: 576px) {
  .evi-filter-bar {
    gap: 1px;
    padding: 3px;
    border-radius: 14px;
  }

  .evi-filter-button {
    min-height: 34px;
    padding: .4rem .2rem;
    border-radius: 10px;
    font-size: clamp(.66rem, 3.2vw, .8rem);
  }

  .evi-filter-skeleton::after { inset-inline: .3rem; }
}
