/* === Base Layout === */
html, body {
  margin: 0;
  padding: 0;
  background: black;
  color: white;
  font-family: sans-serif;
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

h1 {
  font-size: 6vw;
  margin-bottom: 2vh;
  text-align: center;
  color: #d580ff; /* Bright violet, matching the flash */
}



/* === Container for rows === */
.controls-row {
  display: flex;
  gap: 3%;
  margin: 3% 0;
  align-items: center;
  justify-content: center;
  width: 100%;
}

/* === Vertical +/− and input === */
.bpm-vertical-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1vh;
}

/* === Tempo Input === */
/* === Tempo Input === */
#bpmInput {
  width: 10vw;
  padding: 1vh 1vw;
  font-size: 1.5em;
  text-align: center;
  font-weight: bold;
  border-radius: 0.5em;

  /* Remove number input spinners */
  -moz-appearance: textfield; /* Firefox */
  appearance: textfield; /* Futureproofing */
}

#bpmInput::-webkit-outer-spin-button,
#bpmInput::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}


/* === +/− Buttons === */
.bpm-step {
  background-color: #333;
  color: white;
  border: none;
  font-size: 3.5vw;
  width: 10vw;
  height: 10vw;
  border-radius: 1vw;
  cursor: pointer;
}

/* === Start/Stop Buttons === */
#startBtn,
#stopBtn {
  min-width: 12vw;
  height: 18vw;
  font-size: 3vw;
  padding: 1vh 1vw;
  border-radius: 2vw;
  cursor: pointer;
}

#startBtn {
  background-color: #3cb371; /* MediumSeaGreen */
  color: white;
}

#stopBtn {
  background-color: #c0392b; /* Soft red */
  color: white;
}

/* === Tap Tempo Button === */
#tapBtn {
  background-color: #4169e1; /* Royal Blue */
  color: white;
  font-size: 1.8em;
  width: 40vw;
  height: 14vh;
  margin-top: 2vh;
  border: none;
  border-radius: 1vw;
  cursor: pointer;
}

#startBtn:hover,
#stopBtn:hover,
#tapBtn:hover {
  filter: brightness(1.15);
  transform: scale(1.02);
  transition: transform 0.2s ease, filter 0.2s ease;
}



/* === BPM Display === */
#bpmDisplay {
  font-size: 4vw;
  margin-top: 3vh;
  color: limegreen;
}

/* === Flashing Dot === */
#dot {
  width: 25vw;
  height: 25vw;
  border-radius: 50%;
  background-color: #222222; /* Deep purple (Indigo) */
  transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
  margin-top: 3vh;
}

.active {
  background-color: #d580ff !important; /* Bright violet */
  box-shadow: 0 0 5vw 2vw rgba(255, 255, 255, 0.8), 0 0 3vw 1vw rgba(213, 128, 255, 0.9);
}

#resetBtn {
  display: block;
  margin: 4vh auto 0 auto;
  padding: 1em 2em;
  font-size: 1.2em;
  font-weight: bold;
  background-color: #663399; /* mellow purple */
  color: white;
  border: none;
  border-radius: 1em;
  box-shadow: 0 0 1em rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: background-color 0.3s ease;
  matgin-bottom:1%;
}

#resetBtn:hover {
  background-color: #7e57c2;
}

button:active {
  transform: scale(0.97);
  filter: brightness(0.9);
}
