// terms.jsx — Kevlex EA Terms of Use.

const TERMS_SECTIONS = [
  {
    id: 'what-this-is',
    title: 'What this is.',
    blocks: [
      'These Terms of Use ("Terms") govern your access to and use of Kevlex EA and any other tools in the KevlexOS suite (collectively, the "Service") provided by Kevlex Digital ("Kevlex," "we," "us," "our").',
      'KevlexOS is an internal product suite. Access to the Service is granted by Kevlex Digital to a defined set of users — currently, members of the Kevlex Digital team. By using the Service, you confirm that you are an authorized user and you agree to these Terms.',
    ],
  },
  {
    id: 'access',
    title: 'Access & accounts.',
    blocks: [
      'Access to Kevlex EA is via OAuth sign-in with your Google account. We may require additional verification at our discretion.',
      'You are responsible for keeping your account credentials secure, for the activity that occurs under your account, and for promptly notifying us if you suspect unauthorized use. We may suspend or revoke access without notice if we believe your account or the Service is being misused.',
      'You must be at least 18 years old to use the Service.',
    ],
  },
  {
    id: 'oauth',
    title: 'OAuth permissions you grant.',
    blocks: [
      'To deliver the morning brief and execute actions on your behalf, Kevlex EA needs OAuth access to a defined set of third-party services. By connecting an integration, you authorize Kevlex EA to read and write data within the scopes you approve.',
      {
        type: 'list',
        items: [
          'You may grant or revoke any individual integration at any time from the provider\'s permissions page.',
          'Kevlex EA will only request scopes necessary to operate the features you actually use.',
          'When you revoke an integration, Kevlex EA loses access immediately and dependent cached data is deleted within 30 days.',
        ],
      },
      'Our handling of the data we read under these permissions is described in the Privacy Policy.',
    ],
  },
  {
    id: 'auto-execution',
    title: 'Approvals & auto-execution.',
    blocks: [
      'Kevlex EA proposes actions and, in most cases, will execute them only after you explicitly approve them. For a narrow class of low-risk actions, you may configure auto-execution rules in your settings.',
      'You are responsible for the actions taken by Kevlex EA under your approval or under auto-execution rules you have set. Outputs are drafts generated by AI; you are expected to review them before they leave your account.',
      {
        type: 'callout',
        label: 'In short',
        text: 'You stay in the loop, and you stay in charge. The EA proposes; you decide.',
      },
    ],
  },
  {
    id: 'acceptable-use',
    title: 'Acceptable use.',
    blocks: [
      'You agree not to:',
      {
        type: 'list',
        items: [
          'Use the Service for any unlawful, harmful, fraudulent, or deceptive purpose.',
          'Use the Service to send unsolicited communications or to violate the terms of any connected third-party service.',
          'Attempt to access data, accounts, or systems that you are not authorized to access.',
          'Reverse-engineer, decompile, or otherwise attempt to extract source code or model weights from the Service.',
          'Use the Service to develop a competing product, or to train third-party AI models on data that flows through it.',
          'Disrupt, probe, or interfere with the operation of the Service.',
        ],
      },
    ],
  },
  {
    id: 'third-parties',
    title: 'Third-party services.',
    blocks: [
      'The Service depends on third-party providers — including Google, Slack, Read.ai, ntfy.sh, and Anthropic — to function. Your use of the Service is also subject to those providers\' own terms.',
      'We are not responsible for the availability, accuracy, or behavior of any third-party service. If a provider changes its terms, pricing, or availability, the corresponding features of Kevlex EA may change or stop working without notice.',
    ],
  },
  {
    id: 'ai-disclaimer',
    title: 'AI outputs.',
    blocks: [
      'Kevlex EA uses large language models to summarize signals and draft actions. Model outputs can be incorrect, incomplete, or misleading. Treat every draft, summary, and reminder as a starting point — not a final answer.',
      'You are responsible for reviewing any AI-generated content before relying on it, sending it, or acting on it. Kevlex Digital is not liable for decisions you make based on AI output produced by the Service.',
    ],
  },
  {
    id: 'ip',
    title: 'Intellectual property.',
    blocks: [
      'The Service, including the KevlexOS website, Kevlex EA, the design system, the source code, and all related materials, is owned by Kevlex Digital and protected by intellectual-property laws.',
      'You retain ownership of the content in your connected accounts. Nothing in these Terms transfers ownership of your data to Kevlex Digital. You grant us only the rights necessary to operate the Service for you, as described in the Privacy Policy.',
    ],
  },
  {
    id: 'disclaimer',
    title: 'Disclaimer of warranties.',
    blocks: [
      'The Service is provided "as is" and "as available," without warranties of any kind, express or implied, including merchantability, fitness for a particular purpose, and non-infringement.',
      'We do not warrant that the Service will be uninterrupted, error-free, or secure, that defects will be corrected, or that any AI-generated content will be accurate or reliable.',
    ],
  },
  {
    id: 'liability',
    title: 'Limitation of liability.',
    blocks: [
      'To the maximum extent permitted by law, Kevlex Digital and its officers, employees, and contractors will not be liable for any indirect, incidental, special, consequential, or punitive damages arising out of or related to your use of the Service — including lost profits, lost data, or business interruption.',
      'Our total aggregate liability under these Terms will not exceed one hundred euro (€100) or the amount you have paid us for the Service in the twelve months preceding the claim, whichever is greater.',
    ],
  },
  {
    id: 'termination',
    title: 'Suspension & termination.',
    blocks: [
      'You may stop using the Service at any time. Disconnecting your integrations and writing to hello@kevlex.digital is sufficient to end your relationship with Kevlex EA.',
      'We may suspend or terminate your access at any time, with or without notice, if you breach these Terms, if continued access poses a risk to the Service or to other users, or if we discontinue the Service. On termination, the Privacy Policy\'s retention and deletion rules apply.',
    ],
  },
  {
    id: 'changes',
    title: 'Changes to these Terms.',
    blocks: [
      'We may update these Terms as the Service evolves. Material changes will be notified to active users by email before they take effect. Your continued use of the Service after a change indicates acceptance of the revised Terms.',
    ],
  },
  {
    id: 'law',
    title: 'Governing law.',
    blocks: [
      'These Terms are governed by the laws of the Netherlands, without regard to its conflict-of-laws rules. Any dispute arising out of or in connection with these Terms will be submitted to the exclusive jurisdiction of the courts of Amsterdam, the Netherlands.',
      'If any provision of these Terms is held to be unenforceable, the remaining provisions remain in full effect.',
    ],
  },
  {
    id: 'contact',
    title: 'Contact.',
    blocks: [
      'Kevlex Digital — Legal. Reach us at hello@kevlex.digital for any question or notice regarding these Terms.',
    ],
  },
];

function App() {
  return (
    <LegalLayout
      current="terms"
      eyebrow="§ Legal — Terms"
      title="Terms of use,"
      kicker="written like a brief."
      lastUpdated="May 13, 2026"
      intro={'The rules under which Kevlex Digital provides Kevlex EA and the rest of the KevlexOS suite. Internal tool, internal users, but the contract still matters. Read once; refer back when something changes.'}
      sections={TERMS_SECTIONS}
    />
  );
}

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<App />);
