:host {
  /*@doc Define a cor de efeito de sombreado com componente.*/
  --ez-scroller--box-shadow-color: var(--background--body, #fafcff);

  /* scrollbar */
  /*@doc Define a cor da barra de rolagem do componente.*/
  --ez-scroller__scrollbar--color-default: var(--scrollbar--default, #626e82);
  /*@doc Define a cor de fundo da barra de rolagem do componente.*/
  --ez-scroller__scrollbar--color-background: var(--scrollbar--background, #E5EAF0);
  /*@doc Define a cor do hover na barra de rolagem do componente.*/
  --ez-scroller__scrollbar--color-hover: var(--scrollbar--hover, #2B3A54);
  /*@doc Define a cor do active na barra de rolagem do componente.*/
  --ez-scroller__scrollbar--color-clicked: var(--scrollbar--clicked, #a2abb9);
  /*@doc Define o raio da borda da barra de rolagem do componente.*/
  --ez-scroller__scrollbar--border-radius: var(--border--radius-small, 6px);
  /*@doc Define a largura da barra de rolagem do componente.*/
  --ez-scroller__scrollbar--width: var(--space--small, 6px);
  /*@doc Define o a altura máxima do componente.*/
  --ez-scroller__max-height: unset;
  /*@doc Define o espaçamento interno direito da barra de rolagem do componente.*/
  --ez-scroller__scrollbar--padding-right: var(--space-extra-small, 3px);

  display: flex;
  cursor: grab;
  width: 100%;
  overflow: hidden;
}

.dragging {
  cursor: grabbing;
}

.ez-scroller__container {
  display: flex;
  overflow-y: hidden;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

.ez-scroller__container--both:not(.ez-scroller__container--locked),
.ez-scroller__container:not(.ez-scroller__container--locked):hover {
  /*public*/
  scrollbar-color: var(--ez-scroller__scrollbar--color-clicked) var(--ez-scroller__scrollbar--color-background);
}

.ez-scroller__container--both {
  overflow-y: scroll;
  overflow-x: scroll;
  flex-wrap: wrap;
}

.ez-scroller__container--horizontal {
  overflow-x: scroll;
  flex-direction: row;
  padding-right: var(--ez-scroller__scrollbar--padding-right);
}

.ez-scroller__container--vertical {
  overflow-y: scroll;
  flex-direction: column;
  width: 100%;
  max-height: var(--ez-scroller__max-height);
}

.ez-scroller__container::-webkit-scrollbar {
  background-color: transparent;

  /*public*/
  width: var(--ez-scroller__scrollbar--width);
  height: var(--ez-scroller__scrollbar--width);
  max-width: var(--ez-scroller__scrollbar--width);
  min-width: var(--ez-scroller__scrollbar--width);
}

.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar {
  /*public*/
  background-color: var(--ez-scroller__scrollbar--color-background);
}

.ez-scroller__container::-webkit-scrollbar-track {
  visibility: hidden;
  background-color: transparent;

  /*public*/
  border-radius: var(--ez-scroller__scrollbar--border-radius);
}

.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-track,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-track {
  /*public*/
  background-color: var(--ez-scroller__scrollbar--color-background);
}

.ez-scroller__container::-webkit-scrollbar-thumb {
  background-color: transparent;

  /*public*/
  border-radius: var(--ez-scroller__scrollbar--border-radius);
}

.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-thumb,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-thumb {
  /*public*/
  background-color: var(--ez-scroller__scrollbar--color-default);
}

.ez-scroller__container::-webkit-scrollbar-thumb:vertical:hover,
.ez-scroller__container::-webkit-scrollbar-thumb:horizontal:hover {
  background-color: transparent;
}

.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-thumb:vertical:hover,
.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-thumb:horizontal:hover,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-thumb:vertical:hover,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-thumb:horizontal:hover {
  /*public*/
  background-color: var(--ez-scroller__scrollbar--color-hover);
}

.ez-scroller__container::-webkit-scrollbar-thumb:vertical:active,
.ez-scroller__container::-webkit-scrollbar-thumb:horizontal:active {
  background-color: transparent;
}

.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-thumb:vertical:active,
.ez-scroller__container--both:not(.ez-scroller__container--locked)::-webkit-scrollbar-thumb:horizontal:active,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-thumb:vertical:active,
.ez-scroller__container:not(.ez-scroller__container--locked):hover::-webkit-scrollbar-thumb:horizontal:active {
  /*public*/
  background-color: var(--ez-scroller__scrollbar--color-clicked);
}

.ez-scroller__wrapper {
  display: flex;
  position: relative;
  width: 100%;
  height: auto;
}

.ez-scroller__wrapper--horizontal {
  flex-direction: row;
}

.ez-scroller__wrapper--vertical {
  flex-direction: column;
}

.ez-scroller__wrapper--shadow-start::before,
.ez-scroller__wrapper--shadow-end::after {
  content: "";
  display: flex;
  position: absolute;
  z-index: 1;
}

.ez-scroller__wrapper--horizontal.ez-scroller__wrapper--shadow-start::before,
.ez-scroller__wrapper--horizontal.ez-scroller__wrapper--shadow-end::after {
  width: 24px;
  min-height: calc(100% - 10px);
}

.ez-scroller__wrapper--horizontal.ez-scroller__wrapper--shadow-start::before {
  left: 0;

  /*public*/
  background: linear-gradient(to right, var(--ez-scroller--box-shadow-color) 20%, transparent 80%);
}

.ez-scroller__wrapper--horizontal.ez-scroller__wrapper--shadow-end::after {
  right: 0;

  /*public*/
  background: linear-gradient(to left, var(--ez-scroller--box-shadow-color) 20%, transparent 80%);
}

.ez-scroller__wrapper--vertical.ez-scroller__wrapper--shadow-start::before,
.ez-scroller__wrapper--vertical.ez-scroller__wrapper--shadow-end::after {
  min-width: calc(100% - 10px);
  height: 24px;
}

.ez-scroller__wrapper--vertical.ez-scroller__wrapper--shadow-start::before {
  top: 0;

  /*public*/
  background: linear-gradient(to bottom, var(--ez-scroller--box-shadow-color) 20%, transparent 80%);
}

.ez-scroller__wrapper--vertical.ez-scroller__wrapper--shadow-end::after {
  bottom: 0;

  /*public*/
  background: linear-gradient(to top, var(--ez-scroller--box-shadow-color) 20%, transparent 80%);
}