[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-activites-industrielles-de-boulangerie-et-patisserie-fr":83,"footer-cities-fr":146},[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":109,"tool_html":140,"source":141,"category":142,"audience":143,"publish_mode":144,"hero_image":145,"hero_image_alt":85},"ccn-activites-industrielles-de-boulangerie-et-patisserie","CCN des activités industrielles de boulangerie et pâtisserie — calculateur complet","Calculateur CCN Boulangerie-Pâtisserie Industrielle IDCC 1747 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille de salaires et le 13e mois de la CCN des activités industrielles de boulangerie et pâtisserie (IDCC 1747).","Cet outil calcule les droits des salariés couverts par la convention collective nationale IDCC 1747 (boulangerie-pâtisserie industrielle) sur quatre volets : indemnité de licenciement (formule plus favorable que la loi dès 5 ans d'ancienneté), préavis (1 à 3 mois selon statut), grille de salaires minima 2025 (de 1 804,80 € à 5 161,52 € bruts) et 13e mois obligatoire dès 3 ans d'ancienneté.",[90],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur CCN des activités industrielles de boulangerie et pâtisserie — IDCC 1747","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale des activités industrielles de boulangerie et pâtisserie","Thing","IDCC 1747",{"name":98,"@type":99},"Expert-Zoom","Organization","https:\u002F\u002Fschema.org",{"url":102,"@type":103},"\u002Ffr\u002Fmagazine\u002Fjuridique\u002Fles-conventions-collectives-en-france","Article","fr","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille de salaires minima et le 13e mois de la convention collective nationale des activités industrielles de boulangerie et pâtisserie (IDCC 1747).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131,134,137],{"a":111,"q":112},"La CCN 1747 prévoit une formule plus favorable que le code du travail : 1\u002F4 de mois par année pour les 5 premières années, 3\u002F10 de mois par année entre 5 et 10 ans d'ancienneté, puis 1\u002F2 de mois par année au-delà de 10 ans. Les cadres bénéficient d'un minimum de 3 mois d'indemnité.","Comment calculer l'indemnité de licenciement dans la convention collective des activités industrielles de boulangerie et pâtisserie (IDCC 1747) ?",{"a":114,"q":115},"L'article 37 de la CCN 1747 fixe le préavis à 1 mois pour moins de 2 ans d'ancienneté, et à 2 mois pour 2 ans d'ancienneté ou plus (non-cadres). Les cadres (niveaux J à M) bénéficient d'un préavis de 3 mois quelle que soit leur ancienneté.","Quelle est la durée du préavis dans la boulangerie-pâtisserie industrielle (IDCC 1747) ?",{"a":117,"q":118},"Depuis le 1er février 2025, la grille de la CCN 1747 s'étend de 1 804,80 € (niveau O\u002FE1) à 5 161,52 € bruts mensuels (niveau CA4), après une revalorisation de 2 % applicable à partir du 1er février 2025.","Quels sont les salaires minima de la convention collective boulangerie-pâtisserie industrielle en 2025 ?",{"a":120,"q":121},"Oui, la CCN 1747 impose un 13e mois dès 3 ans d'ancienneté. Le montant est de 1\u002F2 mois de salaire entre 3 et 5 ans d'ancienneté, puis 1 mois de salaire complet à partir de 5 ans d'ancienneté révolus.","Le 13e mois est-il obligatoire dans la boulangerie industrielle (IDCC 1747) ?",{"a":123,"q":124},"Oui, significativement. Le code du travail (L1234-9) prévoit 1\u002F4 mois par an jusqu'à 10 ans et 1\u002F3 mois par an au-delà. La CCN 1747 applique 3\u002F10 de mois par an entre 5 et 10 ans, et 1\u002F2 mois par an au-delà de 10 ans, ce qui est nettement plus avantageux pour les salariés anciens.","L'indemnité de licenciement de la CCN boulangerie industrielle est-elle plus favorable que la loi ?",{"a":126,"q":127},"Les salariés des entreprises de fabrication industrielle de pain, viennoiserie et pâtisseries sont couverts par la convention collective nationale IDCC 1747 (activités industrielles de boulangerie et pâtisserie), à distinguer de la CCN artisanale (boulangerie artisanale, IDCC 843).","Quelle est la convention collective applicable dans une boulangerie industrielle ?",{"a":129,"q":130},"La CCN 1747 suit les taux légaux du code du travail (L3121-36) : majoration de 25 % pour les 8 premières heures supplémentaires (36e à 43e heure), puis 50 % au-delà. Ces majorations peuvent être remplacées par un repos compensateur équivalent après consultation des représentants du personnel.","Quelles sont les heures supplémentaires dans la boulangerie industrielle IDCC 1747 ?",{"a":132,"q":133},"La CCN nationale 1747 ne prévoit pas de prime d'ancienneté distincte. En revanche, le 13e mois (obligatoire dès 3 ans) et la progression de l'indemnité de licenciement constituent les principales mesures liées à l'ancienneté. Des accords d'entreprise ou régionaux peuvent prévoir des primes supplémentaires.","Y a-t-il une prime d'ancienneté dans la convention collective boulangerie industrielle ?",{"a":135,"q":136},"La CCN IDCC 843 s'applique aux boulangeries artisanales (moins de 10 salariés en général, production artisanale). La CCN IDCC 1747 couvre les entreprises de fabrication industrielle de produits de boulangerie, viennoiserie et pâtisserie à caractère industriel (usines, grandes unités de production). Les droits sont différents sur plusieurs points, notamment l'indemnité de licenciement.","Quelle est la différence entre la CCN boulangerie artisanale (IDCC 843) et la CCN boulangerie industrielle (IDCC 1747) ?",{"a":138,"q":139},"La CCN 1747 ne fixe pas de date précise de versement. En pratique, la prime annuelle est souvent versée en décembre, et peut être proratisée si le salarié n'est pas présent toute l'année. Certains accords d'entreprise prévoient un versement en deux fois.","Quand le 13e mois est-il versé dans la boulangerie industrielle ?","\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>Calculateur CCN Boulangerie-Pâtisserie Industrielle IDCC 1747\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 {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: #fafaf9;\n      color: #1c1917;\n      font-size: 15px;\n      line-height: 1.5;\n      padding: 16px;\n    }\n    .tool-root { max-width: 680px; margin: 0 auto; }\n\n    \u002F* Header *\u002F\n    .tool-header { margin-bottom: 20px; }\n    .tool-header h1 {\n      font-size: 1.15rem;\n      font-weight: 700;\n      color: #1c1917;\n      margin-bottom: 4px;\n    }\n    .tool-header .idcc-badge {\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      font-size: 0.78rem;\n      font-weight: 600;\n      color: #1d4ed8;\n      background: #dbeafe;\n      border-radius: 99px;\n      padding: 2px 10px;\n    }\n\n    \u002F* Tabs *\u002F\n    .tabs-bar {\n      display: flex;\n      gap: 2px;\n      background: #e7e5e4;\n      border-radius: 10px;\n      padding: 4px;\n      margin-bottom: 20px;\n      overflow-x: auto;\n      scrollbar-width: none;\n    }\n    .tabs-bar::-webkit-scrollbar { display: none; }\n    .tab-btn {\n      flex: 1;\n      min-width: 80px;\n      background: transparent;\n      border: none;\n      border-radius: 7px;\n      padding: 7px 10px;\n      font-size: 0.82rem;\n      font-weight: 500;\n      color: #78716c;\n      cursor: pointer;\n      transition: all 0.15s;\n      white-space: nowrap;\n    }\n    .tab-btn.active {\n      background: #fff;\n      color: #1d4ed8;\n      font-weight: 600;\n      box-shadow: 0 1px 3px rgba(0,0,0,0.1);\n    }\n    .tab-btn:hover:not(.active) { color: #44403c; background: #f5f5f4; }\n\n    \u002F* Panel *\u002F\n    .panel { display: none; }\n    .panel.active { display: block; }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex;\n      gap: 10px;\n      background: #eff6ff;\n      border: 1px solid #bfdbfe;\n      border-radius: 10px;\n      padding: 12px 14px;\n      margin-bottom: 18px;\n      color: #1e40af;\n      font-size: 0.88rem;\n      line-height: 1.5;\n    }\n    .rule-callout i { flex-shrink: 0; margin-top: 1px; }\n    .rule-callout strong { color: #1d4ed8; }\n\n    \u002F* Form elements *\u002F\n    .form-group { margin-bottom: 16px; }\n    .form-label {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      font-size: 0.85rem;\n      font-weight: 500;\n      color: #44403c;\n      margin-bottom: 6px;\n    }\n    .form-label .val {\n      font-weight: 700;\n      color: #1c1917;\n      font-variant-numeric: tabular-nums;\n    }\n    input[type=range] {\n      width: 100%;\n      accent-color: #2563eb;\n      height: 6px;\n      cursor: pointer;\n    }\n    .pills {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 6px;\n    }\n    .pill {\n      padding: 5px 14px;\n      border-radius: 99px;\n      border: 1.5px solid #d6d3d1;\n      background: #fff;\n      font-size: 0.82rem;\n      font-weight: 500;\n      color: #57534e;\n      cursor: pointer;\n      transition: all 0.12s;\n    }\n    .pill.active {\n      border-color: #2563eb;\n      background: #eff6ff;\n      color: #1d4ed8;\n    }\n    select {\n      width: 100%;\n      padding: 8px 12px;\n      border: 1.5px solid #d6d3d1;\n      border-radius: 8px;\n      font-size: 0.9rem;\n      color: #1c1917;\n      background: #fff;\n      cursor: pointer;\n      appearance: none;\n      background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'\u002F%3E%3C\u002Fsvg%3E\");\n      background-repeat: no-repeat;\n      background-position: right 10px center;\n      padding-right: 32px;\n    }\n    select:focus { outline: none; border-color: #2563eb; }\n    .toggle-row {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      font-size: 0.85rem;\n      color: #44403c;\n    }\n    .toggle {\n      position: relative;\n      width: 40px;\n      height: 22px;\n      flex-shrink: 0;\n    }\n    .toggle input { opacity: 0; width: 0; height: 0; }\n    .toggle-slider {\n      position: absolute;\n      inset: 0;\n      background: #d6d3d1;\n      border-radius: 99px;\n      cursor: pointer;\n      transition: 0.2s;\n    }\n    .toggle-slider::before {\n      content: '';\n      position: absolute;\n      width: 16px; height: 16px;\n      background: white;\n      border-radius: 50%;\n      top: 3px; left: 3px;\n      transition: 0.2s;\n    }\n    .toggle input:checked + .toggle-slider { background: #2563eb; }\n    .toggle input:checked + .toggle-slider::before { transform: translateX(18px); }\n\n    \u002F* Result card *\u002F\n    .result-card {\n      background: linear-gradient(135deg, #1d4ed8, #2563eb);\n      border-radius: 12px;\n      padding: 18px 20px;\n      color: white;\n      margin-top: 20px;\n      margin-bottom: 20px;\n    }\n    .result-card .result-label {\n      font-size: 0.82rem;\n      opacity: 0.85;\n      margin-bottom: 6px;\n      display: flex;\n      align-items: center;\n      gap: 6px;\n    }\n    .result-card .result-amount {\n      font-size: 2rem;\n      font-weight: 800;\n      font-variant-numeric: tabular-nums;\n      letter-spacing: -0.5px;\n    }\n    .result-card .result-detail {\n      font-size: 0.8rem;\n      opacity: 0.75;\n      margin-top: 6px;\n    }\n    .result-secondary {\n      background: #f5f5f4;\n      border: 1px solid #e7e5e4;\n      border-radius: 10px;\n      padding: 12px 16px;\n      margin-top: 10px;\n      font-size: 0.85rem;\n      color: #57534e;\n    }\n    .result-secondary strong { color: #1c1917; }\n\n    \u002F* Grille table *\u002F\n    .grid-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }\n    .grid-table th {\n      background: #f5f5f4;\n      padding: 7px 10px;\n      text-align: left;\n      font-weight: 600;\n      color: #44403c;\n      border-bottom: 1px solid #e7e5e4;\n    }\n    .grid-table td {\n      padding: 7px 10px;\n      border-bottom: 1px solid #f5f5f4;\n      color: #44403c;\n      font-variant-numeric: tabular-nums;\n    }\n    .grid-table tr.highlighted td { background: #eff6ff; color: #1d4ed8; font-weight: 600; }\n    .grid-table tr:last-child td { border-bottom: none; }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.78rem;\n      color: #78716c;\n      border-top: 1px solid #e7e5e4;\n      padding-top: 14px;\n      margin-top: 8px;\n      line-height: 1.6;\n    }\n    .disclaimer a { color: #2563eb; text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n    .section-divider { height: 1px; background: #f5f5f4; margin: 16px 0; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1747 — deviations detected\n     indemnite: L1234-9 baseline → 1\u002F4 (1-5 ans), 3\u002F10 (5-10 ans), 1\u002F2 (>10 ans) — source: art. 38 CCN 1747\n     preavis: L1234-1 → 1 mois (\u003C2 ans), 2 mois (≥2 ans non-cadres), 3 mois (cadres) — source: art. 37 CCN 1747\n     salaire-min: grille publiée par accord, de €1 804,80 à €5 161,52 (avt 02\u002F2025) — source: accord salaires 02\u002F2025\n     prime-annuelle: 13e mois mandatoire — 1\u002F2 mois (3-5 ans), 1 mois (≥5 ans) — source: art. 35 CCN 1747\n     heures-supp: conforme L3121-36 (25%\u002F50%) — aucune déviation\n     conges: 30 jours ouvrables — conforme L3141-3 — aucune déviation nationale\n-->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Ch1>Calculateur — CCN Boulangerie-Pâtisserie Industrielle\u003C\u002Fh1>\n    \u003Cspan class=\"idcc-badge\">\u003Ci data-lucide=\"shield-check\" style=\"width:12px;height:12px;\">\u003C\u002Fi> IDCC 1747\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\n  \u003Cnav class=\"tabs-bar\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\">Indemnité\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\">Préavis\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire\" role=\"tab\">Grille salaires\u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"prime\" role=\"tab\">13e mois\u003C\u002Fbutton>\n  \u003C\u002Fnav>\n\n  \u003C!-- ═══════════════════════════════════════\n       TAB 1 : INDEMNITÉ DE LICENCIEMENT\n  ════════════════════════════════════════ -->\n  \u003Csection class=\"panel\" data-panel=\"indemnite\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 1747 prévoit une indemnité \u003Cstrong>plus favorable\u003C\u002Fstrong> que le code du travail (art. L1234-9) : le taux passe à \u003Cstrong>3\u002F10e de mois par année\u003C\u002Fstrong> entre 5 et 10 ans, puis \u003Cstrong>1\u002F2 mois par année\u003C\u002Fstrong> au-delà de 10 ans (vs 1\u002F4 et 1\u002F3 légaux). Les cadres bénéficient d'un minimum de 3 mois.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Salaire brut mensuel de référence\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"ind-salaire-val\">2 500 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"ind-salaire\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Ancienneté (années complètes)\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"ind-anciennete-val\">5 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"ind-anciennete\" min=\"1\" max=\"40\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\u003Cspan>Statut\u003C\u002Fspan>\u003C\u002Fdiv>\n      \u003Cdiv class=\"pills\">\n        \u003Cbutton class=\"pill active\" data-group=\"ind-statut\" data-val=\"non-cadre\">Non-cadre (niv. A–I)\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-group=\"ind-statut\" data-val=\"cadre\">Cadre (niv. J–M)\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\u003Cspan>Motif\u003C\u002Fspan>\u003C\u002Fdiv>\n      \u003Cdiv class=\"pills\">\n        \u003Cbutton class=\"pill active\" data-group=\"ind-motif\" data-val=\"perso\">Motif personnel\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-group=\"ind-motif\" data-val=\"eco\">Licenciement économique\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\" id=\"ind-result\">\n      \u003Cdiv class=\"result-label\">\u003Ci data-lucide=\"calculator\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Indemnité conventionnelle\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-amount\" id=\"ind-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"ind-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-secondary\" id=\"ind-compare\">\u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- ═══════════════════════════════════════\n       TAB 2 : PRÉAVIS\n  ════════════════════════════════════════ -->\n  \u003Csection class=\"panel\" data-panel=\"preavis\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>L'art. 37 de la CCN fixe des délais précis : \u003Cstrong>1 mois\u003C\u002Fstrong> pour moins de 2 ans d'ancienneté, \u003Cstrong>2 mois\u003C\u002Fstrong> pour 2 ans et plus (non-cadres). Les \u003Cstrong>cadres bénéficient de 3 mois\u003C\u002Fstrong> quelle que soit l'ancienneté, plus favorable que le minimum légal.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Ancienneté (années complètes)\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"pre-anciennete-val\">3 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"pre-anciennete\" min=\"0\" max=\"40\" step=\"1\" value=\"3\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\u003Cspan>Statut\u003C\u002Fspan>\u003C\u002Fdiv>\n      \u003Cdiv class=\"pills\">\n        \u003Cbutton class=\"pill active\" data-group=\"pre-statut\" data-val=\"non-cadre\">Non-cadre\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-group=\"pre-statut\" data-val=\"cadre\">Cadre\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\u003Cspan>À l'initiative de\u003C\u002Fspan>\u003C\u002Fdiv>\n      \u003Cdiv class=\"pills\">\n        \u003Cbutton class=\"pill active\" data-group=\"pre-init\" data-val=\"employeur\">Employeur (licenciement)\u003C\u002Fbutton>\n        \u003Cbutton class=\"pill\" data-group=\"pre-init\" data-val=\"salarie\">Salarié (démission)\u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">\u003Ci data-lucide=\"clock\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Durée du préavis\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-amount\" id=\"pre-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"pre-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-secondary\" id=\"pre-info\">\u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- ═══════════════════════════════════════\n       TAB 3 : GRILLE SALAIRES MINIMA\n  ════════════════════════════════════════ -->\n  \u003Csection class=\"panel\" data-panel=\"salaire\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>L'accord du 1er février 2025 (avenant à la CCN 1747) fixe une \u003Cstrong>grille de salaires minima\u003C\u002Fstrong> conventionnels, de \u003Cstrong>1 804,80 €\u003C\u002Fstrong> (niveau O\u002FE1) à \u003Cstrong>5 161,52 €\u003C\u002Fstrong> bruts mensuels (niveau CA4), supérieurs au SMIC pour les niveaux intermédiaires et cadres.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\u003Cspan>Niveau de classification\u003C\u002Fspan>\u003C\u002Fdiv>\n      \u003Cselect id=\"sal-niveau\">\n        \u003Coption value=\"OE1\">O\u002FE1 — Ouvrier\u002FEmployé niveau 1\u003C\u002Foption>\n        \u003Coption value=\"OE2\">O\u002FE2 — Ouvrier\u002FEmployé niveau 2\u003C\u002Foption>\n        \u003Coption value=\"OE3\">O\u002FE3 — Ouvrier\u002FEmployé niveau 3\u003C\u002Foption>\n        \u003Coption value=\"OE4\">O\u002FE4 — Ouvrier\u002FEmployé niveau 4\u003C\u002Foption>\n        \u003Coption value=\"OE5\">O\u002FE5 — Ouvrier\u002FEmployé niveau 5\u003C\u002Foption>\n        \u003Coption value=\"OE6\">O\u002FE6 — Ouvrier\u002FEmployé niveau 6\u003C\u002Foption>\n        \u003Coption value=\"AM1\">A\u002FM1 — Agent de maîtrise niveau 1\u003C\u002Foption>\n        \u003Coption value=\"AM2\">A\u002FM2 — Agent de maîtrise niveau 2\u003C\u002Foption>\n        \u003Coption value=\"AM3\">A\u002FM3 — Agent de maîtrise niveau 3\u003C\u002Foption>\n        \u003Coption value=\"CA1\">CA1 — Cadre niveau 1\u003C\u002Foption>\n        \u003Coption value=\"CA2\">CA2 — Cadre niveau 2\u003C\u002Foption>\n        \u003Coption value=\"CA3\">CA3 — Cadre niveau 3\u003C\u002Foption>\n        \u003Coption value=\"CA4\">CA4 — Cadre niveau 4\u003C\u002Foption>\n      \u003C\u002Fselect>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Durée hebdomadaire (heures)\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"sal-heures-val\">35 h\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"sal-heures\" min=\"20\" max=\"39\" step=\"0.5\" value=\"35\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">\u003Ci data-lucide=\"trending-up\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Salaire minimum conventionnel (brut)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-amount\" id=\"sal-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"sal-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv style=\"margin-top:16px;\">\n      \u003Cp style=\"font-size:0.83rem;font-weight:600;color:#44403c;margin-bottom:8px;\">Grille complète (au 1er février 2025)\u003C\u002Fp>\n      \u003Ctable class=\"grid-table\" id=\"sal-grid\">\n        \u003Cthead>\n          \u003Ctr>\u003Cth>Niveau\u003C\u002Fth>\u003Cth>Désignation\u003C\u002Fth>\u003Cth>Salaire min. brut\u003C\u002Fth>\u003C\u002Ftr>\n        \u003C\u002Fthead>\n        \u003Ctbody id=\"sal-grid-body\">\u003C\u002Ftbody>\n      \u003C\u002Ftable>\n    \u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003C!-- ═══════════════════════════════════════\n       TAB 4 : 13e MOIS \u002F PRIME ANNUELLE\n  ════════════════════════════════════════ -->\n  \u003Csection class=\"panel\" data-panel=\"prime\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\" style=\"width:16px;height:16px;\">\u003C\u002Fi>\n      \u003Cp>La CCN 1747 impose un \u003Cstrong>13e mois\u003C\u002Fstrong> dès 3 ans d'ancienneté, ce que le code du travail ne prévoit pas. Le montant est de \u003Cstrong>1\u002F2 mois de salaire entre 3 et 5 ans\u003C\u002Fstrong>, puis \u003Cstrong>1 mois plein à partir de 5 ans\u003C\u002Fstrong>.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Salaire brut mensuel\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"prime-salaire-val\">2 500 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"prime-salaire\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Ancienneté (années complètes)\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"prime-anciennete-val\">5 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"prime-anciennete\" min=\"0\" max=\"40\" step=\"1\" value=\"5\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"form-group\">\n      \u003Cdiv class=\"form-label\">\n        \u003Cspan>Temps de travail (% temps plein)\u003C\u002Fspan>\n        \u003Cspan class=\"val\" id=\"prime-temps-val\">100 %\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cinput type=\"range\" id=\"prime-temps\" min=\"20\" max=\"100\" step=\"5\" value=\"100\">\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">\u003Ci data-lucide=\"gift\" style=\"width:14px;height:14px;\">\u003C\u002Fi> Prime annuelle (13e mois)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-amount\" id=\"prime-amount\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-detail\" id=\"prime-detail\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"result-secondary\" id=\"prime-info\">\u003C\u002Fdiv>\n  \u003C\u002Fsection>\n\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 1747 (activités industrielles de boulangerie et pâtisserie).\n    Sources : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALITEXT000005657284\u002F\" target=\"_blank\" rel=\"noopener\">Legifrance\u003C\u002Fa> — Avenant salaires 1er fév. 2025.\n    Pour toute validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n\u002F\u002F ════════════════════════════\n\u002F\u002F GRILLE SALAIRES 2025 (avenant 02\u002F2025)\n\u002F\u002F ════════════════════════════\nconst GRILLE = [\n  { id: 'OE1', label: 'O\u002FE1', desc: 'Ouvrier\u002FEmployé niv. 1', salaire: 1804.80 },\n  { id: 'OE2', label: 'O\u002FE2', desc: 'Ouvrier\u002FEmployé niv. 2', salaire: 1843.87 },\n  { id: 'OE3', label: 'O\u002FE3', desc: 'Ouvrier\u002FEmployé niv. 3', salaire: 1878.22 },\n  { id: 'OE4', label: 'O\u002FE4', desc: 'Ouvrier\u002FEmployé niv. 4', salaire: 1917.72 },\n  { id: 'OE5', label: 'O\u002FE5', desc: 'Ouvrier\u002FEmployé niv. 5', salaire: 1975.30 },\n  { id: 'OE6', label: 'O\u002FE6', desc: 'Ouvrier\u002FEmployé niv. 6', salaire: 2061.53 },\n  { id: 'AM1', label: 'A\u002FM1', desc: 'Agent de maîtrise niv. 1', salaire: 2307.71 },\n  { id: 'AM2', label: 'A\u002FM2', desc: 'Agent de maîtrise niv. 2', salaire: 2596.16 },\n  { id: 'AM3', label: 'A\u002FM3', desc: 'Agent de maîtrise niv. 3', salaire: 2884.62 },\n  { id: 'CA1', label: 'CA1', desc: 'Cadre niv. 1', salaire: 3173.08 },\n  { id: 'CA2', label: 'CA2', desc: 'Cadre niv. 2', salaire: 3461.53 },\n  { id: 'CA3', label: 'CA3', desc: 'Cadre niv. 3', salaire: 4326.92 },\n  { id: 'CA4', label: 'CA4', desc: 'Cadre niv. 4', salaire: 5161.52 },\n];\n\nconst fmt = (n) => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2 }).format(n);\nconst fmtN = (n, d = 2) => new Intl.NumberFormat('fr-FR', { minimumFractionDigits: d, maximumFractionDigits: d }).format(n);\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F PILL GROUPS STATE\n\u002F\u002F ════════════════════════════\nconst pillState = {\n  'ind-statut': 'non-cadre',\n  'ind-motif': 'perso',\n  'pre-statut': 'non-cadre',\n  'pre-init': 'employeur',\n};\n\ndocument.querySelectorAll('.pill').forEach(pill => {\n  pill.addEventListener('click', () => {\n    const group = pill.dataset.group;\n    pillState[group] = pill.dataset.val;\n    document.querySelectorAll(`.pill[data-group=\"${group}\"]`).forEach(p => {\n      p.classList.toggle('active', p.dataset.val === pill.dataset.val);\n    });\n    if (group.startsWith('ind-')) computeIndemnite();\n    else if (group.startsWith('pre-')) computePreavis();\n  });\n});\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F TAB 1: INDEMNITÉ\n\u002F\u002F ════════════════════════════\nfunction computeIndemnite() {\n  const salaire = +document.getElementById('ind-salaire').value;\n  const anc = +document.getElementById('ind-anciennete').value;\n  const statut = pillState['ind-statut'];\n\n  \u002F\u002F CCN 1747 — art. 38\n  \u002F\u002F Tranches: 1-5 ans → 1\u002F4; 5-10 ans → 3\u002F10; >10 ans → 1\u002F2\n  function calcCCN(s, a) {\n    let ind = 0;\n    const y1 = Math.min(a, 5);\n    const y2 = Math.max(0, Math.min(a, 10) - 5);\n    const y3 = Math.max(0, a - 10);\n    ind += y1 * (1\u002F4) * s;\n    ind += y2 * (3\u002F10) * s;\n    ind += y3 * (1\u002F2) * s;\n    if (statut === 'cadre') ind = Math.max(ind, 3 * s);\n    return ind;\n  }\n\n  \u002F\u002F Code du travail L1234-9 baseline\n  function calcLegal(s, a) {\n    let ind = 0;\n    const y1 = Math.min(a, 10);\n    const y2 = Math.max(0, a - 10);\n    ind += y1 * (1\u002F4) * s;\n    ind += y2 * (1\u002F3) * s;\n    return ind;\n  }\n\n  const ccnVal = calcCCN(salaire, anc);\n  const legalVal = calcLegal(salaire, anc);\n\n  document.getElementById('ind-amount').textContent = fmt(ccnVal);\n  document.getElementById('ind-detail').textContent =\n    `Ancienneté : ${anc} an${anc > 1 ? 's' : ''} — Salaire de référence : ${fmt(salaire)}\u002Fmois`;\n\n  const diff = ccnVal - legalVal;\n  const sign = diff >= 0 ? '+' : '';\n  document.getElementById('ind-compare').innerHTML =\n    `\u003Cstrong>Comparatif code du travail\u003C\u002Fstrong>\u003Cbr>Indemnité légale (L1234-9) : \u003Cstrong>${fmt(legalVal)}\u003C\u002Fstrong>\u003Cbr>Supplément CCN 1747 : \u003Cstrong>${sign}${fmt(diff)}\u003C\u002Fstrong>`;\n}\n\ndocument.getElementById('ind-salaire').addEventListener('input', e => {\n  document.getElementById('ind-salaire-val').textContent = fmt(+e.target.value).replace(',00','');\n  computeIndemnite();\n});\ndocument.getElementById('ind-anciennete').addEventListener('input', e => {\n  const v = +e.target.value;\n  document.getElementById('ind-anciennete-val').textContent = `${v} an${v > 1 ? 's' : ''}`;\n  computeIndemnite();\n});\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F TAB 2: PRÉAVIS\n\u002F\u002F ════════════════════════════\nfunction computePreavis() {\n  const anc = +document.getElementById('pre-anciennete').value;\n  const statut = pillState['pre-statut'];\n  const init = pillState['pre-init'];\n\n  let duree, libelle, info;\n\n  if (statut === 'cadre') {\n    duree = 3;\n    libelle = '3 mois';\n    info = 'Les cadres (niv. J à M) bénéficient de 3 mois de préavis quelle que soit leur ancienneté (art. 37 CCN 1747).';\n  } else {\n    if (anc \u003C 2) {\n      duree = 1;\n      libelle = '1 mois';\n      info = 'Non-cadres avec moins de 2 ans d\\'ancienneté : 1 mois de préavis (art. 37 CCN 1747).';\n    } else {\n      duree = 2;\n      libelle = '2 mois';\n      info = 'Non-cadres avec 2 ans d\\'ancienneté ou plus : 2 mois de préavis (art. 37 CCN 1747).';\n    }\n  }\n\n  \u002F\u002F Note: en cas de démission, le préavis est généralement identique (même durée)\n  \u002F\u002F sauf disposition plus favorable accordée par accord\n  let note = '';\n  if (init === 'salarie') {\n    note = '\u003Cbr>\u003Cem>En cas de démission, la durée est identique sauf accord de l\\'employeur pour la réduire.\u003C\u002Fem>';\n  }\n\n  document.getElementById('pre-amount').textContent = libelle;\n  document.getElementById('pre-detail').textContent =\n    `${statut === 'cadre' ? 'Cadre' : 'Non-cadre'} — ${anc} an${anc !== 1 ? 's' : ''} d'ancienneté`;\n  document.getElementById('pre-info').innerHTML = `\u003Cstrong>Détail\u003C\u002Fstrong>\u003Cbr>${info}${note}`;\n}\n\ndocument.getElementById('pre-anciennete').addEventListener('input', e => {\n  const v = +e.target.value;\n  document.getElementById('pre-anciennete-val').textContent = `${v} an${v !== 1 ? 's' : ''}`;\n  computePreavis();\n});\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F TAB 3: SALAIRE MIN\n\u002F\u002F ════════════════════════════\nfunction buildGrilleTable(selectedId) {\n  const tbody = document.getElementById('sal-grid-body');\n  tbody.innerHTML = '';\n  GRILLE.forEach(row => {\n    const tr = document.createElement('tr');\n    if (row.id === selectedId) tr.classList.add('highlighted');\n    tr.innerHTML = `\u003Ctd>${row.label}\u003C\u002Ftd>\u003Ctd>${row.desc}\u003C\u002Ftd>\u003Ctd>${fmt(row.salaire)}\u003C\u002Ftd>`;\n    tbody.appendChild(tr);\n  });\n}\n\nfunction computeSalaire() {\n  const niveauId = document.getElementById('sal-niveau').value;\n  const heures = +document.getElementById('sal-heures').value;\n  const row = GRILLE.find(r => r.id === niveauId);\n  const base = row ? row.salaire : 0;\n  const ajuste = base * (heures \u002F 35);\n\n  document.getElementById('sal-amount').textContent = fmt(ajuste);\n  document.getElementById('sal-detail').textContent =\n    `Niveau ${niveauId} — ${fmtN(heures, 1)} h\u002Fsemaine (base 35 h : ${fmt(base)})`;\n\n  buildGrilleTable(niveauId);\n}\n\ndocument.getElementById('sal-niveau').addEventListener('change', computeSalaire);\ndocument.getElementById('sal-heures').addEventListener('input', e => {\n  document.getElementById('sal-heures-val').textContent = `${fmtN(+e.target.value, 1)} h`;\n  computeSalaire();\n});\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F TAB 4: 13e MOIS\n\u002F\u002F ════════════════════════════\nfunction computePrime() {\n  const salaire = +document.getElementById('prime-salaire').value;\n  const anc = +document.getElementById('prime-anciennete').value;\n  const temps = +document.getElementById('prime-temps').value \u002F 100;\n\n  let montant = 0, detail = '', info = '';\n\n  if (anc \u003C 3) {\n    montant = 0;\n    detail = 'Pas éligible (ancienneté \u003C 3 ans)';\n    info = 'Le 13e mois est dû à partir de 3 ans d\\'ancienneté révolus (art. 35 CCN 1747).';\n  } else if (anc \u003C 5) {\n    montant = salaire * 0.5 * temps;\n    detail = `1\u002F2 mois × ${temps * 100}% temps de travail`;\n    info = `Entre 3 et 5 ans d'ancienneté, la prime équivaut à 1\u002F2 mois de salaire brut.`;\n  } else {\n    montant = salaire * 1 * temps;\n    detail = `1 mois complet × ${temps * 100}% temps de travail`;\n    info = `À partir de 5 ans d'ancienneté, la prime est d'un mois de salaire brut entier.`;\n  }\n\n  document.getElementById('prime-amount').textContent = montant > 0 ? fmt(montant) : '0 €';\n  document.getElementById('prime-detail').textContent = detail;\n  document.getElementById('prime-info').innerHTML = `\u003Cstrong>Règle applicable\u003C\u002Fstrong>\u003Cbr>${info}`;\n}\n\ndocument.getElementById('prime-salaire').addEventListener('input', e => {\n  document.getElementById('prime-salaire-val').textContent = fmt(+e.target.value).replace(',00','');\n  computePrime();\n});\ndocument.getElementById('prime-anciennete').addEventListener('input', e => {\n  const v = +e.target.value;\n  document.getElementById('prime-anciennete-val').textContent = `${v} an${v !== 1 ? 's' : ''}`;\n  computePrime();\n});\ndocument.getElementById('prime-temps').addEventListener('input', e => {\n  document.getElementById('prime-temps-val').textContent = `${+e.target.value} %`;\n  computePrime();\n});\n\n\u002F\u002F ════════════════════════════\n\u002F\u002F TAB SYSTEM\n\u002F\u002F ════════════════════════════\nconst tabBtns = document.querySelectorAll('.tab-btn');\nconst panels = document.querySelectorAll('.panel');\n\nfunction activate(id) {\n  tabBtns.forEach(t => t.classList.toggle('active', t.dataset.tab === id));\n  panels.forEach(p => p.classList.toggle('active', p.dataset.panel === id));\n  if (location.hash !== '#' + id) location.hash = id;\n  requestAnimationFrame(() => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  });\n}\n\ntabBtns.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\n\n\u002F\u002F ResizeObserver\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\n\u002F\u002F Init\nwindow.addEventListener('DOMContentLoaded', () => {\n  lucide.createIcons();\n\n  \u002F\u002F Init computes\n  computeIndemnite();\n  computePreavis();\n  computeSalaire();\n  computePrime();\n\n  \u002F\u002F Activate tab from hash or default\n  const hashTab = location.hash.slice(1);\n  const validTabs = ['indemnite', 'preavis', 'salaire', 'prime'];\n  activate(validTabs.includes(hashTab) ? hashTab : 'indemnite');\n});\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-activites-industrielles-de-boulangerie-et-patisserie-3845d687c6.webp",[]]