- Full-screen split layout: left branding panel + right login card
- Animated background gradient blobs with CSS keyframes
- Dot-grid overlay for depth
- Glassmorphism login card (backdrop-filter blur, subtle borders)
- Brand icon with pulsing glow animation
- Feature list on left panel
- Input fields with icon prefix (user/key) and password show/hide toggle
- Shimmer effect on sign-in button on hover
- Error shake animation
- Secure badge with green dot indicator
- Blobs hidden after login so dashboard background is clean
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- freeAccessStore.js: JSON-persisted whitelist of shops with optional
expiry dates; isShopAllowed(), addShop(), removeShop(), listShops()
- routes/adminPanel.js: password-protected single-page admin dashboard
served at /d4a-admin; cookie-based session auth (no extra deps);
add / remove / list shops with expiry dates and notes
- server.js: mount /d4a-admin panel; expose GET /free-access/:shop
public API for frontend loaders; import freeAccessStore
Credentials: d4a-admin / Data4autos@2026.
Migrates racewerksengg.myshopify.com from hardcode into the JSON store.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>