:host(us-data-sources) {
  display: block;
}

.data-source {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--color-neutral-300);
  padding: calc(var(--space-inner-m) - 1px) var(--space-inner-xl)
    var(--space-inner-m);
  background-color: var(--color-neutral-0);

  &.hide {
    display: none;
  }

  &__container {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    width: 100%;

    .text-block {
      flex-shrink: 0;
      height: var(--size-xl);
      display: flex;
      align-items: center;
    }

    p {
      margin-right: var(--space-inline-m);
      font: var(--text-p-s-light);
      color: var(--color-text-900);
    }
  }

  .add-button {
    margin-left: 10px;
  }

  .indicator {
    display: flex;
    align-items: center;
    margin-left: 2px;
    font: var(--text-p-s-light);
    color: var(--color-text-900);
    opacity: 0;

    &_active {
      opacity: 1;
    }
  }
}

.sources {
  display: flex;
  flex: 1;
  overflow: hidden;
}

.source {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  width: 48px;
  height: 32px;
  border-radius: var(--border-radius-m);
  border: 1px solid var(--color-neutral-300);
  cursor: pointer;

  &:not(:last-child) {
    margin-right: var(--space-inline-s);
  }

  &:hover {
    border: 1px solid var(--color-neutral-600);
  }

  &:focus,
  &:focus-visible,
  &:focus-within {
    outline-color: var(--color-neutral-600);
  }

  &:active {
    border-width: 0;
    background-color: var(--color-neutral-200);
  }

  &_error {
    border: 1px solid var(--color-danger-600);
    &:hover {
      border: 1px solid var(--color-danger-600);
    }
    &:active {
      border-width: 0;
    }
  }

  &_suspended {
    border: 1px solid var(--color-warning-600);
    &:hover {
      border: 1px solid var(--color-warning-600);
    }
    &:active {
      border-width: 0;
    }
  }

  &_loading {
    border: 1px solid var(--color-neutral-300);
    &:hover {
      border: 1px solid var(--color-neutral-300);
    }
    &:active .loading-state {
      display: none;
    }
  }

  &_hidden {
    display: none;
  }

  &_no-margin {
    margin-right: 0 !important;
  }

  img {
    object-fit: contain;
    width: 38px;
    height: 24px;
  }

  .loading-state {
    position: absolute;
    rect {
      transition: stroke-dashoffset 0.5s linear;
    }
    &:focus {
      outline: none;
    }
  }
  &_disable {
    background-color: var(--color-neutral-200);
    border-color: var(--color-neutral-200);
    cursor: auto;
    user-select: none;
    pointer-events: none;

    &:hover {
      border-width: 1px;
      border-color: var(--color-neutral-200);
      cursor: auto;
    }

    &:focus,
    &:focus-visible,
    &:focus-within {
      outline-width: 0;
    }

    &:active {
      border-width: 1px;
      border-color: var(--color-neutral-200);
      background-color: var(--color-neutral-200);
    }
    img {
      opacity: 0.5;
    }
    &.source {
      &_error {
        border-width: 1px;
        border-color: var(--color-danger-600);
        &:hover,
        &:active {
          border-color: var(--color-danger-600);
        }
      }
      &_suspended {
        border-width: 1px;
        border-color: var(--color-warning-600);
        &:hover,
        &:active {
          border-color: var(--color-warning-600);
        }
      }
    }
  }
}

.data-source[class*="horizontal"] {
  .add-button {
    margin-left: 50px;
  }
}
