{"id":900933,"date":"2026-05-24T00:10:31","date_gmt":"2026-05-24T00:10:31","guid":{"rendered":"https:\/\/truenorthtaxes.ca\/?p=900933&amp;lang=zh"},"modified":"2026-05-24T00:10:31","modified_gmt":"2026-05-24T00:10:31","slug":"calculatrice-assurance-emploi","status":"publish","type":"post","link":"https:\/\/truenorthtaxes.ca\/zh\/calculatrice-assurance-emploi\/","title":{"rendered":"\u5931\u4e1a\u4fdd\u9669\u8ba1\u7b97\u5668"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>\u5931\u4e1a\u4fdd\u9669\u8ba1\u7b97\u5668 2026 \u2013 \u798f\u5229\u91d1\u4e0e\u7f34\u6b3e<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;600;700;800&amp;family=DM+Sans:ital,wght@0,300;0,400;0,500;1,300&amp;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --bg: #0e1117;\n    --surface: #161b27;\n    --surface2: #1e2637;\n    --border: #2a3348;\n    --accent: #3b82f6;\n    --accent2: #06b6d4;\n    --accent3: #10b981;\n    --warn: #f59e0b;\n    --danger: #ef4444;\n    --text: #e2e8f0;\n    --text2: #94a3b8;\n    --text3: #64748b;\n    --radius: 12px;\n    --radius-lg: 18px;\n  }\n\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  body {\n    font-family: 'DM Sans', sans-serif;\n    background: var(--bg);\n    color: var(--text);\n    min-height: 100vh;\n    overflow-x: hidden;\n  }\n\n  \/* Background mesh *\/\n  body::before {\n    content: '';\n    position: fixed;\n    inset: 0;\n    background:\n      radial-gradient(ellipse 80% 60% at 10% 10%, rgba(59,130,246,0.08) 0%, transparent 60%),\n      radial-gradient(ellipse 60% 50% at 90% 90%, rgba(6,182,212,0.06) 0%, transparent 60%);\n    pointer-events: none;\n    z-index: 0;\n  }\n\n  .wrapper {\n    max-width: 820px;\n    margin: 0 auto;\n    padding: 2.5rem 1.25rem 4rem;\n    position: relative;\n    z-index: 1;\n  }\n\n  \/* Header *\/\n  .header {\n    text-align: center;\n    margin-bottom: 2.5rem;\n  }\n  .badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    background: rgba(59,130,246,0.12);\n    border: 1px solid rgba(59,130,246,0.3);\n    color: var(--accent);\n    font-size: 11px;\n    font-weight: 600;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    padding: 5px 12px;\n    border-radius: 100px;\n    margin-bottom: 1rem;\n  }\n  .badge::before { content: '\u25cf'; font-size: 8px; }\n  h1 {\n    font-family: 'Syne', sans-serif;\n    font-size: clamp(1.7rem, 4vw, 2.4rem);\n    font-weight: 800;\n    line-height: 1.15;\n    background: linear-gradient(135deg, #e2e8f0 0%, #94a3b8 100%);\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n    margin-bottom: 0.6rem;\n  }\n  .subtitle {\n    color: var(--text2);\n    font-size: 0.95rem;\n    font-weight: 300;\n  }\n\n  \/* Tabs *\/\n  .tabs {\n    display: flex;\n    gap: 6px;\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: var(--radius);\n    padding: 5px;\n    margin-bottom: 1.75rem;\n  }\n  .tab-btn {\n    flex: 1;\n    padding: 10px 12px;\n    background: transparent;\n    border: none;\n    border-radius: 8px;\n    color: var(--text2);\n    font-family: 'DM Sans', sans-serif;\n    font-size: 0.875rem;\n    font-weight: 500;\n    cursor: pointer;\n    transition: all 0.2s;\n    white-space: nowrap;\n  }\n  .tab-btn:hover { color: var(--text); background: var(--surface2); }\n  .tab-btn.active {\n    background: var(--accent);\n    color: #fff;\n    font-weight: 600;\n  }\n\n  \/* Panels *\/\n  .panel { display: none; }\n  .panel.active { display: block; }\n\n  \/* Cards *\/\n  .card {\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: var(--radius-lg);\n    padding: 1.5rem;\n    margin-bottom: 1.25rem;\n  }\n  .card-title {\n    font-family: 'Syne', sans-serif;\n    font-size: 0.9rem;\n    font-weight: 700;\n    color: var(--text2);\n    text-transform: uppercase;\n    letter-spacing: 0.07em;\n    margin-bottom: 1.25rem;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n  }\n  .card-title span {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 24px; height: 24px;\n    background: rgba(59,130,246,0.15);\n    border-radius: 6px;\n    font-size: 12px;\n  }\n\n  \/* Form grid *\/\n  .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }\n  .grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }\n  @media (max-width: 560px) {\n    .grid-2, .grid-3 { grid-template-columns: 1fr; }\n  }\n\n  .field { display: flex; flex-direction: column; gap: 6px; }\n  label {\n    font-size: 0.78rem;\n    font-weight: 500;\n    color: var(--text2);\n    letter-spacing: 0.02em;\n  }\n  input, select {\n    background: var(--surface2);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 10px 14px;\n    color: var(--text);\n    font-family: 'DM Sans', sans-serif;\n    font-size: 0.9rem;\n    outline: none;\n    transition: border-color 0.2s;\n    appearance: none;\n    -webkit-appearance: none;\n  }\n  input:focus, select:focus { border-color: var(--accent); }\n  input::placeholder { color: var(--text3); }\n\n  .input-group { position: relative; }\n  .input-group input { padding-right: 3rem; }\n  .input-suffix {\n    position: absolute;\n    right: 12px; top: 50%;\n    transform: translateY(-50%);\n    color: var(--text3);\n    font-size: 0.85rem;\n    font-weight: 500;\n    pointer-events: none;\n  }\n\n  \/* Toggle Qu\u00e9bec *\/\n  .toggle-row {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    background: var(--surface2);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 10px 14px;\n    cursor: pointer;\n    user-select: none;\n    transition: border-color 0.2s;\n  }\n  .toggle-row:hover { border-color: var(--accent); }\n  .toggle-label { font-size: 0.88rem; color: var(--text); }\n  .toggle-switch {\n    width: 38px; height: 20px;\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: 100px;\n    position: relative;\n    transition: background 0.25s;\n    flex-shrink: 0;\n  }\n  .toggle-switch::after {\n    content: '';\n    position: absolute;\n    left: 2px; top: 2px;\n    width: 14px; height: 14px;\n    background: var(--text3);\n    border-radius: 50%;\n    transition: transform 0.25s, background 0.25s;\n  }\n  .toggle-row.on .toggle-switch { background: var(--accent); border-color: var(--accent); }\n  .toggle-row.on .toggle-switch::after { transform: translateX(18px); background: #fff; }\n\n  \/* Button *\/\n  .btn {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    width: 100%;\n    padding: 13px 24px;\n    background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%);\n    border: none;\n    border-radius: 10px;\n    color: #fff;\n    font-family: 'Syne', sans-serif;\n    font-size: 1rem;\n    font-weight: 700;\n    cursor: pointer;\n    transition: opacity 0.2s, transform 0.15s;\n    margin-top: 0.5rem;\n    letter-spacing: 0.01em;\n  }\n  .btn:hover { opacity: 0.9; transform: translateY(-1px); }\n  .btn:active { transform: translateY(0); }\n\n  \/* Results *\/\n  .results {\n    display: none;\n    margin-top: 1.5rem;\n    animation: fadeUp 0.4s ease;\n  }\n  .results.show { display: block; }\n\n  @keyframes fadeUp {\n    from { opacity: 0; transform: translateY(12px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  .result-hero {\n    background: linear-gradient(135deg, rgba(59,130,246,0.15) 0%, rgba(6,182,212,0.1) 100%);\n    border: 1px solid rgba(59,130,246,0.3);\n    border-radius: var(--radius-lg);\n    padding: 1.75rem;\n    text-align: center;\n    margin-bottom: 1.25rem;\n  }\n  .result-hero .label {\n    font-size: 0.8rem;\n    color: var(--accent2);\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n    font-weight: 600;\n    margin-bottom: 0.5rem;\n  }\n  .result-hero .amount {\n    font-family: 'Syne', sans-serif;\n    font-size: clamp(2.2rem, 6vw, 3.2rem);\n    font-weight: 800;\n    color: #fff;\n    line-height: 1;\n    margin-bottom: 0.35rem;\n  }\n  .result-hero .amount span { font-size: 1.2rem; color: var(--text2); }\n  .result-hero .sub { color: var(--text2); font-size: 0.88rem; }\n\n  .result-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 1rem;\n    margin-bottom: 1.25rem;\n  }\n  @media (max-width: 480px) { .result-grid { grid-template-columns: 1fr; } }\n\n  .result-card {\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: var(--radius);\n    padding: 1.1rem 1.25rem;\n  }\n  .result-card .rc-label {\n    font-size: 0.75rem;\n    color: var(--text3);\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    margin-bottom: 4px;\n  }\n  .result-card .rc-value {\n    font-family: 'Syne', sans-serif;\n    font-size: 1.35rem;\n    font-weight: 700;\n    color: var(--text);\n  }\n  .result-card .rc-value.green { color: var(--accent3); }\n  .result-card .rc-value.blue { color: var(--accent2); }\n  .result-card .rc-value.amber { color: var(--warn); }\n  .result-card .rc-sub { font-size: 0.78rem; color: var(--text3); margin-top: 2px; }\n\n  \/* Info box *\/\n  .info-box {\n    background: rgba(245,158,11,0.08);\n    border: 1px solid rgba(245,158,11,0.25);\n    border-radius: var(--radius);\n    padding: 1rem 1.25rem;\n    font-size: 0.83rem;\n    color: var(--warn);\n    line-height: 1.5;\n    margin-bottom: 1rem;\n    display: flex;\n    gap: 10px;\n  }\n  .info-box .icon { flex-shrink: 0; font-size: 1rem; margin-top: 1px; }\n\n  .error-box {\n    background: rgba(239,68,68,0.08);\n    border: 1px solid rgba(239,68,68,0.25);\n    border-radius: var(--radius);\n    padding: 1rem 1.25rem;\n    font-size: 0.85rem;\n    color: #fca5a5;\n    display: none;\n    margin-top: 0.75rem;\n  }\n  .error-box.show { display: block; }\n\n  \/* Breakdown table *\/\n  .breakdown {\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: var(--radius);\n    overflow: hidden;\n    margin-bottom: 1rem;\n  }\n  .breakdown-title {\n    padding: 0.85rem 1.25rem;\n    border-bottom: 1px solid var(--border);\n    font-size: 0.78rem;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    color: var(--text2);\n  }\n  .breakdown-row {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid rgba(42,51,72,0.5);\n    font-size: 0.87rem;\n  }\n  .breakdown-row:last-child { border-bottom: none; }\n  .breakdown-row .key { color: var(--text2); }\n  .breakdown-row .val { font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }\n  .breakdown-row .val.hl { color: var(--accent3); }\n  .breakdown-row.total-row {\n    background: rgba(59,130,246,0.06);\n    font-weight: 600;\n  }\n  .breakdown-row.total-row .key { color: var(--text); }\n  .breakdown-row.total-row .val { color: var(--accent2); font-size: 1rem; }\n\n  \/* Rates panel *\/\n  .rates-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 1rem;\n    margin-bottom: 1.25rem;\n  }\n  @media (max-width: 500px) { .rates-grid { grid-template-columns: 1fr; } }\n\n  .rate-box {\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: var(--radius);\n    padding: 1.25rem;\n  }\n  .rate-box .rb-title {\n    font-size: 0.75rem;\n    text-transform: uppercase;\n    letter-spacing: 0.08em;\n    color: var(--text3);\n    margin-bottom: 0.6rem;\n    font-weight: 600;\n  }\n  .rate-box .rb-main {\n    font-family: 'Syne', sans-serif;\n    font-size: 1.6rem;\n    font-weight: 700;\n    color: var(--accent);\n  }\n  .rate-box .rb-sub { font-size: 0.8rem; color: var(--text2); margin-top: 4px; }\n  .rate-box.qc .rb-main { color: var(--accent3); }\n\n  \/* Disclaimer *\/\n  .disclaimer {\n    text-align: center;\n    font-size: 0.75rem;\n    color: var(--text3);\n    padding: 1rem;\n    line-height: 1.5;\n    border-top: 1px solid var(--border);\n    margin-top: 1rem;\n  }\n\n  \/* Range slider *\/\n  .slider-row {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n  input[type=\"range\"] {\n    flex: 1;\n    height: 4px;\n    background: var(--surface2);\n    border: none;\n    border-radius: 2px;\n    padding: 0;\n    accent-color: var(--accent);\n    cursor: pointer;\n  }\n  .slider-val {\n    min-width: 52px;\n    text-align: right;\n    font-family: 'Syne', sans-serif;\n    font-size: 0.95rem;\n    font-weight: 700;\n    color: var(--accent);\n  }\n\n  \/* Section divider *\/\n  .section-divider {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin: 1.75rem 0 1.25rem;\n    color: var(--text3);\n    font-size: 0.75rem;\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n  }\n  .section-divider::before, .section-divider::after {\n    content: '';\n    flex: 1;\n    height: 1px;\n    background: var(--border);\n  }\n\n  \/* Progress bar *\/\n  .progress-wrap {\n    background: var(--surface2);\n    border-radius: 4px;\n    height: 6px;\n    overflow: hidden;\n    margin-top: 8px;\n  }\n  .progress-bar {\n    height: 100%;\n    background: linear-gradient(90deg, var(--accent), var(--accent2));\n    border-radius: 4px;\n    transition: width 0.6s ease;\n  }\n\n  \/* Reset *\/\n  .reset-btn {\n    background: transparent;\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    color: var(--text2);\n    font-family: 'DM Sans', sans-serif;\n    font-size: 0.83rem;\n    padding: 8px 16px;\n    cursor: pointer;\n    transition: all 0.2s;\n    margin-top: 0.5rem;\n    display: block;\n    width: 100%;\n  }\n  .reset-btn:hover { border-color: var(--accent); color: var(--accent); }\n<\/style>\n\n\n<div class=\"wrapper\">\n\n  <!-- Header -->\n  <div class=\"header\">\n    <div class=\"badge\">2026\u5e74\u5b98\u65b9\u6570\u636e<\/div>\n\n    <p class=\"subtitle\">\u4f30\u7b97\u60a8\u7684\u6bcf\u5468\u798f\u5229\u91d1\u548c\u7f34\u6b3e\u989d \u2014 \u52a0\u62ff\u5927\u4e0e\u9b41\u5317\u514b<\/p>\n  <\/div>\n\n  <!-- Tabs -->\n  <div class=\"tabs\">\n    <button class=\"tab-btn active\" onclick=\"switchTab('prestations')\">\ud83d\udcb0 \u798f\u5229\u91d1<\/button>\n    <button class=\"tab-btn\" onclick=\"switchTab('cotisations')\">\ud83d\udccb \u7f34\u6b3e<\/button>\n    <button class=\"tab-btn\" onclick=\"switchTab('taux')\">\ud83d\udcca 2026\u5e74\u8d39\u7387<\/button>\n  <\/div>\n\n  <!-- ==================== TAB 1: PRESTATIONS ==================== -->\n  <div id=\"tab-prestations\" class=\"panel active\">\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>1<\/span>\u60a8\u7684\u5c31\u4e1a\u72b6\u51b5<\/div>\n\n      <div class=\"grid-2\" style=\"margin-bottom:1rem;\">\n        <div class=\"field\">\n          <label>\u5e74\u5ea6\u7a0e\u524d\u5de5\u8d44 ($)<\/label>\n          <div class=\"input-group\">\n            <input type=\"number\" id=\"salaire\" placeholder=\"\u4f8b\u5982 52,000\" min=\"0\" max=\"500000\">\n            <span class=\"input-suffix\">$<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>\u5df2\u5de5\u4f5c\u5468\u6570\uff08\u8fc7\u53bb52\u5468\uff09<\/label>\n          <div class=\"input-group\">\n            <input type=\"number\" id=\"semaines\" placeholder=\"\u4f8b\u5982 40\" min=\"1\" max=\"52\">\n            <span class=\"input-suffix\">\u5468<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"grid-2\" style=\"margin-bottom:1rem;\">\n        <div class=\"field\">\n          <label>\u7d2f\u8ba1\u53ef\u4fdd\u9669\u5de5\u65f6<\/label>\n          <div class=\"input-group\">\n            <input type=\"number\" id=\"heures\" placeholder=\"\u4f8b\u5982 1200\" min=\"0\">\n            <span class=\"input-suffix\">\u5c0f\u65f6<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>\u60a8\u6240\u5728\u5730\u533a\u7684\u5931\u4e1a\u7387 (%)<\/label>\n          <div class=\"slider-row\">\n            <input type=\"range\" id=\"tauxChomage\" min=\"1\" max=\"20\" step=\"0.1\" value=\"6\" oninput=\"document.getElementById('tauxChomageVal').textContent = parseFloat(this.value).toFixed(1) + ' %'\">\n            <span class=\"slider-val\" id=\"tauxChomageVal\">6.0 %<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Qu\u00e9bec toggle -->\n      <div class=\"toggle-row\" id=\"qcToggle\" onclick=\"toggleQC()\">\n        <span class=\"toggle-label\">\ud83c\udde8\ud83c\udde6 \u6211\u5728<strong>\u9b41\u5317\u514b<\/strong>\u5de5\u4f5c\uff08EI\u8d39\u7387\u8f83\u4f4e \u2014 \u7531QPIP\u627f\u62c5\uff09<\/span>\n        <div class=\"toggle-switch\"><\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Bouton calculer -->\n    <button class=\"btn\" onclick=\"calculerPrestations()\">\n      \u26a1 \u8ba1\u7b97\u6211\u7684\u798f\u5229\u91d1\n    <\/button>\n\n    <div class=\"error-box\" id=\"error-prestations\"><\/div>\n\n    <!-- R\u00e9sultats -->\n    <div class=\"results\" id=\"results-prestations\">\n\n      <div class=\"section-divider\">\u4f30\u7b97\u7ed3\u679c<\/div>\n\n      <div class=\"result-hero\">\n        <div class=\"label\">\u9884\u8ba1\u6bcf\u5468\u798f\u5229\u91d1<\/div>\n        <div class=\"amount\" id=\"res-hebdo\">\u2014<span>\/\u5468<\/span><\/div>\n        <div class=\"sub\" id=\"res-hebdo-sub\">\u2014<\/div>\n      <\/div>\n\n      <div class=\"result-grid\">\n        <div class=\"result-card\">\n          <div class=\"rc-label\">\u6bcf\u6708\u798f\u5229\u91d1<\/div>\n          <div class=\"rc-value green\" id=\"res-mensuel\">\u2014<\/div>\n          <div class=\"rc-sub\">\u00d7 4.33\u5468<\/div>\n        <\/div>\n        <div class=\"result-card\">\n          <div class=\"rc-label\">\u6700\u957f\u671f\u9650<\/div>\n          <div class=\"rc-value blue\" id=\"res-semaines-max\">\u2014<\/div>\n          <div class=\"rc-sub\" id=\"res-semaines-sub\">\u6839\u636e\u5de5\u65f6\u548c\u5730\u533a\u800c\u5b9a<\/div>\n        <\/div>\n        <div class=\"result-card\">\n          <div class=\"rc-label\">\u4f30\u7b97\u603b\u989d\uff08\u6574\u4e2a\u671f\u95f4\uff09<\/div>\n          <div class=\"rc-value amber\" id=\"res-total\">\u2014<\/div>\n          <div class=\"rc-sub\">\u798f\u5229\u91d1\u603b\u989d\uff08\u7a0e\u524d\uff09<\/div>\n        <\/div>\n        <div class=\"result-card\">\n          <div class=\"rc-label\">\u8d44\u683c<\/div>\n          <div class=\"rc-value\" id=\"res-admissible\">\u2014<\/div>\n          <div class=\"rc-sub\" id=\"res-admissible-sub\">\u2014<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"breakdown\">\n        <div class=\"breakdown-title\">\u8ba1\u7b97\u660e\u7ec6<\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u5e73\u5747\u6bcf\u5468\u5de5\u8d44<\/span>\n          <span class=\"val\" id=\"bd-salaire-hebdo\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u53ef\u4fdd\u9669\u5de5\u8d44\uff08\u4e0a\u965068,900 $\uff09<\/span>\n          <span class=\"val\" id=\"bd-assurable\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u8ba1\u5165\u7684\u6700\u4f73\u5468\u6570<\/span>\n          <span class=\"val\" id=\"bd-meilleures\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u66ff\u4ee3\u7387<\/span>\n          <span class=\"val\">55 %<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6bcf\u5468\u6700\u9ad8\u798f\u5229\u91d1\uff082026\u5e74\u4e0a\u9650\uff09<\/span>\n          <span class=\"val\">729 $<\/span>\n        <\/div>\n        <div class=\"breakdown-row total-row\">\n          <span class=\"key\">\u6838\u5b9a\u6bcf\u5468\u798f\u5229\u91d1<\/span>\n          <span class=\"val hl\" id=\"bd-final\">\u2014<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"info-box\">\n        <span class=\"icon\">\u26a0\ufe0f<\/span>\n        <span>\u6b64\u4f30\u7b97\u672a\u8ba1\u5165\u671f\u521d<strong>1\u5468<\/strong>\u65e0\u798f\u5229\u91d1\u7684\u7b49\u5f85\u671f\u3002\u5b9e\u9645\u91d1\u989d\u53ef\u80fd\u56e0\u60a8\u7684\u5177\u4f53\u60c5\u51b5\u53caService Canada\uff08\u52a0\u62ff\u5927\u670d\u52a1\u5c40\uff09\u7684\u51b3\u5b9a\u800c\u6709\u6240\u4e0d\u540c\u3002<\/span>\n      <\/div>\n\n      <div class=\"info-box\" id=\"info-qc\" style=\"display:none; background:rgba(16,185,129,0.08); border-color:rgba(16,185,129,0.3); color: #6ee7b7;\">\n        <span class=\"icon\">\ud83c\udf3f<\/span>\n        <span>\u5728\u9b41\u5317\u514b\uff0c\u4ea7\u5047\u3001\u966a\u4ea7\u5047\u548c\u80b2\u513f\u5047\u7531<strong>QPIP<\/strong>\uff08\u9b41\u5317\u514b\u7236\u6bcd\u4fdd\u9669\u8ba1\u5212\uff09\u627f\u62c5\uff0c\u800c\u975eEI\u3002\u56e0\u6b64EI\u7f34\u8d39\u7387\u8f83\u4f4e\uff081.30 $ \u76f8\u6bd4\u52a0\u62ff\u5927\u5176\u4ed6\u5730\u533a\u76841.63 $\uff09\u3002<\/span>\n      <\/div>\n\n      <button class=\"reset-btn\" onclick=\"reset('prestations')\">\u21ba \u91cd\u7f6e<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ==================== TAB 2: COTISATIONS ==================== -->\n  <div id=\"tab-cotisations\" class=\"panel\">\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>2<\/span>\u8ba1\u7b97\u60a82026\u5e74\u7684EI\u7f34\u6b3e<\/div>\n\n      <div class=\"grid-2\" style=\"margin-bottom:1rem;\">\n        <div class=\"field\">\n          <label>\u5e74\u5ea6\u7a0e\u524d\u5de5\u8d44 ($)<\/label>\n          <div class=\"input-group\">\n            <input type=\"number\" id=\"salaire-cot\" placeholder=\"\u4f8b\u5982 72,000\" min=\"0\">\n            <span class=\"input-suffix\">$<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>\u8ba1\u7b97\u7c7b\u578b<\/label>\n          <select id=\"type-calc\">\n            <option value=\"employe\">\u96c7\u5458<\/option>\n            <option value=\"employeur\">\u96c7\u4e3b<\/option>\n            <option value=\"les-deux\">\u4e24\u8005\uff08\u5bf9\u6bd4\uff09<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n\n      <div class=\"toggle-row\" id=\"qcToggle2\" onclick=\"toggleQC2()\" style=\"margin-top:0.5rem;\">\n        <span class=\"toggle-label\">\ud83c\udde8\ud83c\udde6 \u5728<strong>\u9b41\u5317\u514b<\/strong>\u5de5\u4f5c\uff08QPIP \u2014 EI\u8d39\u7387\u8f83\u4f4e\uff09<\/span>\n        <div class=\"toggle-switch\"><\/div>\n      <\/div>\n    <\/div>\n\n    <button class=\"btn\" onclick=\"calculerCotisations()\">\u26a1 \u8ba1\u7b97\u7f34\u6b3e\u989d<\/button>\n\n    <div class=\"error-box\" id=\"error-cotisations\"><\/div>\n\n    <div class=\"results\" id=\"results-cotisations\">\n      <div class=\"section-divider\">2026\u5e74\u7f34\u6b3e\u7ed3\u679c<\/div>\n\n      <div class=\"result-hero\">\n        <div class=\"label\">\u96c7\u5458\u5e74\u5ea6\u7f34\u6b3e\u989d<\/div>\n        <div class=\"amount\" id=\"cot-employe-hero\">\u2014<span>\/\u5e74<\/span><\/div>\n        <div class=\"sub\" id=\"cot-employe-sub\">\u2014<\/div>\n      <\/div>\n\n      <div class=\"breakdown\">\n        <div class=\"breakdown-title\">\u7f34\u6b3e\u660e\u7ec6<\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u7a0e\u524d\u5de5\u8d44<\/span>\n          <span class=\"val\" id=\"cot-bd-salaire\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u53ef\u4fdd\u9669\u5de5\u8d44\uff08\u4e0a\u965068,900 $\uff09<\/span>\n          <span class=\"val\" id=\"cot-bd-assurable\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u96c7\u5458\u8d39\u7387<\/span>\n          <span class=\"val\" id=\"cot-bd-taux-emp\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row total-row\">\n          <span class=\"key\">\u96c7\u5458\u5e74\u5ea6\u7f34\u6b3e\u989d<\/span>\n          <span class=\"val hl\" id=\"cot-bd-emp-an\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u96c7\u5458\u6708\u5ea6\u7f34\u6b3e\u989d<\/span>\n          <span class=\"val\" id=\"cot-bd-emp-mois\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\" id=\"row-employeur\">\n          <span class=\"key\">\u96c7\u4e3b\u5e74\u5ea6\u7f34\u6b3e\u989d\uff08\u00d71.4\uff09<\/span>\n          <span class=\"val\" id=\"cot-bd-er-an\">\u2014<\/span>\n        <\/div>\n        <div class=\"breakdown-row\" id=\"row-total-cot\">\n          <span class=\"key\">\u5e74\u5ea6\u603b\u6210\u672c\uff08\u96c7\u5458+\u96c7\u4e3b\uff09<\/span>\n          <span class=\"val\" id=\"cot-bd-total\">\u2014<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"info-box\">\n        <span class=\"icon\">\ud83d\udca1<\/span>\n        <span>\u4e00\u65e6\u5f53\u5e74\u53ef\u4fdd\u9669\u6536\u5165\u8fbe\u5230<strong>68,900 $<\/strong>\u7684\u4e0a\u9650\uff0c\u5f53\u5e74\u5269\u4f59\u65f6\u95f4\u5c06\u4e0d\u518d\u6263\u7f34EI\u4fdd\u8d39\u3002\u8d85\u8fc7\u8be5\u4e0a\u9650\u540e\u4e0d\u4f1a\u518d\u6263\u9664\u4efb\u4f55\u989d\u5916\u7f34\u6b3e\u3002<\/span>\n      <\/div>\n\n      <button class=\"reset-btn\" onclick=\"reset('cotisations')\">\u21ba \u91cd\u7f6e<\/button>\n    <\/div>\n  <\/div>\n\n  <!-- ==================== TAB 3: TAUX DE R\u00c9F\u00c9RENCE ==================== -->\n  <div id=\"tab-taux\" class=\"panel\">\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>\u2605<\/span>2026\u5e74EI\u5b98\u65b9\u53c2\u6570<\/div>\n      <div class=\"rates-grid\">\n        <div class=\"rate-box\">\n          <div class=\"rb-title\">\u96c7\u5458\u8d39\u7387 \u2014 \u52a0\u62ff\u5927<\/div>\n          <div class=\"rb-main\">1.63 $<\/div>\n          <div class=\"rb-sub\">\u6bcf100 $\u53ef\u4fdd\u9669\u6536\u5165<\/div>\n        <\/div>\n        <div class=\"rate-box qc\">\n          <div class=\"rb-title\">\u96c7\u5458\u8d39\u7387 \u2014 \u9b41\u5317\u514b<\/div>\n          <div class=\"rb-main\">1.30 $<\/div>\n          <div class=\"rb-sub\">\u8f83\u4f4e\u8d39\u7387\uff08QPIP\u627f\u62c5\u80b2\u513f\u5047\u90e8\u5206\uff09<\/div>\n        <\/div>\n        <div class=\"rate-box\">\n          <div class=\"rb-title\">\u96c7\u4e3b\u8d39\u7387 \u2014 \u52a0\u62ff\u5927<\/div>\n          <div class=\"rb-main\">2.28 $<\/div>\n          <div class=\"rb-sub\">\u5373\u96c7\u5458\u8d39\u7387\u76841.4\u500d<\/div>\n        <\/div>\n        <div class=\"rate-box qc\">\n          <div class=\"rb-title\">\u96c7\u4e3b\u8d39\u7387 \u2014 \u9b41\u5317\u514b<\/div>\n          <div class=\"rb-main\">1.82 $<\/div>\n          <div class=\"rb-sub\">\u9b41\u5317\u514b\u96c7\u5458\u8d39\u7387\u76841.4\u500d<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>\ud83d\udcc8<\/span>2026\u5e74\u4e0a\u9650\u4e0e\u798f\u5229\u91d1<\/div>\n      <div class=\"breakdown\">\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6700\u9ad8\u53ef\u4fdd\u9669\u6536\u5165<\/span>\n          <span class=\"val hl\">68,900 $<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6700\u9ad8\u5e74\u5ea6\u7f34\u6b3e\u989d\uff08\u96c7\u5458\uff0c\u52a0\u62ff\u5927\uff09<\/span>\n          <span class=\"val\">1,123.07 $<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6700\u9ad8\u5e74\u5ea6\u7f34\u6b3e\u989d\uff08\u96c7\u5458\uff0c\u9b41\u5317\u514b\uff09<\/span>\n          <span class=\"val\">895.70 $<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6536\u5165\u66ff\u4ee3\u7387<\/span>\n          <span class=\"val\">55 %<\/span>\n        <\/div>\n        <div class=\"breakdown-row total-row\">\n          <span class=\"key\">\u6bcf\u5468\u6700\u9ad8\u798f\u5229\u91d1<\/span>\n          <span class=\"val hl\">729 $ \/\u5468<\/span>\n        <\/div>\n        <div class=\"breakdown-row\">\n          <span class=\"key\">\u6bcf\u6708\u6700\u9ad8\u798f\u5229\u91d1\uff08\u00d74.33\uff09<\/span>\n          <span class=\"val\">~3,157 $ \/\u6708<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>\ud83d\udccd<\/span>\u6839\u636e\u5730\u533a\u5931\u4e1a\u7387\u6240\u9700\u7684\u5de5\u65f6<\/div>\n      <div class=\"breakdown\">\n        <div class=\"breakdown-row\" style=\"font-size:0.75rem; color:var(--text3);\">\n          <span class=\"key\">\u5730\u533a\u5931\u4e1a\u7387<\/span>\n          <span class=\"val\">\u6240\u9700\u5de5\u65f6<\/span>\n        <\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">6 % \u6216\u4ee5\u4e0b<\/span><span class=\"val\">700 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">6.1 % \u81f3 7 %<\/span><span class=\"val\">665 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">7.1 % \u81f3 8 %<\/span><span class=\"val\">630 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">8.1 % \u81f3 9 %<\/span><span class=\"val\">595 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">9.1 % \u81f3 10 %<\/span><span class=\"val\">560 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">10.1 % \u81f3 11 %<\/span><span class=\"val\">525 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">11.1 % \u81f3 12 %<\/span><span class=\"val\">490 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">12.1 % \u81f3 13 %<\/span><span class=\"val\">455 \u5c0f\u65f6<\/span><\/div>\n        <div class=\"breakdown-row total-row\"><span class=\"key\">13.1 % \u53ca\u4ee5\u4e0a<\/span><span class=\"val\">420 \u5c0f\u65f6<\/span><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"card\">\n      <div class=\"card-title\"><span>\ud83d\udcc5<\/span>\u6839\u636e\u5de5\u65f6\u786e\u5b9a\u7684\u6700\u957f\u798f\u5229\u5468\u6570<\/div>\n      <div class=\"breakdown\">\n        <div class=\"breakdown-row\" style=\"font-size:0.75rem; color:var(--text3);\">\n          <span class=\"key\">\u7d2f\u8ba1\u53ef\u4fdd\u9669\u5de5\u65f6\uff08\u5931\u4e1a\u7387\u4f8b\u5982&lt;6%\uff09<\/span>\n          <span class=\"val\">\u6700\u957f\u5468\u6570<\/span>\n        <\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">420 \u2013 454 \u5c0f\u65f6<\/span><span class=\"val\">14 \u5468<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">455 \u2013 559 \u5c0f\u65f6<\/span><span class=\"val\">18 \u2013 24 \u5468<\/span><\/div>\n        <div class=\"breakdown-row\"><span class=\"key\">560 \u2013 699 \u5c0f\u65f6<\/span><span class=\"val\">25 \u2013 35 \u5468<\/span><\/div>\n        <div class=\"breakdown-row total-row\"><span class=\"key\">700 \u5c0f\u65f6\u53ca\u4ee5\u4e0a<\/span><span class=\"val\">\u6700\u591a45\u5468<\/span><\/div>\n      <\/div>\n      <p style=\"font-size:0.75rem; color:var(--text3); margin-top:0.85rem; line-height:1.5;\">* \u5177\u4f53\u5468\u6570\u53d6\u51b3\u4e8e\u5de5\u4f5c\u65f6\u6570\u4e0e\u5730\u533a\u5931\u4e1a\u7387\u7684\u7ec4\u5408\u3002\u5b8c\u6574\u8868\u683c\u8bf7\u53c2\u9605canada.ca\u7f51\u7ad9\u3002<\/p>\n    <\/div>\n\n    <div class=\"info-box\">\n      <span class=\"icon\">\u2139\ufe0f<\/span>\n      <span>\u6765\u6e90\uff1a\u52a0\u62ff\u5927\u5c31\u4e1a\u4fdd\u9669\u59d4\u5458\u4f1a\uff08CEIC\uff09\uff0c2025\u5e749\u670812\u65e5\u516c\u544a\u3002\u9002\u7528\u4e8e2026\u65e5\u5386\u5e74\u5ea6\u7684\u8d39\u7387\u3002<\/span>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"disclaimer\">\n    \u672c\u8ba1\u7b97\u5668\u4ec5\u4f9b\u53c2\u8003 \u2014 \u57fa\u4e8eCEIC\uff08\u52a0\u62ff\u5927\u5c31\u4e1a\u4fdd\u9669\u59d4\u5458\u4f1a\uff092026\u5e74\u5b98\u65b9\u53c2\u6570\u3002<br>\n    \u8ba1\u7b97\u7ed3\u679c\u4ec5\u4e3a\u4f30\u7b97\u503c\u3002\u60a8\u7684\u5b9e\u9645\u60c5\u51b5\u53ef\u80fd\u56e0Service Canada\uff08\u52a0\u62ff\u5927\u670d\u52a1\u5c40\uff09\u7684\u51b3\u5b9a\u800c\u6709\u6240\u4e0d\u540c\u3002<br>\n    \u5728\u9b41\u5317\u514b\uff0c\u80b2\u513f\u5047\u7531QPIP\uff08\u9b41\u5317\u514b\u7236\u6bcd\u4fdd\u9669\u8ba1\u5212\uff09\u627f\u62c5\uff0c\u800c\u975eEI\u3002\n  <\/div>\n\n<\/div>\n\n<script>\n  let isQC = false;\n  let isQC2 = false;\n\n  \/\/ ---- Tabs ----\n  function switchTab(name) {\n    document.querySelectorAll('.panel').forEach(p => p.classList.remove('active'));\n    document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));\n    document.getElementById('tab-' + name).classList.add('active');\n    event.currentTarget.classList.add('active');\n  }\n\n  \/\/ ---- QC Toggles ----\n  function toggleQC() {\n    isQC = !isQC;\n    document.getElementById('qcToggle').classList.toggle('on', isQC);\n  }\n  function toggleQC2() {\n    isQC2 = !isQC2;\n    document.getElementById('qcToggle2').classList.toggle('on', isQC2);\n  }\n\n  \/\/ ---- Helpers ----\n  const fmt = (n) => n.toLocaleString('fr-CA', { style: 'currency', currency: 'CAD', maximumFractionDigits: 2 });\n  const fmtN = (n) => n.toLocaleString('fr-CA', { maximumFractionDigits: 0 });\n\n  function showError(id, msg) {\n    const el = document.getElementById('error-' + id);\n    el.textContent = msg;\n    el.classList.add('show');\n    setTimeout(() => el.classList.remove('show'), 5000);\n  }\n\n  \/\/ ---- Calcul heures requises ----\n  function getHeuresRequises(tc) {\n    if (tc <= 6)   return 700;\n    if (tc <= 7)   return 665;\n    if (tc <= 8)   return 630;\n    if (tc <= 9)   return 595;\n    if (tc <= 10)  return 560;\n    if (tc <= 11)  return 525;\n    if (tc <= 12)  return 490;\n    if (tc <= 13)  return 455;\n    return 420;\n  }\n\n  \/\/ ---- Meilleures semaines variables ----\n  function getMeilleuresSemaines(tc) {\n    if (tc <= 6)   return 22;\n    if (tc <= 7)   return 21;\n    if (tc <= 8)   return 20;\n    if (tc <= 9)   return 19;\n    if (tc <= 10)  return 18;\n    if (tc <= 11)  return 17;\n    if (tc <= 12)  return 16;\n    if (tc <= 13)  return 15;\n    return 14;\n  }\n\n  \/\/ ---- Semaines de prestations max (simplifi\u00e9) ----\n  function getSemainesMax(heures, tc) {\n    \/\/ Table simplifi\u00e9e bas\u00e9e sur combinaison heures\/taux\n    const hReq = getHeuresRequises(tc);\n    if (heures < hReq) return 0;\n    \/\/ Interpolation lin\u00e9aire simple : min 14, max 45\n    const ratio = Math.min((heures - hReq) \/ (1820 - hReq), 1);\n    const base = tc <= 6 ? 14 : tc <= 9 ? 18 : tc <= 13 ? 22 : 26;\n    const max = tc <= 6 ? 35 : tc <= 9 ? 40 : 45;\n    return Math.round(base + ratio * (max - base));\n  }\n\n  \/\/ ---- CALCULER PRESTATIONS ----\n  function calculerPrestations() {\n    const salaire = parseFloat(document.getElementById('salaire').value);\n    const semaines = parseInt(document.getElementById('semaines').value);\n    const heures = parseInt(document.getElementById('heures').value);\n    const tc = parseFloat(document.getElementById('tauxChomage').value);\n\n    if (!salaire || salaire <= 0) return showError('prestations', '\u8bf7\u8f93\u5165\u6709\u6548\u7684\u5e74\u5ea6\u5de5\u8d44\u3002');\n    if (!semaines || semaines < 1 || semaines > 52) return showError('prestations', '\u5de5\u4f5c\u5468\u6570\u5fc5\u987b\u4ecb\u4e8e1\u81f352\u4e4b\u95f4\u3002');\n    if (!heures || heures <= 0) return showError('prestations', '\u8bf7\u8f93\u5165\u7d2f\u8ba1\u53ef\u4fdd\u9669\u5de5\u65f6\u6570\u3002');\n\n    const MAX_ASSURABLE = 68900;\n    const TAUX_PRESTATION = 0.55;\n    const PRESTATION_MAX = 729;\n\n    \/\/ Salaire assurable plafonn\u00e9\n    const salaireAssurable = Math.min(salaire, MAX_ASSURABLE);\n\n    \/\/ Salaire hebdomadaire moyen r\u00e9el\n    const salaireHebdo = salaire \/ semaines;\n\n    \/\/ Meilleures semaines\n    const meilleuresSem = getMeilleuresSemaines(tc);\n\n    \/\/ Salaire de r\u00e9f\u00e9rence pour le calcul (bas\u00e9 sur les meilleures semaines)\n    \/\/ On utilise le salaire assurable \/ meilleures semaines pour approcher la moyenne des meilleures\n    const salaireRef = Math.min(salaireHebdo, MAX_ASSURABLE \/ 52);\n    const prestationBrute = salaireRef * TAUX_PRESTATION;\n    const prestationHebdo = Math.min(prestationBrute, PRESTATION_MAX);\n    const prestationMensuel = prestationHebdo * 4.333;\n\n    \/\/ Admissibilit\u00e9\n    const hReq = getHeuresRequises(tc);\n    const admissible = heures >= hReq;\n    const semainesMax = admissible ? getSemainesMax(heures, tc) : 0;\n    const totalEstime = prestationHebdo * semainesMax;\n\n    \/\/ Affichage\n    document.getElementById('results-prestations').classList.add('show');\n    document.getElementById('res-hebdo').innerHTML = fmt(prestationHebdo) + '<span>\/\u5468<\/span>';\n    document.getElementById('res-hebdo-sub').textContent =\n      `\u57fa\u4e8e\u6bcf\u5468 ${salaireRef.toFixed(2).replace('.', ',')} $ \u7684\u5de5\u8d44 \u00d7 55 %` +\n      (prestationBrute > PRESTATION_MAX ? '\uff08\u5df2\u8fbe\u4e0a\u9650\uff09' : '');\n    document.getElementById('res-mensuel').textContent = fmt(prestationMensuel);\n    document.getElementById('res-semaines-max').textContent = admissible ? semainesMax + ' \u5468' : '\u2014';\n    document.getElementById('res-semaines-sub').textContent = admissible\n      ? `\u5931\u4e1a\u7387 ${tc.toFixed(1)} % \u2192 \u6240\u9700\u5de5\u65f6 ${hReq} \u5c0f\u65f6`\n      : `\u5de5\u65f6\u4e0d\u8db3 \u2014 \u6240\u9700\u5de5\u65f6\uff1a${hReq} \u5c0f\u65f6`;\n    document.getElementById('res-total').textContent = admissible ? fmt(totalEstime) : '\u4e0d\u7b26\u5408\u8d44\u683c';\n    document.getElementById('res-admissible').textContent = admissible ? '\u2705 \u7b26\u5408' : '\u274c \u4e0d\u7b26\u5408';\n    document.getElementById('res-admissible-sub').textContent = admissible\n      ? `${heures} \u5c0f\u65f6 \u2265 \u6240\u9700 ${hReq} \u5c0f\u65f6`\n      : `${heures} \u5c0f\u65f6 < \u6240\u9700 ${hReq} \u5c0f\u65f6`;\n    document.getElementById('res-admissible').className = 'rc-value ' + (admissible ? 'green' : '');\n\n    \/\/ Breakdown\n    document.getElementById('bd-salaire-hebdo').textContent = fmt(salaireHebdo) + '\/\u5468';\n    document.getElementById('bd-assurable').textContent = fmt(salaireAssurable) + '\/\u5e74';\n    document.getElementById('bd-meilleures').textContent = meilleuresSem + ' \u5468';\n    document.getElementById('bd-final').textContent = fmt(prestationHebdo) + '\/\u5468';\n\n    \/\/ Info Qu\u00e9bec\n    document.getElementById('info-qc').style.display = isQC ? 'flex' : 'none';\n  }\n\n  \/\/ ---- CALCULER COTISATIONS ----\n  function calculerCotisations() {\n    const salaire = parseFloat(document.getElementById('salaire-cot').value);\n    const type = document.getElementById('type-calc').value;\n\n    if (!salaire || salaire <= 0) return showError('cotisations', '\u8bf7\u8f93\u5165\u6709\u6548\u7684\u5de5\u8d44\u91d1\u989d\u3002');\n\n    const MAX = 68900;\n    const TAUX_EMP = isQC2 ? 0.0130 : 0.0163;\n    const TAUX_ER  = isQC2 ? 0.0182 : 0.0228;\n    const tauxLabel = isQC2 ? '1.30 %' : '1.63 %';\n\n    const salaireAssurable = Math.min(salaire, MAX);\n    const cotEmpAn = salaireAssurable * TAUX_EMP;\n    const cotEmpMois = cotEmpAn \/ 12;\n    const cotErAn = salaireAssurable * TAUX_ER;\n    const cotTotal = cotEmpAn + cotErAn;\n\n    document.getElementById('results-cotisations').classList.add('show');\n    document.getElementById('cot-employe-hero').innerHTML = fmt(cotEmpAn) + '<span>\/\u5e74<\/span>';\n    document.getElementById('cot-employe-sub').textContent =\n      `\u5373\u6bcf\u6708 ${fmt(cotEmpMois)} \u2014 ${isQC2 ? '\u9b41\u5317\u514b' : '\u52a0\u62ff\u5927'}\u8d39\u7387 ${tauxLabel}`;\n\n    document.getElementById('cot-bd-salaire').textContent = fmt(salaire);\n    document.getElementById('cot-bd-assurable').textContent = fmt(salaireAssurable);\n    document.getElementById('cot-bd-taux-emp').textContent = tauxLabel + (isQC2 ? ' (\u9b41\u5317\u514b)' : ' (\u52a0\u62ff\u5927)');\n    document.getElementById('cot-bd-emp-an').textContent = fmt(cotEmpAn);\n    document.getElementById('cot-bd-emp-mois').textContent = fmt(cotEmpMois);\n    document.getElementById('cot-bd-er-an').textContent = fmt(cotErAn);\n    document.getElementById('cot-bd-total').textContent = fmt(cotTotal);\n\n    \/\/ Show\/hide employeur rows\n    const showEr = type === 'employeur' || type === 'les-deux';\n    document.getElementById('row-employeur').style.display = showEr ? 'flex' : 'none';\n    document.getElementById('row-total-cot').style.display = type === 'les-deux' ? 'flex' : 'none';\n  }\n\n  \/\/ ---- RESET ----\n  function reset(tab) {\n    if (tab === 'prestations') {\n      ['salaire','semaines','heures'].forEach(id => document.getElementById(id).value = '');\n      document.getElementById('tauxChomage').value = 6;\n      document.getElementById('tauxChomageVal').textContent = '6.0 %';\n      if (isQC) { isQC = false; document.getElementById('qcToggle').classList.remove('on'); }\n      document.getElementById('results-prestations').classList.remove('show');\n    } else {\n      document.getElementById('salaire-cot').value = '';\n      document.getElementById('type-calc').value = 'employe';\n      if (isQC2) { isQC2 = false; document.getElementById('qcToggle2').classList.remove('on'); }\n      document.getElementById('results-cotisations').classList.remove('show');\n    }\n  }\n\n  \/\/ Enter key support\n  document.addEventListener('keydown', (e) => {\n    if (e.key === 'Enter') {\n      const active = document.querySelector('.panel.active');\n      if (active.id === 'tab-prestations') calculerPrestations();\n      else if (active.id === 'tab-cotisations') calculerCotisations();\n    }\n  });\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u5931\u4e1a\u4fdd\u9669\u8ba1\u7b97\u5668 2026 \u2013 \u798f\u5229\u91d1\u4e0e\u7f34\u6b3e 2026\u5e74\u5b98\u65b9\u6570\u636e \u4f30\u7b97\u60a8&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-900933","post","type-post","status-publish","format-standard","hentry","category-zh"],"_links":{"self":[{"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/posts\/900933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/comments?post=900933"}],"version-history":[{"count":0,"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/posts\/900933\/revisions"}],"wp:attachment":[{"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/media?parent=900933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/categories?post=900933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/truenorthtaxes.ca\/zh\/wp-json\/wp\/v2\/tags?post=900933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}