* {
  margin: 0;
  padding: 0;
  font-family: 'Lucida Grande', sans-serif;

  -webkit-tap-highlight-color: transparent;
  user-select: none; /* Prevent selecting ui text when dragging */
}

html, body {
  height: 100%;
}

body {
  /* Prevent pull-down-to-refresh gesture */
  overscroll-behavior-y: contain;

  /* Prevent iOS rubber-band effect */
  position: fixed;
  width: 100%;

  /* Prevent browser from handling touch events */
  touch-action: none;

  display: grid;
  grid-template-columns: 1fr min-content;
  justify-items: stretch;
  align-items: stretch;

  font-size: 0.95em;
  --padding: 12px;
}

.frame-center {
  position: relative;
  display: grid;
}

.wheel-wrapper {
  /* Hide UI during page load */
  visibility: hidden;
  overflow: hidden; /* Prevent grid blowout */
}

.frame-right {
  background-color: #f0f0ee;
  display: flex;
  flex-direction: column;
  gap: var(--padding);
  overflow-y: scroll;
  border-left: solid 1px #5c5c5c;
  padding-bottom: 15px;
}

button.btn, label.btn {
  padding: 4px 8px;
  margin: 0px;
  font-family: inherit;
  font-size: inherit;
  display: inline-block;
  cursor: pointer;
  background-color: white;
  border: solid 1px #767676;
  border-radius: 4px;
  align-self: flex-start;
}

.input-group {
  display: flex;
  flex-direction: column;
  gap: calc(var(--padding) * 0.7);
  padding: 0 var(--padding);
  border-top: solid 1px #5c5c5c;
}

.input-group h2 {
  font-size: 1.1em;
  display: flex;
  font-family: monospace;
  /* background-color: #dfdfdb; */
  padding: var(--padding) 0px 0px;
  font-weight: normal;
  white-space: nowrap;
}
.input-group h2 span:first-of-type {
  display: inline-block;
  font-family: inherit;
  user-select: text;
}
.input-group h2 span:last-of-type {
  margin-left:7px;
  font-family: inherit;
  width: 40px; /* fixed width so the panel can be auto sized */
  user-select: text;
}

.input-group input[type="range"] {
  cursor: pointer;
}

.input-group input[type="checkbox"] {
  height: 22px;
  width: 22px;
  cursor: pointer;
}

.input-group input[type="file"] {
  display: none;
}

.input-group input[type="input"] {
  padding: 4px 8px;
  font-family: inherit;
  background-color: white;
  border: solid 1px #767676;
  border-radius: 4px;
}

.input-group button {
  margin-top: var(--padding);
}

select {
  padding: 2px;
}

label {
  margin-right: 5px;
}

.toolbar {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  padding: var(--padding);
  text-align: right;
}

.btn.clear {
  display: none;
}

/*************************************************/
/*************************************************/
@media only screen and (max-width: 450px) {

  body {
    font-size: .85em;
    --padding: 10px;
  }

}