diff --git a/docs/implementation-plan/06-phase-6-data.md b/docs/implementation-plan/06-phase-6-data.md
index 6e9e587..22c27bb 100644
--- a/docs/implementation-plan/06-phase-6-data.md
+++ b/docs/implementation-plan/06-phase-6-data.md
@@ -1,4 +1,4 @@
-# Phase 6: Encrypted Data Layer
+# Phase 6: Encrypted Data Layer ✅
## Step 24 — Supabase API Adapter ✅
diff --git a/docs/implementation-plan/README.md b/docs/implementation-plan/README.md
index 674d1cc..83bc763 100644
--- a/docs/implementation-plan/README.md
+++ b/docs/implementation-plan/README.md
@@ -61,9 +61,9 @@ This is the implementation plan for Cipher Note, an end-to-end encrypted note-ta
- [x] Step 21 — Login Crypto Flow
- [x] Step 22 — Login UI + Vault Unlock
- [x] Step 23 — Non-Extractable Key Vault + Zustand Store Refactor
-- [ ] Step 24 — Supabase API Adapter
-- [ ] Step 25 — Encrypted Field CRUD
-- [ ] Step 26 — Auto-Save + Sync Flow
+- [x] Step 24 — Supabase API Adapter
+- [x] Step 25 — Encrypted Field CRUD
+- [x] Step 26 — Auto-Save + Sync Flow
- [ ] Step 27 — Supabase Realtime Adapter
- [ ] Step 28 — Multi-Device Session Handling
- [ ] Step 29 — Change Password Flow + UI
diff --git a/src/app/layouts/ProtectedLayout.tsx b/src/app/layouts/ProtectedLayout.tsx
index 93b35de..4da2f77 100644
--- a/src/app/layouts/ProtectedLayout.tsx
+++ b/src/app/layouts/ProtectedLayout.tsx
@@ -9,6 +9,7 @@ import { MobileNav } from './MobileNav'
import { ResizeHandle } from '@/shared/ui/nav/ResizeHandle'
import { VaultIndicator } from '@/features/encryption/ui/VaultIndicator'
import { VaultUnlockDialog } from '@/features/encryption/ui/VaultUnlockDialog'
+import { OfflineBanner } from '@/shared/ui/OfflineBanner'
import { useUiStore } from '@/features/settings/model/ui-store'
import { useResizable } from '@/shared/lib/use-resizable'
import { useVaultTimeout } from '@/features/encryption/model/use-vault-timeout'
@@ -35,7 +36,7 @@ function ProtectedLayout() {
{/* Desktop sidebar */}