/* Code block container */
.code-block {
    position: relative;
    margin: var(--spacing-md) 0;
}

/* Copy button */
.copy-btn {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    padding: var(--spacing-xs);
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    cursor: pointer;
    opacity: 0;
    transition: opacity var(--transition-fast), background-color var(--transition-fast);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.code-block:hover .copy-btn {
    opacity: 1;
}

.copy-btn:hover {
    background-color: var(--color-bg-alt);
}

.copy-btn svg {
    color: var(--color-text-muted);
}

.copy-btn.copied {
    background-color: var(--color-accent);
}

.copy-btn.copied svg {
    color: var(--color-bg);
}

/* Pygments highlight container */
.highlight {
    background-color: var(--color-bg-alt);
    border: 1px solid var(--color-border-subtle);
    border-radius: 4px;
    padding: var(--spacing-md);
    overflow-x: auto;
    font-family: var(--font-mono);
    font-size: 0.875rem;
    line-height: 1.6;
}

.highlight pre {
    margin: 0;
    padding: 0;
    background: transparent;
    overflow-x: auto;
}

.highlight code {
    font-family: var(--font-mono);
    font-size: inherit;
    background: transparent;
    padding: 0;
}

/* Light theme Pygments colors */
:root {
    /* Comments */
    --syntax-comment: light-dark(#6a737d, #8b949e);
    /* Strings */
    --syntax-string: light-dark(#032f62, #a5d6ff);
    /* Keywords */
    --syntax-keyword: light-dark(#d73a49, #ff7b72);
    /* Functions/Methods */
    --syntax-function: light-dark(#6f42c1, #d2a8ff);
    /* Numbers */
    --syntax-number: light-dark(#005cc5, #79c0ff);
    /* Operators */
    --syntax-operator: light-dark(#d73a49, #ff7b72);
    /* Built-ins */
    --syntax-builtin: light-dark(#005cc5, #79c0ff);
    /* Variables */
    --syntax-variable: light-dark(#24292e, #c9d1d9);
    /* Classes */
    --syntax-class: light-dark(#6f42c1, #f0883e);
    /* Decorators */
    --syntax-decorator: light-dark(#6f42c1, #d2a8ff);
}

/* Pygments token classes - using CSS variables for theme support */
.highlight .c,   /* Comment */
.highlight .c1,  /* Comment.Single */
.highlight .cm,  /* Comment.Multiline */
.highlight .cs,  /* Comment.Special */
.highlight .cp { /* Comment.Preproc */
    color: var(--syntax-comment);
    font-style: italic;
}

.highlight .s,   /* String */
.highlight .s1,  /* String.Single */
.highlight .s2,  /* String.Double */
.highlight .sb,  /* String.Backtick */
.highlight .sc,  /* String.Char */
.highlight .sd,  /* String.Doc */
.highlight .se,  /* String.Escape */
.highlight .sh,  /* String.Heredoc */
.highlight .si,  /* String.Interpol */
.highlight .sr,  /* String.Regex */
.highlight .ss,  /* String.Symbol */
.highlight .sa { /* String.Affix */
    color: var(--syntax-string);
}

.highlight .k,   /* Keyword */
.highlight .kc,  /* Keyword.Constant */
.highlight .kd,  /* Keyword.Declaration */
.highlight .kn,  /* Keyword.Namespace */
.highlight .kp,  /* Keyword.Pseudo */
.highlight .kr,  /* Keyword.Reserved */
.highlight .kt { /* Keyword.Type */
    color: var(--syntax-keyword);
}

.highlight .nf,  /* Name.Function */
.highlight .fm,  /* Name.Function.Magic */
.highlight .na { /* Name.Attribute */
    color: var(--syntax-function);
}

.highlight .m,   /* Number */
.highlight .mi,  /* Number.Integer */
.highlight .mf,  /* Number.Float */
.highlight .mh,  /* Number.Hex */
.highlight .mo,  /* Number.Oct */
.highlight .mb,  /* Number.Bin */
.highlight .il { /* Number.Integer.Long */
    color: var(--syntax-number);
}

.highlight .o,   /* Operator */
.highlight .ow { /* Operator.Word */
    color: var(--syntax-operator);
}

.highlight .nb,  /* Name.Builtin */
.highlight .bp { /* Name.Builtin.Pseudo */
    color: var(--syntax-builtin);
}

.highlight .nc { /* Name.Class */
    color: var(--syntax-class);
}

.highlight .nd { /* Name.Decorator */
    color: var(--syntax-decorator);
}

.highlight .n,   /* Name */
.highlight .nn,  /* Name.Namespace */
.highlight .ni,  /* Name.Entity */
.highlight .ne,  /* Name.Exception */
.highlight .nv,  /* Name.Variable */
.highlight .vc,  /* Name.Variable.Class */
.highlight .vg,  /* Name.Variable.Global */
.highlight .vi { /* Name.Variable.Instance */
    color: var(--syntax-variable);
}

.highlight .p { /* Punctuation */
    color: var(--color-text);
}

/* Special tokens */
.highlight .err { /* Error */
    color: var(--syntax-keyword);
    background-color: transparent;
}

.highlight .w { /* Whitespace */
    color: transparent;
}

/* Line numbers (if enabled) */
.highlight .linenos {
    color: var(--color-text-subtle);
    padding-right: var(--spacing-md);
    border-right: 1px solid var(--color-border-subtle);
    margin-right: var(--spacing-md);
    user-select: none;
}
