/* Markdown Content Styles - Integrated with C2C Theme */

.markdown-content {
    /* Base typography and layout */
    line-height: 1.8;
    font-family: var(--font-sans);
    color: var(--color-text);
}

.markdown-content> :first-child {
    margin-top: 0;
}

.markdown-content> :last-child {
    margin-bottom: 0;
}

/* Headings */
.markdown-content h1,
.markdown-content h2,
.markdown-content h3,
.markdown-content h4,
.markdown-content h5,
.markdown-content h6 {
    margin: 1.5em 0 0.5em 0;
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text);
    border-bottom: none;
}

.markdown-content h1 {
    font-size: 2.2em;
    border-bottom: 2px solid var(--color-border);
    padding-bottom: 0.3em;
    margin-top: 0.5em;
}

.markdown-content h2 {
    font-size: 1.8em;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0.2em;
    margin-top: 0.8em;
}

.markdown-content h3 {
    font-size: 1.5em;
    margin-top: 0.6em;
}

.markdown-content h4 {
    font-size: 1.25em;
}

.markdown-content h5 {
    font-size: 1.1em;
}

.markdown-content h6 {
    font-size: 1em;
    color: var(--color-text-muted);
}

/* Paragraphs and text */
.markdown-content p {
    margin: 0.8em 0;
    color: var(--color-text);
}

/* Emphasis and strong */
.markdown-content em,
.markdown-content i {
    font-style: italic;
}

.markdown-content strong,
.markdown-content b {
    font-weight: 600;
    color: var(--color-text);
}

.markdown-content del {
    text-decoration: line-through;
    color: var(--color-text-muted);
}

/* Mark/Highlight */
.markdown-content mark {
    background-color: var(--color-warning);
    color: #1a1a1a;
    /* Keep dark text on bright warning color */
    padding: 0.2em 0.4em;
    border-radius: 3px;
}

/* Inserted text */
.markdown-content ins {
    background-color: var(--color-success);
    color: #fff;
    text-decoration: none;
    padding: 0.2em 0.4em;
    border-radius: 3px;
}

/* Subscript and Superscript */
.markdown-content sub,
.markdown-content sup {
    font-size: 0.8em;
    vertical-align: baseline;
    position: relative;
    color: var(--color-text);
}

.markdown-content sup {
    top: -0.5em;
}

.markdown-content sub {
    bottom: -0.25em;
}

/* Links */
.markdown-content a {
    color: var(--color-accent);
    text-decoration: none;
    border-bottom: 1px solid color-mix(in srgb, var(--color-accent), transparent 70%);
    transition: all 0.2s ease;
}

.markdown-content a:hover {
    color: var(--color-accent-hover);
    border-bottom-color: var(--color-accent);
    text-decoration: underline;
}

.markdown-content a:active {
    color: var(--color-accent-hover);
}

/* Lists */
.markdown-content ul,
.markdown-content ol {
    margin: 0.8em 0;
    padding-left: 2em;
    color: var(--color-text);
}

.markdown-content li {
    margin: 0.4em 0;
    color: var(--color-text);
}

.markdown-content li>p {
    margin: 0.2em 0;
}

.markdown-content li>ul,
.markdown-content li>ol {
    margin: 0.2em 0;
}

.markdown-content ul>li::marker {
    color: var(--color-text-muted);
}

.markdown-content ol>li::marker {
    color: var(--color-text-muted);
    font-weight: 600;
}

/* Blockquotes */
.markdown-content blockquote {
    margin: 0.8em 0;
    padding: 0.8em 1.2em;
    border-left: 4px solid var(--color-accent);
    background-color: var(--color-bg-elevated);
    color: var(--color-text-muted);
    font-style: italic;
}

.markdown-content blockquote> :first-child {
    margin-top: 0;
}

.markdown-content blockquote> :last-child {
    margin-bottom: 0;
}

/* Definition lists */
.markdown-content dt {
    font-weight: 600;
    margin-top: 0.5em;
    color: var(--color-text);
}

