/**
 * CodeMirror Design System Integration
 * Applies SciTeX design tokens to CodeMirror editor
 */

/* CodeMirror wrapper and main container */
.CodeMirror {
  border: 1px solid var(--workspace-border-default);
  border-radius: var(--border-radius-lg, 8px);
  font-family: var(
    --font-family-monospace,
    "JetBrains Mono",
    "Fira Code",
    "Monaco",
    "Courier New",
    monospace
  );
  font-size: 14px;
  line-height: 1.5;
}

/* Gutters (line numbers) */
.CodeMirror-gutters {
  background-color: var(--bg-page);
  border-right: 1px solid var(--workspace-border-default);
}

.CodeMirror-linenumber {
  color: var(--text-muted);
  padding: 0 8px;
}

/* Cursor and selection */
.CodeMirror-cursor {
  border-left: 2px solid var(--workspace-border-default);
}

.CodeMirror-selected {
  background-color: rgba(0, 0, 0, 0.05);
}

.CodeMirror-focused .CodeMirror-selected {
  background-color: rgba(0, 0, 0, 0.05);
}

/* Scrollbars */
.CodeMirror-scrollbar-filler {
  background-color: var(--bg-page);
}

/* Theme overrides for default theme */
.CodeMirror.cm-s-default {
  background-color: var(--bg-page);
  color: var(--text-primary);
}

.CodeMirror.cm-s-default .cm-string {
  color: var(--terminal-green, #22863a);
}

.CodeMirror.cm-s-default .cm-number {
  color: var(--terminal-blue, #005cc5);
}

.CodeMirror.cm-s-default .cm-atom {
  color: var(--terminal-blue, #005cc5);
}

.CodeMirror.cm-s-default .cm-keyword {
  color: var(--terminal-red, #d73a49);
}

.CodeMirror.cm-s-default .cm-variable {
  color: var(--text-primary);
}

.CodeMirror.cm-s-default .cm-comment {
  color: var(--text-muted);
}

/* Active line highlight - disabled for consistent background */
.CodeMirror-activeline-background {
  background-color: transparent !important;
}

/* Autocomplete styling */
.CodeMirror-hints {
  background-color: var(--bg-page);
  border: 1px solid var(--workspace-border-default);
  box-shadow: var(--box-shadow-md, 0 4px 8px rgba(26, 35, 50, 0.1));
}

.CodeMirror-hint {
  padding: 4px 8px;
  color: var(--text-primary);
}

.CodeMirror-hint-active {
  background-color: rgba(0, 0, 0, 0.05);
  color: var(--text-primary);
}

/* Match highlighting */
.CodeMirror-matchingbracket {
  background-color: var(--status-warning-bg);
  color: var(--text-primary);
}

.CodeMirror-nonmatchingbracket {
  color: var(--status-error);
}

/* Search/replace panel */
.CodeMirror-search-hint {
  color: var(--text-muted);
  font-size: 12px;
}
