/* CodeTheme — 基于 CSS 变量的 Prism 配色，自动跟随浅色/暗黑模式 */

:root {
  --pr-comment: #6e7781;
  --pr-punct:   #57606a;
  --pr-prop:    #0550ae;
  --pr-string:  #0a3069;
  --pr-keyword: #cf222e;
  --pr-func:    #8250df;
  --pr-class:   #953800;
  --pr-number:  #0550ae;
  --pr-tag:     #116329;
}
html[data-theme="dark"] {
  --pr-comment: #8b949e;
  --pr-punct:   #c9d1d9;
  --pr-prop:    #79c0ff;
  --pr-string:  #a5d6ff;
  --pr-keyword: #ff7b72;
  --pr-func:    #d2a8ff;
  --pr-class:   #ffa657;
  --pr-number:  #79c0ff;
  --pr-tag:     #7ee787;
}

code[class*="language-"],
pre[class*="language-"] {
  color: var(--ct-code-text);
  background: none;
  font-family: var(--ct-mono);
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  tab-size: 4;
  hyphens: none;
}

pre[class*="language-"] {
  margin: 0;
  padding: 16px 18px;
  overflow: auto;
}

:not(pre) > code[class*="language-"] {
  padding: .15em .4em;
  border-radius: 6px;
  white-space: normal;
}

.token.comment, .token.prolog, .token.doctype, .token.cdata { color: var(--pr-comment); font-style: italic; }
.token.punctuation { color: var(--pr-punct); }
.token.property, .token.constant, .token.symbol, .token.deleted { color: var(--pr-prop); }
.token.boolean, .token.number { color: var(--pr-number); }
.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: var(--pr-string); }
.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string { color: var(--pr-punct); }
.token.atrule, .token.attr-value, .token.keyword { color: var(--pr-keyword); }
.token.function, .token.class-name { color: var(--pr-func); }
.token.regex, .token.important, .token.variable { color: var(--pr-class); }
.token.tag { color: var(--pr-tag); }
.token.important, .token.bold { font-weight: bold; }
.token.italic { font-style: italic; }

/* 行号插件 */
pre[class*="language-"].line-numbers {
  position: relative;
  padding-left: 3.5em;
  counter-reset: linenumber;
}
pre[class*="language-"].line-numbers > code { position: relative; white-space: inherit; }
.line-numbers .line-numbers-rows {
  position: absolute;
  pointer-events: none;
  top: 16px;
  font-size: 100%;
  left: 0;
  width: 3em;
  letter-spacing: -1px;
  border-right: 1px solid var(--ct-border);
  user-select: none;
}
.line-numbers-rows > span { display: block; counter-increment: linenumber; }
.line-numbers-rows > span:before {
  content: counter(linenumber);
  color: var(--pr-comment);
  display: block;
  padding-right: .8em;
  text-align: right;
}
