/* JSON Formatter / Validator — scoped styles. Uses global tokens only. */

/* Monospace input area. */
.nx-tool--json-formatter .nx-jf-input {
  font-family: var(--nx-font-mono, monospace);
  font-size: .9rem;
  resize: vertical;
}

/* Output pre block — constrained height with scroll. */
.nx-tool--json-formatter .nx-jf-output {
  min-height: 80px;
  max-height: 500px;
  overflow: auto;
  font-family: var(--nx-font-mono, monospace);
  font-size: .9rem;
}

/* Status banner. */
.nx-tool--json-formatter .nx-jf-status {
  margin-top: .75rem;
  padding: .65rem 1rem;
  border-radius: var(--nx-r-sm, 8px);
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.4;
}

.nx-tool--json-formatter .nx-jf-status--ok {
  background: #f0fdf4;
  color: var(--nx-success, #16A34A);
  border: 1px solid #bbf7d0;
}

.nx-tool--json-formatter .nx-jf-status--error {
  background: #fef2f2;
  color: var(--nx-danger, #DC2626);
  border: 1px solid #fecaca;
}

.nx-tool--json-formatter .nx-jf-status--warn {
  background: #fffbeb;
  color: var(--nx-warning, #D97706);
  border: 1px solid #fde68a;
}

/* Keyboard shortcut hint. */
.nx-tool--json-formatter kbd {
  display: inline-block;
  padding: .1em .4em;
  font-family: var(--nx-font-mono, monospace);
  font-size: .82em;
  border: 1px solid var(--nx-line, #E2E8F0);
  border-radius: 4px;
  background: var(--nx-mist, #F8FAFC);
}
