[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-des-detaillants-en-chaussures-fr":83,"footer-cities-fr":140},[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":134,"source":135,"category":136,"audience":137,"publish_mode":138,"hero_image":139,"hero_image_alt":85},"ccn-des-detaillants-en-chaussures","CCN des détaillants en chaussures — calculateur complet","Calculateur CCN des détaillants en chaussures IDCC 733 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille de salaires, le 13e mois et les congés de la CCN des détaillants en chaussures (IDCC 733).","Ce calculateur couvre les 5 points de déviation de la CCN des détaillants en chaussures (IDCC 733) par rapport au Code du travail : indemnité de licenciement, durée du préavis, grille de salaires conventionnels, primes (13e mois + ancienneté) et congés payés supplémentaires selon l'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 détaillants en chaussures — IDCC 733","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective nationale des détaillants en chaussures","Thing","IDCC 733",{"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, le 13e mois et la prime d'ancienneté de la convention collective nationale des détaillants en chaussures (IDCC 733).","All","FinanceApplication",true,[110,113,116,119,122,125,128,131],{"a":111,"q":112},"La CCN des détaillants en chaussures (IDCC 733) prévoit 1\u002F5 de mois de salaire par année d'ancienneté pour les 10 premières années, puis 2\u002F15 de mois par année au-delà de 10 ans. Cette formule étant moins favorable que le Code du travail (1\u002F4 + 1\u002F3), le salarié perçoit automatiquement le montant légal le plus élevé, conformément à l'article L1234-9.","Quel est le montant de l'indemnité de licenciement dans la convention collective des détaillants en chaussures ?",{"a":114,"q":115},"La convention collective IDCC 733 prévoit : 15 jours de préavis pour moins de 6 mois d'ancienneté, 1 mois entre 6 mois et 2 ans, et 2 mois au-delà de 2 ans d'ancienneté. En outre, le salarié bénéficie de 2 heures rémunérées par semaine pour rechercher un emploi durant le préavis.","Quelle est la durée du préavis dans la CCN détaillants en chaussures IDCC 733 ?",{"a":117,"q":118},"L'avenant salarial du 10 février 2025, applicable depuis le 1er mai 2025, fixe des minima allant de 1 970 € brut\u002Fmois (niveau 1, employé débutant) à 4 700 € brut\u002Fmois (niveau 6, directeur multi-sites\u002Fcadre) pour 35 heures hebdomadaires. Tous les niveaux sont supérieurs au SMIC (1 801,80 €).","Quels sont les salaires minimaux de la convention collective chaussures (IDCC 733) en 2025 ?",{"a":120,"q":121},"Oui. La CCN IDCC 733 impose le versement d'un 13e mois, payé en deux tranches : la moitié en juin et l'autre moitié en décembre. Cet avantage n'est pas prévu par le Code du travail ; il s'agit donc d'un droit conventionnel spécifique à cette branche.","La convention collective des détaillants en chaussures prévoit-elle un 13e mois ?",{"a":123,"q":124},"Oui. La CCN IDCC 733 prévoit une prime d'ancienneté progressive : 3 % du salaire brut à partir de 3 ans, 6 % à 6 ans, 9 % à 9 ans, 12 % à 12 ans et 15 % à partir de 15 ans d'ancienneté. Cette prime s'ajoute au 13e mois.","Y a-t-il une prime d'ancienneté dans la convention collective des détaillants en chaussures ?",{"a":126,"q":127},"La CCN IDCC 733 accorde les 30 jours ouvrables légaux, augmentés de jours supplémentaires liés à l'ancienneté : +1 jour à partir de 10 ans, +2 jours à 20 ans, +3 jours à 25 ans, et +4 jours à partir de 30 ans d'ancienneté.","Combien de jours de congés payés dans la convention collective des détaillants en chaussures ?",{"a":129,"q":130},"La convention collective des détaillants en chaussures renvoie aux taux légaux du Code du travail : +25 % pour les 8 premières heures supplémentaires et +50 % au-delà. En revanche, le travail du dimanche bénéficie d'une majoration de 100 % selon la convention.","Quelles sont les majorations des heures supplémentaires dans la CCN chaussures IDCC 733 ?",{"a":132,"q":133},"La prime d'ancienneté est calculée en appliquant un pourcentage au salaire brut mensuel de base. Le taux varie de 3 % (à partir de 3 ans d'ancienneté) à 15 % (à partir de 15 ans). Par exemple, pour un salaire de 2 200 € et 9 ans d'ancienneté, la prime annuelle est de 2 200 × 9 % × 12 = 2 376 €.","Comment est calculée la prime d'ancienneté en CCN 733 ?","\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 des détaillants en chaussures — IDCC 733\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    :root {\n      --bg: #fafaf9;\n      --card: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-dark: #1d4ed8;\n      --text: #1c1917;\n      --muted: #78716c;\n      --success-bg: #f0fdf4;\n      --success-border: #bbf7d0;\n      --success-text: #166534;\n      --warn-bg: #fffbeb;\n      --warn-border: #fde68a;\n      --warn-text: #92400e;\n      --info-bg: #eff6ff;\n      --info-border: #bfdbfe;\n      --info-text: #1e40af;\n      --radius: 0.75rem;\n      --radius-sm: 0.5rem;\n    }\n    body {\n      background: var(--bg);\n      font-family: system-ui, -apple-system, sans-serif;\n      font-size: 0.9375rem;\n      color: var(--text);\n      padding: 1.25rem;\n      line-height: 1.5;\n    }\n    .tool-root { max-width: 680px; margin: 0 auto; }\n    .tool-header { margin-bottom: 1.25rem; }\n    .tool-header h1 { font-size: 1.125rem; font-weight: 700; margin-bottom: 0.25rem; }\n    .tool-header .idcc-badge {\n      display: inline-flex; align-items: center; gap: 0.3rem;\n      background: var(--accent-light); color: var(--accent);\n      font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.6rem;\n      border-radius: 999px; border: 1px solid var(--info-border);\n    }\n    \u002F* Tabs *\u002F\n    .tabs-nav {\n      display: flex; flex-wrap: wrap; gap: 0.25rem;\n      border-bottom: 2px solid var(--border);\n      margin-bottom: 1.25rem;\n    }\n    .tab-btn {\n      display: flex; align-items: center; gap: 0.375rem;\n      padding: 0.5rem 0.875rem;\n      background: none; border: none; border-bottom: 2px solid transparent;\n      margin-bottom: -2px; cursor: pointer;\n      font-size: 0.85rem; font-weight: 500; color: var(--muted);\n      border-radius: var(--radius-sm) var(--radius-sm) 0 0;\n      transition: color 0.15s, border-color 0.15s;\n    }\n    .tab-btn:hover { color: var(--accent); }\n    .tab-btn.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }\n    .tab-btn svg { width: 14px; height: 14px; }\n    .tab-panel { display: none; }\n    .tab-panel.active { display: block; }\n    \u002F* Cards *\u002F\n    .card {\n      background: var(--card); border: 1px solid var(--border);\n      border-radius: var(--radius); padding: 1.25rem; margin-bottom: 1rem;\n    }\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex; gap: 0.75rem; align-items: flex-start;\n      background: var(--info-bg); border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm); padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem; color: var(--info-text); font-size: 0.875rem;\n    }\n    .rule-callout svg { flex-shrink: 0; width: 16px; height: 16px; margin-top: 0.125rem; }\n    .rule-callout p { line-height: 1.55; }\n    .rule-callout strong { font-weight: 600; }\n    \u002F* Form controls *\u002F\n    .form-group { margin-bottom: 1rem; }\n    .form-label {\n      display: flex; justify-content: space-between; align-items: baseline;\n      font-size: 0.875rem; font-weight: 500; margin-bottom: 0.4rem; color: var(--text);\n    }\n    .form-label span.val {\n      font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums;\n    }\n    input[type=range] {\n      width: 100%; accent-color: var(--accent); cursor: pointer; height: 4px;\n    }\n    select {\n      width: 100%; padding: 0.5rem 0.75rem;\n      border: 1px solid var(--border); border-radius: var(--radius-sm);\n      font-size: 0.875rem; background: var(--card); color: var(--text);\n      cursor: pointer; appearance: auto;\n    }\n    \u002F* Pills *\u002F\n    .pills { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.35rem; }\n    .pill {\n      padding: 0.35rem 0.8rem; border-radius: 999px;\n      border: 1.5px solid var(--border); font-size: 0.8rem;\n      background: var(--card); cursor: pointer; font-weight: 500;\n      transition: border-color 0.15s, background 0.15s, color 0.15s;\n    }\n    .pill.active { border-color: var(--accent); background: var(--accent-light); color: var(--accent); }\n    \u002F* Result card *\u002F\n    .result-card {\n      background: var(--accent-light); border: 1.5px solid var(--info-border);\n      border-radius: var(--radius); padding: 1.25rem 1.5rem; margin-top: 1rem;\n    }\n    .result-card .result-label { font-size: 0.8rem; font-weight: 500; color: var(--accent); margin-bottom: 0.25rem; }\n    .result-card .result-value {\n      font-size: 1.875rem; font-weight: 800; color: var(--accent-dark);\n      font-variant-numeric: tabular-nums; line-height: 1.2;\n    }\n    .result-card .result-sub { font-size: 0.8rem; color: var(--muted); margin-top: 0.3rem; }\n    .result-breakdown {\n      margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--info-border);\n      font-size: 0.8rem; color: var(--info-text);\n    }\n    .result-breakdown div { margin-bottom: 0.2rem; }\n    \u002F* Comparison row *\u002F\n    .compare-row {\n      display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1rem;\n    }\n    .compare-box {\n      flex: 1; min-width: 160px; border-radius: var(--radius-sm); padding: 0.75rem 1rem;\n    }\n    .compare-box.ccn { background: var(--success-bg); border: 1px solid var(--success-border); }\n    .compare-box.legal { background: var(--warn-bg); border: 1px solid var(--warn-border); }\n    .compare-box .cb-label { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.25rem; }\n    .compare-box.ccn .cb-label { color: var(--success-text); }\n    .compare-box.legal .cb-label { color: var(--warn-text); }\n    .compare-box .cb-val { font-size: 1.1rem; font-weight: 700; font-variant-numeric: tabular-nums; }\n    .compare-box.ccn .cb-val { color: var(--success-text); }\n    .compare-box.legal .cb-val { color: var(--warn-text); }\n    .compare-note { font-size: 0.78rem; color: var(--muted); margin-top: 0.75rem; }\n    \u002F* Salary grid table *\u002F\n    .grid-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; margin-top: 0.75rem; }\n    .grid-table th { background: var(--accent-light); color: var(--accent); font-weight: 600; padding: 0.5rem 0.75rem; text-align: left; border: 1px solid var(--info-border); }\n    .grid-table td { padding: 0.5rem 0.75rem; border: 1px solid var(--border); }\n    .grid-table tr:hover td { background: var(--bg); }\n    .grid-table tr.selected td { background: var(--accent-light); font-weight: 600; }\n    \u002F* Seniority badge *\u002F\n    .seniority-scale {\n      display: flex; flex-direction: column; gap: 0.35rem; margin-top: 0.5rem;\n    }\n    .seniority-row {\n      display: flex; align-items: center; gap: 0.5rem;\n      font-size: 0.8rem; padding: 0.3rem 0;\n    }\n    .seniority-row .dot {\n      width: 8px; height: 8px; border-radius: 50%; background: var(--border); flex-shrink: 0;\n    }\n    .seniority-row.reached .dot { background: var(--accent); }\n    .seniority-row .pct { font-weight: 600; color: var(--muted); min-width: 3rem; }\n    .seniority-row.reached .pct { color: var(--accent); }\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.78rem; color: var(--muted); margin-top: 1.25rem;\n      padding-top: 1rem; border-top: 1px solid var(--border);\n      line-height: 1.55;\n    }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n    @media (max-width: 480px) {\n      body { padding: 0.875rem; }\n      .tabs-nav { gap: 0; }\n      .tab-btn { padding: 0.4rem 0.6rem; font-size: 0.78rem; }\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 733 — deviations:\n     indemnite: L1234-9 → 1\u002F5 mois × années (≤10) + 2\u002F15 mois × années (>10) — moins favorable, plancher légal s'applique (source: CCN IDCC 733 art. indemnités)\n     preavis: L1234-1 → 15 jours pour \u003C6 mois, 1 mois 6m–2ans, 2 mois ≥2 ans (source: CCN IDCC 733 art. préavis)\n     salaire-min: SMIC → grille conventionnelle 6 niveaux, min €1 970\u002Fmois au 01\u002F05\u002F2025 (source: Avenant salarial CCN 733, 10 fév. 2025)\n     prime-annuelle: Aucun minimum légal → 13e mois (versé juin\u002Fdéc) + prime ancienneté 3–15% (source: CCN IDCC 733)\n     conges: L3141-3 (30j ouvrables) → + jours ancienneté: +1j à 10 ans, +2j à 20 ans, +3j à 25 ans, +4j à 30 ans (source: CCN IDCC 733)\n     heures-supp: aligné L3121-36 sauf dimanche 100% (source: CCN IDCC 733) — skipped as tab\n-->\n\u003Cmain class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Ch1>Convention collective des détaillants en chaussures\u003C\u002Fh1>\n    \u003Cspan class=\"idcc-badge\">\u003Ci data-lucide=\"tag\">\u003C\u002Fi> IDCC 733\u003C\u002Fspan>\n  \u003C\u002Fdiv>\n\n  \u003Cnav class=\"tabs-nav\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"banknote\">\u003C\u002Fi> Indemnité\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"preavis\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"clock\">\u003C\u002Fi> Préavis\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"salaire-min\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"euro\">\u003C\u002Fi> Grille salariale\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"prime-annuelle\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"gift\">\u003C\u002Fi> Primes\n    \u003C\u002Fbutton>\n    \u003Cbutton class=\"tab-btn\" data-tab=\"conges\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"sun\">\u003C\u002Fi> Congés\n    \u003C\u002Fbutton>\n  \u003C\u002Fnav>\n\n  \u003C!-- ═══════════════════════════════════════════\n       TAB 1 — INDEMNITÉ DE LICENCIEMENT\n  ════════════════════════════════════════════ -->\n  \u003Cdiv data-panel=\"indemnite\" class=\"tab-panel\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 prévoit une formule d'indemnité de \u003Cstrong>1\u002F5 de mois par année ≤ 10 ans\u003C\u002Fstrong> et \u003Cstrong>2\u002F15 de mois par année au-delà\u003C\u002Fstrong>, moins favorable que le Code du travail (1\u002F4 + 1\u002F3). \u003Cstrong>Le plancher légal s'applique automatiquement\u003C\u002Fstrong> — le salarié perçoit toujours le meilleur des deux montants.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\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=\"1200\" max=\"8000\" step=\"50\" value=\"2500\">\n      \u003C\u002Fdiv>\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-anc-val\">5 ans\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"ind-anc\" min=\"1\" max=\"40\" step=\"1\" value=\"5\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\u003Cspan>Motif\u003C\u002Fspan>\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\" id=\"ind-motif-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"perso\">Motif personnel\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"eco\">Motif économique\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">Indemnité brute applicable\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"ind-result-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"ind-result-sub\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"compare-row\">\n      \u003Cdiv class=\"compare-box legal\">\n        \u003Cdiv class=\"cb-label\">Formule CCN 733\u003C\u002Fdiv>\n        \u003Cdiv class=\"cb-val\" id=\"ind-ccn-val\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"compare-box ccn\">\n        \u003Cdiv class=\"cb-label\">Plancher Code du travail\u003C\u002Fdiv>\n        \u003Cdiv class=\"cb-val\" id=\"ind-legal-val\">—\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"compare-note\">Le montant applicable est automatiquement le plus favorable (plancher légal art. L1234-9).\u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════\n       TAB 2 — PRÉAVIS\n  ════════════════════════════════════════════ -->\n  \u003Cdiv data-panel=\"preavis\" class=\"tab-panel\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 fixe un préavis de \u003Cstrong>15 jours pour moins de 6 mois d'ancienneté\u003C\u002Fstrong> (favorable vs. absence d'obligation légale), \u003Cstrong>1 mois de 6 mois à 2 ans\u003C\u002Fstrong>, et \u003Cstrong>2 mois au-delà de 2 ans\u003C\u002Fstrong>. Le salarié dispose de 2 heures payées par semaine pour recherche d'emploi.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\u003Cspan>Ancienneté\u003C\u002Fspan>\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\" id=\"pre-anc-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"0\">Moins de 6 mois\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"6\">6 mois à 2 ans\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"24\">2 ans et plus\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\u003Cspan>Statut\u003C\u002Fspan>\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\" id=\"pre-statut-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"employe\">Employé\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"cadre\">Cadre \u002F Responsable\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">Durée du préavis (licenciement)\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"pre-result-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"pre-result-sub\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-breakdown\" id=\"pre-breakdown\">\u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════\n       TAB 3 — SALAIRE MINIMUM \u002F GRILLE\n  ════════════════════════════════════════════ -->\n  \u003Cdiv data-panel=\"salaire-min\" class=\"tab-panel\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 impose une \u003Cstrong>grille de salaires minimaux conventionnels\u003C\u002Fstrong> supérieure au SMIC, déclinée en 6 niveaux. Avenant salarial du 10 février 2025 — en vigueur depuis le \u003Cstrong>1er mai 2025\u003C\u002Fstrong>.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\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=\"1\">Niveau 1 — Employé débutant (\u003C 6 mois)\u003C\u002Foption>\n          \u003Coption value=\"2\">Niveau 2 — Employé qualifié\u003C\u002Foption>\n          \u003Coption value=\"3\" selected>Niveau 3 — Vendeur confirmé\u003C\u002Foption>\n          \u003Coption value=\"4\">Niveau 4 — Responsable rayon \u002F gestionnaire\u003C\u002Foption>\n          \u003Coption value=\"5\">Niveau 5 — Responsable magasin\u003C\u002Foption>\n          \u003Coption value=\"6\">Niveau 6 — Directeur multi-sites \u002F cadre\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\n          \u003Cspan>Heures hebdomadaires\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=\"15\" max=\"44\" step=\"0.5\" value=\"35\">\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Ctable class=\"grid-table\" id=\"sal-grid-table\">\n      \u003Cthead>\n        \u003Ctr>\n          \u003Cth>Niveau\u003C\u002Fth>\n          \u003Cth>Description\u003C\u002Fth>\n          \u003Cth>Salaire brut\u002Fmois (35h)\u003C\u002Fth>\n        \u003C\u002Ftr>\n      \u003C\u002Fthead>\n      \u003Ctbody>\u003C\u002Ftbody>\n    \u003C\u002Ftable>\n\n    \u003Cdiv class=\"result-card\" style=\"margin-top:1rem\">\n      \u003Cdiv class=\"result-label\">Salaire minimum conventionnel\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"sal-result-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"sal-result-sub\">Pour votre niveau et durée de travail\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════\n       TAB 4 — PRIMES (13e mois + ancienneté)\n  ════════════════════════════════════════════ -->\n  \u003Cdiv data-panel=\"prime-annuelle\" class=\"tab-panel\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 prévoit \u003Cstrong>deux avantages absents du Code du travail\u003C\u002Fstrong> : un \u003Cstrong>13e mois\u003C\u002Fstrong> (versé en juin et décembre) et une \u003Cstrong>prime d'ancienneté progressive\u003C\u002Fstrong> de 3 % à 15 % du salaire brut selon l'ancienneté.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\n          \u003Cspan>Salaire brut mensuel\u003C\u002Fspan>\n          \u003Cspan class=\"val\" id=\"prime-sal-val\">2 200 €\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"prime-sal\" min=\"1200\" max=\"6000\" step=\"50\" value=\"2200\">\n      \u003C\u002Fdiv>\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-anc-val\">5 ans\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"prime-anc\" min=\"0\" max=\"30\" step=\"1\" value=\"5\">\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">Primes annuelles totales\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"prime-result-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"prime-result-sub\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-breakdown\" id=\"prime-breakdown\">\u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\" style=\"margin-top:1rem\">\n      \u003Cp style=\"font-size:0.825rem;font-weight:600;margin-bottom:0.5rem;color:var(--muted)\">Barème ancienneté CCN 733\u003C\u002Fp>\n      \u003Cdiv class=\"seniority-scale\" id=\"prime-seniority-scale\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════\n       TAB 5 — CONGÉS PAYÉS\n  ════════════════════════════════════════════ -->\n  \u003Cdiv data-panel=\"conges\" class=\"tab-panel\">\n    \u003Cdiv class=\"rule-callout\">\n      \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n      \u003Cp>La CCN IDCC 733 accorde les \u003Cstrong>30 jours ouvrables légaux\u003C\u002Fstrong> auxquels s'ajoutent des \u003Cstrong>jours supplémentaires selon l'ancienneté\u003C\u002Fstrong> : +1 jour à 10 ans, +2 à 20 ans, +3 à 25 ans, +4 à 30 ans et plus.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\n          \u003Cspan>Ancienneté (années complètes)\u003C\u002Fspan>\n          \u003Cspan class=\"val\" id=\"cg-anc-val\">8 ans\u003C\u002Fspan>\n        \u003C\u002Fdiv>\n        \u003Cinput type=\"range\" id=\"cg-anc\" min=\"0\" max=\"35\" step=\"1\" value=\"8\">\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Cdiv class=\"form-label\">\u003Cspan>Temps partiel ?\u003C\u002Fspan>\u003C\u002Fdiv>\n        \u003Cdiv class=\"pills\" id=\"cg-partiel-pills\">\n          \u003Cdiv class=\"pill active\" data-val=\"non\">Non (temps plein)\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"oui\">Oui (temps partiel)\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-card\">\n      \u003Cdiv class=\"result-label\">Congés payés annuels\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-value\" id=\"cg-result-val\">—\u003C\u002Fdiv>\n      \u003Cdiv class=\"result-sub\" id=\"cg-result-sub\">\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv class=\"result-breakdown\" id=\"cg-breakdown\">\u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003C!-- Disclaimer (shared, outside panels) -->\n  \u003Cp class=\"disclaimer\">\n    Calcul indicatif basé sur la CCN IDCC 733 (convention collective nationale des détaillants en chaussures).\n    Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635629\" target=\"_blank\" rel=\"noopener\">Légifrance — KALICONT000005635629\u003C\u002Fa>.\n    Grille salariale issue de l'avenant du 10 février 2025 (en vigueur le 1er mai 2025).\n    Pour une validation légale\n  \u003C\u002Fp>\n\u003C\u002Fmain>\n\n\u003Cscript>\n\u002F\u002F ── Formatting ───────────────────────────────────────────────\nconst fmtEUR = new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 });\nconst fmtEURDec = new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n\u002F\u002F ── Salary grid data ─────────────────────────────────────────\nconst SAL_GRID = [\n  { niveau: 1, label: 'Employé débutant', min35: 1970 },\n  { niveau: 2, label: 'Employé qualifié', min35: 2060 },\n  { niveau: 3, label: 'Vendeur confirmé', min35: 2230 },\n  { niveau: 4, label: 'Resp. rayon \u002F gestionnaire', min35: 2640 },\n  { niveau: 5, label: 'Responsable magasin', min35: 2710 },\n  { niveau: 6, label: 'Directeur multi-sites \u002F cadre', min35: 4700 },\n];\n\n\u002F\u002F ── Seniority tiers for prime ancienneté ────────────────────\nconst PRIM_TIERS = [\n  { minYears: 3, pct: 3 },\n  { minYears: 6, pct: 6 },\n  { minYears: 9, pct: 9 },\n  { minYears: 12, pct: 12 },\n  { minYears: 15, pct: 15 },\n];\n\nfunction getPrimeAncPct(years) {\n  let pct = 0;\n  for (const t of PRIM_TIERS) { if (years >= t.minYears) pct = t.pct; }\n  return pct;\n}\n\n\u002F\u002F ── STATE ─────────────────────────────────────────────────────\nconst state = {\n  ind: { salaire: 2500, anc: 5, motif: 'perso' },\n  pre: { anc: 0, statut: 'employe' },\n  sal: { niveau: 3, heures: 35 },\n  prime: { sal: 2200, anc: 5 },\n  cg: { anc: 8, partiel: 'non' },\n};\n\n\u002F\u002F ── COMPUTE INDEMNITE ─────────────────────────────────────────\nfunction computeInd(s) {\n  const { salaire, anc } = s;\n  \u002F\u002F CCN 733 formula (less favorable)\n  const anc1 = Math.min(anc, 10);\n  const anc2 = Math.max(anc - 10, 0);\n  const ccn = salaire * (anc1 * (1\u002F5) + anc2 * (2\u002F15));\n  \u002F\u002F Code du travail L1234-9 (more favorable)\n  const legal = salaire * (anc1 * (1\u002F4) + anc2 * (1\u002F3));\n  const applicable = Math.max(ccn, legal);\n  return { ccn, legal, applicable };\n}\n\nfunction renderInd() {\n  const s = state.ind;\n  const { ccn, legal, applicable } = computeInd(s);\n  document.getElementById('ind-salaire-val').textContent = fmtEUR.format(s.salaire);\n  document.getElementById('ind-anc-val').textContent = s.anc + ' an' + (s.anc > 1 ? 's' : '');\n  document.getElementById('ind-result-val').textContent = fmtEURDec.format(applicable);\n  document.getElementById('ind-result-sub').textContent = 'Plancher légal appliqué (art. L1234-9 — plus favorable)';\n  document.getElementById('ind-ccn-val').textContent = fmtEURDec.format(ccn);\n  document.getElementById('ind-legal-val').textContent = fmtEURDec.format(legal);\n}\n\n\u002F\u002F ── COMPUTE PRÉAVIS ──────────────────────────────────────────\nfunction computePre(s) {\n  const { anc, statut } = s;\n  let duree, unite, note;\n  if (anc === 0) { duree = 15; unite = 'jours'; note = 'Moins de 6 mois d\\'ancienneté'; }\n  else if (anc === 6) { duree = 1; unite = 'mois'; note = '6 mois à 2 ans d\\'ancienneté'; }\n  else { duree = 2; unite = 'mois'; note = '2 ans et plus d\\'ancienneté'; }\n  \u002F\u002F Cadres: même durée dans cette CCN (non différenciée officiellement)\n  const heuresRecherche = '2 heures rémunérées\u002Fsemaine pour recherche d\\'emploi';\n  return { duree, unite, note, heuresRecherche };\n}\n\nfunction renderPre() {\n  const s = state.pre;\n  const { duree, unite, note, heuresRecherche } = computePre(s);\n  document.getElementById('pre-result-val').textContent = duree + ' ' + unite;\n  document.getElementById('pre-result-sub').textContent = note;\n  document.getElementById('pre-breakdown').innerHTML =\n    '\u003Cdiv>\u003Cstrong>Avantage CCN :\u003C\u002Fstrong> ' + heuresRecherche + '\u003C\u002Fdiv>' +\n    '\u003Cdiv style=\"margin-top:0.35rem\">Si le salarié retrouve un emploi, il peut quitter le préavis avec 24h de préavis (sans indemnité compensatrice).\u003C\u002Fdiv>';\n}\n\n\u002F\u002F ── COMPUTE SALAIRE MIN ──────────────────────────────────────\nfunction computeSal(s) {\n  const grid = SAL_GRID.find(g => g.niveau === s.niveau);\n  const base35 = grid ? grid.min35 : 1970;\n  const adjusted = s.heures !== 35 ? Math.round(base35 * s.heures \u002F 35) : base35;\n  const smic35 = 1801.80;\n  const smicAdj = Math.round(smic35 * s.heures \u002F 35);\n  return { adjusted, base35, smic35, smicAdj, grid };\n}\n\nfunction renderSal() {\n  const s = state.sal;\n  const { adjusted, smicAdj, grid } = computeSal(s);\n  document.getElementById('sal-heures-val').textContent = s.heures + ' h';\n  document.getElementById('sal-result-val').textContent = fmtEUR.format(adjusted) + ' \u002F mois';\n  document.getElementById('sal-result-sub').textContent =\n    'SMIC ' + s.heures + 'h : ' + fmtEUR.format(smicAdj) + ' — surplus CCN : +' + fmtEUR.format(adjusted - smicAdj);\n\n  \u002F\u002F Build grid table\n  const tbody = document.querySelector('#sal-grid-table tbody');\n  tbody.innerHTML = SAL_GRID.map(g => {\n    const sel = g.niveau === s.niveau;\n    const adj = s.heures !== 35 ? Math.round(g.min35 * s.heures \u002F 35) : g.min35;\n    return `\u003Ctr class=\"${sel ? 'selected' : ''}\">\n      \u003Ctd>${g.niveau}\u003C\u002Ftd>\n      \u003Ctd>${g.label}\u003C\u002Ftd>\n      \u003Ctd>${fmtEUR.format(adj)}\u003C\u002Ftd>\n    \u003C\u002Ftr>`;\n  }).join('');\n}\n\n\u002F\u002F ── COMPUTE PRIMES ───────────────────────────────────────────\nfunction computePrime(s) {\n  const pct = getPrimeAncPct(s.anc);\n  const primeAnc = Math.round(s.sal * pct \u002F 100);\n  const treizieme = s.sal; \u002F\u002F 1 mois = treizième mois\n  const total = primeAnc + treizieme;\n  return { pct, primeAnc, treizieme, total };\n}\n\nfunction renderPrime() {\n  const s = state.prime;\n  const { pct, primeAnc, treizieme, total } = computePrime(s);\n  document.getElementById('prime-sal-val').textContent = fmtEUR.format(s.sal);\n  document.getElementById('prime-anc-val').textContent = s.anc + ' an' + (s.anc > 1 ? 's' : '');\n  document.getElementById('prime-result-val').textContent = fmtEUR.format(total) + ' \u002F an';\n  document.getElementById('prime-result-sub').textContent = '13e mois + prime d\\'ancienneté (' + pct + '%)';\n  document.getElementById('prime-breakdown').innerHTML =\n    '\u003Cdiv>\u003Cstrong>13e mois :\u003C\u002Fstrong> ' + fmtEUR.format(treizieme) + ' (versé ½ en juin + ½ en décembre)\u003C\u002Fdiv>' +\n    '\u003Cdiv style=\"margin-top:0.25rem\">\u003Cstrong>Prime ancienneté (' + pct + '%) :\u003C\u002Fstrong> ' + fmtEUR.format(primeAnc) + ' \u002F an\u003C\u002Fdiv>' +\n    (pct === 0 ? '\u003Cdiv style=\"margin-top:0.25rem;color:var(--muted)\">La prime d\\'ancienneté débute à 3 ans d\\'ancienneté.\u003C\u002Fdiv>' : '');\n\n  \u002F\u002F Seniority scale\n  const scale = document.getElementById('prime-seniority-scale');\n  scale.innerHTML = PRIM_TIERS.map(t =>\n    `\u003Cdiv class=\"seniority-row ${s.anc >= t.minYears ? 'reached' : ''}\">\n      \u003Cdiv class=\"dot\">\u003C\u002Fdiv>\n      \u003Cspan style=\"min-width:4rem\">${t.minYears} ans\u003C\u002Fspan>\n      \u003Cspan class=\"pct\">+${t.pct} %\u003C\u002Fspan>\n      \u003Cspan style=\"color:var(--muted);font-size:0.78rem\">${fmtEUR.format(Math.round(s.sal * t.pct \u002F 100))} \u002F an\u003C\u002Fspan>\n    \u003C\u002Fdiv>`\n  ).join('');\n}\n\n\u002F\u002F ── COMPUTE CONGÉS ───────────────────────────────────────────\nfunction computeCg(s) {\n  const base = 30;\n  let extra = 0;\n  if (s.anc >= 10) extra = 1;\n  if (s.anc >= 20) extra = 2;\n  if (s.anc >= 25) extra = 3;\n  if (s.anc >= 30) extra = 4;\n  const total = base + extra;\n  return { base, extra, total };\n}\n\nfunction renderCg() {\n  const s = state.cg;\n  const { base, extra, total } = computeCg(s);\n  document.getElementById('cg-anc-val').textContent = s.anc + ' an' + (s.anc > 1 ? 's' : '');\n  document.getElementById('cg-result-val').textContent = total + ' jours ouvrables \u002F an';\n  document.getElementById('cg-result-sub').textContent =\n    s.partiel === 'oui'\n      ? 'Au prorata de votre durée de travail — droit identique au temps plein.'\n      : '30 jours légaux + ' + extra + ' jour' + (extra > 1 ? 's' : '') + ' CCN';\n  document.getElementById('cg-breakdown').innerHTML =\n    '\u003Cdiv>\u003Cstrong>Base légale :\u003C\u002Fstrong> ' + base + ' jours ouvrables (L3141-3)\u003C\u002Fdiv>' +\n    '\u003Cdiv style=\"margin-top:0.25rem\">\u003Cstrong>Supplément CCN 733 :\u003C\u002Fstrong> +' + extra + ' jour' + (extra > 1 ? 's' : '') + ' (ancienneté ' + s.anc + ' ans)\u003C\u002Fdiv>' +\n    (extra === 0 ? '\u003Cdiv style=\"margin-top:0.25rem;color:var(--muted)\">Les jours supplémentaires commencent à 10 ans d\\'ancienneté.\u003C\u002Fdiv>' : '');\n}\n\n\u002F\u002F ── TABS ──────────────────────────────────────────────────────\nconst tabBtns = document.querySelectorAll('[data-tab]');\nconst tabPanels = document.querySelectorAll('[data-panel]');\n\nfunction activate(id) {\n  tabBtns.forEach(t => {\n    const active = t.dataset.tab === id;\n    t.classList.toggle('active', active);\n    t.setAttribute('aria-selected', active ? 'true' : 'false');\n  });\n  tabPanels.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 ── INPUT LISTENERS ──────────────────────────────────────────\n\u002F\u002F Indemnité\ndocument.getElementById('ind-salaire').addEventListener('input', e => { state.ind.salaire = +e.target.value; renderInd(); });\ndocument.getElementById('ind-anc').addEventListener('input', e => { state.ind.anc = +e.target.value; renderInd(); });\ndocument.querySelectorAll('#ind-motif-pills .pill').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('#ind-motif-pills .pill').forEach(x => x.classList.remove('active'));\n  p.classList.add('active'); state.ind.motif = p.dataset.val; renderInd();\n}));\n\u002F\u002F Préavis\ndocument.querySelectorAll('#pre-anc-pills .pill').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('#pre-anc-pills .pill').forEach(x => x.classList.remove('active'));\n  p.classList.add('active'); state.pre.anc = +p.dataset.val; renderPre();\n}));\ndocument.querySelectorAll('#pre-statut-pills .pill').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('#pre-statut-pills .pill').forEach(x => x.classList.remove('active'));\n  p.classList.add('active'); state.pre.statut = p.dataset.val; renderPre();\n}));\n\u002F\u002F Salaire\ndocument.getElementById('sal-niveau').addEventListener('change', e => { state.sal.niveau = +e.target.value; renderSal(); });\ndocument.getElementById('sal-heures').addEventListener('input', e => { state.sal.heures = +e.target.value; renderSal(); });\n\u002F\u002F Primes\ndocument.getElementById('prime-sal').addEventListener('input', e => { state.prime.sal = +e.target.value; renderPrime(); });\ndocument.getElementById('prime-anc').addEventListener('input', e => { state.prime.anc = +e.target.value; renderPrime(); });\n\u002F\u002F Congés\ndocument.getElementById('cg-anc').addEventListener('input', e => { state.cg.anc = +e.target.value; renderCg(); });\ndocument.querySelectorAll('#cg-partiel-pills .pill').forEach(p => p.addEventListener('click', () => {\n  document.querySelectorAll('#cg-partiel-pills .pill').forEach(x => x.classList.remove('active'));\n  p.classList.add('active'); state.cg.partiel = p.dataset.val; renderCg();\n}));\n\n\u002F\u002F ── INIT ──────────────────────────────────────────────────────\ndocument.addEventListener('DOMContentLoaded', () => {\n  lucide.createIcons();\n  \u002F\u002F Determine initial tab from hash\n  const hash = location.hash.slice(1);\n  const tabIds = ['indemnite', 'preavis', 'salaire-min', 'prime-annuelle', 'conges'];\n  const initTab = tabIds.includes(hash) ? hash : tabIds[0];\n  activate(initTab);\n  renderInd(); renderPre(); renderSal(); renderPrime(); renderCg();\n});\n\n\u002F\u002F ── RESIZE OBSERVER ──────────────────────────────────────────\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\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-des-detaillants-en-chaussures-0c5c054cf1.webp",[]]