* refactor(ui): normalize dense pages to the locked design system
Sweep of the info-dense surfaces against .claude/rules/design.md; no
behavior changes, classNames and primitive adoption only.
- Replace hand-rolled h1s with PageHeader (import, suppliers, kpi,
salary/employees, skattekonto, settings layout) and drop the one
double title (SalarySettingsContent under the settings h1)
- Replace hand-rolled empty states with EmptyState (skattekonto,
banking/api-keys/oauth/counterparty settings) and hand-rolled
pulse divs with Skeleton (deadlines, report view loaders)
- Remove semantic colors used as chrome: amber/emerald banners in
AGIPanel and SkatteverketPanel, success/warning tints in
kassaflodesanalys, arsredovisning and import become neutral
surfaces with the tint kept on the icon only
- Full-opacity borders everywhere (border-border/30-60,
border-destructive/20-40, border-foreground/30, text-destructive/80)
- Snap off-scale spacing (p-5 to p-6, p-2.5 to p-3, gap/mt-x.5 to
scale values); KPI metric tiles p-6 to p-4 per the tile rule
- Remove the mobile Select that duplicated the invoices status Tabs
(TabsList already scrolls horizontally); single Tabs now serves
both breakpoints
- supplier-invoices: shared formatCurrency instead of a local
formatAmount helper; skattekonto: formatDate/formatDateLong/
formatDateTime instead of raw dates and toLocaleString
- arsredovisning flerarsoversikt converted to the Table primitive
with right-aligned tabular-nums cells
- Settings: CardTitle text-base on section cards, one heading idiom
in AccountSettingsContent, h3 to h2 in CompanyProfileView
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* refactor(i18n): trim text bloat and fix an untranslated sv string
- Fix invoice_credit.create_failed_fallback: sv catalog carried the
English "Failed to create credit note"; now "Kunde inte skapa
kreditfaktura". Translate new_user_checklist.step3_title in en
- Drop descriptions that paraphrase their own title (design.md
forbidden pattern): invoice_detail.credited_description,
invoice_credit.original_card_description, invoice_editor
customer/notes card descriptions (keys deleted from both
catalogs, zero remaining usages); the transaction booking
DialogDescription becomes sr-only so screen readers keep it
- Trim redundant sentences from settings_salary.info_payroll_scope,
settings_backup.intro, ext_cloud_backup_long_description,
settings.name_description, salary_payments.open_payments_note and
shorten invoice_credit.reason_card_description; statutory BFL/tax
prose untouched
- Normalize toast punctuation (dimensions/self_billing
created_description lose the trailing period like their siblings)
- common.delete "Radera" to "Ta bort" (zero live call sites; Radera
stays reserved for irreversible account/company deletion)
Catalogs verified key-identical (4795 keys each) and JSON-parseable.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>