body {
  margin: 0;

  font-family: monospace;
  background-color: #fff;
}

#myCanvas {
  width: 100vw;
  height: 100vh;
  display: block;
}

#controls {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 1rem;
  right: 1rem;

  padding: 1rem;

  border: 1px solid #333;
  background: rgba(255, 255, 255, 1);
  border-radius: 4px;
}

.number-input {
  width: 100%;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.number-input input {
  max-width: 50%;
}

button {
  margin: 0.5rem;
  padding: 0.5rem 1rem;
  border: 1px solid #333;
  border-radius: 4px;
  background: #fff;
  color: #333;
  cursor: pointer;
}

button:hover {
  background: #eee;
}

#start {
  margin-bottom: 1rem;
}

#boidCount {
  margin-bottom: 1rem;
}

#gridSize {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}


@media (max-width: 768px) {
  button {
    margin: 0.25rem;
    padding: 0.25rem 0.5rem;
  }

  #controls {
    padding: 0.25rem;
  }
}

input[type=range] {
  height: 31px;
  -webkit-appearance: none;
  margin: 10px 0;
  width: 100%;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 16px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #000000;
  background: #FFFFFF;
  border-radius: 8px;
  border: 1px solid #333333;
}

input[type=range]::-webkit-slider-thumb {
  box-shadow: 0px 0px 0px #828282;
  border: 1px solid #333333;
  height: 24px;
  width: 24px;
  border-radius: 2px;
  background: #333333;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -5px;
}

input[type=range]:focus::-webkit-slider-runnable-track {
  background: #FFFFFF;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 16px;
  cursor: pointer;
  animate: 0.2s;
  box-shadow: 0px 0px 0px #000000;
  background: #FFFFFF;
  border-radius: 8px;
  border: 1px solid #333333;
}

input[type=range]::-moz-range-thumb {
  box-shadow: 0px 0px 0px #828282;
  border: 1px solid #333333;
  height: 24px;
  width: 24px;
  border-radius: 2px;
  background: #333333;
  cursor: pointer;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 16px;
  cursor: pointer;
  animate: 0.2s;
  background: transparent;
  border-color: transparent;
  color: transparent;
}

input[type=range]::-ms-fill-lower {
  background: #FFFFFF;
  border: 1px solid #333333;
  border-radius: 16px;
  box-shadow: 0px 0px 0px #000000;
}

input[type=range]::-ms-fill-upper {
  background: #FFFFFF;
  border: 1px solid #333333;
  border-radius: 16px;
  box-shadow: 0px 0px 0px #000000;
}

input[type=range]::-ms-thumb {
  margin-top: 1px;
  box-shadow: 0px 0px 0px #828282;
  border: 1px solid #333333;
  height: 24px;
  width: 24px;
  border-radius: 2px;
  background: #333333;
  cursor: pointer;
}

input[type=range]:focus::-ms-fill-lower {
  background: #FFFFFF;
}

input[type=range]:focus::-ms-fill-upper {
  background: #FFFFFF;
}