.markdown-content dd {
    margin-left: 1.5em;
    margin-bottom: 0.5em;
    color: var(--color-text);
}

/* Horizontal rules */
.markdown-content hr {
    margin: 2em 0;
    border: none;
    border-top: 2px solid var(--color-border);
}

/* Code Block Styling */

/* Inline Code - Applies to code tags NOT inside pre tags */
.markdown-content :not(pre)>code {
    background-color: var(--color-bg-elevated);
    color: var(--color-accent);
    padding: 0.2em 0.4em;
    border-radius: 4px;
    font-family: var(--font-mono);
    font-size: 0.85em;
    border: 1px solid var(--color-border);
    vertical-align: middle;
}

/* Block Code - Wrapper (pre) */
.markdown-content pre {
    background-color: #f8f9fa;
    /* Light Mode Background */
    color: #111827;
    padding: 1.1rem;
    border-radius: 8px;
    overflow-x: auto;
    margin: 1.5em 0;
    font-family: var(--font-mono);
    font-size: 0.9em;
    line-height: 1.5;
    border: 1px solid #d1d5db;
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Inner Code Reset - Force transparent to avoid 'box in box' from hljs */
.markdown-content pre code,
.markdown-content pre .hljs {
    background-color: transparent !important;
    color: inherit !important;
    padding: 0 !important;
    border: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    font-family: inherit;
    font-size: inherit;
    box-shadow: none !important;
    white-space: inherit;
    /* Handle wrapping if needed */
}

/* =========================================
   C2C Code Wrapper Integration 
   Fixes "Box within a Box" by merging Header + Pre
   ========================================= */

/* The Outer Container - Take over border & radius */
.c2c-code-wrapper {
    margin: 1.5em 0;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background-color: #f8f9fa;
    /* Light Mode Bg */
    overflow: hidden;
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

/* Header Styling */
.c2c-code-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 1rem;
    background-color: #f8f9fa;
    /* Seamless with pre in light mode */
    border-bottom: 1px solid #d1d5db;
    font-family: var(--font-sans);
    color: #4b5563;
    font-size: 0.85em;
    user-select: none;
}

.c2c-lang-name {
    font-weight: 700;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Actions Container */
.c2c-code-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

/* Action Buttons */
.c2c-action-btn {
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: none;
    color: #4b5563;
    cursor: pointer;
    font-size: 0.75rem;
    padding: 2px 6px;
    border-radius: 4px;
    transition: color 0.2s, background 0.2s;
}

.c2c-action-btn:hover {
    color: #111827;
    background-color: rgba(0, 0, 0, 0.06);
}

/* Reset PRE when inside Wrapper */
.c2c-code-wrapper pre,
.markdown-content .c2c-code-wrapper pre {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    /* Let wrapper bg show */
    box-shadow: none !important;
    padding: 1rem 1.1rem;
}

/* Hide default pseudo-element badge if inside wrapper */
.c2c-code-wrapper pre[class*="language-"]::before {
    display: none !important;
}

/* Dark Mode Overrides for Wrapper */
body.theme-dark .c2c-code-wrapper {
    background-color: #161b22;
    border-color: #30363d;
}

body.theme-dark .c2c-code-header {
    background-color: #161b22;
    /* Seamless */
    border-bottom-color: #30363d;
    color: #8b949e;
}

body.theme-dark .c2c-action-btn {
    color: #8b949e;
}

body.theme-dark .c2c-action-btn:hover {
    color: #c9d1d9;
    background-color: rgba(255, 255, 255, 0.1);
}

/* Language Badge - Clean Tag Style */
/* Language Badge - Minimal (Text Only) */
.markdown-content pre[class*="language-"]::before {
    content: attr(data-lang);
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.4em 0.8em;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #6b7280;
    background-color: transparent;
    border: none;
    z-index: 5;
    font-family: var(--font-sans);
    letter-spacing: 0.05em;
    opacity: 0.8;
}

body.theme-dark .markdown-content pre[class*="language-"]::before {
    color: #94a3b8;
    background-color: transparent;
    border: none;
}

/* Dark Mode Overrides */
body.theme-dark .markdown-content pre {
    background-color: #161b22;
    color: #c9d1d9;
    border-color: #30363d;
}

/* Syntax Highlighting - Light Mode (GitHub Light inspired) */
/* Support for both HLJS and PrismJS (.token) */
.markdown-content pre code .hljs-comment,
.markdown-content pre code .hljs-quote,
.markdown-content pre code .token.comment,
.markdown-content pre code .token.prolog,
.markdown-content pre code .token.doctype,
.markdown-content pre code .token.cdata {
    color: #6b7280;
    font-style: italic;
}

.markdown-content pre code .hljs-keyword,
.markdown-content pre code .hljs-selector-tag,
.markdown-content pre code .token.keyword,
.markdown-content pre code .token.atrule {
    color: #cf222e;
}

.markdown-content pre code .hljs-string,
.markdown-content pre code .hljs-doctag,
.markdown-content pre code .token.string,
.markdown-content pre code .token.attr-value {
    color: #0a3069;
}

.markdown-content pre code .hljs-title,
.markdown-content pre code .hljs-section,
.markdown-content pre code .token.title,
.markdown-content pre code .token.important,
.markdown-content pre code .token.bold {
    color: #953800;
    font-weight: 600;
}

.markdown-content pre code .hljs-function,
.markdown-content pre code .token.function,
.markdown-content pre code .token.method {
    color: #8250df;
    /* Vivid Purple for functions/methods */
}

.markdown-content pre code .hljs-variable,
.markdown-content pre code .token.variable,
.markdown-content pre code .token.property,
.markdown-content pre code .token.constant,
.markdown-content pre code .token.symbol {
    color: #0550ae;
}

.markdown-content pre code .hljs-literal,
.markdown-content pre code .token.boolean,
.markdown-content pre code .token.number,
.markdown-content pre code .token.tag,
.markdown-content pre code .token.deleted {
    color: #0550ae;
}

.markdown-content pre code .hljs-class,
.markdown-content pre code .token.class-name,
.markdown-content pre code .token.builtin,
.markdown-content pre code .token.char,
.markdown-content pre code .token.inserted {
    color: #953800;
}

.markdown-content pre code .hljs-attr,
.markdown-content pre code .token.attr-name,
.markdown-content pre code .token.selector {
    color: #0550ae;
}

.markdown-content pre code .hljs-built_in {
    color: #0550ae;
}

.markdown-content pre code .hljs-params,
.markdown-content pre code .token.parameter {
    color: #1f2937;
}

.markdown-content pre code .token.punctuation,
.markdown-content pre code .token.operator {
    color: #1f2937;
}

/* Syntax Highlighting - Dark Mode (GitHub Dark inspired) */
body.theme-dark .markdown-content pre code .hljs-comment,
body.theme-dark .markdown-content pre code .hljs-quote,
body.theme-dark .markdown-content pre code .token.comment,
body.theme-dark .markdown-content pre code .token.prolog,
body.theme-dark .markdown-content pre code .token.doctype,
body.theme-dark .markdown-content pre code .token.cdata {
    color: #8b949e;
}

body.theme-dark .markdown-content pre code .hljs-keyword,
body.theme-dark .markdown-content pre code .hljs-selector-tag,
body.theme-dark .markdown-content pre code .token.keyword,
body.theme-dark .markdown-content pre code .token.atrule {
    color: #ff7b72;
}

body.theme-dark .markdown-content pre code .hljs-string,
body.theme-dark .markdown-content pre code .hljs-doctag,
body.theme-dark .markdown-content pre code .token.string,
body.theme-dark .markdown-content pre code .token.attr-value {
    color: #a5d6ff;
}

body.theme-dark .markdown-content pre code .hljs-title,
body.theme-dark .markdown-content pre code .hljs-section,
body.theme-dark .markdown-content pre code .token.title,
body.theme-dark .markdown-content pre code .token.important,
body.theme-dark .markdown-content pre code .token.bold {
    color: #d2a8ff;
    font-weight: 600;
}

body.theme-dark .markdown-content pre code .hljs-function,
body.theme-dark .markdown-content pre code .token.function,
body.theme-dark .markdown-content pre code .token.method {
    color: #d2a8ff;
}

body.theme-dark .markdown-content pre code .hljs-variable,
body.theme-dark .markdown-content pre code .token.variable,
body.theme-dark .markdown-content pre code .token.property,
body.theme-dark .markdown-content pre code .token.constant,
body.theme-dark .markdown-content pre code .token.symbol {
    color: #79c0ff;
}

body.theme-dark .markdown-content pre code .hljs-literal,
body.theme-dark .markdown-content pre code .token.boolean,
body.theme-dark .markdown-content pre code .token.number,
body.theme-dark .markdown-content pre code .token.tag,
body.theme-dark .markdown-content pre code .token.deleted {
    color: #79c0ff;
}

body.theme-dark .markdown-content pre code .hljs-class,
body.theme-dark .markdown-content pre code .token.class-name,
body.theme-dark .markdown-content pre code .token.builtin,
body.theme-dark .markdown-content pre code .token.char,
body.theme-dark .markdown-content pre code .token.inserted {
    color: #d2a8ff;
}

body.theme-dark .markdown-content pre code .hljs-attr,
body.theme-dark .markdown-content pre code .token.attr-name,
body.theme-dark .markdown-content pre code .token.selector {
    color: #79c0ff;
}

body.theme-dark .markdown-content pre code .hljs-built_in {
    color: #79c0ff;
}

body.theme-dark .markdown-content pre code .hljs-params,
body.theme-dark .markdown-content pre code .token.parameter {
    color: #c9d1d9;
}

body.theme-dark .markdown-content pre code .token.punctuation,
body.theme-dark .markdown-content pre code .token.operator {
    color: #c9d1d9;
}

/* Tables - Responsive wrapper */
.markdown-content table {
    border-collapse: collapse;
    width: 100%;
    margin: 1em 0;
    font-size: 0.95em;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
    /* display: block;  <-- REMOVED for desktop to fix layout */
    /* overflow-x: auto; <-- REMOVED for desktop */
}

.markdown-content table thead {
    background-color: var(--color-bg-elevated);
    border-bottom: 2px solid var(--color-border);
}

.markdown-content table th {
    padding: 0.9em 1em;
    font-weight: 600;
    color: var(--color-text);
    text-align: left;
    white-space: normal;
    /* Allow headers to wrap */
}

.markdown-content table td {
    padding: 0.8em 1em;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text) !important;
    white-space: normal;
    /* Allow content to wrap */
}

.markdown-content table tbody tr:nth-child(even) {
    background-color: var(--color-bg-hover);
}

.markdown-content table tbody tr:hover {
    background-color: var(--color-bg-elevated);
}

/* Table alignment */
.markdown-content table th[style*="text-align: right"],
.markdown-content table td[style*="text-align: right"] {
    text-align: right;
}

.markdown-content table th[style*="text-align: center"],
.markdown-content table td[style*="text-align: center"] {
    text-align: center;
}

/* Images - Nice and clean size */
.markdown-content img {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
    margin: 1.2em auto;
    border-radius: 6px;
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-md);
    background-color: #fff;
    /* Always white bg for images */
    padding: 3px;
    transition: all 0.2s ease;
}

