PageSourceSearch

https://repsshield.com/pricing/

html repsshield.com collected 2026-10-02 01:59:53 UTC 98,736 bytes, 892 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head>
2    <!-- Analytics will be loaded after DOM ready for better performance -->
3
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
6    
6<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-TZZ5448V"></script>
6<script type="text/javascript" async="" src="https://www.clarity.ms/tag/txssedjw3f?ref=gtm"></script>
6<script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=G-VXZQGNBXN9&amp;cx=c&amp;gtm=4e69u2"></script>
6<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-TZZ5448V"></script>
6<script type="text/javascript" async="" src="//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"></script>
6<script>
7      (function () {
8        var protocol = window.location && window.location.protocol;
9        var isNativeShell = protocol === "capacitor:" || protocol === "ionic:";
10
11        if (!isNativeShell) {
12          return;
13        }
14
15        document.documentElement.classList.add("native-capacitor-shell");
16
17        function clearNativeStartupRoot() {
18          var root = document.getElementById("root");
19          if (!root) {
20            return false;
21          }
22
23          var hasPrerenderedContent =
24            root.getAttribute("data-prerendered") === "true";
25          var hasStartupLoader = !!root.querySelector("#loading-indicator");
26
27          if (!hasPrerenderedContent && !hasStartupLoader) {
28            return false;
29          }
30
31          root.innerHTML = "";
32          root.removeAttribute("data-prerendered");
33          root.removeAttribute("style");
34          root.setAttribute("data-native-startup-cleared", "true");
35          return true;
36        }
37
38        if (!clearNativeStartupRoot()) {
39          var observer = new MutationObserver(function () {
40            if (clearNativeStartupRoot()) {
41              observer.disconnect();
42            }
43          });
44
45          observer.observe(document.documentElement, {
46            childList: true,
47            subtree: true,
48          });
49
50          document.addEventListener(
51            "DOMContentLoaded",
52            function () {
53              clearNativeStartupRoot();
54              observer.disconnect();
55            },
56            { once: true }
57          );
58        }
59      })();
60    </script>
60
61    <style>
62      html.native-capacitor-shell #root[data-prerendered="true"] {
63        visibility: hidden !important;
64        opacity: 0 !important;
65      }
66    </style>
67
68    <!-- Safari Compatibility Meta Tags -->
69    <meta name="format-detection" content="telephone=no">
70    <meta name="apple-mobile-web-app-capable" content="yes">
71    <meta name="apple-mobile-web-app-status-bar-style" content="default">
72    <meta name="apple-touch-fullscreen" content="yes">
73
74    <!-- Additional Safari iOS Support -->
75    <meta name="mobile-web-app-capable" content="yes">
76    <meta name="apple-mobile-web-app-title" content="REPSShield">
77    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
78    <!-- SEO Meta Tags -->
79    <meta name="description" content="REPSShield pricing starts at $10/month with a 14-day free trial. Choose Shield Essential for audit-ready activity logs or Shield Advisor for AI-powered REPS compliance guidance.">
80    <meta name="keywords" content="REPSShield pricing, REP status tracking cost, real estate professional software pricing, free trial, subscription plans, AI tax advisor">
81    <meta name="author" content="REPSShield">
82    <meta name="robots" content="index, follow">
83
84    <!-- Open Graph Meta Tags -->
85    <meta property="og:title" content="REPSShield Pricing - Shield Essential &amp; Shield Advisor Plans">
86    <meta property="og:description" content="Choose Shield Essential for audit-ready activity logging or Shield Advisor for continuous AI-powered REPS compliance guidance.">
87    <meta property="og:type" content="website">
88    <meta property="og:image" content="https://repsshield.com/repsshield-logo-main.png">
89    <meta property="og:url" content="https://repsshield.com/pricing">
90    <meta property="og:locale" content="en_US">
91    <meta property="og:site_name" content="REPSShield">
92
93    <!-- Twitter Card Meta Tags -->
94    <meta name="twitter:card" content="summary_large_image">
95    <meta name="twitter:title" content="REPSShield Pricing - 14-Day Free Trial">
96    <meta name="twitter:description" content="Shield Essential and Shield Advisor plans for REPS documentation, organization, and AI-powered compliance guidance.">
97    <meta name="twitter:image" content="https://repsshield.com/repsshield-logo-main.png">
98
99    <!-- Google Workspace Domain Verification -->
100    <meta name="google-site-verification" content="cqP-09PR0BaU2WIhFBeqgZVvytDSELFNgi81gP7DLYc">
101
102    <!-- Technical Meta Tags -->
103    <meta name="theme-color" content="#55b021">
104    <meta name="apple-mobile-web-app-capable" content="yes">
105    <meta name="apple-mobile-web-app-status-bar-style" content="default">
106    <meta name="apple-mobile-web-app-title" content="REPSShield">
107    <meta name="mobile-web-app-capable" content="yes">
108
109    <!-- SEO Technical Tags -->
110    <link rel="canonical" id="canonical-link" href="https://repsshield.com/pricing">
111    <meta name="referrer" content="no-referrer-when-downgrade">
112    <meta http-equiv="content-language" content="en-US">
113    <meta name="geo.region" content="US">
114    <meta name="geo.placename" content="United States">
115
116    <!-- Resource Links -->
117    <link rel="icon" type="image/x-icon" href="/favicon.ico">
118    <link rel="shortcut icon" href="/favicon.png">
119    <link rel="apple-touch-icon" href="/repsshield-logo-main.png">
120    <link rel="manifest" href="/manifest.json">
121    <link rel="sitemap" type="application/xml" href="/sitemap.xml">
122
123    <!-- LunchMoney Style System with performance optimization -->
124    <link rel="stylesheet" href="/style.css" media="all">
125
126    <!-- Performance: Preload critical CSS -->
127    <link rel="stylesheet" href="/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
128    <noscript><link rel="stylesheet" href="/style.css" /></noscript>
129
130    <title>REPSShield Pricing - Shield Essential &amp; Shield Advisor Plans | 14-Day Free Trial</title>
131
132    <!-- Performance Optimization: Resource Hints -->
133    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="">
134    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="">
135    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
136    <link rel="dns-prefetch" href="//www.google-analytics.com">
137    <link rel="preconnect" href="https://cdn.amplitude.com" crossorigin="">
138
139    <!-- Deferred Google Tag Manager for better performance -->
140    
140<script>
141      // Defer GTM loading until after page load for better performance
142      window.addEventListener("load", function () {
143        (function (w, d, s, l, i) {
144          w[l] = w[l] || [];
145          w[l].push({
146            "gtm.start": new Date().getTime(),
147            event: "gtm.js",
148          });
149          var f = d.getElementsByTagName(s)[0],
150            j = d.createElement(s),
151            dl = l != "dataLayer" ? "&l=" + l : "";
152          j.async = true;
153          j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
154          f.parentNode.insertBefore(j, f);
155        })(window, document, "script", "dataLayer", "GTM-TZZ5448V");
156      });
157    </script>
157
158
159    <!-- Structured Data for SEO -->
160    
160<script type="application/ld+json">
161      {
162        "@context": "https://schema.org",
163        "@type": "SoftwareApplication",
164        "name": "REPSShield",
165        "applicationCategory": "BusinessApplication",
166        "description": "Professional IRS REP tracking software to track REP hours and maintain IRS compliance for real estate professionals",
167        "url": "https://repsshield.com",
168        "operatingSystem": "Web Browser",
169        "softwareVersion": "1.0",
170        "offers": {
171          "@type": "Offer",
172          "price": "5.00",
173          "priceCurrency": "USD",
174          "priceValidUntil": "2026-12-31"
175        },
176        "applicationSubCategory": "Time Tracking Software",
177        "featureList": [
178          "IRS REP tracking",
179          "Track REP hours",
180          "IRS compliance tools",
181          "Material participation tracking",
182          "Audit-ready reports",
183          "Real estate professional time tracking"
184        ],
185        "creator": {
186          "@type": "Organization",
187          "name": "REPSShield",
188          "url": "https://repsshield.com"
189        }
190      }
191    </script>
191
192    
vendor: 3,251 bytes, lines 192-268
192<script type="text/javascript">
193      (function (e, c) {
194        if (!c.__SV) {
195          var l, h;
196          window.mixpanel = c;
197          c._i = [];
198          c.init = function (q, r, f) {
199            function t(d, a) {
200              var g = a.split(".");
201              2 == g.length && ((d = d[g[0]]), (a = g[1]));
202              d[a] = function () {
203                d.push([a].concat(Array.prototype.slice.call(arguments, 0)));
204              };
205            }
206            var b = c;
207            "undefined" !== typeof f ? (b = c[f] = []) : (f = "mixpanel");
208            b.people = b.people || [];
209            b.toString = function (d) {
210              var a = "mixpanel";
211              "mixpanel" !== f && (a += "." + f);
212              d || (a += " (stub)");
213              return a;
214            };
215            b.people.toString = function () {
216              return b.toString(1) + ".people (stub)";
217            };
218            l =
219              "disable time_event track track_pageview track_links track_forms track_with_groups add_group set_group remove_group register register_once alias unregister identify name_tag set_config reset opt_in_tracking opt_out_tracking has_opted_in_tracking has_opted_out_tracking clear_opt_in_out_tracking start_batch_senders start_session_recording stop_session_recording people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user people.remove".split(
220                " "
221              );
222            for (h = 0; h < l.length; h++) t(b, l[h]);
223            var n = "set set_once union unset remove delete".split(" ");
224            b.get_group = function () {
225              function d(p) {
226                a[p] = function () {
227                  b.push([
228                    g,
229                    [p].concat(Array.prototype.slice.call(arguments, 0)),
230                  ]);
231                };
232              }
233              for (
234                var a = {},
235                  g = ["get_group"].concat(
236                    Array.prototype.slice.call(arguments, 0)
237                  ),
238                  m = 0;
239                m < n.length;
240                m++
241              )
242                d(n[m]);
243              return a;
244            };
245            c._i.push([q, r, f]);
246          };
247          c.__SV = 1.2;
248          var k = e.createElement("script");
249          k.type = "text/javascript";
250          k.async = !0;
251          k.src =
252            "undefined" !== typeof MIXPANEL_CUSTOM_LIB_URL
253              ? MIXPANEL_CUSTOM_LIB_URL
254              : "file:" === e.location.protocol &&
255                "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)
256              ? "https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js"
257              : "//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";
258          e = e.getElementsByTagName("script")[0];
259          e.parentNode.insertBefore(k, e);
260        }
261      })(document, window.mixpanel || []);
262      mixpanel.init("edfe0ecd8c675dbbc5d0103ee433f5e5", {
263        autocapture: true,
264        // Session recording consolidated into PostHog — Mixpanel keeps
265        // analytics/autocapture only, it no longer records sessions.
266        record_sessions_percent: 0,
267      });
268    </script>
268
269
270    <!-- Amplitude Analytics (session replay consolidated into PostHog:
271         the Session Replay plugin is no longer loaded or registered) -->
272    
272<script defer="" src="https://cdn.amplitude.com/libs/analytics-browser-2.11.1-min.js.gz"></script>
272
273    
273<script>
274      window.addEventListener("load", function () {
275      if (window.amplitude?.init) {
276        window.amplitude.init("c705623f4bce3f86b242ede807f4c23e", {
277          autocapture: { elementInteractions: true },
278        });
279      }
280      });
281    </script>
281
282    
282<script type="module" crossorigin="" src="/assets/index-DGo-vssZ.js"></script>
282
283    <link rel="modulepreload" crossorigin="" href="/assets/vendor-Qgthw7N1.js">
284    <link rel="stylesheet" crossorigin="" href="/assets/index-C2doZrJs.css">
285  <style id="immediate-overlay-kill">
286            vite-error-overlay,
287            [data-type="error"],
288            .error-overlay {
289              display: none !important;
290              visibility: hidden !important;
291              opacity: 0 !important;
292              pointer-events: none !important;
293              z-index: -999999 !important;
294            }
295            #root { display: block !important; visibility: visible !important; opacity: 1 !important; }
296            body { pointer-events: auto !important; visibility: visible !important; opacity: 1 !important; }
297          </style>
297<script defer="" src="https://cloud.umami.is/script.js" data-website-id="0473b837-662f-4cd9-ada3-b65b89dc1e73"></script>
297<link rel="modulepreload" as="script" crossorigin="" href="/assets/PricingPage-d-MW6XDB.js"><link rel="modulepreload" as="script" crossorigin="" href="/assets/minus-DxLgY3aB.js">
297<script type="application/ld+json" data-page="pricing">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How does the 14-day free trial work?","acceptedAnswer":{"@type":"Answer","text":"Start your free trial immediately with full access to all features on your chosen plan. No credit card required upfront. After 14 days, choose to continue with your selected plan or cancel anytime."}},{"@type":"Question","name":"What is the AI Compliance Advisor on the Shield Advisor plan?","acceptedAnswer":{"@type":"Answer","text":"Think of it as a compliance co-pilot that lives inside REPSShield. Ask it REPS questions like 'Do I qualify this year?', 'What are my documentation gaps?', or 'How do STR rules apply to my properties?' and it helps you organize your next steps with guidance grounded in IRS publications and Tax Court context."}},{"@type":"Question","name":"What makes REPSShield different from basic time trackers?","acceptedAnswer":{"@type":"Answer","text":"REPSShield is purpose-built for IRS REP compliance with AI automation, audit-ready reporting, and real estate-specific features like material participation tracking and Gmail integration."}},{"@type":"Question","name":"Can I change my plan anytime?","acceptedA
297nswer":{"@type":"Answer","text":"Yes. Move from Shield Essential to Shield Advisor or adjust your billing interval anytime through your account settings. Changes take effect at your next billing cycle."}},{"@type":"Question","name":"Is my data secure and audit-ready?","acceptedAnswer":{"@type":"Answer","text":"Absolutely. We use enterprise-grade encryption and generate professional audit reports that meet IRS documentation requirements for Real Estate Professional status."}}]}</script>
297<script type="application/ld+json" data-page="pricing">{"@context":"https://schema.org","@type":"Offer","name":"REPSShield Shield Essential Plan","description":"Audit-ready REPS activity logging, documentation, and reports for real estate investors","price":"10.00","priceCurrency":"USD","priceValidUntil":"2027-12-31","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"REPSShield"}}</script>
297<script type="application/ld+json" data-page="pricing">{"@context":"https://schema.org","@type":"Offer","name":"REPSShield Shield Advisor Plan","description":"Everything in Shield Essential plus AI-powered REPS compliance guidance and personalized recommendations","price":"29.00","priceCurrency":"USD","priceValidUntil":"2027-12-31","availability":"https://schema.org/InStock","seller":{"@type":"Organization","name":"REPSShield"}}</script>
297<script defer="" data-domain="repsshield.com" data-api="https://plausible.io/api/event" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"></script>
297</head>
298  <body class="wallpaper-bg">
299    <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 299-301
299
300    <noscript><iframe
301        src="https://www.googletagmanager.com/ns.html?id=
301GTM-TZZ5448V
vendor: 126 bytes, lines 301-307
301"
302        height="0"
303        width="0"
304        style="display: none; visibility: hidden"
305      ></iframe
306    ></noscript>
307    
307<!-- End Google Tag Manager (noscript) -->
308
309    <!-- Debug: Ensure body and root are visible -->
310    <style>
311      body {
312        visibility: visible !important;
313        opacity: 1 !important;
314        display: block !important;
315        background-color: #f7f7f7;
316      }
317      #root {
318        visibility: visible !important;
319        opacity: 1 !important;
320        display: block !important;
321        min-height: 100vh;
322      }
323      .native-startup-shell {
324        min-height: 100vh;
325        display: flex;
326        align-items: center;
327        justify-content: center;
328        background: #f7f7f7;
329        color: #111827;
330        font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
331        padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
332      }
333      .native-startup-mascot-wrap {
334        position: relative;
335        display: inline-flex;
336        flex-direction: column;
337        align-items: center;
338        margin: 16px 0 24px;
339      }
340      .native-startup-mascot {
341        width: 96px;
342        height: 96px;
343        -o-object-fit: contain;
344           object-fit: contain;
345        animation: native-startup-bounce 1.4s ease-in-out infinite;
346      }
347      .native-startup-shadow {
348        width: 64px;
349        height: 12px;
350        margin-top: 8px;
351        border-radius: 999px;
352        background: rgba(0, 0, 0, 0.18);
353        filter: blur(2px);
354        animation: native-startup-shadow 1.4s ease-in-out infinite;
355      }
356      @keyframes native-startup-bounce {
357        0%, 100% { transform: translateY(0); }
358        50% { transform: translateY(-14px); }
359      }
360      @keyframes native-startup-shadow {
361        0%, 100% { transform: scale(1); opacity: 0.2; }
362        50% { transform: scale(0.72); opacity: 0.1; }
363      }
364    </style>
365
366    <div id="root" data-prerendered="true"><div class="min-h-screen flex flex-col" data-prerendered="true"><header class="bg-transparent safe-area-top mt-6"><div class="lm-container"><div class="flex justify-between items-center h-16"><a href="/" class="flex items-center hover:opacity-80 transition-opacity"><img src="/repsshield-logo-main.png" alt="REPSShield Logo" class="h-6 w-6 sm:h-8 sm:w-8 mr-2 sm:mr-3"><span class="text-base font-semibold" style="color: var(--color-text); margin: 0px; line-height: 1.5;">REPSShield</span></a><nav class="hidden md:flex items-center space-x-6" role="navigation" aria-label="Main navigation"><ul class="flex items-center space-x-6 list-none m-0 p-0"><li class="relative group"><a aria-haspopup="true" aria-expanded="false" href="/features" class="lm-nav-link flex items-center">Features<svg class="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></a><ul class="absolute left-0 mt-2 w-56 bg-white rounded-md shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 border list-none p-2" role="menu" aria-label="Features submenu"><li><a role="menuitem" href="/features/time-tracking" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">REP Time Tracking</a></li><li><a role="menuitem" href="/features/material-participation" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">Material Participation Tests</a></li><li><a role="menuitem" href="/features/audit-ready-reporting" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">Audit-Ready Reports</a></li><li><a role="menuitem" href="/features/goal-progress-tracker" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">REP Goal Tracker</a></li><li><a role="menuitem" href="/features/multi-property-support" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">Multi-Property Management</a></li><li><a role="menuitem" href="/features/premium-features" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">AI-Powered Features</a></li></ul></li><li class="relative group"><a aria-haspopup="true" aria-expanded="false" href="/tools" class="lm-nav-link flex items-center">Tools<svg class="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></a><ul class="absolute left-0 mt-2 w-56 bg-white rounded-md shadow-lg op
366acity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-200 z-50 border list-none p-2" role="menu" aria-label="Tools submenu"><li><a role="menuitem" href="/tools/rental-calculator" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">Rental Property Calculator</a></li><li><a role="menuitem" href="/tools/brrr-calculator" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">BRRR Strategy Calculator</a></li><li><a role="menuitem" href="/tools/rep-status-calculator" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">REP Status Calculator</a></li><li><a role="menuitem" href="/tools/rep-status-audit-scan" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">REP Audit Scan</a></li><li><a role="menuitem" href="/tools/rep-hours-tracker" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">REP Hours Tracker</a></li><li><a role="menuitem" href="/tools/1031-exchange-timer" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">1031 Exchange Timer</a></li><li><a role="menuitem" href="/tools/cost-seg-estimator" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 rounded">Cost Seg Estimator</a></li></ul></li><li><a href="/pricing" class="lm-nav-link">Pricing</a></li><li><a href="/why-reps-shield" class="lm-nav-link">Why REPSShield?</a></li><li><a href="/blog" class="lm-nav-link">Blog</a></li><li><a href="/about" class="lm-nav-link">About</a></li><li><a href="/login"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 h-12 px-4 py-2 sm:h-10 border border-[#44958C] text-[#44958C] bg-white hover:bg-[#44958C] hover:text-white transition-colors" aria-label="Sign in to your account">Login</button></a></li></ul></nav><div class="md:hidden"><div><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 hover:bg-accent hover:text-accent-foreground h-10 rounded-md sm:h-9 p-2 touch-target" aria-label="Toggle navigation menu"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-5 w-5 transition-transform duration-200"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div></div></div></header><main class="flex-1"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"><div class="text-center mb-16 space-y-6"><div class="mb-6"><span class="inline-block rounded-full bg-green-50 text-green-700 text-xs font-bold px-4 py-1.5">Pricing</span></div><h1 class="text-4xl md:text-5xl font-bold text-gray-900 dark:text-white">Choose How You Want to Protect Your REPS Deduction</h1><p class="text-xl text-gray-600 dark:text-gray-300 max-w-3xl mx-auto leading-relaxed">Whether you simply need an audit-ready activity log or ongoing AI guidance to stay compliant, REPSShield helps you document, organize, and better prepare your REPS records throughout the year.</p><div class="flex items-center justify-center mt-8"><div class="relative inline-flex items-center bg-gray-100 dark:bg-gray-800 rounded-full p-1 gap-1"><button class="px-5 py-2 rounded-full text-sm font-medium transition-all duration-200 bg-white dark:bg-gray-700 text-gray-900 dark:text-white shadow-sm">Monthly</button><button class="px-5 py-2 rounded-full text-sm font-medium transition-all duration-200 flex items-center gap-2 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200">Annual<span class="bg-green-600 text-white text-xs font-semibold px-2 py-0.5 rounded-full">Save 20%</span></button></div></div></div><div class="grid lg:grid-cols-2 gap-8 mb-16 max-w-5xl mx-auto"><div class="bg-card text-card-foreground relative border border-gray-200 dark:border-gray-700 hover:border-green-200 dark:hover:border-green-700 transition-all duration-200 rounded-2xl shadow-sm hover:shadow-md flex flex-col"><div class="flex flex-col p-6 text-center px-6 pt-8 pb-6 space-y-3"><div class="text-2xl font-bold text-gray-900 dark:text-white tracking-tight">Shield Essential</div><div class="space-y-2"><p class="text-base font-semibold text-gray-900 dark:text-white">Build an audit-ready activity log.</p><p class="text-sm text-gray-600 dark:text-gray-400 leading-relaxed">Designed for investors who already understand REPS requirements and simply need the easiest way to document qualifying activities throughout the year.</p></div><div class="mascot-container mt-3 mb-5"><img src="/repsshield-logo-main.png" alt="REPSShield" class="bouncing-mascot-price">
366<div class="mascot-shadow-price"></div></div><div class="mb-2"><div class="h-14 flex items-center justify-center"><div class="h-10 w-24 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></div></div></div><p class="text-sm text-gray-600 dark:text-gray-300">Full access, cancel anytime</p></div><div class="p-6 pt-0 px-6 pb-6 flex flex-col flex-1"><div class="flex-1"></div><div class="mt-8"><a href="/auth?plan=base"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm ring-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 border bg-background hover:text-accent-foreground h-12 px-4 sm:h-10 w-full border-green-300 text-green-700 hover:bg-green-50 dark:border-green-600 dark:text-green-400 dark:hover:bg-green-900/20 py-3 rounded-xl font-semibold transition">Start Tracking</button></a><p class="text-xs text-center text-gray-500 dark:text-gray-400 mt-2">14-day free trial. No credit card required.</p></div></div></div><div class="bg-card text-card-foreground duration-200 relative border-2 border-green-500 dark:border-green-500 bg-gradient-to-br from-green-50 to-blue-50 dark:from-green-900/20 dark:to-blue-900/20 rounded-2xl shadow-md hover:shadow-lg transition-shadow flex flex-col"><div class="absolute -top-4 left-1/2 -translate-x-1/2"><div class="border transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent hover:bg-primary/80 bg-green-600 text-white px-4 py-1 flex items-center justify-center text-sm font-medium rounded-full shadow-sm whitespace-nowrap"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star h-4 w-4 mr-1 shrink-0"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>Most Popular</div></div><div class="flex flex-col p-6 text-center px-6 pt-8 pb-6 space-y-3"><div class="text-2xl font-bold text-green-700 dark:text-white tracking-tight">Shield Advisor</div><div class="space-y-2"><p class="text-base font-semibold text-gray-900 dark:text-white">Your AI REPS Compliance Advisor.</p><p class="text-sm text-gray-600 dark:text-gray-400 leading-relaxed">Everything in Shield Essential plus continuous AI guidance that helps identify compliance gaps, monitor participation, and provide personalized recommendations to better prepare for tax season.</p></div><div class="mascot-container mt-3 mb-5"><img src="/repsshield-logo-main.png" alt="REPSShield" class="bouncing-mascot-price"><div class="mascot-shadow-price"></div></div><div class="mb-2"><div class="h-14 flex items-center justify-center"><div class="h-10 w-24 bg-gray-200 dark:bg-gray-700 rounded animate-pulse"></div></div></div><p class="text-sm text-gray-600 dark:text-gray-300">Full access, cancel anytime</p></div><div class="p-6 pt-0 px-6 pb-6 flex flex-col flex-1"><div class="flex-1"></div><div class="mt-8"><a href="/auth?plan=premium"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm ring-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 h-12 px-4 sm:h-10 w-full bg-green-600 hover:bg-green-700 text-white py-3 rounded-xl font-semibold shadow-sm hover:shadow-md transition">Protect My Deduction</button></a><p class="text-xs text-center text-gray-500 dark:text-gray-400 mt-2">14-day free trial. No credit card required.</p></div></div></div></div><section class="max-w-5xl mx-auto mb-20 px-4"><div class="text-center mb-8"><h2 class="text-3xl font-extrabold text-gray-900 dark:text-white mb-4 leading-snug">Compare What's Included</h2><p class="text-base text-gray-600 dark:text-gray-400 max-w-2xl mx-auto leading-relaxed">Both plans include the core tracking and documentation tools. Shield Advisor adds the AI guidance layer for year-round REPS compliance support.</p></div><div class="overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900"><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-200 bg-gray-50 text-xs font-bold uppercase tracking-wide text-gray-600 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-300"><div class="px-4 py-4 sm:px-6">Features</div><div class="px-2 py-4 text-center sm:px-4"><span class="hidden sm:inline">Shield Essential</span><span class="sm:hidden">Essential</span></div><div class="bg-green-50 px-2 py-4 text-center text-green-700 dark:bg-green-900/20 dark:text-green-300 sm:px-4"><span class="hidden sm:inline">Shield Advisor</span><span class="sm:hidden">Advisor</span></div></div><div><div class="border-b border-gray-200 bg-blue-50/60 px-4 py-3 text-xs font-bold uppercase tracking-wide text-blue-700 dark:border-gray-700 dark:bg-blue-900/20 dark:text-blue-300 sm:px-6">Activity Tracking &amp; Documentation</div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Unlimited rental properties</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Unlimited invited users</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">AI email analysis</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">AI calendar analysis</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Smart AI time logging</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Geofenced property visit detection</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">IRS-ready reports &amp; exports</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Statements</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill=
366"none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Android app</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">iPhone app</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Secure cloud sync</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div></div><div><div class="border-b border-gray-200 bg-blue-50/60 px-4 py-3 text-xs font-bold uppercase tracking-wide text-blue-700 dark:border-gray-700 dark:bg-blue-900/20 dark:text-blue-300 sm:px-6">AI Guidance &amp; Compliance</div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">AI Compliance Advisor</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Compliance Mode</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Material Participation insights</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Personalized recommendations</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">IRS guidance</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Proactive compliance alerts</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div><div class="grid grid-cols-[minmax(0,1fr)_5.5rem_5.5rem] sm:grid-cols-[minmax(0,1fr)_11rem_11rem] border-b border-gray-100 text-sm last:border-b-0 dark:border-gray-800"><div class="flex min-h-12 items-center px-4 py-3 font-medium text-gray-900 dark:text-gray-100 sm:px-6">Ask AI tax questions</div><div class="flex min-h-12 items-center justify-center px-2 py-3 sm:px-4"><span aria-label="Shield Essential not included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus h-4 w-4"><path d="M5 12h14"></path></svg></span></div><div class="flex min-h-12 items-center justify-center bg-green-50/50 px-2 py-3 dark:bg-green-900/10 sm:px-4"><span aria-label="Shield Advisor included" class="inline-flex h-7 w-7 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-4 w-4"><path d="M20 6 9 17l-5-5"></path></svg></span></div></div></div></div></section><section class="max-w-5xl mx-auto mb-20 px-4"><div class="text-center mb-8"><h2 class="text-3xl font-extrabold text-gray-900 dark:text-white mb-4 leading-snug">Who's This For?</h2></div><div class="grid md:grid-cols-2 gap-8 mb-8"><div class="rounded-2xl border p-6 shadow-sm border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-900"><div class="mb-5 flex h-12 w-12 items-center justify-center rounded-full bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-6 
366w-6"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h3 class="text-xl font-bold text-blue-700 dark:text-blue-300">Shield Essential</h3><p class="mt-1 text-sm text-gray-600 dark:text-gray-400">Ideal if you:</p><ul class="mt-4 space-y-3"><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Already understand REPS rules</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Work with a CPA</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Need organized documentation</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-blue-50 text-blue-700 dark:bg-blue-900/30 dark:text-blue-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Want audit-ready reports</span></li></ul></div><div class="rounded-2xl border p-6 shadow-sm border-green-200 bg-green-50/60 dark:border-green-800 dark:bg-green-900/10"><div class="mb-5 flex h-12 w-12 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-6 w-6"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h3 class="text-xl font-bold text-green-700 dark:text-green-300">Shield Advisor</h3><p class="mt-1 text-sm text-gray-600 dark:text-gray-400">Ideal if you:</p><ul class="mt-4 space-y-3"><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Aren't sure you're qualifying</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Want year-round AI guidance</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Want proactive recommendations</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Want help staying compliant</span></li><li class="flex items-start gap-3 text-sm font-medium text-gray-800 dark:text-gray-200"><span class="mt-0.5 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check h-3.5 w-3.5"><path d="M20 6 9 17l-5-5"></path></svg></span><span>Want confidence before tax season</span></li></ul></div></div><div class="rounded-2xl border border-amber-300 bg-amber-50 p-6 shadow-sm dark:border-amber-700 dark:bg-amber-900/10"><div class="flex flex-col gap-5 sm:flex-row sm:items-start"><div class="flex h-14 w-14 shrink-0 items-center justify-center rounded-full bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield h-7 w-7"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div><div><h3 class="text-xl font-bold text-gray-900 dark:text-white">Protect a Tax Benefit Worth Thousands</h3><p class="mt-2 text-sm leading-relaxed text-gray-700 dark:text-gray-300">Real Estate Professional Status can significantly reduce taxes for qualifying investors. REPSShield helps you document qualifying activities, stay organized, and maintain records that are better prepared for IRS review.</p><p class="mt-3 text-xs leading-relaxed text-gray-600 dark:text-gray-400">REPSShield does not provide legal or tax advice. Always consult a qualified tax professional.</p></div></div></div></section><div class="max-w-3xl mx-auto mb-16"><div class="bg-white dark:bg-gray-900 rounded-2xl p-8 shadow-sm"><div class="text-center"><div class="bg-green-100 dark:bg-green-900/30 rounded-full w-16 h-16 mx-auto mb-5 flex items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-8 w-8 text-green-600 dark:text-green-400"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg></div><h2 class="text-3xl font-bold text-gray-900 dark:text-white mb-4"><span class="text-green-600">Partner</span> with REPSShield</h2><p class="text-lg text-gray-600 dark:text-gray-300 mb-4 leading-relaxed">Join our affiliate program and earn <span class="font-semibold text-green-600 dark:text-green-400">20% recurring commissions</span> while helping real estate professionals stay IRS compliant. Gain access to industry-leading support, resources, and transparent tracking.</p><p class="text-lg text-gray-600 dark:text-gray-300 mb-8 leading-relaxed">Whether you're a tax professional, coach, or industry influencer, we provide dedicated support and professional marketing tools to maximize your success.</p><div class="flex flex-col sm:flex-row gap-3 justify-center"><a href="/affiliate-program"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 border bg-background hover:bg-accent hover:text-accent-foreground h-12 sm:h-10 border-green-300 text-green-700 dark:border-green-600 dark:text-green-400 px-5 py-3 rounded-lg transition">Learn More</button></a><a href="/affiliate-signup"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 h-12 sm:h-10 bg-green-600 hover:bg-green-700 text-white px-5 py-3 rounded-lg shadow-sm hover:shadow-md transition">Apply Now</button></a></div></div></div></div><div class="max-w-4xl mx-auto"><div class="space-y-16"><div class="text-center"><h3 class="text-2xl font-bold text-green-700 dark:text-green-400 mb-4">How does the 14-day free trial work?</h3><p class="text-lg text-gray-700 dark:text-gray-300 leading-relaxed max-w-2xl mx-auto">Start your free trial immediately with full access to all features on your chosen plan. No credit card required upfront. After 14 days, choose to continue with your selected plan or cancel anytime.</p></div><div class="text-center"><h3 class="text-2xl font-bold text-green-700 dark:text-green-400 mb-4">What is the AI Compliance Advisor on the Shield Advisor plan?</h3><p class="text-lg text-gray-700 dark:text-gray-300 leading-relaxed max-w-2xl mx-auto">Think of it as a compliance co-pilot that lives inside REPSShield. Ask it REPS questions like 'Do I qualify this year?', 'What are my documentation gaps?', or 'How do STR rules apply to my properties?' and it helps you organize your next steps with guid
366ance grounded in IRS publications and Tax Court context.</p></div><div class="text-center"><h3 class="text-2xl font-bold text-green-700 dark:text-green-400 mb-4">What makes REPSShield different from basic time trackers?</h3><p class="text-lg text-gray-700 dark:text-gray-300 leading-relaxed max-w-2xl mx-auto">REPSShield is purpose-built for IRS REP compliance with AI automation, audit-ready reporting, and real estate-specific features like material participation tracking and Gmail integration.</p></div><div class="text-center"><h3 class="text-2xl font-bold text-green-700 dark:text-green-400 mb-4">Can I change my plan anytime?</h3><p class="text-lg text-gray-700 dark:text-gray-300 leading-relaxed max-w-2xl mx-auto">Yes. Move from Shield Essential to Shield Advisor or adjust your billing interval anytime through your account settings. Changes take effect at your next billing cycle.</p></div><div class="text-center"><h3 class="text-2xl font-bold text-green-700 dark:text-green-400 mb-4">Is my data secure and audit-ready?</h3><p class="text-lg text-gray-700 dark:text-gray-300 leading-relaxed max-w-2xl mx-auto">Absolutely. We use enterprise-grade encryption and generate professional audit reports that meet IRS documentation requirements for Real Estate Professional status.</p></div></div></div></div></main><section class="relative overflow-hidden border-b-[3px] border-[#44958C] bg-[#FDF8EC]"><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex left-[5%] top-10 -rotate-6 bg-sky-100">🏠</span><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex right-[6%] top-12 rotate-6 bg-amber-100">🔑</span><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex left-[9%] bottom-24 -rotate-3 bg-teal-100">⏱️</span><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex right-[8%] bottom-28 rotate-3 bg-rose-100">📅</span><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex left-[16%] top-24 rotate-2 bg-emerald-100">🛡️</span><span aria-hidden="true" class="absolute z-0 hidden h-14 w-14 items-center justify-center rounded-2xl text-[26px] shadow-sm ring-1 ring-black/5 md:flex right-[17%] top-28 -rotate-2 bg-violet-100">📋</span><div class="lm-container relative z-10"><div class="mx-auto max-w-2xl px-6 py-16 text-center sm:py-20"><p class="text-[13px] font-semibold uppercase tracking-[0.18em] text-[#44958C]">Built for real estate professionals</p><h2 class="mt-4 font-['Playfair_Display'] text-4xl font-bold leading-tight tracking-tight text-gray-900 sm:text-5xl">A thoughtful tool for serious <span class="relative inline-block whitespace-nowrap"><span aria-hidden="true" class="absolute inset-x-0 bottom-1 h-[0.32em] rounded-sm bg-yellow-300/80"></span><span class="relative">REP clarity</span></span>.</h2><p class="mx-auto mt-5 max-w-xl text-lg leading-relaxed text-gray-600">Join thousands of real estate professionals who track hours effortlessly, stay audit-ready, and protect their REP status with confidence.</p><form class="mx-auto mt-9 max-w-lg"><div class="flex flex-col gap-2 rounded-[2rem] border border-gray-200 bg-white p-2 shadow-md shadow-amber-900/5 sm:flex-row sm:items-center sm:rounded-full"><input type="email" class="flex w-full border-input py-2 ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 sm:h-10 text-base sm:text-sm sm:rounded-md touch-manipulation h-12 flex-1 rounded-full border-0 bg-transparent px-4 text-gray-900 placeholder-gray-400 shadow-none focus-visible:ring-0" placeholder="Enter your email" required="" value=""><button class="inline-flex items-center gap-2 whitespace-nowrap text-sm r
366ing-offset-background duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&amp;_svg]:pointer-events-none [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 touch-manipulation active:scale-[0.97] active:opacity-90 py-2 sm:h-10 h-12 w-full shrink-0 justify-center rounded-full bg-[#44958C] px-6 font-medium text-white transition-colors hover:bg-[#3A7F76] sm:w-auto" type="submit">Get Started Free<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4 w-4"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></button></div><p class="mt-4 text-sm text-gray-500">14-day free trial · <span class="font-medium text-gray-700 underline decoration-yellow-400 decoration-2 underline-offset-4">No credit card required</span> · Cancel anytime</p></form></div></div></section><footer class="bg-white border-t mt-12 sm:mt-16 spacing-responsive-lg safe-area-bottom"><div class="container-mobile container-safe"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-6 gap-8 lg:gap-12"><div class="lg:col-span-1 max-w-md"><div class="flex items-center mb-3 sm:mb-4"><img src="/repsshield-logo-main.png" alt="REPSShield Logo" class="h-6 w-6 sm:h-8 sm:w-8 mr-2 sm:mr-3"><span class="text-responsive-base sm:text-xl font-semibold" style="color: var(--color-text);">REPSShield</span></div><p class="text-gray-600 dark:text-gray-300 mb-3 sm:mb-4 text-responsive-xs">Professional time tracking for Real Estate Professional status qualification. IRS-compliant, audit-ready, AI-powered.</p></div><div><h3 class="text-responsive-sm font-semibold mb-3 sm:mb-4" style="color: var(--color-text);">Features</h3><div class="space-y-1 sm:space-y-2"><a href="/features/time-tracking" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Time Tracking</a><a href="/features/material-participation" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Material Participation</a><a href="/features/audit-ready-reporting" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Audit Reports</a><a href="/features/goal-progress-tracker" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Goal Tracker</a><a href="/features/multi-property-support" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Multi Property</a><a href="/features/premium-features" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">AI Features</a></div></div><div><h3 class="text-responsive-sm font-semibold mb-3 sm:mb-4" style="color: var(--color-text);">Tools</h3><div class="space-y-1 sm:space-y-2"><a href="/tools/rental-calculator" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Rental Calculator</a><a href="/tools/brrr-calculator" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">BRRR Calculator</a><a href="/tools/rep-status-calculator" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">REP Status Calculator</a><a href="/tools/rep-status-audit-scan" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Audit Scan</a><a href="/tools/rep-hours-tracker" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Hours Tracker</a><a href="/tools/1031-exchange-timer" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">1031 Exchange Timer</a></div></div><div><h3 class="text-responsive-sm font-semibold mb-3 sm:mb-4" style="color: var(--color-text);">Evaluate</h3><div class="space-y-1 sm:space-y-2"><a href="/repstracker-alternative" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">REPSTracker Alternative</a></div></div><div><h3 class="text-responsive-sm font-semibold mb-3 sm:mb-4" style="color: var(--color-text);">Company</h3><div class="space-y-1 sm:space-y-2"><a href="/about" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">About</a><a href="/pricing" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Pricing</a><a href="/why-reps-shield" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Why REPSShield?</a><a href="/changelog" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Change Log</a><a href="/docs/api" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Developer API</a><a href="mailto:[email protected]" class="block text-gray-600 hover:text-blue-600 text-responsive-xs touch-target">Email</a></div></div></div>
366<div class="border-t mt-6 sm:mt-8 pt-6 sm:pt-8 text-center text-gray-500 text-responsive-xs"><p class="px-4">© 2025 REPSShield. All rights reserved. | <a href="/privacy" class="hover:text-blue-600 touch-target">Privacy Policy</a> | <a href="/terms" class="hover:text-blue-600 touch-target">Terms of Service</a></p></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events: none;"><ol tabindex="-1" class="fixed top-0 z-[11000] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div>
367
368
369
370    <!-- Performance Optimized React Pre-Initialization -->
371    
371<script type="text/javascript" crossorigin="anonymous" src="https://us-assets.i.posthog.com/static/1.435.3/web-vitals-with-attribution.js"></script>
371<script type="text/javascript" crossorigin="anonymous" src="https://us-assets.i.posthog.com/static/1.435.3/dead-clicks-autocapture.js"></script>
371<script type="text/javascript" crossorigin="anonymous" src="https://us-assets.i.posthog.com/static/1.435.3/posthog-recorder.js"></script>
371<script type="text/javascript" crossorigin="anonymous" src="https://us-assets.i.posthog.com/static/1.435.3/surveys.js"></script>
371<script type="text/javascript" crossorigin="anonymous" src="https://us-assets.i.posthog.com/array/phc_x5APwUeWZHhqtjerPtcWNqvv2PQN5EsWdYHsqXj9tgwx/config.js"></script>
371<script defer="">
372      // Optimize: Defer execution until DOM is parsed
373      document.addEventListener("DOMContentLoaded", function () {
374        // Environment detection
375        const isDevUrl = !window.parent || window.parent === window;
376        const isPreview = window.parent && window.parent !== window;
377
378        
379
380        // Create React namespace with complete hooks implementation IMMEDIATELY
381        window.React = {
382          // Core hooks that the plugin tries to access
383          useState: function (initialState) {
384            
385            let state = initialState;
386            const setState = (newState) => {
387              state =
388                typeof newState === "function" ? newState(state) : newState;
389            };
390            return [state, setState];
391          },
392
393          useEffect: function (effect, deps) {
394            
395            try {
396              if (typeof effect === "function") {
397                const cleanup = effect();
398                if (typeof cleanup === "function") {
399                  setTimeout(cleanup, 0);
400                }
401              }
402            } catch (e) {
403              console.warn("IMMEDIATE: useEffect error handled safely:", e);
404            }
405          },
406
407          useRef: function (initialValue) {
408            
409            return { current: initialValue };
410          },
411
412          useContext: function (context) {
413            
414            return context?._currentValue || null;
415          },
416
417          useReducer: function (reducer, initialState) {
418            
419            let state = initialState;
420            const dispatch = (action) => {
421              try {
422                state = reducer(state, action);
423              } catch (e) {
424                console.warn("IMMEDIATE: useReducer error handled:", e);
425              }
426            };
427            return [state, dispatch];
428          },
429
430          useCallback: function (callback, deps) {
431            
432            return callback;
433          },
434
435          useMemo: function (factory, deps) {
436            
437            try {
438              return factory();
439            } catch (e) {
440              console.warn("IMMEDIATE: useMemo error handled:", e);
441              return null;
442            }
443          },
444
445          // Additional React properties that might be accessed
446          createElement: function (type, props, ...children) {
447            return {
448              type,
449              props: {
450                ...props,
451                children: children.length === 1 ? children[0] : children,
452              },
453              key: props?.key || null,
454              ref: props?.ref || null,
455            };
456          },
457
458          Component: class Component {
459            constructor(props) {
460              this.props = props;
461              this.state = {};
462            }
463            setState(partialState) {
464              this.state = { ...this.state, ...partialState };
465            }
466            render() {
467              return null;
468            }
469          },
470
471          Fragment: "React.Fragment",
472          version: "18.0.0",
473        };
474
475        // Ensure React hooks are NEVER null by overriding property access
476        const reactProxy = new Proxy(window.React, {
477          get(target, prop) {
478            if (target[prop]) {
479              return target[prop];
480            }
481
482            // If a hook is accessed that we haven't defined, provide a safe fallback
483            if (prop.startsWith("use")) {
484              
485              return function (...args) {
486                console.warn(
487                  `IMMEDIATE: Safe fallback ${prop} called with:`,
488                  args
489                );
490                return prop === "useState"
491                  ? [null, () => {}]
492                  : prop === "useRef"
493                  ? { current: null }
494                  : null;
495              };
496            }
497
498            return target[prop];
499          },
500        });
501
502        window.React = reactProxy;
503
504        // Enhanced global error suppression for plugin errors including wallet extensions
505        window.addEventListener(
506          "error",
507          function (event) {
508            const message = event.message || "";
509            const filename = event.filename || "";
510
511            // Suppress React hook null access errors
512            if (
513              message.includes("Cannot read properties of null") &&
514              (message.includes("useEffect") || message.includes("useState"))
515            ) {
516              console.log(
517                "IMMEDIATE: Prevented plugin null access error from displaying"
518              );
519              event.preventDefault();
520              event.stopPropagation();
521              return false;
522            }
523
524            // Suppress browser extension property redefinition errors
525            if (
526              message.includes("Cannot redefine property") &&
527              filename.includes("extension")
528            ) {
529              console.log(
530                "IMMEDIATE: Prevented browser extension error from displaying"
531              );
532              event.preventDefault();
533              event.stopPropagation();
534              return false;
535            }
536
537            // Suppress browser extension injection errors
538            if (
539              message.includes("TypeError") &&
540              filename.includes("extension")
541            ) {
542              console.log(
543                "IMMEDIATE: Prevented browser extension error from displaying"
544              );
545              event.preventDefault();
546              event.stopPropagation();
547              return false;
548            }
549          },
550          true
551        ); // Use capture phase to catch early
552
553        // Enhanced console.error suppression for plugin and wallet extension errors
554        const originalConsoleError = console.error;
555        console.error = function (...args) {
556          const message = args.join(" ");
557
558          // Suppress plugin runtime errors
559          if (
560            message.includes("[plugin:runtime-error-plugin]") &&
561            message.includes("Cannot read properties of null")
562          ) {
563            console.warn("IMMEDIATE: Suppressed plugin error message");
564            return;
565          }
566
567          // Suppress browser extension property errors
568          if (
569            message.includes("Cannot redefine property") &&
570            filename.includes("extension")
571          ) {
572            console.warn(
573              "IMMEDIATE: Suppressed browser extension error message"
574            );
575            return;
576          }
577
578          originalConsoleError.apply(console, args);
579        };
580
581        // Immediate overlay suppression
582        const suppressOverlaysImmediately = () => {
583          const overlays = document.querySelectorAll(
584            'vite-error-overlay, [data-type="error"], .error-overlay'
585          );
586          overlays.forEach((overlay) => {
587            if (
588              overlay.textContent &&
589              overlay.textContent.includes("runtime-error-plugin")
590            ) {
591              overlay.style.display = "none !important";
592              overlay.remove();
593            }
594          });
595
596          // Add permanent CSS suppression
597          if (!document.getElementById("immediate-overlay-kill")) {
598            const style = document.createElement("style");
599            style.id = "immediate-overlay-kill";
600            style.textContent = `
601            vite-error-overlay,
602            [data-type="error"],
603            .error-overlay {
604              display: none !important;
605              visibility: hidden !important;
606              opacity: 0 !important;
607              pointer-events: none !important;
608              z-index: -999999 !important;
609            }
610            #root { display: block !important; visibility: visible !important; opacity: 1 !important; }
611            body { pointer-events: auto !important; visibility: visible !important; opacity: 1 !important; }
612          `;
613            document.head.appendChild(style);
614          }
615        };
616
617        // Run immediately and continuously for first few seconds
618        suppressOverlaysImmediately();
619        const immediateInterval = setInterval(suppressOverlaysImmediately, 25);
620
621        // Early detection: Stop suppression as soon as React content appears
622        const earlyDetection = setInterval(() => {
623          const hasAppElements =
624            window.__APP_INITIALIZED__ ||
625            document.querySelector(
626              '.bg-background, .min-h-screen, #root > div, .text-center, .dashboard-container, [class*="card"], [class*="container"]'
627            ) ||
628            (document.querySelector("#root") &&
629              document.querySelector("#root").innerHTML.length > 100);
630          if (hasAppElements) {
631            console.log(
632              "IMMEDIATE: Early React app detection - stopping overlay suppression"
633            );
634            clearInterval(immediateInterval);
635            clearInterval(earlyDetection);
636          }
637        }, 200); // Check every 200ms for early detection
638
639        // Stop after React app loads or timeout (Safari gets special treatment)
640        const isSafari =
641          /Safari/.test(navigator.userAgent) &&
642          !/Chrome/.test(navigator.userAgent);
643        const timeoutDuration = isSafari ? 60000 : 45000; // Safari gets 60s, others get 45s
644
645        setTimeout(() => {
646          const hasAppElements =
647            window.__APP_INITIALIZED__ ||
648            document.querySelector(
649              '.bg-background, .min-h-screen, #root > div, .text-center, .dashboard-container, [class*="card"], [class*="container"]'
650            ) ||
651            (document.querySelector("#root") &&
652              document.querySelector("#root").innerHTML.length > 100);
653
654          console.log(
655            "IMMEDIATE: Timeout check - App elements found:",
656            hasAppElements
657          );
658          console.log(
659            "IMMEDIATE: Available elements:",
660            document.querySelector("#root")
661              ? document.querySelector("#root").innerHTML.length +
662                  " chars in root"
663              : "No root element"
664          );
665
666          if (hasAppElements) {
667            console.log(
668              "IMMEDIATE: React app loaded successfully, stopping overlay suppression"
669            );
670            clearInterval(immediateInterval);
671            clearInterval(earlyDetection);
672          } else {
673            console.log(
674              "IMMEDIATE: React app failed to load after " +
675                timeoutDuration / 1000 +
676                "s - applying fallback strategy"
677            );
678            clearInterval(immediateInterval);
679            clearInterval(earlyDetection);
680
681            // For mobile devices, especially Safari and post-OAuth, handle specially
682            const isMobile = /Mobi|Android|iPhone|iPad/i.test(
683              navigator.userAgent
684            );
685            const isAfterOAuth =
686              document.referrer.includes("/api/auth/") ||
687              window.location.search.includes("code=") ||
688              sessionStorage.getItem("oauth-in-progress") === "true" ||
689              sessionStorage.getItem("oauthFlowInitiated") === "true";
690
691            // Clear OAuth flags
692            sessionStorage.removeItem("oauth-in-progress");
693            sessionStorage.removeItem("oauthFlowInitiated");
694
695            // Safari NEVER goes to static page - always reloads or redirects to login
696            if (isSafari) {
697              console.log(
698                "IMMEDIATE: Safari detected - NEVER redirecting to static page"
699              );
700              console.log(
701                "IMMEDIATE: Safari fallback - redirecting to login page for fresh auth check"
702              );
703              window.location.href = "/login";
704            } else if (isMobile || isAfterOAuth) {
705              console.log(
706                "IMMEDIATE: Mobile/post-OAuth detected - reloading page instead of static redirect"
707              );
708              console.log(
709                "IMMEDIATE: isMobile:",
710                isMobile,
711                "isAfterOAuth:",
712                isAfterOAuth
713              );
714              window.location.reload();
715            } else {
716              console.log(
717                "IMMEDIATE: Desktop device - redirecting to login for auth check"
718              );
719              window.location.href = "/login";
720            }
721          }
722        }, timeoutDuration);
723
724        
725
726        // Fix canonical URL to reflect current page URL
727        // Always uses the production base and strips trailing slashes so
728        // /blog/slug and /blog/slug/ resolve to the same canonical URL.
729        const canonicalLink = document.getElementById("canonical-link");
730        if (canonicalLink) {
731          let currentPath = location.pathname;
732          if (currentPath.length > 1 && currentPath.endsWith("/")) {
733            currentPath = currentPath.slice(0, -1);
734          }
735          const correctUrl = `https://repsshield.com${currentPath}`;
736          canonicalLink.setAttribute("href", correctUrl);
737        }
738      }); // End DOMContentLoaded
739    </script>
739
740
741    <!-- Performance Monitoring and Optimization -->
742    
742<script>
743      // Critical Web Vitals monitoring
744      const observer = new PerformanceObserver((list) => {
745        for (const entry of list.getEntries()) {
746          if (entry.entryType === "measure") {
747            
748          }
749        }
750      });
751      observer.observe({ entryTypes: ["measure"] });
752
753      // Lazy load non-critical images
754      if ("IntersectionObserver" in window) {
755        const imageObserver = new IntersectionObserver((entries, observer) => {
756          entries.forEach((entry) => {
757            if (entry.isIntersecting) {
758              const img = entry.target;
759              img.src = img.dataset.src;
760              img.classList.remove("lazy");
761              imageObserver.unobserve(img);
762            }
763          });
764        });
765
766        document.addEventListener("DOMContentLoaded", () => {
767          document.querySelectorAll("img[data-src]").forEach((img) => {
768            imageObserver.observe(img);
769          });
770        });
771      }
772    </script>
772
773
774    <!-- Optimized Post-OAuth Analytics Loading -->
775    
775<script defer="">
776      // Performance-optimized analytics loading for post-OAuth scenarios
777      window.deferredAnalyticsLoad = function () {
778        
779
780        // Google Tag Manager - Load after dashboard render
781        (function (w, d, s, l, i) {
782          w[l] = w[l] || [];
783          w[l].push({
784            "gtm.start": new Date().getTime(),
785            event: "gtm.js",
786          });
787          var f = d.getElementsByTagName(s)[0],
788            j = d.createElement(s),
789            dl = l != "dataLayer" ? "&l=" + l : "";
790          j.async = true;
791          j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
792          f.parentNode.insertBefore(j, f);
793        })(window, document, "script", "dataLayer", "GTM-TZZ5448V");
794
795        // Umami Analytics - Deferred to post-dashboard render using requestIdleCallback
796        function loadUmami() {
797          
798          var umamiScript = document.createElement("script");
799          umamiScript.defer = true;
800          umamiScript.src = "https://cloud.umami.is/script.js";
801          umamiScript.setAttribute(
802            "data-website-id",
803            "0473b837-662f-4cd9-ada3-b65b89dc1e73"
804          );
805          umamiScript.onload = function () {
806            
807          };
808          umamiScript.onerror = function () {
809            console.warn("[Analytics] Umami analytics failed to load");
810          };
811          document.head.appendChild(umamiScript);
812        }
813
814        // Use requestIdleCallback to load Umami when browser is idle (after dashboard render)
815        if (window.requestIdleCallback) {
816          window.requestIdleCallback(loadUmami, { timeout: 3000 });
817        } else {
818          setTimeout(loadUmami, 1500); // Fallback with 1.5s delay
819        }
820      };
821
822      // Global performance optimization for ALL pages
823      window.addEventListener("DOMContentLoaded", function () {
824        // For ALL pages (public and authenticated), defer analytics to improve performance
825        console.log(
826          "[Analytics] Page loaded - deferring analytics for optimal performance"
827        );
828
829        // Always use maximum delay for public pages performance
830        const isPublicPage =
831          ["/features", "/pricing", "/why-reps-shield", "/about"].includes(
832            window.location.pathname
833          ) || window.location.pathname.startsWith("/features/");
834
835        if (isPublicPage) {
836          console.log(
837            "[Analytics] Public page detected - maximum deferral for speed"
838          );
839          // For public marketing pages, defer analytics heavily to maximize page speed
840          if (window.requestIdleCallback) {
841            window.requestIdleCallback(window.deferredAnalyticsLoad, {
842              timeout: 5000,
843            });
844          } else {
845            setTimeout(window.deferredAnalyticsLoad, 2000); // 2s delay for public pages
846          }
847        } else if (
848          window.location.pathname === "/" ||
849          window.location.hash === "#/"
850        ) {
851          console.log(
852            "[Analytics] Dashboard detected - deferring analytics until after render"
853          );
854          // Wait for dashboard to be fully rendered before loading analytics
855          function waitForDashboard() {
856            if (
857              document.querySelector(
858                '[data-testid="dashboard-content"], .dashboard-container, .min-h-screen'
859              )
860            ) {
861              
862              window.deferredAnalyticsLoad();
863            } else {
864              setTimeout(waitForDashboard, 100);
865            }
866          }
867          setTimeout(waitForDashboard, 500); // Give dashboard time to start rendering
868        } else {
869          // For other pages, load analytics with moderate delay
870          if (window.requestIdleCallback) {
871            window.requestIdleCallback(window.deferredAnalyticsLoad, {
872              timeout: 3000,
873            });
874          } else {
875            setTimeout(window.deferredAnalyticsLoad, 1000);
876          }
877        }
878      });
879    </script>
879
880    <!-- This is a replit script which adds a banner on the top of the page when opened in development mode outside the replit environment -->
881    <!-- Commented out to prevent blue debug banner showing in production
882    
882<script type="text/javascript" src="https://replit.com/public/js/replit-dev-banner.js"></script>
882
883    -->
884
885    <!-- React App Entry Point - MUST be last to ensure all scripts are loaded first -->
886  
887
888
889<script type="text/javascript" id="" charset="">var script=document.createElement("script");script.defer=!0;script.dataset.domain="repsshield.com";script.dataset.api="https://plausible.io/api/event";script.src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js";document.getElementsByTagName("head")[0].appendChild(script);</script>
889
890
891<script type="text/javascript" id="" charset="">window.plausible=window.plausible||function(){(window.plausible.q=window.plausible.q||[]).push(arguments)};</script>
891
892</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.