/* ==========================================================================
   Code Syntax Highlighting — Paper Light (light) & Ocean Dark (dark)
   Pygments CSS classes for Pelican's codehilite/highlight
   ========================================================================== */

/* ---------- Inline Code ---------- */

code {
  font-family: var(--font-code);
  font-size: var(--font-size-code);
  background: var(--code-inline-bg);
  border: 1px solid var(--code-inline-border);
  border-radius: var(--radius-small);
  padding: 0.15rem 0.4rem;
}

pre code {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
}

/* ---------- Code Blocks ---------- */

pre,
.highlight pre,
.codehilite pre {
  font-family: var(--font-code);
  font-size: var(--font-size-code);
  background: var(--code-bg);
  color: var(--code-fg);
  border-radius: var(--radius-medium);
  padding: 1rem;
  overflow-x: auto;
  line-height: 1.5;
  margin: var(--space-section) 0;
}

/* ---------- Paper Light — Pygments Classes ---------- */

.highlight .hll { background-color: #fdf8e8; }
.highlight .c   { color: var(--code-comment); font-style: italic; } /* Comment */
.highlight .err { color: #9d0006; }                                 /* Error */
.highlight .k   { color: var(--code-keyword); font-weight: 600; }  /* Keyword */
.highlight .o   { color: var(--code-fg); }                          /* Operator */
.highlight .ch  { color: var(--code-comment); font-style: italic; } /* Comment.Hashbang */
.highlight .cm  { color: var(--code-comment); font-style: italic; } /* Comment.Multiline */
.highlight .cp  { color: #af3a03; }                                 /* Comment.Preproc */
.highlight .cpf { color: var(--code-comment); font-style: italic; } /* Comment.PreprocFile */
.highlight .c1  { color: var(--code-comment); font-style: italic; } /* Comment.Single */
.highlight .cs  { color: var(--code-comment); font-style: italic; font-weight: 600; } /* Comment.Special */
.highlight .gd  { color: #9d0006; }                                 /* Generic.Deleted */
.highlight .ge  { font-style: italic; }                             /* Generic.Emph */
.highlight .ges { font-weight: 600; font-style: italic; }          /* Generic.EmphStrong */
.highlight .gr  { color: #9d0006; }                                 /* Generic.Error */
.highlight .gh  { color: var(--code-function); font-weight: 600; } /* Generic.Heading */
.highlight .gi  { color: var(--code-string); }                      /* Generic.Inserted */
.highlight .go  { color: var(--code-comment); }                     /* Generic.Output */
.highlight .gp  { color: var(--code-comment); }                     /* Generic.Prompt */
.highlight .gs  { font-weight: 600; }                               /* Generic.Strong */
.highlight .gu  { color: var(--code-comment); font-weight: 600; }  /* Generic.Subheading */
.highlight .gt  { color: #9d0006; }                                 /* Generic.Traceback */
.highlight .kc  { color: var(--code-keyword); font-weight: 600; }  /* Keyword.Constant */
.highlight .kd  { color: var(--code-keyword); font-weight: 600; }  /* Keyword.Declaration */
.highlight .kn  { color: var(--code-keyword); font-weight: 600; }  /* Keyword.Namespace */
.highlight .kp  { color: var(--code-keyword); }                     /* Keyword.Pseudo */
.highlight .kr  { color: var(--code-keyword); font-weight: 600; }  /* Keyword.Reserved */
.highlight .kt  { color: var(--code-number); }                      /* Keyword.Type */
.highlight .m   { color: var(--code-number); }                      /* Literal.Number */
.highlight .s   { color: var(--code-string); }                      /* Literal.String */
.highlight .na  { color: var(--code-function); }                    /* Name.Attribute */
.highlight .nb  { color: var(--code-function); }                    /* Name.Builtin */
.highlight .nc  { color: var(--code-function); font-weight: 600; } /* Name.Class */
.highlight .no  { color: #af3a03; }                                 /* Name.Constant */
.highlight .nd  { color: var(--code-function); }                    /* Name.Decorator */
.highlight .ni  { color: var(--code-fg); }                          /* Name.Entity */
.highlight .ne  { color: #9d0006; font-weight: 600; }              /* Name.Exception */
.highlight .nf  { color: var(--code-function); }                    /* Name.Function */
.highlight .nl  { color: var(--code-fg); }                          /* Name.Label */
.highlight .nn  { color: var(--code-function); }                    /* Name.Namespace */
.highlight .nt  { color: var(--code-keyword); }                     /* Name.Tag */
.highlight .nv  { color: var(--code-fg); }                          /* Name.Variable */
.highlight .ow  { color: var(--code-keyword); font-weight: 600; }  /* Operator.Word */
.highlight .w   { color: var(--code-fg); }                          /* Text.Whitespace */
.highlight .mb  { color: var(--code-number); }                      /* Literal.Number.Bin */
.highlight .mf  { color: var(--code-number); }                      /* Literal.Number.Float */
.highlight .mh  { color: var(--code-number); }                      /* Literal.Number.Hex */
.highlight .mi  { color: var(--code-number); }                      /* Literal.Number.Integer */
.highlight .mo  { color: var(--code-number); }                      /* Literal.Number.Oct */
.highlight .sa  { color: var(--code-string); }                      /* Literal.String.Affix */
.highlight .sb  { color: var(--code-string); }                      /* Literal.String.Backtick */
.highlight .sc  { color: var(--code-string); }                      /* Literal.String.Char */
.highlight .dl  { color: var(--code-string); }                      /* Literal.String.Delimiter */
.highlight .sd  { color: var(--code-string); font-style: italic; }  /* Literal.String.Doc */
.highlight .s2  { color: var(--code-string); }                      /* Literal.String.Double */
.highlight .se  { color: #af3a03; }                                 /* Literal.String.Escape */
.highlight .sh  { color: var(--code-string); }                      /* Literal.String.Heredoc */
.highlight .si  { color: var(--code-string); }                      /* Literal.String.Interpol */
.highlight .sx  { color: var(--code-string); }                      /* Literal.String.Other */
.highlight .sr  { color: var(--code-string); }                      /* Literal.String.Regex */
.highlight .s1  { color: var(--code-string); }                      /* Literal.String.Single */
.highlight .ss  { color: var(--code-string); }                      /* Literal.String.Symbol */
.highlight .bp  { color: var(--code-function); }                    /* Name.Builtin.Pseudo */
.highlight .fm  { color: var(--code-function); }                    /* Name.Function.Magic */
.highlight .il  { color: var(--code-number); }                      /* Literal.Number.Integer.Long */
.highlight .vc  { color: var(--code-fg); }                          /* Name.Variable.Class */
.highlight .vg  { color: var(--code-fg); }                          /* Name.Variable.Global */
.highlight .vi  { color: var(--code-fg); }                          /* Name.Variable.Instance */
.highlight .vm  { color: var(--code-fg); }                          /* Name.Variable.Magic */

/* ---------- Line Numbers ---------- */

.linenodiv pre {
  color: var(--code-comment);
  background: transparent;
  border: none;
  padding-right: 0.5rem;
  margin: 0;
}

.highlighttable {
  width: 100%;
  border-collapse: collapse;
}

.highlighttable td {
  padding: 0;
  border: none;
}

.highlighttable .linenos {
  width: 3rem;
  text-align: right;
  vertical-align: top;
  user-select: none;
}

/* ---------- Codehilite (markdown extension) ---------- */

.codehilite pre {
  background: var(--code-bg);
  color: var(--code-fg);
}

.codehilite .hll { background-color: #fdf8e8; }
.codehilite .c   { color: var(--code-comment); font-style: italic; }
.codehilite .k   { color: var(--code-keyword); font-weight: 600; }
.codehilite .s   { color: var(--code-string); }
.codehilite .nf  { color: var(--code-function); }
.codehilite .m,
.codehilite .mi,
.codehilite .mf  { color: var(--code-number); }
.codehilite .nb  { color: var(--code-function); }
.codehilite .nc  { color: var(--code-function); font-weight: 600; }
.codehilite .kn  { color: var(--code-keyword); font-weight: 600; }
