:has(> .module-controls) {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

@media (pointer: fine) and (hover: hover) {
  .module-controls {
    & > div > button:not([disabled]):hover {
      background-color: rgb(240, 240, 240);
      & img {
        opacity: 1;
      }
    }
  }
}

.module-controls {
  margin-top: 10px;
  max-width: var(--main-width);
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  justify-content: space-evenly;
  & > div {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  & .right {
    justify-content: end;
  }

  & .progress {
    color: #646464;
    font-weight: bold;
    margin: 0;
  }
  
  & .active {
    filter: invert(.75);
  }
}

.module-controls button {
  user-select: none;
  border: none;
  width: 35px;
  aspect-ratio: 1;
  border-radius: 100px;
  background-color: white;
  box-shadow: 0 0 10px -4px black;
  cursor: pointer;
  transition: all .2s ease-in-out;
  display: grid;
  place-items: center;
  & img {
    opacity: 75%;
    transition: all .1s ease-in-out;
    width: 85%;
    display: block;
    pointer-events: none;
  }
  &:not([disabled]):active {
    background-color: rgb(220, 220, 220);
    & img {
      opacity: 1;
    }
  }
  &[disabled] {
    filter: invert(.75);
    cursor: not-allowed;
  }
}

@media (max-width: 500px) {
  .module-controls {
    & > div {
      gap: 2vw;
    }
    & button {
      width: calc(35px + (5vw - 25px));
    }
  }
}