/* JSON Formatter Styles */
.json-formatter {
  font-family: 'Fira Code', 'Consolas', 'Monaco', 'Menlo', monospace;
  font-size: 13px;
  line-height: 1.5;
  overflow-x: auto;
  background-color: #f8f9fa;
  border-radius: 6px;
  padding: 12px;
  max-height: 400px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.json-formatter .json-key {
  color: #0d6efd;
  font-weight: 600;
}

.json-formatter .json-string {
  color: #198754;
}

.json-formatter .json-number {
  color: #fd7e14;
}

.json-formatter .json-boolean {
  color: #dc3545;
  font-weight: 600;
}

.json-formatter .json-null {
  color: #6c757d;
  font-style: italic;
}

.json-formatter .json-bracket {
  color: #212529;
  font-weight: bold;
}

.json-formatter .json-comma {
  color: #212529;
}

.json-formatter .json-colon {
  color: #212529;
}

/* Dark mode support */
.dark-mode .json-formatter {
  background-color: #2c2c2c;
  color: #e9ecef;
}

.dark-mode .json-formatter .json-key {
  color: #6ea8fe;
}

.dark-mode .json-formatter .json-string {
  color: #75b798;
}

.dark-mode .json-formatter .json-number {
  color: #ffca2c;
}

.dark-mode .json-formatter .json-boolean {
  color: #ea868f;
}

.dark-mode .json-formatter .json-null {
  color: #adb5bd;
}

.dark-mode .json-formatter .json-bracket {
  color: #f8f9fa;
}

.dark-mode .json-formatter .json-comma,
.dark-mode .json-formatter .json-colon {
  color: #e9ecef;
}

/* Expand/collapse functionality */
.json-formatter .collapsible {
  cursor: pointer;
}

.json-formatter .collapsed {
  display: none;
}

.json-formatter .ellipsis {
  color: #6c757d;
  font-style: italic;
  cursor: pointer;
}

/* Copy button */
.json-copy-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.json-copy-btn:hover {
  background-color: #e9ecef;
}

.dark-mode .json-copy-btn {
  background-color: rgba(52, 58, 64, 0.8);
  border-color: #495057;
  color: #e9ecef;
}

.dark-mode .json-copy-btn:hover {
  background-color: #495057;
}

/* Container for JSON formatter */
.json-container {
  position: relative;
  margin-bottom: 1rem;
}

/* Fix for table overflow */
.table-responsive {
  overflow-x: auto;
  max-width: 100%;
}

/* Ensure code blocks don't overflow */
pre.code-block {
  white-space: pre-wrap;
  word-break: break-word;
  max-width: 100%;
  overflow-x: auto;
}

code {
  font-family: 'Fira Code', 'Consolas', 'Monaco', 'Menlo', monospace;
  font-size: 0.9em;
}
