diff --git a/PLAN_ISSUE_21.md b/PLAN_ISSUE_21.md
new file mode 100644
index 0000000..1c23c11
--- /dev/null
+++ b/PLAN_ISSUE_21.md
@@ -0,0 +1,59 @@
+# Implementation Plan: Secure WebView for HTML Emails (#21)
+
+## Goal
+Replace the current `flutter_html` based rendering with a hardened WebView-based approach to improve rendering fidelity while strictly enforcing security and privacy.
+
+## 1. Dependency Management
+- **Core**: `webview_flutter` (v4+)
+- **Linux Platform**: `webview_flutter_linux` (Official community-supported or WebKitGTK based implementation). *Note: I will verify the exact package name during implementation.*
+- **Utilities**: `url_launcher` (existing) for opening links in the system browser.
+
+## 2. Secure WebView Component (`lib/ui/widgets/secure_email_webview.dart`)
+Create a new widget `SecureEmailWebView` that encapsulates the `WebViewWidget` and its controller.
+
+### Configuration & Hardening
+- **Disable JavaScript**: `controller.setJavaScriptMode(JavaScriptMode.disabled)`.
+- **Background**: Match the application theme (e.g., transparent or surface color).
+- **Security Headers/CSP**: Inject a Content Security Policy via `` tag in the HTML wrapper:
+ - `default-src 'none'; style-src 'unsafe-inline'; img-src 'self' data:;` (Blocks all external assets by default).
+
+### Image Blocking Logic
+- **Initial State**: Block remote images by injecting a CSP that restricts `img-src` to `data:` and local schemes.
+- **Toggle Mechanism**:
+ - Provide a "Load Remote Images" button in the Flutter UI.
+ - When triggered, re-render the HTML with an updated CSP: `img-src * data:;`.
+
+### Link Interception & Phishing Protection
+- Implement `NavigationDelegate.onNavigationRequest`.
+- **Process**:
+ 1. Intercept any URL that doesn't start with `about:blank` or `data:`.
+ 2. Block the navigation in the WebView.
+ 3. Trigger a Flutter `showDialog` for confirmation.
+- **Phishing Protection Dialog**:
+ - Show the full URL.
+ - **Bold the FQDN**: Parse the URL using `Uri.parse`.
+ - Example: `https://`**`important-bank.com`**`/login`
+ - "Open in Browser" button uses `url_launcher`.
+
+## 3. Integration Plan
+### Step 1: Initialization
+Modify `lib/main.dart` to initialize the Linux WebView platform (using `webview_flutter_linux` or similar) during app startup.
+
+### Step 2: Replace Renderer in Screens
+- **EmailDetailScreen**: Replace `Html(...)` with `SecureEmailWebView(html: body.htmlBody!)`.
+- **ThreadDetailScreen**: Replace `Html(...)` with `SecureEmailWebView(html: body.htmlBody!)`.
+- Remove `flutter_html` imports and dependencies once migration is complete.
+
+## 4. Verification & Security Audit
+- **Manual Tests**:
+ - Open emails with complex HTML layouts.
+ - Verify images are blocked initially.
+ - Verify "Load images" works.
+ - Click various links (http, https, mailto) and verify the confirmation dialog and FQDN bolding.
+- **Security Check**:
+ - Verify that `