/* JSON: editor y resultado separados, con controles accesibles y vista móvil. */
.json-lab,
.json-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.json-lab > form,
.json-result,
.json-pair > article {
  min-width: 0;
  border: 1px solid #ccd4e2;
  border-radius: 16px;
  padding: 24px;
}
.json-lab label {
  display: block;
  font-weight: 800;
  margin-bottom: 8px;
}
.json-lab select,
.json-lab textarea {
  width: 100%;
  margin-bottom: 16px;
}
.json-lab select {
  min-height: 48px;
}
.json-lab textarea {
  padding: 16px;
  border: 1px solid #aab6ca;
  border-radius: 12px;
  resize: vertical;
  font:
    0.875rem/1.8 "JetBrains Mono",
    monospace;
}
.json-lab textarea[aria-invalid="true"] {
  border: 2px solid #b02030;
}
.json-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.json-actions button {
  cursor: pointer;
}
.json-code {
  overflow: auto;
  padding: 16px;
  border-radius: 12px;
  background: #162033;
  color: #ecf0ff;
  font-size: 0.875rem;
  line-height: 1.8;
}
.json-code code {
  padding: 0;
  color: inherit;
  background: transparent;
}
.json-preview {
  padding: 24px;
  border: 1px solid #e9dca1;
  border-radius: 12px;
  background: #fff6d5;
  color: #233047;
  margin: 16px 0;
}
.json-preview h4 {
  font-size: 1.5rem;
  margin: 0 0 16px;
}
.json-preview p {
  margin: 8px 0;
}
#json-status {
  font-weight: 800;
}
.json-steps {
  padding-left: 24px;
}
.json-steps li {
  padding-left: 8px;
  margin-bottom: 16px;
}
@media (max-width: 800px) {
  .json-lab,
  .json-pair {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 480px) {
  .json-lab > form,
  .json-result,
  .json-pair > article {
    padding: 16px;
  }
}
