

.json {
  font-family: monospace;
  font-size: 16px;
}
.json > .json__item {
  display: block;
}

.json__item {
  display: none;
  margin-top: 10px;
  padding-left: 20px;
  user-select: none;
}

.json__item--collapsible {
  cursor: pointer;
  overflow: hidden;
  position: relative;
}
.json__item--collapsible::before {
  content: "+";
  position: absolute;
  left: 5px;
}
.json__item--collapsible::after {
  background-color: lightgrey;
  content: "";
  height: 100%;
  left: 9px;
  position: absolute;
  top: 26px;
  width: 1px;
}
.json__item--collapsible:hover > .json__key, .json__item--collapsible:hover > .json__value {
  text-decoration: underline;
}

.json__toggle {
  display: none;
}
.json__toggle:checked ~ .json__item {
  display: block;
}

.json__key {
  color: darkblue;
  display: inline;
}
.json__key::after {
  content: ": ";
}

.json__value {
  display: inline;
}

.json__value--string {
  color: green;
}

.json__value--number {
  color: blue;
}

.json__value--boolean {
  color: red;
}