{
  "type": "excalidraw",
  "version": 2,
  "source": "claude-code",
  "elements": [
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1001,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1001,
      "id": "el1001",
      "type": "text",
      "x": 0,
      "y": -46,
      "text": "L4 · Onboarding première connexion (EA-045, #55) — v1 à valider",
      "fontSize": 22,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 762.3000000000001,
      "height": 27.5,
      "containerId": null,
      "originalText": "L4 · Onboarding première connexion (EA-045, #55) — v1 à valider",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1002,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1002,
      "id": "el1002",
      "type": "text",
      "x": 0,
      "y": -14,
      "text": "Cible du lien envoyé par e-mail : {FRONT_URL}/onboarding/{token}",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 457.6,
      "height": 16.25,
      "containerId": null,
      "originalText": "Cible du lien envoyé par e-mail : {FRONT_URL}/onboarding/{token}",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1003,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1003,
      "id": "el1003",
      "type": "rectangle",
      "x": 240,
      "y": 20,
      "width": 560,
      "height": 520,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1004,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1004,
      "id": "el1004",
      "type": "text",
      "x": 280,
      "y": 50,
      "text": "Bienvenue chez Efektiv Académie",
      "fontSize": 20,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 341.0,
      "height": 25.0,
      "containerId": null,
      "originalText": "Bienvenue chez Efektiv Académie",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1005,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1005,
      "id": "el1005",
      "type": "text",
      "x": 280,
      "y": 82,
      "text": "Marc Dubois vous a invité. Deux minutes suffisent.",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 357.50000000000006,
      "height": 16.25,
      "containerId": null,
      "originalText": "Marc Dubois vous a invité. Deux minutes suffisent.",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1006,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1006,
      "id": "el1006",
      "type": "text",
      "x": 280,
      "y": 120,
      "text": "1 · Définir mon mot de passe",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1971c2",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 231.00000000000003,
      "height": 18.75,
      "containerId": null,
      "originalText": "1 · Définir mon mot de passe",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1007,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1007,
      "id": "el1007",
      "type": "text",
      "x": 280,
      "y": 140,
      "text": "Mot de passe*",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 85.80000000000001,
      "height": 15.0,
      "containerId": null,
      "originalText": "Mot de passe*",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1008,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1008,
      "id": "el1008",
      "type": "rectangle",
      "x": 280,
      "y": 158,
      "width": 480,
      "height": 34,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1009,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1009,
      "id": "el1009",
      "type": "text",
      "x": 292,
      "y": 168,
      "text": "••••••••••••",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 85.80000000000001,
      "height": 16.25,
      "containerId": null,
      "originalText": "••••••••••••",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1010,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1010,
      "id": "el1010",
      "type": "text",
      "x": 280,
      "y": 206,
      "text": "Confirmation*",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 85.80000000000001,
      "height": 15.0,
      "containerId": null,
      "originalText": "Confirmation*",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1011,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1011,
      "id": "el1011",
      "type": "rectangle",
      "x": 280,
      "y": 224,
      "width": 480,
      "height": 34,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1012,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1012,
      "id": "el1012",
      "type": "text",
      "x": 292,
      "y": 234,
      "text": "••••••••••••",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 85.80000000000001,
      "height": 16.25,
      "containerId": null,
      "originalText": "••••••••••••",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1013,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1013,
      "id": "el1013",
      "type": "text",
      "x": 280,
      "y": 268,
      "text": "12 caractères minimum, une majuscule, un chiffre. Force : ▮▮▮▯",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 375.1,
      "height": 13.75,
      "containerId": null,
      "originalText": "12 caractères minimum, une majuscule, un chiffre. Force : ▮▮▮▯",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1014,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1014,
      "id": "el1014",
      "type": "text",
      "x": 280,
      "y": 306,
      "text": "2 · Compléter mes informations",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1971c2",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 247.50000000000003,
      "height": 18.75,
      "containerId": null,
      "originalText": "2 · Compléter mes informations",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1015,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1015,
      "id": "el1015",
      "type": "text",
      "x": 280,
      "y": 326,
      "text": "Prénom*",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 46.2,
      "height": 15.0,
      "containerId": null,
      "originalText": "Prénom*",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1016,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1016,
      "id": "el1016",
      "type": "rectangle",
      "x": 280,
      "y": 344,
      "width": 232,
      "height": 34,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1017,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1017,
      "id": "el1017",
      "type": "text",
      "x": 292,
      "y": 354,
      "text": "Marc",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 28.6,
      "height": 16.25,
      "containerId": null,
      "originalText": "Marc",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1018,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1018,
      "id": "el1018",
      "type": "text",
      "x": 528,
      "y": 326,
      "text": "Nom*",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 26.400000000000002,
      "height": 15.0,
      "containerId": null,
      "originalText": "Nom*",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1019,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1019,
      "id": "el1019",
      "type": "rectangle",
      "x": 528,
      "y": 344,
      "width": 232,
      "height": 34,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1020,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1020,
      "id": "el1020",
      "type": "text",
      "x": 540,
      "y": 354,
      "text": "Dubois",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 42.900000000000006,
      "height": 16.25,
      "containerId": null,
      "originalText": "Dubois",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1021,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1021,
      "id": "el1021",
      "type": "text",
      "x": 280,
      "y": 392,
      "text": "Société : Efektiv Group    ·    Profil : Gestionnaire",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 349.8,
      "height": 15.0,
      "containerId": null,
      "originalText": "Société : Efektiv Group    ·    Profil : Gestionnaire",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1022,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1022,
      "id": "el1022",
      "type": "text",
      "x": 280,
      "y": 410,
      "text": "Renseignés par votre administrateur — non modifiables ici.",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 350.90000000000003,
      "height": 13.75,
      "containerId": null,
      "originalText": "Renseignés par votre administrateur — non modifiables ici.",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1023,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1023,
      "id": "el1023",
      "type": "rectangle",
      "x": 280,
      "y": 440,
      "width": 480,
      "height": 42,
      "strokeColor": "#1971c2",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1024,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1024,
      "id": "el1024",
      "type": "text",
      "x": 430,
      "y": 452,
      "text": "Activer mon compte et me connecter",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1971c2",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 261.8,
      "height": 17.5,
      "containerId": null,
      "originalText": "Activer mon compte et me connecter",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1025,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1025,
      "id": "el1025",
      "type": "text",
      "x": 280,
      "y": 498,
      "text": "En activant, vous acceptez la charte d'usage de la plateforme.",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#868e96",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 375.1,
      "height": 13.75,
      "containerId": null,
      "originalText": "En activant, vous acceptez la charte d'usage de la plateforme.",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1026,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1026,
      "id": "el1026",
      "type": "text",
      "x": 840,
      "y": 20,
      "text": "ÉTATS À PRÉVOIR",
      "fontSize": 14,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#c2255c",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 115.50000000000001,
      "height": 17.5,
      "containerId": null,
      "originalText": "ÉTATS À PRÉVOIR",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1027,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1027,
      "id": "el1027",
      "type": "rectangle",
      "x": 840,
      "y": 46,
      "width": 380,
      "height": 92,
      "strokeColor": "#c2255c",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1028,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1028,
      "id": "el1028",
      "type": "text",
      "x": 856,
      "y": 60,
      "text": "Jeton invalide ou déjà utilisé",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#c2255c",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 214.50000000000003,
      "height": 16.25,
      "containerId": null,
      "originalText": "Jeton invalide ou déjà utilisé",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1029,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1029,
      "id": "el1029",
      "type": "text",
      "x": 856,
      "y": 82,
      "text": "« Ce lien n'est plus valide. Demandez à votre\nadministrateur de vous renvoyer une invitation. »\n→ bouton vers la page de connexion",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 296.45000000000005,
      "height": 41.25,
      "containerId": null,
      "originalText": "« Ce lien n'est plus valide. Demandez à votre\nadministrateur de vous renvoyer une invitation. »\n→ bouton vers la page de connexion",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1030,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1030,
      "id": "el1030",
      "type": "rectangle",
      "x": 840,
      "y": 152,
      "width": 380,
      "height": 92,
      "strokeColor": "#c2255c",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1031,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1031,
      "id": "el1031",
      "type": "text",
      "x": 856,
      "y": 166,
      "text": "Jeton expiré",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#c2255c",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 85.80000000000001,
      "height": 16.25,
      "containerId": null,
      "originalText": "Jeton expiré",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1032,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1032,
      "id": "el1032",
      "type": "text",
      "x": 856,
      "y": 188,
      "text": "Même écran, message distinct : la personne doit\nsavoir que le lien a EXPIRÉ, pas qu'il est faux —\nc'est ce qui lui dit quoi demander.",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 296.45000000000005,
      "height": 41.25,
      "containerId": null,
      "originalText": "Même écran, message distinct : la personne doit\nsavoir que le lien a EXPIRÉ, pas qu'il est faux —\nc'est ce qui lui dit quoi demander.",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1033,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1033,
      "id": "el1033",
      "type": "rectangle",
      "x": 840,
      "y": 258,
      "width": 380,
      "height": 74,
      "strokeColor": "#868e96",
      "roundness": {
        "type": 3
      }
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1034,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1034,
      "id": "el1034",
      "type": "text",
      "x": 856,
      "y": 272,
      "text": "Chargement",
      "fontSize": 13,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 71.5,
      "height": 16.25,
      "containerId": null,
      "originalText": "Chargement",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1035,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1035,
      "id": "el1035",
      "type": "text",
      "x": 856,
      "y": 294,
      "text": "La validation du jeton est un appel réseau :\nafficher un état d'attente, jamais une page vide.",
      "fontSize": 11,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 296.45000000000005,
      "height": 27.5,
      "containerId": null,
      "originalText": "La validation du jeton est un appel réseau :\nafficher un état d'attente, jamais une page vide.",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1036,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1036,
      "id": "el1036",
      "type": "text",
      "x": 0,
      "y": 580,
      "text": "DÉCIDÉ / À NOTER",
      "fontSize": 15,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#c2255c",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 132.0,
      "height": 18.75,
      "containerId": null,
      "originalText": "DÉCIDÉ / À NOTER",
      "autoResize": true
    },
    {
      "angle": 0,
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 1,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "version": 1,
      "versionNonce": 1037,
      "isDeleted": false,
      "boundElements": null,
      "updated": 1,
      "link": null,
      "locked": false,
      "seed": 1037,
      "id": "el1037",
      "type": "text",
      "x": 0,
      "y": 610,
      "text": "1. ⚠ BLOQUANT — c'est le SEUL chemin d'entrée. #55 a supprimé l'envoi du mot de passe en clair :\n   sans cet écran, ni un compte créé par l'admin ni un invité ne peuvent se connecter. Aucun contournement.\n2. Une seule page, deux étapes visibles. Un tunnel en plusieurs pages ferait perdre des gens sur un geste\n   qu'on ne fait qu'une fois, et dont l'abandon coûte un aller-retour avec l'administrateur.\n3. La page ne demande QUE ce que l'utilisateur seul peut fournir : son mot de passe, l'orthographe de son nom.\n   Société et profil métier sont affichés en lecture — les corriger relève de l'administrateur (#51).\n4. ⚠ Une page blanche n'est jamais une réponse acceptable. Les trois états ci-contre sont au CA, au même\n   titre que le cas nominal : c'est précisément la page blanche qui a rendu ce défaut invisible.\n5. À l'issue : connexion automatique. Renvoyer vers l'écran de connexion ferait ressaisir un mot de passe\n   défini dix secondes plus tôt.\n6. Contrôle de non-régression demandé : un test qui construit le lien COMME LE FAIT LE BACK et vérifie\n   qu'une route front y répond. C'est la jointure entre les deux dépôts que rien ne teste aujourd'hui.",
      "fontSize": 12,
      "fontFamily": 2,
      "textAlign": "left",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "roundness": null,
      "lineHeight": 1.25,
      "width": 726.0000000000001,
      "height": 180.0,
      "containerId": null,
      "originalText": "1. ⚠ BLOQUANT — c'est le SEUL chemin d'entrée. #55 a supprimé l'envoi du mot de passe en clair :\n   sans cet écran, ni un compte créé par l'admin ni un invité ne peuvent se connecter. Aucun contournement.\n2. Une seule page, deux étapes visibles. Un tunnel en plusieurs pages ferait perdre des gens sur un geste\n   qu'on ne fait qu'une fois, et dont l'abandon coûte un aller-retour avec l'administrateur.\n3. La page ne demande QUE ce que l'utilisateur seul peut fournir : son mot de passe, l'orthographe de son nom.\n   Société et profil métier sont affichés en lecture — les corriger relève de l'administrateur (#51).\n4. ⚠ Une page blanche n'est jamais une réponse acceptable. Les trois états ci-contre sont au CA, au même\n   titre que le cas nominal : c'est précisément la page blanche qui a rendu ce défaut invisible.\n5. À l'issue : connexion automatique. Renvoyer vers l'écran de connexion ferait ressaisir un mot de passe\n   défini dix secondes plus tôt.\n6. Contrôle de non-régression demandé : un test qui construit le lien COMME LE FAIT LE BACK et vérifie\n   qu'une route front y répond. C'est la jointure entre les deux dépôts que rien ne teste aujourd'hui.",
      "autoResize": true
    }
  ],
  "appState": {
    "gridSize": null,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}