diff --git a/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx b/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx
index 8a40edb3a7..c6ea19b577 100644
--- a/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx
+++ b/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx
@@ -109,22 +109,34 @@ const TABS: BackupTabSpec[] = [
},
];
+// Replication colours the per-row status word to match its dot (emerald
+// text for Healthy, red for Failed, etc.). Mirror that here so the
+// Recent tasks STATUS column reads the same way — dot + same-tone word.
function classifyTaskStatus(status: string): {
variant: StatusIndicatorVariant;
label: string;
+ toneClass: string;
} {
const normalized = (status ?? '').toLowerCase();
if (normalized === 'ok' || normalized === 'success' || normalized === 'completed') {
- return { variant: 'success', label: 'OK' };
+ return {
+ variant: 'success',
+ label: 'OK',
+ toneClass: 'text-emerald-600 dark:text-emerald-300',
+ };
}
if (normalized === 'running') {
- return { variant: 'warning', label: 'Running' };
+ return {
+ variant: 'warning',
+ label: 'Running',
+ toneClass: 'text-amber-600 dark:text-amber-300',
+ };
}
if (normalized === 'failed' || normalized === 'error') {
- return { variant: 'danger', label: 'Failed' };
+ return { variant: 'danger', label: 'Failed', toneClass: 'text-red-600 dark:text-red-300' };
}
- if (!normalized) return { variant: 'muted', label: '—' };
- return { variant: 'muted', label: status };
+ if (!normalized) return { variant: 'muted', label: '—', toneClass: 'text-muted' };
+ return { variant: 'muted', label: status, toneClass: 'text-muted' };
}
function guestLabel(type: string | undefined, vmid: number): string {
@@ -831,9 +843,14 @@ export const ProxmoxBackupsTable: Component<{
fallback={