.markdown-content img:hover {
    box-shadow: var(--shadow-lg);
    border-color: var(--color-accent);
}

/* Image container for better layout */
.markdown-content picture {
    text-align: center;
}

/* Image captions */
.markdown-content img+em {
    display: block;
    text-align: center;
    font-size: 0.9em;
    color: var(--color-text-muted);
    margin: 0.8em 0 1.5em 0;
    font-weight: 500;
}

/* Better image wrapper styling */
.markdown-content figure {
    margin: 1.5em 0;
    text-align: center;
}

.markdown-content figcaption {
    font-size: 0.9em;
    color: var(--color-text-muted);
    margin-top: 0.8em;
    font-weight: 500;
}

/* Mermaid diagram container */
.markdown-content .mermaid {
    background: var(--color-bg-elevated);
    padding: 1.5em;
    border-radius: 8px;
    overflow-x: auto;
    margin: 1.5em 0;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 300px;
    border: 2px solid var(--color-border);
    box-shadow: var(--shadow-sm);
    min-width: 0;
    /* Fix for Safari flex items */
}

.markdown-content .mermaid svg {
    max-width: 100%;
    height: auto;
}

/* Abbreviations */
.markdown-content abbr {
    border-bottom: 1px dotted var(--color-border);
    cursor: help;
    text-decoration: none;
}

