:root {
  --ifx-font-family: "Source Sans 3", "Arial, sans-serif";
}

/* switch.css */
:host {
  display: inline-block;
  user-select: none;
}

.container {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.container.gap {
  gap: 16px;
}

.switch__checkbox-container {
  padding: 4px;
  display: flex;
  align-items: center;
  position: relative;
  width: 32px;
  height: 16px;
  background-color: #FFFFFF;
  border: 1px solid #575352;
  border-radius: 20px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  outline: none;
}
.switch__checkbox-container:focus {
  outline: 4px solid #0A8276;
  outline-offset: 2px;
}
.switch__checkbox-container:focus:not(:focus-visible) {
  outline: none;
}
.switch__checkbox-container:focus-visible {
  outline: 2px solid #0A8276;
  outline-offset: 2px;
}
.switch__checkbox-container.disabled {
  cursor: default;
  border-color: #BFBBBB;
}

.switch__label-wrapper label:hover {
  cursor: pointer;
}
.switch__label-wrapper.disabled {
  color: #BFBBBB;
}
.switch__label-wrapper.disabled label:hover {
  cursor: default;
}

.switch__checkbox-wrapper .switch {
  width: 16px;
  height: 16px;
  background-color: #575352;
  border-radius: 50%;
  transition: transform 0.3s ease, background-color 0.3s ease;
}
.switch__checkbox-wrapper .switch.disabled {
  background-color: #BFBBBB;
  border-color: #BFBBBB;
  cursor: default;
}
.switch__checkbox-wrapper .switch.checked {
  transform: translateX(16px);
  background-color: #FFFFFF;
}
.switch__checkbox-wrapper .switch.checked.disabled {
  cursor: default;
}

.switch__checkbox-container:hover .toggle-switch {
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}

.switch__checkbox-container.checked {
  background-color: #0A8276;
  border-color: #0A8276;
}
.switch__checkbox-container.checked.disabled {
  background-color: #BFBBBB;
  border-color: #BFBBBB;
  cursor: default;
}