diff --git a/src/TrueCV.Web/Components/Pages/Report.razor b/src/TrueCV.Web/Components/Pages/Report.razor index b7e2a0b..f6d3779 100644 --- a/src/TrueCV.Web/Components/Pages/Report.razor +++ b/src/TrueCV.Web/Components/Pages/Report.razor @@ -266,6 +266,10 @@ { @companyPoints } + else if (!verification.IsVerified && !_firstOccurrenceIndices.Contains(index)) + { + + } else { 0 @@ -592,7 +596,7 @@ } .stat-label { - color: rgba(255, 255, 255, 0.85); + color: rgba(255, 255, 255, 0.95); font-size: 0.875rem; } @@ -626,7 +630,7 @@ } .flag-description { - color: #6b7280; + color: #4b5563; font-size: 0.875rem; margin: 0.5rem 0 0 0; } @@ -650,9 +654,9 @@ padding: 0.5rem 0.75rem; background-color: #f8fafc; border-bottom: 1px solid #e5e7eb; - font-size: 0.6875rem; + font-size: 0.75rem; font-weight: 600; - color: #64748b; + color: #475569; text-transform: uppercase; letter-spacing: 0.025em; align-items: center; @@ -713,17 +717,17 @@ } .employment-note-inline { - font-size: 0.6875rem; - color: #6b7280; - line-height: 1.2; + font-size: 0.75rem; + color: #4b5563; + line-height: 1.4; } .employment-dates { display: flex; align-items: center; justify-content: center; - font-size: 0.75rem; - color: #6b7280; + font-size: 0.8125rem; + color: #4b5563; white-space: nowrap; text-align: center; } @@ -968,7 +972,7 @@ }; } - // Lookup for first occurrence of each company (pre-computed when report loads) + // Lookup for first occurrence of each sequential group of the same company (pre-computed when report loads) private HashSet _firstOccurrenceIndices = new(); private void ComputeFirstOccurrences() @@ -976,14 +980,26 @@ _firstOccurrenceIndices.Clear(); if (_report?.EmploymentVerifications is null) return; - var seenCompanies = new HashSet(StringComparer.OrdinalIgnoreCase); + // Only mark as duplicate if the PREVIOUS entry (sequential) is the same company + // Non-sequential entries of the same company should each count separately for (int i = 0; i < _report.EmploymentVerifications.Count; i++) { - var company = _report.EmploymentVerifications[i].ClaimedCompany; - if (seenCompanies.Add(company)) + var currentCompany = _report.EmploymentVerifications[i].ClaimedCompany; + + if (i == 0) { + // First entry is always a first occurrence _firstOccurrenceIndices.Add(i); } + else + { + var previousCompany = _report.EmploymentVerifications[i - 1].ClaimedCompany; + // Only skip if same company as immediately preceding entry + if (!string.Equals(currentCompany, previousCompany, StringComparison.OrdinalIgnoreCase)) + { + _firstOccurrenceIndices.Add(i); + } + } } } diff --git a/src/TrueCV.Web/wwwroot/app.css b/src/TrueCV.Web/wwwroot/app.css index 766279d..cfd4720 100644 --- a/src/TrueCV.Web/wwwroot/app.css +++ b/src/TrueCV.Web/wwwroot/app.css @@ -329,7 +329,7 @@ a:hover { .stat-card .stat-label { font-size: 0.875rem; - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); font-weight: 500; } @@ -396,7 +396,7 @@ a:hover { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); border-bottom: 2px solid var(--truecv-gray-200); background-color: var(--truecv-bg-muted); } @@ -860,7 +860,7 @@ h1:focus { } .text-muted { - color: var(--truecv-gray-500) !important; + color: var(--truecv-gray-600) !important; } /* Row selection highlight */ @@ -964,7 +964,7 @@ h1:focus { } .breadcrumb-item a { - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); text-decoration: none; } @@ -973,7 +973,7 @@ h1:focus { } .breadcrumb-item.active { - color: var(--truecv-gray-400); + color: var(--truecv-gray-600); } /* Security badge for upload */ @@ -982,7 +982,7 @@ h1:focus { align-items: center; gap: 0.375rem; font-size: 0.8125rem; - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); margin-top: 1rem; } @@ -1058,7 +1058,7 @@ h1:focus { } .auth-subtitle { - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); margin-bottom: 2rem; } @@ -1086,7 +1086,7 @@ h1:focus { .auth-brand-text { font-size: 1.125rem; - color: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255, 0.9); line-height: 1.6; margin-bottom: 2rem; } @@ -1111,7 +1111,7 @@ h1:focus { .auth-stat-label { font-size: 0.875rem; - color: rgba(255, 255, 255, 0.6); + color: rgba(255, 255, 255, 0.8); margin-top: 0.25rem; } @@ -1132,7 +1132,7 @@ h1:focus { .auth-testimonial cite { font-size: 0.875rem; - color: rgba(255, 255, 255, 0.6); + color: rgba(255, 255, 255, 0.8); font-style: normal; } @@ -1174,7 +1174,7 @@ h1:focus { position: relative; background: var(--truecv-bg-surface); padding: 0 1rem; - color: var(--truecv-gray-500); + color: var(--truecv-gray-600); font-size: 0.875rem; }