.root {
  position: relative;
}

.track {
  display: flex;
  gap: var(--mantine-spacing-md);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 2px;
  margin: -2px;
}

.track::-webkit-scrollbar {
  display: none;
}

.track > * {
  scroll-snap-align: start;
  flex: 0 0 auto;
}

.arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4));
  background: light-dark(var(--mantine-color-white), var(--mantine-color-dark-6));
  color: light-dark(var(--mantine-color-gray-7), var(--mantine-color-dark-1));
  cursor: pointer;
  padding: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease, background-color 120ms ease, transform 120ms ease;
  z-index: 2;
}

.root:hover .arrow.visible,
.arrow.visible:focus-visible {
  opacity: 1;
  pointer-events: auto;
}

.arrow:hover {
  background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-5));
}

.arrow:active {
  transform: translateY(-50%) scale(0.95);
}

.arrowLeft {
  left: -14px;
}

.arrowRight {
  right: -14px;
}
