/* ═══════════════════════════════════════════════════════════════════════════
   SYNTAX HIGHLIGHTING - V3 PHOSPHOR PALETTE
   Magenta keywords, accent-green strings, cyan functions, amber types,
   muted italic comments. Mirrors the .token-* classes from globals.css.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Hugo simple wrapper from render-codeblock.html */
.code-block-simple {
  position: relative;
  margin: var(--space-lg) 0;
}
.code-block-simple .highlight { margin: 0; }

.code-copy-btn {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--term-panel);
  border: 1px solid var(--term-border);
  color: var(--term-muted);
  cursor: pointer;
  opacity: 0;
  transition: all var(--transition-fast);
  z-index: 10;
  font-family: var(--font-mono);
}
.code-block-simple:hover .code-copy-btn,
.highlight:hover .code-copy-btn { opacity: 1; }
.code-copy-btn:hover {
  border-color: var(--term-accent-40);
  color: var(--term-accent);
}
.code-copy-btn.copied { border-color: var(--term-accent); color: var(--term-accent); }
.code-copy-btn .copy-icon { display: block; }
.code-copy-btn .check-icon { display: none; }
.code-copy-btn.copied .copy-icon { display: none; }
.code-copy-btn.copied .check-icon { display: block; }
.code-copy-btn svg { width: 14px; height: 14px; }

/* Hugo Chroma wrapper */
.highlight {
  position: relative;
  margin: var(--space-lg) 0;
  background: var(--term-deep);
  border: 1px solid var(--term-border);
  overflow: hidden;
}
.highlight pre {
  margin: 0;
  padding: var(--space-md) var(--space-lg);
  background: transparent;
  overflow-x: auto;
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  line-height: 1.7;
  color: var(--term-text);
}
.highlight code {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
  color: var(--term-text);
  font-family: var(--font-mono);
}

/* Custom scrollbar inside code blocks */
.highlight pre::-webkit-scrollbar { height: 8px; }
.highlight pre::-webkit-scrollbar-track { background: transparent; }
.highlight pre::-webkit-scrollbar-thumb { background: var(--term-border-strong); }

/* Line numbers */
.highlight .ln,
.highlight .lnt {
  color: var(--term-muted);
  margin-right: var(--space-md);
  user-select: none;
  opacity: 0.6;
}
.highlight .lntable { border-collapse: collapse; }
.highlight .lntable td { padding: 0; vertical-align: top; }

/* ─── Chroma token classes - GitHub Dark (default) ─────────────────────── */

/* Keywords / operators - red */
.highlight .k,    /* Keyword */
.highlight .kc,   /* Constant */
.highlight .kd,   /* Declaration */
.highlight .kn,   /* Namespace */
.highlight .kp,   /* Pseudo */
.highlight .kr,   /* Reserved */
.highlight .kt,   /* Type */
.highlight .ow,   /* Operator.Word */
.highlight .o,    /* Operator */
.highlight .cp {  /* Preprocessor */
  color: #ff7b72;
}

