feat: sessions management, web manifest, square icon-only buttons, remove lang select

- Backend: migration 002 adds user_agent/ip/last_used_at to refresh_tokens
- Backend: GET /api/auth/sessions + DELETE /api/auth/sessions/{id} endpoints
- Frontend: profile page — sessions section (browser, IP, datetime, revoke)
- Frontend: web manifest + SVG icon for PWA support
- Frontend: remove language selector from all navbars (moved to profile page)
- Frontend: neu-btn--icon-sm class for square icon-only buttons (theme/logout/edit)
- Frontend: manifest link added to all 9 HTML pages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
enzo 2026-03-21 20:14:11 +01:00
parent b851dc61af
commit 97212b7ffa
18 changed files with 280 additions and 42 deletions

View file

@ -693,6 +693,38 @@
flex-wrap: wrap;
}
/* ── Sessions ───────────────────────────────────────────────────────────────── */
.session-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: .75rem;
padding: .6rem 0;
border-bottom: 1px solid var(--neu-border);
}
.session-row:last-child { border-bottom: none; }
.session-info { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.session-browser {
display: flex;
align-items: center;
gap: .4rem;
font-size: .9rem;
color: var(--neu-text);
font-weight: 500;
}
.session-meta {
display: flex;
align-items: center;
gap: .3rem;
font-size: .75rem;
color: var(--neu-text-muted);
flex-wrap: wrap;
}
.session-sep { opacity: .4; }
.session-id { font-family: monospace; opacity: .6; }
/* ── Logo auth LineIcons ─────────────────────────────────────────────────────── */
.logo-icon {
font-size: 2.5rem;