diff --git a/.gitignore b/.gitignore
index 3890fb2..6fe3bc9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,3 +47,6 @@ test-results/
# Meilisearch
data.ms/
meilisearch-data/
+
+# Sensitive handover docs (do not commit)
+docs/handover/PATHS_AND_CREDENTIALS.md
diff --git a/QUICK_REFERENCE.md b/QUICK_REFERENCE.md
new file mode 100644
index 0000000..b3f243d
--- /dev/null
+++ b/QUICK_REFERENCE.md
@@ -0,0 +1,117 @@
+# NaviDocs - Quick Reference
+
+**Critical Paths & Credentials at a Glance**
+
+---
+
+## 🔑 Credentials (CHANGE FOR PRODUCTION!)
+
+| Service | Key/Secret | Location |
+|---------|-----------|----------|
+| **Meilisearch** | `5T66jrwQ8F8cOk4dUlFY0Vp59fMnCsIfi4O6JZl9wzU=` | `/home/setup/navidocs/server/.env` |
+| **JWT Secret** | `your-jwt-secret-here-change-in-production` | `/home/setup/navidocs/server/.env` |
+| **Redis** | No password (local only) | N/A |
+
+---
+
+## 🌐 Access URLs (Windows 11)
+
+| Service | URL |
+|---------|-----|
+| **Frontend** | `http://172.29.75.55:8080/` |
+| **Backend API** | `http://172.29.75.55:8001/` |
+| **Meilisearch** | `http://172.29.75.55:7700/` |
+| **Gitea** | `http://localhost:4000/ggq-admin/navidocs` |
+
+> ⚠️ WSL2 IP (`172.29.75.55`) can change on restart!
+
+---
+
+## 📁 Important Paths
+
+```bash
+# Project Root
+/home/setup/navidocs/
+
+# Database
+/home/setup/navidocs/server/db/navidocs.db
+
+# Uploads
+/home/setup/navidocs/server/uploads/
+
+# Logs
+/tmp/navidocs-backend.log
+/tmp/navidocs-ocr-worker.log
+/tmp/navidocs-frontend.log
+
+# Config
+/home/setup/navidocs/server/.env
+/home/setup/navidocs/client/vite.config.js
+```
+
+---
+
+## 🚀 Quick Commands
+
+```bash
+# Start Everything
+cd /home/setup/navidocs
+./start-all.sh
+
+# Stop Everything
+./stop-all.sh
+
+# View Logs
+tail -f /tmp/navidocs-backend.log
+
+# Check Services
+ss -tlnp | grep -E ":(6379|7700|8001|8080)"
+
+# Get WSL2 IP
+hostname -I | awk '{print $1}'
+
+# Backend Health
+curl http://localhost:8001/health
+
+# Database Backup
+cp server/db/navidocs.db server/db/backup-$(date +%Y%m%d).db
+```
+
+---
+
+## 🔌 Service Ports
+
+| Port | Service | Status |
+|------|---------|--------|
+| **6379** | Redis | ✅ Running |
+| **7700** | Meilisearch | ✅ Running (Docker) |
+| **8001** | Backend API | ✅ Running |
+| **8080** | Frontend | ✅ Running |
+
+---
+
+## 🗂️ Data Locations
+
+| Data Type | Location | Size |
+|-----------|----------|------|
+| SQLite DB | `server/db/navidocs.db` | ~188 KB |
+| Uploads | `server/uploads/` | Empty |
+| Meilisearch | Docker volume `meilisearch_data` | N/A |
+| Logs | `/tmp/navidocs-*.log` | <1 MB |
+
+---
+
+## 🔒 Security Checklist (Before Production)
+
+- [ ] Change Meilisearch master key
+- [ ] Change JWT secret (64+ chars)
+- [ ] Enable HTTPS/TLS
+- [ ] Configure CORS (remove wildcard)
+- [ ] Set `NODE_ENV=production`
+- [ ] Set up database backups
+- [ ] Configure log rotation
+- [ ] Audit dependencies
+
+---
+
+**Full Details:** `/home/setup/navidocs/docs/handover/PATHS_AND_CREDENTIALS.md`
diff --git a/client/index.html b/client/index.html
index 0298120..d2cc382 100644
--- a/client/index.html
+++ b/client/index.html
@@ -19,8 +19,12 @@
-
-
+
+
+
+
+
+
diff --git a/client/src/assets/main.css b/client/src/assets/main.css
index 32e92c7..a8afd9f 100644
--- a/client/src/assets/main.css
+++ b/client/src/assets/main.css
@@ -21,6 +21,21 @@
}
}
+/* Additional base styles */
+@layer base {
+ /* Accessible focus ring */
+ :focus-visible {
+ outline: 2px solid theme('colors.primary.500');
+ outline-offset: 2px;
+ }
+
+ /* Keyboard key styling */
+ kbd {
+ @apply inline-block px-2 py-1 text-xs font-mono rounded border border-dark-200 bg-dark-50 text-dark-700;
+ box-shadow: inset 0 -1px 0 rgba(0,0,0,0.12);
+ }
+}
+
@layer components {
/* Button styles */
.btn {
@@ -137,3 +152,68 @@
overflow: hidden;
}
}
+
+/* Additional component styles (Meilisearch-like polish) */
+@layer components {
+ /* Badges & chips */
+ .badge {
+ @apply inline-flex items-center gap-1 px-3 py-1 rounded-full text-xs font-medium bg-dark-100 text-dark-700;
+ }
+ .badge-primary {
+ @apply bg-primary-100 text-primary-700;
+ }
+ .badge-success {
+ @apply bg-success-100 text-success-700;
+ }
+
+ /* Glass panel */
+ .glass {
+ @apply bg-white/70 backdrop-blur-lg border border-dark-100 shadow-soft;
+ }
+
+ /* Section helpers */
+ .section {
+ @apply py-16 md:py-24;
+ }
+ .section-title {
+ @apply text-4xl md:text-5xl font-black tracking-tight text-dark-900;
+ }
+
+ /* Gradient accent border */
+ .accent-border {
+ position: relative;
+ }
+ .accent-border:before {
+ content: '';
+ position: absolute;
+ inset: -2px;
+ z-index: -1;
+ border-radius: inherit;
+ background: linear-gradient(90deg, theme('colors.primary.500'), theme('colors.secondary.500'));
+ filter: blur(8px);
+ opacity: .3;
+ }
+
+ /* Subtle grid background */
+ .bg-grid {
+ background-image: radial-gradient(rgba(0,0,0,0.05) 1px, transparent 1px);
+ background-size: 16px 16px;
+ background-position: -1px -1px;
+ }
+
+ /* Skeleton shimmer */
+ .skeleton {
+ @apply relative overflow-hidden bg-dark-100 rounded;
+ }
+ .skeleton:after {
+ content: '';
+ position: absolute;
+ inset: 0;
+ transform: translateX(-100%);
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
+ animation: shimmer 1.25s infinite;
+ }
+ @keyframes shimmer {
+ 100% { transform: translateX(100%); }
+ }
+}
diff --git a/docs/ui/CHANGELOG_UI.md b/docs/ui/CHANGELOG_UI.md
new file mode 100644
index 0000000..9a58d9f
--- /dev/null
+++ b/docs/ui/CHANGELOG_UI.md
@@ -0,0 +1,46 @@
+NaviDocs UI Changelog
+
+Date: 2025-10-19
+
+Scope: UI polish only (no backend changes)
+
+Summary
+- Added Meilisearch-inspired polish via Tailwind utility layers and small markup tweaks.
+- Kept changes strictly in the client UI; no server or configuration behavior changed.
+
+Changes
+- client/src/assets/main.css
+ - Added base accessibility and utility styles:
+ - Visible focus ring (:focus-visible) aligned to primary color
+ - kbd styling for keyboard hints
+ - Added component utilities:
+ - badge, badge-primary, badge-success
+ - glass (light translucent panel with blur)
+ - section, section-title (consistent vertical rhythm)
+ - accent-border (soft gradient glow border)
+ - bg-grid (subtle grid background)
+ - skeleton + shimmer keyframes (loading placeholders)
+- client/index.html
+ - Theme color set to primary brand color (#c026d3)
+ - Basic Open Graph meta tags for better link previews
+
+Rationale
+- Aligns typography, spacing, gradients, and micro-interactions with a Meilisearch-style aesthetic without copying proprietary assets.
+- Improves perceived performance (skeletons) and accessibility (focus ring).
+
+Non-Goals
+- No backend API, auth, or data changes.
+- No vendor CSS or fonts added beyond Google Fonts already in use.
+
+Testing
+- Dev: cd client && npm run dev, then browse http://localhost:8080
+- Check focus states via keyboard (Tab/Shift+Tab).
+- Verify badges, gradient borders, and grid background on components that use the new classes.
+
+Security/Privacy
+- No secrets added. The file docs/handover/PATHS_AND_CREDENTIALS.md remains untracked and must not be committed.
+
+Follow-ups (optional)
+- Extract shared headers into a reusable Nav component across views for tighter consistency.
+- Consider Tailwind Typography for rich text rendering of document content.
+