diff --git a/src/renderer/pages/MeetingModePage.tsx b/src/renderer/pages/MeetingModePage.tsx
index af619ef..6d4c618 100644
--- a/src/renderer/pages/MeetingModePage.tsx
+++ b/src/renderer/pages/MeetingModePage.tsx
@@ -238,42 +238,87 @@ export function MeetingModePage(): React.ReactElement {
) : sessions.length === 0 ? (
) : (
-
+
{sessions.map((session) => (
handleViewDetail(session.id)}
- sx={{ cursor: 'pointer', '&:hover': { opacity: 0.85 } }}
+ sx={{
+ cursor: 'pointer',
+ transition: 'transform 0.15s ease, box-shadow 0.15s ease',
+ '&:hover': { transform: 'translateY(-2px)' },
+ }}
>
-
-
-
- {session.title ?? t('meeting.untitled')}
-
-
- {session.durationMs != null
- ? t('meeting.duration', { minutes: Math.round(session.durationMs / 60000) })
- : '—'}
- {' · '}
- {t('meeting.memos')}: {session.memoCount}
+ {/* 상태 LED + 날짜 */}
+
+
+
+
+ {session.status === 'completed' ? t('meeting.completed')
+ : session.status === 'error' ? t('meeting.error')
+ : session.status === 'processing' ? t('meeting.processing')
+ : t('meeting.recording')}
-
- {formatDate(session.startedAt)}
-
-
+
+ {formatDate(session.startedAt)}
+
- {/* 프로세싱 중인 세션 표시 */}
+ {/* 제목 — ellipsis */}
+
+ {session.title ?? t('meeting.untitled')}
+
+
+ {/* 메타 — 소요 시간 · 메모 수 */}
+
+ {session.durationMs != null
+ ? t('meeting.duration', { minutes: Math.round(session.durationMs / 60000) })
+ : '—'}
+ {' · '}
+ {t('meeting.memos')}: {session.memoCount}
+
+
+ {/* 프로세싱 진행 바 */}
{session.status === 'processing' && progress && progress.sessionId === session.id && (
-
+
{t(`meeting.processingStep.${progress.step}` as Parameters[0])}