feat: Passwordless cross-device authentication

- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
This commit is contained in:
Bernt
2026-07-07 07:11:50 +00:00
parent 4aa984ad74
commit 6989a98d75
61843 changed files with 5491611 additions and 872231 deletions
@@ -77,7 +77,7 @@
background: #e94560;
color: white;
padding: 1rem 2rem;
border-radius: 8px;
border-radius: var(--radius-md);
text-decoration: none;
font-weight: 600;
margin: 0.5rem;
@@ -107,7 +107,7 @@
.pricing-card {
background: white;
border: 2px solid #e0e0e0;
border-radius: 12px;
border-radius: var(--radius-md);
padding: 2rem;
text-align: center;
transition: transform 0.3s, box-shadow 0.3s;
@@ -129,7 +129,7 @@
background: #e94560;
color: white;
padding: 0.25rem 1rem;
border-radius: 20px;
border-radius: var(--radius-xl);
font-size: 0.8rem;
font-weight: 600;
}
@@ -158,7 +158,7 @@
border-bottom: 1px solid #f0f0f0;
}
.pricing-features li::before {
content: " ";
content: "<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> ";
color: #4caf50;
font-weight: bold;
}
@@ -194,7 +194,7 @@
margin: 0 auto;
background: #f8f9fa;
padding: 2rem;
border-radius: 12px;
border-radius: var(--radius-md);
}
.form-group {
margin-bottom: 1.5rem;
@@ -209,14 +209,14 @@
width: 100%;
padding: 0.75rem;
border: 1px solid #ddd;
border-radius: 6px;
border-radius: var(--radius-sm);
font-size: 1rem;
}
.estimate-result {
background: #1a1a2e;
color: white;
padding: 1.5rem;
border-radius: 8px;
border-radius: var(--radius-md);
margin-top: 2rem;
text-align: center;
}
@@ -233,7 +233,7 @@
margin-bottom: 1.5rem;
padding: 1.5rem;
background: white;
border-radius: 8px;
border-radius: var(--radius-md);
}
.cta-section {