Explorar el Código

Link website, settings, and paywall to Google Sites legal and support pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 hace 1 mes
padre
commit
e6e4eaa972

+ 25 - 0
smart_printer/PaywallView.swift

@@ -1189,8 +1189,16 @@ final class PaywallView: NSView, AppearanceRefreshable {
         restoreLink.action = #selector(restoreTapped)
 
         let privacyLink = PaywallFooterLink(title: "Privacy Policy")
+        privacyLink.target = self
+        privacyLink.action = #selector(privacyPolicyTapped)
+
         let termsLink = PaywallFooterLink(title: "Terms of Service")
+        termsLink.target = self
+        termsLink.action = #selector(termsOfServiceTapped)
+
         let supportLink = PaywallFooterLink(title: "Support")
+        supportLink.target = self
+        supportLink.action = #selector(supportTapped)
 
         let linkCells = [
             primaryCell,
@@ -1308,6 +1316,23 @@ final class PaywallView: NSView, AppearanceRefreshable {
     @objc private func manageSubscriptionTapped() {
         StoreManager.shared.showManageSubscriptions()
     }
+
+    @objc private func privacyPolicyTapped() {
+        openExternalLink("https://sites.google.com/view/smartprinterappmacos/privacy-policy")
+    }
+
+    @objc private func termsOfServiceTapped() {
+        openExternalLink("https://sites.google.com/view/smartprinterappmacos/terms-and-condition")
+    }
+
+    @objc private func supportTapped() {
+        openExternalLink("https://sites.google.com/view/smartprinterappmacos/get-support")
+    }
+
+    private func openExternalLink(_ urlString: String) {
+        guard let url = URL(string: urlString) else { return }
+        NSWorkspace.shared.open(url)
+    }
 }
 
 // MARK: - Overlay Presenter

+ 4 - 4
smart_printer/SettingsView.swift

@@ -121,16 +121,16 @@ final class SettingsView: NSView, AppearanceRefreshable {
         let card = SettingsGroupCard()
 
         card.addRow(SettingsActionRow(symbolName: "link", title: "Website") {
-            NSWorkspace.shared.open(URL(string: "https://example.com")!)
+            NSWorkspace.shared.open(URL(string: "https://sites.google.com/view/smartprinterappmacos/home")!)
         })
         card.addRow(SettingsActionRow(symbolName: "questionmark.circle", title: "Support") {
-            NSWorkspace.shared.open(URL(string: "mailto:support@example.com")!)
+            NSWorkspace.shared.open(URL(string: "https://sites.google.com/view/smartprinterappmacos/get-support")!)
         })
         card.addRow(SettingsActionRow(symbolName: "doc.text", title: "Terms of Use") {
-            NSWorkspace.shared.open(URL(string: "https://example.com/terms")!)
+            NSWorkspace.shared.open(URL(string: "https://sites.google.com/view/smartprinterappmacos/terms-and-condition")!)
         })
         card.addRow(SettingsActionRow(symbolName: "shield", title: "Privacy Policy", isLast: true) {
-            NSWorkspace.shared.open(URL(string: "https://example.com/privacy")!)
+            NSWorkspace.shared.open(URL(string: "https://sites.google.com/view/smartprinterappmacos/privacy-policy")!)
         })
 
         return card

+ 395 - 0
website/index.html

@@ -0,0 +1,395 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Smart Printer — Print, Scan &amp; More on Mac</title>
+  <style>
+    :root {
+      --blue: #3878f5;
+      --blue-light: #e0e9ff;
+      --navy: #1f2e52;
+      --green: #22ae6b;
+      --green-light: #e0f7e9;
+      --purple: #8c5cf5;
+      --purple-light: #f2edff;
+      --orange: #f5852e;
+      --orange-light: #fff0e0;
+      --teal: #2eb8d1;
+      --teal-light: #e0f7fb;
+      --bg: #f6f6f6;
+      --card: #ffffff;
+      --text: #1f1f1f;
+      --text-secondary: #7a7a7a;
+      --border: #ebebeb;
+      --radius: 16px;
+      --radius-sm: 12px;
+    }
+
+    * { box-sizing: border-box; margin: 0; padding: 0; }
+
+    body {
+      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+      background: var(--bg);
+      color: var(--text);
+      line-height: 1.5;
+      -webkit-font-smoothing: antialiased;
+    }
+
+    .page {
+      max-width: 720px;
+      margin: 0 auto;
+      padding: 32px 20px 48px;
+    }
+
+    /* Hero */
+    .hero {
+      text-align: center;
+      margin-bottom: 36px;
+    }
+
+    .logo {
+      width: 72px;
+      height: 72px;
+      border-radius: 18px;
+      background: linear-gradient(145deg, var(--blue-light), #fff);
+      border: 1.5px solid var(--border);
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin: 0 auto 16px;
+      font-size: 36px;
+    }
+
+    .hero h1 {
+      font-size: 28px;
+      font-weight: 600;
+      color: var(--navy);
+      letter-spacing: -0.02em;
+      margin-bottom: 8px;
+    }
+
+    .hero p {
+      font-size: 15px;
+      color: var(--text-secondary);
+      max-width: 480px;
+      margin: 0 auto;
+    }
+
+    .badge {
+      display: inline-flex;
+      align-items: center;
+      gap: 6px;
+      background: var(--purple-light);
+      color: var(--purple);
+      font-size: 12px;
+      font-weight: 600;
+      padding: 5px 12px;
+      border-radius: 20px;
+      margin-top: 14px;
+    }
+
+    /* Section */
+    .section-title {
+      font-size: 13px;
+      font-weight: 600;
+      text-transform: uppercase;
+      letter-spacing: 0.06em;
+      color: var(--text-secondary);
+      margin-bottom: 14px;
+    }
+
+    /* Quick Start */
+    .quick-start {
+      display: grid;
+      grid-template-columns: repeat(3, 1fr);
+      gap: 10px;
+      margin-bottom: 32px;
+    }
+
+    @media (max-width: 520px) {
+      .quick-start { grid-template-columns: 1fr; }
+    }
+
+    .quick-card {
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius);
+      padding: 18px 14px;
+      text-align: center;
+    }
+
+    .quick-icon {
+      width: 44px;
+      height: 44px;
+      border-radius: 12px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      margin: 0 auto 10px;
+      font-size: 20px;
+    }
+
+    .quick-icon.photos { background: var(--blue-light); }
+    .quick-icon.files { background: var(--green-light); }
+    .quick-icon.import { background: var(--orange-light); }
+
+    .quick-card h3 {
+      font-size: 14px;
+      font-weight: 600;
+      margin-bottom: 4px;
+    }
+
+    .quick-card p {
+      font-size: 12px;
+      color: var(--text-secondary);
+    }
+
+    /* Feature grid */
+    .features {
+      display: grid;
+      grid-template-columns: repeat(2, 1fr);
+      gap: 10px;
+      margin-bottom: 32px;
+    }
+
+    @media (max-width: 520px) {
+      .features { grid-template-columns: 1fr; }
+    }
+
+    .feature-card {
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius-sm);
+      padding: 16px;
+      display: flex;
+      gap: 14px;
+      align-items: flex-start;
+    }
+
+    .feature-icon {
+      width: 40px;
+      height: 40px;
+      border-radius: 10px;
+      flex-shrink: 0;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-size: 18px;
+    }
+
+    .feature-icon.scan { background: var(--blue-light); }
+    .feature-icon.ocr { background: var(--teal-light); }
+    .feature-icon.text { background: var(--green-light); }
+    .feature-icon.contacts { background: var(--purple-light); }
+    .feature-icon.draw { background: var(--orange-light); }
+
+    .feature-card h3 {
+      font-size: 14px;
+      font-weight: 600;
+      margin-bottom: 3px;
+    }
+
+    .feature-card p {
+      font-size: 12px;
+      color: var(--text-secondary);
+    }
+
+    /* Premium */
+    .premium-box {
+      background: linear-gradient(160deg, #e0e9ff 0%, #f5f8ff 100%);
+      border: 1.5px solid #c8d8f8;
+      border-radius: var(--radius);
+      padding: 24px;
+      margin-bottom: 32px;
+    }
+
+    .premium-box h2 {
+      font-size: 18px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 6px;
+    }
+
+    .premium-box > p {
+      font-size: 13px;
+      color: var(--text-secondary);
+      margin-bottom: 16px;
+    }
+
+    .premium-list {
+      list-style: none;
+      display: grid;
+      grid-template-columns: 1fr 1fr;
+      gap: 8px 16px;
+    }
+
+    @media (max-width: 520px) {
+      .premium-list { grid-template-columns: 1fr; }
+    }
+
+    .premium-list li {
+      font-size: 13px;
+      display: flex;
+      align-items: center;
+      gap: 8px;
+    }
+
+    .check {
+      width: 18px;
+      height: 18px;
+      background: var(--green);
+      color: #fff;
+      border-radius: 50%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-size: 10px;
+      flex-shrink: 0;
+    }
+
+    /* CTA */
+    .cta {
+      text-align: center;
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius);
+      padding: 28px 20px;
+    }
+
+    .cta h2 {
+      font-size: 17px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 6px;
+    }
+
+    .cta p {
+      font-size: 13px;
+      color: var(--text-secondary);
+      margin-bottom: 16px;
+    }
+
+    .cta-btn {
+      display: inline-block;
+      background: var(--navy);
+      color: #fff;
+      font-size: 14px;
+      font-weight: 600;
+      padding: 12px 28px;
+      border-radius: 12px;
+      text-decoration: none;
+    }
+
+    .footer-links {
+      text-align: center;
+      margin-top: 28px;
+      font-size: 12px;
+      color: var(--text-secondary);
+    }
+
+    .footer-links a {
+      color: var(--blue);
+      text-decoration: none;
+      margin: 0 8px;
+    }
+
+    .footer-links a:hover { text-decoration: underline; }
+  </style>
+</head>
+<body>
+  <div class="page">
+
+    <header class="hero">
+      <div class="logo" aria-hidden="true">🖨️</div>
+      <h1>Smart Printer</h1>
+      <p>Your all-in-one printing and scanning companion for Mac. Import files, scan documents, extract text, and print — all from one beautiful app.</p>
+      <span class="badge">✦ Made for macOS</span>
+    </header>
+
+    <p class="section-title">Quick Start</p>
+    <div class="quick-start">
+      <div class="quick-card">
+        <div class="quick-icon photos">📷</div>
+        <h3>From Photos</h3>
+        <p>Select photos from your gallery and print instantly.</p>
+      </div>
+      <div class="quick-card">
+        <div class="quick-icon files">📁</div>
+        <h3>From Files</h3>
+        <p>Pick images and documents from your file manager.</p>
+      </div>
+      <div class="quick-card">
+        <div class="quick-icon import">📥</div>
+        <h3>Import File</h3>
+        <p>Add files from storage and preview before printing.</p>
+      </div>
+    </div>
+
+    <p class="section-title">What You Can Do</p>
+    <div class="features">
+      <div class="feature-card">
+        <div class="feature-icon scan">📄</div>
+        <div>
+          <h3>Scan File</h3>
+          <p>Scan any document with your connected scanner or camera.</p>
+        </div>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon ocr">🔤</div>
+        <div>
+          <h3>OCR File</h3>
+          <p>Extract text from images and print recognized content.</p>
+        </div>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon text">✏️</div>
+        <div>
+          <h3>Print Text</h3>
+          <p>Type or paste text and send it straight to your printer.</p>
+        </div>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon contacts">👤</div>
+        <div>
+          <h3>Print Contacts</h3>
+          <p>Search your contacts and print them in a clean layout.</p>
+        </div>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon draw">🎨</div>
+        <div>
+          <h3>Draw &amp; Print</h3>
+          <p>Sketch, add text and shapes on a canvas, then print your creation.</p>
+        </div>
+      </div>
+    </div>
+
+    <div class="premium-box">
+      <h2>Go Premium</h2>
+      <p>Unlock the full Smart Printer experience with a subscription or one-time purchase.</p>
+      <ul class="premium-list">
+        <li><span class="check">✓</span> Unlimited high-quality scans</li>
+        <li><span class="check">✓</span> Advanced OCR technology</li>
+        <li><span class="check">✓</span> Draw &amp; print canvas</li>
+        <li><span class="check">✓</span> Ad-free experience</li>
+        <li><span class="check">✓</span> Priority support</li>
+        <li><span class="check">✓</span> Secure storage</li>
+      </ul>
+    </div>
+
+    <div class="cta">
+      <h2>Ready to print smarter?</h2>
+      <p>Download Smart Printer from the Mac App Store and start printing in seconds.</p>
+      <a class="cta-btn" href="https://apps.apple.com" target="_blank" rel="noopener">Get Smart Printer</a>
+    </div>
+
+    <nav class="footer-links" aria-label="Legal and support">
+      <a href="https://sites.google.com/view/smartprinterappmacos/privacy-policy" target="_blank" rel="noopener">Privacy Policy</a>
+      <a href="https://sites.google.com/view/smartprinterappmacos/terms-and-condition" target="_blank" rel="noopener">Terms of Use</a>
+      <a href="https://sites.google.com/view/smartprinterappmacos/get-support" target="_blank" rel="noopener">Support</a>
+    </nav>
+
+  </div>
+</body>
+</html>

+ 126 - 0
website/privacy.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Privacy Policy — Smart Printer</title>
+  <style>
+    :root {
+      --blue: #3878f5;
+      --navy: #1f2e52;
+      --bg: #f6f6f6;
+      --card: #ffffff;
+      --text: #1f1f1f;
+      --text-secondary: #7a7a7a;
+      --border: #ebebeb;
+      --radius: 16px;
+    }
+
+    * { box-sizing: border-box; margin: 0; padding: 0; }
+
+    body {
+      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+      background: var(--bg);
+      color: var(--text);
+      line-height: 1.6;
+      -webkit-font-smoothing: antialiased;
+    }
+
+    .page {
+      max-width: 680px;
+      margin: 0 auto;
+      padding: 32px 20px 48px;
+    }
+
+    .back {
+      display: inline-flex;
+      align-items: center;
+      gap: 6px;
+      font-size: 13px;
+      color: var(--blue);
+      text-decoration: none;
+      margin-bottom: 24px;
+    }
+
+    .back:hover { text-decoration: underline; }
+
+    .card {
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius);
+      padding: 32px 28px;
+    }
+
+    h1 {
+      font-size: 24px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 6px;
+    }
+
+    .updated {
+      font-size: 13px;
+      color: var(--text-secondary);
+      margin-bottom: 28px;
+    }
+
+    h2 {
+      font-size: 16px;
+      font-weight: 600;
+      color: var(--navy);
+      margin: 24px 0 8px;
+    }
+
+    p, li {
+      font-size: 14px;
+      color: var(--text);
+      margin-bottom: 12px;
+    }
+
+    ul {
+      padding-left: 20px;
+      margin-bottom: 12px;
+    }
+
+    li { margin-bottom: 6px; }
+  </style>
+</head>
+<body>
+  <div class="page">
+    <a class="back" href="index.html">← Back to Smart Printer</a>
+
+    <article class="card">
+      <h1>Privacy Policy</h1>
+      <p class="updated">Last updated: June 12, 2026</p>
+
+      <p>Smart Printer ("we", "our", or "us") respects your privacy. This policy explains how we handle information when you use the Smart Printer macOS application.</p>
+
+      <h2>Information We Collect</h2>
+      <p>Smart Printer processes data locally on your Mac. We do not collect, store, or transmit your personal documents, photos, contacts, or print content to our servers.</p>
+      <ul>
+        <li><strong>Contacts access</strong> — Used only when you choose to print contacts. Contact data stays on your device.</li>
+        <li><strong>Camera access</strong> — Used only when you scan documents. Images are processed locally.</li>
+        <li><strong>Files you select</strong> — Opened and printed on your device. We do not upload your files.</li>
+      </ul>
+
+      <h2>Purchases</h2>
+      <p>Subscriptions and in-app purchases are processed by Apple through the App Store. We receive only anonymized purchase status information needed to unlock premium features. Apple's privacy policy governs payment data.</p>
+
+      <h2>Analytics</h2>
+      <p>We do not use third-party analytics or advertising trackers in Smart Printer.</p>
+
+      <h2>Data Retention</h2>
+      <p>Any recently opened files you choose to save are stored locally on your Mac using system file bookmarks. You can disable recent file saving in app settings.</p>
+
+      <h2>Children's Privacy</h2>
+      <p>Smart Printer is not directed at children under 13. We do not knowingly collect personal information from children.</p>
+
+      <h2>Changes to This Policy</h2>
+      <p>We may update this policy from time to time. Continued use of the app after changes constitutes acceptance of the updated policy.</p>
+
+      <h2>Contact Us</h2>
+      <p>If you have questions about this privacy policy, visit our <a href="https://sites.google.com/view/smartprinterappmacos/get-support" target="_blank" rel="noopener" style="color:#3878f5">support page</a>.</p>
+    </article>
+  </div>
+</body>
+</html>

+ 164 - 0
website/support.html

@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Support — Smart Printer</title>
+  <style>
+    :root {
+      --blue: #3878f5;
+      --blue-light: #e0e9ff;
+      --navy: #1f2e52;
+      --green: #22ae6b;
+      --bg: #f6f6f6;
+      --card: #ffffff;
+      --text: #1f1f1f;
+      --text-secondary: #7a7a7a;
+      --border: #ebebeb;
+      --radius: 16px;
+    }
+
+    * { box-sizing: border-box; margin: 0; padding: 0; }
+
+    body {
+      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+      background: var(--bg);
+      color: var(--text);
+      line-height: 1.6;
+      -webkit-font-smoothing: antialiased;
+    }
+
+    .page {
+      max-width: 680px;
+      margin: 0 auto;
+      padding: 32px 20px 48px;
+    }
+
+    .back {
+      display: inline-flex;
+      align-items: center;
+      gap: 6px;
+      font-size: 13px;
+      color: var(--blue);
+      text-decoration: none;
+      margin-bottom: 24px;
+    }
+
+    .back:hover { text-decoration: underline; }
+
+    h1 {
+      font-size: 24px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 8px;
+    }
+
+    .subtitle {
+      font-size: 14px;
+      color: var(--text-secondary);
+      margin-bottom: 28px;
+    }
+
+    .card {
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius);
+      padding: 24px;
+      margin-bottom: 14px;
+    }
+
+    .card h2 {
+      font-size: 15px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 8px;
+      display: flex;
+      align-items: center;
+      gap: 10px;
+    }
+
+    .icon-badge {
+      width: 32px;
+      height: 32px;
+      background: var(--blue-light);
+      border-radius: 8px;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      font-size: 16px;
+      flex-shrink: 0;
+    }
+
+    .card p {
+      font-size: 14px;
+      color: var(--text-secondary);
+      margin-bottom: 12px;
+    }
+
+    .card a {
+      font-size: 14px;
+      font-weight: 600;
+      color: var(--blue);
+      text-decoration: none;
+    }
+
+    .card a:hover { text-decoration: underline; }
+
+    .faq h3 {
+      font-size: 14px;
+      font-weight: 600;
+      margin: 16px 0 6px;
+      color: var(--text);
+    }
+
+    .faq h3:first-child { margin-top: 0; }
+
+    .faq p {
+      font-size: 13px;
+      color: var(--text-secondary);
+      margin-bottom: 0;
+    }
+  </style>
+</head>
+<body>
+  <div class="page">
+    <a class="back" href="index.html">← Back to Smart Printer</a>
+
+    <h1>Support</h1>
+    <p class="subtitle">We're here to help you get the most out of Smart Printer.</p>
+
+    <div class="card">
+      <h2><span class="icon-badge">✉️</span> Email Support</h2>
+      <p>Have a question, bug report, or feature request? Reach out and we'll get back to you as soon as possible.</p>
+      <a href="https://sites.google.com/view/smartprinterappmacos/get-support" target="_blank" rel="noopener">Get Support →</a>
+    </div>
+
+    <div class="card">
+      <h2><span class="icon-badge">🔄</span> Restore Purchases</h2>
+      <p>If you previously purchased Premium, open Smart Printer, go to Premium, and tap <strong>Restore Purchase</strong>. Make sure you're signed in with the same Apple ID used for the purchase.</p>
+    </div>
+
+    <div class="card">
+      <h2><span class="icon-badge">💳</span> Manage Subscription</h2>
+      <p>Subscriptions are managed through Apple. Visit your Apple ID subscription settings to cancel or change your plan.</p>
+      <a href="https://apps.apple.com/account/subscriptions" target="_blank" rel="noopener">Manage in Apple Account →</a>
+    </div>
+
+    <div class="card faq">
+      <h2><span class="icon-badge">❓</span> Frequently Asked Questions</h2>
+
+      <h3>My printer isn't showing up</h3>
+      <p>Make sure your printer is connected and added in System Settings → Printers &amp; Scanners. Smart Printer uses macOS's built-in print system.</p>
+
+      <h3>Contacts won't load</h3>
+      <p>Grant Smart Printer access to Contacts in System Settings → Privacy &amp; Security → Contacts.</p>
+
+      <h3>Scanner not detected</h3>
+      <p>Connect your scanner via USB or network, then check Image Capture or System Settings to confirm macOS recognizes it.</p>
+
+      <h3>OCR isn't recognizing text</h3>
+      <p>Use a clear, well-lit image with readable text. OCR works best on printed documents rather than handwriting.</p>
+    </div>
+  </div>
+</body>
+</html>

