feat(css): Phase 3 - Centralize PrimeVue overrides and eliminate anti-patterns
## Objectives Achieved
✅ Zero :deep() in components (eliminated all 4 instances)
✅ Centralized DataTable row styling in App.vue
✅ Replaced CSS hardcoded colors with design tokens
✅ Documented acceptable !important usage
✅ Created comprehensive component styling guidelines
## Changes
### Eliminated :deep() Anti-patterns (4 instances → 0)
- **BankCashRegisterView.vue**: Removed :deep(.bank-row) and :deep(.cash-row)
- **InvoicesView.vue**: Removed :deep(.invoice-paid) and :deep(.invoice-overdue)
- Migrated all row styling to global App.vue for consistency
### Centralized DataTable Row Classes (App.vue)
Added global row styling:
- .invoice-paid / .invoice-overdue (migrated from InvoicesView.vue)
- .bank-row / .cash-row (migrated from BankCashRegisterView.vue)
### Replaced Hardcoded Colors with Design Tokens
- **LoginView.vue**:
- Gradient: #3b82f6, #8b5cf6 → var(--color-primary-light), var(--color-primary)
- Button: #3b82f6, #2563eb → var(--color-primary-light), var(--color-primary)
- **TelegramView.vue**:
- Button: #6366f1, #4f46e5 → var(--color-primary-light), var(--color-primary)
- **DashboardView.vue** (@media print):
- #f5f5f5 → var(--color-bg-muted)
- #e8e8e8 → var(--color-border)
- #f0f0f0 → var(--color-bg-secondary)
- #006600 → var(--color-success)
- #cc0000 → var(--color-error)
### Documentation
Created `docs/COMPONENT_STYLING.md`:
- PrimeVue styling strategy
- Design tokens reference
- DataTable row styling patterns
- !important usage guidelines
- Common mistakes to avoid
## Impact
- **Zero :deep() instances** in entire codebase
- **Single source of truth** for DataTable row classes (App.vue)
- **Consistent color usage** via design tokens
- **Improved maintainability** with clear styling guidelines
- **Build successful** - 401.26 kB CSS bundle (54.71 kB gzipped)
## Testing
- ✅ Build verification passed (npm run build)
- ✅ Zero breaking changes
- ✅ All PrimeVue components styled correctly
- ✅ Row classes work via global CSS (no :deep needed)
## Technical Notes
- Print styles retain !important (acceptable for @media print)
- PrimeVue overrides in components retain !important (intentional customization)
- Chart.js hardcoded colors in JavaScript configs accepted as technical debt
- CSS hardcoded colors eliminated (only design tokens used)
Phase: 3/7 complete
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>