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
+11 -11
View File
@@ -42,7 +42,7 @@
a { color: inherit; text-decoration: none; }
/* ── NAV ── */
/* NAV */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
display: flex; align-items: center; justify-content: space-between;
@@ -145,14 +145,14 @@
}
.btn-outline:hover { background: rgba(0,0,0,0.04); transform: translateY(-1px); }
/* ── PAGE CONTENT ── */
/* PAGE CONTENT */
.page-wrap {
max-width: 800px;
margin: 0 auto;
padding: 120px 40px 80px;
}
/* ── HERO ── */
/* HERO */
.about-hero {
padding-bottom: 72px;
border-bottom: 1px solid var(--border);
@@ -184,7 +184,7 @@
margin: 0;
}
/* ── SECTIONS ── */
/* SECTIONS */
.section {
padding: 64px 0;
border-bottom: 1px solid var(--border);
@@ -203,7 +203,7 @@
margin-bottom: 32px;
}
/* ── TEAM ── */
/* TEAM */
.team-grid {
display: grid;
grid-template-columns: 1fr 1fr;
@@ -239,7 +239,7 @@
margin: 0;
}
/* ── GROUP STRUCTURE ── */
/* GROUP STRUCTURE */
.group-entities {
display: flex;
flex-direction: column;
@@ -281,7 +281,7 @@
flex-shrink: 0;
}
/* ── DISCLAIMER ── */
/* DISCLAIMER */
.disclaimer-box {
background: var(--surface);
border: 1px solid var(--border);
@@ -297,7 +297,7 @@
margin: 0;
}
/* ── CTA ── */
/* CTA */
.cta-row {
display: flex;
gap: 16px;
@@ -326,7 +326,7 @@
}
.cta-link-secondary:hover { color: #1d1d1f; }
/* ── FOOTER ── */
/* FOOTER */
footer {
border-top: 1px solid var(--border);
padding: 40px 40px;
@@ -349,13 +349,13 @@
.footer-social {
width: 32px; height: 32px;
border: 1px solid var(--border);
border-radius: 8px;
border-radius: var(--radius-md);
display: flex; align-items: center; justify-content: center;
transition: border-color 0.2s, background 0.2s;
}
.footer-social:hover { border-color: rgba(0,0,0,0.25); background: rgba(0,0,0,0.04); }
/* ── RESPONSIVE ── */
/* RESPONSIVE */
@media (max-width: 900px) {
nav { padding: 0 16px; }
.nav-links { display: none; }