/* ===========================================================================
   代码语法高亮的配色
   ===========================================================================

   为什么要单独一个文件：
       这里是「代码里各种语法元素分别用什么颜色」，和站点外观（颜色、
       间距、字体）是两件事，分开维护更清楚。

   这些类名从哪来：
       Pygments 把代码解析后，会为每个语法元素加上对应的类名，例如
       关键字是 .k、字符串是 .s、注释是 .c。本文件就是给这些类配色。

       想确认某个元素对应哪个类，可以把鼠标放到代码上右键「检查」。

   配色思路：
       站点是暖白纸感（#FAF8F5 底 + 深褐文字），所以代码高亮不能用
       常见的「深色主题」或「高饱和彩色」，否则会显得刺眼、不协调。
       这里选了一组低饱和的暖色：深褐、赭石、橄榄、灰蓝。
   =========================================================================== */

/* ---- 代码块容器 ---- */
.codehilite {
  background: var(--bg-soft);
  border: 1px solid var(--rule);
  border-radius: 6px;
  margin: var(--space-6) 0;
  overflow: hidden;
}

.codehilite pre {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
}


/* ===========================================================================
   基础文本
   =========================================================================== */

.codehilite .c,    /* 注释 */
.codehilite .ch,   /* 注释：井号 */
.codehilite .cm,   /* 注释：多行 */
.codehilite .c1,   /* 注释：单行 */
.codehilite .cs {  /* 注释：特殊 */
  color: #948E85;
  font-style: italic;
}

.codehilite .k,    /* 关键字：if / for / def / class */
.codehilite .kc,   /* 关键字：常量 true / false */
.codehilite .kd,   /* 关键字：声明 */
.codehilite .kn,   /* 关键字：命名空间 */
.codehilite .kp,   /* 关键字：伪 */
.codehilite .kr,   /* 关键字：保留字 */
.codehilite .kt {  /* 关键字：类型 */
  color: #8B4513;
  font-weight: 600;
}

.codehilite .s,    /* 字符串 */
.codehilite .s1,   /* 字符串：单引号 */
.codehilite .s2,   /* 字符串：双引号 */
.codehilite .sb,   /* 字符串：反引号 */
.codehilite .sc,   /* 字符串：字符 */
.codehilite .sd,   /* 字符串：文档 */
.codehilite .se,   /* 字符串：转义 */
.codehilite .sh,   /* 字符串：heredoc */
.codehilite .si,   /* 字符串：插值 */
.codehilite .sx,   /* 字符串：其他 */
.codehilite .sr,   /* 字符串：正则 */
.codehilite .ss {  /* 字符串：符号 */
  color: #6B7A3A;
}

.codehilite .m,    /* 数字 */
.codehilite .mb,   /* 数字：二进制 */
.codehilite .mf,   /* 数字：浮点 */
.codehilite .mh,   /* 数字：十六进制 */
.codehilite .mi,   /* 数字：整数 */
.codehilite .mo {  /* 数字：八进制 */
  color: #A0522D;
}

.codehilite .n,    /* 名字 */
.codehilite .na,   /* 名字：属性 */
.codehilite .nb,   /* 名字：内置 */
.codehilite .nc,   /* 名字：类 */
.codehilite .nd,   /* 名字：装饰器 */
.codehilite .ne,   /* 名字：异常 */
.codehilite .nf,   /* 名字：函数 */
.codehilite .ni,   /* 名字：实体 */
.codehilite .nl,   /* 名字：标签 */
.codehilite .nn,   /* 名字：命名空间 */
.codehilite .nt,   /* 名字：标签（HTML） */
.codehilite .nv,   /* 名字：变量 */
.codehilite .nx {  /* 名字：其他 */
  color: #2F2C28;
}

.codehilite .nc,   /* 类名 */
.codehilite .nf,   /* 函数名 */
.codehilite .nd {  /* 装饰器 */
  color: #7A5C2E;
}

.codehilite .o,    /* 运算符 */
.codehilite .ow,   /* 运算符：单词 */
.codehilite .p {   /* 标点 */
  color: #5A5550;
}

.codehilite .bp {  /* 内置伪：self / cls */
  color: #8B4513;
}

.codehilite .w {   /* 空白：让它们不可见 */
  color: transparent;
}

/* ---- 错误（Pygments 标记出的无法识别内容）---- */
.codehilite .err {
  color: #B4562B;
  border-bottom: 1px dotted #B4562B;
}

/* ---- 其他不常用但可能出现的类 ---- */
.codehilite .gd { color: #B4562B; }              /* 删除行 */
.codehilite .gi { color: #6B7A3A; }              /* 新增行 */
.codehilite .gh { color: #8B4513; font-weight: 600; }  /* 标题 */
.codehilite .gu { color: #948E85; }              /* 副标题 */
.codehilite .gs { font-weight: 600; }
.codehilite .ge { font-style: italic; }
.codehilite .lineno { color: #C4BEB5; }          /* 行号（当前未启用） */
