diff --git a/app/assets/css/main.css b/app/assets/css/main.css index 4b39e60..4167651 100644 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -273,6 +273,14 @@ p a, blockquote a { min-width: 0; } +/* ---- Nuxt UI placeholder contrast ---- + Default Nuxt UI placeholder uses `text-dimmed` (#a6a09b) which fails WCAG + AA on cream and white backgrounds (≈2.4:1). Override globally to --text-dim + so USelect/USelectMenu placeholders meet the 4.5:1 ratio. */ +[data-slot="placeholder"] { + color: var(--text-dim); +} + /* ---- SHARED USelectMenu STYLES ---- Apply via: Classes are global (not scoped) because Nuxt UI portals the popup content to body. */ diff --git a/e2e/auth.spec.js b/e2e/auth.spec.js index 5b0daca..f7c60f0 100644 --- a/e2e/auth.spec.js +++ b/e2e/auth.spec.js @@ -44,6 +44,7 @@ test.describe('Authentication flows', () => { test('logout clears auth', async ({ page }) => { await loginAsAdmin(page) await page.goto('/admin') + await page.waitForLoadState('networkidle') await expect(page.locator('.admin-tag')).toBeVisible({ timeout: 15000 }) // Set up response listener BEFORE clicking to avoid race