diff --git a/apps/dashboard/src/lib/features/ai-assistant/message-bubble.svelte b/apps/dashboard/src/lib/features/ai-assistant/message-bubble.svelte
index 9e0b65ad..198bce7e 100644
--- a/apps/dashboard/src/lib/features/ai-assistant/message-bubble.svelte
+++ b/apps/dashboard/src/lib/features/ai-assistant/message-bubble.svelte
@@ -137,7 +137,7 @@
{:else}
{@html renderMentions(renderMarkdown(part.text as string), courseId)}
@@ -262,6 +262,17 @@
margin-bottom: 0;
}
+ /* Normal prose wraps at word boundaries; only unbreakable runs (URLs, keys) split mid-token. */
+ :global(.ai-chat-prose.prose pre) {
+ max-width: 100%;
+ overflow-x: auto;
+ }
+
+ :global(.ai-chat-prose.prose :not(pre) > code),
+ :global(.ai-chat-prose.prose a) {
+ overflow-wrap: anywhere;
+ }
+
:global(.mention-link) {
display: inline;
cursor: pointer;