/* =========================================================
   HybridMag — Code Block Enhancement
   - 代码块明显区别于正文（深色墨底 + 边框 + 圆角 + 阴影）
   - 语法高亮主题（highlight.js 自定义，品牌色板）
   - 语言标签 + 复制按钮
   - 行内 <code> 底色 chip
   配色取自站点品牌：主墨 #2A2522 / 金线远山 #C9A227 /
   嫩绿 #A8C66C / 丹红 #C0563E / 宣纸暖白 #FAF6EC
   ========================================================= */

/* ---------- 行内 code chip ---------- */
.entry-content :not(pre) > code,
.comment-content :not(pre) > code,
.entry-summary :not(pre) > code {
  background: #EFE3C8;
  color: #6F5F4A;
  border: 1px solid #DCC9A3;
  padding: 0.12em 0.42em;
  border-radius: 5px;
  font-family: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono", monospace;
  font-size: 0.88em;
  word-break: break-word;
}

/* 代码块内部的 code 不要带 chip 样式 */
.hm-code-block code,
.hm-code-block pre code {
  background: transparent !important;
  color: inherit;
  border: 0;
  padding: 0;
  border-radius: 0;
  font-size: inherit;
}

/* ---------- 裸 pre（无 JS / JS 尚未执行时的兜底） ---------- */
.entry-content pre,
.comment-content pre {
  background: #2A2522;
  color: #E8DFD0;
  border: 1px solid #3C352E;
  border-radius: 12px;
  padding: 16px 18px;
  overflow: auto;
  font-family: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono", monospace;
  font-size: 0.94rem;
  line-height: 1.65;
}

/* ---------- 代码块包裹层（JS 注入） ---------- */
.hm-code-block {
  --hm-code-bg: #2A2522;
  --hm-code-bar: #332E29;
  --hm-code-fg: #E8DFD0;
  --hm-code-border: #3C352E;
  --hm-code-accent: #C9A227;
  --hm-code-muted: #8A7E6E;

  position: relative;
  margin: 0 0 1.6em;
  border: 1px solid var(--hm-code-border);
  border-radius: 12px;
  overflow: hidden;
  background: var(--hm-code-bg);
  box-shadow: 0 6px 20px rgba(42, 37, 34, 0.18);
  font-size: 0.94rem;
}

/* 顶栏：语言标签 + 复制按钮 */
.hm-code-block__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  background: var(--hm-code-bar);
  border-bottom: 1px solid var(--hm-code-border);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
}
.hm-code-block__lang {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--hm-code-muted);
  text-transform: uppercase;
}
.hm-code-block__lang::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--hm-code-accent);
  box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.18);
}
.hm-code-block__copy {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--hm-code-border);
  background: transparent;
  color: var(--hm-code-muted);
  font: inherit;
  font-size: 0.95rem;
  line-height: 1;
  padding: 4px 7px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.hm-code-block__copy:hover {
  background: rgba(232, 223, 208, 0.08);
  border-color: var(--hm-code-muted);
  color: var(--hm-code-fg);
}
.hm-code-block__copy:active {
  transform: translateY(1px);
}
.hm-code-block__copy.is-copied {
  color: var(--hm-code-accent);
  border-color: var(--hm-code-accent);
}

/* pre 在包裹层内 */
.hm-code-block pre {
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 16px 18px !important;
  overflow-x: auto;
  color: var(--hm-code-fg);
  font-family: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono", monospace;
  font-size: 0.94rem;
  line-height: 1.65;
  tab-size: 4;
}
.hm-code-block pre code {
  display: block;
  font-family: inherit;
  white-space: pre;
  word-break: normal;
  overflow-wrap: normal;
}
.hm-code-block pre::-webkit-scrollbar { height: 10px; width: 10px; }
.hm-code-block pre::-webkit-scrollbar-thumb { background: #4a423a; border-radius: 8px; }
.hm-code-block pre::-webkit-scrollbar-track { background: transparent; }

/* ---------- highlight.js 语法配色（品牌色板，自定义） ---------- */
.hljs { color: var(--hm-code-fg); background: transparent; }
.hljs-comment, .hljs-quote { color: var(--hm-code-muted); font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-section, .hljs-doctag,
.hljs-type, .hljs-name, .hljs-strong { color: #C9A227; }
.hljs-string, .hljs-regexp, .hljs-addition, .hljs-meta .hljs-string { color: #A8C66C; }
.hljs-number, .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta,
.hljs-selector-id, .hljs-template-variable, .hljs-variable { color: #C0563E; }
.hljs-title, .hljs-title.function_, .hljs-built_in,
.hljs-class .hljs-title, .hljs-title.class_ { color: #D9B382; }
.hljs-attr, .hljs-attribute, .hljs-property,
.hljs-variable.constant_, .hljs-params { color: #B99C6D; }
.hljs-builtin-name { color: #E0A96D; }
.hljs-deletion { color: #C0563E; }
.hljs-emphasis { font-style: italic; }
.hljs-strong { font-weight: 700; }

/* ---------- 暗色模式（跟随主题 html.hm-dark 切换） ---------- */
html.hm-dark .hm-code-block {
  --hm-code-bg: #16130F;
  --hm-code-bar: #1F1A15;
  --hm-code-fg: #E3D9C8;
  --hm-code-border: #2C2620;
  --hm-code-accent: #D8B24A;
  --hm-code-muted: #8C8071;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45);
}
html.hm-dark .entry-content :not(pre) > code,
html.hm-dark .comment-content :not(pre) > code {
  background: #2E281F;
  color: #E3D9C8;
  border-color: #3A332C;
}

/* ---------- 移动端适配 ---------- */
@media (max-width: 600px) {
  .hm-code-block { font-size: 0.86rem; border-radius: 10px; }
  .hm-code-block pre { padding: 13px 14px !important; }
  .hm-code-block__bar { padding: 7px 10px; font-size: 0.72rem; }
}

/* 尊重 prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .hm-code-block__copy { transition: none; }
}
