/* global React */
// _docs-data.jsx — Promptive docs nav + article content
window.Promptive = window.Promptive || {};

// ── Navigation ────────────────────────────────────────────────────────────────

window.Promptive.DOCS_NAV = [
  { group: 'Getting started', items: [
    { slug: 'quickstart',         t: 'Quickstart' },
    { slug: 'introduction',       t: 'What Promptive measures' },
    { slug: 'creating-a-brand',   t: 'Adding your brand' },
    { slug: 'your-first-prompt',  t: 'Adding prompts' },
    { slug: 'inviting-teammates', t: 'Inviting teammates' },
    { slug: 'workspace-setup',    t: 'Workspace settings' },
  ]},
  { group: 'Dashboard', items: [
    { slug: 'dashboard-overview',   t: 'Overview & metrics' },
    { slug: 'platform-performance', t: 'Platform performance' },
    { slug: 'brand-rankings',       t: 'Brand rankings' },
  ]},
  { group: 'Features', items: [
    { slug: 'prompts',             t: 'Prompts' },
    { slug: 'competitor-tracking', t: 'Competitor tracking' },
    { slug: 'sources',             t: 'Sources & citations' },
    { slug: 'analytics',           t: 'Analytics' },
    { slug: 'reports',             t: 'Reports' },
  ]},
  { group: 'Concepts', items: [
    { slug: 'visibility-scoring',      t: 'How visibility is scored' },
    { slug: 'sentiment-rubric',        t: 'How sentiment is scored' },
    { slug: 'citation-tracking',       t: 'How citations are tracked' },
    { slug: 'what-counts-as-a-prompt', t: 'What counts as a prompt' },
  ]},
  { group: 'For agencies', items: [
    { slug: 'multi-client-workspaces', t: 'Multi-client workspaces' },
    { slug: 'agency-coming-soon',      t: 'White-label & billing', soon: true },
  ]},
  { group: 'Plans & billing', items: [
    { slug: 'pricing-overview', t: 'Plans & pricing' },
    { slug: 'free-trial',       t: 'Free trial' },
  ]},
  { group: 'API', items: [
    { slug: 'api-coming-soon', t: 'API reference', soon: true },
  ]},
];

// ── Author shorthands ─────────────────────────────────────────────────────────

const _JB = { author: 'Josh Bernstein', authorInitials: 'JB', authorRole: 'Co-founder', updated: 'Apr 22, 2026' };
const _TT = { author: 'Tyler Truffi',   authorInitials: 'TT', authorRole: 'Co-founder', updated: 'Apr 20, 2026' };

// ── Articles ──────────────────────────────────────────────────────────────────

