diff --git a/frontend/src/pages/clients/ClientsPage.tsx b/frontend/src/pages/clients/ClientsPage.tsx
index 75ca8435f..7e9efeab5 100644
--- a/frontend/src/pages/clients/ClientsPage.tsx
+++ b/frontend/src/pages/clients/ClientsPage.tsx
@@ -649,7 +649,7 @@ export default function ClientsPage() {
);
if (record.enable && isOnline(record.email)) return (
- {t('pages.clients.online')}
+ {t('pages.clients.online')}
);
if (!record.enable) return {t('disabled')};
if (bucket === 'expiring') return {t('depletingSoon')};
diff --git a/frontend/src/styles/utils.css b/frontend/src/styles/utils.css
index 7bdc5e360..b0a3b82d0 100644
--- a/frontend/src/styles/utils.css
+++ b/frontend/src/styles/utils.css
@@ -33,6 +33,14 @@
animation: online-blink 1.1s ease-in-out infinite;
}
+/* For Tags that carry a status dot: inline layout aligns the dot to
+ baseline + half x-height (vertical-align: middle), which sits visibly
+ off-centre next to the label; flex centring is exact. */
+.dot-tag {
+ display: inline-flex;
+ align-items: center;
+}
+
@keyframes online-blink {
0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(82, 196, 26, 0.55); }
50% { opacity: 0.35; box-shadow: 0 0 0 4px rgba(82, 196, 26, 0); }