diff --git a/www/app/(app)/transcripts/[transcriptId]/page.tsx b/www/app/(app)/transcripts/[transcriptId]/page.tsx
index 3ca18095..3550c73f 100644
--- a/www/app/(app)/transcripts/[transcriptId]/page.tsx
+++ b/www/app/(app)/transcripts/[transcriptId]/page.tsx
@@ -272,13 +272,34 @@ export default function TranscriptDetails(details: TranscriptDetails) {
onTopicClick={handleTopicClick}
/>
- {/* Transcript with colored gutter (bottom section - normal document flow) */}
+ {/* Transcript with colored gutter (bottom section - scrollable container) */}
{topics.topics && topics.topics.length > 0 && (
-
+
+
+
)}
{/* Final Summary (at bottom) */}
diff --git a/www/app/lib/topicColors.ts b/www/app/lib/topicColors.ts
new file mode 100644
index 00000000..f86400af
--- /dev/null
+++ b/www/app/lib/topicColors.ts
@@ -0,0 +1,18 @@
+// Predefined color palette for topics
+// Colors chosen for good contrast and visual distinction
+export const TOPIC_COLORS = [
+ "#3B82F6", // blue
+ "#10B981", // green
+ "#F59E0B", // amber
+ "#EF4444", // red
+ "#8B5CF6", // violet
+ "#EC4899", // pink
+ "#14B8A6", // teal
+ "#F97316", // orange
+ "#6366F1", // indigo
+ "#84CC16", // lime
+] as const;
+
+export function getTopicColor(topicIndex: number): string {
+ return TOPIC_COLORS[topicIndex % TOPIC_COLORS.length];
+}