/* Tokyo Night theme for CodeMirror - JSON Viewer optimized */
.cm-s-tokyo-night.CodeMirror {
  background: #1a1b26;
  color: #a9b1d6;
  border: 1px solid #2a2b36;
}

.cm-s-tokyo-night .CodeMirror-gutters {
  background: #16161e;
  border-right: 1px solid #2a2b36;
}

.cm-s-tokyo-night .CodeMirror-guttermarker {
  color: #1a1b26;
}

.cm-s-tokyo-night .CodeMirror-guttermarker-subtle {
  color: #565f89;
}

.cm-s-tokyo-night .CodeMirror-linenumber {
  color: #565f89;
  padding: 0 5px;
}

.cm-s-tokyo-night .CodeMirror-cursor {
  border-left: 1px solid #c0caf5;
}

/* JSON-specific syntax highlighting */
.cm-s-tokyo-night span.cm-comment {
  color: #565f89;
  font-style: italic;
}

.cm-s-tokyo-night span.cm-atom {
  color: #bb9af7;
}

.cm-s-tokyo-night span.cm-number {
  color: #ff9e64;
}

.cm-s-tokyo-night span.cm-property {
  color: #7aa2f7;
}

.cm-s-tokyo-night span.cm-attribute {
  color: #7dcfff;
}

.cm-s-tokyo-night span.cm-keyword {
  color: #bb9af7;
}

.cm-s-tokyo-night span.cm-string {
  color: #9ece6a;
}

.cm-s-tokyo-night span.cm-string-2 {
  color: #73daca;
}

.cm-s-tokyo-night span.cm-variable {
  color: #c0caf5;
}

.cm-s-tokyo-night span.cm-variable-2 {
  color: #7aa2f7;
}

.cm-s-tokyo-night span.cm-def {
  color: #7dcfff;
}

.cm-s-tokyo-night span.cm-bracket {
  color: #a9b1d6;
}

.cm-s-tokyo-night span.cm-tag {
  color: #f7768e;
}

.cm-s-tokyo-night span.cm-link {
  color: #73daca;
}

.cm-s-tokyo-night span.cm-error {
  background: #db4b4b;
  color: #c0caf5;
}

.cm-s-tokyo-night .CodeMirror-activeline-background {
  background: #292e42;
}

.cm-s-tokyo-night .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: #c0caf5 !important;
  background: rgba(192, 202, 245, 0.1);
}

.cm-s-tokyo-night .CodeMirror-selected {
  background: #283457;
}

.cm-s-tokyo-night .CodeMirror-focused .CodeMirror-selected {
  background: #283457;
}

/* Code folding styles */
.cm-s-tokyo-night .CodeMirror-foldmarker {
  color: #7aa2f7;
  background-color: #2a2b36;
  border: 1px solid #3a3b46;
  border-radius: 3px;
  padding: 0 3px;
  cursor: pointer;
  font-family: monospace;
}

.cm-s-tokyo-night .CodeMirror-foldgutter {
  width: 12px;
}

.cm-s-tokyo-night .CodeMirror-foldgutter-open,
.cm-s-tokyo-night .CodeMirror-foldgutter-folded {
  cursor: pointer;
  color: #565f89;
}

.cm-s-tokyo-night .CodeMirror-foldgutter-open:after {
  content: "\25BE";
}

.cm-s-tokyo-night .CodeMirror-foldgutter-folded:after {
  content: "\25B8";
}

/* Scrollbar styling */
.cm-s-tokyo-night .CodeMirror-scrollbar-filler,
.cm-s-tokyo-night .CodeMirror-gutter-filler {
  background-color: #16161e;
}

.cm-s-tokyo-night .CodeMirror-vscrollbar,
.cm-s-tokyo-night .CodeMirror-hscrollbar {
  background-color: #1a1b26;
}

.cm-s-tokyo-night .CodeMirror-vscrollbar::-webkit-scrollbar,
.cm-s-tokyo-night .CodeMirror-hscrollbar::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.cm-s-tokyo-night .CodeMirror-vscrollbar::-webkit-scrollbar-track,
.cm-s-tokyo-night .CodeMirror-hscrollbar::-webkit-scrollbar-track {
  background: #16161e;
}

.cm-s-tokyo-night .CodeMirror-vscrollbar::-webkit-scrollbar-thumb,
.cm-s-tokyo-night .CodeMirror-hscrollbar::-webkit-scrollbar-thumb {
  background: #2a2b36;
  border-radius: 4px;
}

.cm-s-tokyo-night .CodeMirror-vscrollbar::-webkit-scrollbar-thumb:hover,
.cm-s-tokyo-night .CodeMirror-hscrollbar::-webkit-scrollbar-thumb:hover {
  background: #3a3b46;
}

