/* general declarations */

html, body, body *:not(script, table, thead, tbody, tr, th, td, p, a) {
  display: flex;
  flex-direction: column;
  flex-shrink: 1;
  min-height: 0;
}

html, body {
  align-items: stretch;
  justify-content: stretch;
}

body, #canvas {
  flex-grow: 1;
}

html {
  height: 100%;
}

body {
  margin: 0;
  color: white;
  font-family: Arial;
}

/* tag declarations */

label:not(a) {
  flex-direction: row;
}

input[type=radio], input[type=checkbox] {
  width: 2.3vh;
  height: 2.3vh;
}

input[type=text] {
  width: 13vh;
  height: 2.3vh;
  background-color: black;
  color: white;
  border: 0.3vh solid white;
  border-radius: 1vh;
  font-size: 2.5vh;
  padding: 0.4vh 0.8vh 0.4vh;
}

button {
  background-color: black;
  color: white;
  border: 0.3vh solid white;
  border-radius: 1vh;
  font-size: 2.5vh;
  padding: 0.4vh 0.8vh 0.4vh;
}

button:disabled {
  color: grey;
  border: 0.3vh solid grey;
}

select {
  background-color: black;
  color: white;
  border: 0.3vh solid white;
  border-radius: 1vh;
  font-size: 2.5vh;
  padding: 0.4vh 0.8vh 0.4vh;
}

a {
  color: rgb(164, 158, 255);
}

a:visited {
  color: rgb(255, 108, 235);
}

a:active {
  color: rgb(255, 94, 88);
}

/* element specific declarations */

#canvas {
  background-color: black;
}

#settings_button {
  position: absolute;
  right: 1vh;
  bottom: 1vh;
}

#settings_div {
  position: absolute;
  bottom: 1vh;
  left: 1vh;
  width: calc(100% - 15.5vh);
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: start;
  background-color: rgba(0, 0, 0, 0.6);
  border: 0.3vh solid white;
  border-radius: 1vh;
  padding: 0.8vh;
  font-size: 2.5vh;
  gap: 3vh;
  user-select: none;
}

#settings_div div {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 3vh;
}

#settings_div div, #settings_div label {
  flex-grow: 0;
  align-items: center;
}

#settings_div label {
  gap: 0.5vh;
}

#location_settings_div:not(a) {
  background-color: rgba(0, 0, 0, 0.6);
  border: 0.3vh solid white;
  border-radius: 1vh;
  padding: 0.8vh;
  gap: 3vh;
}

#about_div {
  position: absolute;
  left: 3vh;
  top: 3vh;
  width: calc(100vw - 8vh);
  height: calc(100vh - 8vh);
  background-color: rgba(0, 0, 0, 0.9);
  border: 0.3vh solid white;
  border-radius: 1vh;
  padding: 1vh;
}

#about_div_close_btn {
  align-self: flex-end;
}

#about_div > div {
  padding: 0 2vh 0;
}

#about_div * {
  margin-top: 0;
}
