/* 基础代码块样式 */
code[class*="language-"],
pre[class*="language-"] {
  color: #cdd6f4;
  background: none;
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, Monaco, 'Courier New', monospace;
  font-size: 0.95em;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.6;
  tab-size: 4;
  hyphens: none;
}

/* 代码块容器 */
pre[class*="language-"] {
  padding: 1.2em 1.5em;
  margin: 0.8em 0;
  overflow: auto;
  border-radius: 8px;
  background: #1e1e2e;
  border: 1px solid #313244;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* 行内代码 */
:not(pre) > code[class*="language-"] {
  padding: 0.2em 0.5em;
  border-radius: 4px;
  background: #313244;
  color: #f5c2e7;
  white-space: normal;
}

:not(pre) > code:not([class*="language-"]) {
  color: #eff1f5;
  background: #313244;
  border: 1px solid #dce0e8;
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, Monaco, 'Courier New', monospace !important;
}

/* 选中文本 */
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
  background: #45475a;
  color: inherit;
}

/* Token 颜色 - Shiba Inu 风格调色板 */

/* 注释 */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #6c7086;
  font-style: italic;
}

/* 标点符号 */
.token.punctuation {
  color: #bac2de;
}

/* 命名空间 */
.token.namespace {
  opacity: 0.7;
}

/* 属性、标签、布尔值、数字、常量、符号 */
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: #f38ba8;
}

/* 选择器、属性名、字符、内置函数、插入内容 */
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #a6e3a1;
}

/* 操作符、实体、URL */
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #89dceb;
  background: none;
}

/* 关键字、控制流、重要内容 */
.token.atrule,
.token.attr-value,
.token.keyword {
  color: #cba6f7;
}

/* 函数、类名 */
.token.function,
.token.class-name {
  color: #f9e2af;
}

/* 正则表达式、变量 */
.token.regex,
.token.important,
.token.variable {
  color: #fab387;
}

/* 粗体、斜体 */
.token.important,
.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}

/* 实体 */
.token.entity {
  cursor: help;
}

/* 行号插件样式 */
pre[class*="language-"].line-numbers {
  position: relative;
  padding-left: 3.8em;
  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: 0;
  font-size: 100%;
  left: -3.8em;
  width: 3em;
  letter-spacing: -1px;
  border-right: 1px solid #45475a;
  user-select: none;
}

.line-numbers-rows > span {
  display: block;
  counter-increment: linenumber;
}

.line-numbers-rows > span:before {
  content: counter(linenumber);
  color: #6c7086;
  display: block;
  padding-right: 0.8em;
  text-align: right;
}

/* 命令行提示符插件 */
.command-line-prompt {
  border-right: 1px solid #45475a;
  display: block;
  float: left;
  font-size: 100%;
  letter-spacing: -1px;
  margin-right: 1em;
  pointer-events: none;
  user-select: none;
}

.command-line-prompt > span:before {
  color: #6c7086;
  content: ' ';
  display: block;
  padding-right: 0.8em;
}

.command-line-prompt > span[data-user]:before {
  content: "[" attr(data-user) "@" attr(data-host) "] $";
}

.command-line-prompt > span[data-user="root"]:before {
  content: "[" attr(data-user) "@" attr(data-host) "] #";
}

.command-line-prompt > span[data-prompt]:before {
  content: attr(data-prompt);
}

/* Diff 高亮 */
.token.deleted {
  background-color: rgba(243, 139, 168, 0.15);
}

.token.inserted {
  background-color: rgba(166, 227, 161, 0.15);
}

/* 特殊语言适配 */

/* JSON */
.language-json .token.property {
  color: #89dceb;
}

.language-json .token.string {
  color: #a6e3a1;
}

/* Markdown */
.language-markdown .token.title,
.language-markdown .token.title .token.punctuation {
  color: #f9e2af;
  font-weight: bold;
}

.language-markdown .token.url,
.language-markdown .token.url-reference {
  color: #89dceb;
  text-decoration: underline;
}

/* YAML */
.language-yaml .token.atrule {
  color: #cba6f7;
}

