/* ════════════════════════════════════════════════════════════════
   MDLab — rendered markdown styles (.doc-view .md)
   Goal: render EVERYTHING faithfully. Nothing collapsed or hidden.
   ════════════════════════════════════════════════════════════════ */
.md {
  font-family: var(--font-display);
  font-size: 15.5px;
  line-height: 1.72;
  color: var(--text-1);
  word-wrap: break-word;
}
.md > *:first-child { margin-top: 0; }

/* Headings */
.md h1, .md h2, .md h3, .md h4, .md h5, .md h6 {
  font-family: var(--font-display); color: var(--text-strong);
  line-height: 1.25; margin: 1.9em 0 .7em; font-weight: 800;
  scroll-margin-top: 16px;
}
.md h1 { font-size: 2em; letter-spacing: -1px; padding-bottom: .3em; border-bottom: 1px solid var(--border-c); }
.md h2 { font-size: 1.55em; letter-spacing: -.5px; padding-bottom: .25em; border-bottom: 1px solid var(--border-c); }
.md h3 { font-size: 1.28em; }
.md h4 { font-size: 1.1em; font-weight: 700; }
.md h5 { font-size: 1em; font-weight: 700; }
.md h6 { font-size: .9em; font-weight: 700; color: var(--text-2); }
.md h1:first-child, .md h2:first-child { margin-top: .2em; }

/* Text */
.md p { margin: 0 0 1.05em; }
.md a { color: var(--blue-primary); text-decoration: none; border-bottom: 1px solid transparent; }
.md a:hover { border-bottom-color: var(--blue-primary); }
.md strong { color: var(--text-strong); font-weight: 700; }
.md em { font-style: italic; }
.md del { color: var(--text-2); }
.md hr { border: none; border-top: 1px solid var(--border-c); margin: 2em 0; }

/* Lists */
.md ul, .md ol { margin: 0 0 1.05em; padding-left: 1.6em; }
.md li { margin: .3em 0; }
.md li > ul, .md li > ol { margin: .3em 0; }
.md li::marker { color: var(--blue-primary); }
.md ul.contains-task-list { list-style: none; padding-left: .4em; }
.md .task-list-item { display: flex; align-items: baseline; gap: .55em; }
.md .task-list-item input { margin: 0; transform: translateY(1px); accent-color: var(--blue-primary); }

/* Blockquote */
.md blockquote {
  margin: 0 0 1.05em; padding: .4em 1.1em;
  border-left: 4px solid var(--blue-primary);
  background: var(--blue-pale); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--text-2);
}
.md blockquote p:last-child { margin-bottom: 0; }

/* Inline code */
.md code {
  font-family: var(--font-mono); font-size: .86em;
  background: var(--surface-3); color: var(--blue-mid);
  padding: .15em .4em; border-radius: 5px;
}
[data-theme="dark"] .md code { color: #8fd0f0; }

/* Code blocks — full, never truncated, horizontal scroll preserved */
.md pre {
  margin: 0 0 1.2em; padding: 16px 18px;
  background: #0f1b29; color: #e6edf3;
  border: 1px solid var(--border-c); border-radius: var(--radius-md);
  overflow: auto; line-height: 1.55;
}
.md pre code { background: none; color: inherit; padding: 0; font-size: 13.5px; white-space: pre; }
.md pre.hljs { background: #0f1b29; }

/* Tables (GFM) */
.md table { border-collapse: collapse; margin: 0 0 1.2em; width: 100%; font-size: .95em; display: block; overflow-x: auto; }
.md th, .md td { border: 1px solid var(--border-c); padding: 8px 13px; text-align: left; }
.md th { background: var(--surface-3); color: var(--text-strong); font-weight: 700; }
.md tr:nth-child(even) td { background: var(--surface-2); }

/* Images */
.md img { max-width: 100%; border-radius: var(--radius-sm); margin: .4em 0; }

/* Definition lists */
.md dl dt { font-weight: 700; color: var(--text-strong); margin-top: .8em; }
.md dl dd { margin: .2em 0 .2em 1.4em; color: var(--text-2); }

/* Footnotes */
.md .footnotes { margin-top: 2.4em; padding-top: 1.2em; border-top: 1px solid var(--border-c); font-size: .9em; color: var(--text-2); }

/* Mermaid diagrams */
.md .mermaid { margin: 0 0 1.2em; text-align: center; background: var(--surface); padding: 8px; border-radius: var(--radius-md); }
.md .mermaid svg { max-width: 100%; height: auto; display: inline-block; }

/* KaTeX */
.md .katex-display { overflow-x: auto; overflow-y: hidden; padding: 4px 0; }

/* Anchored heading ids */
.md :target { animation: targetFlash 1.4s ease; }
@keyframes targetFlash { 0% { background: var(--accent-light); } 100% { background: transparent; } }
