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
+9 -9
View File
@@ -41,13 +41,13 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
.hero::before {
content: '';
position: absolute; top: -80px; right: -60px;
width: 320px; height: 320px; border-radius: 50%;
width: 320px; height: 320px; border-radius: var(--radius-full);
background: rgba(0,0,0,0.04);
}
.hero-logo {
width: 80px; height: 80px;
background: rgba(0,0,0,0.2);
border-radius: 20px;
border-radius: var(--radius-xl);
display: flex; align-items: center; justify-content: center;
font-size: 32px; font-weight: 900;
color: white; margin: 0 auto 24px;
@@ -72,7 +72,7 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
background: rgba(0,0,0,0.18);
backdrop-filter: blur(20px);
border: 1px solid rgba(0,0,0,0.3);
border-radius: 20px; padding: 16px 28px;
border-radius: var(--radius-xl); padding: 16px 28px;
position: relative; z-index: 1;
}
.agg-score {
@@ -138,7 +138,7 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
}
.review-card {
background: var(--background-primary);
border-radius: 20px;
border-radius: var(--radius-xl);
border: 0.5px solid var(--separator);
padding: 24px;
transition: transform 0.2s, box-shadow 0.2s;
@@ -153,7 +153,7 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
}
.reviewer-info { display: flex; align-items: center; gap: 12px; }
.reviewer-avatar {
width: 44px; height: 44px; border-radius: 50%;
width: 44px; height: 44px; border-radius: var(--radius-full);
background: linear-gradient(135deg, #001F4D, #0055CC);
display: flex; align-items: center; justify-content: center;
font-size: 18px; font-weight: 700; color: white; flex-shrink: 0;
@@ -179,7 +179,7 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
/* CTA */
.cta-section {
background: linear-gradient(135deg, #001F4D, #003D99);
border-radius: 24px; padding: 40px 32px;
border-radius: var(--radius-xl); padding: 40px 32px;
text-align: center; margin: 0 20px 40px;
max-width: 920px; margin-left: auto; margin-right: auto;
}
@@ -193,7 +193,7 @@ body { font-family: var(--font-text); background: var(--background-secondary); c
display: inline-block;
background: white; color: #001F4D;
font-size: 17px; font-weight: 700;
padding: 16px 32px; border-radius: 14px;
padding: 16px 32px; border-radius: var(--radius-lg);
text-decoration: none;
transition: transform 0.15s, box-shadow 0.15s;
}
@@ -333,7 +333,7 @@ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
<div class="agg-rating">
<div class="agg-score" style="font-size:1.25rem;font-weight:700;">Kommer snart</div>
<div class="agg-info">
<div class="stars" style="opacity:0;">★★★★★</div>
<div class="stars" style="opacity:0;"></div>
<div class="agg-count">Recensioner efter lansering</div>
</div>
</div>
@@ -370,7 +370,7 @@ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
<div class="reviews-grid" id="reviewsGrid">
<div class="review-card" style="text-align:center;padding:48px 24px;">
<div style="font-size:3rem;margin-bottom:16px;">📝</div>
<div style="font-size:3rem;margin-bottom:16px;"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 13V10L10 3L13 6L6 13H3Z" stroke="#666" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M9 4L12 7" stroke="#666" stroke-width="1.5"/></svg></div>
<h3 style="font-size:1.25rem;font-weight:700;margin-bottom:12px;color:var(--label-primary);">Recensioner kommer snart</h3>
<p style="color:var(--label-secondary);line-height:1.6;max-width:400px;margin:0 auto;">Landvex lanserar under 2026. Recensioner från kunder kommer att publiceras här när plattformen är live.</p>
</div>