/* Dark theme variables */
:root{
  --material-track-dark: #727272;
}

.x-toggle-material.x-toggle-btn {
  position: relative;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease;
}

/* Handle */
.x-toggle-material.x-toggle-btn::after {
  border-radius: 2em;
  background-color: #fafafa;
  box-shadow: 0 3px 2px rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

.x-toggle:checked + label > .x-toggle-material.x-toggle-btn::after {
  background-color: #7fc6a6;
}

/* Background */
.x-toggle-material.x-toggle-btn::before {
  position: absolute;
  display: block;
  height: 50%;
  width: 70%;
  left: 15%;
  content: '';
  background-color: #000;
  opacity: 0.38;
  border-radius: 2em;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

.x-toggle:checked + label > .x-toggle-material.x-toggle-btn::before {
  background-color: #7fc6a6;
  opacity: 0.5;
}

/* Disabled */
.x-toggle-material.x-toggle-btn.x-toggle-disabled::before,
.x-toggle:checked
  + label
  > .x-toggle-material.x-toggle-btn.x-toggle-disabled::before {
  background-color: #000;
  opacity: 0.12;
}

.x-toggle-material.x-toggle-btn.x-toggle-disabled::after,
.x-toggle:checked
  + label
  > .x-toggle-material.x-toggle-btn.x-toggle-disabled::after {
  background-color: #bdbdbd;
}

/* Sizes */
.x-toggle-material.small {
  width: 3em;
  height: 1.6em;
  padding: 2px;
}

.x-toggle-material.small::before {
  margin: 0.3em 0;
}

.x-toggle-material.medium {
  width: 4em;
  height: 2.1em;
  padding: 3px;
}

.x-toggle-material.medium::before {
  margin: 0.35em 0;
}

.x-toggle-material.large {
  width: 4.7em;
  height: 2.5em;
  padding: 4px;
}

.x-toggle-material.large::before {
  margin: 0.4em 0;
}

/* Dark mode styling */

/* Background */
.x-toggle-material.dark.x-toggle-btn::before {
  background-color: var(--material-track-dark);
}

/* Disabled */
.x-toggle-material.dark.x-toggle-btn.x-toggle-disabled::before,
.x-toggle:checked
  + label
  > .x-toggle-material.dark.x-toggle-btn.x-toggle-disabled::before {
  background-color: var(--material-track-dark);
}

/* Auto mode styling */
@media (prefers-color-scheme: dark) {
  .x-toggle-material.auto.x-toggle-btn::before {
    background-color: var(--material-track-dark);
  }
  
  /* Disabled */
  .x-toggle-material.auto.x-toggle-btn.x-toggle-disabled::before,
  .x-toggle:checked
    + label
    > .x-toggle-material.auto.x-toggle-btn.x-toggle-disabled::before {
    background-color: var(--material-track-dark);
  } 
}