body {
  color: white;
  background-color: #091628;
  font-family: sans-serif;
  font-weight: 400;
  font-size: 32px;
  text-align: center;
  padding: 0px;
  margin: 0px;
  overflow: hidden;
}

h1 {
  color: white;
  font-size: 40px;
  font-weight: 700;
  margin-top: 0px;
  margin-bottom: 8px;
}

h2 {
  font-size: 32px;
  font-weight: 700;
  margin-top: 0px;
  margin-bottom: 6px;
}

h3 {
  font-size: 26px;
  font-weight: 700;
  margin-top: 0px;
  margin-bottom: 6px;
}

button {
  border: none;
  font-weight: 400;
}

p {
  margin-top: 0px;
  margin-bottom: 16px;
}

a {
  color: #ffee00;
}

dialog {
  color: white;
  background-color: #091628;
  border-style: none;
  border-radius: 8px;
  max-width: 600px;
  overflow: hidden;
}

dialog::backdrop {
  background: rgba(0, 0, 0, 0.5);
}

hr {
  margin-top: 6px;
  margin-bottom: 6px;
}

.inline {
  display: inline;
}

.inline-block {
  display: inline-block;
}

.display-none {
  display: none !important;
}

.float-end {
  float: right;
}

.text-huge {
  font-size: 80px;
  font-weight: 700;
}

.text-xs {
  font-size: 18px !important;
}

.text-sm {
  font-size: 24px !important;
}

.text-md {
  font-size: 32px !important;
}

.text-lg {
  font-size: 48px !important;
}

.shadow-sm {
  box-shadow: 0px 4px 0px #000000;
}

.shadow-lg {
  box-shadow: 0px 16px 16px #000000;
}

.text-bold {
  font-weight: 700;
}

.text-normal {
  font-weight: 400;
}

.text-light {
  color: #ddd !important;
  font-weight: 300 !important;
}

.uppercase {
  text-transform: uppercase;
}

#resize-parent {
  overflow: hidden;
  position: fixed;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  margin: 0px;
  padding: 0px;
  border: 0px;
}

#content {
  position: relative;
  width: 600px;
  height: 900px;
}

.full-width {
  left: 0px;
  right: 0px;
}

.full-height {
  top: 0px;
  bottom: 0px;
}

.width-100 {
  width: 100% !important;
  box-sizing: border-box;
}

.width-auto {
  width: auto !important;
}

.scroll-y {
  overflow-y: auto;
}

.screen {
  opacity: 0;
  position: absolute;
  z-index: 0;
  margin-top: 64px;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
}

.prototype {
  display: none;
}

.flex-col {
  display: flex;
  flex-direction: column;
}

.flex-row {
  display: flex;
  flex-direction: row;
}

.flex-align-start {
  align-items: flex-start;
}

.flex-align-center {
  align-items: center;
}

.flex-align-baseline {
  align-items: baseline;
}

.flex-grow {
  flex-grow: 10;
}

.flex-grow-1 {
  flex-grow: 10;
}

.flex-grow-2 {
  flex-grow: 20;
}

.flex-grow-3 {
  flex-grow: 30;
}

.flex-center {
  justify-content: center;
}

.flex-left {
  justify-content: left;
}

.flex-right {
  justify-content: right;
}

.flex-space-between {
  justify-content: space-between;
}

.flex-gap {
  gap: 16px;
}

.flex-wrap {
  flex-wrap: wrap;
}

.position-relative {
  position: relative;
}

.position-abs {
  position: absolute;
}

.user-select-none {
  user-select: none;
}

.btn {
  user-select: none;
  display: inline-block;
  text-decoration: none;
  border-radius: 4px;
  padding: 6px;
}

.btn-clear {
  user-select: none;
  background-color: transparent;
}

.btn-h1 {
  color: white;
  font-size: 40px;
  font-weight: 700;
  margin-top: 0px;
  margin-bottom: 8px;
}

.btn-tab {
  font-size: 24px;
  font-weight: 700;
  width: 200px;
  background-color: #ffee00;
}

.btn-tab-selected {
  background-color: #b3a700 !important;
}

.btn-tab-left {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}

.btn-tab-right {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}

.btn-primary {
  font-size: 32px;
  width: 350px;
  font-weight: 700;
  color: black;
  background-color: #ffee00;
  box-shadow: 0px 4px 0px #f4b63f;
}

