body {
  overflow: hidden;
}

#container > h1 {
  padding: 5px;
}

#container > div {
  padding: 5px;
}

.controls {
  padding: 5px;
}

#message {
  display: none;
  border: solid thin;
  font-weight: bold;
  justify-content: space-between;
  margin: 5px;
  padding: 5px;
}

#message.error {
  background-color: pink;
}

#message.warn {
  background-color: lightyellow;
}

#message.info {
  background-color: lightcyan;
}

#message.debug {
  background-color: lightgrey;
}

#message > span {
  font-weight: bold;
  padding: 5px;
}

#close-message-button {
  align-self: center;
  height: 1.5em;
}

#import-controls {
  margin: 5px;
  border: thin solid;
  background-color: lavender;
}

#import-controls > summary {
  background-color: mediumpurple;
  color: white;
  font-weight: bold;
  height: 1.2em;
  padding-left: 5px;
}

#file-controls {
  display: flex;
  column-gap: 5px;
}

.file-controls {
  position: relative;
}

#url-controls {
  display: grid;
  grid-template-columns: 9em auto;
  column-gap: 8px;
  row-gap: 5px;
}

input[type="file"] {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
}

button {
  width: 11em;
}

.keybindings {
  display: flex;
  column-gap: 10px;
}

span.key {
  background-color: lightgrey;
  border: thin solid;
  border-radius: 5px;
  padding: 2px;
  margin-right: 5px;
  box-shadow: 2px 2px 2px 1px darkgrey;
  cursor: not-allowed;
}

#textbox {
  /* height will be set dynamically */
  min-height: 2em;
  margin: 5px;
  outline: solid thin;
  overflow-y: auto;
}

.transcript-p {
  display: flex;
  column-gap: 0.4em;
}

.transcript {
  padding: 0.25em;
}

div.transcript:focus {
  outline: thin solid;
  background-color: lightyellow;
}

.transcript-ts {
  display: inline-block;
  min-width: 3em;
  max-width: 3em;
  color: blue;
  cursor: pointer;
  font-weight: bold;
  text-decoration: underline;
}

.transcript-speaker {
  display: inline-block;
  min-width: 5em;
  max-width: 5em;
  font-weight: bold;
}

.example {
  color: grey;
  font-style: italic;
}

#audio-controls {
  display: flex;
  justify-content: space-between;
}

#audio-buttons {
  display: flex;
  column-gap: 2em;
}

.audio-control {
  display: flex;
  align-items: center;
  column-gap: 5px;
  height: 1.8em;
}

.audio-display {
  background-color: mediumpurple;
  color: white;
  border: thin solid black;
  border-radius: 5px;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

.audio-control input[type="image"] {
  height: 90%;
  /* See https://angel-rs.github.io/css-color-filter-generator/ */
  filter: brightness(0)
          saturate(100%)
          invert(9%)
          sepia(100%)
          saturate(6982%)
          hue-rotate(246deg)
          brightness(74%)
          contrast(128%);
}

.audio-control input[type="image"]:hover {
  height: 100%;
}

.audio-control span {
  font-size: 1.5em;
}

#audio-rate {
  text-align: center;
  width: 2em;
  margin-left: 10px;
  margin-right: 10px;
}

.jump-to-ts {
  font-size: 1.2em;
}

#jump-to-ts-text {
  text-align: right;
  width: 6em;
}

#jump-to-ts-button {
  width: fit-content;
}