/* 浅色模式适配 */
@media (prefers-color-scheme: light) {
  code[class*="language-"],
  pre[class*="language-"] {
    color: #4c4f69;
  }

  pre[class*="language-"] {
    background: #eff1f5;
    border: 1px solid #dce0e8;
  }

  :not(pre) > code[class*="language-"] {
    background: #e6e9ef;
    color: #8839ef;
  }

  :not(pre) > code:not([class*="language-"]){
    background: #e6e9ef;
    color: #4c4f69;
  }

  pre[class*="language-"]::selection,
  code[class*="language-"]::selection {
    background: #acb0be;
  }

  .token.comment,
  .token.prolog,
  .token.doctype,
  .token.cdata {
    color: #9ca0b0;
  }

  .token.punctuation {
    color: #5c5f77;
  }

  .token.property,
  .token.tag,
  .token.boolean,
  .token.number,
  .token.constant,
  .token.symbol,
  .token.deleted {
    color: #d20f39;
  }

  .token.selector,
  .token.attr-name,
  .token.string,
  .token.char,
  .token.builtin,
  .token.inserted {
    color: #40a02b;
  }

  .token.operator,
  .token.entity,
  .token.url {
    color: #179299;
  }

  .token.atrule,
  .token.attr-value,
  .token.keyword {
    color: #8839ef;
  }

  .token.function,
  .token.class-name {
    color: #df8e1d;
  }

  .token.regex,
  .token.important,
  .token.variable {
    color: #fe640b;
  }

  .line-numbers .line-numbers-rows {
    border-right: 1px solid #acb0be;
  }

  .line-numbers-rows > span:before {
    color: #9ca0b0;
  }

  .command-line-prompt {
    border-right: 1px solid #acb0be;
  }

  .command-line-prompt > span:before {
    color: #9ca0b0;
  }

  .token.deleted {
    background-color: rgba(210, 15, 57, 0.1);
  }

  .token.inserted {
    background-color: rgba(64, 160, 43, 0.1);
  }
}

/* Obsidian 特定适配 */
.markdown-source-view.mod-cm6 .cm-line .token,
.markdown-preview-view .token {
  text-shadow: none;
}

