{
  "$comment": "Machine-readable cookie declaration for seamlessdoubt.com. Source of truth for audits and automated privacy scans. Human-readable versions: /pt/cookies and /en/cookies.",
  "version": "2",
  "site": "seamlessdoubt.com",
  "controller": {
    "name": "Seamless Doubt — Sociedade Unipessoal Limitada",
    "vat": "PT519387473",
    "contact": "geral@seamlessdoubt.com"
  },
  "lastUpdated": "2026-08-15",
  "categories": {
    "necessary": {
      "label": "Strictly necessary",
      "consentRequired": false,
      "description": "Required to transmit the communication or to deliver a service explicitly requested by the user. Exempt from consent under Art. 5(3) of Directive 2002/58/EC (ePrivacy) as clarified by EDPB Guidelines 03/2022 and CNPD guidance."
    },
    "functional": {
      "label": "Functional / preferences",
      "consentRequired": false,
      "description": "User-enabled interface preferences set only as a direct result of an explicit user action. Exempt under Art. 5(3)."
    },
    "analytics": {
      "label": "Analytics / measurement",
      "consentRequired": true,
      "description": "Not used. No analytics cookie or identifier is set, before or after consent."
    },
    "advertising": {
      "label": "Advertising / targeting",
      "consentRequired": true,
      "description": "Not used. No advertising, retargeting, social-profiling or fingerprinting technology is present."
    }
  },
  "consentModel": {
    "type": "opt-in",
    "priorConsent": true,
    "implementation": "first-party, self-hosted consent banner (no third-party CMP)",
    "bannerElementId": "cookie-consent-banner",
    "consentCookie": "sd-consent",
    "consentValues": ["accepted", "rejected"],
    "consentDurationDays": 365,
    "documentAttribute": "data-consent-state on <html>: pending | accepted | rejected",
    "withdrawal": "\"Cookie settings\" / \"Definições de cookies\" link in the site footer",
    "rejectAsEasyAsAccept": true,
    "cookiesSetBeforeConsent": ["__cf_bm", "__dpl", "SESS#"],
    "cookiesSetBeforeConsentJustification": "All three are strictly necessary infrastructure cookies written by the CDN/hosting edge as part of transmitting the request. None is set by application code, none is readable by JavaScript, and none is used for measurement, profiling or advertising."
  },
  "analytics": {
    "active": false,
    "note": "No analytics identifier is configured. No measurement script is loaded, even after consent."
  },
  "advertising": {
    "active": false,
    "note": "No advertising, retargeting, social or fingerprinting technologies are used."
  },
  "cookies": [
    {
      "name": "sd-consent",
      "provider": "seamlessdoubt.com",
      "controller": "Seamless Doubt — Sociedade Unipessoal Limitada",
      "party": "first",
      "category": "necessary",
      "purpose": "consent_management",
      "purposeDescription": "Stores the visitor's answer to the cookie banner so it is not shown again.",
      "consentRequired": false,
      "setBy": "application",
      "setBeforeConsent": true,
      "type": "http_cookie",
      "duration": "12 months",
      "durationSeconds": 31536000,
      "domain": "seamlessdoubt.com",
      "httpOnly": false,
      "secure": true,
      "sameSite": "Lax",
      "tracking": false,
      "crossSite": false,
      "personalData": false,
      "internationalTransfer": false,
      "legalBasis": "ePrivacy Art. 5(3) exemption — strictly necessary (record of the user's own consent choice)"
    },
    {
      "name": "sd-theme",
      "provider": "seamlessdoubt.com",
      "controller": "Seamless Doubt — Sociedade Unipessoal Limitada",
      "party": "first",
      "category": "functional",
      "purpose": "user_interface_preference",
      "purposeDescription": "Stores the user-selected light/dark interface preference.",
      "consentRequired": false,
      "setBy": "application",
      "setBeforeConsent": false,
      "type": "http_cookie_and_local_storage",
      "duration": "12 months",
      "durationSeconds": 31536000,
      "domain": "seamlessdoubt.com",
      "httpOnly": false,
      "secure": true,
      "sameSite": "Lax",
      "tracking": false,
      "crossSite": false,
      "personalData": false,
      "internationalTransfer": false,
      "legalBasis": "ePrivacy Art. 5(3) exemption — user-enabled interface preference set only on explicit user action"
    },
    {
      "name": "__cf_bm",
      "provider": "Cloudflare, Inc.",
      "controller": "Cloudflare, Inc. (processor for network security)",
      "party": "first",
      "category": "necessary",
      "purpose": "security_bot_mitigation",
      "purposeDescription": "Distinguishes human visitors from automated traffic to mitigate bots, credential stuffing and abuse. Not used for measurement, analytics, profiling or advertising, and not shared for those purposes.",
      "consentRequired": false,
      "setBy": "cdn_edge",
      "setBeforeConsent": true,
      "notBlockableByApplication": true,
      "notBlockableReason": "Written in the Set-Cookie header of the first HTTP response by the Cloudflare edge, before any application or SSR code executes. HttpOnly, therefore not readable or removable by client-side JavaScript.",
      "type": "http_cookie",
      "duration": "30 minutes",
      "durationSeconds": 1800,
      "domain": "seamlessdoubt.com",
      "httpOnly": true,
      "secure": true,
      "sameSite": "None",
      "tracking": false,
      "crossSite": false,
      "personalData": true,
      "personalDataNote": "Contains a short-lived opaque token derived from request characteristics; retained 30 minutes and used solely for abuse prevention.",
      "internationalTransfer": false,
      "legalBasis": "ePrivacy Art. 5(3) exemption (strictly necessary for a service requested by the user) + GDPR Art. 6(1)(f) legitimate interest in network and information security (Recital 49)",
      "reference": "https://developers.cloudflare.com/fundamentals/reference/policies-compliances/cloudflare-cookies/"
    },
    {
      "name": "__dpl",
      "provider": "Hosting/CDN layer (seamlessdoubt.com)",
      "controller": "Seamless Doubt — Sociedade Unipessoal Limitada",
      "party": "first",
      "category": "necessary",
      "purpose": "deployment_routing",
      "purposeDescription": "Pins a visit to a single application deployment version so that the HTML, JavaScript and API responses served within one session are mutually compatible. Carries no user identifier and is not used for measurement, profiling or advertising.",
      "consentRequired": false,
      "setBy": "hosting_edge",
      "setBeforeConsent": true,
      "notBlockableByApplication": true,
      "notBlockableReason": "Emitted by the hosting/CDN routing layer in the HTTP response, before application code runs; not settable or removable from application code.",
      "type": "http_cookie",
      "duration": "session",
      "durationSeconds": null,
      "domain": "seamlessdoubt.com",
      "httpOnly": true,
      "secure": true,
      "sameSite": "Lax",
      "tracking": false,
      "crossSite": false,
      "personalData": false,
      "internationalTransfer": false,
      "legalBasis": "ePrivacy Art. 5(3) exemption — strictly necessary to carry out the transmission of the communication"
    },
    {
      "name": "SESS#",
      "namePattern": "^SESS[0-9a-f]*$",
      "provider": "Hosting layer (seamlessdoubt.com)",
      "controller": "Seamless Doubt — Sociedade Unipessoal Limitada",
      "party": "first",
      "category": "necessary",
      "purpose": "session_management",
      "purposeDescription": "Maintains technical request continuity and, in the authenticated areas (/admin, /portal), the signed-in session of the user. Never used for analytics, profiling or advertising.",
      "consentRequired": false,
      "setBy": "hosting_edge",
      "setBeforeConsent": true,
      "notBlockableByApplication": true,
      "notBlockableReason": "Session identifier issued by the hosting layer as part of serving the request; required for authentication to function.",
      "type": "http_cookie",
      "duration": "session",
      "durationSeconds": null,
      "domain": "seamlessdoubt.com",
      "httpOnly": true,
      "secure": true,
      "sameSite": "Lax",
      "tracking": false,
      "crossSite": false,
      "personalData": true,
      "personalDataNote": "In authenticated areas the session identifier is linked to an account; it is an opaque value with no profiling use.",
      "internationalTransfer": false,
      "legalBasis": "ePrivacy Art. 5(3) exemption — strictly necessary for a service explicitly requested by the user (sign-in)"
    }
  ],
  "nonEssentialCookies": [],
  "summary": {
    "totalCookies": 5,
    "byCategory": {
      "necessary": 4,
      "functional": 1,
      "analytics": 0,
      "advertising": 0
    },
    "requiringConsent": 0,
    "thirdPartyTrackers": 0
  }
}
