diff --git a/frontend/ai.client/src/app/components/sidenav/components/session-list/session-list.html b/frontend/ai.client/src/app/components/sidenav/components/session-list/session-list.html
index b4abff1e0..16d7b21ee 100644
--- a/frontend/ai.client/src/app/components/sidenav/components/session-list/session-list.html
+++ b/frontend/ai.client/src/app/components/sidenav/components/session-list/session-list.html
@@ -31,7 +31,7 @@
@for (group of groupedSessions(); track group.label; let gi = $index) {
- {{ group.label }}
+ {{ group.label }}
@for (entry of group.entries; track entry.kind === 'session' ? entry.session.sessionId : 'project:' + entry.projectId) {
@if (entry.kind === 'session') {
diff --git a/frontend/ai.client/src/styles.css b/frontend/ai.client/src/styles.css
index b9481f6ed..679d2e516 100644
--- a/frontend/ai.client/src/styles.css
+++ b/frontend/ai.client/src/styles.css
@@ -263,6 +263,24 @@ html.dark .message-block {
a:hover {
color: var(--color-primary-300);
}
+
+ /* Weight alone barely separates bold from body text on a dark surface,
+ and the assistant bubble's gray-200 body sits too close to white to
+ leave room above it. So response prose steps down to gray-300 while
+ headings and bold step up to white. Inside a link, bold keeps the
+ link's color. */
+ &.text-block {
+ color: var(--color-gray-300);
+ }
+
+ h1, h2, h3, h4, h5, h6,
+ strong {
+ color: var(--color-white);
+ }
+
+ a strong {
+ color: inherit;
+ }
}