.speech-controls {
    background-color: transparent;
    border-radius: 8px;
    padding: 15px 0px;
    margin: 20px 0;
    max-width: 100%;
  }
  
  .speech-controls h3 {
    margin-top: 0;
    margin-bottom: 15px;
    font-size: var(--font-size-md) !important; /* 20px */
  }
  
  .tts-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  
  .control-group {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  @media screen and (max-width: 520px) {
    .control-group {
      flex-direction: column;
      align-items: stretch;
    }
    
  }
  
  .control-group label {
    min-width: 60px;
  }
  
  .control-group input {
    flex-grow: 1;
    padding: 6px;
    border-radius: 32px;
    border: 1px solid var(--input-border);
    background-color: var(--background-color);
    color: var(--text-color);
  }

  .control-group select {
    flex-grow: 1;
    padding: 8px 16px;
    padding-right: 30px; /* Add extra padding on the right for the chevron */
    border-radius: 32px;
    border: 1px solid var(--input-border);
    appearance: none; /* Remove default arrow styling */
    -webkit-appearance: none; /* For Safari */
    -moz-appearance: none; /* For Firefox */
    background-color: var(--background-color);
    color: var(--text-color);
    background-image: url("data:image/svg+xml;utf8,<svg fill='grey' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
    background-repeat: no-repeat;
    background-position: right 8px center; /* Position the custom arrow */
    background-size: 32px;
  }
  
  /* Remove focus outline for better appearance (optional) */
  .control-group select:focus {
    outline: none;
    border-color: #aaa;
  }
  
  /* Fix for Firefox showing a second arrow */
  .control-group select::-ms-expand {
    display: none;
  }
  
  /* Hover effect (optional) */
  .control-group select:hover {
    border-color: #bbb;
  }

  input[type=range] {
    display: block;
    width: 70%;
}

@media screen and (max-width: 520px) {
    input[type=range] {
      width: 100%;
    }
}

.tts-highlight {
    background-color: #1ddb8c7b;
    transition: background-color 0.2s ease;
  }
  
  .buttons {
    display: flex;
    gap: 10px;
    align-self: flex-end;
  }

  @media screen and (max-width: 520px) {
    .buttons {
      align-self: stretch;
    }
  }
  
  .speech-button {
    padding: 6px 16px;
    border-radius: 32px;
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
  }
  
  #speakBtn {
    background-color: transparent;
    border: 1px solid var(--input-border);
    color: var(--text-color);
  }

  #speakBtn:hover {
        background-color: var(--background-color-nav);
        color: var(--text-color);
  } 
    #speakBtn:active {
            background-color: var(--background-color-nav);
            color: var(--text-color);
    }

    /* previous colours: #4CAF50 #ff9800 #f44336*/

  #pauseBtn {
    background-color: transparent;
    border: 1px solid var(--input-border);
    color: var(--text-color);
  }
    #pauseBtn:hover {
            background-color: var(--background-color-nav);
            color: var(--text-color);
    } 
        #pauseBtn:active {
                background-color: var(--background-color-nav);
                color: var(--text-color);
        }
  
  #stopBtn {
    background-color: transparent;
    border: 1px solid var(--input-border);
    color: var(--text-color);
  }
    #stopBtn:hover {
            background-color: var(--background-color-nav);
            color: var(--text-color);
    } 
        #stopBtn:active {
                background-color: var(--background-color-nav);
                color: var(--text-color);
        }
