/* Inline Code */
.prose code {
    background-color: #e5e5e5;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.875rem;
    color: #171717;
    font-family: "JetBrains Mono", "Courier New", monospace;
}

:is(.dark *) .prose code {
    background-color: #262626;
    color: #fafafa;
}

/* Code Blocks */
.prose pre {
    background-color: #1e1e1e;
    color: #d4d4d4;
    padding: 1rem;
    border-radius: 0;
    margin-bottom: 1rem;
    overflow-x: auto;
    border: 1px solid #404040;
}

:is(.dark *) .prose pre {
    background-color: #0d0d0d;
    border-color: #262626;
}

.prose pre code {
    background-color: #1e1e1e;
    padding: 0;
    color: #d4d4d4;
    font-size: 0.875rem;
    line-height: 1.6;
}

:is(.dark *) .prose pre code {
    background-color: #0d0d0d;
    color: #d4d4d4;
}

/* Code Block Wrapper with Copy Button */
.code-block-wrapper {
    position: relative;
    margin-bottom: 1.5rem;
    border: 1px solid #404040;
    background-color: #1e1e1e;
}

:is(.dark *) .code-block-wrapper {
    border-color: #262626;
    background-color: #0d0d0d;
}

.code-block-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #2a2a2a;
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #404040;
}

:is(.dark *) .code-block-header {
    background-color: #1a1a1a;
    border-bottom-color: #262626;
}

.code-language {
    font-size: 0.7rem;
    font-weight: 600;
    color: #a3a3a3;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: "JetBrains Mono", "Courier New", monospace;
}

:is(.dark *) .code-language {
    color: #8a8a8a;
}

.copy-button {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.5rem;
    background-color: #404040;
    border: 1px solid #525252;
    color: #e5e5e5;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    transition: all 0.2s;
    cursor: pointer;
    border-radius: 2px;
}

:is(.dark *) .copy-button {
    background-color: #262626;
    border-color: #404040;
    color: #d4d4d4;
}

.copy-button:hover {
    background-color: #f97316;
    color: white;
    border-color: #f97316;
}

.copy-button svg {
    width: 14px;
    height: 14px;
}

.code-block-wrapper pre {
    margin: 0;
    border-radius: 0;
    border: none;
    background-color: transparent;
}

.code-block-wrapper code {
    display: block;
    padding: 1rem;
    color: #d4d4d4;
}

:is(.dark *) .code-block-wrapper code {
    color: #d4d4d4;
}

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