/* Kalu Dark — a deep-navy CodeMirror theme inspired by finance dashboards */

.cm-s-kalu-dark.CodeMirror {
  background: #0d1520;
  color: #c8d3e0;
}

.cm-s-kalu-dark div.CodeMirror-selected {
  background: rgba(var(--accent-rgb), 0.12);
}

.cm-s-kalu-dark .CodeMirror-line::selection,
.cm-s-kalu-dark .CodeMirror-line > span::selection,
.cm-s-kalu-dark .CodeMirror-line > span > span::selection {
  background: rgba(var(--accent-rgb), 0.18);
}

.cm-s-kalu-dark .CodeMirror-line::-moz-selection,
.cm-s-kalu-dark .CodeMirror-line > span::-moz-selection,
.cm-s-kalu-dark .CodeMirror-line > span > span::-moz-selection {
  background: rgba(var(--accent-rgb), 0.18);
}

.cm-s-kalu-dark .CodeMirror-gutters {
  background: #0a1018;
  border-right: 1px solid rgba(var(--accent-rgb), 0.08);
}

.cm-s-kalu-dark .CodeMirror-guttermarker {
  color: var(--accent);
}

.cm-s-kalu-dark .CodeMirror-guttermarker-subtle {
  color: #3a4a5c;
}

.cm-s-kalu-dark .CodeMirror-linenumber {
  color: #2a3a4e;
  padding: 0 8px 0 5px;
}

.cm-s-kalu-dark .CodeMirror-cursor {
  border-left: 3px solid var(--accent) !important;
  animation: cursorFade 1.2s ease-in-out infinite;
}

@keyframes cursorFade {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

.cm-s-kalu-dark span.cm-comment {
  color: #3e5168;
  font-style: italic;
}

.cm-s-kalu-dark span.cm-atom {
  color: #c49cde;
}

.cm-s-kalu-dark span.cm-number {
  color: #5ce0b8;
}

.cm-s-kalu-dark span.cm-property,
.cm-s-kalu-dark span.cm-attribute {
  color: #5ce0b8;
}

.cm-s-kalu-dark span.cm-keyword {
  color: #ff6b8a;
}

.cm-s-kalu-dark span.cm-builtin {
  color: #82c4fa;
}

.cm-s-kalu-dark span.cm-string {
  color: #f0c674;
}

.cm-s-kalu-dark span.cm-variable {
  color: #c8d3e0;
}

.cm-s-kalu-dark span.cm-variable-2 {
  color: #82c4fa;
}

.cm-s-kalu-dark span.cm-variable-3,
.cm-s-kalu-dark span.cm-type {
  color: #c49cde;
}

.cm-s-kalu-dark span.cm-def {
  color: #f0c674;
}

.cm-s-kalu-dark span.cm-bracket {
  color: #8899aa;
}

.cm-s-kalu-dark span.cm-tag {
  color: #ff6b8a;
}

.cm-s-kalu-dark span.cm-header {
  color: #ff6b8a;
}

.cm-s-kalu-dark span.cm-link {
  color: #c49cde;
}

.cm-s-kalu-dark span.cm-error {
  background: rgba(255, 80, 80, 0.15);
  color: #ff6b6b;
}

.cm-s-kalu-dark span.cm-operator {
  color: var(--accent);
}

.cm-s-kalu-dark .CodeMirror-activeline-background {
  background: rgba(var(--accent-rgb), 0.04);
}

.cm-s-kalu-dark .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: var(--accent) !important;
  background: rgba(var(--accent-rgb), 0.1);
}

.cm-s-kalu-dark .CodeMirror-scroll {
  scrollbar-width: thin;
  scrollbar-color: #1a2a3a #0d1520;
}

.cm-s-kalu-dark .CodeMirror-scroll::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.cm-s-kalu-dark .CodeMirror-scroll::-webkit-scrollbar-track {
  background: #0d1520;
}

.cm-s-kalu-dark .CodeMirror-scroll::-webkit-scrollbar-thumb {
  background: #1a2a3a;
  border-radius: 4px;
}

.cm-s-kalu-dark .CodeMirror-scroll::-webkit-scrollbar-thumb:hover {
  background: #243648;
}