/* Footnotes */
.markdown-content .footnote-ref {
    font-size: 0.85em;
    vertical-align: super;
}

.markdown-content .footnote-backref {
    text-decoration: none;
    margin-left: 0.5em;
    color: var(--color-accent);
}

.markdown-content .footnotes {
    margin-top: 2em;
    padding-top: 1em;
    border-top: 1px solid var(--color-border);
    font-size: 0.9em;
    color: var(--color-text-muted);
}

.markdown-content .footnotes ol {
    margin: 0.5em 0;
    padding-left: 1.5em;
}

.markdown-content .footnotes li {
    margin: 0.3em 0;
}

/* Container/Alert boxes */
.markdown-content .container {
    padding: 1em;
    margin: 1em 0;
    border-radius: 6px;
    border-left: 4px solid var(--color-border);
}

.markdown-content .container.warning {
    background-color: rgba(245, 158, 11, 0.1);
    border-left-color: var(--color-warning);
    color: var(--color-text);
}

.markdown-content .container.danger {
    background-color: rgba(239, 68, 68, 0.1);
    border-left-color: var(--color-danger);
    color: var(--color-text);
}

.markdown-content .container.info {
    background-color: rgba(37, 99, 235, 0.1);
    border-left-color: var(--color-accent);
    color: var(--color-text);
}