window.Promptive.DOCS_ARTICLES = {

  // ── GETTING STARTED ─────────────────────────────────────────────────────────

  'quickstart': {
    ..._TT,
    title: 'Quickstart',
    lede: 'From account creation to your first AI visibility score in under five minutes. No code or SDK required.',
    readTime: '5 min read',
    chips: ['getting started'],
    category: 'Getting started',
    toc: [
      { id: 'create-account',   t: 'Create your account',    level: 2 },
      { id: 'add-your-brand',   t: 'Add your brand',         level: 2 },
      { id: 'competitors',      t: 'Set up competitors',     level: 2 },
      { id: 'add-prompts',      t: 'Add your first prompts', level: 2 },
      { id: 'first-results',    t: 'Your first results',     level: 2 },
      { id: 'next-steps',       t: 'Next steps',             level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="create-account">Create your account</h2>
        <p>Go to <a href="/signup">getpromptive.ai/signup</a> and enter your work email. Your 7-day free trial starts immediately — no credit card required. You get full access to the platform for the duration of the trial.</p>
        <p>After verifying your email, you'll land in the onboarding flow. Promptive will walk you through the next three steps automatically.</p>

        <h2 id="add-your-brand">Add your brand</h2>
        <p>Enter your website URL. Promptive crawls it to understand your brand: your name, what you do, how you describe yourself, and which pages are most important. This takes about 30 seconds.</p>
        <p>After the crawl, you'll be asked to confirm or adjust:</p>
        <ul>
          <li><b>Brand name</b> — the exact name you want detected in AI answers (e.g., "Acme Analytics")</li>
          <li><b>Aliases</b> — product names, abbreviations, or common shorthand (e.g., "Acme," "acme.io")</li>
        </ul>
        <div className="da-callout">
          <span className="tag">TIP</span>
          <div>
            <div className="t">Fuzzy matching is on by default</div>
            <p>Promptive handles plural forms, punctuation differences, and adjacent descriptors ("the Acme platform"). Tighten this in Brand Settings → Matching if you're getting false positives.</p>
          </div>
        </div>

        <h2 id="competitors">Set up competitors</h2>
        <p>Based on your crawl, Promptive suggests a set of competitors to track. These are brands that appear alongside yours in AI answers to the prompts most relevant to your category.</p>
        <p>You can accept the suggestions, remove any you don't care about, and add others you want to track. Competitors are how Promptive builds your Share of Voice metric and the Brand Rankings table.</p>
        <p>Your plan determines how many competitors you can track simultaneously: 4 on Trial, 6 on Starter, unlimited on Pro and above.</p>

        <h2 id="add-prompts">Add your first prompts</h2>
        <p>Promptive suggests prompts based on what your website is about. These are the questions it will ask ChatGPT, Claude, Gemini, and Perplexity every day, then check whether your brand appears in the answers.</p>
        <p>Good prompts fall into four categories:</p>
        <ul>
          <li><b>Discovery</b> — "What are the best tools for [your category]?"</li>
          <li><b>Comparison</b> — "How does [your brand] compare to [competitor]?"</li>
          <li><b>Use-case</b> — "How do I [solve the problem your product solves]?"</li>
          <li><b>Purchase</b> — "What should I look for when buying [your category]?"</li>
        </ul>
        <p>Accept the suggestions, edit them to better match your language, or add your own. Start with 10–20 tight, high-intent prompts. You can always expand later.</p>

        <h2 id="first-results">Your first results</h2>
        <p>Once onboarding is complete, Promptive runs your first batch of queries across every engine on your plan. This initial run usually completes within a few hours. You'll see your dashboard populate with:</p>
        <ul>
          <li>Citation Rate — how often your brand appears in AI answers</li>
          <li>Average Position — where you rank when you do appear</li>
          <li>Sentiment Score — how positively you're described</li>
          <li>Platform breakdown — how each engine compares</li>
        </ul>
        <p>From then on, Promptive refreshes every prompt across every engine once per day. Your data is always at most 24 hours old.</p>

        <h2 id="next-steps">Next steps</h2>
        <ul>
          <li>Read <a href="/docs?slug=introduction">What Promptive measures</a> to understand the four core metrics</li>
          <li>Learn how <a href="/docs?slug=visibility-scoring">visibility is scored</a></li>
          <li>Set up <a href="/docs?slug=inviting-teammates">teammates</a> so your whole team can see the data</li>
          <li>Questions? Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a></li>
        </ul>
      </div>
    ),
  },

  'introduction': {
    ..._JB,
    title: 'What Promptive measures',
    lede: 'The four core metrics — visibility, position, sentiment, and citations — and how they combine to give you a complete picture of your AI brand presence.',
    readTime: '6 min read',
    chips: ['concepts'],
    category: 'Getting started',
    toc: [
      { id: 'the-problem',  t: 'The problem',        level: 2 },
      { id: 'visibility',   t: 'Visibility',          level: 2 },
      { id: 'position',     t: 'Average position',    level: 2 },
      { id: 'sentiment',    t: 'Sentiment',           level: 2 },
      { id: 'citations',    t: 'Citations',           level: 2 },
      { id: 'engines',      t: 'Engines covered',     level: 2 },
      { id: 'cadence',      t: 'Refresh cadence',     level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="the-problem">The problem</h2>
        <p>When someone asks ChatGPT, Claude, Gemini, or Perplexity for a recommendation in your category, they get a direct answer — not a list of links. Your brand either appears in that answer or it doesn't. Traditional SEO tools can't see this. Promptive can.</p>
        <p>Promptive queries AI platforms directly using the same prompts your customers would type. It then analyzes every response: did your brand appear? Where? Was it positive? What sources did the AI cite?</p>

        <h2 id="visibility">Visibility</h2>
        <p><b>Visibility</b> is the percentage of your tracked prompts where your brand appears in the AI's response, averaged across all engines on your plan.</p>
        <p>Example: if you track 100 prompts and your brand appears in 67 of them, your visibility is 67%. This is your headline number — the most direct measure of how present your brand is in AI-generated answers.</p>

        <h2 id="position">Average position</h2>
        <p><b>Average position</b> measures where your brand ranks when it does appear. When an AI response lists multiple brands, Promptive notes your position in the list. Position 1 means you were mentioned first; position 3 means two other brands were listed before you.</p>
        <p>A lower number is better. If your visibility is 67% but your average position is 3.2, you appear often but rarely lead the recommendation.</p>

        <h2 id="sentiment">Sentiment</h2>
        <p><b>Sentiment</b> scores how positively your brand is described in AI responses, on a scale of 0–100. A score of 100 means every response described you positively; 50 is neutral; below 50 is net negative.</p>
        <p>Promptive uses an AI scoring model to evaluate the tone, context, and framing of each response — not just whether you appeared. A mention that says "X is overpriced and losing market share" counts as visibility but tanks your sentiment score.</p>

        <h2 id="citations">Citations</h2>
        <p><b>Citations</b> are the web sources an AI platform referenced when generating a response about your category. Platforms like Perplexity, ChatGPT, and Google AI Overview often cite sources explicitly. Promptive captures these and shows you which domains the AI trusts.</p>
        <p>This tells you where your content strategy should focus: being published on highly-cited domains increases your chances of being referenced — and recommended.</p>
        <div className="da-callout">
          <span className="tag">NOTE</span>
          <div>
            <div className="t">Citations require Starter plan or above</div>
            <p>Trial accounts include visibility, position, and sentiment. Citation tracking is available on Starter ($79/mo) and above.</p>
          </div>
        </div>

        <h2 id="engines">Engines covered</h2>
        <p>Promptive currently tracks four AI platforms plus Google's AI Overview:</p>
        <table>
          <thead><tr><th>Engine</th><th>Plan required</th><th>Notes</th></tr></thead>
          <tbody>
            <tr><td>ChatGPT</td><td>All plans incl. Trial</td><td>GPT-4o responses</td></tr>
            <tr><td>Gemini</td><td>All plans incl. Trial</td><td>Google Gemini</td></tr>
            <tr><td>Perplexity</td><td>All plans incl. Trial</td><td>Includes source citations</td></tr>
            <tr><td>Claude</td><td>Pro and above ($129/mo)</td><td>Anthropic Claude</td></tr>
            <tr><td>AI Overview</td><td>Tracked passively</td><td>Google's AI answer layer</td></tr>
          </tbody>
        </table>

        <h2 id="cadence">Refresh cadence</h2>
        <p>Every active prompt is sent to every engine on your plan <b>once per day</b>. This applies to all plans including Trial. Your dashboard always reflects the last 24 hours of fresh data.</p>
        <p>Promptive stores 18 months of history by default, so you can chart trends over time, identify when your visibility dropped, and correlate changes with content or PR activity.</p>
      </div>
    ),
  },

  'creating-a-brand': {
    ..._JB,
    title: 'Adding your brand',
    lede: 'How Promptive uses your website to set up tracking — and how to configure brand name, aliases, competitors, and prompts.',
    readTime: '5 min read',
    chips: ['getting started'],
    category: 'Getting started',
    toc: [
      { id: 'the-crawl',    t: 'The crawl',          level: 2 },
      { id: 'brand-name',   t: 'Brand name & aliases', level: 2 },
      { id: 'competitors',  t: 'Competitors',         level: 2 },
      { id: 'prompt-setup', t: 'Prompt suggestions',  level: 2 },
      { id: 'editing',      t: 'Editing later',       level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="the-crawl">The crawl</h2>
        <p>When you enter your website URL, Promptive crawls your homepage and key pages to build a model of your brand. It looks at:</p>
        <ul>
          <li>How you describe yourself and your product</li>
          <li>What problem you solve and who your target customer is</li>
          <li>Which categories and keywords are most prominent</li>
          <li>Who your competitors are (mentioned in comparisons, integrations, or alternatives)</li>
        </ul>
        <p>This usually takes 20–45 seconds. Promptive uses the crawl to prefill your brand setup and generate relevant competitor and prompt suggestions — so you're not starting from scratch.</p>

        <h2 id="brand-name">Brand name & aliases</h2>
        <p>The <b>brand name</b> is the exact string Promptive looks for in AI responses. Set it to whatever your brand is most commonly called — "Acme Analytics" not "acme-analytics.com".</p>
        <p><b>Aliases</b> let you catch variations. Add your product name, abbreviation, or any shorthand people use. Examples: "Acme," "acmeHQ," "the Acme platform."</p>
        <p>Promptive applies fuzzy matching to handle minor variations automatically (plurals, punctuation, adjacent adjectives). If you're seeing false positives from a common word in your name, you can tighten matching in Settings → Brand → Matching.</p>

        <h2 id="competitors">Competitors</h2>
        <p>Promptive suggests competitors based on the crawl — brands it expects to see alongside yours in AI answers. You can:</p>
        <ul>
          <li>Accept any or all of the suggestions</li>
          <li>Remove any you don't want to track</li>
          <li>Add competitors manually by name or URL</li>
        </ul>
        <p>Your plan determines how many you can track: 4 on Trial, 6 on Starter, unlimited on Pro and above. You can change your competitor set any time from the Competitors section.</p>

        <h2 id="prompt-setup">Prompt suggestions</h2>
        <p>Based on the crawl, Promptive generates a list of suggested prompts — the questions it will run against AI platforms daily. These are seeded from your category, use cases, and the way you describe your product.</p>
        <p>Accept the ones that feel right. Edit any to match your exact language. Add your own. A good starting set has 10–20 prompts covering at least two of: discovery, comparison, use-case, and purchase intent.</p>
        <p>See <a href="/docs?slug=your-first-prompt">Adding prompts</a> for more on writing effective prompts.</p>

        <h2 id="editing">Editing later</h2>
        <p>Everything you configure during onboarding can be changed at any time:</p>
        <ul>
          <li>Brand name and aliases → Settings → Brand</li>
          <li>Competitors → Competitors section → Manage</li>
          <li>Prompts → Prompts section → Add / deactivate</li>
        </ul>
        <p>Changes to your brand name or aliases take effect on the next daily refresh. Newly added prompts are queued for the next refresh cycle.</p>
      </div>
    ),
  },

  'your-first-prompt': {
    ..._TT,
    title: 'Adding prompts',
    lede: 'What prompts are, how to write effective ones, and how Promptive\'s Active / Suggested / Inactive states work.',
    readTime: '5 min read',
    chips: ['getting started'],
    category: 'Getting started',
    toc: [
      { id: 'what-is-a-prompt', t: 'What is a prompt',        level: 2 },
      { id: 'categories',       t: 'Four prompt categories',  level: 2 },
      { id: 'suggested',        t: 'Suggested prompts',       level: 2 },
      { id: 'adding-manually',  t: 'Adding manually',         level: 2 },
      { id: 'states',           t: 'Active, Suggested, Inactive', level: 2 },
      { id: 'limits',           t: 'Plan limits',             level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-is-a-prompt">What is a prompt</h2>
        <p>A prompt is a question or phrase that Promptive sends to every AI engine on your plan, every day, and checks whether your brand appears in the answer. Think of prompts as the queries your potential customers would type into ChatGPT or Perplexity when looking for something in your category.</p>
        <p>Good prompts are specific, intent-driven questions — not keywords. "What's the best AI brand tracking tool?" is a prompt. "AI brand tracking" is a keyword.</p>

        <h2 id="categories">Four prompt categories</h2>
        <p>Structure your prompt library around these four types:</p>
        <table>
          <thead><tr><th>Category</th><th>What it tests</th><th>Example</th></tr></thead>
          <tbody>
            <tr><td>Discovery</td><td>Are you recommended when someone starts looking?</td><td>"What are the best tools for AI brand monitoring?"</td></tr>
            <tr><td>Comparison</td><td>How do you stack up head-to-head?</td><td>"How does Promptive compare to Profound?"</td></tr>
            <tr><td>Use-case</td><td>Are you mentioned for specific jobs-to-be-done?</td><td>"How do I track my brand across ChatGPT and Gemini?"</td></tr>
            <tr><td>Purchase</td><td>Do you show up when someone is ready to buy?</td><td>"What should I look for in an AI visibility tool?"</td></tr>
          </tbody>
        </table>

        <h2 id="suggested">Suggested prompts</h2>
        <p>During onboarding and on an ongoing basis, Promptive surfaces <b>Suggested</b> prompts — queries it identified as high-relevance for your brand based on your category, website, and current AI search patterns.</p>
        <p>Suggested prompts don't count against your plan limit and aren't tracked until you accept them. Review the Suggested tab in the Prompts section regularly — new suggestions appear as AI search behavior evolves.</p>

        <h2 id="adding-manually">Adding manually</h2>
        <p>Click <b>New Prompt</b> in the Prompts section to add a prompt manually. Type your prompt, assign a tag if you want to organize by category, and save. It will be queued for the next daily refresh.</p>
        <p>Tips for writing effective prompts:</p>
        <ul>
          <li>Write in natural language, the way a person would actually ask</li>
          <li>Include your category, not just your brand name — "best AI visibility tools" not "Promptive pricing"</li>
          <li>Include comparison prompts even if they're uncomfortable — you need to know what AI says about you vs. competitors</li>
          <li>Start narrow and expand. 20 focused prompts give cleaner signal than 200 loosely related ones</li>
        </ul>

        <h2 id="states">Active, Suggested, Inactive</h2>
        <p>Every prompt is in one of three states:</p>
        <ul>
          <li><b>Active</b> — tracked daily, counts toward your plan limit</li>
          <li><b>Suggested</b> — identified by Promptive, not yet tracking, does not count toward your limit</li>
          <li><b>Inactive</b> — previously active, now paused; does not count toward your limit but retains history</li>
        </ul>
        <p>Deactivating a prompt stops tracking it without deleting its data. Reactivating it picks up from where it left off at the next refresh.</p>

        <h2 id="limits">Plan limits</h2>
        <table>
          <thead><tr><th>Plan</th><th>Active prompts</th></tr></thead>
          <tbody>
            <tr><td>Trial</td><td>20</td></tr>
            <tr><td>Starter</td><td>50</td></tr>
            <tr><td>Pro</td><td>100</td></tr>
            <tr><td>Growth</td><td>200</td></tr>
            <tr><td>Scale</td><td>400</td></tr>
          </tbody>
        </table>
        <p>When you hit your limit, deactivate prompts you no longer need to make room. Your data for deactivated prompts is preserved.</p>
      </div>
    ),
  },

  'inviting-teammates': {
    ..._JB,
    title: 'Inviting teammates',
    lede: 'How to add your team to a Promptive workspace so everyone can see the same data.',
    readTime: '3 min read',
    chips: ['getting started'],
    category: 'Getting started',
    toc: [
      { id: 'invite',  t: 'Inviting someone',  level: 2 },
      { id: 'access',  t: 'What they can see', level: 2 },
      { id: 'seats',   t: 'Seat limits',       level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="invite">Inviting someone</h2>
        <p>Go to <b>Settings → Team</b>. Enter the email address of the person you want to invite and click Send invite. They'll receive an email with a link to join your workspace.</p>
        <p>If they don't already have a Promptive account, they'll be prompted to create one as part of accepting the invite. Their account is tied to your workspace — they don't start a separate trial.</p>

        <h2 id="access">What they can see</h2>
        <p>Everyone in a workspace has the same view: all brands, all prompts, all data. There are no read-only or restricted roles at this time — everyone can see and edit everything in the workspace.</p>
        <p>Role-based access control is planned for a future release. Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> if this is a blocker.</p>

        <h2 id="seats">Seat limits</h2>
        <p>Trial, Starter, Pro, and Growth plans include seats for your team without a hard cap — we don't charge per seat on those plans. Scale plan includes explicit unlimited seats with priority support.</p>
        <p>If you're running a large team and need formal seat management, reach out to <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>.</p>
      </div>
    ),
  },

  'workspace-setup': {
    ..._JB,
    title: 'Workspace settings',
    lede: 'Configure your workspace name, notification preferences, and manage which brands you\'re tracking.',
    readTime: '3 min read',
    chips: ['getting started'],
    category: 'Getting started',
    toc: [
      { id: 'general',       t: 'General',       level: 2 },
      { id: 'notifications', t: 'Notifications', level: 2 },
      { id: 'brands',        t: 'Brands',        level: 2 },
      { id: 'billing',       t: 'Billing',       level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="general">General</h2>
        <p>Under <b>Settings → General</b> you can update your workspace name. The workspace name is used to identify your account in emails and any exported reports.</p>

        <h2 id="notifications">Notifications</h2>
        <p>Under <b>Settings → Notifications</b>, configure when Promptive sends you alerts. You can set thresholds for:</p>
        <ul>
          <li>Visibility drops — alert when your citation rate falls by more than X%</li>
          <li>Competitor surges — alert when a competitor overtakes you in a prompt</li>
          <li>Sentiment shifts — alert when your sentiment score crosses a threshold</li>
        </ul>
        <p>Alerts are delivered by email to all members of the workspace.</p>

        <h2 id="brands">Brands</h2>
        <p>Under <b>Settings → Brands</b> you can see all brands you're currently tracking, add a new brand, or remove one. The number of brands you can track simultaneously depends on your plan — your current usage is shown in the dashboard header (e.g., "2/3 websites").</p>
        <p>Each brand has its own prompt library, competitor set, and data. The dashboard can display an aggregate view across all brands or filter to a single one.</p>

        <h2 id="billing">Billing</h2>
        <p>Under <b>Settings → Billing</b> you can view your current plan, see your next renewal date, and upgrade or downgrade. Upgrades take effect immediately and are prorated. Downgrades take effect at the next renewal date so you retain access through the current billing period.</p>
        <p>For billing questions, email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>.</p>
      </div>
    ),
  },

  // ── DASHBOARD ───────────────────────────────────────────────────────────────

  'dashboard-overview': {
    ..._TT,
    title: 'Overview & metrics',
    lede: 'The four headline metrics on your dashboard and how to read them.',
    readTime: '4 min read',
    chips: ['dashboard'],
    category: 'Dashboard',
    toc: [
      { id: 'kpi-cards',       t: 'The four KPI cards',   level: 2 },
      { id: 'time-period',     t: 'Time period',          level: 2 },
      { id: 'recent-activity', t: 'Recent activity',      level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="kpi-cards">The four KPI cards</h2>
        <p>At the top of your dashboard you'll see four headline numbers. These are your most important at-a-glance metrics, each with a trend indicator showing change vs. the prior period.</p>
        <table>
          <thead><tr><th>Metric</th><th>What it measures</th><th>Higher is better?</th></tr></thead>
          <tbody>
            <tr><td>Citation Rate</td><td>% of your tracked prompts where your brand appears in the AI response</td><td>Yes</td></tr>
            <tr><td>Average Position</td><td>Where you rank among brands mentioned when you do appear (1 = first)</td><td>Lower is better</td></tr>
            <tr><td>Sentiment Score</td><td>How positively your brand is described, 0–100</td><td>Yes</td></tr>
            <tr><td>Monthly Traffic</td><td>Estimated referral traffic from AI-cited pages to your site</td><td>Yes</td></tr>
          </tbody>
        </table>
        <p>The trend arrows next to each number show how the metric changed vs. the previous equivalent period. A green arrow with +5% means your citation rate improved by 5 percentage points compared to the prior period.</p>

        <h2 id="time-period">Time period</h2>
        <p>The default time period for all metrics is <b>28 days</b>. You can change this using the period selector at the top right of the dashboard. Available periods vary by section — the Overview defaults to 28 days; the Analytics section offers daily, weekly, and monthly views.</p>
        <p>All metrics are calculated over the selected period. Trend arrows compare to the equivalent prior period (e.g., 28 days vs. the 28 days before that).</p>

        <h2 id="recent-activity">Recent activity</h2>
        <p>The Recent Activity feed on the dashboard shows significant events from the last 24–48 hours: rank changes, new competitor appearances, large sentiment shifts, and new citations. Each entry links to the relevant prompt or competitor detail.</p>
        <p>Activity that merits a notification will also appear in the alerts you configured in Settings → Notifications.</p>
      </div>
    ),
  },

  'platform-performance': {
    ..._TT,
    title: 'Platform performance',
    lede: 'How to read the per-engine breakdown and why your visibility differs across ChatGPT, Claude, Gemini, and Perplexity.',
    readTime: '4 min read',
    chips: ['dashboard'],
    category: 'Dashboard',
    toc: [
      { id: 'the-table',  t: 'The platform table',     level: 2 },
      { id: 'why-differ', t: 'Why engines differ',     level: 2 },
      { id: 'claude-note', t: 'Note on Claude access', level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="the-table">The platform table</h2>
        <p>The Platform Performance table shows your brand's metrics broken out per AI engine. Columns:</p>
        <table>
          <thead><tr><th>Column</th><th>What it shows</th></tr></thead>
          <tbody>
            <tr><td>Engine</td><td>ChatGPT, Claude, Gemini, Perplexity, AI Overview</td></tr>
            <tr><td>Citations</td><td>Total number of responses where your brand appeared in the selected period</td></tr>
            <tr><td>Citation Rate</td><td>% of your tracked prompts where your brand appeared on this engine</td></tr>
            <tr><td>Sentiment</td><td>Average sentiment score on this engine (0–100)</td></tr>
          </tbody>
        </table>
        <p>Use this table to spot which engines you're winning on and which need work. It's common to have very different citation rates across platforms — a 70% rate on Perplexity and a 30% rate on ChatGPT is a meaningful gap worth investigating.</p>

        <h2 id="why-differ">Why engines differ</h2>
        <p>Each AI platform was trained on different data, uses different retrieval strategies, and serves different user personas. As a result, brand visibility is rarely uniform across engines:</p>
        <ul>
          <li><b>ChatGPT</b> draws heavily on its training data and tends to recommend established brands it has seen frequently in training sources</li>
          <li><b>Perplexity</b> retrieves live web results before answering, making it more influenced by recent content and citations — and more volatile</li>
          <li><b>Gemini</b> integrates Google Search signals, so domains with strong Google authority tend to perform better</li>
          <li><b>Claude</b> is known for more cautious, hedged recommendations — it often lists multiple options rather than picking one winner</li>
        </ul>
        <p>A consistent gap on a specific engine is a signal about that engine's training data and citation behavior — not necessarily a product or SEO problem.</p>

        <h2 id="claude-note">Note on Claude access</h2>
        <p>Claude tracking is included on <b>Pro plan and above</b> ($129/mo). Trial and Starter accounts see ChatGPT, Gemini, and Perplexity only. If you're on Trial or Starter, Claude will appear in the platform table as "Pro plan required."</p>
      </div>
    ),
  },

  'brand-rankings': {
    ..._JB,
    title: 'Brand rankings',
    lede: 'How the brand rankings table works and what Share of Voice means for your competitive position.',
    readTime: '4 min read',
    chips: ['dashboard'],
    category: 'Dashboard',
    toc: [
      { id: 'rankings-table', t: 'The rankings table', level: 2 },
      { id: 'share-of-voice', t: 'Share of voice',     level: 2 },
      { id: 'trends',         t: 'Reading trends',     level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="rankings-table">The rankings table</h2>
        <p>The Brand Rankings table on the dashboard compares your brand against your tracked competitors across three dimensions:</p>
        <table>
          <thead><tr><th>Column</th><th>Definition</th></tr></thead>
          <tbody>
            <tr><td>Visibility</td><td>% of all tracked prompts where this brand appeared in AI answers</td></tr>
            <tr><td>Sentiment</td><td>Average sentiment score for this brand, 0–100</td></tr>
            <tr><td>Avg Position</td><td>Average rank when this brand appears (lower is better)</td></tr>
          </tbody>
        </table>
        <p>Your brand always appears at the top of the list. Below it are your tracked competitors, ranked by visibility descending. The table gives you an instant read on who's winning in AI answers for your prompts.</p>

        <h2 id="share-of-voice">Share of voice</h2>
        <p><b>Share of Voice</b> is your brand's % of total brand mentions across all AI responses, compared to the sum of all competitor mentions. If Promptive appears in 400 responses and your competitors appear in 600 combined, your Share of Voice is 40%.</p>
        <p>Share of Voice is displayed in the Competitors section alongside the rankings table. It's a useful relative measure that smooths out changes in your total prompt volume.</p>

        <h2 id="trends">Reading trends</h2>
        <p>Each metric in the rankings table shows a trend arrow vs. the prior period. A competitor's rising visibility is an early warning sign — especially if their gain correlates with your drop on specific prompts.</p>
        <p>Clicking a competitor in the rankings table takes you to the Competitors section where you can see their full breakdown by prompt and engine.</p>
      </div>
    ),
  },

  // ── FEATURES ────────────────────────────────────────────────────────────────

  'prompts': {
    ..._TT,
    title: 'Prompts',
    lede: 'Managing your prompt library — the table, statuses, tags, adding and archiving prompts.',
    readTime: '5 min read',
    chips: ['features'],
    category: 'Features',
    toc: [
      { id: 'the-table',   t: 'The prompts table',       level: 2 },
      { id: 'statuses',    t: 'Status tabs',              level: 2 },
      { id: 'adding',      t: 'Adding & editing prompts', level: 2 },
      { id: 'tags',        t: 'Tags',                     level: 2 },
      { id: 'export',      t: 'Export',                   level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="the-table">The prompts table</h2>
        <p>The Prompts section shows every prompt in your workspace as a table. Columns:</p>
        <table>
          <thead><tr><th>Column</th><th>What it shows</th></tr></thead>
          <tbody>
            <tr><td>Prompt</td><td>The full prompt text</td></tr>
            <tr><td>Visibility</td><td>% of daily responses where your brand appeared for this prompt</td></tr>
            <tr><td>Sentiment</td><td>Average sentiment score for this prompt's responses</td></tr>
            <tr><td>Position</td><td>Average rank when your brand appears</td></tr>
            <tr><td>Trend</td><td>Direction of visibility change vs. prior period</td></tr>
            <tr><td>Platforms</td><td>Which engines returned results (icon for each)</td></tr>
            <tr><td>Brands</td><td>How many distinct brands appeared in answers for this prompt</td></tr>
            <tr><td>Chats</td><td>Total AI responses analyzed for this prompt in the period</td></tr>
            <tr><td>Tags</td><td>Your custom category labels</td></tr>
          </tbody>
        </table>
        <p>Click any prompt to open a detail view showing per-engine breakdown, daily trend charts, and the actual AI responses.</p>

        <h2 id="statuses">Status tabs</h2>
        <p>The Prompts section has three status tabs:</p>
        <ul>
          <li><b>Active</b> — prompts being tracked daily; count toward your plan limit</li>
          <li><b>Suggested</b> — prompts Promptive identified as relevant; not tracked until accepted; don't count toward your limit</li>
          <li><b>Inactive</b> — paused prompts; history preserved; don't count toward your limit</li>
        </ul>
        <p>To accept a Suggested prompt, click the checkmark next to it. To deactivate an Active prompt, open it and choose Deactivate.</p>

        <h2 id="adding">Adding & editing prompts</h2>
        <p>Click <b>New Prompt</b> at the top right to add a prompt manually. Once added, it's queued for the next daily refresh. You can't manually trigger a refresh for a single prompt — edits take effect at the next scheduled run.</p>
        <p>To edit a prompt's text, deactivate it, edit it, then reactivate. Editing a prompt resets its historical data for that prompt text, so treat edits as new prompts unless you're fixing a typo.</p>

        <h2 id="tags">Tags</h2>
        <p>Tags are freeform labels you assign to prompts for filtering and organization. Common uses:</p>
        <ul>
          <li>Category: "discovery," "comparison," "purchase-intent"</li>
          <li>Campaign: "Q2-launch," "competitor-X"</li>
          <li>Team: "marketing," "product"</li>
        </ul>
        <p>Filter the prompts table by tag using the tag selector above the table. Tags don't affect tracking — they're organizational only.</p>

        <h2 id="export">Export</h2>
        <p>Click <b>Export</b> in the Prompts section to download all prompt data as a CSV. The export includes all columns in the current view. Available on Starter plan and above.</p>
      </div>
    ),
  },

  'competitor-tracking': {
    ..._JB,
    title: 'Competitor tracking',
    lede: 'How Promptive tracks competitors inside AI answers — the leaderboard, prompt coverage matrix, and activity feed.',
    readTime: '5 min read',
    chips: ['features'],
    category: 'Features',
    toc: [
      { id: 'how-it-works',   t: 'How it works',            level: 2 },
      { id: 'leaderboard',    t: 'Competitor leaderboard',  level: 2 },
      { id: 'coverage-matrix', t: 'Prompt coverage matrix', level: 2 },
      { id: 'platform-comp',  t: 'Platform comparison',     level: 2 },
      { id: 'activity-feed',  t: 'Activity feed',           level: 2 },
      { id: 'adding-removing', t: 'Adding & removing',      level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="how-it-works">How it works</h2>
        <p>Promptive doesn't just check whether <i>your</i> brand appeared in an AI answer — it reads the full response and identifies every brand mentioned. Your tracked competitors are matched against these mentions, giving you a complete picture of the competitive landscape for each prompt.</p>
        <p>This means competitor data comes from the same AI responses as your own data — real answers, not synthetic queries about your competitors.</p>

        <h2 id="leaderboard">Competitor leaderboard</h2>
        <p>The Competitors section opens with a leaderboard ranking every tracked competitor. Columns:</p>
        <table>
          <thead><tr><th>Column</th><th>Definition</th></tr></thead>
          <tbody>
            <tr><td>Visibility</td><td>% of all tracked prompts where this competitor appeared</td></tr>
            <tr><td>Citations</td><td>Total mention count in the period, with trend</td></tr>
            <tr><td>Prompts</td><td>How many of your tracked prompts this competitor appeared in</td></tr>
            <tr><td>Avg Position</td><td>Where they rank when mentioned (lower is better)</td></tr>
            <tr><td>Sentiment</td><td>How positively they're described in AI answers</td></tr>
          </tbody>
        </table>
        <p>You also see four headline KPIs at the top: Competitive Threats (competitors gaining ground), Share of Voice, Head-to-Head Win Rate vs. your top competitor, and your Average Position Gap vs. the competitive average.</p>

        <h2 id="coverage-matrix">Prompt coverage matrix</h2>
        <p>The Prompt Coverage Matrix is a grid showing which competitors appear in which of your tracked prompts. Rows are competitors; columns are prompts. A cell shows the competitor's average position for that prompt, or empty if they didn't appear.</p>
        <p>This is the fastest way to spot:</p>
        <ul>
          <li>Prompts where you're the only brand mentioned (opportunity to protect)</li>
          <li>Prompts where a competitor appears but you don't (gap to close)</li>
          <li>Prompts where many brands appear (crowded, low-differentiation territory)</li>
        </ul>

        <h2 id="platform-comp">Platform comparison</h2>
        <p>Below the leaderboard is a platform comparison view showing each competitor's citation count broken down by engine. Use this to understand where a competitor is strong that you're not — their strength on Perplexity while you lead on ChatGPT often reflects a difference in recent content and citations vs. historical training data.</p>

        <h2 id="activity-feed">Activity feed</h2>
        <p>The activity feed on the right side of the Competitors section shows recent events: a competitor gaining position 1 on a prompt you used to lead, new brands appearing in your prompts for the first time, or significant sentiment shifts. Each entry is timestamped and links to the specific prompt detail.</p>

        <h2 id="adding-removing">Adding & removing</h2>
        <p>To add a competitor, click <b>Add competitor</b> in the Competitors section and enter their brand name or URL. Promptive will start looking for them in your next daily refresh. To remove one, open their detail and click Remove. Historical data is preserved but no new tracking runs.</p>
        <p>Your plan determines how many competitors you can track simultaneously: 4 on Trial, 6 on Starter, unlimited on Pro and above.</p>
      </div>
    ),
  },

  'sources': {
    ..._TT,
    title: 'Sources & citations',
    lede: 'How Promptive identifies and categorizes the domains AI platforms cite when discussing your brand and category.',
    readTime: '4 min read',
    chips: ['features'],
    category: 'Features',
    toc: [
      { id: 'what-are-sources', t: 'What are sources',    level: 2 },
      { id: 'domain-types',     t: 'Domain types',        level: 2 },
      { id: 'the-table',        t: 'Sources table',       level: 2 },
      { id: 'using-sources',    t: 'Using this data',     level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-are-sources">What are sources</h2>
        <p>When AI platforms answer a question, they often reference or explicitly link to sources — the web pages, forums, or articles that informed the answer. Promptive captures these citations from actual AI responses and aggregates them into the Sources section.</p>
        <p>Sources tell you what the AI ecosystem trusts. If Reddit, G2, and three competitor blog posts are the top citations for your category's prompts, that's a map of where your content strategy needs to go.</p>
        <div className="da-callout">
          <span className="tag">NOTE</span>
          <div>
            <div className="t">Starter plan and above</div>
            <p>Citation tracking is not available on Trial. Upgrade to Starter ($79/mo) to access the Sources section.</p>
          </div>
        </div>

        <h2 id="domain-types">Domain types</h2>
        <p>Promptive categorizes every cited domain into one of these types:</p>
        <table>
          <thead><tr><th>Type</th><th>Examples</th></tr></thead>
          <tbody>
            <tr><td>UGC</td><td>Reddit, Quora, forum threads, community discussions</td></tr>
            <tr><td>Editorial</td><td>Tech publications, review sites, Substack newsletters</td></tr>
            <tr><td>Corporate</td><td>Company websites, product pages, official documentation</td></tr>
            <tr><td>Competitor</td><td>Domains belonging to your tracked competitors</td></tr>
            <tr><td>Institutional</td><td>University research, government sources, standards bodies</td></tr>
            <tr><td>Reference</td><td>Wikipedia, dictionaries, established reference databases</td></tr>
            <tr><td>You</td><td>Pages on your own domain that the AI cited</td></tr>
          </tbody>
        </table>
        <p>The Sources section shows a pie chart of category distribution and a ranked table of individual domains.</p>

        <h2 id="the-table">Sources table</h2>
        <p>The table lists the top cited domains for your tracked prompts. Columns: domain, category type, citation frequency (how often it appears in your responses), trend, and average citations per response. Filter by domain type using the tabs above the table.</p>

        <h2 id="using-sources">Using this data</h2>
        <p>The strategic value of sources data:</p>
        <ul>
          <li><b>High UGC share?</b> AI platforms are learning your category from community discussions. Contributing to these communities or earning mentions on them gives you AI visibility, not just traditional SEO</li>
          <li><b>Competitors cited often?</b> The AI has learned your category partly through competitor content. Creating better, more citable content in those same contexts can shift this</li>
          <li><b>Your own domain rarely cited?</b> Your pages aren't being used as sources. This is addressable through structured content, authoritative publishing, and earning links from domains that already rank here</li>
        </ul>
      </div>
    ),
  },

  'analytics': {
    ..._JB,
    title: 'Analytics',
    lede: 'Trend charts, top performing prompts, top cited pages, and data export.',
    readTime: '4 min read',
    chips: ['features'],
    category: 'Features',
    toc: [
      { id: 'visibility-chart', t: 'Visibility trend chart', level: 2 },
      { id: 'top-pages',        t: 'Top cited pages',        level: 2 },
      { id: 'top-prompts',      t: 'Top performing prompts', level: 2 },
      { id: 'export',           t: 'Export',                 level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="visibility-chart">Visibility trend chart</h2>
        <p>The Analytics section leads with a visibility trend chart showing your citation rate over time. Toggle between Daily, Weekly, and Monthly views. The chart overlays all active engines so you can spot divergence — for example, a drop on Gemini while ChatGPT stays flat often indicates a Google-specific issue rather than a general brand problem.</p>
        <p>The same chart can be switched to show Sentiment over time. Use this to catch sentiment degradation before it shows up in business metrics.</p>

        <h2 id="top-pages">Top cited pages</h2>
        <p>The Top Cited Pages table shows which pages on your domain the AI platforms reference most in their answers. Columns: page URL, citation count, citation rate, and which platforms cite it.</p>
        <p>Pages that appear here are actively influencing your AI visibility. Keeping them up to date, well-linked, and authoritative is one of the highest-leverage things you can do to maintain your citation rate.</p>

        <h2 id="top-prompts">Top performing prompts</h2>
        <p>The Top Performing Prompts table ranks your active prompts by visibility. Columns: prompt text, visibility %, average position, sentiment, and citation count. This is the list of prompts where your brand is consistently showing up — use it to understand what's working and inform new prompt ideas.</p>

        <h2 id="export">Export</h2>
        <p>Click <b>Export</b> at the top of the Analytics section to download all data as a CSV. The export includes all metrics for all prompts in the selected time period. Available on Starter and above.</p>
        <p>The CSV is structured to import cleanly into a spreadsheet or BI tool. Each row is a prompt × engine × date combination with visibility, sentiment, and position values.</p>
      </div>
    ),
  },

  'reports': {
    ..._TT,
    title: 'Reports',
    lede: 'Generate and export summaries of your AI visibility data.',
    readTime: '3 min read',
    chips: ['features'],
    category: 'Features',
    toc: [
      { id: 'what-reports',    t: 'What a report includes', level: 2 },
      { id: 'generating',      t: 'Generating a report',    level: 2 },
      { id: 'coming-soon',     t: 'Scheduled reports',      level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-reports">What a report includes</h2>
        <p>A Promptive report is a structured snapshot of your AI visibility for a selected time period. It includes:</p>
        <ul>
          <li>Summary KPIs: citation rate, average position, sentiment score</li>
          <li>Platform performance breakdown (per engine)</li>
          <li>Top 10 prompts by visibility</li>
          <li>Competitor rankings vs. your brand</li>
          <li>Top cited sources (Starter and above)</li>
          <li>Period-over-period comparison</li>
        </ul>

        <h2 id="generating">Generating a report</h2>
        <p>Go to the <b>Reports</b> section in the sidebar. Select the date range, choose which brands to include (if you have multiple), and click Generate. Reports export as CSV. The generation takes a few seconds.</p>

        <h2 id="coming-soon">Scheduled reports</h2>
        <p>Scheduled and automated reports (weekly email digests, PDF exports) are in development. Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> if this is a priority for your workflow.</p>
      </div>
    ),
  },

  // ── CONCEPTS ────────────────────────────────────────────────────────────────

  'visibility-scoring': {
    ..._JB,
    title: 'How visibility is scored',
    lede: 'The exact calculation behind your Citation Rate and how daily sampling produces a stable, comparable metric.',
    readTime: '5 min read',
    chips: ['concepts'],
    category: 'Concepts',
    toc: [
      { id: 'definition',   t: 'Definition',              level: 2 },
      { id: 'calculation',  t: 'How it\'s calculated',    level: 2 },
      { id: 'aggregation',  t: 'Aggregation across engines', level: 2 },
      { id: 'what-affects', t: 'What affects visibility', level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="definition">Definition</h2>
        <p><b>Visibility (Citation Rate)</b> is the percentage of your tracked prompts where your brand appears in the AI response, over a given time period.</p>
        <p>Formula: <code>Visibility % = (prompts where brand appeared ÷ total prompts tracked) × 100</code></p>
        <p>Example: 100 active prompts, brand appeared in 67 responses → Visibility = 67%.</p>

        <h2 id="calculation">How it's calculated</h2>
        <p>Every day, Promptive sends each active prompt to every engine on your plan. It parses the response to check if your brand name or any alias appears. "Appears" means a string match (with fuzzy handling for minor variations) against the full response text — not just the first sentence.</p>
        <p>Position is determined by the order of brand mentions in the response. If the AI says "Top tools: A, B, C, Acme, E" and Acme is your brand, your position for that response is 4.</p>
        <p>Daily visibility is the count of prompts with a match divided by the total prompts run that day. The dashboard shows the rolling average over your selected period (default 28 days).</p>

        <h2 id="aggregation">Aggregation across engines</h2>
        <p>When you have multiple engines, your overall Citation Rate is the average of individual engine rates, weighted equally. If ChatGPT gives you 80% and Gemini gives you 40%, your blended rate is 60%.</p>
        <p>You can see per-engine breakdown in the Platform Performance table — the blended rate is always shown in the headline KPI cards.</p>

        <h2 id="what-affects">What affects visibility</h2>
        <p>Your visibility in AI responses is influenced by:</p>
        <ul>
          <li><b>Training data presence</b> — how frequently your brand appeared in the data AI platforms were trained on</li>
          <li><b>Citation authority</b> — whether you're referenced on domains AI systems trust and cite</li>
          <li><b>Prompt specificity</b> — highly specific prompts (e.g., naming your exact category) produce higher visibility than broad ones</li>
          <li><b>Competitor saturation</b> — in crowded categories, AI systems mention more brands per response, diluting individual visibility</li>
          <li><b>Recency</b> — AI systems with retrieval (like Perplexity) are influenced by very recent content; training-data-based systems (like ChatGPT) change more slowly</li>
        </ul>
        <p>Visibility doesn't change as fast as a keyword ranking does. Meaningful shifts typically take weeks to months, not days. Day-to-day variation is normal; focus on the 28-day trend.</p>
      </div>
    ),
  },

  'sentiment-rubric': {
    ..._JB,
    title: 'How sentiment is scored',
    lede: 'How Promptive evaluates the tone of AI responses about your brand and calculates the 0–100 sentiment score.',
    readTime: '4 min read',
    chips: ['concepts'],
    category: 'Concepts',
    toc: [
      { id: 'what-sentiment', t: 'What sentiment measures', level: 2 },
      { id: 'how-scored',     t: 'How responses are scored', level: 2 },
      { id: 'the-scale',      t: 'The 0–100 scale',         level: 2 },
      { id: 'what-matters',   t: 'What moves sentiment',    level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-sentiment">What sentiment measures</h2>
        <p>Visibility tells you <i>if</i> you appeared. Sentiment tells you <i>how</i> you appeared. A mention that says "Acme Analytics is the clear leader here" and a mention that says "Acme Analytics has struggled with reliability issues" both count as visibility — but they have opposite sentiments.</p>
        <p>Sentiment is especially important in categories where the AI is making a judgment call, not just listing options. High visibility with low sentiment means the AI mentions you but positions you negatively — that's worth fixing.</p>

        <h2 id="how-scored">How responses are scored</h2>
        <p>Promptive uses an AI scoring model to evaluate the portion of each response that mentions your brand. The scorer analyzes:</p>
        <ul>
          <li>Is the brand recommended or just mentioned?</li>
          <li>What descriptive language surrounds the brand name (positive: "industry-leading," "trusted," "best"; negative: "expensive," "limited," "losing market share")?</li>
          <li>Is the brand the first recommendation or a fallback?</li>
          <li>Is the brand compared favorably or unfavorably to alternatives?</li>
        </ul>
        <p>The scorer outputs a classification: <b>Positive</b>, <b>Neutral</b>, or <b>Negative</b>.</p>

        <h2 id="the-scale">The 0–100 scale</h2>
        <p>Classifications are converted to a numeric scale: Positive = 100, Neutral = 50, Negative = 0. Your overall Sentiment Score is the weighted average of all scored responses in the period.</p>
        <p>A score of 84 means the blend of responses for your brand skews strongly positive with some neutral mentions. A score of 50 is purely neutral. Below 50 means net-negative framing dominates.</p>

        <h2 id="what-matters">What moves sentiment</h2>
        <p>Sentiment is driven by what appears in AI training data and live retrieval sources about your brand. Common causes of low sentiment:</p>
        <ul>
          <li>Negative reviews on high-authority sites (G2, Trustpilot, Reddit) that AI platforms cite heavily</li>
          <li>Competitor content that positions you unfavorably in comparisons</li>
          <li>Outdated negative press that the AI hasn't "updated" its view on</li>
          <li>Category comparisons where you're consistently listed last</li>
        </ul>
        <p>Improving sentiment is largely a content and PR play: earn positive coverage on authoritative domains, respond to and resolve negative reviews, and publish authoritative comparison content that positions you accurately.</p>
      </div>
    ),
  },

  'citation-tracking': {
    ..._TT,
    title: 'How citations are tracked',
    lede: 'Where citation data comes from, what counts as a citation, and how Promptive categorizes source domains.',
    readTime: '4 min read',
    chips: ['concepts'],
    category: 'Concepts',
    toc: [
      { id: 'what-is-citation', t: 'What is a citation',    level: 2 },
      { id: 'source',           t: 'Where data comes from', level: 2 },
      { id: 'categorization',   t: 'Domain categorization', level: 2 },
      { id: 'availability',     t: 'Plan availability',     level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-is-citation">What is a citation</h2>
        <p>A citation is a URL or domain that an AI platform explicitly referenced in its response. When Perplexity answers "What's the best AI visibility tool?" and links to a Reddit thread, a G2 review, and a competitor's blog post — those are three citations.</p>
        <p>Citations are different from brand mentions. A brand can be mentioned without being cited (the AI said the name without linking to any source). A domain can be cited without your brand being mentioned (the AI used your competitor's page as a source while recommending your competitor).</p>

        <h2 id="source">Where data comes from</h2>
        <p>Citation data is extracted from the actual AI responses Promptive receives when running your prompts. It's not inferred or estimated — it's parsed directly from responses that include explicit source links or footnotes.</p>
        <p>Not every AI engine provides citations. Perplexity, Google AI Overview, and increasingly ChatGPT provide source links in their responses. Claude and Gemini are less consistent. Promptive only records citations that appear explicitly in the response — it does not attempt to infer sources that aren't disclosed.</p>

        <h2 id="categorization">Domain categorization</h2>
        <p>Every cited domain is classified into one of seven categories (see <a href="/docs?slug=sources">Sources & citations</a> for the full list). Classification is done automatically and reviewed periodically. If you see a domain miscategorized, email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>.</p>

        <h2 id="availability">Plan availability</h2>
        <p>Citation tracking is available on <b>Starter plan and above</b> ($79/mo). Trial accounts do not include citation data. The Sources section will be visible but locked with an upgrade prompt.</p>
      </div>
    ),
  },

  'what-counts-as-a-prompt': {
    ..._TT,
    title: 'What counts as a prompt',
    lede: 'How Promptive defines a prompt, how plan limits work, and how to manage your active prompt count.',
    readTime: '3 min read',
    chips: ['concepts'],
    category: 'Concepts',
    toc: [
      { id: 'definition',  t: 'Definition',         level: 2 },
      { id: 'volume',      t: 'Response volume',    level: 2 },
      { id: 'limits',      t: 'How limits work',    level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="definition">Definition</h2>
        <p>A <b>prompt</b> in Promptive is a single query that is sent to every engine on your plan, once per day. Your plan limit is the number of prompts you can have in <b>Active</b> status at any given time.</p>
        <p>Suggested prompts and Inactive prompts do not count toward your limit. Only Active prompts do.</p>

        <h2 id="volume">Response volume</h2>
        <p>Because each prompt is sent to every engine daily, one active prompt generates multiple responses per day. The math:</p>
        <table>
          <thead><tr><th>Plan</th><th>Engines</th><th>Active prompts</th><th>Responses/day</th><th>Responses/month</th></tr></thead>
          <tbody>
            <tr><td>Trial</td><td>3</td><td>20</td><td>60</td><td>~1,800</td></tr>
            <tr><td>Starter</td><td>3</td><td>50</td><td>150</td><td>~4,500</td></tr>
            <tr><td>Pro</td><td>4</td><td>100</td><td>400</td><td>~12,000</td></tr>
            <tr><td>Growth</td><td>4</td><td>200</td><td>800</td><td>~24,000</td></tr>
            <tr><td>Scale</td><td>4</td><td>400</td><td>1,600</td><td>~48,000</td></tr>
          </tbody>
        </table>

        <h2 id="limits">How limits work</h2>
        <p>When you reach your active prompt limit, you can't add new prompts without first deactivating existing ones. Deactivating a prompt moves it to Inactive status — tracking stops, but all historical data is preserved.</p>
        <p>To upgrade your limit, go to Settings → Billing and choose a higher plan. Upgrades take effect immediately.</p>
      </div>
    ),
  },

  // ── FOR AGENCIES ─────────────────────────────────────────────────────────────

  'multi-client-workspaces': {
    ..._JB,
    title: 'Multi-client workspaces',
    lede: 'How to track multiple brands in one Promptive workspace — useful for agencies and multi-product companies.',
    readTime: '4 min read',
    chips: ['agencies'],
    category: 'For agencies',
    toc: [
      { id: 'how-it-works',  t: 'How it works',          level: 2 },
      { id: 'adding-brands', t: 'Adding a brand',        level: 2 },
      { id: 'switching',     t: 'Switching between brands', level: 2 },
      { id: 'limits',        t: 'Brand limits per plan', level: 2 },
      { id: 'agency-plan',   t: 'Agency plan',           level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="how-it-works">How it works</h2>
        <p>A Promptive workspace can track multiple brands simultaneously. Each brand has its own prompt library, competitor set, and data history — they're fully separate. Your dashboard can show an aggregated view across all brands, or you can filter to a single brand using the brand selector at the top of the page.</p>
        <p>This makes Promptive practical for agencies managing multiple clients, or companies with multiple products that need separate AI visibility tracking.</p>

        <h2 id="adding-brands">Adding a brand</h2>
        <p>Go to <b>Settings → Brands → Add brand</b>. You'll go through the same onboarding flow as your first brand: enter the website URL, Promptive crawls it, then you configure brand name, competitors, and prompts. Each brand gets its own set of active prompts (counting toward your plan's per-brand or shared limit).</p>

        <h2 id="switching">Switching between brands</h2>
        <p>Use the brand selector at the top of the dashboard to switch between brands. All sections — Dashboard, Prompts, Competitors, Sources, Analytics — filter to the selected brand. Select "All brands" for an aggregate view where available.</p>

        <h2 id="limits">Brand limits per plan</h2>
        <p>Your current brand usage is shown in the dashboard header (e.g., "2/3 websites"). The number of brands you can track depends on your plan. For exact limits per plan, see <a href="/docs?slug=pricing-overview">Plans & pricing</a> or check Settings → Billing.</p>

        <h2 id="agency-plan">Agency plan</h2>
        <p>If you're managing a large number of client brands, Promptive offers an Agency plan with custom pricing, pooled prompt allocations, and dedicated support. Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> to discuss your client roster and get a quote.</p>
      </div>
    ),
  },

  'agency-coming-soon': {
    ..._JB,
    title: 'White-label & billing',
    lede: 'White-label reports, pooled billing, per-client SSO, and the reseller program are in development.',
    readTime: '1 min read',
    chips: ['agencies', 'coming soon'],
    category: 'For agencies',
    toc: [
      { id: 'whats-coming', t: 'What\'s coming', level: 2 },
      { id: 'early-access', t: 'Early access',   level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <div className="da-callout">
          <span className="tag">NOTE</span>
          <div>
            <div className="t">These features are not yet available</div>
            <p>Multi-client workspaces are live. The features below are planned for a future release.</p>
          </div>
        </div>

        <h2 id="whats-coming">What's coming</h2>
        <ul>
          <li><b>White-label reports</b> — export branded reports with your agency's logo for client delivery</li>
          <li><b>Pooled billing</b> — one invoice covering all client brands with configurable credit allocation</li>
          <li><b>Per-client SSO</b> — give each client access to only their brand's data, with their own login</li>
          <li><b>Reseller program</b> — resell Promptive under your agency's brand with revenue sharing</li>
        </ul>

        <h2 id="early-access">Early access</h2>
        <p>If any of these are critical for your workflow, email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>. We're building with early agency partners and your use case helps us prioritize.</p>
      </div>
    ),
  },

  // ── PLANS & BILLING ─────────────────────────────────────────────────────────

  'pricing-overview': {
    ..._TT,
    title: 'Plans & pricing',
    lede: 'The five Promptive plans — Trial, Starter, Pro, Growth, and Scale — and what each includes.',
    readTime: '4 min read',
    chips: ['billing'],
    category: 'Plans & billing',
    toc: [
      { id: 'plans',     t: 'The plans',          level: 2 },
      { id: 'engines',   t: 'Engines per plan',   level: 2 },
      { id: 'annual',    t: 'Annual discount',    level: 2 },
      { id: 'changes',   t: 'Changing plans',     level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="plans">The plans</h2>
        <table>
          <thead><tr><th>Plan</th><th>Price</th><th>Prompts</th><th>Competitors</th><th>Key additions</th></tr></thead>
          <tbody>
            <tr><td>Trial</td><td>$0 · 7 days</td><td>20</td><td>4</td><td>Visibility + sentiment · 3 engines</td></tr>
            <tr><td>Starter</td><td>$79/mo</td><td>50</td><td>6</td><td>+ Citations · CSV export · share of voice</td></tr>
            <tr><td>Pro</td><td>$129/mo</td><td>100</td><td>Unlimited</td><td>+ Claude · all 4 engines</td></tr>
            <tr><td>Growth</td><td>$269/mo</td><td>200</td><td>Unlimited</td><td>+ Priority support</td></tr>
            <tr><td>Scale</td><td>$489/mo</td><td>400</td><td>Unlimited</td><td>+ Unlimited seats · priority support</td></tr>
          </tbody>
        </table>
        <p>All plans include: daily refresh on all tracked prompts, platform performance breakdown, brand rankings, and email support (at admin@getpromptive.ai). Response time is typically within one business day.</p>

        <h2 id="engines">Engines per plan</h2>
        <table>
          <thead><tr><th>Engine</th><th>Trial</th><th>Starter</th><th>Pro</th><th>Growth</th><th>Scale</th></tr></thead>
          <tbody>
            <tr><td>ChatGPT</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr>
            <tr><td>Gemini</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr>
            <tr><td>Perplexity</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td></tr>
            <tr><td>Claude</td><td>—</td><td>—</td><td>✓</td><td>✓</td><td>✓</td></tr>
          </tbody>
        </table>

        <h2 id="annual">Annual discount</h2>
        <p>Annual plans save approximately 15–20% vs. monthly billing. The exact annual price for each plan is shown on the <a href="/pricing">pricing page</a>. Annual plans are billed upfront and are not refundable for unused months.</p>

        <h2 id="changes">Changing plans</h2>
        <ul>
          <li><b>Upgrades</b> take effect immediately. The difference is prorated against your current billing period</li>
          <li><b>Downgrades</b> take effect at the next renewal date. You keep full access through the end of your current billing period</li>
          <li>If you downgrade and your active prompt count exceeds the new plan's limit, you'll need to deactivate prompts before the next refresh cycle</li>
        </ul>
        <p>Contact <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> for billing questions or to discuss an Agency plan.</p>
      </div>
    ),
  },

  'free-trial': {
    ..._TT,
    title: 'Free trial',
    lede: 'What the 7-day trial includes, what it doesn\'t, and what happens when it ends.',
    readTime: '3 min read',
    chips: ['billing'],
    category: 'Plans & billing',
    toc: [
      { id: 'what-you-get',  t: 'What you get',      level: 2 },
      { id: 'limits',        t: 'Trial limits',      level: 2 },
      { id: 'after',         t: 'After the trial',   level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <h2 id="what-you-get">What you get</h2>
        <p>The 7-day free trial gives you full access to the Promptive platform with these parameters:</p>
        <ul>
          <li>20 active prompts</li>
          <li>3 engines: ChatGPT, Gemini, and Perplexity</li>
          <li>4 competitors</li>
          <li>Daily refresh (same cadence as paid plans)</li>
          <li>Visibility scoring and sentiment analysis</li>
          <li>Brand rankings and platform performance breakdown</li>
        </ul>
        <div className="da-callout">
          <span className="tag">NOTE</span>
          <div>
            <div className="t">No credit card required</div>
            <p>The trial starts the moment you verify your email. There is no auto-charge at the end — your account simply pauses until you choose a plan.</p>
          </div>
        </div>

        <h2 id="limits">Trial limits</h2>
        <p>The trial does not include:</p>
        <ul>
          <li>Citation tracking (Sources section) — requires Starter or above</li>
          <li>CSV export — requires Starter or above</li>
          <li>Claude tracking — requires Pro or above</li>
          <li>Share of Voice — requires Starter or above</li>
        </ul>

        <h2 id="after">After the trial</h2>
        <p>When the 7-day trial ends, your account enters a read-only state. You can still see your historical data, but no new refreshes run until you choose a plan. Your data is retained for 30 days after trial expiry before deletion.</p>
        <p>To continue, go to Settings → Billing and select a plan. If you have questions about which plan is right for you, email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>.</p>
        <p>Trials are one per email address. If you need to extend your trial for evaluation purposes, reach out to <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a>.</p>
      </div>
    ),
  },

  // ── API (COMING SOON) ────────────────────────────────────────────────────────

  'api-coming-soon': {
    ..._JB,
    title: 'API reference',
    lede: 'The Promptive API is in development. Programmatic access to all visibility, sentiment, and citation data is coming.',
    readTime: '1 min read',
    chips: ['coming soon'],
    category: 'API',
    toc: [
      { id: 'overview',      t: 'Overview',      level: 2 },
      { id: 'early-access',  t: 'Early access',  level: 2 },
    ],
    body: () => (
      <div className="da-body">
        <div className="da-callout">
          <span className="tag">NOTE</span>
          <div>
            <div className="t">API not yet available</div>
            <p>The Promptive REST API is in development. The information below describes the planned interface. Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> to join the early access list.</p>
          </div>
        </div>

        <h2 id="overview">Overview</h2>
        <p>The Promptive API will give you programmatic access to all the data in your workspace: visibility scores, sentiment, citations, prompt results, and competitor data. The planned interface is REST/JSON over HTTPS with bearer token authentication.</p>
        <p>Intended use cases include piping visibility data into your own dashboards, BI tools, or reporting workflows, and triggering alerts in your own systems when metrics cross a threshold.</p>

        <h2 id="early-access">Early access</h2>
        <p>Email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> with your workspace name and a brief description of your integration use case. We'll notify you when the API beta opens and prioritize your access.</p>
      </div>
    ),
  },

  // ── Legacy slugs (kept for backward compat with docs-article.html links) ───

  'prompt-libraries': {
    ..._TT, title: 'Prompt libraries', lede: 'See: Prompts.', readTime: '1 min', chips: [], category: 'Features',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>This article has moved. See <a href="/docs?slug=prompts">Prompts</a> for current documentation on managing your prompt library.</p>
      </div>
    ),
  },
  'engines-and-refresh': {
    ..._TT, title: 'Engines & refresh', lede: 'See: Platform performance.', readTime: '1 min', chips: [], category: 'Features',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>This article has moved. See <a href="/docs?slug=platform-performance">Platform performance</a> for current documentation on engines and refresh cadence.</p>
      </div>
    ),
  },
  'competitor-sets': {
    ..._JB, title: 'Competitor sets', lede: 'See: Competitor tracking.', readTime: '1 min', chips: [], category: 'Features',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>This article has moved. See <a href="/docs?slug=competitor-tracking">Competitor tracking</a>.</p>
      </div>
    ),
  },
  'sentiment-analysis': {
    ..._JB, title: 'Sentiment analysis', lede: 'See: How sentiment is scored.', readTime: '1 min', chips: [], category: 'Concepts',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>This article has moved. See <a href="/docs?slug=sentiment-rubric">How sentiment is scored</a>.</p>
      </div>
    ),
  },
  'refresh-on-demand': {
    ..._TT, title: 'Refreshing on demand', lede: 'Prompts refresh automatically once per day on all plans.', readTime: '1 min', chips: [], category: 'Features',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>All active prompts are refreshed automatically once per day across every engine on your plan. There is no manual on-demand refresh — this ensures data comparability across your prompt library. See <a href="/docs?slug=platform-performance">Platform performance</a> for more on refresh cadence.</p>
      </div>
    ),
  },
  'fixing-competitor-mismatch': {
    ..._TT, title: 'Fixing a competitor mismatch', lede: 'How to correct false positive or false negative competitor matches.', readTime: '2 min', chips: [], category: 'Features',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>If a competitor is being matched incorrectly (appearing when they shouldn't, or being missed), the issue is usually with the brand name or alias configuration. Go to <b>Competitors → [competitor name] → Edit</b> and adjust the name or add/remove aliases. Changes take effect on the next daily refresh.</p>
        <p>If the problem persists, email <a href="mailto:admin@getpromptive.ai">admin@getpromptive.ai</a> with the prompt and response text where the mismatch occurred.</p>
      </div>
    ),
  },
  'prompt-selection': {
    ..._JB, title: 'Prompt selection & expansion', lede: 'See: Adding prompts.', readTime: '1 min', chips: [], category: 'Concepts',
    toc: [],
    body: () => (
      <div className="da-body">
        <p>This article has moved. See <a href="/docs?slug=your-first-prompt">Adding prompts</a> for guidance on writing effective prompts and understanding Suggested prompts.</p>
      </div>
    ),
  },
};
