/* AW Markdown: Markdown output (.aw-markdown) and Mermaid figures (.aw-markdown__diagram). Everything is scoped to these classes. */
.aw-markdown,
.aw-markdown__diagram {
  --aw-markdown-border: rgba(128, 128, 128, 0.35);
  --aw-markdown-code-bg: rgba(128, 128, 128, 0.12);
  --aw-markdown-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --aw-markdown-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --aw-markdown-error: #b91c1c;
  --aw-markdown-error-bg: rgba(220, 38, 38, 0.08);
}
@media (prefers-color-scheme: dark) {
  .aw-markdown,
  .aw-markdown__diagram {
    --aw-markdown-border: rgba(170, 170, 170, 0.4);
    --aw-markdown-code-bg: rgba(170, 170, 170, 0.16);
    --aw-markdown-error: #fca5a5;
    --aw-markdown-error-bg: rgba(248, 113, 113, 0.14);
  }
}

/* ---- Markdown ---- */
.aw-markdown { max-width: 100%; overflow-wrap: anywhere; }
.aw-markdown > :first-child { margin-top: 0; }
.aw-markdown > :last-child { margin-bottom: 0; }
.aw-markdown img { max-width: 100%; height: auto; }
.aw-markdown hr { border: 0; border-top: 1px solid var(--aw-markdown-border); margin: 1.5em 0; }
.aw-markdown blockquote {
  margin: 1em 0;
  padding: 0.2em 1em;
  border-left: 4px solid var(--aw-markdown-border);
  opacity: 0.9;
}
.aw-markdown table {
  display: block;
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  margin: 1em 0;
}
.aw-markdown th,
.aw-markdown td { border: 1px solid var(--aw-markdown-border); padding: 0.35em 0.7em; vertical-align: top; }
.aw-markdown thead th { background: var(--aw-markdown-code-bg); font-weight: 600; }
.aw-markdown code {
  font-family: var(--aw-markdown-mono);
  font-size: 0.9em;
  background: var(--aw-markdown-code-bg);
  padding: 0.1em 0.35em;
  border-radius: 4px;
}
.aw-markdown pre.aw-markdown__code,
.aw-markdown pre {
  margin: 1em 0;
  padding: 0.9em 1em;
  overflow: auto;
  border-radius: 8px;
  background: var(--aw-markdown-code-bg);
  font-family: var(--aw-markdown-mono);
  font-size: 0.875rem;
  line-height: 1.6;
  tab-size: 4;
  white-space: pre;
}
.aw-markdown pre code { background: none; padding: 0; font-size: inherit; border-radius: 0; }

/* ---- Diagrams ---- */
.aw-markdown__diagram {
  position: relative;
  margin: 1.5em 0;
  max-width: 100%;
}
.aw-markdown .aw-markdown__diagram { margin: 1em 0; }
.aw-markdown__diagram .aw-markdown__source {
  margin: 0;
  padding: 0.9em 1em;
  overflow: auto;
  border-radius: 8px;
  background: var(--aw-markdown-code-bg);
  font-family: var(--aw-markdown-mono);
  font-size: 0.875rem;
  line-height: 1.6;
  white-space: pre;
  tab-size: 4;
}
.aw-markdown__diagram .aw-markdown__source[hidden] { display: none; }
.aw-markdown__diagram.is-rendered .aw-markdown__source { margin-top: 0.5em; }
.aw-markdown__svg {
  max-width: 100%;
  overflow: auto;
  text-align: center;
  line-height: 0;
}
.aw-markdown__svg > svg {
  display: inline-block;
  max-width: 100%;
  height: auto;
  line-height: normal;
}
.aw-markdown__diagram .aw-markdown__caption {
  margin: 0.5em 0 0;
  text-align: center;
  font-size: 0.9em;
  opacity: 0.85;
}
.aw-markdown__tools {
  display: flex;
  justify-content: flex-end;
  gap: 0.4em;
  margin-top: 0.3em;
  font-family: var(--aw-markdown-ui);
  font-size: 0.8rem;
  line-height: 1.4;
}
.aw-markdown__tools .aw-markdown__btn {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--aw-markdown-border);
  border-radius: 4px;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0.15em 0.6em;
  cursor: pointer;
  opacity: 0.8;
}
.aw-markdown__tools .aw-markdown__btn:hover,
.aw-markdown__tools .aw-markdown__btn:focus-visible { opacity: 1; background: var(--aw-markdown-code-bg); }
.aw-markdown__error {
  margin: 0 0 0.5em;
  padding: 0.5em 0.8em;
  border-left: 4px solid var(--aw-markdown-error);
  background: var(--aw-markdown-error-bg);
  color: var(--aw-markdown-error);
  font-family: var(--aw-markdown-ui);
  font-size: 0.9em;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
