/* Syntax Highlighting - Astute Theme
 * Dark theme matching the website design
 */

/* Base code block */
.highlight {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    margin: 1rem 0;
    overflow: hidden;
}

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

.highlight code {
    font-family: 'Fira Code', 'Consolas', 'Monaco', monospace;
    font-size: 0.85rem;
    line-height: 1.6;
    background: transparent;
    padding: 0;
    color: #e6e6e6;
}

/* Line numbers */
.highlight .linenos {
    color: var(--text-secondary);
    opacity: 0.5;
    padding-right: 1rem;
    user-select: none;
    border-right: 1px solid var(--border-color);
    margin-right: 1rem;
}

/* Code copy button */
.highlight .copy-button {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.4rem 0.8rem;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-secondary);
    font-size: 0.75rem;
    cursor: pointer;
    opacity: 0;
    transition: all 0.2s ease;
}

.highlight:hover .copy-button {
    opacity: 1;
}

.highlight .copy-button:hover {
    background: var(--accent-secondary);
    color: white;
    border-color: var(--accent-secondary);
}

.highlight .copy-button.copied {
    background: var(--success);
    color: var(--primary-color);
    border-color: var(--success);
}

/* Pygments Token Colors */
/* Comments */
.highlight .c,
.highlight .c1,
.highlight .cm,
.highlight .cs,
.highlight .cp {
    color: #6a9955;
    font-style: italic;
}

/* Strings */
.highlight .s,
.highlight .s1,
.highlight .s2,
.highlight .sb,
.highlight .sc,
.highlight .sd,
.highlight .se,
.highlight .sh,
.highlight .si,
.highlight .sx,
.highlight .sr,
.highlight .ss {
    color: #ce9178;
}

/* Numbers */
.highlight .m,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .mo,
.highlight .il {
    color: #b5cea8;
}

/* Keywords */
.highlight .k,
.highlight .kc,
.highlight .kd,
.highlight .kn,
.highlight .kp,
.highlight .kr,
.highlight .kt {
    color: #569cd6;
    font-weight: 500;
}

/* Operators */
.highlight .o,
.highlight .ow {
    color: #d4d4d4;
}

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

/* Names */
.highlight .n,
.highlight .na,
.highlight .nb,
.highlight .nc,
.highlight .nd,
.highlight .ne,
.highlight .nf,
.highlight .ni,
.highlight .nl,
.highlight .nn,
.highlight .no,
.highlight .nt,
.highlight .nv,
.highlight .nx {
    color: #9cdcfe;
}

/* Built-in names */
.highlight .nb {
    color: #4ec9b0;
}

/* Class names */
.highlight .nc {
    color: #4ec9b0;
}

/* Function names */
.highlight .nf {
    color: #dcdcaa;
}

/* Decorators */
.highlight .nd {
    color: #dcdcaa;
}

/* Tags (HTML/XML) */
.highlight .nt {
    color: #569cd6;
}

/* Attributes */
.highlight .na {
    color: #9cdcfe;
}

/* Variables */
.highlight .nv {
    color: #9cdcfe;
}

/* Constants */
.highlight .no {
    color: #4fc1ff;
}

/* Errors */
.highlight .err {
    color: #f44747;
    background: rgba(244, 71, 71, 0.1);
}

/* Generic */
.highlight .gd {
    color: #f44747;
    background: rgba(244, 71, 71, 0.1);
}

.highlight .gi {
    color: #89d185;
    background: rgba(137, 209, 133, 0.1);
}

.highlight .gh {
    color: #569cd6;
    font-weight: bold;
}

.highlight .gu {
    color: #569cd6;
}

.highlight .ge {
    font-style: italic;
}

.highlight .gs {
    font-weight: bold;
}

/* Language-specific adjustments */

/* Python */
.language-python .highlight .bp {
    color: #4ec9b0;
}

/* JavaScript/TypeScript */
.language-javascript .highlight .kc,
.language-typescript .highlight .kc {
    color: #569cd6;
}

/* JSON */
.language-json .highlight .nl {
    color: #9cdcfe;
}

/* YAML */
.language-yaml .highlight .l-Scalar-Plain {
    color: #ce9178;
}

/* Bash/Shell */
.language-bash .highlight .nb,
.language-shell .highlight .nb {
    color: #dcdcaa;
}

/* CSS */
.language-css .highlight .nt {
    color: #d7ba7d;
}

.language-css .highlight .nc {
    color: #d7ba7d;
}

.language-css .highlight .nf {
    color: #d7ba7d;
}

/* HTML */
.language-html .highlight .nt {
    color: #569cd6;
}

.language-html .highlight .na {
    color: #9cdcfe;
}

.language-html .highlight .s {
    color: #ce9178;
}

/* Diff */
.highlight .gd {
    color: #f44747;
    background: rgba(244, 71, 71, 0.15);
}

.highlight .gi {
    color: #89d185;
    background: rgba(137, 209, 133, 0.15);
}

/* Inline code in content */
.page-content code:not(.highlight code) {
    font-family: 'Fira Code', 'Consolas', monospace;
    font-size: 0.9em;
    background: rgba(0, 114, 255, 0.15);
    color: var(--accent-color);
    padding: 0.2em 0.4em;
    border-radius: 4px;
}

/* Code tabs */
.tabbed-set {
    margin: 1rem 0;
}

.tabbed-set > input {
    display: none;
}

.tabbed-set > label {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 1px solid var(--border-color);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    margin-right: -1px;
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 0.9rem;
    transition: all 0.2s ease;
}

.tabbed-set > input:checked + label {
    background: rgba(0, 0, 0, 0.3);
    border-color: var(--border-color);
    color: var(--accent-color);
}

.tabbed-set > .tabbed-content {
    display: none;
    border: 1px solid var(--border-color);
    border-radius: 0 8px 8px 8px;
    padding: 0;
}

.tabbed-set > input:checked + label + .tabbed-content {
    display: block;
}

.tabbed-set > .tabbed-content > .highlight {
    margin: 0;
    border: none;
    border-radius: 0 8px 8px 8px;
}
