diff --git a/fe-admin/src/components/pe/PeWorkflowPanel.tsx b/fe-admin/src/components/pe/PeWorkflowPanel.tsx
index fc401eb..c11e298 100644
--- a/fe-admin/src/components/pe/PeWorkflowPanel.tsx
+++ b/fe-admin/src/components/pe/PeWorkflowPanel.tsx
@@ -204,26 +204,23 @@ export function PeWorkflowPanel({
{next.map(p => {
- // Phân loại button theo hành động:
- // - Trả lại = về DangSoanThao/TraLai (từ phase trung gian) — red
- // - Hủy/Từ chối = TuChoi (chỉ ở phase DangSoanThao đầu) — red
- // - Duyệt = forward phase tiếp theo — brand
+ // Phân loại button theo hành động (3 màu khác nhau, in đậm):
+ // - Duyệt = forward phase tiếp theo — emerald (xanh lá positive)
+ // - Trả lại = về DangSoanThao/TraLai (từ phase trung gian) — amber (request changes)
+ // - Từ chối = TuChoi — red (terminal negative)
const isSendBack = (p === PurchaseEvaluationPhase.DangSoanThao || p === PurchaseEvaluationPhase.TraLai)
&& evaluation.phase !== PurchaseEvaluationPhase.DangSoanThao
&& evaluation.phase !== PurchaseEvaluationPhase.TraLai
const isCancel = p === PurchaseEvaluationPhase.TuChoi
- const isDanger = isSendBack || isCancel
- const isForwardApprove = !isDanger
+ const isForwardApprove = !isSendBack && !isCancel
// Mig 24 — disable Duyệt forward nếu V2 pin + actor không trong cấp hiện tại
const isDisabled = isForwardApprove && blockedByV2Level
- const label = isSendBack
- ? '← Trả lại (về Drafter sửa)'
- : isCancel
- ? '✗ Hủy / Từ chối'
- : `✓ Duyệt → ${PurchaseEvaluationPhaseLabel[p]}`
+ const label = isSendBack ? '← Trả lại' : isCancel ? '✗ Từ chối' : '✓ Duyệt'
const title = isDisabled && evaluation.currentApproval
? `Cấp ${evaluation.currentApproval.levelOrder} chỉ ${evaluation.currentApproval.approvers.map(a => a.fullName).join(' / ')} mới duyệt được.`
- : undefined
+ : isForwardApprove
+ ? `Duyệt → ${PurchaseEvaluationPhaseLabel[p]}`
+ : undefined
return (