[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-calendrier-incubation-hantavirus-fr":83,"footer-cities-fr":128},[4,14,22,30,38,45,53,60,67,75],{"seo_content":5,"id":8,"name":9,"slug":10,"parentId":7,"lang":11,"_count":12},[6],{"page_slug":7},null,"cmkzhl7xm00dbulbc93h4qog5","Juridique","avocats","fr-FR",{"experts":13},8,{"seo_content":15,"id":17,"name":18,"slug":19,"parentId":7,"lang":11,"_count":20},[16],{"page_slug":7},"cmkzhl84700djulbcbv6pzu9e","Informatique","informaticiens",{"experts":21},3,{"seo_content":23,"id":25,"name":26,"slug":27,"parentId":7,"lang":11,"_count":28},[24],{"page_slug":7},"cmkzhlaos00gnulbc07i9jrco","Amélioration de la Maison","artisans",{"experts":29},4,{"seo_content":31,"id":33,"name":34,"slug":35,"parentId":7,"lang":11,"_count":36},[32],{"page_slug":7},"cmkzhlaqg00gpulbcx38bwoc2","Général","divers-generalistes",{"experts":37},0,{"seo_content":39,"id":41,"name":42,"slug":43,"parentId":7,"lang":11,"_count":44},[40],{"page_slug":7},"cmkzhlbvq00i3ulbcutdbcz50","Électronique Grand Public","techniciens-electronique",{"experts":21},{"seo_content":46,"id":48,"name":49,"slug":50,"parentId":7,"lang":11,"_count":51},[47],{"page_slug":7},"cmkzhlcaw00ilulbc38pxoogr","Santé","medecins",{"experts":52},5,{"seo_content":54,"id":56,"name":57,"slug":58,"parentId":7,"lang":11,"_count":59},[55],{"page_slug":7},"cmkzhlcmi00izulbcxva1m47f","Gestion de Patrimoine","conseillers-patrimoniaux",{"experts":21},{"seo_content":61,"id":63,"name":64,"slug":65,"parentId":7,"lang":11,"_count":66},[62],{"page_slug":7},"cmkzhldcv00jvulbcmcd5a7mk","Animaux et Vétérinaires","veterinaires",{"experts":21},{"seo_content":68,"id":70,"name":71,"slug":72,"parentId":7,"lang":11,"_count":73},[69],{"page_slug":7},"cmkzhldrr00kdulbchxfo67eg","Mécanique et Réparation","mecaniciens",{"experts":74},1,{"seo_content":76,"id":78,"name":79,"slug":80,"parentId":7,"lang":11,"_count":81},[77],{"page_slug":7},"cmkzhl9l300fbulbcv3i8q8p3","Aide aux Devoirs","professeurs-particuliers",{"experts":82},6,{"slug":84,"title":85,"page_title":86,"description":87,"content_md":88,"local_slug":84,"json_ld":89,"faq":105,"tool_html":121,"source":122,"category":123,"audience":124,"publish_mode":125,"hero_image":126,"hero_image_alt":127},"calendrier-incubation-hantavirus","Calculateur de fenêtre d'incubation hantavirus","Calculateur d'incubation hantavirus : quand surveiller les symptômes ?","Saisissez votre date d'exposition et obtenez précisément la fenêtre de surveillance des symptômes du hantavirus selon la souche (Puumala, Andes ou Hantaan).","Ce calculateur interactif transforme votre date d'exposition potentielle au hantavirus en une frise chronologique de surveillance médicale. Il couvre les trois souches principales : Puumala (endémique en France, néphropathie épidémique), virus des Andes (épidémie MV Hondius 2026, syndrome pulmonaire) et Hantaan\u002FDobrava. Idéal pour les personnes exposées, leurs proches et les professionnels de santé souhaitant un repère précis sur la fenêtre d'incubation.",[90],{"name":85,"@type":91,"offers":92,"@context":96,"audience":97,"inLanguage":100,"description":101,"operatingSystem":102,"applicationCategory":103,"browserRequirements":104},"WebApplication",{"@type":93,"price":94,"priceCurrency":95},"Offer","0","EUR","https:\u002F\u002Fschema.org",{"@type":98,"audienceType":99},"Audience","Public général, médecins, professionnels de santé","fr","Entrez votre date d'exposition potentielle au hantavirus pour connaître précisément la fenêtre de surveillance des symptômes selon la souche (Puumala, Andes ou Hantaan).","Any","HealthApplication","Requires JavaScript",[106,109,112,115,118],{"a":107,"q":108},"Elle varie selon la souche : pour le Puumala (France), l'incubation dure généralement 2 à 4 semaines (minimum 7 jours, maximum 6 semaines). Pour le virus des Andes, la fenêtre est de 9 à 33 jours (médiane ~21 jours), pouvant aller jusqu'à 8 semaines.","Quelle est la durée d'incubation du hantavirus ?",{"a":110,"q":111},"Pour le Puumala, la surveillance est recommandée pendant 6 semaines après l'exposition. Pour le virus des Andes (ex. passagers du MV Hondius), les autorités sanitaires recommandent une surveillance médicale de 8 semaines après la dernière exposition possible.","Combien de temps après une exposition dois-je surveiller mes symptômes ?",{"a":113,"q":114},"Si vous n'avez développé aucun symptôme 8 semaines après votre exposition, le risque d'infection est considéré comme très faible. Consultez toutefois votre médecin si vous avez des doutes sur votre exposition ou si des symptômes tardifs apparaissent.","À partir de quand puis-je être rassuré si je n'ai pas de symptômes ?",{"a":116,"q":117},"Les prodromes incluent fièvre brutale, céphalées intenses, myalgies, et parfois troubles visuels. Pour le Puumala, des douleurs lombaires et une atteinte rénale (néphropathie) surviennent dans les 3 à 8 jours. Pour le virus des Andes, une toux sèche et une détresse respiratoire peuvent apparaître rapidement.","Quels sont les premiers signes du hantavirus ?",{"a":119,"q":120},"Si vous étiez à bord du MV Hondius ou avez eu un contact étroit avec un cas confirmé de virus des Andes, contactez les autorités sanitaires sans attendre les symptômes. Pour une exposition au Puumala (zone endémique française), consultez votre médecin si vous présentez des facteurs de risque élevés.","Dois-je consulter un médecin avant que les symptômes apparaissent ?","\u003C!DOCTYPE html>\n\u003Chtml lang=\"fr\">\n\u003Chead>\n  \u003Cmeta charset=\"utf-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  \u003Ctitle>Calendrier d'incubation hantavirus\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    body { font-family: system-ui, -apple-system, sans-serif; background: #fafaf9; color: #1c1917; font-size: 15px; line-height: 1.5; }\n    .tool-root { max-width: 680px; margin: 0 auto; padding: 24px 16px 40px; }\n    h1 { font-size: 1.3rem; font-weight: 700; color: #1c1917; margin-bottom: 4px; }\n    .subtitle { font-size: 0.9rem; color: #57534e; margin-bottom: 24px; }\n    .tabs { display: flex; gap: 0; border-bottom: 2px solid #e7e5e4; margin-bottom: 24px; }\n    .tab { padding: 10px 18px; font-size: 0.88rem; font-weight: 600; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -2px; color: #78716c; transition: color 0.15s, border-color 0.15s; white-space: nowrap; }\n    .tab.active { color: #2563eb; border-bottom-color: #2563eb; }\n    .tab:hover:not(.active) { color: #1c1917; }\n    .callout { background: #eff6ff; border-left: 4px solid #2563eb; border-radius: 0 8px 8px 0; padding: 12px 16px; margin-bottom: 24px; font-size: 0.85rem; color: #1e40af; display: flex; gap: 10px; align-items: flex-start; }\n    .callout svg { flex-shrink: 0; margin-top: 2px; }\n    .callout.orange { background: #fffbeb; border-color: #f59e0b; color: #92400e; }\n    .input-card { background: #fff; border: 1px solid #e7e5e4; border-radius: 12px; padding: 20px; margin-bottom: 20px; }\n    .input-label { font-size: 0.85rem; font-weight: 600; color: #44403c; margin-bottom: 10px; display: flex; align-items: center; gap: 7px; }\n    input[type=\"date\"] { width: 100%; border: 1px solid #d6d3d1; border-radius: 8px; padding: 10px 14px; font-size: 0.95rem; font-family: inherit; color: #1c1917; background: #fafaf9; cursor: pointer; }\n    input[type=\"date\"]:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px #bfdbfe; }\n    .timeline { margin: 0; padding: 0; position: relative; }\n    .timeline-line { position: absolute; left: 18px; top: 24px; bottom: 0; width: 2px; background: #e7e5e4; }\n    .tl-item { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 20px; position: relative; }\n    .tl-dot { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; z-index: 1; }\n    .tl-dot.day0 { background: #e7e5e4; }\n    .tl-dot.early { background: #fef9c3; border: 2px solid #eab308; }\n    .tl-dot.peak { background: #dbeafe; border: 2px solid #2563eb; }\n    .tl-dot.max { background: #fce7f3; border: 2px solid #db2777; }\n    .tl-dot.clear { background: #dcfce7; border: 2px solid #16a34a; }\n    .tl-content { flex: 1; padding-top: 6px; }\n    .tl-date { font-size: 0.95rem; font-weight: 700; font-variant-numeric: tabular-nums; color: #1c1917; }\n    .tl-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px; }\n    .tl-label.day0 { color: #78716c; }\n    .tl-label.early { color: #92400e; }\n    .tl-label.peak { color: #1d4ed8; }\n    .tl-label.max { color: #9d174d; }\n    .tl-label.clear { color: #15803d; }\n    .tl-desc { font-size: 0.83rem; color: #57534e; }\n    .result-card { background: #fff; border: 1px solid #e7e5e4; border-radius: 12px; padding: 20px; }\n    .result-header { font-weight: 700; font-size: 0.95rem; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }\n    .no-date { text-align: center; padding: 40px 20px; color: #a8a29e; }\n    .no-date svg { margin: 0 auto 12px; display: block; color: #d6d3d1; }\n    .badge-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }\n    .badge { display: inline-flex; align-items: center; gap: 5px; font-size: 0.78rem; font-weight: 600; padding: 4px 10px; border-radius: 99px; }\n    .badge.blue { background: #dbeafe; color: #1d4ed8; }\n    .badge.red { background: #fee2e2; color: #b91c1c; }\n    .badge.green { background: #dcfce7; color: #15803d; }\n    .disclaimer { font-size: 0.75rem; color: #a8a29e; margin-top: 28px; text-align: center; line-height: 1.5; }\n    .disclaimer a { color: #2563eb; }\n    .today-line { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; background: #f0fdf4; color: #15803d; padding: 4px 10px; border-radius: 99px; font-weight: 600; margin-top: 8px; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003Cmain class=\"tool-root\">\n  \u003Ch1>Calculateur de fenêtre d'incubation\u003C\u002Fh1>\n  \u003Cp class=\"subtitle\">Saisissez votre date d'exposition potentielle pour connaître la période de surveillance des symptômes selon la souche virale.\u003C\u002Fp>\n\n  \u003Cdiv class=\"tabs\">\n    \u003Cdiv class=\"tab active\" onclick=\"setTab('puumala', this)\">\n      \u003Ci data-lucide=\"map-pin\" width=\"14\" height=\"14\" style=\"display:inline;vertical-align:middle;margin-right:4px\">\u003C\u002Fi>\n      Puumala (France)\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"tab\" onclick=\"setTab('andes', this)\">\n      \u003Ci data-lucide=\"ship\" width=\"14\" height=\"14\" style=\"display:inline;vertical-align:middle;margin-right:4px\">\u003C\u002Fi>\n      Andes (MV Hondius)\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"tab\" onclick=\"setTab('hantaan', this)\">\n      \u003Ci data-lucide=\"globe\" width=\"14\" height=\"14\" style=\"display:inline;vertical-align:middle;margin-right:4px\">\u003C\u002Fi>\n      Hantaan\u002FDobrava\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv id=\"calloutPuumala\" class=\"callout\">\n    \u003Ci data-lucide=\"info\" width=\"16\" height=\"16\">\u003C\u002Fi>\n    \u003Cspan>\u003Cstrong>Virus Puumala\u003C\u002Fstrong> — souche endémique en France, transmise par le campagnol roussâtre. Incubation : \u003Cstrong>2 à 4 semaines\u003C\u002Fstrong> en moyenne (min. 7 jours, max. 6 semaines). Maladie : néphropathie épidémique. Létalité &lt; 1 %.\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n  \u003Cdiv id=\"calloutAndes\" class=\"callout orange\" style=\"display:none\">\n    \u003Ci data-lucide=\"alert-triangle\" width=\"16\" height=\"16\">\u003C\u002Fi>\n    \u003Cspan>\u003Cstrong>Virus des Andes\u003C\u002Fstrong> — impliqué dans l'épidémie du MV Hondius (mai 2026). Incubation : \u003Cstrong>9 à 33 jours\u003C\u002Fstrong> (médiane ~21 j), possiblement jusqu'à 8 semaines. Seul hantavirus à transmission interhumaine confirmée. Létalité : 30–50 %.\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n  \u003Cdiv id=\"calloutHantaan\" class=\"callout\" style=\"display:none\">\n    \u003Ci data-lucide=\"info\" width=\"16\" height=\"16\">\u003C\u002Fi>\n    \u003Cspan>\u003Cstrong>Hantaan \u002F Dobrava\u003C\u002Fstrong> — souches d'Europe orientale et d'Asie. Incubation : \u003Cstrong>1 à 8 semaines\u003C\u002Fstrong> (typiquement 2–4 sem.). Syndrome fébrile hémorragique avec atteinte rénale (HFRS). Létalité : 5–15 %.\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"input-card\">\n    \u003Cdiv class=\"input-label\">\n      \u003Ci data-lucide=\"calendar\" width=\"16\" height=\"16\">\u003C\u002Fi>\n      Date d'exposition potentielle\n    \u003C\u002Fdiv>\n    \u003Cinput type=\"date\" id=\"exposureDate\" onchange=\"compute()\" max=\"\">\n    \u003Cdiv id=\"todayBadge\">\u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv id=\"resultArea\">\n    \u003Cdiv class=\"no-date\">\n      \u003Ci data-lucide=\"calendar-clock\" width=\"40\" height=\"40\">\u003C\u002Fi>\n      \u003Cp>Sélectionnez une date d'exposition pour afficher votre fenêtre de surveillance.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cp class=\"disclaimer\">\n    Données médicales : \u003Ca href=\"https:\u002F\u002Fpmc.ncbi.nlm.nih.gov\u002Farticles\u002FPMC3291207\u002F\" target=\"_blank\">PMC3291207 (Incubation HPS)\u003C\u002Fa> ·\n    \u003Ca href=\"https:\u002F\u002Fwww.ecdc.europa.eu\u002Fen\u002Finfectious-disease-topics\u002Fhantavirus-infection\u002Fsurveillance-and-updates\u002Fandes-hantavirus-outbreak\" target=\"_blank\">ECDC Andes 2026\u003C\u002Fa> ·\n    \u003Ca href=\"https:\u002F\u002Fwww.who.int\u002Fnews-room\u002Ffact-sheets\u002Fdetail\u002Fhantavirus\" target=\"_blank\">OMS Hantavirus\u003C\u002Fa> · 2026\u003Cbr>\n    Cet outil est informatif. Consultez un médecin en cas de symptômes.\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\nconst STRAINS = {\n  puumala: { minDays: 7, earlyDays: 14, peakStartDays: 21, peakEndDays: 28, maxDays: 42, clearDays: 49,\n    earlyLabel: 'Premiers symptômes possibles', peakLabel: 'Pic de risque habituel', maxLabel: 'Surveillance maximale jusqu\\'au',\n    earlyDesc: 'Fièvre, céphalées, douleurs lombaires, troubles visuels transitoires possibles dès j+7.',\n    peakDesc: 'La majorité des cas de néphropathie épidémique surviennent entre 2 et 4 semaines post-exposition.',\n    maxDesc: 'Si aucun symptôme à cette date, le risque d\\'infection devient très faible.',\n    clearDesc: 'Période de surveillance terminée si asymptomatique.',\n    badges: [{cls:'blue',icon:'clock',text:'Incubation moy. 2–4 sem.'},{cls:'green',icon:'shield-check',text:'Létalité \u003C 1 %'},{cls:'blue',icon:'map-pin',text:'Endémique Nord-Est France'}] },\n  andes: { minDays: 7, earlyDays: 9, peakStartDays: 14, peakEndDays: 33, maxDays: 56, clearDays: 63,\n    earlyLabel: 'Premiers symptômes possibles', peakLabel: 'Période de risque principal', maxLabel: 'Surveillance renforcée jusqu\\'au',\n    earlyDesc: 'Fièvre, myalgies, céphalées, toux sèche. Appelez le 15 si vous avez été à bord du MV Hondius.',\n    peakDesc: 'L\\'OMS recommande 33 jours de suivi rapproché pour les contacts à bord du MV Hondius.',\n    maxDesc: 'Santé publique France recommande un suivi médical jusqu\\'à 8 semaines après la dernière exposition.',\n    clearDesc: 'Période de surveillance terminée si asymptomatique.',\n    badges: [{cls:'red',icon:'alert-triangle',text:'Létalité 30–50 %'},{cls:'red',icon:'users',text:'Transmission interhumaine'},{cls:'blue',icon:'ship',text:'MV Hondius 2026'}] },\n  hantaan: { minDays: 7, earlyDays: 14, peakStartDays: 14, peakEndDays: 35, maxDays: 56, clearDays: 63,\n    earlyLabel: 'Premiers symptômes possibles', peakLabel: 'Période de risque typique', maxLabel: 'Surveillance jusqu\\'au',\n    earlyDesc: 'Fièvre brutale, céphalées intenses, douleurs abdominales et lombaires.',\n    peakDesc: 'Syndrome HFRS avec risque d\\'insuffisance rénale aiguë et hémorragie.',\n    maxDesc: 'Bien que rare en France, une surveillance de 8 semaines est recommandée après exposition.',\n    clearDesc: 'Période de surveillance terminée si asymptomatique.',\n    badges: [{cls:'red',icon:'alert-triangle',text:'Létalité 5–15 %'},{cls:'blue',icon:'globe',text:'Asie \u002F Europe de l\\'Est'},{cls:'blue',icon:'clock',text:'Incubation 1–8 sem.'}] }\n};\n\nlet currentStrain = 'puumala';\n\nfunction setTab(strain, el) {\n  currentStrain = strain;\n  document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));\n  el.classList.add('active');\n  document.getElementById('calloutPuumala').style.display = strain === 'puumala' ? 'flex' : 'none';\n  document.getElementById('calloutAndes').style.display = strain === 'andes' ? 'flex' : 'none';\n  document.getElementById('calloutHantaan').style.display = strain === 'hantaan' ? 'flex' : 'none';\n  compute();\n}\n\nfunction addDays(date, days) {\n  const d = new Date(date);\n  d.setDate(d.getDate() + days);\n  return d;\n}\n\nfunction fmt(date) {\n  return date.toLocaleDateString('fr-FR', { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' });\n}\n\nfunction fmtShort(date) {\n  return date.toLocaleDateString('fr-FR', { day: 'numeric', month: 'short', year: 'numeric' });\n}\n\nfunction compute() {\n  const val = document.getElementById('exposureDate').value;\n  const today = new Date(); today.setHours(0,0,0,0);\n  const resultArea = document.getElementById('resultArea');\n  const todayBadge = document.getElementById('todayBadge');\n\n  if (!val) {\n    resultArea.innerHTML = `\u003Cdiv class=\"no-date\">\u003Ci data-lucide=\"calendar-clock\" width=\"40\" height=\"40\">\u003C\u002Fi>\u003Cp>Sélectionnez une date d'exposition pour afficher votre fenêtre de surveillance.\u003C\u002Fp>\u003C\u002Fdiv>`;\n    lucide.createIcons();\n    triggerResize();\n    return;\n  }\n\n  const exposure = new Date(val + 'T00:00:00');\n  const diffDays = Math.floor((today - exposure) \u002F 86400000);\n\n  const todayText = diffDays === 0 ? \"Aujourd'hui\" : diffDays > 0 ? `Il y a ${diffDays} jour${diffDays>1?'s':''}` : `Dans ${Math.abs(diffDays)} jour${Math.abs(diffDays)>1?'s':''}`;\n  todayBadge.innerHTML = `\u003Cdiv class=\"today-line\">\u003Ci data-lucide=\"clock\" width=\"13\" height=\"13\">\u003C\u002Fi>${todayText} — ${fmtShort(exposure)}\u003C\u002Fdiv>`;\n\n  const s = STRAINS[currentStrain];\n  const earlyDate = addDays(exposure, s.earlyDays);\n  const peakStartDate = addDays(exposure, s.peakStartDays);\n  const peakEndDate = addDays(exposure, s.peakEndDays);\n  const maxDate = addDays(exposure, s.maxDays);\n  const clearDate = addDays(exposure, s.clearDays);\n\n  const items = [\n    { dot: 'day0', label: 'day0', tl_label: 'Date d\\'exposition', date: fmt(exposure), desc: 'Point de départ de la fenêtre de surveillance. Évitez tout contact étroit non protégé si souche Andes.' },\n    { dot: 'early', label: 'early', tl_label: s.earlyLabel, date: `À partir du ${fmt(earlyDate)}`, desc: s.earlyDesc },\n    { dot: 'peak', label: 'peak', tl_label: s.peakLabel, date: `Du ${fmtShort(peakStartDate)} au ${fmtShort(peakEndDate)}`, desc: s.peakDesc },\n    { dot: 'max', label: 'max', tl_label: s.maxLabel, date: fmt(maxDate), desc: s.maxDesc },\n    { dot: 'clear', label: 'clear', tl_label: 'Fin de surveillance', date: `Après le ${fmt(clearDate)}`, desc: s.clearDesc },\n  ];\n\n  const icons = { day0: 'calendar', early: 'thermometer', peak: 'activity', max: 'eye', clear: 'check-circle' };\n  const dotColors = { day0: '#78716c', early: '#d97706', peak: '#2563eb', max: '#db2777', clear: '#16a34a' };\n\n  resultArea.innerHTML = `\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-header\">\u003Ci data-lucide=\"calendar-check\" width=\"20\" height=\"20\" style=\"color:#2563eb\">\u003C\u002Fi>Votre fenêtre de surveillance\u003C\u002Fdiv>\n      \u003Cdiv class=\"timeline\">\n        \u003Cdiv class=\"timeline-line\">\u003C\u002Fdiv>\n        ${items.map(item => `\n          \u003Cdiv class=\"tl-item\">\n            \u003Cdiv class=\"tl-dot ${item.dot}\">\n              \u003Ci data-lucide=\"${icons[item.dot]}\" width=\"16\" height=\"16\" style=\"color:${dotColors[item.dot]}\">\u003C\u002Fi>\n            \u003C\u002Fdiv>\n            \u003Cdiv class=\"tl-content\">\n              \u003Cdiv class=\"tl-label ${item.label}\">${item.tl_label}\u003C\u002Fdiv>\n              \u003Cdiv class=\"tl-date\">${item.date}\u003C\u002Fdiv>\n              \u003Cdiv class=\"tl-desc\">${item.desc}\u003C\u002Fdiv>\n            \u003C\u002Fdiv>\n          \u003C\u002Fdiv>`).join('')}\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"badge-row\">\n        ${s.badges.map(b => `\u003Cspan class=\"badge ${b.cls}\">\u003Ci data-lucide=\"${b.icon}\" width=\"12\" height=\"12\">\u003C\u002Fi>${b.text}\u003C\u002Fspan>`).join('')}\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>`;\n\n  lucide.createIcons();\n  triggerResize();\n}\n\nfunction triggerResize() {\n  setTimeout(() => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  }, 50);\n}\n\nconst ro = new ResizeObserver(() => {\n  const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n  parent.postMessage({ type: 'resize', height: h }, '*');\n});\nro.observe(document.documentElement);\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  \u002F\u002F Set max date to today\n  const today = new Date().toISOString().split('T')[0];\n  document.getElementById('exposureDate').max = today;\n  lucide.createIcons();\n});\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","sante","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fcalendrier-incubation-hantavirus-e1f316a984-1779404183.webp","",[]]