[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-ccn-exploitation-cinematographique-fr":83,"footer-cities-fr":156},[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":126,"tool_html":150,"source":151,"category":152,"audience":153,"publish_mode":154,"hero_image":155,"hero_image_alt":85},"ccn-exploitation-cinematographique","CCN de l'exploitation cinématographique — calculateur complet","Calculateur CCN Exploitation Cinématographique IDCC 1307 | Expert Zoom","Outil interactif couvrant l'indemnité de licenciement, le préavis, la grille salariale et les primes de la CCN de l'exploitation cinématographique (IDCC 1307, brochure 3097).","Ce calculateur couvre les 4 fonctions clés de la convention collective de l'exploitation cinématographique (IDCC 1307) : indemnité de licenciement (art. 26, ancienneté minimale 24 mois, formule 1\u002F5 puis 2\u002F15, plafond 9 mois), durée de préavis (1 à 3 mois selon statut), grille salariale conventionnelle (Avenant n°70, coeff. 150 à 420, de 1 820 € à 3 582 € brut\u002Fmois) et primes obligatoires (13e mois + prime d'ancienneté jusqu'à 15 %).",[90,109],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur CCN Exploitation Cinématographique — IDCC 1307","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective de l'exploitation cinématographique","Thing","IDCC 1307",{"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 salariale et les primes de la convention collective de l'exploitation cinématographique (IDCC 1307, brochure 3097).","All","FinanceApplication",true,{"@type":110,"@context":100,"mainEntity":111},"FAQPage",[112,118,122],{"name":113,"@type":114,"acceptedAnswer":115},"Quelle est l'indemnité de licenciement dans la CCN exploitation cinématographique ?","Question",{"text":116,"@type":117},"Dans la convention collective de l'exploitation cinématographique (IDCC 1307), l'indemnité de licenciement est due après 24 mois d'ancienneté. Elle est calculée sur la base de 1\u002F5 de mois par année jusqu'à 10 ans, puis 2\u002F15 de mois au-delà, dans la limite de 9 mois de salaire.","Answer",{"name":119,"@type":114,"acceptedAnswer":120},"La convention collective cinéma prévoit-elle un 13e mois ?",{"text":121,"@type":117},"Oui, la CCN exploitation cinématographique (IDCC 1307) impose un 13e mois obligatoire, versé en deux fois : moitié en juin, moitié en décembre. Ce droit est acquis dès 12 mois de présence continue.",{"name":123,"@type":114,"acceptedAnswer":124},"Quels sont les salaires minima dans la CCN cinéma en 2025 ?",{"text":125,"@type":117},"Selon l'Avenant n°70 (applicable depuis le 1er février 2025), les salaires minima vont de 1 820,42 € (coefficient 150) à 3 581,52 € brut\u002Fmois (coefficient 420).",[127,129,132,135,138,141,144,147],{"a":128,"q":113},"Dans la convention collective de l'exploitation cinématographique (IDCC 1307), l'indemnité de licenciement est due après 24 mois d'ancienneté (contre 8 mois dans le code du travail). Elle est calculée sur la base de 1\u002F5 de mois de salaire par année jusqu'à 10 ans, puis 2\u002F15 de mois au-delà, dans la limite de 9 mois de salaire. La base de calcul retient le salaire le plus favorable entre les 3 ou 12 derniers mois.",{"a":130,"q":131},"La CCN exploitation cinématographique prévoit : pour les employés et techniciens, 1 mois si l'ancienneté est inférieure à 2 ans, et 2 mois si elle est égale ou supérieure à 2 ans. Pour les cadres, la durée est fixée à 3 mois quelle que soit l'ancienneté. En cas de départ en retraite, le préavis est de 3 mois pour toutes catégories.","Quelle est la durée du préavis dans la convention collective cinéma (IDCC 1307) ?",{"a":133,"q":134},"Oui. La CCN de l'exploitation cinématographique (IDCC 1307) impose un 13e mois obligatoire équivalent à une mensualité de salaire brut, versé en deux fois : la moitié en juin et la moitié en décembre. Ce droit est acquis après 12 mois de présence continue et effective dans l'entreprise. Pour une présence partielle, la prime est calculée au prorata du temps de présence.","La convention collective exploitation cinématographique prévoit-elle un 13e mois ?",{"a":136,"q":137},"Oui, la convention collective exploitation cinématographique prévoit une prime d'ancienneté obligatoire : 3 % à partir de 3 ans d'ancienneté, 6 % à partir de 6 ans, avec des paliers progressifs jusqu'à un plafond de 15 % (atteint à partir de 15 ans d'ancienneté). Cette prime s'applique sur le salaire de base mensuel.","Existe-t-il une prime d'ancienneté dans la CCN cinéma ?",{"a":139,"q":140},"Selon l'Avenant n°70 du 12 novembre 2024 (applicable depuis le 1er février 2025), la grille des salaires minima va de 1 820,42 € brut\u002Fmois (coefficient 150, pour les caissiers, ouvreuses, agents d'entretien) à 3 581,52 € brut\u002Fmois (coefficient 420, directeurs généraux et cadres supérieurs). La base de calcul est de 151,67 heures mensuelles (35 heures\u002Fsemaine).","Quels sont les salaires minima dans l'exploitation cinématographique en 2025 ?",{"a":142,"q":143},"La prime d'ancienneté est un pourcentage du salaire de base mensuel : 3 % de 3 à 5 ans, 6 % de 6 à 8 ans, 9 % de 9 à 11 ans, 12 % de 12 à 14 ans, et 15 % à partir de 15 ans d'ancienneté. Elle est versée chaque mois en complément du salaire conventionnel et s'ajoute au 13e mois.","Comment est calculée la prime d'ancienneté dans la CCN exploitation cinématographique ?",{"a":145,"q":146},"Non, la CCN de l'exploitation cinématographique ne déroge pas aux taux légaux pour les heures supplémentaires. Les majorations restent de 25 % pour les 8 premières heures au-delà de la durée légale hebdomadaire (35 h), puis de 50 % au-delà. Le contingent annuel conventionnel est de 130 heures.","Les heures supplémentaires sont-elles différentes dans la CCN cinéma ?",{"a":148,"q":149},"L'IDCC 1307 est l'identifiant de la convention collective nationale de l'exploitation cinématographique (brochure JO n°3097). Elle s'applique aux salariés des salles de cinéma : caissiers, ouvreuses, projectionnistes, directeurs d'établissement, personnel d'accueil et techniciens. Elle est disponible sur Légifrance.","Qu'est-ce que l'IDCC 1307 ?","\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 Exploitation Cinématographique — IDCC 1307\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      --surface: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-dark: #1d4ed8;\n      --text: #1c1917;\n      --text-muted: #78716c;\n      --success-bg: #f0fdf4;\n      --success-border: #86efac;\n      --success-text: #15803d;\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.375rem;\n      --shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);\n      --shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);\n    }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      font-size: 0.9375rem;\n      line-height: 1.6;\n      padding: 1rem;\n    }\n    .tool-root { max-width: 720px; margin: 0 auto; }\n\n    \u002F* Header *\u002F\n    .tool-header {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .tool-header-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }\n    .tool-header h1 { font-size: 1.125rem; font-weight: 700; color: var(--text); }\n    .tool-header p { font-size: 0.875rem; color: var(--text-muted); margin-top: 0.25rem; }\n    .badge-idcc {\n      background: var(--accent-light);\n      color: var(--accent);\n      border: 1px solid var(--info-border);\n      border-radius: 9999px;\n      padding: 0.2rem 0.75rem;\n      font-size: 0.75rem;\n      font-weight: 600;\n      white-space: nowrap;\n      flex-shrink: 0;\n    }\n\n    \u002F* Tabs *\u002F\n    .tabs-bar {\n      display: flex;\n      gap: 0.25rem;\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 0.375rem;\n      margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n      overflow-x: auto;\n      scrollbar-width: none;\n    }\n    .tabs-bar::-webkit-scrollbar { display: none; }\n    .tab-btn {\n      display: flex;\n      align-items: center;\n      gap: 0.375rem;\n      padding: 0.5rem 0.875rem;\n      border: none;\n      background: transparent;\n      border-radius: var(--radius-sm);\n      font-size: 0.8125rem;\n      font-weight: 500;\n      color: var(--text-muted);\n      cursor: pointer;\n      transition: background 0.15s, color 0.15s;\n      white-space: nowrap;\n    }\n    .tab-btn:hover { background: var(--bg); color: var(--text); }\n    .tab-btn.active {\n      background: var(--accent);\n      color: #fff;\n    }\n    .tab-btn svg { width: 14px; height: 14px; flex-shrink: 0; }\n\n    \u002F* Panels *\u002F\n    .panel { display: none; }\n    .panel.active { display: block; }\n\n    \u002F* Cards *\u002F\n    .card {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .card-title {\n      font-size: 0.9375rem;\n      font-weight: 600;\n      margin-bottom: 1rem;\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n    .card-title svg { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex;\n      gap: 0.75rem;\n      align-items: flex-start;\n      background: var(--info-bg);\n      border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm);\n      padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem;\n      font-size: 0.875rem;\n      color: var(--info-text);\n    }\n    .rule-callout svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 0.15rem; }\n\n    \u002F* Inputs *\u002F\n    .field { margin-bottom: 1.125rem; }\n    .field label {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      font-size: 0.875rem;\n      font-weight: 500;\n      margin-bottom: 0.5rem;\n    }\n    .field label span.val {\n      font-variant-numeric: tabular-nums;\n      color: var(--accent);\n      font-weight: 700;\n    }\n    input[type=\"range\"] {\n      width: 100%;\n      accent-color: var(--accent);\n      cursor: pointer;\n    }\n    select {\n      width: 100%;\n      padding: 0.5rem 0.75rem;\n      border: 1px solid var(--border);\n      border-radius: var(--radius-sm);\n      background: var(--surface);\n      font-size: 0.875rem;\n      color: var(--text);\n      cursor: pointer;\n    }\n    select:focus { outline: 2px solid var(--accent); outline-offset: 1px; }\n\n    \u002F* Pills *\u002F\n    .pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n    .pill {\n      padding: 0.375rem 0.875rem;\n      border: 1.5px solid var(--border);\n      border-radius: 9999px;\n      font-size: 0.8125rem;\n      font-weight: 500;\n      cursor: pointer;\n      transition: border-color 0.15s, background 0.15s, color 0.15s;\n      background: var(--surface);\n      color: var(--text);\n    }\n    .pill.active {\n      border-color: var(--accent);\n      background: var(--accent-light);\n      color: var(--accent-dark);\n    }\n    .pill:hover:not(.active) { border-color: #a8a29e; background: var(--bg); }\n\n    \u002F* Toggle *\u002F\n    .toggle-group { display: flex; border: 1.5px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }\n    .toggle-btn {\n      flex: 1;\n      padding: 0.5rem;\n      border: none;\n      background: transparent;\n      font-size: 0.8125rem;\n      font-weight: 500;\n      cursor: pointer;\n      transition: background 0.15s, color 0.15s;\n      color: var(--text-muted);\n    }\n    .toggle-btn.active { background: var(--accent); color: #fff; }\n\n    \u002F* Result card *\u002F\n    .result-card {\n      background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-top: 1rem;\n      color: #fff;\n      box-shadow: var(--shadow-md);\n    }\n    .result-label { font-size: 0.8125rem; opacity: 0.85; margin-bottom: 0.25rem; }\n    .result-value { font-size: 1.75rem; font-weight: 800; font-variant-numeric: tabular-nums; }\n    .result-sub { font-size: 0.8125rem; opacity: 0.8; margin-top: 0.375rem; }\n    .result-breakdown {\n      margin-top: 0.875rem;\n      padding-top: 0.875rem;\n      border-top: 1px solid rgba(255,255,255,.25);\n      display: flex;\n      flex-direction: column;\n      gap: 0.25rem;\n    }\n    .result-breakdown-row {\n      display: flex;\n      justify-content: space-between;\n      font-size: 0.8125rem;\n      opacity: 0.9;\n    }\n\n    \u002F* Salary grid table *\u002F\n    .grid-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; margin-top: 0.75rem; }\n    .grid-table th {\n      background: var(--accent-light);\n      color: var(--accent-dark);\n      padding: 0.5rem 0.75rem;\n      text-align: left;\n      font-weight: 600;\n      border-bottom: 2px solid var(--accent);\n    }\n    .grid-table td { padding: 0.4rem 0.75rem; border-bottom: 1px solid var(--border); }\n    .grid-table tr:last-child td { border-bottom: none; }\n    .grid-table tr.highlight { background: var(--accent-light); font-weight: 600; }\n    .grid-table td:last-child { font-variant-numeric: tabular-nums; text-align: right; font-weight: 600; color: var(--accent-dark); }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      font-size: 0.8rem;\n      color: var(--text-muted);\n      border-top: 1px solid var(--border);\n      padding-top: 0.875rem;\n      margin-top: 1rem;\n      line-height: 1.5;\n    }\n    .disclaimer a { color: var(--accent); text-decoration: none; }\n    .disclaimer a:hover { text-decoration: underline; }\n\n    @media (max-width: 480px) {\n      body { padding: 0.75rem; }\n      .card { padding: 1rem; }\n      .tool-header { padding: 1rem; }\n      .result-value { font-size: 1.4rem; }\n    }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1307 — deviations detected\n     indemnite: seniority requirement 24 months (vs 8 months L1234-9); 9-month cap; age-based enhancements (source: art. 26 CCN IDCC 1307 \u002F brochure 3097)\n     preavis: 1 month \u003C2ans, 2 months ≥2ans (employés); 3 months (cadres) — more specific than L1234-1 (source: art. 17 CCN)\n     salaire-min: grid coeff 150→420, €1,820.42→€3,581.52 (Avenant n°70, nov 2024) — more detailed than SMIC baseline\n     prime-annuelle: 13e mois obligatoire (half June\u002FDecember) + prime ancienneté 3%@3ans\u002F6%@6ans cap 15% (source: art. 27 CCN)\n     heures-supp: 25%\u002F50% — conforme L3121-36, pas de déviation → onglet omis\n     conges: pas de déviation confirmée → onglet omis -->\n\n\u003Cdiv class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv class=\"tool-header-top\">\n      \u003Cdiv>\n        \u003Ch1>Convention collective — Exploitation cinématographique\u003C\u002Fh1>\n        \u003Cp>Calculateur interactif : indemnité de licenciement, préavis, grille salariale &amp; primes\u003C\u002Fp>\n      \u003C\u002Fdiv>\n      \u003Cspan class=\"badge-idcc\">IDCC 1307\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"tabs-bar\" role=\"tablist\">\n    \u003Cbutton class=\"tab-btn\" data-tab=\"indemnite\" role=\"tab\" aria-selected=\"false\">\n      \u003Ci data-lucide=\"calculator\">\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=\"bar-chart-2\">\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  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003C!-- TAB 1 — INDEMNITÉ DE LICENCIEMENT                      -->\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"indemnite\">\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>\u003Cstrong>Déviation CCN :\u003C\u002Fstrong> L'ancienneté minimale est de \u003Cstrong>24 mois\u003C\u002Fstrong> (contre 8 mois dans le code du travail). L'indemnité est calculée sur la base de 1\u002F5 de mois par année jusqu'à 10 ans, puis 2\u002F15 de mois au-delà, dans la limite de 9 mois de salaire. La base de calcul retient le salaire le plus favorable (3 ou 12 derniers mois). Source : art. 26 CCN brochure 3097.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"card-title\">\u003Ci data-lucide=\"calculator\">\u003C\u002Fi> Paramètres du salarié\u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire brut mensuel \u003Cspan class=\"val\" id=\"ind-sal-val\">2 500 €\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-sal\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2500\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"ind-anc-val\">5 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"ind-anc\" min=\"0\" max=\"40\" step=\"1\" value=\"5\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Motif du licenciement\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"ind-motif-group\">\n          \u003Cbutton class=\"pill active\" data-val=\"personnel\">Motif personnel\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-val=\"economique\">Motif économique\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv id=\"ind-result\" class=\"result-card\">\n        \u003Cdiv class=\"result-label\">Indemnité conventionnelle estimée\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"ind-amount\">0 €\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"ind-sub\">\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-breakdown\" id=\"ind-breakdown\">\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cp id=\"ind-insufficient\" style=\"display:none;margin-top:0.75rem;color:#dc2626;font-size:0.875rem;font-weight:500;\">\n        \u003Ci data-lucide=\"alert-circle\" style=\"display:inline;vertical-align:middle;width:14px;height:14px;margin-right:4px;\">\u003C\u002Fi>\n        Ancienneté insuffisante — la CCN requiert au moins 24 mois (2 ans).\n      \u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"disclaimer\">\n      Calcul indicatif — CCN IDCC 1307 (brochure 3097), art. 26. Source :\n      \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635203\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n      Pour validation légale\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003C!-- TAB 2 — PRÉAVIS                                        -->\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"preavis\">\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>\u003Cstrong>Déviation CCN :\u003C\u002Fstrong> La convention définit des durées de préavis spécifiques par catégorie et ancienneté : employés\u002Ftechniciens 1 mois si &lt;2 ans, 2 mois si ≥2 ans ; cadres 3 mois quelle que soit l'ancienneté. Ces durées s'appliquent en cas de licenciement comme de démission. Source : art. 17 CCN brochure 3097.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"card-title\">\u003Ci data-lucide=\"clock\">\u003C\u002Fi> Votre situation\u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Catégorie professionnelle\u003C\u002Flabel>\n        \u003Cdiv class=\"toggle-group\" id=\"pre-statut-group\">\n          \u003Cbutton class=\"toggle-btn active\" data-val=\"employe\">Employé \u002F Technicien\u003C\u002Fbutton>\n          \u003Cbutton class=\"toggle-btn\" data-val=\"cadre\">Cadre\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\" id=\"pre-anc-field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"pre-anc-val\">3 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pre-anc\" min=\"0\" max=\"40\" step=\"1\" value=\"3\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Type de rupture\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"pre-rupture-group\">\n          \u003Cbutton class=\"pill active\" data-val=\"licenciement\">Licenciement\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-val=\"demission\">Démission\u003C\u002Fbutton>\n          \u003Cbutton class=\"pill\" data-val=\"retraite\">Départ en retraite\u003C\u002Fbutton>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv id=\"pre-result\" class=\"result-card\">\n        \u003Cdiv class=\"result-label\">Durée de préavis conventionnelle\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"pre-duration\">2 mois\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"pre-sub\">\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-breakdown\" id=\"pre-breakdown\">\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Catégorie\u003C\u002Fspan>\u003Cspan id=\"pre-bd-cat\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Ancienneté\u003C\u002Fspan>\u003Cspan id=\"pre-bd-anc\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Référence\u003C\u002Fspan>\u003Cspan>Art. 17 CCN\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"disclaimer\">\n      Calcul indicatif — CCN IDCC 1307, art. 17. Source :\n      \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635203\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n      Pour validation légale\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003C!-- TAB 3 — GRILLE SALARIALE                               -->\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"salaire-min\">\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>\u003Cstrong>Déviation CCN :\u003C\u002Fstrong> La CCN publie une grille de salaires minima par coefficient (150 à 420), réactualisée par l'Avenant n°70 du 12 novembre 2024. Le salaire minimum plancher est de \u003Cstrong>1 820,42 €\u003C\u002Fstrong> brut\u002Fmois (base 151,67 h), supérieur au SMIC. Source : Avenant n°70, IDCC 1307.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"card-title\">\u003Ci data-lucide=\"bar-chart-2\">\u003C\u002Fi> Votre coefficient\u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Coefficient conventionnel\u003C\u002Flabel>\n        \u003Cselect id=\"sal-coeff\">\n          \u003Coption value=\"150\">150 — Caissier(ère), ouvreuse, employé d'entretien\u003C\u002Foption>\n          \u003Coption value=\"184\">184 — Agent de billetterie confirmé\u003C\u002Foption>\n          \u003Coption value=\"189\">189 — Projectionniste, technicien d'exploitation\u003C\u002Foption>\n          \u003Coption value=\"230\">230 — Chef de caisse, responsable d'accueil\u003C\u002Foption>\n          \u003Coption value=\"265\">265 — Technicien supérieur, chef de projection\u003C\u002Foption>\n          \u003Coption value=\"290\">290 — Adjoint au directeur, technicien hautement qualifié\u003C\u002Foption>\n          \u003Coption value=\"340\">340 — Directeur d'établissement (moins de 3 salles)\u003C\u002Foption>\n          \u003Coption value=\"395\">395 — Directeur d'établissement (3 salles et plus)\u003C\u002Foption>\n          \u003Coption value=\"420\">420 — Directeur général, cadre supérieur\u003C\u002Foption>\n        \u003C\u002Fselect>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Heures hebdomadaires \u003Cspan class=\"val\" id=\"sal-h-val\">35 h\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"sal-h\" min=\"24\" max=\"44\" step=\"0.5\" value=\"35\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv id=\"sal-result\" class=\"result-card\">\n        \u003Cdiv class=\"result-label\">Salaire minimum conventionnel brut mensuel\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"sal-amount\">1 820 €\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"sal-sub\">\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-breakdown\" id=\"sal-breakdown\">\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Coefficient\u003C\u002Fspan>\u003Cspan id=\"sal-bd-coeff\">150\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Taux horaire brut\u003C\u002Fspan>\u003Cspan id=\"sal-bd-hourly\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Base de référence\u003C\u002Fspan>\u003Cspan>Avenant n°70 — fév. 2025\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv style=\"margin-top:1rem;\">\n        \u003Cdiv class=\"card-title\" style=\"font-size:0.875rem;\">\u003Ci data-lucide=\"table\">\u003C\u002Fi> Grille complète (Avenant n°70 — fév. 2025)\u003C\u002Fdiv>\n        \u003Ctable class=\"grid-table\">\n          \u003Cthead>\n            \u003Ctr>\u003Cth>Coeff.\u003C\u002Fth>\u003Cth>Emplois types\u003C\u002Fth>\u003Cth>Salaire brut\u002Fmois\u003C\u002Fth>\u003C\u002Ftr>\n          \u003C\u002Fthead>\n          \u003Ctbody id=\"sal-grid-body\">\n            \u003Ctr>\u003Ctd>150\u003C\u002Ftd>\u003Ctd>Caissier, ouvreuse, entretien\u003C\u002Ftd>\u003Ctd>1 820,42 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>184\u003C\u002Ftd>\u003Ctd>Agent billetterie confirmé\u003C\u002Ftd>\u003Ctd>1 822,26 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>189\u003C\u002Ftd>\u003Ctd>Projectionniste, technicien\u003C\u002Ftd>\u003Ctd>1 833,91 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>230\u003C\u002Ftd>\u003Ctd>Chef de caisse, resp. accueil\u003C\u002Ftd>\u003Ctd>1 944,50 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>265\u003C\u002Ftd>\u003Ctd>Tech. sup., chef de projection\u003C\u002Ftd>\u003Ctd>2 051,90 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>290\u003C\u002Ftd>\u003Ctd>Adjoint directeur, TH qualifié\u003C\u002Ftd>\u003Ctd>2 148,43 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>340\u003C\u002Ftd>\u003Ctd>Directeur (&lt;3 salles)\u003C\u002Ftd>\u003Ctd>2 490,00 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>395\u003C\u002Ftd>\u003Ctd>Directeur (≥3 salles)\u003C\u002Ftd>\u003Ctd>2 969,91 €\u003C\u002Ftd>\u003C\u002Ftr>\n            \u003Ctr>\u003Ctd>420\u003C\u002Ftd>\u003Ctd>Directeur général, cadre sup.\u003C\u002Ftd>\u003Ctd>3 581,52 €\u003C\u002Ftd>\u003C\u002Ftr>\n          \u003C\u002Ftbody>\n        \u003C\u002Ftable>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"disclaimer\">\n      Grille issue de l'Avenant n°70 du 12 novembre 2024 (applicable depuis le 1er février 2025) — CCN IDCC 1307. Source :\n      \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635203\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n      Pour validation légale\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003C!-- TAB 4 — PRIME ANNUELLE & ANCIENNETÉ                    -->\n  \u003C!-- ═══════════════════════════════════════════════════════ -->\n  \u003Cdiv class=\"panel\" data-panel=\"prime-annuelle\">\n    \u003Cdiv class=\"card\">\n      \u003Cdiv class=\"rule-callout\">\n        \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n        \u003Cp>\u003Cstrong>Déviation CCN :\u003C\u002Fstrong> La convention impose un \u003Cstrong>13e mois obligatoire\u003C\u002Fstrong> (une mensualité, versée en deux fois : moitié en juin, moitié en décembre) dès 12 mois de présence, ainsi qu'une \u003Cstrong>prime d'ancienneté\u003C\u002Fstrong> de 3 % à 3 ans, 6 % à 6 ans (plafonnée à 15 %). Le code du travail ne prévoit aucune de ces primes. Source : art. 27 CCN brochure 3097.\u003C\u002Fp>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"card-title\">\u003Ci data-lucide=\"gift\">\u003C\u002Fi> Vos paramètres\u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Salaire brut mensuel de base \u003Cspan class=\"val\" id=\"pri-sal-val\">2 000 €\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pri-sal\" min=\"1400\" max=\"8000\" step=\"50\" value=\"2000\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Ancienneté \u003Cspan class=\"val\" id=\"pri-anc-val\">4 ans\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pri-anc\" min=\"0\" max=\"40\" step=\"1\" value=\"4\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"field\">\n        \u003Clabel>Présence dans l'année (mois) \u003Cspan class=\"val\" id=\"pri-mois-val\">12 mois\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"pri-mois\" min=\"1\" max=\"12\" step=\"1\" value=\"12\">\n      \u003C\u002Fdiv>\n\n      \u003Cdiv id=\"pri-result\" class=\"result-card\">\n        \u003Cdiv class=\"result-label\">Total des primes annuelles estimées\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-value\" id=\"pri-amount\">0 €\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-sub\" id=\"pri-sub\">\u003C\u002Fdiv>\n        \u003Cdiv class=\"result-breakdown\" id=\"pri-breakdown\">\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>13e mois (pro rata)\u003C\u002Fspan>\u003Cspan id=\"pri-bd-13\" style=\"font-variant-numeric:tabular-nums\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Prime d'ancienneté annuelle\u003C\u002Fspan>\u003Cspan id=\"pri-bd-anc\" style=\"font-variant-numeric:tabular-nums\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n          \u003Cdiv class=\"result-breakdown-row\">\n            \u003Cspan>Taux ancienneté appliqué\u003C\u002Fspan>\u003Cspan id=\"pri-bd-taux\">—\u003C\u002Fspan>\n          \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"disclaimer\">\n      Calcul indicatif — CCN IDCC 1307, art. 27. Source :\n      \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALICONT000005635203\" target=\"_blank\" rel=\"noopener\">Légifrance\u003C\u002Fa>.\n      Pour validation légale\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Cscript>\n\u002F\u002F ─── Formatters ───────────────────────────────────────────────────────────────\nconst fmtEUR = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\nconst fmtEUR2 = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(v);\n\n\u002F\u002F ─── State ────────────────────────────────────────────────────────────────────\nconst state = {\n  ind: { sal: 2500, anc: 5, motif: 'personnel' },\n  pre: { statut: 'employe', anc: 3, rupture: 'licenciement' },\n  sal: { coeff: 150, heures: 35 },\n  pri: { sal: 2000, anc: 4, mois: 12 }\n};\n\n\u002F\u002F ─── Salary grid data ─────────────────────────────────────────────────────────\nconst salGrid = {\n  150: 1820.42,\n  184: 1822.26,\n  189: 1833.91,\n  230: 1944.50,\n  265: 2051.90,\n  290: 2148.43,\n  340: 2490.00,\n  395: 2969.91,\n  420: 3581.52\n};\n\n\u002F\u002F ─── Compute Indemnité ────────────────────────────────────────────────────────\nfunction computeInd() {\n  const { sal, anc } = state.ind;\n  const eligible = anc >= 2;\n  if (!eligible) return { eligible: false, amount: 0 };\n  \u002F\u002F CCN: 1\u002F5 mois par année jusqu'à 10 ans, puis 2\u002F15 mois au-delà — cap 9 mois\n  const annees1 = Math.min(anc, 10);\n  const annees2 = Math.max(0, anc - 10);\n  const part1 = (1 \u002F 5) * annees1 * sal;\n  const part2 = (2 \u002F 15) * annees2 * sal;\n  const raw = part1 + part2;\n  const capped = Math.min(raw, 9 * sal);\n  return {\n    eligible: true,\n    amount: capped,\n    raw,\n    capped: raw > 9 * sal,\n    part1,\n    part2,\n    cap: 9 * sal\n  };\n}\n\n\u002F\u002F ─── Compute Préavis ──────────────────────────────────────────────────────────\nfunction computePre() {\n  const { statut, anc, rupture } = state.pre;\n  let dur = '', note = '';\n  if (statut === 'cadre') {\n    dur = '3 mois';\n    note = 'Cadre — durée fixe quelle que soit l\\'ancienneté';\n  } else {\n    if (rupture === 'retraite') {\n      dur = '3 mois';\n      note = 'Départ en retraite — 3 mois toutes catégories';\n    } else {\n      if (anc \u003C 2) {\n        dur = '1 mois';\n        note = 'Employé \u002F Technicien — ancienneté \u003C 2 ans';\n      } else {\n        dur = '2 mois';\n        note = 'Employé \u002F Technicien — ancienneté ≥ 2 ans';\n      }\n    }\n  }\n  return { dur, note };\n}\n\n\u002F\u002F ─── Compute Salaire min ──────────────────────────────────────────────────────\nfunction computeSal() {\n  const ref151 = salGrid[state.sal.coeff];\n  const heures = state.sal.heures;\n  const monthly = ref151 * (heures \u002F 35) * (heures > 35 ? 1.125 : 1); \u002F\u002F approximate for part-time\n  \u002F\u002F For simplicity: linear proportion for part-time; full-time = reference\n  const result = heures \u003C= 35\n    ? ref151 * (heures \u002F 35)\n    : ref151; \u002F\u002F overtime not factored into minimum\n  const hourly = ref151 \u002F 151.67;\n  return { monthly: result, ref151, hourly };\n}\n\n\u002F\u002F ─── Compute Primes ───────────────────────────────────────────────────────────\nfunction computePri() {\n  const { sal, anc, mois } = state.pri;\n  \u002F\u002F 13e mois pro rata (mois\u002F12 * salaire mensuel)\n  const p13 = (mois \u002F 12) * sal;\n  \u002F\u002F Prime ancienneté: 0% \u003C3ans, 3% @3ans, 6% @6ans, 9% @9ans, 12% @12ans, max 15% @15ans+\n  let tauxAnc = 0;\n  if (anc >= 15) tauxAnc = 0.15;\n  else if (anc >= 12) tauxAnc = 0.12;\n  else if (anc >= 9) tauxAnc = 0.09;\n  else if (anc >= 6) tauxAnc = 0.06;\n  else if (anc >= 3) tauxAnc = 0.03;\n  const pAnc = sal * tauxAnc * 12 * (mois \u002F 12); \u002F\u002F annual seniority bonus pro rata\n  const total = p13 + pAnc;\n  return { total, p13, pAnc, tauxAnc };\n}\n\n\u002F\u002F ─── Render functions ─────────────────────────────────────────────────────────\nfunction renderInd() {\n  const r = computeInd();\n  const insufficient = document.getElementById('ind-insufficient');\n  const resultCard = document.getElementById('ind-result');\n  if (!r.eligible) {\n    resultCard.style.display = 'none';\n    insufficient.style.display = 'block';\n    lucide.createIcons({ attrs: { class: '' } });\n    return;\n  }\n  resultCard.style.display = '';\n  insufficient.style.display = 'none';\n  document.getElementById('ind-amount').textContent = fmtEUR(r.amount);\n  let sub = `${state.ind.anc} an${state.ind.anc > 1 ? 's' : ''} d'ancienneté`;\n  if (r.capped) sub += ' — plafond de 9 mois appliqué';\n  document.getElementById('ind-sub').textContent = sub;\n  const bd = document.getElementById('ind-breakdown');\n  bd.innerHTML = `\n    \u003Cdiv class=\"result-breakdown-row\">\u003Cspan>Tranche ≤ 10 ans\u003C\u002Fspan>\u003Cspan style=\"font-variant-numeric:tabular-nums\">${fmtEUR2(r.part1)}\u003C\u002Fspan>\u003C\u002Fdiv>\n    ${r.part2 > 0 ? `\u003Cdiv class=\"result-breakdown-row\">\u003Cspan>Tranche > 10 ans\u003C\u002Fspan>\u003Cspan style=\"font-variant-numeric:tabular-nums\">${fmtEUR2(r.part2)}\u003C\u002Fspan>\u003C\u002Fdiv>` : ''}\n    ${r.capped ? `\u003Cdiv class=\"result-breakdown-row\">\u003Cspan>Plafond CCN (9 mois)\u003C\u002Fspan>\u003Cspan style=\"font-variant-numeric:tabular-nums\">${fmtEUR(r.cap)}\u003C\u002Fspan>\u003C\u002Fdiv>` : ''}\n    \u003Cdiv class=\"result-breakdown-row\">\u003Cspan>Formule appliquée\u003C\u002Fspan>\u003Cspan>Art. 26 CCN 1307\u003C\u002Fspan>\u003C\u002Fdiv>\n  `;\n}\n\nfunction renderPre() {\n  const r = computePre();\n  document.getElementById('pre-duration').textContent = r.dur;\n  document.getElementById('pre-sub').textContent = r.note;\n  document.getElementById('pre-bd-cat').textContent = state.pre.statut === 'cadre' ? 'Cadre' : 'Employé \u002F Technicien';\n  document.getElementById('pre-bd-anc').textContent = state.pre.anc + ' an' + (state.pre.anc > 1 ? 's' : '');\n}\n\nfunction renderSal() {\n  const r = computeSal();\n  document.getElementById('sal-amount').textContent = fmtEUR2(r.monthly);\n  document.getElementById('sal-sub').textContent = `Base ${state.sal.heures}h\u002Fsemaine (réf. 151,67h\u002Fmois = ${fmtEUR2(r.ref151)})`;\n  document.getElementById('sal-bd-coeff').textContent = state.sal.coeff;\n  document.getElementById('sal-bd-hourly').textContent = fmtEUR2(r.hourly) + '\u002Fh';\n  \u002F\u002F Highlight selected row\n  document.querySelectorAll('#sal-grid-body tr').forEach(tr => {\n    tr.classList.toggle('highlight', tr.cells[0].textContent.trim() === String(state.sal.coeff));\n  });\n}\n\nfunction renderPri() {\n  const r = computePri();\n  document.getElementById('pri-amount').textContent = fmtEUR(r.total);\n  document.getElementById('pri-sub').textContent = `Salaire brut ${fmtEUR(state.pri.sal)}\u002Fmois — ${state.pri.mois} mois de présence`;\n  document.getElementById('pri-bd-13').textContent = fmtEUR2(r.p13);\n  document.getElementById('pri-bd-anc').textContent = fmtEUR2(r.pAnc);\n  document.getElementById('pri-bd-taux').textContent = r.tauxAnc > 0 ? (r.tauxAnc * 100).toFixed(0) + '%' : 'Aucune (\u003C 3 ans)';\n}\n\n\u002F\u002F ─── Input bindings ───────────────────────────────────────────────────────────\n\u002F\u002F Indemnité\ndocument.getElementById('ind-sal').addEventListener('input', e => {\n  state.ind.sal = +e.target.value;\n  document.getElementById('ind-sal-val').textContent = fmtEUR(state.ind.sal);\n  renderInd();\n});\ndocument.getElementById('ind-anc').addEventListener('input', e => {\n  state.ind.anc = +e.target.value;\n  document.getElementById('ind-anc-val').textContent = state.ind.anc + ' an' + (state.ind.anc > 1 ? 's' : '');\n  renderInd();\n});\ndocument.querySelectorAll('#ind-motif-group .pill').forEach(p => {\n  p.addEventListener('click', () => {\n    document.querySelectorAll('#ind-motif-group .pill').forEach(x => x.classList.remove('active'));\n    p.classList.add('active');\n    state.ind.motif = p.dataset.val;\n    renderInd();\n  });\n});\n\n\u002F\u002F Préavis\ndocument.querySelectorAll('#pre-statut-group .toggle-btn').forEach(b => {\n  b.addEventListener('click', () => {\n    document.querySelectorAll('#pre-statut-group .toggle-btn').forEach(x => x.classList.remove('active'));\n    b.classList.add('active');\n    state.pre.statut = b.dataset.val;\n    renderPre();\n  });\n});\ndocument.getElementById('pre-anc').addEventListener('input', e => {\n  state.pre.anc = +e.target.value;\n  document.getElementById('pre-anc-val').textContent = state.pre.anc + ' an' + (state.pre.anc > 1 ? 's' : '');\n  renderPre();\n});\ndocument.querySelectorAll('#pre-rupture-group .pill').forEach(p => {\n  p.addEventListener('click', () => {\n    document.querySelectorAll('#pre-rupture-group .pill').forEach(x => x.classList.remove('active'));\n    p.classList.add('active');\n    state.pre.rupture = p.dataset.val;\n    renderPre();\n  });\n});\n\n\u002F\u002F Salaire min\ndocument.getElementById('sal-coeff').addEventListener('change', e => {\n  state.sal.coeff = +e.target.value;\n  renderSal();\n});\ndocument.getElementById('sal-h').addEventListener('input', e => {\n  state.sal.heures = +e.target.value;\n  document.getElementById('sal-h-val').textContent = state.sal.heures + ' h';\n  renderSal();\n});\n\n\u002F\u002F Primes\ndocument.getElementById('pri-sal').addEventListener('input', e => {\n  state.pri.sal = +e.target.value;\n  document.getElementById('pri-sal-val').textContent = fmtEUR(state.pri.sal);\n  renderPri();\n});\ndocument.getElementById('pri-anc').addEventListener('input', e => {\n  state.pri.anc = +e.target.value;\n  document.getElementById('pri-anc-val').textContent = state.pri.anc + ' an' + (state.pri.anc > 1 ? 's' : '');\n  renderPri();\n});\ndocument.getElementById('pri-mois').addEventListener('input', e => {\n  state.pri.mois = +e.target.value;\n  document.getElementById('pri-mois-val').textContent = state.pri.mois + ' mois';\n  renderPri();\n});\n\n\u002F\u002F ─── Tab management ───────────────────────────────────────────────────────────\nconst tabs = document.querySelectorAll('[data-tab]');\nconst panels = document.querySelectorAll('[data-panel]');\n\nfunction activate(id) {\n  tabs.forEach(t => {\n    t.classList.toggle('active', t.dataset.tab === id);\n    t.setAttribute('aria-selected', t.dataset.tab === id ? 'true' : 'false');\n  });\n  panels.forEach(p => p.classList.toggle('active', p.dataset.panel === id));\n  if (location.hash !== '#' + id) location.hash = id;\n  requestAnimationFrame(() => window.dispatchEvent(new Event('resize')));\n}\n\ntabs.forEach(t => t.addEventListener('click', () => activate(t.dataset.tab)));\n\nconst hashTab = location.hash.slice(1);\nconst validTab = document.querySelector(`[data-tab=\"${hashTab}\"]`) ? hashTab : tabs[0].dataset.tab;\nactivate(validTab);\n\n\u002F\u002F ─── Iframe 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\n\u002F\u002F ─── Init renders ─────────────────────────────────────────────────────────────\nrenderInd();\nrenderPre();\nrenderSal();\nrenderPri();\n\n\u002F\u002F ─── Lucide icons ─────────────────────────────────────────────────────────────\nlucide.createIcons();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Fccn-exploitation-cinematographique-5df04bf026.webp",[]]