<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- ── Public homepage ── -->
  <url>
    <loc>https://peaciva.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- ── Static public pages ── -->
  <url>
    <loc>https://peaciva.com/login.php</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://peaciva.com/privacy-policy.php</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://peaciva.com/terms-of-service.php</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- ── Project Downloads marketplace (public) ── -->
  <url>
    <loc>https://peaciva.com/topics.php</loc>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- ── WordPress blog ── -->
  <url>
    <loc>https://peaciva.com/blog/</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>

  <!--
    NOTE: The following authenticated tool pages are intentionally
    excluded from this sitemap because they require login:

      /app.php#dashboard
      /app.php#project
      /app.php#topics
      /app.php#logbook
      /app.php#siwes
      /app.php#seminar
      /app.php#seminar_topics
      /app.php#gpa
      /app.php#slides
      /app.php#diagrams
      /app.php#assignment
      /app.php#field-report   (new)
      /app.php#downloads
      /app.php#support
      /app.php#admin

    These are hash-routed SPA pages behind requireLogin().
    They should remain noindex via robots.txt (see robots.txt).
  -->

</urlset>