/* 代码块标题栏（如果有的话） */
pre[class*="language-"][data-language]::before {
  content: attr(data-language);
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.3em 0.8em;
  font-size: 0.75em;
  color: #6c7086;
  background: #181825;
  border-bottom-left-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* 滚动条美化 */
pre[class*="language-"]::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

pre[class*="language-"]::-webkit-scrollbar-track {
  background: #181825;
  border-radius: 4px;
}

pre[class*="language-"]::-webkit-scrollbar-thumb {
  background: #45475a;
  border-radius: 4px;
}

pre[class*="language-"]::-webkit-scrollbar-thumb:hover {
  background: #585b70;
}

/* ============================================
   Prism Toolbar 优化样式
   ============================================ */

/* Toolbar 容器 */
div.code-toolbar {
  position: relative;
  margin: 0.8em 0;
}

div.code-toolbar > .toolbar {
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.25s ease-in-out;
  z-index: unset;
  display: flex;
  gap: 6px;
  padding: 8px 10px;
  background: linear-gradient(135deg, rgba(24, 24, 37, 0.95) 0%, rgba(30, 30, 46, 0.95) 100%);
  border-bottom-left-radius: 8px;
  border-top-right-radius: 8px;
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* 鼠标悬停时显示 toolbar */
div.code-toolbar:hover > .toolbar,
div.code-toolbar:focus-within > .toolbar {
  opacity: 1;
}

/* Toolbar 按钮容器 */
div.code-toolbar > .toolbar > .toolbar-item {
  display: inline-flex;
  margin: 0;
  padding: 0;
}

/* 统一按钮样式 */
div.code-toolbar > .toolbar > .toolbar-item > button,
div.code-toolbar > .toolbar > .toolbar-item > a,
div.code-toolbar > .toolbar > .toolbar-item > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 500;
  color: #bac2de;
  background: rgba(69, 71, 90, 0.5);
  border: 1px solid rgba(186, 194, 222, 0.1);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* 按钮悬停效果 */
div.code-toolbar > .toolbar > .toolbar-item > button:hover,
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
div.code-toolbar > .toolbar > .toolbar-item > span:hover {
  color: #cdd6f4;
  background: rgba(88, 91, 112, 0.6);
  border-color: rgba(186, 194, 222, 0.2);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* 按钮激活效果 */
div.code-toolbar > .toolbar > .toolbar-item > button:active,
div.code-toolbar > .toolbar > .toolbar-item > a:active,
div.code-toolbar > .toolbar > .toolbar-item > span:active {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* 按钮焦点样式 */
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
div.code-toolbar > .toolbar > .toolbar-item > a:focus,
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
  outline: none;
  border-color: rgba(203, 166, 247, 0.5);
  box-shadow: 0 0 0 2px rgba(203, 166, 247, 0.2);
}

/* 复制按钮特殊样式 */
div.code-toolbar > .toolbar > .toolbar-item > button[data-copy-state="copy"],
div.code-toolbar > .toolbar > .toolbar-item > a[data-copy-state="copy"] {
  color: #a6e3a1;
}

/* 复制成功状态 */
div.code-toolbar > .toolbar > .toolbar-item > button[data-copy-state="copied"],
div.code-toolbar > .toolbar > .toolbar-item > a[data-copy-state="copied"] {
  color: #a6e3a1;
  background: rgba(166, 227, 161, 0.15);
  border-color: rgba(166, 227, 161, 0.3);
}

/* 语言标签样式 */
div.code-toolbar > .toolbar > .toolbar-item > span.language-label {
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #f9e2af;
  background: rgba(249, 226, 175, 0.1);
  border-color: rgba(249, 226, 175, 0.2);
  cursor: default;
  pointer-events: none;
}

/* 下载按钮 */
div.code-toolbar > .toolbar > .toolbar-item > a[download] {
  color: #89dceb;
}

div.code-toolbar > .toolbar > .toolbar-item > a[download]:hover {
  background: rgba(137, 220, 235, 0.15);
  border-color: rgba(137, 220, 235, 0.3);
}

/* 显示语言按钮 */
div.code-toolbar > .toolbar > .toolbar-item > button.show-language {
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
}

/* Toolbar 分隔线 */
div.code-toolbar > .toolbar::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(186, 194, 222, 0.1) 50%, 
    transparent 100%);
}

/* 响应式调整 - Toolbar */
@media screen and (max-width: 768px) {
  div.code-toolbar > .toolbar {
    gap: 4px;
    padding: 6px 8px;
  }

  div.code-toolbar > .toolbar > .toolbar-item > button,
  div.code-toolbar > .toolbar > .toolbar-item > a,
  div.code-toolbar > .toolbar > .toolbar-item > span {
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    font-size: 12px;
  }

  /* 移动端始终显示 toolbar */
  div.code-toolbar > .toolbar {
    opacity: 0.9;
  }
}

/* 浅色模式 Toolbar 适配 */
@media (prefers-color-scheme: light) {
  div.code-toolbar > .toolbar {
    background: linear-gradient(135deg, rgba(239, 241, 245, 0.95) 0%, rgba(230, 233, 239, 0.95) 100%);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }

  div.code-toolbar > .toolbar > .toolbar-item > button,
  div.code-toolbar > .toolbar > .toolbar-item > a,
  div.code-toolbar > .toolbar > .toolbar-item > span {
    color: #5c5f77;
    background: rgba(220, 224, 232, 0.5);
    border-color: rgba(92, 95, 119, 0.15);
  }

  div.code-toolbar > .toolbar > .toolbar-item > button:hover,
  div.code-toolbar > .toolbar > .toolbar-item > a:hover,
  div.code-toolbar > .toolbar > .toolbar-item > span:hover {
    color: #4c4f69;
    background: rgba(188, 192, 204, 0.6);
    border-color: rgba(92, 95, 119, 0.25);
  }

  div.code-toolbar > .toolbar > .toolbar-item > button:focus,
  div.code-toolbar > .toolbar > .toolbar-item > a:focus,
  div.code-toolbar > .toolbar > .toolbar-item > span:focus {
    border-color: rgba(136, 57, 239, 0.4);
    box-shadow: 0 0 0 2px rgba(136, 57, 239, 0.15);
  }

  div.code-toolbar > .toolbar > .toolbar-item > button[data-copy-state="copied"],
  div.code-toolbar > .toolbar > .toolbar-item > a[data-copy-state="copied"] {
    color: #40a02b;
    background: rgba(64, 160, 43, 0.12);
    border-color: rgba(64, 160, 43, 0.25);
  }

  div.code-toolbar > .toolbar > .toolbar-item > span.language-label {
    color: #df8e1d;
    background: rgba(223, 142, 29, 0.1);
    border-color: rgba(223, 142, 29, 0.2);
  }

  div.code-toolbar > .toolbar > .toolbar-item > a[download] {
    color: #179299;
  }

  div.code-toolbar > .toolbar > .toolbar-item > a[download]:hover {
    background: rgba(23, 146, 153, 0.12);
    border-color: rgba(23, 146, 153, 0.25);
  }

  div.code-toolbar > .toolbar::before {
    background: linear-gradient(90deg, 
      transparent 0%, 
      rgba(92, 95, 119, 0.1) 50%, 
      transparent 100%);
  }
}

/* 响应式设计 */
@media screen and (max-width: 768px) {
  pre[class*="language-"] {
    padding: 1em;
    font-size: 0.9em;
  }

  pre[class*="language-"].line-numbers {
    padding-left: 3em;
  }

  .line-numbers .line-numbers-rows {
    left: -3em;
    width: 2.5em;
  }
}