.btn-secondary {
  font-size: 32px;
  width: 350px;
  font-weight: 700;
  color: white;
  background-color: #666;
  box-shadow: 0px 4px 0px #555;
  text-shadow: 0px 2px 0 black;
  padding-left: 16px;
  padding-right: 16px;
}

.btn-danger {
  font-size: 32px;
  width: 350px;
  color: white;
  background-color: #aa0000;
  box-shadow: 0px 4px 0px #660000;
}

.btn-arrow {
  font-size: 32px;
  width: 350px;
  font-weight: 700;
  color: black;
  background-color: #ffee00;
  box-shadow: 0px 4px 0px #f4b63f;
  width: 60px;
}

.btn-answer {
  margin-top: 12px;
  padding-top: 0px;
  padding-bottom: 0px;
  font-size: 26px;
  line-height: 95%;
  width: 100%;
  height: 70px;
  color: black;
  background-color: white;
}

.bg-answer-selected {
  background-color: #ffee00 !important;
}

.bg-answer-correct {
  color: white !important;
  background-color: #00aa00 !important;
}

.bg-answer-wrong {
  color: white !important;
  background-color: #aa0000 !important;
}

.tooltip {
  position: absolute;
  display: none;
  background-color: #555;
  color: white;
  border-radius: 4px;
  padding: 6px;
  padding-left: 12px;
  padding-right: 12px;
}

.std-pad-x {
  padding-left: 64px;
  padding-right: 64px;
}

.std-pad-y {
  padding-top: 64px;
  padding-bottom: 64px;
}

.sm-pad-x {
  padding-left: 32px;
  padding-right: 32px;
}

.sm-pad-y {
  padding-top: 32px;
  padding-bottom: 32px;
}

.ms-0 {
  margin-left: 0px !important;
}

.ms-1 {
  margin-left: 6px !important;
}

.ms-2 {
  margin-left: 12px !important;
}

.ms-3 {
  margin-left: 20px !important;
}

.me-0 {
  margin-right: 0px !important;
}

.me-1 {
  margin-right: 6px !important;
}

.me-2 {
  margin-right: 12px !important;
}

.me-3 {
  margin-right: 20px !important;
}

.mt-0 {
  margin-top: 0px !important;
}

.mt-1 {
  margin-top: 6px !important;
}

.mt-2 {
  margin-top: 12px !important;
}

.mt-3 {
  margin-top: 20px !important;
}

.mb-0 {
  margin-bottom: 0px !important;
}

.mb-1 {
  margin-bottom: 6px !important;
}

.mb-2 {
  margin-bottom: 12px !important;
}

.mb-3 {
  margin-bottom: 20px !important;
}

.pt-0 {
  padding-top: 0px !important;
}

.pt-1 {
  padding-top: 6px !important;
}

.pt-2 {
  padding-top: 12px !important;
}

.pt-3 {
  padding-top: 20px !important;
}

.pb-0 {
  padding-bottom: 0px;
}

.pb-1 {
  padding-bottom: 6px !important;
}

.pb-2 {
  padding-bottom: 12px !important;
}

.pb-3 {
  padding-bottom: 20px !important;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.panel {
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
  background-color: #1e1c19;
  border: 2px solid #3f3f3f;
}

.info-panel {
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
  color: white;
  background-color: rgba(0, 0, 0, 0.4);
  font-size: 24px;
  font-weight: 300;
}

.progress-icons {
  position: relative;
  height: 40px;
}
.progress-icons img {
  position: absolute;
  width: 40px;
  height: 40px;
}

#header {
  position: relative;
  font-size: 32px;
  font-weight: 700;
  background-color: #1e1c19;
  border: 2px solid #3f3f3f;
  padding-top: 2px;
  padding-left: 12px;
  padding-right: 12px;
  left: 0px;
  right: 0px;
  box-sizing: border-box;
  height: 64px;
  opacity: 0;
}
#header .side {
  width: 200px;
}
#header .id-credit-addition {
  position: absolute;
}

#start-screen .id-body h4 {
  font-size: 32px;
}

