/* Markdown rendering styles for .markdown-render (AI content viewer).
   Tokens only — OKLCH daisyUI vars, no hex, no arbitrary sizes. */

.markdown-render {
    color: var(--color-base-content);
    font-size: 0.875rem;
    line-height: 1.75;
    word-break: break-word;
}

.markdown-render > :first-child { margin-top: 0 !important; }
.markdown-render > :last-child { margin-bottom: 0 !important; }

.markdown-render h1,
.markdown-render h2,
.markdown-render h3,
.markdown-render h4,
.markdown-render h5,
.markdown-render h6 {
    font-weight: 800;
    line-height: 1.3;
    margin: 1.4em 0 0.6em;
    color: inherit;
    scroll-margin-top: 5.5rem;
}

.markdown-render h1 { font-size: 1.4rem; }
.markdown-render h2 { font-size: 1.25rem; }
.markdown-render h3 { font-size: 1.1rem; }
.markdown-render h4 { font-size: 1rem; }
.markdown-render h5,
.markdown-render h6 { font-size: 0.9rem; }

.markdown-render p { margin: 0.6em 0; }
.markdown-render ul,
.markdown-render ol { margin: 0.6em 0; padding-left: 1.5em; }
.markdown-render ul { list-style: disc; }
.markdown-render ol { list-style: decimal; }
.markdown-render li { margin: 0.25em 0; }

.markdown-render blockquote {
    border-left: 3px solid color-mix(in oklab, var(--color-primary) 50%, transparent);
    padding: 0.25em 0 0.25em 1em;
    margin: 0.8em 0;
    color: color-mix(in oklab, var(--color-base-content) 70%, transparent);
}

.markdown-render code {
    background: color-mix(in oklab, var(--color-base-content) 8%, transparent);
    border-radius: 0.375rem;
    padding: 0.15em 0.4em;
    font-size: 0.85em;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.markdown-render pre {
    background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
    border-radius: 0.75rem;
    padding: 1em;
    overflow-x: auto;
    margin: 0.8em 0;
}

.markdown-render pre code {
    background: transparent;
    padding: 0;
}

.markdown-render a {
    color: var(--color-primary);
    text-decoration: underline;
}

.markdown-render img {
    max-width: 100%;
    height: auto;
    border-radius: 0.75rem;
    margin: 0.6em 0;
}

.markdown-render table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.8em 0;
    font-size: 0.85em;
}

.markdown-render th,
.markdown-render td {
    border: 1px solid color-mix(in oklab, var(--color-base-content) 15%, transparent);
    padding: 0.45em 0.7em;
    text-align: left;
}

.markdown-render th {
    background: color-mix(in oklab, var(--color-base-content) 6%, transparent);
    font-weight: 700;
}

.markdown-render hr {
    border: 0;
    border-top: 1px solid color-mix(in oklab, var(--color-base-content) 15%, transparent);
    margin: 1.4em 0;
}

/* ── KaTeX inline math inside titles and markdown content ────────────────
   KaTeX 0.16 .base rows are inline-block + white-space:nowrap, but the
   .katex-html container allows them to wrap individually — on a narrow
   heading the formula breaks mid-way (ax^2 + / bx + / c). Keeping the
   whole formula as one non-breaking unit fixes the stacked look; very
   long formulas scroll horizontally instead of blowing out the layout. */
.markdown-render .katex-html,
.math-text .katex-html {
    white-space: nowrap;
}

.markdown-render .katex,
.math-text .katex {
    font-size: 1.05em;
    letter-spacing: normal;
    font-weight: 400;
    vertical-align: baseline;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
}

/* Display math: never blow out the layout on mobile — scroll horizontally */
.markdown-render .katex-display,
.math-text .katex-display {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.25em 0;
    margin: 0.5em 0;
}

.markdown-img-fallback {
    display: block;
    font-size: 0.8rem;
    font-style: italic;
    opacity: 0.6;
}
