/* CodeMirror container sizing */
#editor-container {
  flex: 1;
  overflow: hidden;
}
.cm-editor {
  height: 100%;
}
.cm-scroller {
  overflow: auto;
}

/* Tooltip base */
.cm-tooltip {
  background: #f3f3f3;
  color: #383a42;
  border: 1px solid #d6d6d6;
  border-radius: 6px;
  font-size: 13px;
}
.cm-tooltip-arrow::before {
  border-top-color: #d6d6d6;
  border-bottom-color: #d6d6d6;
}
.cm-tooltip-arrow::after {
  border-top-color: #f3f3f3;
  border-bottom-color: #f3f3f3;
}

/* JSON Schema hover tooltip */
.cm6-json-schema-hover {
  font-size: 12px;
  padding: 0.5rem;
}
.cm6-json-schema-hover--description {
  margin-bottom: 0.5rem;
  max-width: 600px;
}
.cm6-json-schema-hover--description p {
  margin: 0 0 0.25rem;
}
.cm6-json-schema-hover--code-wrapper {
  border-top: 1px solid #d6d6d6;
  padding-top: 0.4rem;
}
.cm6-json-schema-hover--code {
  font-family: monospace;
  font-size: 12px;
}

/* Lint diagnostics */
.cm-diagnostic {
  padding: 4px 8px;
  font-size: 12px;
}
.cm-diagnostic-error {
  border-left: 4px solid #e51400;
}
.cm-diagnostic-warning {
  border-left: 4px solid #bf8803;
}
.cm-diagnostic-info {
  border-left: 4px solid #0064ff;
}
.cm-lintRange-error {
  text-decoration: underline wavy #e51400;
}
.cm-lintRange-warning {
  text-decoration: underline wavy #bf8803;
}

/* Autocomplete */
.cm-tooltip-autocomplete {
  background: #f3f3f3;
  border: 1px solid #d6d6d6;
}
.cm-tooltip-autocomplete > ul > li {
  padding: 2px 8px;
}
.cm-tooltip-autocomplete > ul > li[aria-selected] {
  background: #0078d4;
  color: #ffffff;
}
.cm-completionIcon {
  padding-right: 4px;
  opacity: 0.8;
}

/* Error panel faults */
.fault {
  padding: 2px 0 2px 16px;
  font-family: monospace;
  font-size: 12px;
}
.fault .path {
  color: #795e26;
}
.fault .code {
  color: #0064ff;
  font-weight: 600;
}
.fault .msg {
  color: #383a42;
}

/* Dark mode overrides */
.dark .cm-tooltip {
  background: #252526;
  color: #d4d4d4;
  border-color: #2d2d30;
}
.dark .cm-tooltip-arrow::before {
  border-top-color: #2d2d30;
  border-bottom-color: #2d2d30;
}
.dark .cm-tooltip-arrow::after {
  border-top-color: #252526;
  border-bottom-color: #252526;
}
.dark .cm6-json-schema-hover--code-wrapper {
  border-top-color: #2d2d30;
}
.dark .cm-diagnostic-error {
  border-left-color: #f14c4c;
}
.dark .cm-diagnostic-warning {
  border-left-color: #cca700;
}
.dark .cm-diagnostic-info {
  border-left-color: #3794ff;
}
.dark .cm-lintRange-error {
  text-decoration-color: #f14c4c;
}
.dark .cm-lintRange-warning {
  text-decoration-color: #cca700;
}
.dark .cm-tooltip-autocomplete {
  background: #252526;
  border-color: #2d2d30;
}
.dark .cm-tooltip-autocomplete > ul > li[aria-selected] {
  background: #094771;
  color: #ffffff;
}
.dark .fault .path {
  color: #d7ba7d;
}
.dark .fault .code {
  color: #569cd6;
}
.dark .fault .msg {
  color: #d4d4d4;
}