#question-screen .id-timer-container {
  position: relative;
  z-index: 1;
}
#question-screen .id-timer-container .id-timer {
  background-color: #ffee00;
  height: 42px;
  transform-origin: top left;
}
#question-screen .id-timer-container .id-timer-under {
  position: absolute;
  left: 0px;
  right: 0px;
  height: 42px;
  background-color: #666;
  transform-origin: top left;
}
#question-screen .id-timer-container .id-timer-score {
  position: absolute;
  top: -4px;
  left: 0px;
  right: 0px;
  height: 42px;
  font-size: 40px;
  font-weight: 700;
  text-shadow: 0px 2px 4px #000;
}
#question-screen .id-q-text {
  font-size: 40px;
}
#question-screen .id-answer-toast {
  position: absolute;
  z-index: 3;
  left: 0px;
  right: 0px;
}
#question-screen .id-answer-toast .id-answer-toast-text {
  font-size: 64px;
  font-weight: 700;
  display: inline-block;
  text-shadow: 0px 4px #000;
  border-radius: 8px;
  padding-left: 64px;
  padding-right: 64px;
}

.id-copied-to-clipboard .title {
  font-weight: 700;
  font-size: 24px;
}
.id-copied-to-clipboard .body {
  font-weight: 300;
  font-size: 18px;
}

.correct-text {
  color: #00aa00;
}

.wrong-text {
  color: #aa0000;
}

.results {
  font-size: 32px;
}
.results .icons {
  font-family: sans-serif;
  font-size: 60px;
  letter-spacing: 12px;
}
.results .score {
  font-size: 50px;
  font-weight: 700;
}
.results .title {
  font-size: 24px;
  font-weight: 700;
}

.stats .box {
  display: inline-block;
  width: 100px;
  height: 70px;
  border: 1px solid white;
}
.stats .box .title {
  font-size: 18px;
}
.stats .box .value {
  font-size: 28px;
  font-weight: 700;
}
.stats .pad {
  display: inline-block;
  width: 12px;
}

.id-mute-btn {
  position: absolute;
  right: 32px;
  bottom: 32px;
}
.id-mute-btn img {
  width: 40px;
  height: 40px;
}

#category-screen .id-category {
  font-size: 70px;
  font-weight: 700;
}

input[type=text], input[type=password] {
  box-sizing: border-box;
  font-size: 24px;
  border-radius: 8px;
  padding: 12px;
  color: white;
  background-color: #333;
  border: 1px solid white;
  width: 100%;
}

input[type=radio] {
  width: 32px;
  height: 32px;
}

input:focus {
  outline: none;
}

.input-in-error {
  background-color: #422 !important;
  border: 1px solid #f33 !important;
}

.input-okay {
  background-color: #242 !important;
  border: 1px solid #3f3 !important;
}

.input-label {
  font-size: 30px;
  font-weight: 700;
  margin-bottom: 6px;
}

.form-text {
  font-size: 30px;
  font-weight: 400;
}

.radio-label {
  font-size: 28px;
  font-weight: 700;
}

.field-help {
  font-size: 26px;
  margin-top: 4px;
  font-weight: 300;
}

.field-error {
  color: #fc0 !important;
}

.row-go {
  font-size: 80px;
}

.leaderboard .side {
  width: 100px;
}
.leaderboard .me {
  color: black;
  background-color: #ffee00;
  border-radius: 12px;
  padding-bottom: 4px;
}
.leaderboard .special {
  color: #ffee00;
  font-weight: 700;
}

.id-nav-bar .nav-btn {
  width: 130px;
}
.id-nav-bar h2 {
  color: white;
  font-size: 18px;
}

.badge-okay {
  border-radius: 6px;
  padding: 2px;
  padding-left: 6px;
  padding-right: 6px;
  color: white;
  background-color: #00aa00;
}

.badge-warning {
  border-radius: 6px;
  padding: 2px;
  padding-left: 6px;
  padding-right: 6px;
  color: white;
  background-color: #de6114;
}

.badge-unknown {
  border-radius: 6px;
  padding: 2px;
  padding-left: 6px;
  padding-right: 6px;
  color: white;
  background-color: #666;
}

.difficulty-badge {
  border-radius: 6px;
  padding: 2px;
  padding-left: 6px;
  padding-right: 6px;
  color: white;
  text-align: center;
  padding: 8px;
  padding-left: 16px;
  padding-right: 16px;
}

.hard-bg {
  background-color: #aa0000;
}

.easy-bg {
  background-color: #00aa00;
}

.key-color {
  color: #ffee00 !important;
}

.question-card {
  width: 140px;
  height: 140px;
  color: black;
  background-color: white;
  border-radius: 8px;
  text-align: center;
  padding: 10px;
}
