diff --git a/frontend/css/app.css b/frontend/css/app.css
index 2e31c0a..981a443 100644
--- a/frontend/css/app.css
+++ b/frontend/css/app.css
@@ -1988,5 +1988,8 @@ a { color: var(--primary); text-decoration: none; }
border-radius: 8px;
cursor: pointer;
}
+.group-icon-opt { color: var(--text-1); }
.group-icon-opt:hover { background: var(--bg-surface); }
-.group-icon-opt.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
+.group-icon-opt.on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; color: var(--accent); }
+/* SVG group icons render as block so they centre cleanly (vs emoji baseline). */
+.group-emoji svg, .cal-shared-flag svg, .group-icon-opt svg { display: block; }
diff --git a/frontend/js/calendar.js b/frontend/js/calendar.js
index c08e40a..fb92bd3 100644
--- a/frontend/js/calendar.js
+++ b/frontend/js/calendar.js
@@ -735,8 +735,8 @@ function renderCalendarList() {
${escHtml(e.name)}
- ${e.isGroupCal ? `👥` : ''}
- ${e.groupVisible ? `👥` : ''}
+ ${e.isGroupCal ? `${groupIconSvg('people', 13)}` : ''}
+ ${e.groupVisible ? `${groupIconSvg('people', 13)}` : ''}
${e.remove ? `` : ''}
`
).join('');
@@ -2303,7 +2303,7 @@ function renderGroupList() {
}
el.innerHTML = state.groups.map(g =>
`
-
${escHtml(g.icon || '👥')}
+
${groupIconHtml(g.icon)}
${escHtml(g.name)}