/*
 * GitHub Markdown Styles - Unified Light/Dark
 * Based on github-markdown-css. Uses CSS custom properties for theming.
 * Dark mode activates via .dark ancestor class.
 * Stripped of GitHub-specific classes (pl-*, octicon, csv-data, etc.)
 * unused by CommonMarker rendering.
 */

/* ---- Theme Variables ---- */

.markdown-body {
  --md-fg-default: #1f2328;
  --md-fg-muted: #656d76;
  --md-fg-subtle: #6e7781;
  --md-bg-default: #fff;
  --md-bg-subtle: #f6f8fa;
  --md-bg-canvas: #fff;
  --md-border-default: #d7dde3;
  --md-border-muted: #d0d7de;
  --md-accent-fg: #0969da;
  --md-accent-emphasis: #0969da;
  --md-danger-fg: #d1242f;
  --md-mark-bg: #fff8c5;
  --md-code-bg: rgba(175, 184, 193, 0.2);
  --md-alert-note-border: #0969da;
  --md-alert-note-fg: #0969da;
  --md-alert-important-border: #8250df;
  --md-alert-important-fg: #8250df;
  --md-alert-warning-border: #9a6700;
  --md-alert-warning-fg: #9a6700;
  --md-alert-tip-border: #1f883d;
  --md-alert-tip-fg: #1a7f37;
  --md-alert-caution-border: #cf222e;
  --md-alert-caution-fg: #d1242f;
}

.dark .markdown-body {
  color-scheme: dark;
  --md-fg-default: #e6edf3;
  --md-fg-muted: #848d97;
  --md-fg-subtle: #6e7681;
  --md-bg-default: #1f2937;
  --md-bg-subtle: #161b22;
  --md-bg-canvas: #0d1117;
  --md-border-default: #21262d;
  --md-border-muted: #30363d;
  --md-accent-fg: #2f81f7;
  --md-accent-emphasis: #1f6feb;
  --md-danger-fg: #f85149;
  --md-mark-bg: rgba(187, 128, 9, 0.15);
  --md-code-bg: rgba(110, 118, 129, 0.4);
  --md-alert-note-border: #1f6feb;
  --md-alert-note-fg: #2f81f7;
  --md-alert-important-border: #8957e5;
  --md-alert-important-fg: #a371f7;
  --md-alert-warning-border: #9e6a03;
  --md-alert-warning-fg: #d29922;
  --md-alert-tip-border: #238636;
  --md-alert-tip-fg: #3fb950;
  --md-alert-caution-border: #da3633;
  --md-alert-caution-fg: #f85149;
}

/* ---- Base ---- */

