html,
body {
  padding: 0;
  margin: 0;
}

body,
p,
input,
textarea,
a,
button,
select,
option {
  font-family: Arial;
  font-size: 16px;
  line-height: 20px;
}

video {
  display: block;
  max-width: 100%;
  padding: 0;
  margin: 0;
  background: black;
}

a,
button {
  background: none !important;
  border: none;
  padding: 0 !important;
  font: inherit;
  cursor: pointer;
  color: #0057d9;
  text-decoration: underline;
  outline: none;
}

p,
ul {
  margin: 0 0 10px 0;
}
p:last-child {
  margin: 0;
}

h1 {
  font-size: 30px;
  line-height: 30px;
  margin: 0 0 20px 0;
}

.error {
  margin-top: 5px;
  color: #f3003a;
}

.warning {
  color: #ff6a18;
}

[data-role='alert'] {
  padding: 15px;
  background: #ffe96c;
}

.menu {
  padding: 10px 20px;
  border-bottom: 1px solid #ccc;
  height: 30px;
}
.menu a {
  display: block;
  float: left;
  line-height: 30px;
  margin-right: 15px;
}
.menu img {
  display: block;
  padding: 0;
  margin: 0;
  height: 30px;
}

.language {
  position: absolute;
  top: 0;
  right: 0;
}
.language select {
  display: block;
  padding: 0 5px;
  font-size: 16px;
  line-height: 20px;
  margin: 14px 20px;
  border-width: 1px;
}

.content {
  padding: 0 20px;
  margin: 20px 0;
  max-width: 600px;
}

.block,
.section,
.question,
.answer,
.navigation {
  position: relative;
  margin-bottom: 20px;
}

.section {
  border-bottom: 1px solid #ccc;
}
.section:last-child {
  border-bottom: none;
}

.question > .index {
  color: #bbb;
  margin-bottom: 5px;
}
.question > .prologue {
  margin-bottom: 10px;
}
.question > .label {
  font-size: 20px;
  line-height: 26px;
  margin-bottom: 7.5px;
}
.question > .description {
  margin-bottom: 10px;
}
.question > .modal-link {
  margin-bottom: 10px;
}
.question .text-wrapper {
  padding: 3px 0;
}
.question textarea,
.question input[type='text'],
.question input[type='number'] {
  display: inline-block;
  background: none;
  border: 1px solid #ccc;
  padding: 5px 8px;
}
.question input[type='text'] {
  display: block;
  width: 300px;
}
.question textarea {
  display: block;
  height: 60px;
  width: 300px;
}
.question input[type='file'] {
  position: absolute;
  visibility: hidden;
}
.question .unit {
  padding-left: 3px;
}
.question .options {
  display: inline-block;
}
.question .option {
  display: block;
  margin-bottom: 5px;
}
.question .option:last-child {
  margin-bottom: 0;
}
.question .option.inline {
  white-space: nowrap;
  display: inline-block;
  margin-bottom: 0;
  margin-right: 10px;
}

.answer > .label {
  margin-bottom: 5px;
}
.answer > .description {
  margin-bottom: 5px;
}
.answer > .warning {
  position: absolute;
  top: 0;
  left: -12.5px;
  bottom: 0;
  width: 5px;
  background: #bbb;
  border-radius: 2.5px;
}
.answer > .warning.warn {
  background: #f3003a;
}

.upload {
  position: relative;
  float: left;
  width: 130px;
  height: 130px;
  background: #eee;
  text-align: center;
  padding: 0;
  white-space: nowrap;
}
.question .upload {
  margin: 15px 15px 0 0;
}
.answer .upload {
  margin: 0px 15px 15px 0;
}
.upload .dummy {
  padding-top: 100%;
}
.upload .wrapper {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  font: 0/0 a;
}
.upload .wrapper:before {
  content: ' ';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.upload .wrapper img {
  padding: 0;
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
  display: inline-block;
  cursor: pointer;
}
.upload .inner {
  max-width: 100%;
  max-height: 100%;
  display: inline-block;
  margin-top: 35px;
  color: black;
  text-decoration: none;
  font-size: 16px;
  line-height: 20px;
  overflow: hidden;
  cursor: pointer;
}
.upload .icon {
  font-size: 30px;
  line-height: 30px;
  margin-bottom: 10px;
}
.upload .close {
  position: absolute;
  top: -7.5px;
  right: -7.5px;
  font-size: 30px;
  line-height: 30px;
  color: black;
  text-decoration: none;
  cursor: pointer;
}

.section > .label {
  font-size: 20px;
  line-height: 26px;
  margin-bottom: 10px;
}
.section > .description {
  margin-bottom: 12.5px;
}

.hidden {
  opacity: 0.33;
  /* pointer-events: none; */
}
.hidden .hidden {
  opacity: 1;
}

.navigation a {
  display: inline-block;
  margin-right: 10px;
}

.debug {
  border-top: 1px solid #ccc;
}
@media only screen and (min-width: 1260px) {
  .debug {
    width: 600px;
    position: fixed;
    top: 51px;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    padding-right: 20px;
    border-top: none;
  }
}
.debug .options {
  margin: 20px 0 10px 0;
}
.debug .option {
  display: inline-block;
  margin-right: 10px;
}
.debug .json {
  margin: 10px 0 20px 0;
  font-family: monospace;
  padding: 17px 20px;
  background: #282822;
  color: #f8f8f2;
  overflow-x: hidden;
}
.debug .clinic {
  margin: 10px 0 20px 0;
  padding: 17px 20px 0 20px;
  background: #eee;
  overflow-x: hidden;
}

.modal {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.75);
  padding: 50px 0;
}
.modal .wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
  width: 100%;
  max-width: 600px;
}
.modal .content {
  padding: 0;
  margin: 50px;
}
.modal .close {
  position: absolute;
  top: -20px;
  right: -20px;
  font-size: 24px;
  line-height: 40px;
  width: 40px;
  cursor: pointer;
  text-align: center;
  background-color: #eee;
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
}
@media screen and (max-width: 540px) {
  .modal .close {
    right: 20px;
  }
}
.modal img {
  display: block;
  max-width: 500px;
  padding: 0;
  margin: 0;
  border: none;
}

.prescription {
  padding: 7px 10px;
  border: 1px solid #666;
}