/* Names */
.highlight .n  { color: #e6edf3; }
.highlight .na { color: #79c0ff; }                         /* Attribute */
.highlight .nb { color: #79c0ff; }                         /* Builtin */
.highlight .bp { color: #79c0ff; }                         /* Builtin pseudo */
.highlight .nc { color: #f0883e; font-weight: 600; }       /* Class */
.highlight .nd { color: #d2a8ff; }                         /* Decorator */
.highlight .ne { color: #d2a8ff; }                         /* Exception */
.highlight .nf { color: #d2a8ff; }                         /* Function */
.highlight .fm { color: #d2a8ff; }                         /* Function magic */
.highlight .py { color: #e6edf3; }                         /* Property */
.highlight .ni { color: #8b949e; }                         /* Entity */
.highlight .nl { color: #ffa657; }                         /* Label */
.highlight .nn { color: #e6edf3; }                         /* Namespace */
.highlight .nt { color: #7ee787; }                         /* Tag */
.highlight .nv { color: #ffa657; }                         /* Variable */
.highlight .vc { color: #ffa657; }
.highlight .vg { color: #ffa657; }
.highlight .vi { color: #ffa657; }

/* Strings - pale blue */
.highlight .s,
.highlight .sa, .highlight .sb, .highlight .sc, .highlight .dl,
.highlight .sd, .highlight .s2, .highlight .se, .highlight .sh,
.highlight .si, .highlight .sx, .highlight .sr, .highlight .s1,
.highlight .ss { color: #a5d6ff; }

/* Numbers - blue */
.highlight .m,
.highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi,
.highlight .il, .highlight .mo { color: #79c0ff; }

/* Punctuation */
.highlight .p { color: #e6edf3; }

/* Comments - muted italic */
.highlight .c, .highlight .ch, .highlight .cm,
.highlight .c1, .highlight .cs, .highlight .cpf {
  color: #8b949e;
  font-style: italic;
}

/* Generic / diff */
.highlight .gd { color: #ffdcd7; background: rgba(248, 81, 73, 0.15); }
.highlight .gi { color: #aff5b4; background: rgba(46, 160, 67, 0.15); }
.highlight .ge { font-style: italic; }
.highlight .gh { color: #79c0ff; font-weight: 600; }
.highlight .go { color: #8b949e; }
.highlight .gp { color: #8b949e; }
.highlight .gs { font-weight: 600; color: #e6edf3; }
.highlight .gu { color: #79c0ff; font-weight: 600; }
.highlight .gt { color: #ff7b72; }
.highlight .gr { color: #ffa198; }

/* Errors */
.highlight .err {
  color: #f85149;
  background: rgba(248, 81, 73, 0.1);
}

/* Highlighted line */
.highlight .hl { background: rgba(187, 128, 9, 0.15); display: block; }

/* ─── Light theme - GitHub Light overrides ──────────────────────────────── */
[data-theme="light"] .highlight {
  background: var(--term-deep);
  border-color: var(--term-border);
}
[data-theme="light"] .highlight pre,
[data-theme="light"] .highlight code { color: #24292f; }

[data-theme="light"] .highlight .k,
[data-theme="light"] .highlight .kc,
[data-theme="light"] .highlight .kd,
[data-theme="light"] .highlight .kn,
[data-theme="light"] .highlight .kp,
[data-theme="light"] .highlight .kr,
[data-theme="light"] .highlight .kt,
[data-theme="light"] .highlight .ow,
[data-theme="light"] .highlight .o,
[data-theme="light"] .highlight .cp { color: #cf222e; }

[data-theme="light"] .highlight .n  { color: #24292f; }
[data-theme="light"] .highlight .na,
[data-theme="light"] .highlight .nb,
[data-theme="light"] .highlight .bp { color: #0550ae; }
[data-theme="light"] .highlight .nc { color: #953800; font-weight: 600; }
[data-theme="light"] .highlight .nd,
[data-theme="light"] .highlight .ne,
[data-theme="light"] .highlight .nf,
[data-theme="light"] .highlight .fm { color: #8250df; }
[data-theme="light"] .highlight .py { color: #24292f; }
[data-theme="light"] .highlight .ni { color: #6e7781; }
[data-theme="light"] .highlight .nl,
[data-theme="light"] .highlight .nv,
[data-theme="light"] .highlight .vc,
[data-theme="light"] .highlight .vg,
[data-theme="light"] .highlight .vi { color: #953800; }
[data-theme="light"] .highlight .nn { color: #24292f; }
[data-theme="light"] .highlight .nt { color: #116329; }

[data-theme="light"] .highlight .s,
[data-theme="light"] .highlight .sa, [data-theme="light"] .highlight .sb,
[data-theme="light"] .highlight .sc, [data-theme="light"] .highlight .dl,
[data-theme="light"] .highlight .sd, [data-theme="light"] .highlight .s2,
[data-theme="light"] .highlight .se, [data-theme="light"] .highlight .sh,
[data-theme="light"] .highlight .si, [data-theme="light"] .highlight .sx,
[data-theme="light"] .highlight .sr, [data-theme="light"] .highlight .s1,
[data-theme="light"] .highlight .ss { color: #0a3069; }

[data-theme="light"] .highlight .m,
[data-theme="light"] .highlight .mb, [data-theme="light"] .highlight .mf,
[data-theme="light"] .highlight .mh, [data-theme="light"] .highlight .mi,
[data-theme="light"] .highlight .il, [data-theme="light"] .highlight .mo { color: #0550ae; }

[data-theme="light"] .highlight .p { color: #24292f; }

[data-theme="light"] .highlight .c,
[data-theme="light"] .highlight .ch,
[data-theme="light"] .highlight .cm,
[data-theme="light"] .highlight .c1,
[data-theme="light"] .highlight .cs,
[data-theme="light"] .highlight .cpf { color: #6e7781; font-style: italic; }

[data-theme="light"] .highlight .gd { color: #82071e; background: #ffebe9; }
[data-theme="light"] .highlight .gi { color: #116329; background: #dafbe1; }
[data-theme="light"] .highlight .ge { font-style: italic; }
[data-theme="light"] .highlight .gh { color: #0550ae; font-weight: 600; }
[data-theme="light"] .highlight .go { color: #6e7781; }
[data-theme="light"] .highlight .gp { color: #6e7781; }
[data-theme="light"] .highlight .gs { font-weight: 600; color: #24292f; }
[data-theme="light"] .highlight .gu { color: #0550ae; font-weight: 600; }
[data-theme="light"] .highlight .gt { color: #82071e; }
[data-theme="light"] .highlight .gr { color: #82071e; }
[data-theme="light"] .highlight .err { color: #82071e; background: rgba(130, 7, 30, 0.06); }
[data-theme="light"] .highlight .hl { background: rgba(255, 223, 93, 0.4); }

/* Generic copy button (mirror of .code-copy-btn for older highlight markup) */
.highlight .copy-button {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  padding: 0.15rem 0.5rem;
  background: var(--term-panel);
  border: 1px solid var(--term-border);
  color: var(--term-muted);
  font-family: var(--font-mono);
  font-size: 0.625rem;
  cursor: pointer;
  opacity: 0;
  transition: all var(--transition-fast);
}
.highlight:hover .copy-button { opacity: 1; }
.highlight .copy-button:hover { border-color: var(--term-accent-40); color: var(--term-accent); }