+ 126 - 0
website/terms.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Terms of Use — Smart Printer</title>
+  <style>
+    :root {
+      --blue: #3878f5;
+      --navy: #1f2e52;
+      --bg: #f6f6f6;
+      --card: #ffffff;
+      --text: #1f1f1f;
+      --text-secondary: #7a7a7a;
+      --border: #ebebeb;
+      --radius: 16px;
+    }
+
+    * { box-sizing: border-box; margin: 0; padding: 0; }
+
+    body {
+      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
+      background: var(--bg);
+      color: var(--text);
+      line-height: 1.6;
+      -webkit-font-smoothing: antialiased;
+    }
+
+    .page {
+      max-width: 680px;
+      margin: 0 auto;
+      padding: 32px 20px 48px;
+    }
+
+    .back {
+      display: inline-flex;
+      align-items: center;
+      gap: 6px;
+      font-size: 13px;
+      color: var(--blue);
+      text-decoration: none;
+      margin-bottom: 24px;
+    }
+
+    .back:hover { text-decoration: underline; }
+
+    .card {
+      background: var(--card);
+      border: 1.5px solid var(--border);
+      border-radius: var(--radius);
+      padding: 32px 28px;
+    }
+
+    h1 {
+      font-size: 24px;
+      font-weight: 600;
+      color: var(--navy);
+      margin-bottom: 6px;
+    }
+
+    .updated {
+      font-size: 13px;
+      color: var(--text-secondary);
+      margin-bottom: 28px;
+    }
+
+    h2 {
+      font-size: 16px;
+      font-weight: 600;
+      color: var(--navy);
+      margin: 24px 0 8px;
+    }
+
+    p, li {
+      font-size: 14px;
+      color: var(--text);
+      margin-bottom: 12px;
+    }
+
+    ul {
+      padding-left: 20px;
+      margin-bottom: 12px;
+    }
+
+    li { margin-bottom: 6px; }
+  </style>
+</head>
+<body>
+  <div class="page">
+    <a class="back" href="index.html">← Back to Smart Printer</a>
+
+    <article class="card">
+      <h1>Terms of Use</h1>
+      <p class="updated">Last updated: June 12, 2026</p>
+
+      <p>By downloading or using Smart Printer ("the App"), you agree to these Terms of Use. If you do not agree, do not use the App.</p>
+
+      <h2>License</h2>
+      <p>We grant you a limited, non-exclusive, non-transferable license to use Smart Printer on Apple-branded devices you own or control, subject to the App Store Terms of Service.</p>
+
+      <h2>Subscriptions &amp; Purchases</h2>
+      <ul>
+        <li>Premium features require a subscription or one-time purchase through the Mac App Store.</li>
+        <li>Subscriptions renew automatically unless cancelled at least 24 hours before the end of the current period.</li>
+        <li>Manage or cancel subscriptions in your Apple ID account settings.</li>
+        <li>Refunds are handled by Apple in accordance with App Store policies.</li>
+      </ul>
+
+      <h2>Acceptable Use</h2>
+      <p>You agree not to misuse the App, including attempting to reverse engineer, redistribute, or use it for unlawful purposes. You are responsible for the content you print or scan.</p>
+
+      <h2>Disclaimer</h2>
+      <p>Smart Printer is provided "as is" without warranties of any kind. We do not guarantee uninterrupted operation or compatibility with all printers and scanners.</p>
+
+      <h2>Limitation of Liability</h2>
+      <p>To the maximum extent permitted by law, we are not liable for any indirect, incidental, or consequential damages arising from your use of the App.</p>
+
+      <h2>Changes</h2>
+      <p>We may update these terms at any time. Material changes will be reflected on this page with an updated date.</p>
+
+      <h2>Contact</h2>
+      <p>Questions about these terms? Visit our <a href="https://sites.google.com/view/smartprinterappmacos/get-support" target="_blank" rel="noopener" style="color:#3878f5">support page</a>.</p>
+    </article>
+  </div>
+</body>
+</html>