.markdown-content .container.success {
    background-color: rgba(16, 185, 129, 0.1);
    border-left-color: var(--color-success);
    color: var(--color-text);
}

/* Inline HTML handling */
.markdown-content iframe {
    max-width: 100%;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    margin: 1em 0;
}

.markdown-content video,
.markdown-content audio {
    max-width: 100%;
    margin: 1em 0;
    border-radius: 6px;
}

/* Print styles */
@media print {
    .markdown-content {
        color: #000;
    }

    .markdown-content a {
        color: #0066cc;
        text-decoration: underline;
    }

    .markdown-content code {
        background-color: transparent;
        border: 1px solid #ccc;
        color: #000;
    }

    .markdown-content pre {
        background-color: transparent;
        border: 1px solid #ccc;
        color: #000;
    }

    .markdown-content .mermaid {
        page-break-inside: avoid;
    }

    .markdown-content img {
        page-break-inside: avoid;
    }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .markdown-content {
        font-size: 0.95em;
    }

    .markdown-content h1 {
        font-size: 1.8em;
    }

    .markdown-content h2 {
        font-size: 1.5em;
    }

    .markdown-content h3 {
        font-size: 1.25em;
    }

    .markdown-content table {
        font-size: 0.85em;
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .markdown-content table th,
    .markdown-content table td {
        padding: 0.6em 0.8em;
    }

    .markdown-content pre {
        padding: 0.8em;
        font-size: 0.85em;
    }

    .markdown-content .mermaid {
        padding: 1em;
        min-height: 200px;
    }

    .markdown-content ul,
    .markdown-content ol {
        padding-left: 1.5em;
    }

    /* Ensure images are prominent on mobile */
    .markdown-content img {
        margin: 1.2em auto;
        border-radius: 6px;
    }

    .markdown-content img+em {
        margin: 0.6em 0 1.2em 0;
    }
}