/* ==========================================================================
   Pygments Code Highlighting - Monokai Theme
   ========================================================================== */

.highlight {
    background: #1e293b;
    border-radius: 0.75rem;
    padding: 1.25rem;
    margin: 1.5rem 0;
    overflow-x: auto;
    position: relative;
}

.highlight pre {
    margin: 0;
    padding: 0;
    background: transparent;
}

.highlight code {
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 1rem;
    line-height: 1.7;
    color: #e2e8f0;
    background: transparent;
    padding: 0;
}

/* Code block copy button area */
.highlight:hover::before {
    opacity: 1;
}

/* Syntax highlighting colors - Monokai theme */
/* Using higher specificity to override .post-content styles */
.highlight span.hll { background-color: #49483e }
.highlight span.c { color: #75715e } /* Comment */
.highlight span.err { color: #f92672 } /* Error */
.highlight span.k { color: #66d9ef } /* Keyword */
.highlight span.l { color: #ae81ff } /* Literal */
.highlight span.n { color: #f8f8f2 } /* Name */
.highlight span.o { color: #f92672 } /* Operator */
.highlight span.p { color: #f8f8f2 } /* Punctuation */
.highlight span.ch { color: #75715e } /* Comment.Hashbang */
.highlight span.cm { color: #75715e } /* Comment.Multiline */
.highlight span.cp { color: #75715e } /* Comment.Preproc */
.highlight span.cpf { color: #75715e } /* Comment.PreprocFile */
.highlight span.c1 { color: #75715e } /* Comment.Single */
.highlight span.cs { color: #75715e } /* Comment.Special */
.highlight span.gd { color: #f92672 } /* Generic.Deleted */
.highlight span.ge { font-style: italic } /* Generic.Emph */
.highlight span.gi { color: #a6e22e } /* Generic.Inserted */
.highlight span.gs { font-weight: bold } /* Generic.Strong */
.highlight span.gu { color: #75715e } /* Generic.Subheading */
.highlight span.kc { color: #66d9ef } /* Keyword.Constant */
.highlight span.kd { color: #66d9ef } /* Keyword.Declaration */
.highlight span.kn { color: #f92672 } /* Keyword.Namespace */
.highlight span.kp { color: #66d9ef } /* Keyword.Pseudo */
.highlight span.kr { color: #66d9ef } /* Keyword.Reserved */
.highlight span.kt { color: #66d9ef } /* Keyword.Type */
.highlight span.ld { color: #e6db74 } /* Literal.Date */
.highlight span.m { color: #ae81ff } /* Literal.Number */
.highlight span.s { color: #e6db74 } /* Literal.String */
.highlight span.na { color: #a6e22e } /* Name.Attribute */
.highlight span.nb { color: #f8f8f2 } /* Name.Builtin */
.highlight span.nc { color: #a6e22e } /* Name.Class */
.highlight span.no { color: #66d9ef } /* Name.Constant */
.highlight span.nd { color: #a6e22e } /* Name.Decorator */
.highlight span.ni { color: #f8f8f2 } /* Name.Entity */
.highlight span.ne { color: #a6e22e } /* Name.Exception */
.highlight span.nf { color: #a6e22e } /* Name.Function */
.highlight span.nl { color: #f8f8f2 } /* Name.Label */
.highlight span.nn { color: #f8f8f2 } /* Name.Namespace */
.highlight span.nx { color: #a6e22e } /* Name.Other */
.highlight span.py { color: #f8f8f2 } /* Name.Property */
.highlight span.nt { color: #f92672 } /* Name.Tag */
.highlight span.nv { color: #f8f8f2 } /* Name.Variable */
.highlight span.ow { color: #f92672 } /* Operator.Word */
.highlight span.w { color: #f8f8f2 } /* Text.Whitespace */
.highlight span.mb { color: #ae81ff } /* Literal.Number.Bin */
.highlight span.mf { color: #ae81ff } /* Literal.Number.Float */
.highlight span.mh { color: #ae81ff } /* Literal.Number.Hex */
.highlight span.mi { color: #ae81ff } /* Literal.Number.Integer */
.highlight span.mo { color: #ae81ff } /* Literal.Number.Oct */
.highlight span.sa { color: #e6db74 } /* Literal.String.Affix */
.highlight span.sb { color: #e6db74 } /* Literal.String.Backtick */
.highlight span.sc { color: #e6db74 } /* Literal.String.Char */
.highlight span.dl { color: #e6db74 } /* Literal.String.Delimiter */
.highlight span.sd { color: #e6db74 } /* Literal.String.Doc */
.highlight span.s2 { color: #e6db74 } /* Literal.String.Double */
.highlight span.se { color: #ae81ff } /* Literal.String.Escape */
.highlight span.sh { color: #e6db74 } /* Literal.String.Heredoc */
.highlight span.si { color: #e6db74 } /* Literal.String.Interpol */
.highlight span.sx { color: #e6db74 } /* Literal.String.Other */
.highlight span.sr { color: #e6db74 } /* Literal.String.Regex */
.highlight span.s1 { color: #e6db74 } /* Literal.String.Single */
.highlight span.ss { color: #e6db74 } /* Literal.String.Symbol */
.highlight span.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.highlight span.fm { color: #a6e22e } /* Name.Function.Magic */
.highlight span.vc { color: #f8f8f2 } /* Name.Variable.Class */
.highlight span.vg { color: #f8f8f2 } /* Name.Variable.Global */
.highlight span.vi { color: #f8f8f2 } /* Name.Variable.Instance */
.highlight span.vm { color: #f8f8f2 } /* Name.Variable.Magic */
.highlight span.il { color: #ae81ff } /* Literal.Number.Integer.Long */

/* Line numbers */
.highlight .linenos {
    color: #75715e;
    padding-right: 1rem;
    border-right: 1px solid #3e3d32;
    margin-right: 1rem;
    user-select: none;
}

/* ==========================================================================
   Code Output Blocks - Jupyter-style output
   ========================================================================== */

.code-output {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 4px solid #10b981;
    border-radius: 0 0.5rem 0.5rem 0;
    padding: 1rem 1.25rem;
    margin: 0.5rem 0 1.5rem 0;
    overflow-x: auto;
    position: relative;
}

.code-output pre {
    margin: 0;
    padding: 0;
    background: transparent;
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #334155;
    white-space: pre;
    overflow-x: auto;
}

/* DataFrame output styling */
.dataframe-output {
    border-left-color: #6366f1;
    overflow-x: auto;
}

.dataframe-output table {
    border-collapse: collapse;
    font-size: 0.85rem;
    width: auto;
    margin: 0;
}

.dataframe-output th,
.dataframe-output td {
    padding: 0.5rem 0.75rem;
    border: 1px solid #e2e8f0;
    text-align: left;
}

.dataframe-output th {
    background: #f1f5f9;
    font-weight: 600;
    color: #475569;
}

.dataframe-output tr:nth-child(even) {
    background: #f8fafc;
}

.dataframe-output tr:hover {
    background: #e0f2fe;
}

/* Error output styling */
.error-output {
    background: #fef2f2;
    border-color: #fecaca;
    border-left-color: #ef4444;
}

.error-output pre {
    color: #991b1b;
}

/* ==========================================================================
   Jupyter Notebook Styling
   ========================================================================== */

.jupyter-notebook {
    margin: 1.5rem 0;
}

.jupyter-cell {
    margin-bottom: 1.5rem;
}

.jupyter-cell .highlight {
    margin-bottom: 0;
    border-radius: 0.75rem 0.75rem 0 0;
}

.jupyter-cell .code-output {
    margin-top: 0;
    border-radius: 0 0 0.75rem 0.75rem;
    border-top: none;
}

.jupyter-cell .code-output::before {
    display: none;
}

.jupyter-input {
    position: relative;
}

.jupyter-input::before {
    content: "In [ ]:";
    position: absolute;
    left: -3.5rem;
    top: 1rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem;
    color: #6366f1;
    font-weight: 600;
}

.jupyter-markdown {
    margin-bottom: 1rem;
}

.jupyter-image {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
    margin: 0.5rem 0;
}

/* Dark mode support for outputs */
@media (prefers-color-scheme: dark) {
    .code-output {
        background: #1e293b;
        border-color: #334155;
    }

    .code-output pre {
        color: #e2e8f0;
    }

    .dataframe-output th {
        background: #334155;
        color: #e2e8f0;
    }

    .dataframe-output td {
        border-color: #475569;
    }

    .dataframe-output tr:nth-child(even) {
        background: #1e293b;
    }

    .dataframe-output tr:hover {
        background: #334155;
    }
}
