.prose {
  line-height:1.8;
  overflow-wrap:anywhere;
  min-width:0;
}

.prose p,.prose ul,.prose ol,.prose blockquote,.prose dl {
  margin:0 0 1.3em;
}

.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6 {
  margin:1.8em 0 .8em;
  scroll-margin-top:24px;
}

.prose h1 {
  font-size:29px;
}

.prose h2 {
  font-size:24px;
}

.prose h3 {
  font-size:20px;
}

.prose a {
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:4px;
}

.prose img {
  max-height:650px;
  height:auto;
  margin:24px auto;
  border-radius:4px;
}

.prose blockquote {
  border-left:3px solid #d6e1dc;
  padding:4px 0 4px 20px;
  color:var(--muted);
}

.prose blockquote p:last-child {
  margin-bottom:0;
}

.prose hr {
  border:0;
  border-top:1px solid var(--line);
  margin:36px 0;
}

.prose code {
  font:13px/1.7 Consolas,"SFMono-Regular",monospace;
  background:#f3f5f5;
  padding:3px 5px;
  border-radius:3px;
}

.prose pre {
  position:relative;
  overflow-x:auto;
  max-width:100%;
  padding:22px 20px;
  margin:24px 0;
  background:#f7f8f9;
  border:1px solid var(--line);
  border-radius:5px;
  line-height:1.7;
  white-space:pre;
  overflow-wrap:normal;
  tab-size:4;
}

.prose pre code {
  padding:0;
  background:transparent;
  white-space:pre;
}

.prose .codehilite {
  position:relative;
  min-width:0;
}

.prose .codehilite pre {
  padding-top:45px;
}

.copy-code {
  position:absolute;
  right:8px;
  top:7px;
  z-index:1;
  border:1px solid #dfe4e6;
  background:#fff;
  border-radius:4px;
  padding:2px 9px;
  color:var(--muted);
  font-size:11px;
}

.copy-code:hover {
  color:var(--accent);
}

.prose table {
  display:block;
  overflow-x:auto;
  max-width:100%;
  border-collapse:collapse;
  margin:24px 0;
  font-size:14px;
  white-space:nowrap;
}

.prose th,.prose td {
  border:1px solid var(--line);
  padding:9px 14px;
  text-align:left;
}

.prose th {
  background:var(--soft);
  font-weight:500;
}

.prose .toc {
  border:1px solid var(--line);
  border-radius:5px;
  padding:20px 24px;
  margin:24px 0;
  font-size:14px;
}

.prose .toc ul {
  margin:12px 0 0;
  padding-left:20px;
}

.prose .toctitle {
  font-weight:600;
}

.prose mjx-container[display=true] {
  display:block;
  overflow-x:auto;
  overflow-y:hidden;
  max-width:100%;
  padding-block:8px;
}

.prose .mermaid-diagram {
  margin:24px 0;
  padding:16px;
  overflow-x:auto;
  background:#fff;
  color:#222;
  border:1px solid var(--line);
  border-radius:5px;
  text-align:center;
}

.prose .mermaid-diagram svg {
  height:auto;
}

.prose .diagram-error {
  font-size:14px;
}

.prose> :first-child {
  margin-top:0;
}

.prose> :last-child {
  margin-bottom:0;
}
