/* Visual baseline: deepsuite `@deepseek/md` markdown.css, adapted to CSS
   Modules. Cite pills, header anchors, and thinking-small variants are
   intentionally absent (no matching DOM). Token names match that sheet. */

.markdown {
  min-width: 0;
  overflow-wrap: anywhere;
  font: var(--dsw-font-markdown-base);
  color: var(--dsw-alias-label-primary);
}

.markdown strong {
  font-weight: 600;
}

.markdown h1 {
  font: var(--dsw-font-markdown-h1);
  margin: 32px 0 16px;
}

.markdown h2 {
  font: var(--dsw-font-markdown-h2);
  margin: 32px 0 16px;
}

.markdown h3 {
  font: var(--dsw-font-markdown-h3);
  margin: 32px 0 16px;
}

.markdown h4 {
  font: var(--dsw-font-markdown-h4);
  margin: 16px 0;
}

.markdown :where(h5, h6) {
  font: var(--dsw-font-markdown-base-strong);
  margin: 16px 0;
}

.markdown :where(h1, h2, h3, h4, h5, h6) strong {
  font-weight: inherit;
}

.markdown p {
  margin: 16px 0;
}

/* Tighten h4–h6 against a following list (design: 8px gap). */
.markdown :where(h4, h5, h6) + :where(ul, ol) {
  margin-top: 8px;
}

.markdown :where(h4, h5, h6):has(+ :where(ul, ol)) {
  margin-bottom: 8px;
}

.markdown a {
  /* deepsuite markdown.css uses brand-text (blue in newDesign); this sheet
     keeps design-platform brand-text as near-black, so links use the blue
     business-primary alias instead. */
  color: var(--dsw-alias-state-business-primary);
  transition: box-shadow var(--ds-transition-duration) var(--ds-ease-in-out);
  position: relative;
  text-decoration: none;
  /* Transparent hit-area padding; literal zero-alpha only (no painted color). */
  border-left: 3px solid rgb(255 255 255 / 0);
  border-right: 3px solid rgb(255 255 255 / 0);
  border-top: 2px solid rgb(255 255 255 / 0);
  border-bottom: 2px solid rgb(255 255 255 / 0);
  margin-left: -3px;
  margin-right: -3px;
}

.markdown a:hover,
.markdown a:focus {
  outline: none;
  text-decoration: underline var(--dsw-alias-state-business-primary);
}

.markdown a:focus-visible {
  box-shadow: 0 0 0 2px var(--dsw-alias-state-business-primary);
}

.markdown :where(ul, ol) {
  margin: 16px 0;
  padding-left: 18px;
}

.markdown li:not(:first-child) {
  margin-top: 6px;
}

.markdown li > :where(ul, ol) {
  margin-top: 4px;
}

.markdown li::marker {
  line-height: 28px;
  color: var(--dsw-alias-label-secondary);
}

/* Nested ol under ul/ol: markers inside (models sometimes emit this shape). */
.markdown :where(ul, ol) ol {
  list-style-position: inside;
  padding-left: 0;
}

.markdown :where(ul, ol) ol li p {
  display: inline;
}

.markdown li > p {
  margin: 8px 0;
}

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

/* Keep list-nested code-block vertical margins (design: +4px vs other last children). */
.markdown li > *:last-child:not(:global(.md-code-block)) {
  margin-bottom: 0;
}

.markdown hr {
  display: block;
  border: none;
  height: 1px;
  margin: 32px 0;
  background: var(--dsw-alias-border-l2);
}

.markdown blockquote {
  border-left: 2px solid var(--dsw-alias-label-caption);
  margin: 16px 0 0;
  padding-left: 14px;
}

.markdown pre {
  margin: 16px 0;
  font-family: var(--ds-font-family-code);
  overflow: auto;
}

.markdown :not(pre) > code {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  font: var(--dsw-font-markdown-code);
  font-family: var(--ds-font-family-code);
  font-size: 0.875em !important;
  background-color: var(--dsw-alias-markdown-inline-code);
  border-radius: 6px;
  padding: 0 5px;
}

.markdown :where(h1, h2, h3, h4, h5, h6) code {
  font: inherit;
  font-family: var(--ds-font-family-code);
}

.markdown :global(.katex-display) {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}

.markdown input[type='checkbox'] {
  margin: 0 8px 0 0;
  accent-color: var(--dsw-alias-label-secondary);
}

.tableScroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.tableScroll table {
  border-collapse: collapse;
  width: max-content;
  max-width: max-content;
}

.tableScroll th {
  text-align: start;
  padding: 10px 16px;
  border-bottom: 1px solid var(--dsw-alias-border-l3);
  border-top: none;
  font: var(--dsw-font-markdown-table-head);
  max-width: 320px;
  max-width: min(30vw, 320px);
  min-width: 100px;
}

.tableScroll td {
  padding: 10px 16px;
  border-bottom: 1px solid var(--dsw-alias-border-l2);
  font: var(--dsw-font-markdown-table);
  max-width: 320px;
  max-width: min(30vw, 320px);
  min-width: 100px;
}

.tableScroll th:first-child,
.tableScroll td:first-child {
  padding-left: 0;
}

.tableScroll td:last-child {
  padding-right: 0;
}

.tableScroll table code {
  font-size: 13px;
}

.markdown > *:first-child,
.markdown p:first-child {
  margin-top: 0 !important;
}

.markdown > *:last-child,
.markdown p:last-child {
  margin-bottom: 0 !important;
}

.imageAlt {
  color: var(--dsw-alias-label-tertiary);
  font-style: italic;
}

.image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: 8px;
  background: var(--dsw-alias-bg-base);
  object-fit: contain;
}

/* Inline file mention: the same link language this sheet gives anchors (and
   thereby URL-promoted inline code) — link-blue at rest, underline only on
   hover/focus. An underline at rest reads badly inside the code chip, where
   it collides with monospace descenders and the pill background. */
.fileMention {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: var(--dsw-alias-state-business-primary);
  text-decoration: none;
  cursor: pointer;
}

.fileMention:hover,
.fileMention:focus {
  outline: none;
  text-decoration: underline var(--dsw-alias-state-business-primary);
  text-underline-offset: 3px;
}