.markdown-body {
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  color: var(--md-fg-default);
  background-color: var(--md-bg-default);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
    Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body > :first-child {
  margin-top: 0 !important;
}

.markdown-body > :last-child {
  margin-bottom: 0 !important;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body details:not([open]) > :not(summary) {
  display: none !important;
}

/* ---- Typography ---- */

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h1 {
  margin: 0.67em 0;
  padding-bottom: 0.3em;
  font-size: 2em;
  border-bottom: 1px solid var(--md-border-default);
}

.markdown-body h2 {
  padding-bottom: 0.3em;
  font-size: 1.5em;
  border-bottom: 1px solid var(--md-border-default);
}

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

.markdown-body h4 {
  font-size: 1em;
}

.markdown-body h5 {
  font-size: 0.875em;
}

.markdown-body h6 {
  font-size: 0.85em;
  color: var(--md-fg-muted);
}

.markdown-body h1 code, .markdown-body h1 tt,
.markdown-body h2 code, .markdown-body h2 tt,
.markdown-body h3 code, .markdown-body h3 tt,
.markdown-body h4 code, .markdown-body h4 tt,
.markdown-body h5 code, .markdown-body h5 tt,
.markdown-body h6 code, .markdown-body h6 tt {
  padding: 0 0.2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body b,
.markdown-body strong {
  font-weight: 600;
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

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

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

.markdown-body mark {
  background-color: var(--md-mark-bg);
  color: var(--md-fg-default);
}

.markdown-body abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/* ---- Links ---- */

.markdown-body a {
  background-color: transparent;
  color: var(--md-accent-fg);
  text-decoration: none;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

/* ---- Focus ---- */

.markdown-body [role="button"]:focus,
.markdown-body a:focus,
.markdown-body input[type="checkbox"]:focus,
.markdown-body input[type="radio"]:focus {
  outline: 2px solid var(--md-accent-fg);
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body [role="button"]:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible),
.markdown-body input[type="checkbox"]:focus:not(:focus-visible),
.markdown-body input[type="radio"]:focus:not(:focus-visible) {
  outline: solid 1px transparent;
}

.markdown-body [role="button"]:focus-visible,
.markdown-body a:focus-visible,
.markdown-body input[type="checkbox"]:focus-visible,
.markdown-body input[type="radio"]:focus-visible {
  outline: 2px solid var(--md-accent-fg);
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type="checkbox"]:focus,
.markdown-body input[type="checkbox"]:focus-visible,
.markdown-body input[type="radio"]:focus,
.markdown-body input[type="radio"]:focus-visible {
  outline-offset: 0;
}

/* ---- Images ---- */

.markdown-body img {
  border-style: none;
  max-width: 100%;
  box-sizing: content-box;
  background-color: transparent;
}

.markdown-body img[align="right"] {
  padding-left: 20px;
}

.markdown-body img[align="left"] {
  padding-right: 20px;
}

.markdown-body figure {
  margin: 1em 40px;
}

/* ---- Code ---- */

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body code,
.markdown-body samp,
.markdown-body tt {
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
    Liberation Mono, monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
    Liberation Mono, monospace;
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body code,
.markdown-body tt {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: var(--md-code-bg);
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre > code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: 0 0;
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 16px;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: var(--md-fg-default);
  background-color: var(--md-bg-subtle);
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  max-width: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: transparent;
  border: 0;
}

/* ---- Kbd ---- */

.markdown-body kbd {
  display: inline-block;
  padding: 3px 5px;
  font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas,
    Liberation Mono, monospace;
  line-height: 10px;
  color: var(--md-fg-default);
  vertical-align: middle;
  background-color: var(--md-bg-subtle);
  border: solid 1px var(--md-code-bg);
  border-bottom-color: var(--md-code-bg);
  border-radius: 6px;
  box-shadow: inset 0 -1px 0 var(--md-code-bg);
}

/* ---- HR ---- */

.markdown-body hr {
  box-sizing: content-box;
  overflow: hidden;
  background: 0 0;
  border-bottom: 1px solid var(--md-border-default);
  height: 0.25em;
  padding: 0;
  margin: 24px 0;
  background-color: var(--md-border-muted);
  border: 0;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

/* ---- Blockquote ---- */

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: var(--md-fg-muted);
  border-left: 0.25em solid var(--md-border-muted);
}

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

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

/* ---- Lists ---- */

.markdown-body ol,
.markdown-body ul {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ol ol ol,
.markdown-body ol ul ol,
.markdown-body ul ol ol,
.markdown-body ul ul ol {
  list-style-type: lower-alpha;
}

.markdown-body ol.no-list,
.markdown-body ul.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type="a s"] { list-style-type: lower-alpha; }
.markdown-body ol[type="A s"] { list-style-type: upper-alpha; }
.markdown-body ol[type="i s"] { list-style-type: lower-roman; }
.markdown-body ol[type="I s"] { list-style-type: upper-roman; }
.markdown-body ol[type="1"] { list-style-type: decimal; }
.markdown-body div > ol:not([type]) { list-style-type: decimal; }

.markdown-body ol ol,
.markdown-body ol ul,
.markdown-body ul ol,
.markdown-body ul ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li > p {
  margin-top: 16px;
}

.markdown-body li + li {
  margin-top: 0.25em;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 16px;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 16px;
  margin-bottom: 16px;
}

/* ---- Tables ---- */

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: max-content;
  max-width: 100%;
  overflow: auto;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table td,
.markdown-body table th {
  padding: 6px 13px;
  border: 1px solid var(--md-border-muted);
}

.markdown-body table td > :last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: var(--md-bg-canvas);
  border-top: 1px solid var(--md-border-default);
}

.markdown-body table tr:nth-child(2n) {
  background-color: var(--md-bg-subtle);
}

.markdown-body table img {
  background-color: transparent;
}

/* ---- Spacing ---- */

.markdown-body blockquote,
.markdown-body details,
.markdown-body dl,
.markdown-body ol,
.markdown-body p,
.markdown-body pre,
.markdown-body table,
.markdown-body ul {
  margin-top: 0;
  margin-bottom: 16px;
}

/* ---- Forms ---- */

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type="button"],
.markdown-body [type="reset"],
.markdown-body [type="submit"] {
  -webkit-appearance: button;
  appearance: button;
}

.markdown-body [type="checkbox"],
.markdown-body [type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

.markdown-body [type="number"]::-webkit-inner-spin-button,
.markdown-body [type="number"]::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type="search"]::-webkit-search-cancel-button,
.markdown-body [type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body ::placeholder {
  color: var(--md-fg-subtle);
  opacity: 1;
}

.markdown-body input::-webkit-inner-spin-button,
.markdown-body input::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  filter: invert(50%);
}

/* ---- Footnotes ---- */

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: var(--md-fg-muted);
  border-top: 1px solid var(--md-border-muted);
}

.markdown-body .footnotes ol {
  padding-left: 16px;
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: 16px;
  margin-top: 16px;
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: -8px;
  right: -8px;
  bottom: -8px;
  left: -24px;
  pointer-events: none;
  content: "";
  border: 2px solid var(--md-accent-emphasis);
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: var(--md-fg-default);
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

/* ---- Task Lists ---- */

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: 400;
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item + .task-list-item {
  margin-top: 4px;
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 0.2em 0.25em -1.4em;
  vertical-align: middle;
}

.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em 0.25em 0.2em;
}

.markdown-body .contains-task-list {
  position: relative;
}

/* ---- Alerts ---- */

.markdown-body .markdown-alert {
  padding: 8px 16px;
  margin-bottom: 16px;
  color: inherit;
  border-left: 0.25em solid var(--md-border-muted);
}

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

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

.markdown-body .markdown-alert .markdown-alert-title {
  display: flex;
  font-weight: 500;
  align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: var(--md-alert-note-border);
}
.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: var(--md-alert-note-fg);
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: var(--md-alert-important-border);
}
.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: var(--md-alert-important-fg);
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: var(--md-alert-warning-border);
}
.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: var(--md-alert-warning-fg);
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: var(--md-alert-tip-border);
}
.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: var(--md-alert-tip-fg);
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: var(--md-alert-caution-border);
}
.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: var(--md-alert-caution-fg);
}
