/*
 * Markdown renderer styles — usados pelo helper `markdown(text)` em
 * ApplicationHelper. Combina com o tema dark do Bailder + Rouge highlight.
 *
 * Classes: .md-* (namespaced pra não conflitar com layouts existentes).
 */

.md-paragraph {
  margin: 0 0 0.7em 0;
  line-height: 1.55;
}

.md-paragraph:last-child { margin-bottom: 0; }

.md-heading {
  margin: 1em 0 0.4em 0;
  font-weight: 600;
  line-height: 1.25;
  color: var(--color-text);
  letter-spacing: -0.01em;
}

.md-heading:first-child { margin-top: 0; }

.md-heading--h2 { font-size: 1.25em; border-bottom: 1px solid var(--color-border); padding-bottom: 0.25em; }
.md-heading--h3 { font-size: 1.1em; }
.md-heading--h4 { font-size: 1.0em; color: var(--color-text-muted, #C7C7D9); }
.md-heading--h5 { font-size: 0.95em; color: var(--color-text-muted, #C7C7D9); text-transform: uppercase; letter-spacing: 0.04em; }
.md-heading--h6 { font-size: 0.85em; color: var(--color-text-faded, #8888A0); text-transform: uppercase; letter-spacing: 0.05em; }

.md-quote {
  border-left: 3px solid #B47EFF;
  padding: 0.4em 0 0.4em 0.9em;
  margin: 0.5em 0 0.8em 0;
  color: var(--color-text-muted, #C7C7D9);
  background: rgba(180, 126, 255, 0.06);
  border-radius: 0 4px 4px 0;
}

.md-quote .md-paragraph:last-child { margin-bottom: 0; }

.md-list {
  padding-left: 1.4em;
  margin: 0.4em 0 0.8em 0;
}

.md-list .md-list { margin: 0.2em 0; }

.md-list-item {
  margin: 0.18em 0;
  line-height: 1.45;
}

.md-list--ordered { list-style-type: decimal; }
.md-list--unordered { list-style-type: disc; }

.md-code-inline {
  background: rgba(180, 126, 255, 0.12);
  color: #C9A6FF;
  padding: 1px 5px;
  border-radius: 3px;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.88em;
  border: 1px solid rgba(180, 126, 255, 0.18);
}

.md-code {
  background: #0a0a14;
  border: 1px solid var(--color-border, rgba(255,255,255,0.08));
  border-radius: 6px;
  padding: 12px 14px;
  margin: 0.6em 0 0.9em 0;
  overflow-x: auto;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.83em;
  line-height: 1.5;
  position: relative;
}

.md-code[data-lang]::before {
  content: attr(data-lang);
  position: absolute;
  top: 4px;
  right: 8px;
  font-size: 0.65em;
  color: var(--color-text-faded, #8888A0);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.md-code code {
  background: transparent;
  border: none;
  padding: 0;
  color: #E5E5F0;
}

.md-content a,
.md-paragraph a,
.md-list-item a,
.md-quote a,
.md-heading a {
  color: #00E5FF;
  text-decoration: underline dotted;
  text-underline-offset: 2px;
}

.md-content a:hover,
.md-paragraph a:hover,
.md-list-item a:hover,
.md-quote a:hover,
.md-heading a:hover {
  text-decoration-style: solid;
}

.md-table-wrap { overflow-x: auto; margin: 0.6em 0 0.9em 0; }
.md-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.9em;
  border: 1px solid var(--color-border, rgba(255,255,255,0.08));
}
.md-table th {
  background: var(--color-bg-elevated, #141424);
  text-align: left;
  padding: 8px 12px;
  font-weight: 600;
  border-bottom: 1px solid var(--color-border-strong, rgba(255,255,255,0.16));
}
.md-table td {
  padding: 7px 12px;
  border-bottom: 1px solid var(--color-border, rgba(255,255,255,0.08));
  vertical-align: top;
}
.md-table tr:last-child td { border-bottom: 0; }

/* Rouge syntax highlighting (custom dark theme) */
.md-code .hll { background-color: rgba(255, 255, 255, 0.06); }
.md-code .c   { color: #6A6A82; font-style: italic; }
.md-code .err { color: #FF6B7A; }
.md-code .k   { color: #C792EA; }
.md-code .l   { color: #F78C6C; }
.md-code .n   { color: #E5E5F0; }
.md-code .o   { color: #89DDFF; }
.md-code .p   { color: #C7C7D9; }
.md-code .cm  { color: #6A6A82; font-style: italic; }
.md-code .cp  { color: #C792EA; }
.md-code .c1  { color: #6A6A82; font-style: italic; }
.md-code .cs  { color: #6A6A82; font-style: italic; }
.md-code .gd  { color: #FF6B7A; }
.md-code .ge  { font-style: italic; }
.md-code .gh  { color: #82AAFF; font-weight: bold; }
.md-code .gi  { color: #C3E88D; }
.md-code .gp  { color: #82AAFF; font-weight: bold; }
.md-code .gs  { font-weight: bold; }
.md-code .gu  { color: #C792EA; font-weight: bold; }
.md-code .kc  { color: #C792EA; }
.md-code .kd  { color: #C792EA; }
.md-code .kn  { color: #C792EA; }
.md-code .kp  { color: #C792EA; }
.md-code .kr  { color: #C792EA; }
.md-code .kt  { color: #FFCB6B; }
.md-code .ld  { color: #C3E88D; }
.md-code .m   { color: #F78C6C; }
.md-code .s   { color: #C3E88D; }
.md-code .na  { color: #FFCB6B; }
.md-code .nb  { color: #FFCB6B; }
.md-code .nc  { color: #FFCB6B; }
.md-code .no  { color: #FFCB6B; }
.md-code .nd  { color: #82AAFF; }
.md-code .ni  { color: #FFCB6B; }
.md-code .ne  { color: #FF6B7A; font-weight: bold; }
.md-code .nf  { color: #82AAFF; }
.md-code .nl  { color: #82AAFF; }
.md-code .nn  { color: #FFCB6B; }
.md-code .nx  { color: #82AAFF; }
.md-code .py  { color: #FFCB6B; }
.md-code .nt  { color: #FF6B7A; }
.md-code .nv  { color: #FF6B7A; }
.md-code .ow  { color: #89DDFF; }
.md-code .w   { color: #6A6A82; }
.md-code .mf  { color: #F78C6C; }
.md-code .mh  { color: #F78C6C; }
.md-code .mi  { color: #F78C6C; }
.md-code .mo  { color: #F78C6C; }
.md-code .sb  { color: #C3E88D; }
.md-code .sc  { color: #C3E88D; }
.md-code .sd  { color: #C3E88D; font-style: italic; }
.md-code .s2  { color: #C3E88D; }
.md-code .se  { color: #F78C6C; }
.md-code .sh  { color: #C3E88D; }
.md-code .si  { color: #F78C6C; }
.md-code .sx  { color: #C3E88D; }
.md-code .sr  { color: #C3E88D; }
.md-code .s1  { color: #C3E88D; }
.md-code .ss  { color: #C3E88D; }
.md-code .bp  { color: #FFCB6B; }
.md-code .vc  { color: #FF6B7A; }
.md-code .vg  { color: #FF6B7A; }
.md-code .vi  { color: #FF6B7A; }
.md-code .il  { color: #F78C6C; }

/* Variantes inline para chat bubbles */
.chat-bubble__body .md-paragraph,
.b__body--text .md-paragraph {
  margin-bottom: 0.4em;
}
.chat-bubble__body .md-paragraph:last-child,
.b__body--text .md-paragraph:last-child {
  margin-bottom: 0;
}
