{"id":5890,"date":"2025-11-17T08:17:35","date_gmt":"2025-11-17T13:17:35","guid":{"rendered":"https:\/\/inversionesguru.com\/co\/?post_type=herramientas&#038;p=5890"},"modified":"2026-08-09T18:25:08","modified_gmt":"2026-08-09T23:25:08","slug":"calculadora-salarial","status":"publish","type":"herramientas","link":"https:\/\/inversionesguru.com\/co\/herramientas\/calculadora-salarial\/","title":{"rendered":"Calculadora Salarial 2026"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5890\" class=\"elementor elementor-5890\" data-elementor-post-type=\"herramientas\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7be2195 e-con-full e-flex e-con e-parent\" data-id=\"7be2195\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-156472f elementor-widget elementor-widget-html\" data-id=\"156472f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  #ig-salary-calculator {\r\n    --ig-ink: #17332f;\r\n    --ig-ink-2: #24443e;\r\n    --ig-muted: #5b6f68;\r\n    --ig-muted-2: #789088;\r\n    --ig-bg-a: #effbf6;\r\n    --ig-bg-b: #fff3ec;\r\n    --ig-panel: #ffffff;\r\n    --ig-panel-soft: rgba(255, 255, 255, 0.84);\r\n    --ig-line: rgba(23, 51, 47, 0.14);\r\n    --ig-line-strong: rgba(23, 51, 47, 0.26);\r\n    --ig-accent: #0f9f7a;\r\n    --ig-accent-dark: #08755d;\r\n    --ig-coral: #ef6a4a;\r\n    --ig-coral-dark: #c84f34;\r\n    --ig-green-soft: #dff8ed;\r\n    --ig-coral-soft: #ffe2d7;\r\n    --ig-warning-soft: #fff7df;\r\n    --ig-danger-soft: #ffe5e1;\r\n    --ig-shadow: 0 24px 54px rgba(23, 51, 47, 0.12);\r\n    --ig-shadow-soft: 0 14px 34px rgba(23, 51, 47, 0.08);\r\n    --ig-radius: 8px;\r\n    display: block;\r\n    width: 100%;\r\n    overflow: hidden;\r\n    color: var(--ig-ink);\r\n    background:\r\n      linear-gradient(90deg, rgba(15, 159, 122, 0.06) 1px, transparent 1px),\r\n      linear-gradient(180deg, rgba(23, 51, 47, 0.045) 1px, transparent 1px),\r\n      var(--ig-bg-a);\r\n    background-size: 56px 56px, 56px 56px, auto;\r\n    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n    line-height: 1.5;\r\n    -webkit-font-smoothing: antialiased;\r\n    text-rendering: optimizeLegibility;\r\n  }\r\n\r\n  #ig-salary-calculator *,\r\n  #ig-salary-calculator *::before,\r\n  #ig-salary-calculator *::after {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  #ig-salary-calculator :where(h1, h2, h3, h4, p, ul, li, figure, blockquote) {\r\n    margin: 0;\r\n    padding: 0;\r\n  }\r\n\r\n  #ig-salary-calculator :where(h1, h2, h3, h4, p, span, a, strong, label, th, td, button) {\r\n    overflow-wrap: break-word;\r\n  }\r\n\r\n  #ig-salary-calculator a {\r\n    color: inherit;\r\n    text-decoration: none;\r\n  }\r\n\r\n  #ig-salary-calculator button,\r\n  #ig-salary-calculator input,\r\n  #ig-salary-calculator select {\r\n    font: inherit;\r\n    -webkit-tap-highlight-color: transparent;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-wrap {\r\n    width: min(1180px, calc(100% - 32px));\r\n    margin: 0 auto;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-section {\r\n    padding: 34px 0;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-hero {\r\n    padding: 58px 0 26px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-hero-grid {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 1.02fr) minmax(330px, 0.68fr);\r\n    gap: 24px;\r\n    align-items: stretch;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-eyebrow,\r\n  #ig-salary-calculator .ig-pill {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    width: fit-content;\r\n    min-height: 32px;\r\n    padding: 6px 10px;\r\n    border: 1px solid rgba(15, 159, 122, 0.24);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.72);\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-pill.is-coral {\r\n    border-color: rgba(239, 106, 74, 0.26);\r\n    background: var(--ig-coral-soft);\r\n    color: var(--ig-coral-dark);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-icon {\r\n    width: 18px;\r\n    height: 18px;\r\n    flex: 0 0 auto;\r\n    stroke-width: 2.2;\r\n  }\r\n\r\n  #ig-salary-calculator h1 {\r\n    max-width: 820px;\r\n    margin-top: 16px;\r\n    color: var(--ig-ink);\r\n    font-size: clamp(34px, 5.2vw, 62px);\r\n    line-height: 1.03;\r\n    font-weight: 930;\r\n    letter-spacing: -0.03em;\r\n  }\r\n\r\n  #ig-salary-calculator h1 span {\r\n    color: var(--ig-coral-dark);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-hero-copy {\r\n    padding: 28px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.74);\r\n    box-shadow: var(--ig-shadow-soft);\r\n    backdrop-filter: blur(14px);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-hero-text {\r\n    max-width: 760px;\r\n    margin-top: 18px;\r\n    color: var(--ig-muted);\r\n    font-size: 18px;\r\n    line-height: 1.72;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-trust-row {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: 10px;\r\n    margin-top: 24px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-trust {\r\n    min-height: 72px;\r\n    padding: 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.76);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-trust strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    line-height: 1.25;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-trust span {\r\n    display: block;\r\n    margin-top: 4px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-card {\r\n    display: grid;\r\n    gap: 14px;\r\n    min-height: 100%;\r\n    padding: 18px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.88);\r\n    box-shadow: var(--ig-shadow);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-head {\r\n    display: flex;\r\n    align-items: flex-start;\r\n    justify-content: space-between;\r\n    gap: 12px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-head strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 15px;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-head span {\r\n    display: block;\r\n    margin-top: 4px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-status {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 7px;\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-dot {\r\n    width: 8px;\r\n    height: 8px;\r\n    border-radius: 999px;\r\n    background: var(--ig-accent);\r\n    box-shadow: 0 0 0 6px rgba(15, 159, 122, 0.14);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    gap: 10px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-tile {\r\n    min-height: 108px;\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-tile small {\r\n    display: block;\r\n    color: var(--ig-muted);\r\n    font-size: 11px;\r\n    font-weight: 800;\r\n    text-transform: uppercase;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-tile strong {\r\n    display: block;\r\n    margin-top: 8px;\r\n    color: var(--ig-ink);\r\n    font-size: 24px;\r\n    line-height: 1.05;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-law-tile span {\r\n    display: block;\r\n    margin-top: 6px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-app {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 0.76fr) minmax(320px, 0.34fr);\r\n    gap: 18px;\r\n    align-items: start;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel,\r\n  #ig-salary-calculator .ig-side-panel,\r\n  #ig-salary-calculator .ig-card {\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.92);\r\n    box-shadow: var(--ig-shadow-soft);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel {\r\n    overflow: hidden;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel-head {\r\n    padding: 18px;\r\n    border-bottom: 1px solid var(--ig-line);\r\n    background:\r\n      linear-gradient(135deg, rgba(239, 106, 74, 0.13), transparent 40%),\r\n      var(--ig-ink);\r\n    color: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel-head h2 {\r\n    color: #ffffff;\r\n    font-size: 26px;\r\n    line-height: 1.18;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel-head p {\r\n    max-width: 760px;\r\n    margin-top: 8px;\r\n    color: rgba(255, 255, 255, 0.76);\r\n    font-size: 14px;\r\n    line-height: 1.65;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-progress {\r\n    display: grid;\r\n    grid-template-columns: repeat(5, minmax(0, 1fr));\r\n    gap: 8px;\r\n    padding: 16px 18px 0;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-tab {\r\n    display: grid;\r\n    gap: 6px;\r\n    align-content: start;\r\n    min-height: 62px;\r\n    padding: 10px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n    color: var(--ig-muted);\r\n    cursor: pointer;\r\n    text-align: left;\r\n    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-tab:hover {\r\n    transform: translateY(-2px);\r\n    border-color: var(--ig-line-strong);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-tab.is-active {\r\n    border-color: rgba(15, 159, 122, 0.42);\r\n    background: var(--ig-green-soft);\r\n    color: var(--ig-accent-dark);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-tab b {\r\n    color: var(--ig-ink);\r\n    font-size: 12px;\r\n    line-height: 1.2;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-tab span {\r\n    font-size: 11px;\r\n    line-height: 1.25;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step {\r\n    display: none;\r\n    padding: 22px;\r\n    animation: ig-rise 320ms ease both;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step.is-active {\r\n    display: block;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step h3 {\r\n    color: var(--ig-ink);\r\n    font-size: 24px;\r\n    line-height: 1.16;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step-copy {\r\n    max-width: 760px;\r\n    margin-top: 8px;\r\n    color: var(--ig-muted);\r\n    font-size: 14px;\r\n    line-height: 1.65;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-form-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    gap: 14px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-form-grid.three {\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n  }\r\n\r\n  #ig-salary-calculator .ig-field {\r\n    display: grid;\r\n    gap: 7px;\r\n    min-width: 0;\r\n  }\r\n\r\n  #ig-salary-calculator label {\r\n    color: var(--ig-ink-2);\r\n    font-size: 13px;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-help {\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  #ig-salary-calculator :where(input, select) {\r\n    width: 100%;\r\n    min-height: 50px;\r\n    padding: 12px 13px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    outline: 0;\r\n    background: #ffffff;\r\n    color: var(--ig-ink);\r\n    transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;\r\n  }\r\n\r\n  #ig-salary-calculator :where(input, select):focus {\r\n    border-color: var(--ig-accent);\r\n    box-shadow: 0 0 0 4px rgba(15, 159, 122, 0.14);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-options {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    gap: 10px;\r\n    margin-top: 12px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option {\r\n    position: relative;\r\n    display: block;\r\n    width: 100%;\r\n    min-width: 0;\r\n    cursor: pointer;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option input[type=\"radio\"] {\r\n    position: absolute !important;\r\n    width: 1px !important;\r\n    height: 1px !important;\r\n    min-height: 0 !important;\r\n    margin: 0 !important;\r\n    padding: 0 !important;\r\n    border: 0 !important;\r\n    opacity: 0 !important;\r\n    overflow: hidden !important;\r\n    clip: rect(0 0 0 0) !important;\r\n    clip-path: inset(50%) !important;\r\n    appearance: none !important;\r\n    pointer-events: none !important;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option-body {\r\n    display: block;\r\n    width: 100%;\r\n    min-height: 86px;\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option:hover .ig-option-body {\r\n    transform: translateY(-2px);\r\n    border-color: var(--ig-line-strong);\r\n    box-shadow: 0 8px 20px rgba(23, 51, 47, 0.08);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option input:checked + .ig-option-body {\r\n    border-color: rgba(15, 159, 122, 0.42);\r\n    background: var(--ig-green-soft);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option input:focus-visible + .ig-option-body {\r\n    border-color: var(--ig-accent);\r\n    box-shadow: 0 0 0 4px rgba(15, 159, 122, 0.14);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option-body strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 14px;\r\n    line-height: 1.25;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-option-body span {\r\n    display: block;\r\n    margin-top: 5px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.4;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-mini-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: 10px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-mini {\r\n    min-height: 86px;\r\n    padding: 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-mini small {\r\n    display: block;\r\n    color: var(--ig-muted);\r\n    font-size: 11px;\r\n    font-weight: 850;\r\n    text-transform: uppercase;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-mini strong {\r\n    display: block;\r\n    margin-top: 8px;\r\n    color: var(--ig-ink);\r\n    font-size: 18px;\r\n    line-height: 1.1;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 10px;\r\n    justify-content: space-between;\r\n    margin-top: 22px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-actions-right {\r\n    margin-left: auto;\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 10px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 9px;\r\n    min-height: 50px;\r\n    padding: 12px 16px;\r\n    border: 1px solid transparent;\r\n    border-radius: var(--ig-radius);\r\n    cursor: pointer;\r\n    background: var(--ig-ink);\r\n    color: #ffffff;\r\n    font-size: 14px;\r\n    font-weight: 850;\r\n    transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn:hover {\r\n    transform: translateY(-2px);\r\n    background: var(--ig-accent-dark);\r\n    box-shadow: 0 12px 22px rgba(23, 51, 47, 0.16);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn.secondary {\r\n    border-color: var(--ig-line);\r\n    background: #ffffff;\r\n    color: var(--ig-ink);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn.secondary:hover {\r\n    border-color: var(--ig-line-strong);\r\n    background: var(--ig-bg-a);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn.coral {\r\n    background: var(--ig-coral);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn.coral:hover {\r\n    background: var(--ig-coral-dark);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-btn:disabled {\r\n    cursor: not-allowed;\r\n    opacity: 0.56;\r\n    transform: none;\r\n    box-shadow: none;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-side-panel {\r\n    position: sticky;\r\n    top: 18px;\r\n    padding: 18px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-side-panel h3 {\r\n    color: var(--ig-ink);\r\n    font-size: 18px;\r\n    line-height: 1.2;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-side-panel p {\r\n    margin-top: 8px;\r\n    color: var(--ig-muted);\r\n    font-size: 13px;\r\n    line-height: 1.58;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-preview-list {\r\n    display: grid;\r\n    gap: 8px;\r\n    margin-top: 16px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-preview-row {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 1fr) auto;\r\n    gap: 10px;\r\n    align-items: center;\r\n    min-height: 42px;\r\n    padding: 10px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-preview-row span {\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.25;\r\n    font-weight: 750;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-preview-row strong {\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    line-height: 1.25;\r\n    font-weight: 900;\r\n    text-align: right;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-note {\r\n    margin-top: 14px;\r\n    padding: 12px;\r\n    border: 1px solid rgba(239, 106, 74, 0.22);\r\n    border-left: 4px solid var(--ig-coral);\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-bg-b);\r\n    color: var(--ig-ink-2);\r\n    font-size: 12px;\r\n    line-height: 1.55;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-switch-row {\r\n    display: flex;\r\n    gap: 10px;\r\n    align-items: flex-start;\r\n    margin-top: 16px;\r\n    padding: 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-switch-row input {\r\n    width: 18px;\r\n    height: 18px;\r\n    min-height: 18px;\r\n    flex: 0 0 auto;\r\n    margin-top: 2px;\r\n    accent-color: var(--ig-accent);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-switch-row strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-switch-row span {\r\n    display: block;\r\n    margin-top: 4px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-error {\r\n    display: none;\r\n    margin-top: 14px;\r\n    padding: 12px;\r\n    border: 1px solid rgba(180, 35, 24, 0.24);\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-danger-soft);\r\n    color: #b42318;\r\n    font-size: 13px;\r\n    line-height: 1.45;\r\n    font-weight: 800;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-error.is-visible {\r\n    display: block;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-results {\r\n    display: none;\r\n    animation: ig-rise 360ms ease both;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-results.is-visible {\r\n    display: block;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-result-hero {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 1fr) auto;\r\n    gap: 18px;\r\n    align-items: end;\r\n    margin-top: 18px;\r\n    padding: 22px;\r\n    border-radius: var(--ig-radius);\r\n    background:\r\n      linear-gradient(135deg, rgba(239, 106, 74, 0.16), transparent 44%),\r\n      var(--ig-ink);\r\n    color: #ffffff;\r\n    box-shadow: 0 22px 48px rgba(23, 51, 47, 0.22);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-result-hero small {\r\n    color: rgba(255, 255, 255, 0.72);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n    text-transform: uppercase;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-result-hero strong {\r\n    display: block;\r\n    margin-top: 6px;\r\n    color: #ffffff;\r\n    font-size: clamp(30px, 5vw, 50px);\r\n    line-height: 1.04;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-result-hero span {\r\n    color: rgba(255, 255, 255, 0.76);\r\n    font-size: 13px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(4, minmax(0, 1fr));\r\n    gap: 10px;\r\n    margin-top: 12px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi {\r\n    min-height: 118px;\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi small {\r\n    display: block;\r\n    color: var(--ig-muted);\r\n    font-size: 11px;\r\n    line-height: 1.2;\r\n    font-weight: 850;\r\n    text-transform: uppercase;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi strong {\r\n    display: block;\r\n    margin-top: 9px;\r\n    color: var(--ig-ink);\r\n    font-size: 21px;\r\n    line-height: 1.08;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi span {\r\n    display: block;\r\n    margin-top: 6px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi.good {\r\n    border-left: 4px solid var(--ig-accent);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-kpi.warn {\r\n    border-left: 4px solid var(--ig-coral);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-table-wrap {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n    margin-top: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator table {\r\n    width: 100%;\r\n    min-width: 660px;\r\n    border-collapse: collapse;\r\n    font-variant-numeric: tabular-nums;\r\n  }\r\n\r\n  #ig-salary-calculator th {\r\n    padding: 11px 12px;\r\n    background: var(--ig-ink);\r\n    color: #ffffff;\r\n    font-size: 11px;\r\n    line-height: 1.25;\r\n    font-weight: 850;\r\n    text-align: left;\r\n    text-transform: uppercase;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  #ig-salary-calculator td {\r\n    padding: 11px 12px;\r\n    border-bottom: 1px solid var(--ig-line);\r\n    color: var(--ig-ink-2);\r\n    font-size: 13px;\r\n    vertical-align: middle;\r\n  }\r\n\r\n  #ig-salary-calculator td.amount,\r\n  #ig-salary-calculator th.amount {\r\n    text-align: right;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  #ig-salary-calculator tbody tr:nth-child(even) {\r\n    background: rgba(239, 251, 246, 0.7);\r\n  }\r\n\r\n  #ig-salary-calculator tbody tr:last-child td {\r\n    border-bottom: 0;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-table-title {\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: space-between;\r\n    gap: 12px;\r\n    margin-top: 20px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-table-title h4 {\r\n    color: var(--ig-ink);\r\n    font-size: 18px;\r\n    line-height: 1.2;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-total-row td {\r\n    background: var(--ig-bg-b);\r\n    color: var(--ig-ink);\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-net-row td {\r\n    background: var(--ig-ink);\r\n    color: #ffffff;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-negative {\r\n    color: #b42318 !important;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-positive {\r\n    color: var(--ig-accent-dark) !important;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-pdf-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 10px;\r\n    margin-top: 18px;\r\n    padding: 14px;\r\n    border: 1px solid rgba(239, 106, 74, 0.22);\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-bg-b);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-pdf-status {\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    font-weight: 750;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-toast {\r\n    display: none;\r\n    margin-top: 10px;\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n    text-align: center;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-toast.is-visible {\r\n    display: block;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-source-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0, 1fr));\r\n    gap: 10px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-source-card {\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255, 255, 255, 0.88);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-source-card strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-source-card span {\r\n    display: block;\r\n    margin-top: 5px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-source-card a {\r\n    display: inline-flex;\r\n    margin-top: 8px;\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n    text-decoration: underline;\r\n    text-underline-offset: 3px;\r\n  }\r\n\r\n  #ig-salary-calculator footer {\r\n    padding: 20px 0 34px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.6;\r\n    text-align: center;\r\n  }\r\n\r\n  @keyframes ig-rise {\r\n    from { opacity: 0; transform: translateY(12px); }\r\n    to { opacity: 1; transform: translateY(0); }\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    #ig-salary-calculator *,\r\n    #ig-salary-calculator *::before,\r\n    #ig-salary-calculator *::after {\r\n      animation-duration: 1ms !important;\r\n      animation-iteration-count: 1 !important;\r\n      transition-duration: 1ms !important;\r\n      scroll-behavior: auto !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 1040px) {\r\n    #ig-salary-calculator .ig-hero-grid,\r\n    #ig-salary-calculator .ig-app {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-side-panel {\r\n      position: relative;\r\n      top: auto;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-kpi-grid {\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    }\r\n\r\n    #ig-salary-calculator .ig-source-grid {\r\n      grid-template-columns: repeat(2, minmax(0, 1fr));\r\n    }\r\n  }\r\n\r\n  @media (max-width: 780px) {\r\n    #ig-salary-calculator .ig-wrap {\r\n      width: min(100% - 22px, 1180px);\r\n    }\r\n\r\n    #ig-salary-calculator .ig-hero {\r\n      padding: 34px 0 18px;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-hero-copy,\r\n    #ig-salary-calculator .ig-step,\r\n    #ig-salary-calculator .ig-panel-head,\r\n    #ig-salary-calculator .ig-side-panel {\r\n      padding: 18px;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-trust-row,\r\n    #ig-salary-calculator .ig-law-grid,\r\n    #ig-salary-calculator .ig-form-grid,\r\n    #ig-salary-calculator .ig-form-grid.three,\r\n    #ig-salary-calculator .ig-options,\r\n    #ig-salary-calculator .ig-mini-grid,\r\n    #ig-salary-calculator .ig-kpi-grid,\r\n    #ig-salary-calculator .ig-source-grid {\r\n      grid-template-columns: 1fr;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-progress {\r\n      display: flex;\r\n      overflow-x: auto;\r\n      padding: 14px 14px 0;\r\n      scroll-snap-type: x mandatory;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-step-tab {\r\n      min-width: 160px;\r\n      scroll-snap-align: start;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-actions,\r\n    #ig-salary-calculator .ig-actions-right {\r\n      display: grid;\r\n      grid-template-columns: 1fr;\r\n      width: 100%;\r\n      margin-left: 0;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-btn {\r\n      width: 100%;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-result-hero {\r\n      grid-template-columns: 1fr;\r\n      align-items: start;\r\n      padding: 18px;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-pdf-actions {\r\n      align-items: stretch;\r\n      flex-direction: column;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-pdf-status {\r\n      text-align: center;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 560px) {\r\n    #ig-salary-calculator table {\r\n      min-width: 0;\r\n    }\r\n\r\n    #ig-salary-calculator thead {\r\n      display: none;\r\n    }\r\n\r\n    #ig-salary-calculator tr {\r\n      display: grid;\r\n      gap: 0;\r\n      padding: 10px 0;\r\n      border-bottom: 1px solid var(--ig-line);\r\n    }\r\n\r\n    #ig-salary-calculator td {\r\n      display: grid;\r\n      grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);\r\n      gap: 10px;\r\n      padding: 8px 12px;\r\n      border: 0;\r\n      font-size: 13px;\r\n    }\r\n\r\n    #ig-salary-calculator td::before {\r\n      content: attr(data-label);\r\n      color: var(--ig-muted);\r\n      font-size: 11px;\r\n      font-weight: 850;\r\n      text-transform: uppercase;\r\n    }\r\n\r\n    #ig-salary-calculator td.amount {\r\n      text-align: left;\r\n      white-space: normal;\r\n    }\r\n\r\n    #ig-salary-calculator .ig-table-wrap {\r\n      overflow-x: visible;\r\n    }\r\n  }\r\n\r\n\r\n  #ig-salary-calculator .ig-hidden { display: none !important; }\r\n\r\n  #ig-salary-calculator .ig-context-box {\r\n    margin-top: 14px;\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-left: 4px solid var(--ig-accent);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(239, 251, 246, 0.78);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-context-box.is-coral {\r\n    border-left-color: var(--ig-coral);\r\n    background: var(--ig-bg-b);\r\n  }\r\n\r\n  #ig-salary-calculator .ig-context-box strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-context-box p {\r\n    margin-top: 5px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  #ig-salary-calculator :where(input, select):disabled {\r\n    cursor: not-allowed;\r\n    opacity: 0.62;\r\n    background: #f1f5f3;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-inline-status {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 7px;\r\n    margin-top: 8px;\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-employer-box {\r\n    margin-top: 14px;\r\n    padding: 14px;\r\n    border: 1px dashed var(--ig-line-strong);\r\n    border-radius: var(--ig-radius);\r\n    background: #ffffff;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-employer-box strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-employer-box span {\r\n    display: block;\r\n    margin-top: 5px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.5;\r\n  }\r\n\r\n\r\n  \/* =========================================================\r\n     V3 \u2014 UX GUIADA, JERARQU\u00cdA VISUAL Y RESPONSIVE\r\n     Capa final de dise\u00f1o. No altera la l\u00f3gica de c\u00e1lculo.\r\n     ========================================================= *\/\r\n\r\n  #ig-salary-calculator [hidden] { display: none !important; }\r\n\r\n  #ig-salary-calculator {\r\n    --ig-guide: #2f5fc3;\r\n    --ig-guide-dark: #21479a;\r\n    --ig-guide-soft: #edf3ff;\r\n    --ig-sand: #fff7e8;\r\n    --ig-neutral: #f7faf9;\r\n    --ig-radius: 14px;\r\n    --ig-radius-lg: 22px;\r\n    background:\r\n      radial-gradient(circle at 8% 4%, rgba(15,159,122,.08), transparent 27%),\r\n      radial-gradient(circle at 94% 9%, rgba(47,95,195,.06), transparent 23%),\r\n      #f4faf7;\r\n    background-size: auto;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-hero { padding: 54px 0 30px; }\r\n  #ig-salary-calculator .ig-hero-grid { gap: 22px; align-items: start; }\r\n  #ig-salary-calculator .ig-hero-copy {\r\n    padding: 34px;\r\n    border-radius: var(--ig-radius-lg);\r\n    background: #fff;\r\n    box-shadow: 0 18px 46px rgba(23,51,47,.08);\r\n    backdrop-filter: none;\r\n  }\r\n  #ig-salary-calculator h1 { margin-top: 0; max-width: 760px; }\r\n  #ig-salary-calculator h1 span { color: var(--ig-coral-dark); }\r\n  #ig-salary-calculator .ig-hero-text { max-width: 720px; margin-top: 18px; font-size: 17px; }\r\n  #ig-salary-calculator .ig-hero-text strong { color: var(--ig-ink); font-weight: 900; }\r\n\r\n  #ig-salary-calculator .ig-capabilities {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 9px 14px;\r\n    margin-top: 24px;\r\n    padding-top: 20px;\r\n    border-top: 1px solid var(--ig-line);\r\n  }\r\n  #ig-salary-calculator .ig-capabilities > span {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 7px;\r\n    color: var(--ig-ink-2);\r\n    font-size: 13px;\r\n    font-weight: 800;\r\n  }\r\n  #ig-salary-calculator .ig-capabilities i {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 22px;\r\n    height: 22px;\r\n    border-radius: 999px;\r\n    background: var(--ig-green-soft);\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    font-style: normal;\r\n    font-weight: 950;\r\n  }\r\n  #ig-salary-calculator .ig-hero-guidance {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 5px 8px;\r\n    margin-top: 18px;\r\n    padding: 13px 15px;\r\n    border-radius: 12px;\r\n    background: var(--ig-guide-soft);\r\n    color: #40516d;\r\n    font-size: 13px;\r\n  }\r\n  #ig-salary-calculator .ig-hero-guidance strong { color: var(--ig-guide-dark); font-weight: 900; }\r\n\r\n  #ig-salary-calculator .ig-law-card {\r\n    gap: 12px;\r\n    padding: 20px;\r\n    border-radius: var(--ig-radius-lg);\r\n    background: #fff;\r\n    box-shadow: 0 18px 46px rgba(23,51,47,.08);\r\n  }\r\n  #ig-salary-calculator .ig-law-head strong { font-size: 16px; }\r\n  #ig-salary-calculator .ig-law-tile { min-height: 102px; border-radius: 12px; background: var(--ig-neutral); }\r\n  #ig-salary-calculator .ig-law-tile:nth-child(1),\r\n  #ig-salary-calculator .ig-law-tile:nth-child(2) { background: var(--ig-sand); }\r\n  #ig-salary-calculator .ig-law-tile:nth-child(3),\r\n  #ig-salary-calculator .ig-law-tile:nth-child(4) { background: var(--ig-guide-soft); }\r\n  #ig-salary-calculator .ig-law-tile strong { font-size: 23px; }\r\n  #ig-salary-calculator .ig-law-card > .ig-note {\r\n    margin-top: 0;\r\n    border: 0;\r\n    border-left: 3px solid var(--ig-coral);\r\n    background: #fff8f4;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-panel,\r\n  #ig-salary-calculator .ig-side-panel,\r\n  #ig-salary-calculator .ig-card { border-radius: var(--ig-radius-lg); }\r\n  #ig-salary-calculator .ig-panel-head {\r\n    padding: 24px 24px 22px;\r\n    background: var(--ig-ink);\r\n  }\r\n  #ig-salary-calculator .ig-panel-kicker {\r\n    display: inline-block;\r\n    margin-bottom: 7px;\r\n    color: #9de2cf;\r\n    font-size: 11px;\r\n    font-weight: 900;\r\n    letter-spacing: .055em;\r\n    text-transform: uppercase;\r\n  }\r\n  #ig-salary-calculator .ig-panel-head h2 { font-size: clamp(24px,3vw,31px); }\r\n\r\n  #ig-salary-calculator .ig-progress-overview {\r\n    display: grid;\r\n    grid-template-columns: minmax(0,1fr) minmax(180px,260px);\r\n    gap: 18px;\r\n    align-items: center;\r\n    margin: 18px 18px 0;\r\n    padding: 16px 18px;\r\n    border: 1px solid rgba(47,95,195,.18);\r\n    border-radius: 14px;\r\n    background: var(--ig-guide-soft);\r\n  }\r\n  #ig-salary-calculator .ig-progress-copy { display: grid; gap: 3px; }\r\n  #ig-salary-calculator .ig-progress-kicker {\r\n    color: var(--ig-guide);\r\n    font-size: 11px;\r\n    font-weight: 950;\r\n    letter-spacing: .04em;\r\n    text-transform: uppercase;\r\n  }\r\n  #ig-salary-calculator .ig-progress-copy strong { color: var(--ig-ink); font-size: 16px; font-weight: 930; }\r\n  #ig-salary-calculator .ig-progress-copy > span:last-child { color: #586b7c; font-size: 12px; }\r\n  #ig-salary-calculator .ig-progress-meter {\r\n    height: 9px;\r\n    overflow: hidden;\r\n    border-radius: 999px;\r\n    background: rgba(47,95,195,.12);\r\n  }\r\n  #ig-salary-calculator .ig-progress-meter > span {\r\n    display: block;\r\n    height: 100%;\r\n    border-radius: inherit;\r\n    background: linear-gradient(90deg, var(--ig-guide), var(--ig-accent));\r\n    transition: width 260ms ease;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-progress {\r\n    position: relative;\r\n    gap: 10px;\r\n    padding: 14px 18px 2px;\r\n  }\r\n  #ig-salary-calculator .ig-step-tab {\r\n    position: relative;\r\n    display: grid;\r\n    grid-template-columns: 34px minmax(0,1fr);\r\n    gap: 9px;\r\n    align-items: center;\r\n    min-height: 72px;\r\n    padding: 10px 11px;\r\n    border: 1px solid #dce4e1;\r\n    border-radius: 12px;\r\n    background: #fff;\r\n    color: var(--ig-muted);\r\n    box-shadow: none;\r\n  }\r\n  #ig-salary-calculator .ig-step-index {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 34px;\r\n    height: 34px;\r\n    border-radius: 10px;\r\n    background: #f0f4f3;\r\n    color: #60756e;\r\n    font-size: 12px;\r\n    font-weight: 950;\r\n  }\r\n  #ig-salary-calculator .ig-step-label { display: grid; gap: 3px; min-width: 0; }\r\n  #ig-salary-calculator .ig-step-tab b { color: var(--ig-ink); font-size: 12px; }\r\n  #ig-salary-calculator .ig-step-tab .ig-step-label > span { color: var(--ig-muted); font-size: 10px; }\r\n  #ig-salary-calculator .ig-step-tab.is-active {\r\n    border: 2px solid var(--ig-guide);\r\n    background: #fff;\r\n    color: var(--ig-guide-dark);\r\n    box-shadow: 0 10px 24px rgba(47,95,195,.13);\r\n  }\r\n  #ig-salary-calculator .ig-step-tab.is-active .ig-step-index {\r\n    background: var(--ig-guide);\r\n    color: #fff;\r\n  }\r\n  #ig-salary-calculator .ig-step-tab.is-active b { color: var(--ig-guide-dark); }\r\n  #ig-salary-calculator .ig-step-tab.is-complete { border-color: rgba(15,159,122,.28); background: #f7fffb; }\r\n  #ig-salary-calculator .ig-step-tab.is-complete .ig-step-index { background: var(--ig-green-soft); color: var(--ig-accent-dark); }\r\n  #ig-salary-calculator .ig-step-tab.is-complete::after {\r\n    content: '\u2713';\r\n    position: absolute;\r\n    top: 6px;\r\n    right: 7px;\r\n    color: var(--ig-accent-dark);\r\n    font-size: 10px;\r\n    font-weight: 950;\r\n  }\r\n\r\n  #ig-salary-calculator .ig-step { padding: 26px 24px 24px; scroll-margin-top: 20px; }\r\n  #ig-salary-calculator .ig-step h3 { font-size: clamp(22px,3vw,27px); }\r\n  #ig-salary-calculator .ig-step-copy { max-width: 800px; font-size: 13.5px; }\r\n\r\n  #ig-salary-calculator :where(input, select) { border-radius: 11px; background: #fff; }\r\n  #ig-salary-calculator label { font-size: 13px; }\r\n  #ig-salary-calculator .ig-help { color: #687d76; }\r\n\r\n  #ig-salary-calculator .ig-option-body {\r\n    position: relative;\r\n    min-height: 92px;\r\n    padding: 15px 46px 15px 15px;\r\n    border-radius: 13px;\r\n    background: #fff;\r\n  }\r\n  #ig-salary-calculator .ig-option input:checked + .ig-option-body {\r\n    border: 2px solid var(--ig-guide);\r\n    background: var(--ig-guide-soft);\r\n    box-shadow: 0 10px 24px rgba(47,95,195,.10);\r\n  }\r\n  #ig-salary-calculator .ig-option input:checked + .ig-option-body::after {\r\n    content: '\u2713';\r\n    position: absolute;\r\n    top: 14px;\r\n    right: 14px;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 24px;\r\n    height: 24px;\r\n    border-radius: 999px;\r\n    background: var(--ig-guide);\r\n    color: #fff;\r\n    font-size: 12px;\r\n    font-weight: 950;\r\n  }\r\n  #ig-salary-calculator .ig-option input:checked + .ig-option-body strong { color: var(--ig-guide-dark); }\r\n  #ig-salary-calculator .ig-option:hover .ig-option-body { transform: none; border-color: rgba(47,95,195,.38); }\r\n\r\n  #ig-salary-calculator .ig-mini { border-radius: 12px; background: var(--ig-neutral); }\r\n  #ig-salary-calculator .ig-context-box { border-radius: 12px; }\r\n\r\n  #ig-salary-calculator .ig-btn { border-radius: 11px; }\r\n  #ig-salary-calculator .ig-btn:not(.secondary):not(.coral):not(.ig-btn-calculate) { background: var(--ig-guide); }\r\n  #ig-salary-calculator .ig-btn:not(.secondary):not(.coral):not(.ig-btn-calculate):hover { background: var(--ig-guide-dark); }\r\n  #ig-salary-calculator .ig-btn-calculate {\r\n    min-height: 54px;\r\n    padding-inline: 22px;\r\n    background: var(--ig-accent-dark);\r\n    box-shadow: 0 14px 28px rgba(8,117,93,.22);\r\n  }\r\n  #ig-salary-calculator .ig-btn-calculate:hover { background: #075f4d; }\r\n\r\n  #ig-salary-calculator .ig-side-panel {\r\n    position: sticky;\r\n    top: 18px;\r\n    padding: 20px;\r\n    border-radius: var(--ig-radius-lg);\r\n    background: #fff;\r\n  }\r\n  #ig-salary-calculator .ig-side-kicker {\r\n    color: var(--ig-guide);\r\n    font-size: 11px;\r\n    font-weight: 950;\r\n    letter-spacing: .045em;\r\n    text-transform: uppercase;\r\n  }\r\n  #ig-salary-calculator .ig-side-panel h3 { margin-top: 4px; font-size: 20px; }\r\n  #ig-salary-calculator .ig-side-goal,\r\n  #ig-salary-calculator .ig-side-net {\r\n    display: grid;\r\n    gap: 4px;\r\n    margin-top: 15px;\r\n    padding: 14px;\r\n    border-radius: 13px;\r\n  }\r\n  #ig-salary-calculator .ig-side-goal { background: var(--ig-guide-soft); border: 1px solid rgba(47,95,195,.16); }\r\n  #ig-salary-calculator .ig-side-net { background: var(--ig-ink); color: #fff; }\r\n  #ig-salary-calculator .ig-side-goal > span,\r\n  #ig-salary-calculator .ig-side-net > span { font-size: 11px; font-weight: 850; text-transform: uppercase; }\r\n  #ig-salary-calculator .ig-side-goal > span { color: var(--ig-guide); }\r\n  #ig-salary-calculator .ig-side-goal strong { color: var(--ig-ink); font-size: 17px; font-weight: 930; }\r\n  #ig-salary-calculator .ig-side-goal small { color: #607080; font-size: 11px; }\r\n  #ig-salary-calculator .ig-side-net > span { color: #a9ddce; }\r\n  #ig-salary-calculator .ig-side-net strong { color: #fff; font-size: 28px; font-weight: 950; letter-spacing: -.02em; }\r\n  #ig-salary-calculator .ig-side-net small { color: rgba(255,255,255,.72); font-size: 11px; }\r\n  #ig-salary-calculator .ig-preview-row { border-radius: 10px; background: var(--ig-neutral); border-color: #e1e8e5; }\r\n  #ig-salary-calculator .ig-preview-row:nth-child(2) { border-left: 3px solid var(--ig-guide); }\r\n\r\n  #ig-salary-calculator .ig-result-hero {\r\n    border-radius: 18px;\r\n    background: linear-gradient(135deg, rgba(15,159,122,.19), transparent 45%), var(--ig-ink);\r\n  }\r\n  #ig-salary-calculator .ig-result-hero > div { min-width: 0; }\r\n  #ig-salary-calculator .ig-result-hero strong { font-size: clamp(36px,5vw,56px); letter-spacing: -.025em; }\r\n  #ig-salary-calculator .ig-result-explainer { max-width: 650px; margin-top: 8px; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.5; }\r\n  #ig-salary-calculator .ig-kpi { border-radius: 12px; }\r\n  #ig-salary-calculator .ig-kpi:nth-child(3),\r\n  #ig-salary-calculator .ig-kpi:nth-child(4) { background: var(--ig-neutral); }\r\n\r\n  #ig-salary-calculator .ig-result-details,\r\n  #ig-salary-calculator .ig-sources-details {\r\n    margin-top: 18px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: 14px;\r\n    background: #fff;\r\n    overflow: hidden;\r\n  }\r\n  #ig-salary-calculator .ig-result-details > summary,\r\n  #ig-salary-calculator .ig-sources-details > summary {\r\n    position: relative;\r\n    display: grid;\r\n    gap: 3px;\r\n    padding: 16px 46px 16px 17px;\r\n    cursor: pointer;\r\n    list-style: none;\r\n    background: var(--ig-neutral);\r\n  }\r\n  #ig-salary-calculator .ig-result-details > summary::-webkit-details-marker,\r\n  #ig-salary-calculator .ig-sources-details > summary::-webkit-details-marker { display: none; }\r\n  #ig-salary-calculator .ig-result-details > summary::after,\r\n  #ig-salary-calculator .ig-sources-details > summary::after {\r\n    content: '+';\r\n    position: absolute;\r\n    right: 17px;\r\n    top: 50%;\r\n    transform: translateY(-50%);\r\n    color: var(--ig-guide);\r\n    font-size: 24px;\r\n    font-weight: 500;\r\n  }\r\n  #ig-salary-calculator .ig-result-details[open] > summary::after,\r\n  #ig-salary-calculator .ig-sources-details[open] > summary::after { content: '\u2212'; }\r\n  #ig-salary-calculator .ig-result-details > summary span,\r\n  #ig-salary-calculator .ig-sources-details > summary span { color: var(--ig-ink); font-size: 14px; font-weight: 900; }\r\n  #ig-salary-calculator .ig-result-details > summary small,\r\n  #ig-salary-calculator .ig-sources-details > summary small { color: var(--ig-muted); font-size: 11px; }\r\n  #ig-salary-calculator .ig-result-details #ig-result-tables { padding: 0 16px 16px; }\r\n  #ig-salary-calculator .ig-sources-details .ig-source-grid { margin: 0; padding: 14px; }\r\n  #ig-salary-calculator .ig-source-card { border-radius: 12px; background: var(--ig-neutral); }\r\n  #ig-salary-calculator .ig-source-card a { color: var(--ig-guide-dark); }\r\n\r\n  @media (max-width: 1040px) {\r\n    #ig-salary-calculator .ig-side-panel { order: -1; position: relative; top: auto; }\r\n  }\r\n\r\n  @media (max-width: 780px) {\r\n    #ig-salary-calculator .ig-wrap { width: min(100% - 20px,1180px); }\r\n    #ig-salary-calculator .ig-hero { padding: 26px 0 16px; }\r\n    #ig-salary-calculator .ig-hero-copy,\r\n    #ig-salary-calculator .ig-law-card { padding: 20px; }\r\n    #ig-salary-calculator h1 { font-size: clamp(36px,11vw,49px); line-height: 1.02; }\r\n    #ig-salary-calculator .ig-hero-text { font-size: 15.5px; line-height: 1.62; }\r\n    #ig-salary-calculator .ig-capabilities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }\r\n    #ig-salary-calculator .ig-capabilities > span { font-size: 12px; }\r\n    #ig-salary-calculator .ig-law-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }\r\n    #ig-salary-calculator .ig-law-tile { min-height: 96px; padding: 12px; }\r\n    #ig-salary-calculator .ig-law-tile strong { font-size: 20px; }\r\n\r\n    #ig-salary-calculator .ig-panel-head { padding: 21px 18px; }\r\n    #ig-salary-calculator .ig-progress-overview {\r\n      grid-template-columns: 1fr;\r\n      gap: 11px;\r\n      margin: 14px 14px 0;\r\n      padding: 14px;\r\n    }\r\n    #ig-salary-calculator .ig-progress { padding: 12px 14px 2px; gap: 8px; }\r\n    #ig-salary-calculator .ig-step-tab { min-width: 142px; min-height: 62px; grid-template-columns: 30px minmax(0,1fr); padding: 9px; }\r\n    #ig-salary-calculator .ig-step-index { width: 30px; height: 30px; border-radius: 9px; }\r\n    #ig-salary-calculator .ig-step { padding: 22px 18px; }\r\n    #ig-salary-calculator :where(input,select) { font-size: 16px; }\r\n    #ig-salary-calculator .ig-option-body { min-height: 82px; }\r\n    #ig-salary-calculator .ig-side-panel { display: none; }\r\n    #ig-salary-calculator .ig-result-hero strong { font-size: clamp(34px,10vw,46px); white-space: nowrap; }\r\n    #ig-salary-calculator .ig-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }\r\n    #ig-salary-calculator .ig-kpi { min-height: 104px; padding: 12px; }\r\n    #ig-salary-calculator .ig-kpi strong { font-size: 18px; }\r\n    #ig-salary-calculator .ig-source-grid { grid-template-columns: 1fr; }\r\n  }\r\n\r\n  @media (max-width: 460px) {\r\n    #ig-salary-calculator .ig-hero-copy,\r\n    #ig-salary-calculator .ig-law-card { padding: 17px; }\r\n    #ig-salary-calculator .ig-capabilities { grid-template-columns: 1fr; }\r\n    #ig-salary-calculator .ig-law-grid { grid-template-columns: 1fr 1fr !important; gap: 8px; }\r\n    #ig-salary-calculator .ig-law-tile { min-height: 91px; padding: 10px; }\r\n    #ig-salary-calculator .ig-law-tile small { font-size: 9.5px; }\r\n    #ig-salary-calculator .ig-law-tile strong { font-size: 18px; }\r\n    #ig-salary-calculator .ig-law-tile span { font-size: 10.5px; }\r\n    #ig-salary-calculator .ig-status { white-space: normal; text-align: right; }\r\n    #ig-salary-calculator .ig-step-tab { min-width: 126px; }\r\n    #ig-salary-calculator .ig-step-tab .ig-step-label > span { display: none; }\r\n    #ig-salary-calculator .ig-step-tab b { font-size: 11.5px; }\r\n    #ig-salary-calculator .ig-form-grid,\r\n    #ig-salary-calculator .ig-form-grid.three,\r\n    #ig-salary-calculator .ig-options { gap: 10px; }\r\n    #ig-salary-calculator .ig-result-hero { padding: 17px; }\r\n    #ig-salary-calculator .ig-result-hero strong { font-size: clamp(31px,9.5vw,40px); }\r\n    #ig-salary-calculator .ig-kpi small { font-size: 9.5px; }\r\n    #ig-salary-calculator .ig-kpi strong { font-size: 16px; }\r\n    #ig-salary-calculator .ig-kpi span { font-size: 10.5px; }\r\n  }\r\n\r\n<\/style>\r\n\r\n<div id=\"ig-salary-calculator\">\r\n  <section class=\"ig-section ig-hero\">\r\n    <div class=\"ig-wrap\">\r\n      <div class=\"ig-hero-grid\">\r\n        <div class=\"ig-hero-copy\">\r\n          <h1>Calculadora salarial Colombia <span>2026<\/span><\/h1>\r\n          <p class=\"ig-hero-text\">\r\n            Calcula tu <strong>salario neto estimado<\/strong> en Colombia y entiende cu\u00e1nto te descuentan por salud,\r\n            pensi\u00f3n y Fondo de Solidaridad, adem\u00e1s de auxilio, horas extra, recargos y trabajo por d\u00edas o semanas.\r\n          <\/p>\r\n          <div class=\"ig-capabilities\" aria-label=\"Qu\u00e9 puedes calcular\">\r\n            <span><i aria-hidden=\"true\">\u2713<\/i> Salario neto<\/span>\r\n            <span><i aria-hidden=\"true\">\u2713<\/i> Salud y pensi\u00f3n<\/span>\r\n            <span><i aria-hidden=\"true\">\u2713<\/i> Horas extra y recargos<\/span>\r\n            <span><i aria-hidden=\"true\">\u2713<\/i> Trabajo por d\u00edas<\/span>\r\n          <\/div>\r\n          <div class=\"ig-hero-guidance\">\r\n            <strong>Empieza con lo b\u00e1sico.<\/strong>\r\n            <span>Te guiaremos en 5 pasos y dejaremos los datos t\u00e9cnicos para el final.<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <aside class=\"ig-law-card\" aria-label=\"Resumen normativo vigente\">\r\n          <div class=\"ig-law-head\">\r\n            <div>\r\n              <strong>Datos vigentes para tu c\u00e1lculo<\/strong>\r\n              <span>La fecha que elijas ajusta autom\u00e1ticamente jornada y recargos de 2026.<\/span>\r\n            <\/div>\r\n            <span class=\"ig-status\"><span class=\"ig-dot\"><\/span> Revisado 09\/08\/2026<\/span>\r\n          <\/div>\r\n          <div class=\"ig-law-grid\">\r\n            <div class=\"ig-law-tile\"><small>SMMLV 2026<\/small><strong id=\"ig-law-smmlv\">$1.750.905<\/strong><span>Salario m\u00ednimo mensual sin auxilio.<\/span><\/div>\r\n            <div class=\"ig-law-tile\"><small>Auxilio 2026<\/small><strong id=\"ig-law-aux\">$249.095<\/strong><span>Transporte o conectividad cuando corresponda.<\/span><\/div>\r\n            <div class=\"ig-law-tile\"><small>Jornada legal<\/small><strong id=\"ig-law-hours\">42 h<\/strong><span id=\"ig-law-hours-note\">Desde el 15 de julio de 2026.<\/span><\/div>\r\n            <div class=\"ig-law-tile\"><small>Descanso obligatorio<\/small><strong id=\"ig-law-dom\">90%<\/strong><span id=\"ig-law-dom-note\">Desde el 1 de julio de 2026.<\/span><\/div>\r\n          <\/div>\r\n          <p class=\"ig-note\">\r\n            C\u00e1lculo educativo para trabajadores dependientes del sector privado sujetos al C\u00f3digo Sustantivo del Trabajo.\r\n            No aplica autom\u00e1ticamente a empleados p\u00fablicos, contratistas, aprendices, reg\u00edmenes especiales ni liquidaciones de prestaciones sociales.\r\n          <\/p>\r\n        <\/aside>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"ig-section\">\r\n    <div class=\"ig-wrap\">\r\n      <div class=\"ig-app\">\r\n        <main class=\"ig-panel\">\r\n          <div class=\"ig-panel-head\">\r\n            <span class=\"ig-panel-kicker\">Calcula sin perderte entre conceptos de n\u00f3mina<\/span>\r\n            <h2>Tu salario neto, explicado paso a paso<\/h2>\r\n            <p>Responde solo lo que aplica a tu caso. Al final ver\u00e1s primero cu\u00e1nto recibir\u00edas y despu\u00e9s, si quieres, el detalle t\u00e9cnico.<\/p>\r\n          <\/div>\r\n\r\n          <div class=\"ig-progress-overview\" aria-live=\"polite\">\r\n            <div class=\"ig-progress-copy\">\r\n              <span class=\"ig-progress-kicker\" id=\"ig-progress-kicker\">Paso 1 de 5<\/span>\r\n              <strong id=\"ig-progress-title\">Define tu contrato<\/strong>\r\n              <span id=\"ig-progress-help\">Fecha, tipo de vinculaci\u00f3n y salario base.<\/span>\r\n            <\/div>\r\n            <div class=\"ig-progress-meter\" role=\"progressbar\" aria-label=\"Progreso de la calculadora\" aria-valuemin=\"1\" aria-valuemax=\"5\" aria-valuenow=\"1\">\r\n              <span id=\"ig-progress-bar\" style=\"width:20%\"><\/span>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"ig-progress\" role=\"tablist\" aria-label=\"Pasos de la calculadora salarial\">\r\n            <button class=\"ig-step-tab is-active\" type=\"button\" data-step-target=\"1\" aria-label=\"Paso 1 de 5: Contrato\"><span class=\"ig-step-index\">1<\/span><span class=\"ig-step-label\"><b>Contrato<\/b><span>C\u00f3mo te pagan<\/span><\/span><\/button>\r\n            <button class=\"ig-step-tab\" type=\"button\" data-step-target=\"2\" aria-label=\"Paso 2 de 5: Periodo\"><span class=\"ig-step-index\">2<\/span><span class=\"ig-step-label\"><b>Periodo<\/b><span>D\u00edas y novedades<\/span><\/span><\/button>\r\n            <button class=\"ig-step-tab\" type=\"button\" data-step-target=\"3\" aria-label=\"Paso 3 de 5: Ingresos y descuentos\"><span class=\"ig-step-index\">3<\/span><span class=\"ig-step-label\"><b>Ingresos<\/b><span>Pagos y descuentos<\/span><\/span><\/button>\r\n            <button class=\"ig-step-tab\" type=\"button\" data-step-target=\"4\" aria-label=\"Paso 4 de 5: Horas extra y recargos\"><span class=\"ig-step-index\">4<\/span><span class=\"ig-step-label\"><b>Extras<\/b><span>Horas y recargos<\/span><\/span><\/button>\r\n            <button class=\"ig-step-tab\" type=\"button\" data-step-target=\"5\" aria-label=\"Paso 5 de 5: Resultado\"><span class=\"ig-step-index\">5<\/span><span class=\"ig-step-label\"><b>Resultado<\/b><span>Tu neto y detalle<\/span><\/span><\/button>\r\n          <\/div>\r\n\r\n          <form id=\"ig-salary-form\" novalidate>\r\n            <section class=\"ig-step is-active\" data-step=\"1\">\r\n              <h3>1. Cu\u00e9ntanos c\u00f3mo es tu contrato<\/h3>\r\n              <p class=\"ig-step-copy\">Empieza por la fecha, tu jornada y la forma en que recibes el salario. Con esto ajustamos las reglas que s\u00ed aplican a tu caso en 2026.<\/p>\r\n\r\n              <div class=\"ig-form-grid\">\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-period-date\">Fecha del periodo a liquidar<\/label>\r\n                  <input id=\"ig-period-date\" type=\"date\" min=\"2026-01-01\" max=\"2026-12-31\">\r\n                  <p class=\"ig-help\" id=\"ig-date-hint\">Selecciona una fecha de 2026.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\" id=\"ig-weekly-hours-field\">\r\n                  <label for=\"ig-weekly-hours\">Horas contractuales por semana<\/label>\r\n                  <input id=\"ig-weekly-hours\" type=\"number\" min=\"1\" max=\"60\" step=\"0.01\" value=\"42\" inputmode=\"decimal\">\r\n                  <p class=\"ig-help\" id=\"ig-hours-hint\">M\u00e1ximo legal calculado por fecha.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-options\" aria-label=\"Esquema de vinculaci\u00f3n\">\r\n                <label class=\"ig-option\">\r\n                  <input type=\"radio\" name=\"employmentScheme\" value=\"ordinary\" checked>\r\n                  <span class=\"ig-option-body\"><strong>N\u00f3mina ordinaria mensual<\/strong><span>Trabaja el mes completo o se liquida una quincena dentro de una relaci\u00f3n laboral ordinaria.<\/span><\/span>\r\n                <\/label>\r\n                <label class=\"ig-option\">\r\n                  <input type=\"radio\" name=\"employmentScheme\" value=\"partial\">\r\n                  <span class=\"ig-option-body\"><strong>Tiempo parcial \/ por d\u00edas<\/strong><span>Trabaja menos de 30 d\u00edas en el mes y recibe una remuneraci\u00f3n salarial mensual inferior a 1 SMMLV.<\/span><\/span>\r\n                <\/label>\r\n              <\/div>\r\n\r\n              <div id=\"ig-ordinary-salary-options\">\r\n                <div class=\"ig-options\" aria-label=\"Tipo de salario base\">\r\n                  <label class=\"ig-option\">\r\n                    <input type=\"radio\" name=\"salaryMode\" value=\"minimum\" checked>\r\n                    <span class=\"ig-option-body\"><strong>Salario m\u00ednimo completo<\/strong><span>Usa el SMMLV completo. La reducci\u00f3n legal de la jornada no disminuye el salario.<\/span><\/span>\r\n                  <\/label>\r\n                  <label class=\"ig-option\">\r\n                    <input type=\"radio\" name=\"salaryMode\" value=\"manual\">\r\n                    <span class=\"ig-option-body\"><strong>Salario personalizado<\/strong><span>Ingresa el salario base mensual pactado en el contrato.<\/span><\/span>\r\n                  <\/label>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-form-grid\" id=\"ig-manual-salary-wrap\" style=\"display:none;\">\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-base-salary\" id=\"ig-base-salary-label\">Salario base mensual<\/label>\r\n                  <input id=\"ig-base-salary\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" placeholder=\"Ej: 2.500.000\">\r\n                  <p class=\"ig-help\" id=\"ig-base-salary-help\">Valor mensual contractual antes de auxilios.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\" id=\"ig-salary-type-field\">\r\n                  <label for=\"ig-integral\">Tipo de salario<\/label>\r\n                  <select id=\"ig-integral\">\r\n                    <option value=\"ordinary\">Salario ordinario<\/option>\r\n                    <option value=\"integral\">Salario integral (IBC base 70%)<\/option>\r\n                  <\/select>\r\n                  <p class=\"ig-help\">El salario integral debe estar pactado por escrito y ser al menos 13 SMMLV.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-form-grid\">\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-aux-type\">\u00bfQu\u00e9 auxilio quieres considerar?<\/label>\r\n                  <select id=\"ig-aux-type\">\r\n                    <option value=\"transport\">Auxilio de transporte<\/option>\r\n                    <option value=\"connectivity\">Auxilio de conectividad (sustitutivo)<\/option>\r\n                    <option value=\"none\">No aplicar auxilio<\/option>\r\n                  <\/select>\r\n                  <p class=\"ig-help\">La conectividad no nace autom\u00e1ticamente por trabajar remoto: selecci\u00f3nala solo cuando legal o contractualmente sustituye el transporte.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-apply-aux\">\u00bfLo aplicamos autom\u00e1ticamente?<\/label>\r\n                  <select id=\"ig-apply-aux\">\r\n                    <option value=\"yes\">Aplicar si cumple el tope<\/option>\r\n                    <option value=\"no\">No aplicar<\/option>\r\n                  <\/select>\r\n                  <p class=\"ig-help\">Se prorratea por d\u00edas reconocidos y no se incluye en el IBC.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-context-box\" id=\"ig-partial-scheme-note\" style=\"display:none;\">\r\n                <strong>Condiciones del esquema por semanas<\/strong>\r\n                <p>Solo procede para este v\u00ednculo si existe contrato laboral, se trabaja menos de 30 d\u00edas en el mes, la remuneraci\u00f3n salarial mensual de este contrato es inferior a 1 SMMLV y el trabajador ya tiene cobertura en salud como beneficiario o en el r\u00e9gimen subsidiado. Si existen varios contratos parciales, cada empleador realiza sus aportes de manera independiente seg\u00fan los d\u00edas laborados para \u00e9l.<\/p>\r\n              <\/div>\r\n\r\n              <div class=\"ig-mini-grid\">\r\n                <div class=\"ig-mini\"><small>Valor hora ordinaria<\/small><strong id=\"ig-preview-hour\">$0<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>Tope auxilio<\/small><strong id=\"ig-preview-aux-cap\">$3.501.810<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>Inicio noche<\/small><strong id=\"ig-preview-night\">7:00 p. m.<\/strong><\/div>\r\n              <\/div>\r\n\r\n              <p class=\"ig-error\" id=\"ig-error-1\"><\/p>\r\n              <div class=\"ig-actions\"><span><\/span><div class=\"ig-actions-right\"><button class=\"ig-btn\" type=\"button\" data-next=\"2\">Siguiente<\/button><\/div><\/div>\r\n            <\/section>\r\n\r\n            <section class=\"ig-step\" data-step=\"2\">\r\n              <h3>2. Define qu\u00e9 periodo quieres calcular<\/h3>\r\n              <p class=\"ig-step-copy\" id=\"ig-step-2-copy\">Indica si calculas el mes o una quincena y registra ausencias solo si realmente ocurrieron. Para n\u00f3mina ordinaria usamos mes comercial de 30 d\u00edas.<\/p>\r\n\r\n              <div id=\"ig-ordinary-period-fields\">\r\n                <div class=\"ig-options\" aria-label=\"Periodo de pago\">\r\n                  <label class=\"ig-option\">\r\n                    <input type=\"radio\" name=\"payPeriod\" value=\"monthly\" checked>\r\n                    <span class=\"ig-option-body\"><strong>Mensual<\/strong><span>Liquida 30 d\u00edas y eval\u00faa directamente las reglas mensuales.<\/span><\/span>\r\n                  <\/label>\r\n                  <label class=\"ig-option\">\r\n                    <input type=\"radio\" name=\"payPeriod\" value=\"biweekly\">\r\n                    <span class=\"ig-option-body\"><strong>Quincenal<\/strong><span>Liquida 15 d\u00edas y usa contexto mensual para FSP y pagos no salariales.<\/span><\/span>\r\n                  <\/label>\r\n                <\/div>\r\n\r\n                <div class=\"ig-form-grid three\">\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-unpaid-days\">Ausencias no remuneradas ordinarias<\/label>\r\n                    <input id=\"ig-unpaid-days\" type=\"number\" min=\"0\" step=\"1\" value=\"0\" inputmode=\"numeric\">\r\n                    <p class=\"ig-help\">D\u00edas sin salario que no corresponden a suspensi\u00f3n o licencia no remunerada.<\/p>\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-suspension-days\">Licencia no remunerada \/ suspensi\u00f3n<\/label>\r\n                    <input id=\"ig-suspension-days\" type=\"number\" min=\"0\" step=\"1\" value=\"0\" inputmode=\"numeric\">\r\n                    <p class=\"ig-help\">Reduce el salario del periodo. Los aportes patronales especiales durante la novedad no se descuentan al trabajador ni se modelan aqu\u00ed.<\/p>\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-unpaid-hours\">Horas no remuneradas adicionales<\/label>\r\n                    <input id=\"ig-unpaid-hours\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\">\r\n                    <p class=\"ig-help\">Horas sueltas fuera de los d\u00edas completos.<\/p>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div id=\"ig-partial-period-fields\" style=\"display:none;\">\r\n                <div class=\"ig-form-grid\">\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-partial-days\">D\u00edas efectivamente trabajados en el mes<\/label>\r\n                    <input id=\"ig-partial-days\" type=\"number\" min=\"1\" max=\"29\" step=\"1\" value=\"8\" inputmode=\"numeric\">\r\n                    <p class=\"ig-help\">1\u20137 d\u00edas: 1 semana; 8\u201314: 2; 15\u201321: 3; m\u00e1s de 21: 4.<\/p>\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-partial-health-coverage\">Cobertura actual en salud<\/label>\r\n                    <select id=\"ig-partial-health-coverage\">\r\n                      <option value=\"\">Selecciona una opci\u00f3n<\/option>\r\n                      <option value=\"subsidized\">R\u00e9gimen subsidiado<\/option>\r\n                      <option value=\"beneficiary\">Beneficiario del r\u00e9gimen contributivo<\/option>\r\n                      <option value=\"none\">No tiene cobertura v\u00e1lida<\/option>\r\n                    <\/select>\r\n                    <p class=\"ig-help\">Sin esta cobertura no debe usarse la exclusi\u00f3n de aportes a salud del esquema por semanas.<\/p>\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-arl-risk\">Clase de riesgo ARL<\/label>\r\n                    <select id=\"ig-arl-risk\">\r\n                      <option value=\"0.00522\">Riesgo I \u00b7 0,522%<\/option>\r\n                      <option value=\"0.01044\">Riesgo II \u00b7 1,044%<\/option>\r\n                      <option value=\"0.02436\">Riesgo III \u00b7 2,436%<\/option>\r\n                      <option value=\"0.04350\">Riesgo IV \u00b7 4,350%<\/option>\r\n                      <option value=\"0.06960\">Riesgo V \u00b7 6,960%<\/option>\r\n                    <\/select>\r\n                    <p class=\"ig-help\">La ARL y la caja son aportes del empleador; se muestran solo como referencia.<\/p>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-mini-grid\">\r\n                <div class=\"ig-mini\"><small>D\u00edas base \/ trabajados<\/small><strong id=\"ig-preview-days-base\">30<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>D\u00edas pagados<\/small><strong id=\"ig-preview-days-paid\">30<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>Descuento de tiempo<\/small><strong id=\"ig-preview-time-discount\">$0<\/strong><\/div>\r\n              <\/div>\r\n\r\n              <p class=\"ig-error\" id=\"ig-error-2\"><\/p>\r\n              <div class=\"ig-actions\"><button class=\"ig-btn secondary\" type=\"button\" data-prev=\"1\">Anterior<\/button><div class=\"ig-actions-right\"><button class=\"ig-btn\" type=\"button\" data-next=\"3\">Siguiente<\/button><\/div><\/div>\r\n            <\/section>\r\n\r\n            <section class=\"ig-step\" data-step=\"3\">\r\n              <h3>3. Agrega ingresos o descuentos adicionales<\/h3>\r\n              <p class=\"ig-step-copy\">Si no tienes comisiones, bonos, retenci\u00f3n u otros descuentos, puedes dejar estos valores en cero y continuar.<\/p>\r\n\r\n              <div class=\"ig-form-grid\">\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-salary-variable\">Otros pagos salariales del periodo<\/label>\r\n                  <input id=\"ig-salary-variable\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\" placeholder=\"Comisiones o bonificaciones salariales\">\r\n                  <p class=\"ig-help\">En salario integral, ingresa \u00fanicamente pagos salariales adicionales no cubiertos por el pacto integral.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-non-salary-variable\">Pagos no salariales del periodo<\/label>\r\n                  <input id=\"ig-non-salary-variable\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <p class=\"ig-help\">El pacto de no salarialidad no basta si el pago remunera directamente el servicio.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-manual-tax\">Retenci\u00f3n en la fuente \/ impuestos<\/label>\r\n                  <input id=\"ig-manual-tax\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <p class=\"ig-help\">La depuraci\u00f3n tributaria no se calcula autom\u00e1ticamente.<\/p>\r\n                <\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"ig-other-discounts\">Otros descuentos autorizados<\/label>\r\n                  <input id=\"ig-other-discounts\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <p class=\"ig-help\">Libranzas, pr\u00e9stamos, embargos u otros conceptos conocidos.<\/p>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <label class=\"ig-switch-row\" id=\"ig-40-limit-row\">\r\n                <input id=\"ig-apply-40-limit\" type=\"checkbox\" checked>\r\n                <span><strong>Aplicar regla mensual de pagos no salariales que exceden el 40%<\/strong><span>El exceso se agrega al IBC de salud y pensi\u00f3n. En quincena se distribuye proporcionalmente usando el contexto del resto del mes.<\/span><\/span>\r\n              <\/label>\r\n\r\n              <div class=\"ig-context-box\" id=\"ig-biweekly-context\" style=\"display:none;\">\r\n                <strong>Contexto de la otra quincena<\/strong>\r\n                <p>Estos datos permiten estimar el FSP y la regla mensual del 40%. Para el auxilio, el simulador usa el salario base mensual y las variables salariales informadas, sin contar horas extra, dominicales o festivos como causa autom\u00e1tica de p\u00e9rdida del beneficio.<\/p>\r\n                <div class=\"ig-form-grid three\">\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-other-half-ibc\">IBC de la otra quincena<\/label>\r\n                    <input id=\"ig-other-half-ibc\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-other-half-salary\">Pagos salariales de la otra quincena<\/label>\r\n                    <input id=\"ig-other-half-salary\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <\/div>\r\n                  <div class=\"ig-field\">\r\n                    <label for=\"ig-other-half-non-salary\">Pagos no salariales de la otra quincena<\/label>\r\n                    <input id=\"ig-other-half-non-salary\" class=\"ig-money\" type=\"text\" inputmode=\"decimal\" value=\"0\">\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <p class=\"ig-error\" id=\"ig-error-3\"><\/p>\r\n              <div class=\"ig-actions\"><button class=\"ig-btn secondary\" type=\"button\" data-prev=\"2\">Anterior<\/button><div class=\"ig-actions-right\"><button class=\"ig-btn\" type=\"button\" data-next=\"4\">Siguiente<\/button><\/div><\/div>\r\n            <\/section>\r\n\r\n            <section class=\"ig-step\" data-step=\"4\">\r\n              <h3>4. \u00bfTrabajaste horas extra, de noche o en descanso?<\/h3>\r\n              <p class=\"ig-step-copy\" id=\"ig-step-4-copy\">Si no tuviste horas adicionales, deja todo en cero. Si s\u00ed las tuviste, registra \u00fanicamente las horas que correspondan a cada concepto.<\/p>\r\n\r\n              <div id=\"ig-hours-fields\">\r\n                <div class=\"ig-form-grid three\">\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-rn\">Recargo nocturno ordinario<\/label><input id=\"ig-hours-rn\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">Adicional del 35%.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-ed\">Hora extra diurna<\/label><input id=\"ig-hours-ed\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">1,25 veces la hora ordinaria.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-en\">Hora extra nocturna<\/label><input id=\"ig-hours-en\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">1,75 veces la hora ordinaria.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-df-day\">Descanso obligatorio ordinario diurno<\/label><input id=\"ig-hours-df-day\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">Recargo adicional por domingo, festivo o d\u00eda pactado de descanso.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-df-night\">Descanso obligatorio ordinario nocturno<\/label><input id=\"ig-hours-df-night\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">Recargo de descanso + 35% nocturno.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-rest-days-count\">D\u00edas de descanso trabajados<\/label><input id=\"ig-rest-days-count\" type=\"number\" min=\"0\" step=\"1\" value=\"0\" inputmode=\"numeric\"><p class=\"ig-help\">Sirve para generar una alerta sobre habitualidad.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-eddf\">Extra diurna en descanso obligatorio<\/label><input id=\"ig-hours-eddf\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">Base + 25% extra + recargo de descanso.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-hours-endf\">Extra nocturna en descanso obligatorio<\/label><input id=\"ig-hours-endf\" type=\"number\" min=\"0\" step=\"0.01\" value=\"0\" inputmode=\"decimal\"><p class=\"ig-help\">Base + 75% extra + recargo de descanso.<\/p><\/div>\r\n                  <div class=\"ig-field\"><label for=\"ig-extra-days-count\">D\u00edas con horas extra<\/label><input id=\"ig-extra-days-count\" type=\"number\" min=\"0\" step=\"1\" value=\"0\" inputmode=\"numeric\"><p class=\"ig-help\">Ayuda a revisar el m\u00e1ximo ordinario de 2 horas extra por d\u00eda.<\/p><\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-context-box is-coral\" id=\"ig-hours-disabled-note\" style=\"display:none;\">\r\n                <strong>Recargos no calculados en este esquema<\/strong>\r\n                <p id=\"ig-hours-disabled-text\">El salario integral compensa anticipadamente recargos y trabajo suplementario, salvo acuerdos o pagos expresos adicionales que deben revisarse por separado.<\/p>\r\n              <\/div>\r\n\r\n              <div class=\"ig-mini-grid\">\r\n                <div class=\"ig-mini\"><small>Recargo aplicado<\/small><strong id=\"ig-preview-dom-rate\">90%<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>Extras semanales de referencia<\/small><strong>12 h<\/strong><\/div>\r\n                <div class=\"ig-mini\"><small>Extras diarias de referencia<\/small><strong>2 h<\/strong><\/div>\r\n              <\/div>\r\n\r\n              <p class=\"ig-error\" id=\"ig-error-4\"><\/p>\r\n              <div class=\"ig-actions\"><button class=\"ig-btn secondary\" type=\"button\" data-prev=\"3\">Anterior<\/button><div class=\"ig-actions-right\"><button class=\"ig-btn ig-btn-calculate\" type=\"button\" id=\"ig-calculate\">Calcular salario neto<\/button><\/div><\/div>\r\n            <\/section>\r\n\r\n            <section class=\"ig-step\" data-step=\"5\">\r\n              <h3>5. Este es tu salario neto estimado<\/h3>\r\n              <p class=\"ig-step-copy\">Primero te mostramos cu\u00e1nto recibir\u00edas aproximadamente. El desglose legal y las bases de cotizaci\u00f3n quedan disponibles debajo para quien quiera revisarlos.<\/p>\r\n\r\n              <div class=\"ig-results\" id=\"ig-results\">\r\n                <div class=\"ig-result-hero\">\r\n                  <div><small>Lo m\u00e1s importante<\/small><strong id=\"ig-net-pay\">$0<\/strong><span id=\"ig-result-context\">Resultado informativo del periodo.<\/span><p class=\"ig-result-explainer\">Este es el valor aproximado que recibir\u00edas despu\u00e9s de las deducciones incluidas en la simulaci\u00f3n.<\/p><\/div>\r\n                  <span class=\"ig-pill is-coral\" id=\"ig-result-badge\">Reporte listo<\/span>\r\n                <\/div>\r\n                <div class=\"ig-kpi-grid\">\r\n                  <div class=\"ig-kpi good\"><small>Total devengado<\/small><strong id=\"ig-kpi-earned\">$0<\/strong><span>Incluye auxilio y pagos no salariales.<\/span><\/div>\r\n                  <div class=\"ig-kpi warn\"><small>Total deducido<\/small><strong id=\"ig-kpi-deducted\">$0<\/strong><span>Aportes del trabajador y descuentos manuales.<\/span><\/div>\r\n                  <div class=\"ig-kpi\"><small>IBC principal<\/small><strong id=\"ig-kpi-ibc\">$0<\/strong><span>Base usada seg\u00fan el esquema.<\/span><\/div>\r\n                  <div class=\"ig-kpi\"><small>Valor hora<\/small><strong id=\"ig-kpi-hour\">$0<\/strong><span>Solo aplica a n\u00f3mina ordinaria no integral.<\/span><\/div>\r\n                <\/div>\r\n                <details class=\"ig-result-details\"><summary><span>Ver desglose completo del c\u00e1lculo<\/span><small>Devengados, deducciones, IBC y par\u00e1metros aplicados<\/small><\/summary><div id=\"ig-result-tables\"><\/div><\/details>\r\n                <div id=\"ig-alerts\"><\/div>\r\n                <div class=\"ig-pdf-actions\">\r\n                  <button class=\"ig-btn coral\" id=\"ig-pdf\" type=\"button\"><svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"><\/path><path d=\"m7 10 5 5 5-5\"><\/path><path d=\"M12 15V3\"><\/path><\/svg>Descargar reporte PDF<\/button>\r\n                  <button class=\"ig-btn secondary\" id=\"ig-share\" type=\"button\">Copiar simulaci\u00f3n<\/button>\r\n                  <button class=\"ig-btn secondary\" id=\"ig-print\" type=\"button\">Imprimir \/ guardar PDF<\/button>\r\n                  <span class=\"ig-pdf-status\" id=\"ig-pdf-status\">El reporte se habilita despu\u00e9s del c\u00e1lculo.<\/span>\r\n                <\/div>\r\n                <div class=\"ig-toast\" id=\"ig-toast\">Enlace copiado.<\/div>\r\n              <\/div>\r\n              <div id=\"ig-empty-result\" class=\"ig-note\">Completa los pasos anteriores y presiona \u201cCalcular salario neto\u201d.<\/div>\r\n              <div class=\"ig-actions\"><button class=\"ig-btn secondary\" type=\"button\" data-prev=\"4\">Anterior<\/button><div class=\"ig-actions-right\"><button class=\"ig-btn secondary\" type=\"button\" id=\"ig-reset\">Nuevo c\u00e1lculo<\/button><\/div><\/div>\r\n            <\/section>\r\n          <\/form>\r\n        <\/main>\r\n\r\n        <aside class=\"ig-side-panel\" aria-label=\"Resumen de la simulaci\u00f3n\">\r\n          <span class=\"ig-side-kicker\">Mientras avanzas<\/span>\r\n          <h3>Tu simulaci\u00f3n<\/h3>\r\n          <p>Revisa los datos principales sin salir del paso en el que est\u00e1s.<\/p>\r\n          <div class=\"ig-side-goal\">\r\n            <span>Al terminar ver\u00e1s primero<\/span>\r\n            <strong>Tu salario neto estimado<\/strong>\r\n            <small>Ingresos del periodo menos deducciones estimadas.<\/small>\r\n          <\/div>\r\n          <div class=\"ig-side-net\" id=\"ig-side-net-wrap\" hidden>\r\n            <span>Resultado calculado<\/span>\r\n            <strong id=\"ig-side-net\">$0<\/strong>\r\n            <small>Neto estimado a pagar<\/small>\r\n          <\/div>\r\n          <div class=\"ig-preview-list\">\r\n            <div class=\"ig-preview-row\"><span>Esquema<\/span><strong id=\"ig-side-scheme\">N\u00f3mina ordinaria<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>Salario base \/ ganado<\/span><strong id=\"ig-side-salary\">$0<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>Periodo<\/span><strong id=\"ig-side-period\">Mensual<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>D\u00edas reconocidos<\/span><strong id=\"ig-side-days\">30<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>Auxilio estimado<\/span><strong id=\"ig-side-aux\">$0<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>Recargos \/ extras<\/span><strong id=\"ig-side-extras\">$0<\/strong><\/div>\r\n            <div class=\"ig-preview-row\"><span>Deducci\u00f3n seguridad social<\/span><strong id=\"ig-side-ss\">$0<\/strong><\/div>\r\n          <\/div>\r\n          <p class=\"ig-note\" id=\"ig-side-note\">Desde el 15 de julio de 2026 la jornada m\u00e1xima ordinaria es de 42 horas semanales, sin reducci\u00f3n salarial.<\/p>\r\n        <\/aside>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"ig-section\">\r\n    <div class=\"ig-wrap\">\r\n      <details class=\"ig-sources-details\">\r\n        <summary><span>Fuentes oficiales y metodolog\u00eda<\/span><small>Consulta las normas y documentos usados como referencia.<\/small><\/summary>\r\n        <div class=\"ig-source-grid\">\r\n        <div class=\"ig-source-card\"><strong>SMMLV y auxilio 2026<\/strong><span>El simulador usa SMMLV de $1.750.905. El valor fue mantenido transitoriamente por el Decreto 159 de 2026; el auxilio de referencia es $249.095.<\/span><a href=\"https:\/\/normograma.crcom.gov.co\/crc\/compilacion\/docs\/decreto_0159_2026.htm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Decreto 159 de 2026<\/a><\/div>\r\n        <div class=\"ig-source-card\"><strong>Jornada y reducci\u00f3n gradual<\/strong><span>44 horas hasta el 14 de julio y 42 horas desde el 15 de julio de 2026, sin disminuir el salario.<\/span><a href=\"https:\/\/www.funcionpublica.gov.co\/eva\/gestornormativo\/norma.php?i=166506\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Ley 2101 de 2021<\/a><\/div>\r\n        <div class=\"ig-source-card\"><strong>Noche y descanso obligatorio<\/strong><span>Jornada nocturna desde las 7 p. m. y recargo progresivo dominical\/festivo.<\/span><a href=\"https:\/\/www.funcionpublica.gov.co\/eva\/gestornormativo\/norma.php?i=260676\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Ley 2466 de 2025<\/a><\/div>\r\n        <div class=\"ig-source-card\"><strong>Salario integral 2026<\/strong><span>M\u00ednimo de 13 SMMLV, factor prestacional y base general del 70%.<\/span><a href=\"https:\/\/www.ugpp.gov.co\/wp-content\/uploads\/2026\/02\/ABC-Trabajadores-dependientes-que-devengan-salario-integral.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">UGPP<\/a><\/div>\r\n        <div class=\"ig-source-card\"><strong>Trabajo parcial por semanas<\/strong><span>Condiciones, semanas cotizadas, pensi\u00f3n, ARL y caja de compensaci\u00f3n.<\/span><a href=\"https:\/\/www.ugpp.gov.co\/wp-content\/uploads\/2026\/02\/ABC-Trabajadores-a-Tiempo-Parcial.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">UGPP<\/a><\/div>\r\n        <div class=\"ig-source-card\"><strong>IBC y pagos no salariales<\/strong><span>El exceso mensual sobre el 40% de la remuneraci\u00f3n se incorpora al IBC.<\/span><a href=\"https:\/\/www.ugpp.gov.co\/wp-content\/uploads\/2026\/01\/ABC-Empleadores-2026.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">UGPP<\/a><\/div>\r\n      <\/div>\r\n    <\/div>\r\n      <\/details>\r\n  <\/section>\r\n\r\n  <footer>\r\n    inversionesguru.com\/co\/ \u00b7 Simulaci\u00f3n educativa revisada el 9 de agosto de 2026. Verifica siempre contrato, PILA, novedades y liquidaci\u00f3n oficial de n\u00f3mina.\r\n  <\/footer>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  'use strict';\r\n\r\n  const root = document.getElementById('ig-salary-calculator');\r\n  if (!root || root.dataset.ready === 'true') return;\r\n  root.dataset.ready = 'true';\r\n\r\n  const CONFIG = {\r\n    year: 2026,\r\n    smmlv: 1750905,\r\n    aux: 249095,\r\n    healthEmployee: 0.04,\r\n    pensionEmployee: 0.04,\r\n    pensionEmployer: 0.12,\r\n    ccfEmployer: 0.04,\r\n    nightSurcharge: 0.35,\r\n    extraDayFactor: 1.25,\r\n    extraNightFactor: 1.75,\r\n    ibcMaxSmmlv: 25,\r\n    salaryIntegralMinSmmlv: 13,\r\n    pdfFile: 'reporte-calculadora-salarial-colombia-2026.pdf',\r\n    siteUrl: 'https:\/\/inversionesguru.com\/co\/'\r\n  };\r\n\r\n  const $ = (selector) => root.querySelector(selector);\r\n  const $$ = (selector) => Array.from(root.querySelectorAll(selector));\r\n  let currentStep = 1;\r\n  let lastResult = null;\r\n  const STEP_META = {\r\n    1: ['Define tu contrato', 'Fecha, tipo de vinculaci\u00f3n y salario base.'],\r\n    2: ['Elige el periodo', 'Mes, quincena, d\u00edas trabajados y novedades.'],\r\n    3: ['Completa ingresos y descuentos', 'Solo agrega conceptos adicionales si realmente aplican.'],\r\n    4: ['Registra horas y recargos', 'Si no tuviste horas adicionales, puedes dejar todo en cero.'],\r\n    5: ['Revisa tu resultado', 'Primero ver\u00e1s tu neto; el detalle t\u00e9cnico es opcional.']\r\n  };\r\n\r\n  function todayISO() {\r\n    const d = new Date();\r\n    d.setMinutes(d.getMinutes() - d.getTimezoneOffset());\r\n    const iso = d.toISOString().slice(0, 10);\r\n    return iso.startsWith('2026-') ? iso : '2026-07-26';\r\n  }\r\n\r\n  function safeDate() {\r\n    const raw = $('#ig-period-date').value;\r\n    const d = raw ? new Date(raw + 'T12:00:00') : new Date('2026-07-26T12:00:00');\r\n    return Number.isNaN(d.getTime()) ? new Date('2026-07-26T12:00:00') : d;\r\n  }\r\n\r\n  function isDateIn2026(date) {\r\n    return date instanceof Date && !Number.isNaN(date.getTime()) && date.getFullYear() === 2026;\r\n  }\r\n\r\n  function getMaxWeeklyHoursLegal(date) {\r\n    return date < new Date('2026-07-15T00:00:00') ? 44 : 42;\r\n  }\r\n\r\n  function getDomFestRate(date) {\r\n    return date < new Date('2026-07-01T00:00:00') ? 0.80 : 0.90;\r\n  }\r\n\r\n  function getNightStartHour() {\r\n    return 19;\r\n  }\r\n\r\n  function fmtMoney(value, decimals) {\r\n    const max = decimals ? 2 : 0;\r\n    return new Intl.NumberFormat('es-CO', {\r\n      style: 'currency', currency: 'COP', minimumFractionDigits: max, maximumFractionDigits: max\r\n    }).format(Number(value) || 0);\r\n  }\r\n\r\n  function fmtNumber(value, decimals) {\r\n    return new Intl.NumberFormat('es-CO', {\r\n      minimumFractionDigits: decimals || 0, maximumFractionDigits: decimals || 0\r\n    }).format(Number(value) || 0);\r\n  }\r\n\r\n  function parseMoney(value) {\r\n    if (value == null) return 0;\r\n    let s = String(value).trim().replace(\/\\s\/g, '').replace(\/[^\\d.,-]\/g, '');\r\n    if (!s || s === '-' || s === ',' || s === '.') return 0;\r\n    const negative = s.startsWith('-');\r\n    s = s.replace(\/-\/g, '');\r\n    const lastDot = s.lastIndexOf('.');\r\n    const lastComma = s.lastIndexOf(',');\r\n    let decimalSep = null;\r\n    if (lastDot >= 0 && lastComma >= 0) {\r\n      const lastSep = lastDot > lastComma ? '.' : ',';\r\n      const decimals = s.slice(Math.max(lastDot, lastComma) + 1);\r\n      decimalSep = decimals.length > 0 && decimals.length <= 2 ? lastSep : null;\r\n    } else {\r\n      const sep = lastDot >= 0 ? '.' : (lastComma >= 0 ? ',' : null);\r\n      if (sep) {\r\n        const parts = s.split(sep);\r\n        const last = parts[parts.length - 1];\r\n        decimalSep = parts.length === 2 && last.length > 0 && last.length <= 2 ? sep : null;\r\n      }\r\n    }\r\n    let normalized;\r\n    if (decimalSep) {\r\n      const other = decimalSep === '.' ? ',' : '.';\r\n      normalized = s.replace(new RegExp('\\\\' + other, 'g'), '');\r\n      const index = normalized.lastIndexOf(decimalSep);\r\n      normalized = normalized.slice(0, index).replace(\/[.,]\/g, '') + '.' + normalized.slice(index + 1).replace(\/[.,]\/g, '');\r\n    } else {\r\n      normalized = s.replace(\/[.,]\/g, '');\r\n    }\r\n    const num = parseFloat(normalized);\r\n    if (Number.isNaN(num)) return 0;\r\n    return negative ? -num : num;\r\n  }\r\n\r\n  function formatMoneyInput(input) {\r\n    const n = parseMoney(input.value);\r\n    input.value = n ? fmtNumber(Math.round(n), 0) : '';\r\n  }\r\n\r\n  function getRadio(name) {\r\n    const selected = root.querySelector('input[name=\"' + name + '\"]:checked');\r\n    return selected ? selected.value : null;\r\n  }\r\n\r\n  function getNumber(id) {\r\n    const el = $('#' + id);\r\n    if (!el) return 0;\r\n    const v = parseFloat(el.value);\r\n    return Number.isFinite(v) && v > 0 ? v : 0;\r\n  }\r\n\r\n  function getMoney(id) {\r\n    const el = $('#' + id);\r\n    if (!el) return 0;\r\n    const v = parseMoney(el.value);\r\n    return Number.isFinite(v) && v > 0 ? v : 0;\r\n  }\r\n\r\n  function getScheme() {\r\n    return getRadio('employmentScheme') || 'ordinary';\r\n  }\r\n\r\n  function isPartial() {\r\n    return getScheme() === 'partial';\r\n  }\r\n\r\n  function isIntegral() {\r\n    return !isPartial() && $('#ig-integral').value === 'integral';\r\n  }\r\n\r\n  function getPeriodDays() {\r\n    return getRadio('payPeriod') === 'biweekly' ? 15 : 30;\r\n  }\r\n\r\n  function getWeeklyHours() {\r\n    const raw = parseFloat($('#ig-weekly-hours').value);\r\n    return Number.isFinite(raw) && raw > 0 ? raw : getMaxWeeklyHoursLegal(safeDate());\r\n  }\r\n\r\n  function computeBaseSalary(date) {\r\n    if (isPartial()) return getMoney('ig-base-salary');\r\n    return getRadio('salaryMode') === 'manual' ? getMoney('ig-base-salary') : CONFIG.smmlv;\r\n  }\r\n\r\n  function getHourValue(date) {\r\n    if (isPartial() || isIntegral()) return 0;\r\n    const salary = computeBaseSalary(date);\r\n    const monthlyHours = Math.max(1, getWeeklyHours() * 5);\r\n    return salary \/ monthlyHours;\r\n  }\r\n\r\n  function getFspRate(monthlyIbc) {\r\n    const ratio = monthlyIbc \/ CONFIG.smmlv;\r\n    if (ratio < 4) return 0;\r\n    if (ratio < 16) return 0.01;\r\n    if (ratio < 17) return 0.012;\r\n    if (ratio < 18) return 0.014;\r\n    if (ratio < 19) return 0.016;\r\n    if (ratio < 20) return 0.018;\r\n    return 0.02;\r\n  }\r\n\r\n  function getPartialWeeks(days) {\r\n    if (days <= 0) return 0;\r\n    if (days <= 7) return 1;\r\n    if (days <= 14) return 2;\r\n    if (days <= 21) return 3;\r\n    return 4;\r\n  }\r\n\r\n  function getPartialPensionIbc(weeks) {\r\n    const w = Math.max(0, Math.min(4, Math.floor(Number(weeks) || 0)));\r\n    if (!w) return 0;\r\n    if (w === 4) return CONFIG.smmlv;\r\n    const weeklyBase = Math.floor(CONFIG.smmlv \/ 4);\r\n    return weeklyBase * w;\r\n  }\r\n\r\n  function getAuxLabel() {\r\n    const type = $('#ig-aux-type').value;\r\n    if (type === 'connectivity') return 'Auxilio de conectividad';\r\n    if (type === 'transport') return 'Auxilio de transporte';\r\n    return 'Auxilio no aplicado';\r\n  }\r\n\r\n  function clearHours() {\r\n    ['ig-hours-rn','ig-hours-ed','ig-hours-en','ig-hours-df-day','ig-hours-df-night','ig-hours-eddf','ig-hours-endf','ig-rest-days-count','ig-extra-days-count']\r\n      .forEach(id => { const el = $('#' + id); if (el) el.value = '0'; });\r\n  }\r\n\r\n  function syncModeUI() {\r\n    const partial = isPartial();\r\n    const manual = partial || getRadio('salaryMode') === 'manual';\r\n    $('#ig-ordinary-salary-options').style.display = partial ? 'none' : '';\r\n    $('#ig-manual-salary-wrap').style.display = manual ? 'grid' : 'none';\r\n    $('#ig-salary-type-field').style.display = partial ? 'none' : '';\r\n    $('#ig-partial-scheme-note').style.display = partial ? 'block' : 'none';\r\n    $('#ig-ordinary-period-fields').style.display = partial ? 'none' : '';\r\n    $('#ig-partial-period-fields').style.display = partial ? 'block' : 'none';\r\n    $('#ig-40-limit-row').style.display = partial ? 'none' : 'flex';\r\n    $('#ig-biweekly-context').style.display = !partial && getRadio('payPeriod') === 'biweekly' ? 'block' : 'none';\r\n\r\n    $('#ig-base-salary-label').textContent = partial ? 'Salario total ganado en el mes' : 'Salario base mensual contractual';\r\n    $('#ig-base-salary-help').textContent = partial\r\n      ? 'Debe ser inferior a 1 SMMLV en este v\u00ednculo, sin incluir los pagos salariales adicionales del paso 3, y debe respetar el salario m\u00ednimo proporcional al tiempo efectivamente trabajado.'\r\n      : 'Valor mensual antes de auxilios y pagos variables. Puede ser proporcional en una jornada parcial mensual v\u00e1lida; el IBC m\u00ednimo se revisa por separado.';\r\n    $('#ig-step-2-copy').textContent = partial\r\n      ? 'El n\u00famero de d\u00edas trabajados define entre una y cuatro cotizaciones m\u00ednimas semanales.'\r\n      : 'El c\u00e1lculo ordinario usa mes comercial de 30 d\u00edas y separa ausencias comunes de suspensiones o licencias no remuneradas.';\r\n\r\n    const hoursDisabled = partial || isIntegral();\r\n    $('#ig-hours-fields').style.display = hoursDisabled ? 'none' : '';\r\n    $('#ig-hours-disabled-note').style.display = hoursDisabled ? 'block' : 'none';\r\n    $('#ig-hours-disabled-text').textContent = partial\r\n      ? 'La cotizaci\u00f3n por semanas no convierte autom\u00e1ticamente la remuneraci\u00f3n en una n\u00f3mina horaria completa. Los recargos deben revisarse con el horario y contrato real, por lo que no se estiman en este m\u00f3dulo.'\r\n      : 'El salario integral incluye anticipadamente los recargos y el trabajo suplementario dentro del factor prestacional, salvo pagos expresos adicionales que deben analizarse por separado.';\r\n    if (hoursDisabled) clearHours();\r\n\r\n    if (partial) {\r\n      const manualRadio = root.querySelector('input[name=\"salaryMode\"][value=\"manual\"]');\r\n      if (manualRadio) manualRadio.checked = true;\r\n      $('#ig-integral').value = 'ordinary';\r\n    }\r\n  }\r\n\r\n  function updateLegalUI() {\r\n    const date = safeDate();\r\n    const maxWeekly = getMaxWeeklyHoursLegal(date);\r\n    const domRate = getDomFestRate(date);\r\n    $('#ig-law-smmlv').textContent = fmtMoney(CONFIG.smmlv);\r\n    $('#ig-law-aux').textContent = fmtMoney(CONFIG.aux);\r\n    $('#ig-law-hours').textContent = maxWeekly + ' h';\r\n    $('#ig-law-hours-note').textContent = maxWeekly === 42 ? 'Desde el 15 de julio de 2026.' : 'Hasta el 14 de julio de 2026.';\r\n    $('#ig-law-dom').textContent = Math.round(domRate * 100) + '%';\r\n    $('#ig-law-dom-note').textContent = domRate === 0.90 ? 'Desde el 1 de julio de 2026.' : 'Hasta el 30 de junio de 2026.';\r\n    $('#ig-hours-hint').textContent = 'M\u00e1ximo legal para la fecha: ' + maxWeekly + ' h\/semana.';\r\n    $('#ig-date-hint').textContent = 'SMMLV: ' + fmtMoney(CONFIG.smmlv) + ' \u00b7 Auxilio: ' + fmtMoney(CONFIG.aux) + ' \u00b7 Noche desde 7:00 p. m.';\r\n    $('#ig-preview-aux-cap').textContent = fmtMoney(CONFIG.smmlv * 2);\r\n    $('#ig-preview-night').textContent = '7:00 p. m.';\r\n    $('#ig-preview-dom-rate').textContent = Math.round(domRate * 100) + '%';\r\n    syncModeUI();\r\n    updatePreview();\r\n  }\r\n\r\n  function computeOrdinaryPreview() {\r\n    const date = safeDate();\r\n    const baseSalary = computeBaseSalary(date);\r\n    const hourValue = getHourValue(date);\r\n    const daysBase = getPeriodDays();\r\n    const unpaidDays = Math.min(daysBase, Math.floor(getNumber('ig-unpaid-days')));\r\n    const suspensionDays = Math.min(daysBase - unpaidDays, Math.floor(getNumber('ig-suspension-days')));\r\n    const paidDays = Math.max(0, daysBase - unpaidDays - suspensionDays);\r\n    const timeDiscount = getNumber('ig-unpaid-hours') * hourValue;\r\n    const basePeriod = Math.max(0, (baseSalary \/ 30) * paidDays - timeDiscount);\r\n    const salaryVariable = getMoney('ig-salary-variable');\r\n    const auxThresholdSalary = baseSalary + salaryVariable;\r\n    const auxEligible = $('#ig-apply-aux').value === 'yes'\r\n      && $('#ig-aux-type').value !== 'none'\r\n      && !isIntegral()\r\n      && auxThresholdSalary <= (2 * CONFIG.smmlv)\r\n      && paidDays > 0;\r\n    const aux = auxEligible ? (CONFIG.aux \/ 30) * paidDays : 0;\r\n    const domRate = getDomFestRate(date);\r\n    const extras = isIntegral() ? 0 : (\r\n      getNumber('ig-hours-rn') * hourValue * CONFIG.nightSurcharge +\r\n      getNumber('ig-hours-ed') * hourValue * CONFIG.extraDayFactor +\r\n      getNumber('ig-hours-en') * hourValue * CONFIG.extraNightFactor +\r\n      getNumber('ig-hours-df-day') * hourValue * domRate +\r\n      getNumber('ig-hours-df-night') * hourValue * (domRate + CONFIG.nightSurcharge) +\r\n      getNumber('ig-hours-eddf') * hourValue * (1 + domRate + 0.25) +\r\n      getNumber('ig-hours-endf') * hourValue * (1 + domRate + 0.75)\r\n    );\r\n    const nonSalary = getMoney('ig-non-salary-variable');\r\n    const totalSalarial = basePeriod + salaryVariable + extras;\r\n    const currentExcess = $('#ig-apply-40-limit').checked ? Math.max(0, nonSalary - ((totalSalarial + nonSalary) * 0.40)) : 0;\r\n    let ibcRaw = isIntegral() ? (basePeriod * 0.70) + salaryVariable + currentExcess : totalSalarial + currentExcess;\r\n    const minIbc = paidDays > 0 ? (CONFIG.smmlv \/ 30) * paidDays : 0;\r\n    const maxIbc = paidDays > 0 ? ((CONFIG.smmlv * CONFIG.ibcMaxSmmlv) \/ 30) * paidDays : 0;\r\n    const ibc = paidDays > 0 ? Math.max(minIbc, Math.min(maxIbc, ibcRaw)) : 0;\r\n    const monthlyIbc = getRadio('payPeriod') === 'biweekly' ? (getMoney('ig-other-half-ibc') || ibc) + ibc : ibc;\r\n    const social = ibc * (CONFIG.healthEmployee + CONFIG.pensionEmployee + getFspRate(monthlyIbc));\r\n    return { baseSalary, hourValue, daysBase, paidDays, timeDiscount, aux, extras, social };\r\n  }\r\n\r\n  function computePartialPreview() {\r\n    const salary = computeBaseSalary(safeDate());\r\n    const days = Math.floor(getNumber('ig-partial-days'));\r\n    const weeks = getPartialWeeks(days);\r\n    const pensionIbc = getPartialPensionIbc(weeks);\r\n    const pension = pensionIbc * CONFIG.pensionEmployee;\r\n    const auxThresholdSalary = salary + getMoney('ig-salary-variable');\r\n    const auxEligible = $('#ig-apply-aux').value === 'yes'\r\n      && $('#ig-aux-type').value !== 'none'\r\n      && auxThresholdSalary <= (2 * CONFIG.smmlv)\r\n      && days > 0;\r\n    const aux = auxEligible ? (CONFIG.aux \/ 30) * days : 0;\r\n    return { baseSalary: salary, hourValue: 0, daysBase: days, paidDays: days, timeDiscount: 0, aux, extras: 0, social: pension };\r\n  }\r\n\r\n  function updatePreview() {\r\n    const p = isPartial() ? computePartialPreview() : computeOrdinaryPreview();\r\n    $('#ig-preview-hour').textContent = p.hourValue ? fmtMoney(p.hourValue) + ' \/h' : 'No aplica';\r\n    $('#ig-preview-days-base').textContent = String(p.daysBase || 0);\r\n    $('#ig-preview-days-paid').textContent = String(p.paidDays || 0);\r\n    $('#ig-preview-time-discount').textContent = fmtMoney(p.timeDiscount);\r\n    $('#ig-side-scheme').textContent = isPartial() ? 'Tiempo parcial \/ por d\u00edas' : (isIntegral() ? 'N\u00f3mina ordinaria integral' : 'N\u00f3mina ordinaria');\r\n    $('#ig-side-salary').textContent = fmtMoney(p.baseSalary);\r\n    $('#ig-side-period').textContent = isPartial() ? 'Mes calendario por d\u00edas' : (getRadio('payPeriod') === 'biweekly' ? 'Quincenal' : 'Mensual');\r\n    $('#ig-side-days').textContent = String(p.paidDays || 0);\r\n    $('#ig-side-aux').textContent = fmtMoney(p.aux);\r\n    $('#ig-side-extras').textContent = fmtMoney(p.extras);\r\n    $('#ig-side-ss').textContent = fmtMoney(p.social);\r\n  }\r\n\r\n  function showError(step, message) {\r\n    const el = $('#ig-error-' + step);\r\n    if (!el) return;\r\n    el.textContent = message || '';\r\n    el.classList.toggle('is-visible', Boolean(message));\r\n  }\r\n\r\n  function validateStep(step) {\r\n    showError(step, '');\r\n    const date = safeDate();\r\n    if (step === 1) {\r\n      if (!isDateIn2026(date)) {\r\n        showError(1, 'Selecciona una fecha v\u00e1lida dentro de 2026.');\r\n        return false;\r\n      }\r\n      if (isPartial()) {\r\n        const salary = getMoney('ig-base-salary');\r\n        if (salary <= 0) {\r\n          showError(1, 'Ingresa el salario total ganado en el mes para el contrato parcial.');\r\n          return false;\r\n        }\r\n        if (salary >= CONFIG.smmlv) {\r\n          showError(1, 'El esquema por semanas solo aplica cuando la remuneraci\u00f3n salarial mensual es inferior a 1 SMMLV.');\r\n          return false;\r\n        }\r\n      } else {\r\n        const weekly = getWeeklyHours();\r\n        const maxWeekly = getMaxWeeklyHoursLegal(date);\r\n        if (weekly <= 0 || weekly > maxWeekly) {\r\n          showError(1, 'La jornada debe ser mayor que cero y no superar ' + maxWeekly + ' horas semanales para un c\u00e1lculo ordinario.');\r\n          return false;\r\n        }\r\n        const base = computeBaseSalary(date);\r\n        if (base <= 0) {\r\n          showError(1, 'Ingresa un salario base mensual v\u00e1lido.');\r\n          return false;\r\n        }\r\n        if (isIntegral() && base < CONFIG.smmlv * CONFIG.salaryIntegralMinSmmlv) {\r\n          showError(1, 'El salario integral de 2026 debe ser al menos ' + fmtMoney(CONFIG.smmlv * CONFIG.salaryIntegralMinSmmlv) + ' (13 SMMLV).');\r\n          return false;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (step === 2) {\r\n      if (isPartial()) {\r\n        const days = Math.floor(getNumber('ig-partial-days'));\r\n        const coverage = $('#ig-partial-health-coverage').value;\r\n        if (days < 1 || days > 29) {\r\n          showError(2, 'Los d\u00edas trabajados deben estar entre 1 y 29 para usar este esquema.');\r\n          return false;\r\n        }\r\n        if (!coverage || coverage === 'none') {\r\n          showError(2, 'Confirma cobertura v\u00e1lida en salud como beneficiario o en el r\u00e9gimen subsidiado.');\r\n          return false;\r\n        }\r\n      } else {\r\n        const daysBase = getPeriodDays();\r\n        const totalDays = Math.floor(getNumber('ig-unpaid-days')) + Math.floor(getNumber('ig-suspension-days'));\r\n        if (totalDays > daysBase) {\r\n          showError(2, 'La suma de ausencias y suspensi\u00f3n no puede superar los d\u00edas base del periodo.');\r\n          return false;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (step === 3 && isPartial()) {\r\n      const monthlySalaryThisContract = computeBaseSalary(date)\r\n        + getMoney('ig-salary-variable');\r\n      if (monthlySalaryThisContract >= CONFIG.smmlv) {\r\n        showError(3, 'La remuneraci\u00f3n salarial mensual de este v\u00ednculo alcanza o supera 1 SMMLV. Para este contrato ya no corresponde usar la cotizaci\u00f3n especial por semanas y debe revisarse la cotizaci\u00f3n completa a los subsistemas aplicables.');\r\n        return false;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n\r\n  function updateProgressUX() {\r\n    const meta = STEP_META[currentStep] || STEP_META[1];\r\n    const kicker = $('#ig-progress-kicker');\r\n    const title = $('#ig-progress-title');\r\n    const help = $('#ig-progress-help');\r\n    const bar = $('#ig-progress-bar');\r\n    const meter = root.querySelector('.ig-progress-meter');\r\n    if (kicker) kicker.textContent = 'Paso ' + currentStep + ' de 5';\r\n    if (title) title.textContent = meta[0];\r\n    if (help) help.textContent = meta[1];\r\n    if (bar) bar.style.width = (currentStep * 20) + '%';\r\n    if (meter) meter.setAttribute('aria-valuenow', String(currentStep));\r\n    $$('.ig-step-tab').forEach(tab => {\r\n      const n = Number(tab.dataset.stepTarget);\r\n      tab.classList.toggle('is-active', n === currentStep);\r\n      tab.classList.toggle('is-complete', n < currentStep);\r\n      if (n === currentStep) tab.setAttribute('aria-current', 'step');\r\n      else tab.removeAttribute('aria-current');\r\n    });\r\n  }\r\n\r\n  function goToStep(step) {\r\n    currentStep = Math.max(1, Math.min(5, Number(step) || 1));\r\n    $$('.ig-step').forEach(section => section.classList.toggle('is-active', Number(section.dataset.step) === currentStep));\r\n    updateProgressUX();\r\n    updatePreview();\r\n    const activeTab = $('.ig-step-tab.is-active');\r\n    if (activeTab && window.innerWidth < 780) activeTab.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });\r\n  }\r\n\r\n  function validateUntil(target) {\r\n    for (let i = 1; i < target; i++) {\r\n      if (!validateStep(i)) { goToStep(i); return false; }\r\n    }\r\n    return true;\r\n  }\r\n\r\n  function escapeHtml(value) {\r\n    return String(value == null ? '' : value)\r\n      .replace(\/&\/g, '&amp;').replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;')\r\n      .replace(\/\"\/g, '&quot;').replace(\/'\/g, '&#039;');\r\n  }\r\n\r\n  function buildRow(label, value, type) {\r\n    const cls = type === 'deduction' ? ' class=\"amount ig-negative\"' : (type === 'positive' ? ' class=\"amount ig-positive\"' : ' class=\"amount\"');\r\n    const prefix = type === 'deduction' && value > 0 ? '-' : '';\r\n    return '<tr><td data-label=\"Concepto\">' + escapeHtml(label) + '<\/td><td data-label=\"Valor\"' + cls + '>' + prefix + fmtMoney(value) + '<\/td><\/tr>';\r\n  }\r\n\r\n  function buildInfoRow(label, value) {\r\n    return '<tr><td data-label=\"Par\u00e1metro\">' + escapeHtml(label) + '<\/td><td data-label=\"Detalle\" class=\"amount\">' + escapeHtml(value) + '<\/td><\/tr>';\r\n  }\r\n\r\n  function calculateOrdinary() {\r\n    const date = safeDate();\r\n    const baseSalary = computeBaseSalary(date);\r\n    const weeklyHours = getWeeklyHours();\r\n    const monthlyHours = weeklyHours * 5;\r\n    const hourValue = getHourValue(date);\r\n    const daysBase = getPeriodDays();\r\n    const unpaidDays = Math.min(daysBase, Math.floor(getNumber('ig-unpaid-days')));\r\n    const suspensionDays = Math.min(daysBase - unpaidDays, Math.floor(getNumber('ig-suspension-days')));\r\n    const paidDays = Math.max(0, daysBase - unpaidDays - suspensionDays);\r\n    const unpaidHours = getNumber('ig-unpaid-hours');\r\n    const timeDiscount = unpaidHours * hourValue;\r\n    const basePeriod = Math.max(0, (baseSalary \/ 30) * paidDays - timeDiscount);\r\n\r\n    const salaryVariable = getMoney('ig-salary-variable');\r\n    const nonSalary = getMoney('ig-non-salary-variable');\r\n    const manualTax = getMoney('ig-manual-tax');\r\n    const otherDiscounts = getMoney('ig-other-discounts');\r\n    const domRate = getDomFestRate(date);\r\n\r\n    const hRN = getNumber('ig-hours-rn');\r\n    const hED = getNumber('ig-hours-ed');\r\n    const hEN = getNumber('ig-hours-en');\r\n    const hDFDay = getNumber('ig-hours-df-day');\r\n    const hDFNight = getNumber('ig-hours-df-night');\r\n    const hEDDF = getNumber('ig-hours-eddf');\r\n    const hENDF = getNumber('ig-hours-endf');\r\n\r\n    const payRN = isIntegral() ? 0 : hRN * hourValue * CONFIG.nightSurcharge;\r\n    const payED = isIntegral() ? 0 : hED * hourValue * CONFIG.extraDayFactor;\r\n    const payEN = isIntegral() ? 0 : hEN * hourValue * CONFIG.extraNightFactor;\r\n    const payDFDay = isIntegral() ? 0 : hDFDay * hourValue * domRate;\r\n    const payDFNight = isIntegral() ? 0 : hDFNight * hourValue * (domRate + CONFIG.nightSurcharge);\r\n    const payEDDF = isIntegral() ? 0 : hEDDF * hourValue * (1 + domRate + 0.25);\r\n    const payENDF = isIntegral() ? 0 : hENDF * hourValue * (1 + domRate + 0.75);\r\n    const totalExtras = payRN + payED + payEN + payDFDay + payDFNight + payEDDF + payENDF;\r\n\r\n    const totalSalarial = basePeriod + salaryVariable + totalExtras;\r\n    const otherHalfSalary = getRadio('payPeriod') === 'biweekly' ? getMoney('ig-other-half-salary') : 0;\r\n    const otherHalfNonSalary = getRadio('payPeriod') === 'biweekly' ? getMoney('ig-other-half-non-salary') : 0;\r\n    const auxThresholdSalary = baseSalary + salaryVariable + otherHalfSalary;\r\n    const auxEligible = $('#ig-apply-aux').value === 'yes'\r\n      && $('#ig-aux-type').value !== 'none'\r\n      && !isIntegral()\r\n      && auxThresholdSalary <= (2 * CONFIG.smmlv)\r\n      && paidDays > 0;\r\n    const aux = auxEligible ? (CONFIG.aux \/ 30) * paidDays : 0;\r\n    const monthlySalarialFor40 = totalSalarial + otherHalfSalary;\r\n    const monthlyNonSalaryFor40 = nonSalary + otherHalfNonSalary;\r\n    const monthlyRemunerationFor40 = monthlySalarialFor40 + monthlyNonSalaryFor40;\r\n    const monthlyExcess = $('#ig-apply-40-limit').checked ? Math.max(0, monthlyNonSalaryFor40 - (monthlyRemunerationFor40 * 0.40)) : 0;\r\n    const currentExcess = monthlyNonSalaryFor40 > 0 ? Math.min(nonSalary, monthlyExcess * (nonSalary \/ monthlyNonSalaryFor40)) : 0;\r\n    const missing40Context = getRadio('payPeriod') === 'biweekly'\r\n      && $('#ig-apply-40-limit').checked\r\n      && nonSalary > 0\r\n      && otherHalfSalary <= 0\r\n      && otherHalfNonSalary <= 0;\r\n\r\n    let ibcRaw = isIntegral() ? (basePeriod * 0.70) + salaryVariable + currentExcess : totalSalarial + currentExcess;\r\n    const minIbc = paidDays > 0 ? (CONFIG.smmlv \/ 30) * paidDays : 0;\r\n    const maxIbc = paidDays > 0 ? ((CONFIG.smmlv * CONFIG.ibcMaxSmmlv) \/ 30) * paidDays : 0;\r\n    const ibcBeforeLimits = ibcRaw;\r\n    const ibc = paidDays > 0 ? Math.max(minIbc, Math.min(maxIbc, ibcRaw)) : 0;\r\n    const ibcFloored = ibcRaw < minIbc && minIbc > 0;\r\n    const ibcCapped = ibcRaw > maxIbc && maxIbc > 0;\r\n\r\n    const otherHalfIbc = getRadio('payPeriod') === 'biweekly' ? getMoney('ig-other-half-ibc') : 0;\r\n    const usedProjection = getRadio('payPeriod') === 'biweekly' && otherHalfIbc <= 0;\r\n    const monthlyIbcForFsp = getRadio('payPeriod') === 'biweekly' ? ibc + (otherHalfIbc > 0 ? otherHalfIbc : ibc) : ibc;\r\n    const fspRate = getFspRate(monthlyIbcForFsp);\r\n    const health = ibc * CONFIG.healthEmployee;\r\n    const pension = ibc * CONFIG.pensionEmployee;\r\n    const fsp = ibc * fspRate;\r\n\r\n    const totalEarned = totalSalarial + nonSalary + aux;\r\n    const totalDeductions = health + pension + fsp + manualTax + otherDiscounts;\r\n    const net = totalEarned - totalDeductions;\r\n\r\n    return {\r\n      scheme: 'ordinary', date, baseSalary, weeklyHours, monthlyHours, hourValue, daysBase, unpaidDays,\r\n      suspensionDays, paidDays, unpaidHours, timeDiscount, basePeriod, salaryVariable, nonSalary, manualTax,\r\n      otherDiscounts, integral: isIntegral(), auxEligible, aux, auxLabel: getAuxLabel(), auxThresholdSalary, domRate,\r\n      totalSalarial, totalExtras, totalEarned, totalDeductions, ibc, ibcBeforeLimits, ibcFloored,\r\n      ibcCapped, minIbc, maxIbc, monthlyIbcForFsp, fspRate, usedProjection, currentExcess, monthlyExcess, missing40Context,\r\n      health, pension, fsp, net, restDays: Math.floor(getNumber('ig-rest-days-count')),\r\n      parts: { payRN, payED, payEN, payDFDay, payDFNight, payEDDF, payENDF },\r\n      hours: { hRN, hED, hEN, hDFDay, hDFNight, hEDDF, hENDF }\r\n    };\r\n  }\r\n\r\n  function calculatePartial() {\r\n    const date = safeDate();\r\n    const days = Math.floor(getNumber('ig-partial-days'));\r\n    const weeks = getPartialWeeks(days);\r\n    const baseSalary = computeBaseSalary(date);\r\n    const salaryVariable = getMoney('ig-salary-variable');\r\n    const nonSalary = getMoney('ig-non-salary-variable');\r\n    const manualTax = getMoney('ig-manual-tax');\r\n    const otherDiscounts = getMoney('ig-other-discounts');\r\n    const totalSalarial = baseSalary + salaryVariable;\r\n    const pensionIbc = getPartialPensionIbc(weeks);\r\n    const arlRate = parseFloat($('#ig-arl-risk').value) || 0.00522;\r\n    const arlIbc = CONFIG.smmlv;\r\n    const ccfIbc = pensionIbc;\r\n    const pension = pensionIbc * CONFIG.pensionEmployee;\r\n    const pensionEmployer = pensionIbc * CONFIG.pensionEmployer;\r\n    const arlEmployer = arlIbc * arlRate;\r\n    const ccfEmployer = ccfIbc * CONFIG.ccfEmployer;\r\n    const auxThresholdSalary = totalSalarial;\r\n    const auxEligible = $('#ig-apply-aux').value === 'yes'\r\n      && $('#ig-aux-type').value !== 'none'\r\n      && auxThresholdSalary <= (2 * CONFIG.smmlv)\r\n      && days > 0;\r\n    const aux = auxEligible ? (CONFIG.aux \/ 30) * days : 0;\r\n    const totalEarned = totalSalarial + nonSalary + aux;\r\n    const totalDeductions = pension + manualTax + otherDiscounts;\r\n    const net = totalEarned - totalDeductions;\r\n    return {\r\n      scheme: 'partial', date, days, weeks, baseSalary, salaryVariable, nonSalary, manualTax, otherDiscounts,\r\n      totalSalarial, pensionIbc, arlIbc, ccfIbc, pension, pensionEmployer, arlEmployer, ccfEmployer, arlRate,\r\n      health: 0, fsp: 0, auxEligible, aux, auxLabel: getAuxLabel(), auxThresholdSalary, totalEarned, totalDeductions, net,\r\n      coverage: $('#ig-partial-health-coverage').value,\r\n      hourValue: 0, totalExtras: 0, ibc: pensionIbc\r\n    };\r\n  }\r\n\r\n  function calculate() {\r\n    if (!validateUntil(5)) return null;\r\n    const result = isPartial() ? calculatePartial() : calculateOrdinary();\r\n    lastResult = result;\r\n    renderResult(result);\r\n    return result;\r\n  }\r\n\r\n  function renderResult(r) {\r\n    $('#ig-net-pay').textContent = fmtMoney(r.net);\r\n    const sideNetWrap = $('#ig-side-net-wrap');\r\n    const sideNet = $('#ig-side-net');\r\n    if (sideNetWrap && sideNet) {\r\n      sideNet.textContent = fmtMoney(r.net);\r\n      sideNetWrap.hidden = false;\r\n    }\r\n    $('#ig-kpi-earned').textContent = fmtMoney(r.totalEarned);\r\n    $('#ig-kpi-deducted').textContent = fmtMoney(r.totalDeductions);\r\n    $('#ig-kpi-ibc').textContent = fmtMoney(r.ibc);\r\n    $('#ig-kpi-hour').textContent = r.hourValue ? fmtMoney(r.hourValue) + ' \/h' : 'No aplica';\r\n    $('#ig-result-context').textContent = r.scheme === 'partial'\r\n      ? r.days + ' d\u00edas trabajados \u00b7 ' + r.weeks + ' cotizaci\u00f3n(es) m\u00ednima(s) semanal(es).'\r\n      : (getRadio('payPeriod') === 'biweekly' ? 'Quincena' : 'Mes') + ' \u00b7 ' + r.paidDays + ' d\u00edas reconocidos \u00b7 ' + r.weeklyHours + ' h\/semana.';\r\n\r\n    let html = '';\r\n    html += '<div class=\"ig-table-title\"><h4>Par\u00e1metros aplicados<\/h4><span class=\"ig-pill\">Normativa 2026<\/span><\/div>';\r\n    html += '<div class=\"ig-table-wrap\"><table><thead><tr><th>Par\u00e1metro<\/th><th class=\"amount\">Detalle<\/th><\/tr><\/thead><tbody>';\r\n    html += buildInfoRow('Fecha del periodo', r.date.toLocaleDateString('es-CO'));\r\n    html += buildInfoRow('Esquema', r.scheme === 'partial' ? 'Tiempo parcial \/ por semanas' : (r.integral ? 'N\u00f3mina ordinaria con salario integral' : 'N\u00f3mina ordinaria'));\r\n    html += buildInfoRow('SMMLV 2026', fmtMoney(CONFIG.smmlv));\r\n    html += buildInfoRow('Auxilio 2026', fmtMoney(CONFIG.aux));\r\n\r\n    if (r.scheme === 'ordinary') {\r\n      html += buildInfoRow('Jornada m\u00e1xima legal', getMaxWeeklyHoursLegal(r.date) + ' h\/semana');\r\n      html += buildInfoRow('Jornada contractual', r.weeklyHours + ' h\/semana');\r\n      html += buildInfoRow('Horas mensuales de referencia', fmtNumber(r.monthlyHours, 2) + ' h');\r\n      html += buildInfoRow('Recargo descanso obligatorio', Math.round(r.domRate * 100) + '%');\r\n      html += buildInfoRow('Inicio jornada nocturna', '7:00 p. m.');\r\n      html += buildInfoRow('Tipo de salario', r.integral ? 'Integral \u00b7 base 70% m\u00e1s pagos adicionales no cubiertos' : 'Ordinario');\r\n      html += buildInfoRow('Base salarial revisada para auxilio', fmtMoney(r.auxThresholdSalary));\r\n    } else {\r\n      html += buildInfoRow('D\u00edas trabajados', String(r.days));\r\n      html += buildInfoRow('Semanas m\u00ednimas cotizadas', String(r.weeks));\r\n      html += buildInfoRow('Cobertura en salud informada', r.coverage === 'subsidized' ? 'R\u00e9gimen subsidiado' : 'Beneficiario contributivo');\r\n      html += buildInfoRow('Clase ARL', fmtNumber(r.arlRate * 100, 3) + '%');\r\n      html += buildInfoRow('Base salarial revisada para auxilio', fmtMoney(r.auxThresholdSalary));\r\n    }\r\n    html += '<\/tbody><\/table><\/div>';\r\n\r\n    html += '<div class=\"ig-table-title\"><h4>Devengados estimados<\/h4><span class=\"ig-pill\">Ingresos<\/span><\/div>';\r\n    html += '<div class=\"ig-table-wrap\"><table><thead><tr><th>Concepto<\/th><th class=\"amount\">Valor<\/th><\/tr><\/thead><tbody>';\r\n    html += buildRow(r.scheme === 'partial' ? 'Salario ganado en el mes' : 'Salario base del periodo', r.scheme === 'partial' ? r.baseSalary : r.basePeriod, 'positive');\r\n    html += buildRow('Otros pagos salariales', r.salaryVariable, 'positive');\r\n    if (r.scheme === 'ordinary') {\r\n      html += buildRow('Recargo nocturno ordinario', r.parts.payRN, 'positive');\r\n      html += buildRow('Hora extra diurna', r.parts.payED, 'positive');\r\n      html += buildRow('Hora extra nocturna', r.parts.payEN, 'positive');\r\n      html += buildRow('Descanso obligatorio diurno', r.parts.payDFDay, 'positive');\r\n      html += buildRow('Descanso obligatorio nocturno', r.parts.payDFNight, 'positive');\r\n      html += buildRow('Extra diurna en descanso obligatorio', r.parts.payEDDF, 'positive');\r\n      html += buildRow('Extra nocturna en descanso obligatorio', r.parts.payENDF, 'positive');\r\n    }\r\n    html += buildRow(r.auxLabel, r.aux, 'positive');\r\n    html += buildRow('Pagos no salariales', r.nonSalary, 'positive');\r\n    html += '<tr class=\"ig-total-row\"><td data-label=\"Concepto\">Total devengado<\/td><td data-label=\"Valor\" class=\"amount\">' + fmtMoney(r.totalEarned) + '<\/td><\/tr>';\r\n    html += '<\/tbody><\/table><\/div>';\r\n\r\n    html += '<div class=\"ig-table-title\"><h4>Deducciones del trabajador<\/h4><span class=\"ig-pill is-coral\">Descuentos<\/span><\/div>';\r\n    html += '<div class=\"ig-table-wrap\"><table><thead><tr><th>Concepto<\/th><th class=\"amount\">Valor<\/th><\/tr><\/thead><tbody>';\r\n    if (r.scheme === 'ordinary') {\r\n      html += buildRow('Salud trabajador 4%', r.health, 'deduction');\r\n      html += buildRow('Pensi\u00f3n trabajador 4%', r.pension, 'deduction');\r\n      html += buildRow('Fondo de Solidaridad Pensional ' + fmtNumber(r.fspRate * 100, 1) + '%', r.fsp, 'deduction');\r\n    } else {\r\n      html += buildRow('Salud trabajador', 0, 'deduction');\r\n      html += buildRow('Pensi\u00f3n trabajador 4% sobre base semanal', r.pension, 'deduction');\r\n    }\r\n    html += buildRow('Retenci\u00f3n \/ impuestos manuales', r.manualTax, 'deduction');\r\n    html += buildRow('Otros descuentos', r.otherDiscounts, 'deduction');\r\n    html += '<tr class=\"ig-total-row\"><td data-label=\"Concepto\">Total deducido<\/td><td data-label=\"Valor\" class=\"amount ig-negative\">-' + fmtMoney(r.totalDeductions) + '<\/td><\/tr>';\r\n    html += '<tr class=\"ig-net-row\"><td data-label=\"Concepto\">Neto estimado a pagar<\/td><td data-label=\"Valor\" class=\"amount\">' + fmtMoney(r.net) + '<\/td><\/tr>';\r\n    html += '<\/tbody><\/table><\/div>';\r\n\r\n    if (r.scheme === 'ordinary') {\r\n      html += '<div class=\"ig-table-title\"><h4>Bases y controles mensuales<\/h4><span class=\"ig-pill\">IBC<\/span><\/div>';\r\n      html += '<div class=\"ig-table-wrap\"><table><thead><tr><th>Concepto<\/th><th class=\"amount\">Valor<\/th><\/tr><\/thead><tbody>';\r\n      html += buildInfoRow('IBC antes de m\u00ednimos\/topes', fmtMoney(r.ibcBeforeLimits));\r\n      html += buildInfoRow('IBC m\u00ednimo proporcional', fmtMoney(r.minIbc));\r\n      html += buildInfoRow('IBC m\u00e1ximo proporcional', fmtMoney(r.maxIbc));\r\n      html += buildInfoRow('Exceso no salarial asignado al periodo', fmtMoney(r.currentExcess));\r\n      html += buildInfoRow('Exceso no salarial mensual estimado', fmtMoney(r.monthlyExcess));\r\n      html += buildInfoRow('IBC final del periodo', fmtMoney(r.ibc));\r\n      html += buildInfoRow('IBC mensual usado para FSP', fmtMoney(r.monthlyIbcForFsp));\r\n      html += '<\/tbody><\/table><\/div>';\r\n    } else {\r\n      html += '<div class=\"ig-table-title\"><h4>Aportes de referencia del esquema parcial<\/h4><span class=\"ig-pill\">PILA<\/span><\/div>';\r\n      html += '<div class=\"ig-table-wrap\"><table><thead><tr><th>Concepto<\/th><th class=\"amount\">Valor<\/th><\/tr><\/thead><tbody>';\r\n      html += buildInfoRow('IBC pensi\u00f3n y caja', fmtMoney(r.pensionIbc));\r\n      html += buildInfoRow('IBC ARL', fmtMoney(r.arlIbc));\r\n      html += buildRow('Pensi\u00f3n empleador 12%', r.pensionEmployer, '');\r\n      html += buildRow('ARL empleador', r.arlEmployer, '');\r\n      html += buildRow('Caja de compensaci\u00f3n empleador 4%', r.ccfEmployer, '');\r\n      html += '<\/tbody><\/table><\/div>';\r\n    }\r\n\r\n    $('#ig-result-tables').innerHTML = html;\r\n\r\n    const alerts = [];\r\n    if (!r.auxEligible) alerts.push('No se reconoci\u00f3 auxilio: fue desactivado, no se eligi\u00f3 concepto, no cumple el tope, no hubo d\u00edas reconocidos o el salario es integral.');\r\n    if (r.scheme === 'ordinary') {\r\n      if (r.suspensionDays > 0) alerts.push('La licencia no remunerada o suspensi\u00f3n reduce el salario, pero esta herramienta no calcula aportes patronales especiales durante la novedad.');\r\n      if (r.ibcCapped) alerts.push('El IBC fue limitado al tope m\u00e1ximo proporcional de 25 SMMLV.');\r\n      if (r.ibcFloored) alerts.push('El IBC fue elevado al m\u00ednimo proporcional por los d\u00edas cotizados.');\r\n      if (r.currentExcess > 0) alerts.push('Se agreg\u00f3 al IBC una parte del exceso mensual de pagos no salariales sobre el 40% de la remuneraci\u00f3n.');\r\n      if (r.missing40Context) alerts.push('La regla mensual del 40% se estim\u00f3 sin datos de la otra quincena; completa ese contexto para una aproximaci\u00f3n m\u00e1s fiable.');\r\n      if (r.usedProjection) alerts.push('El FSP quincenal se estim\u00f3 proyectando el IBC actual al doble porque no se inform\u00f3 el IBC de la otra quincena.');\r\n      if (r.restDays >= 3) alerts.push('Se informaron 3 o m\u00e1s d\u00edas de descanso obligatorio trabajados; revisa habitualidad y descanso compensatorio.');\r\n      const totalExtraHours = r.hours.hED + r.hours.hEN + r.hours.hEDDF + r.hours.hENDF;\r\n      const extraDays = Math.max(1, getNumber('ig-extra-days-count'));\r\n      if (totalExtraHours > 0) alerts.push('Verifica los l\u00edmites ordinarios de horas extra por d\u00eda y semana y cualquier autorizaci\u00f3n o excepci\u00f3n aplicable.');\r\n      if (totalExtraHours \/ extraDays > 2.01) alerts.push('El promedio de horas extra por d\u00eda informado supera 2 horas. Revisa la distribuci\u00f3n.');\r\n      if (r.integral) alerts.push('En salario integral no se liquidaron recargos ni horas extra por separado; el factor prestacional los compensa anticipadamente, salvo pacto expreso revisable.');\r\n    } else {\r\n      alerts.push('En el esquema parcial no se descuenta salud porque se confirm\u00f3 cobertura subsidiada o como beneficiario.');\r\n      if (r.nonSalary > 0) alerts.push('La regla del 40% sobre pagos no salariales no se automatiza en este m\u00f3dulo parcial simplificado; revisa su efecto en PILA con el caso mensual completo.');\r\n      alerts.push('Los recargos del contrato parcial deben estar incluidos en el salario ganado informado o liquidarse aparte con el horario real; este m\u00f3dulo no los estima autom\u00e1ticamente.');\r\n      alerts.push('Si existen varios contratos parciales, cada empleador debe cotizar de manera independiente seg\u00fan los d\u00edas laborados para \u00e9l.');\r\n      alerts.push('Los valores de ARL, caja y pensi\u00f3n patronal son informativos y no reducen el neto del trabajador.');\r\n    }\r\n\r\n    $('#ig-alerts').innerHTML = '<div class=\"ig-note\"><strong>Alertas y alcance:<\/strong><br>' + alerts.map(escapeHtml).join('<br>') + '<\/div>';\r\n    $('#ig-results').classList.add('is-visible');\r\n    $('#ig-empty-result').style.display = 'none';\r\n    $('#ig-pdf-status').textContent = 'Reporte listo con detalle de bases y alcance.';\r\n    updatePreview();\r\n  }\r\n\r\n  function collectReport() {\r\n    const r = lastResult || calculate();\r\n    if (!r) return null;\r\n    const rows = [\r\n      ['Fecha del periodo', r.date.toLocaleDateString('es-CO')],\r\n      ['Esquema', r.scheme === 'partial' ? 'Tiempo parcial \/ por semanas' : (r.integral ? 'N\u00f3mina ordinaria integral' : 'N\u00f3mina ordinaria')],\r\n      ['Salario base \/ ganado', fmtMoney(r.baseSalary)],\r\n      ['Total devengado', fmtMoney(r.totalEarned)],\r\n      ['Total deducido', fmtMoney(r.totalDeductions)],\r\n      ['IBC principal', fmtMoney(r.ibc)],\r\n      ['Neto a pagar', fmtMoney(r.net)]\r\n    ];\r\n    const details = r.scheme === 'partial' ? [\r\n      ['D\u00edas trabajados', String(r.days)], ['Semanas cotizadas', String(r.weeks)],\r\n      ['Pensi\u00f3n trabajador', '-' + fmtMoney(r.pension)], ['Pensi\u00f3n empleador', fmtMoney(r.pensionEmployer)],\r\n      ['ARL empleador', fmtMoney(r.arlEmployer)], ['Caja empleador', fmtMoney(r.ccfEmployer)]\r\n    ] : [\r\n      ['D\u00edas reconocidos', String(r.paidDays)], ['Valor hora', fmtMoney(r.hourValue)],\r\n      ['Recargos y extras', fmtMoney(r.totalExtras)], ['Salud', '-' + fmtMoney(r.health)],\r\n      ['Pensi\u00f3n', '-' + fmtMoney(r.pension)], ['FSP', '-' + fmtMoney(r.fsp)]\r\n    ];\r\n    return {\r\n      title: 'Reporte calculadora salarial Colombia 2026',\r\n      subtitle: 'Simulaci\u00f3n educativa generada por InversionesGuru', rows, details,\r\n      disclaimer: 'C\u00e1lculo informativo para trabajadores dependientes del sector privado. No reemplaza n\u00f3mina oficial, PILA, revisi\u00f3n contractual, asesor\u00eda laboral o tributaria.'\r\n    };\r\n  }\r\n\r\n  function ensureJsPdf() {\r\n    if (window.jspdf && window.jspdf.jsPDF) return Promise.resolve(window.jspdf.jsPDF);\r\n    return new Promise((resolve, reject) => {\r\n      const existing = document.querySelector('script[data-ig-jspdf=\"true\"]');\r\n      if (existing) {\r\n        existing.addEventListener('load', () => resolve(window.jspdf.jsPDF), { once: true });\r\n        existing.addEventListener('error', reject, { once: true });\r\n        return;\r\n      }\r\n      const script = document.createElement('script');\r\n      script.src = 'https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.1\/dist\/jspdf.umd.min.js';\r\n      script.async = true;\r\n      script.dataset.igJspdf = 'true';\r\n      script.onload = () => window.jspdf && window.jspdf.jsPDF ? resolve(window.jspdf.jsPDF) : reject(new Error('jsPDF no disponible'));\r\n      script.onerror = reject;\r\n      document.head.appendChild(script);\r\n    });\r\n  }\r\n\r\n  function exportPdf(jsPDF, report) {\r\n    const doc = new jsPDF({ unit: 'mm', format: 'a4' });\r\n    const margin = 18;\r\n    const width = 210 - margin * 2;\r\n    let y = 36;\r\n    function decorate() {\r\n      doc.setFillColor(15, 159, 122); doc.roundedRect(margin, 12, 12, 12, 2, 2, 'F');\r\n      doc.setTextColor(255,255,255); doc.setFontSize(8); doc.setFont('helvetica','bold'); doc.text('IG', margin + 3.1, 19.6);\r\n      doc.setTextColor(23,51,47); doc.setFontSize(11); doc.text('InversionesGuru', margin + 16, 17);\r\n      doc.setTextColor(91,111,104); doc.setFontSize(8); doc.setFont('helvetica','normal'); doc.text(CONFIG.siteUrl, margin + 16, 22);\r\n      doc.setDrawColor(215,228,223); doc.line(margin, 28, 210 - margin, 28); y = 36;\r\n    }\r\n    function nextPage(needed) { if (y + needed <= 278) return; doc.addPage(); decorate(); }\r\n    function section(title) { nextPage(18); doc.setFillColor(255,243,236); doc.roundedRect(margin, y - 5, width, 9, 2, 2, 'F'); doc.setTextColor(200,79,52); doc.setFont('helvetica','bold'); doc.setFontSize(11); doc.text(title, margin + 4, y + 1); y += 12; }\r\n    function row(label, value) { nextPage(8); doc.setTextColor(91,111,104); doc.setFont('helvetica','normal'); doc.setFontSize(9); doc.text(doc.splitTextToSize(String(label), 88), margin, y); doc.setTextColor(23,51,47); doc.setFont('helvetica','bold'); doc.text(doc.splitTextToSize(String(value), 70), margin + 96, y); y += 8; }\r\n    decorate();\r\n    doc.setTextColor(23,51,47); doc.setFont('helvetica','bold'); doc.setFontSize(18); doc.text(doc.splitTextToSize(report.title, width), margin, y); y += 9;\r\n    doc.setTextColor(91,111,104); doc.setFont('helvetica','normal'); doc.setFontSize(9); doc.text(doc.splitTextToSize(report.subtitle + ' \u00b7 ' + new Date().toLocaleString('es-CO'), width), margin, y); y += 12;\r\n    section('Resumen'); report.rows.forEach(item => row(item[0], item[1]));\r\n    section('Detalle'); report.details.forEach(item => row(item[0], item[1]));\r\n    section('Nota'); doc.setTextColor(91,111,104); doc.setFont('helvetica','normal'); doc.setFontSize(8); doc.text(doc.splitTextToSize(report.disclaimer, width), margin, y);\r\n    doc.save(CONFIG.pdfFile);\r\n  }\r\n\r\n  function printFallback(report) {\r\n    const popup = window.open('', '_blank', 'noopener,noreferrer,width=900,height=700');\r\n    if (!popup) throw new Error('Popup bloqueado');\r\n    const list = rows => rows.map(row => '<tr><th>' + escapeHtml(row[0]) + '<\/th><td>' + escapeHtml(row[1]) + '<\/td><\/tr>').join('');\r\n    popup.document.write('<!doctype html><html lang=\"es\"><head><meta charset=\"utf-8\"><title>' + escapeHtml(report.title) + '<\/title><style>body{font-family:Arial,sans-serif;color:#17332f;padding:36px}h1{font-size:24px}h2{margin-top:24px;color:#c84f34;font-size:16px}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #d8e5e0;padding:9px;text-align:left;font-size:13px}th{width:46%;color:#5b6f68}.url{color:#08755d;font-weight:700;margin-bottom:16px}@media print{button{display:none}}<\/style><\/head><body><div class=\"url\">' + CONFIG.siteUrl + '<\/div><h1>' + escapeHtml(report.title) + '<\/h1><h2>Resumen<\/h2><table>' + list(report.rows) + '<\/table><h2>Detalle<\/h2><table>' + list(report.details) + '<\/table><p>' + escapeHtml(report.disclaimer) + '<\/p><button onclick=\"window.print()\">Imprimir \/ guardar como PDF<\/button><\/body><\/html>');\r\n    popup.document.close(); popup.focus(); setTimeout(() => popup.print(), 250);\r\n  }\r\n\r\n  function buildShareUrl() {\r\n    const params = new URLSearchParams();\r\n    params.set('fecha', $('#ig-period-date').value);\r\n    params.set('esquema', getScheme());\r\n    params.set('salario', Math.round(computeBaseSalary(safeDate())));\r\n    params.set('jornada', $('#ig-weekly-hours').value || '');\r\n    params.set('periodo', getRadio('payPeriod') || 'monthly');\r\n    if (isPartial()) params.set('dias', $('#ig-partial-days').value || '');\r\n    return location.origin + location.pathname + '?' + params.toString();\r\n  }\r\n\r\n  function applyUrlParams() {\r\n    const q = new URLSearchParams(location.search);\r\n    if (!q.size) return;\r\n    if (q.get('fecha') && \/^2026-\\d{2}-\\d{2}$\/.test(q.get('fecha'))) $('#ig-period-date').value = q.get('fecha');\r\n    if (q.get('esquema')) {\r\n      const el = root.querySelector('input[name=\"employmentScheme\"][value=\"' + q.get('esquema') + '\"]');\r\n      if (el) el.checked = true;\r\n    }\r\n    if (q.get('jornada')) $('#ig-weekly-hours').value = q.get('jornada');\r\n    if (q.get('periodo')) {\r\n      const el = root.querySelector('input[name=\"payPeriod\"][value=\"' + q.get('periodo') + '\"]');\r\n      if (el) el.checked = true;\r\n    }\r\n    if (q.get('salario')) {\r\n      const manual = root.querySelector('input[name=\"salaryMode\"][value=\"manual\"]');\r\n      if (manual) manual.checked = true;\r\n      $('#ig-base-salary').value = fmtNumber(Number(q.get('salario')), 0);\r\n    }\r\n    if (q.get('dias')) $('#ig-partial-days').value = q.get('dias');\r\n  }\r\n\r\n  function reset() {\r\n    $('#ig-salary-form').reset();\r\n    $('#ig-period-date').value = todayISO();\r\n    $('#ig-weekly-hours').value = String(getMaxWeeklyHoursLegal(safeDate()));\r\n    $$('.ig-money').forEach(input => { input.value = input.id === 'ig-base-salary' ? '' : '0'; });\r\n    lastResult = null;\r\n    $('#ig-results').classList.remove('is-visible');\r\n    $('#ig-empty-result').style.display = '';\r\n    $('#ig-result-tables').innerHTML = '';\r\n    $('#ig-alerts').innerHTML = '';\r\n    const sideNetWrap = $('#ig-side-net-wrap');\r\n    if (sideNetWrap) sideNetWrap.hidden = true;\r\n    const resultDetails = root.querySelector('.ig-result-details');\r\n    if (resultDetails) resultDetails.open = false;\r\n    try { history.replaceState(null, '', location.pathname); } catch (error) {}\r\n    updateLegalUI();\r\n    goToStep(1);\r\n  }\r\n\r\n  function init() {\r\n    $('#ig-period-date').value = todayISO();\r\n    $('#ig-weekly-hours').value = String(getMaxWeeklyHoursLegal(safeDate()));\r\n\r\n    $$('.ig-money').forEach(input => {\r\n      input.addEventListener('input', () => {\r\n        const digits = input.value.replace(\/[^\\d]\/g, '');\r\n        input.value = digits ? Number(digits).toLocaleString('es-CO') : '';\r\n        updatePreview();\r\n      });\r\n      input.addEventListener('blur', () => {\r\n        if (!input.value && input.id !== 'ig-base-salary') input.value = '0';\r\n        else formatMoneyInput(input);\r\n        updatePreview();\r\n      });\r\n    });\r\n\r\n    root.addEventListener('input', updateLegalUI);\r\n    root.addEventListener('change', updateLegalUI);\r\n\r\n    $$('.ig-step-tab').forEach(tab => tab.addEventListener('click', () => {\r\n      const target = Number(tab.dataset.stepTarget);\r\n      if (target <= currentStep || validateUntil(target)) goToStep(target);\r\n    }));\r\n\r\n    root.addEventListener('click', event => {\r\n      const next = event.target.closest('[data-next]');\r\n      const prev = event.target.closest('[data-prev]');\r\n      if (next) { const target = Number(next.dataset.next); if (validateUntil(target)) goToStep(target); }\r\n      if (prev) goToStep(Number(prev.dataset.prev));\r\n    });\r\n\r\n    $('#ig-calculate').addEventListener('click', () => { const result = calculate(); if (result) goToStep(5); });\r\n    $('#ig-reset').addEventListener('click', reset);\r\n    $('#ig-print').addEventListener('click', () => { const report = collectReport(); if (report) printFallback(report); });\r\n\r\n    $('#ig-pdf').addEventListener('click', async () => {\r\n      const report = collectReport(); if (!report) return;\r\n      const button = $('#ig-pdf'); const status = $('#ig-pdf-status'); const old = button.innerHTML;\r\n      button.disabled = true; button.textContent = 'Generando PDF...'; status.textContent = 'Preparando el reporte.';\r\n      try { const jsPDF = await ensureJsPdf(); exportPdf(jsPDF, report); status.textContent = 'PDF descargado.'; }\r\n      catch (error) {\r\n        try { printFallback(report); status.textContent = 'Se abri\u00f3 la vista de impresi\u00f3n como alternativa.'; }\r\n        catch (fallbackError) { status.textContent = 'No fue posible generar el reporte.'; }\r\n      } finally { button.innerHTML = old; button.disabled = false; }\r\n    });\r\n\r\n    $('#ig-share').addEventListener('click', async () => {\r\n      const url = buildShareUrl();\r\n      try {\r\n        await navigator.clipboard.writeText(url);\r\n        try { history.replaceState(null, '', url); } catch (error) {}\r\n        $('#ig-toast').classList.add('is-visible');\r\n        setTimeout(() => $('#ig-toast').classList.remove('is-visible'), 2500);\r\n      } catch (error) { $('#ig-pdf-status').textContent = 'No fue posible copiar el enlace.'; }\r\n    });\r\n\r\n    applyUrlParams();\r\n    updateLegalUI();\r\n  }\r\n\r\n  init();\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-81a64e0 e-flex e-con-boxed e-con e-parent\" data-id=\"81a64e0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29c8f47 elementor-widget elementor-widget-text-editor\" data-id=\"29c8f47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2 data-section-id=\"18wv9bc\" data-start=\"368\" data-end=\"444\"><strong><span style=\"color: #000000;\">Calculadora Salarial Colombia 2026: calcula tu salario neto<\/span><\/strong><\/h2><p data-start=\"446\" data-end=\"699\"><span style=\"color: #000000;\">Seamos honestos: a veces uno mira el desprendible de n\u00f3mina y piensa\u2026 \u201c\u00bfy esta resta de d\u00f3nde sali\u00f3?\u201d. Entre <strong data-start=\"555\" data-end=\"564\">salud<\/strong>, <strong data-start=\"566\" data-end=\"577\">pensi\u00f3n<\/strong>, <strong data-start=\"579\" data-end=\"591\">recargos<\/strong>, <strong data-start=\"593\" data-end=\"608\">horas extra<\/strong>, <strong data-start=\"610\" data-end=\"622\">domingos<\/strong>, <strong data-start=\"624\" data-end=\"636\">festivos<\/strong>, y el famoso <strong data-start=\"650\" data-end=\"675\">auxilio de transporte<\/strong>, es muy f\u00e1cil perderse.<\/span><\/p><p data-start=\"701\" data-end=\"932\"><span style=\"color: #000000;\">Por eso existe este <strong data-start=\"721\" data-end=\"769\">simulador \/ calculadora salarial de Colombia<\/strong>: una herramienta pensada para que, en pocos pasos, puedas estimar tu <strong data-start=\"839\" data-end=\"855\">salario neto<\/strong> (lo que realmente te llega) con par\u00e1metros alineados a la normativa vigente.<\/span><\/p><p data-start=\"934\" data-end=\"1042\"><span style=\"color: #000000;\">Y lo mejor: no te obliga a \u201csaber de n\u00f3mina\u201d. Solo respondes preguntas simples y el simulador hace el resto.<\/span><\/p><hr data-start=\"1044\" data-end=\"1047\" \/><h2 data-section-id=\"1kc4ze9\" data-start=\"1049\" data-end=\"1105\"><span style=\"color: #000000;\">\u2705 \u00bfQu\u00e9 es esta Calculadora Salarial y para qu\u00e9 sirve?<\/span><\/h2><p data-start=\"1107\" data-end=\"1206\"><span style=\"color: #000000;\">Esta <strong data-start=\"1112\" data-end=\"1150\">Calculadora Salarial Colombia 2026<\/strong> es un simulador que te ayuda a estimar, de forma clara:<\/span><\/p><ul data-start=\"1208\" data-end=\"1710\"><li data-section-id=\"qui77n\" data-start=\"1208\" data-end=\"1289\"><p data-start=\"1210\" data-end=\"1289\"><span style=\"color: #000000;\">Tu <strong data-start=\"1213\" data-end=\"1253\">salario por d\u00edas realmente laborados<\/strong> (si hubo ausencias no remuneradas).<\/span><\/p><\/li><li data-section-id=\"chuuk9\" data-start=\"1290\" data-end=\"1373\"><p data-start=\"1292\" data-end=\"1373\"><span style=\"color: #000000;\">El valor estimado de <strong data-start=\"1313\" data-end=\"1340\">horas extras y recargos<\/strong> (nocturno, dominical y festivo).<\/span><\/p><\/li><li data-section-id=\"1i76euc\" data-start=\"1374\" data-end=\"1448\"><p data-start=\"1376\" data-end=\"1448\"><span style=\"color: #000000;\">Si aplica el <strong data-start=\"1389\" data-end=\"1429\">auxilio de transporte o conectividad<\/strong> (seg\u00fan modalidad).<\/span><\/p><\/li><li data-section-id=\"12zbz91\" data-start=\"1449\" data-end=\"1624\"><p data-start=\"1451\" data-end=\"1624\"><span style=\"color: #000000;\">Las <strong data-start=\"1455\" data-end=\"1477\">deducciones de ley<\/strong> del trabajador: <strong data-start=\"1494\" data-end=\"1508\">salud (4%)<\/strong> y <strong data-start=\"1511\" data-end=\"1527\">pensi\u00f3n (4%)<\/strong>, calculadas sobre el <strong data-start=\"1549\" data-end=\"1556\">IBC<\/strong> (Ingreso Base de Cotizaci\u00f3n).<\/span><\/p><\/li><li data-section-id=\"1ukg8p0\" data-start=\"1625\" data-end=\"1710\"><p data-start=\"1627\" data-end=\"1710\"><span style=\"color: #000000;\">Un resumen final con <strong data-start=\"1648\" data-end=\"1667\">TOTAL DEVENGADO<\/strong>, <strong data-start=\"1669\" data-end=\"1687\">TOTAL DEDUCIDO<\/strong> y tu <strong data-start=\"1693\" data-end=\"1709\">NETO A PAGAR<\/strong>.<\/span><\/p><\/li><\/ul><p data-start=\"1712\" data-end=\"1798\"><span style=\"color: #000000;\">En otras palabras: es una forma r\u00e1pida de responder la pregunta que de verdad importa:<\/span><\/p><blockquote data-start=\"1800\" data-end=\"1858\"><p data-start=\"1802\" data-end=\"1858\"><span style=\"color: #000000;\"><strong data-start=\"1802\" data-end=\"1858\">\u00bfCu\u00e1nto me van a pagar \u201climpio\u201d este mes o quincena?<\/strong><\/span><\/p><\/blockquote><hr data-start=\"1860\" data-end=\"1863\" \/><h2 data-section-id=\"19ixbie\" data-start=\"1865\" data-end=\"1927\"><span style=\"color: #000000;\">\ud83d\udccc Normativas clave que el simulador tiene en cuenta (2026)<\/span><\/h2><p data-start=\"1929\" data-end=\"2077\"><span style=\"color: #000000;\">Para que una calculadora sea \u00fatil, no puede quedarse en \u201cpromedios\u201d. Tiene que trabajar con reglas reales. Estas son algunas de las m\u00e1s importantes:<\/span><\/p><h3 data-section-id=\"1bufo3i\" data-start=\"2079\" data-end=\"2117\"><span style=\"color: #000000;\">1) <strong data-start=\"2086\" data-end=\"2117\">Salario m\u00ednimo 2026 (SMMLV)<\/strong><\/span><\/h3><p data-start=\"2118\" data-end=\"2205\"><span style=\"color: #000000;\">El <strong data-start=\"2121\" data-end=\"2135\">SMMLV 2026<\/strong> qued\u00f3 fijado en <strong data-start=\"2152\" data-end=\"2166\">$1.750.905<\/strong>.<\/span><\/p><h3 data-section-id=\"umo6a4\" data-start=\"2207\" data-end=\"2261\"><span style=\"color: #000000;\">2) <strong data-start=\"2214\" data-end=\"2261\">Auxilio de transporte 2026 (y conectividad)<\/strong><\/span><\/h3><p data-start=\"2262\" data-end=\"2599\"><span style=\"color: #000000;\">El <strong data-start=\"2265\" data-end=\"2295\">auxilio de transporte 2026<\/strong> es <strong data-start=\"2299\" data-end=\"2311\">$249.095<\/strong> y se reconoce (en general) a trabajadores que devengan hasta <strong data-start=\"2373\" data-end=\"2384\">2 SMMLV<\/strong>. <\/span><br data-start=\"2423\" data-end=\"2426\" \/><span style=\"color: #000000;\">Y si est\u00e1s en <strong data-start=\"2440\" data-end=\"2459\">trabajo en casa<\/strong>, este valor puede reconocerse como <strong data-start=\"2495\" data-end=\"2530\">auxilio de conectividad digital<\/strong>, sin ser un \u201cdoble beneficio\u201d.<\/span><\/p><h3 data-section-id=\"mv06pg\" data-start=\"2601\" data-end=\"2661\"><span style=\"color: #000000;\">3) <strong data-start=\"2608\" data-end=\"2661\">Jornada laboral m\u00e1xima: 42 horas desde julio 2026<\/strong><\/span><\/h3><p data-start=\"2662\" data-end=\"2827\"><span style=\"color: #000000;\">La reducci\u00f3n de jornada avanza por etapas y desde el <strong data-start=\"2715\" data-end=\"2738\">15 de julio de 2026<\/strong> la jornada m\u00e1xima queda en <strong data-start=\"2766\" data-end=\"2788\">42 horas semanales<\/strong>.<\/span><\/p><h3 data-section-id=\"zxmv95\" data-start=\"2829\" data-end=\"2877\"><span style=\"color: #000000;\">4) <strong data-start=\"2836\" data-end=\"2877\">Recargo nocturno desde las 7:00 p. m.<\/strong><\/span><\/h3><p data-start=\"2878\" data-end=\"3055\"><span style=\"color: #000000;\">Desde el <strong data-start=\"2887\" data-end=\"2914\">25 de diciembre de 2025<\/strong>, la jornada nocturna inicia a las <strong data-start=\"2949\" data-end=\"2963\">7:00 p. m.<\/strong>, y el recargo es del <strong data-start=\"2985\" data-end=\"2992\">35%<\/strong> sobre la hora ordinaria.<\/span><\/p><h3 data-section-id=\"741kq9\" data-start=\"3057\" data-end=\"3112\"><span style=\"color: #000000;\">5) <strong data-start=\"3064\" data-end=\"3112\">Recargo dominical y festivo (sube por fases)<\/strong><\/span><\/h3><p data-start=\"3113\" data-end=\"3176\"><span style=\"color: #000000;\">El recargo por laborar en d\u00eda de descanso obligatorio sube as\u00ed:<\/span><\/p><ul data-start=\"3177\" data-end=\"3341\"><li data-section-id=\"19g5w72\" data-start=\"3177\" data-end=\"3218\"><p data-start=\"3179\" data-end=\"3218\"><span style=\"color: #000000;\"><strong data-start=\"3179\" data-end=\"3186\">80%<\/strong> desde el <strong data-start=\"3196\" data-end=\"3218\">1 de julio de 2025<\/strong><\/span><\/p><\/li><li data-section-id=\"1tbrxbw\" data-start=\"3219\" data-end=\"3260\"><p data-start=\"3221\" data-end=\"3260\"><span style=\"color: #000000;\"><strong data-start=\"3221\" data-end=\"3228\">90%<\/strong> desde el <strong data-start=\"3238\" data-end=\"3260\">1 de julio de 2026<\/strong><\/span><\/p><\/li><li data-section-id=\"i9n6uw\" data-start=\"3261\" data-end=\"3341\"><p data-start=\"3263\" data-end=\"3341\"><span style=\"color: #000000;\"><strong data-start=\"3263\" data-end=\"3271\">100%<\/strong> desde el <strong data-start=\"3281\" data-end=\"3303\">1 de julio de 2027<\/strong><\/span><\/p><\/li><\/ul><h3 data-section-id=\"le283w\" data-start=\"3343\" data-end=\"3388\"><span style=\"color: #000000;\">6) <strong data-start=\"3350\" data-end=\"3388\">Salario integral: IBC sobre el 70%<\/strong><\/span><\/h3><p data-start=\"3389\" data-end=\"3537\"><span style=\"color: #000000;\">Si tu contrato es de <strong data-start=\"3410\" data-end=\"3430\">salario integral<\/strong>, las cotizaciones se calculan sobre el <strong data-start=\"3470\" data-end=\"3477\">70%<\/strong> del salario integral.<\/span><\/p><h3 data-section-id=\"oc637\" data-start=\"3539\" data-end=\"3592\"><span style=\"color: #000000;\">7) <strong data-start=\"3546\" data-end=\"3592\">Fondo de Solidaridad Pensional (si aplica)<\/strong><\/span><\/h3><p data-start=\"3593\" data-end=\"3748\"><span style=\"color: #000000;\">Si tu <strong data-start=\"3599\" data-end=\"3631\">ingreso mensual es \u2265 4 SMMLV<\/strong>, existe un aporte adicional con destino al <strong data-start=\"3675\" data-end=\"3709\">Fondo de Solidaridad Pensional<\/strong>.<\/span><\/p><hr data-start=\"3750\" data-end=\"3753\" \/><h2 data-section-id=\"cr4ycp\" data-start=\"3755\" data-end=\"3810\"><span style=\"color: #000000;\">\ud83e\udded C\u00f3mo usar el simulador (paso a paso y sin estr\u00e9s)<\/span><\/h2><p data-start=\"3812\" data-end=\"3931\"><span style=\"color: #000000;\">La calculadora est\u00e1 dise\u00f1ada como una gu\u00eda corta, en \u201cpantallas\u201d, para que no te sientas llenando un formulario eterno.<\/span><\/p><h3 data-section-id=\"1amnkf\" data-start=\"3933\" data-end=\"3966\"><span style=\"color: #000000;\"><strong data-start=\"3937\" data-end=\"3966\">Paso 1: Salario y jornada<\/strong><\/span><\/h3><p data-start=\"3967\" data-end=\"3990\"><span style=\"color: #000000;\">Aqu\u00ed defines lo b\u00e1sico:<\/span><\/p><ul data-start=\"3991\" data-end=\"4224\"><li data-section-id=\"1e5xy08\" data-start=\"3991\" data-end=\"4108\"><p data-start=\"3993\" data-end=\"4108\"><span style=\"color: #000000;\">La <strong data-start=\"3996\" data-end=\"4017\">fecha del per\u00edodo<\/strong> (esto permite que el simulador ajuste jornada m\u00e1xima y recargos seg\u00fan cambian las normas).<\/span><\/p><\/li><li data-section-id=\"9os5zc\" data-start=\"4109\" data-end=\"4159\"><p data-start=\"4111\" data-end=\"4159\"><span style=\"color: #000000;\">Si ganas el <strong data-start=\"4123\" data-end=\"4132\">SMMLV<\/strong> o si tu salario es \u201cotro\u201d.<\/span><\/p><\/li><li data-section-id=\"1h9hy4z\" data-start=\"4160\" data-end=\"4224\"><p data-start=\"4162\" data-end=\"4224\"><span style=\"color: #000000;\">Las <strong data-start=\"4166\" data-end=\"4200\">horas semanales de tu contrato<\/strong> (por ejemplo, 42 o 44).<\/span><\/p><\/li><\/ul><p data-start=\"4226\" data-end=\"4358\"><span style=\"color: #000000;\">\ud83d\udfe2 Tip real: si te pagan el m\u00ednimo y est\u00e1s a 42 horas, el simulador lo ajusta proporcionalmente para que no \u201csuene raro\u201d el c\u00e1lculo.<\/span><\/p><hr data-start=\"4360\" data-end=\"4363\" \/><h3 data-section-id=\"1wc0q8\" data-start=\"4365\" data-end=\"4402\"><span style=\"color: #000000;\"><strong data-start=\"4369\" data-end=\"4402\">Paso 2: Periodicidad del pago<\/strong><\/span><\/h3><p data-start=\"4403\" data-end=\"4427\"><span style=\"color: #000000;\">Seleccionas si te pagan:<\/span><\/p><ul data-start=\"4428\" data-end=\"4477\"><li data-section-id=\"1jwze64\" data-start=\"4428\" data-end=\"4451\"><p data-start=\"4430\" data-end=\"4451\"><span style=\"color: #000000;\"><strong data-start=\"4430\" data-end=\"4441\">Mensual<\/strong> (30 d\u00edas)<\/span><\/p><\/li><li data-section-id=\"1hipws0\" data-start=\"4452\" data-end=\"4477\"><p data-start=\"4454\" data-end=\"4477\"><span style=\"color: #000000;\"><strong data-start=\"4454\" data-end=\"4467\">Quincenal<\/strong> (15 d\u00edas)<\/span><\/p><\/li><\/ul><p data-start=\"4479\" data-end=\"4547\"><span style=\"color: #000000;\">Esto importa mucho, porque las ausencias y el auxilio se prorratean.<\/span><\/p><hr data-start=\"4549\" data-end=\"4552\" \/><h3 data-section-id=\"j9y8ye\" data-start=\"4554\" data-end=\"4594\"><span style=\"color: #000000;\"><strong data-start=\"4558\" data-end=\"4594\">Paso 3: Ausencias no remuneradas<\/strong><\/span><\/h3><p data-start=\"4595\" data-end=\"4619\"><span style=\"color: #000000;\">Aqu\u00ed indicas si tuviste:<\/span><\/p><ul data-start=\"4620\" data-end=\"4670\"><li data-section-id=\"1oghbbc\" data-start=\"4620\" data-end=\"4645\"><p data-start=\"4622\" data-end=\"4645\"><span style=\"color: #000000;\">D\u00edas completos no pagos<\/span><\/p><\/li><li data-section-id=\"l5ly9o\" data-start=\"4646\" data-end=\"4670\"><p data-start=\"4648\" data-end=\"4670\"><span style=\"color: #000000;\">Horas\/minutos no pagos<\/span><\/p><\/li><\/ul><p data-start=\"4672\" data-end=\"4767\"><span style=\"color: #000000;\">Esto sirve para que el simulador no te pinte un neto \u201cbonito\u201d que no corresponde a tu realidad.<\/span><\/p><hr data-start=\"4769\" data-end=\"4772\" \/><h3 data-section-id=\"12i6zuh\" data-start=\"4774\" data-end=\"4817\"><span style=\"color: #000000;\"><strong data-start=\"4778\" data-end=\"4817\">Paso 4: Ingresos y descuentos extra<\/strong><\/span><\/h3><p data-start=\"4818\" data-end=\"4874\"><span style=\"color: #000000;\">Incluyes cosas que en la vida real pasan todo el tiempo:<\/span><\/p><ul data-start=\"4875\" data-end=\"5014\"><li data-section-id=\"6onn8h\" data-start=\"4875\" data-end=\"4921\"><p data-start=\"4877\" data-end=\"4921\"><span style=\"color: #000000;\"><strong data-start=\"4877\" data-end=\"4909\">Bonificaciones no salariales<\/strong> (si aplica)<\/span><\/p><\/li><li data-section-id=\"12wq6wo\" data-start=\"4922\" data-end=\"4963\"><p data-start=\"4924\" data-end=\"4963\"><span style=\"color: #000000;\"><strong data-start=\"4924\" data-end=\"4963\">Comisiones u otros pagos salariales<\/strong><\/span><\/p><\/li><li data-section-id=\"1jtwjhz\" data-start=\"4964\" data-end=\"5014\"><p data-start=\"4966\" data-end=\"5014\"><span style=\"color: #000000;\"><strong data-start=\"4966\" data-end=\"4986\">Otros descuentos<\/strong> (libranzas, embargos, etc.)<\/span><\/p><\/li><\/ul><hr data-start=\"5016\" data-end=\"5019\" \/><h3 data-section-id=\"1db5uhf\" data-start=\"5021\" data-end=\"5077\"><span style=\"color: #000000;\"><strong data-start=\"5025\" data-end=\"5077\">Paso 5: Domingos y festivos en jornada ordinaria<\/strong><\/span><\/h3><p data-start=\"5078\" data-end=\"5282\"><span style=\"color: #000000;\">Si trabajaste <strong data-start=\"5092\" data-end=\"5113\">domingos\/festivos<\/strong> como parte de tu jornada, puedes registrar horas y el simulador calcula el <strong data-start=\"5189\" data-end=\"5210\">recargo adicional<\/strong> correspondiente (seg\u00fan la fecha).<\/span><\/p><hr data-start=\"5284\" data-end=\"5287\" \/><h3 data-section-id=\"194h9of\" data-start=\"5289\" data-end=\"5327\"><span style=\"color: #000000;\"><strong data-start=\"5293\" data-end=\"5327\">Paso 6: Recargos y horas extra<\/strong><\/span><\/h3><p data-start=\"5328\" data-end=\"5377\"><span style=\"color: #000000;\">Este es el \u201cnivel pro\u201d, pero explicado en humano.<\/span><\/p><p data-start=\"5379\" data-end=\"5388\"><span style=\"color: #000000;\">Ingresas:<\/span><\/p><ul data-start=\"5389\" data-end=\"5554\"><li data-section-id=\"e574kw\" data-start=\"5389\" data-end=\"5477\"><p data-start=\"5391\" data-end=\"5477\"><span style=\"color: #000000;\"><strong data-start=\"5391\" data-end=\"5411\">Recargo nocturno<\/strong> (hora ordinaria con +35%)<\/span><\/p><\/li><li data-section-id=\"x6q393\" data-start=\"5478\" data-end=\"5515\"><p data-start=\"5480\" data-end=\"5515\"><span style=\"color: #000000;\"><strong data-start=\"5480\" data-end=\"5515\">Horas extra diurnas y nocturnas<\/strong><\/span><\/p><\/li><li data-section-id=\"11uxb6r\" data-start=\"5516\" data-end=\"5554\"><p data-start=\"5518\" data-end=\"5554\"><span style=\"color: #000000;\"><strong data-start=\"5518\" data-end=\"5554\">Horas extra dominicales\/festivas<\/strong><\/span><\/p><\/li><\/ul><p data-start=\"5556\" data-end=\"5628\"><span style=\"color: #000000;\">Y el simulador usa tu <strong data-start=\"5578\" data-end=\"5605\">valor de hora ordinaria<\/strong> para multiplicar todo.<\/span><\/p><hr data-start=\"5630\" data-end=\"5633\" \/><h3 data-section-id=\"1os091\" data-start=\"5635\" data-end=\"5660\"><span style=\"color: #000000;\"><strong data-start=\"5639\" data-end=\"5660\">Paso 7: Resultado<\/strong><\/span><\/h3><p data-start=\"5661\" data-end=\"5694\"><span style=\"color: #000000;\">Te entrega un cuadro clarito con:<\/span><\/p><ul data-start=\"5695\" data-end=\"5815\"><li data-section-id=\"1woa50z\" data-start=\"5695\" data-end=\"5722\"><p data-start=\"5697\" data-end=\"5722\"><span style=\"color: #000000;\"><strong data-start=\"5697\" data-end=\"5722\">Devengados (ingresos)<\/strong><\/span><\/p><\/li><li data-section-id=\"1ien618\" data-start=\"5723\" data-end=\"5751\"><p data-start=\"5725\" data-end=\"5751\"><span style=\"color: #000000;\"><strong data-start=\"5725\" data-end=\"5751\">Deducidos (descuentos)<\/strong><\/span><\/p><\/li><li data-section-id=\"193zanv\" data-start=\"5752\" data-end=\"5773\"><p data-start=\"5754\" data-end=\"5773\"><span style=\"color: #000000;\"><strong data-start=\"5754\" data-end=\"5773\">TOTAL DEVENGADO<\/strong><\/span><\/p><\/li><li data-section-id=\"hv5bgb\" data-start=\"5774\" data-end=\"5794\"><p data-start=\"5776\" data-end=\"5794\"><span style=\"color: #000000;\"><strong data-start=\"5776\" data-end=\"5794\">TOTAL DEDUCIDO<\/strong><\/span><\/p><\/li><li data-section-id=\"6rvm0p\" data-start=\"5795\" data-end=\"5815\"><p data-start=\"5797\" data-end=\"5815\"><span style=\"color: #000000;\">\u2705 <strong data-start=\"5799\" data-end=\"5815\">NETO A PAGAR<\/strong><\/span><\/p><\/li><\/ul><hr data-start=\"5817\" data-end=\"5820\" \/><h2 data-section-id=\"hgzbw3\" data-start=\"5822\" data-end=\"5865\"><span style=\"color: #000000;\">\ud83e\uddfe C\u00f3mo leer el resultado (sin perderte)<\/span><\/h2><p data-start=\"5867\" data-end=\"5904\"><span style=\"color: #000000;\">Piensa en tu n\u00f3mina como una balanza:<\/span><\/p><h3 data-section-id=\"3yh5jb\" data-start=\"5906\" data-end=\"5940\"><span style=\"color: #000000;\">\u2705 Devengado = lo que \u201cganaste\u201d<\/span><\/h3><p data-start=\"5941\" data-end=\"6033\"><span style=\"color: #000000;\">Incluye salario, recargos, extras, auxilio (si aplica) y bonificaciones (seg\u00fan corresponda).<\/span><\/p><h3 data-section-id=\"1pu7k8u\" data-start=\"6035\" data-end=\"6075\"><span style=\"color: #000000;\">\u274c Deducciones = lo que te descuentan<\/span><\/h3><p data-start=\"6076\" data-end=\"6094\"><span style=\"color: #000000;\">Normalmente ver\u00e1s:<\/span><\/p><ul data-start=\"6095\" data-end=\"6339\"><li data-section-id=\"1wnrnzv\" data-start=\"6095\" data-end=\"6190\"><p data-start=\"6097\" data-end=\"6190\"><span style=\"color: #000000;\"><strong data-start=\"6097\" data-end=\"6111\">Salud (4%)<\/strong> y <strong data-start=\"6114\" data-end=\"6130\">Pensi\u00f3n (4%)<\/strong>, sobre el <strong data-start=\"6141\" data-end=\"6148\">IBC<\/strong><\/span><\/p><\/li><li data-section-id=\"13eq3ka\" data-start=\"6191\" data-end=\"6292\"><p data-start=\"6193\" data-end=\"6292\"><span style=\"color: #000000;\">Si aplica, <strong data-start=\"6204\" data-end=\"6238\">Fondo de Solidaridad Pensional<\/strong> (\u2265 4 SMMLV)<\/span><\/p><\/li><li data-section-id=\"1xs5jua\" data-start=\"6293\" data-end=\"6339\"><p data-start=\"6295\" data-end=\"6339\"><span style=\"color: #000000;\">Y los descuentos adicionales que ingresaste.<\/span><\/p><\/li><\/ul><h3 data-section-id=\"i20pv\" data-start=\"6341\" data-end=\"6386\"><span style=\"color: #000000;\">\u2705 Neto a pagar = lo que llega a tu cuenta<\/span><\/h3><p data-start=\"6387\" data-end=\"6438\"><span style=\"color: #000000;\">Este es el n\u00famero que uno quiere ver sin sorpresas.<\/span><\/p><hr data-start=\"6440\" data-end=\"6443\" \/><h2 data-section-id=\"7bymow\" data-start=\"6445\" data-end=\"6488\"><span style=\"color: #000000;\">\u2b50 \u00bfPara qui\u00e9n es ideal esta calculadora?<\/span><\/h2><ul data-start=\"6490\" data-end=\"6940\"><li data-section-id=\"qmc9ar\" data-start=\"6490\" data-end=\"6573\"><p data-start=\"6492\" data-end=\"6573\"><span style=\"color: #000000;\">Si est\u00e1s comparando ofertas laborales y quieres estimar el <strong data-start=\"6551\" data-end=\"6572\">salario neto real<\/strong>.<\/span><\/p><\/li><li data-section-id=\"12re7vj\" data-start=\"6574\" data-end=\"6678\"><p data-start=\"6576\" data-end=\"6678\"><span style=\"color: #000000;\">Si trabajaste <strong data-start=\"6590\" data-end=\"6600\">noches<\/strong>, <strong data-start=\"6602\" data-end=\"6614\">domingos<\/strong> o hiciste <strong data-start=\"6625\" data-end=\"6640\">horas extra<\/strong> y quieres validar si te pagaron bien.<\/span><\/p><\/li><li data-section-id=\"4nyyqq\" data-start=\"6679\" data-end=\"6812\"><p data-start=\"6681\" data-end=\"6812\"><span style=\"color: #000000;\">Si est\u00e1s en <strong data-start=\"6693\" data-end=\"6712\">trabajo en casa<\/strong> y quieres entender el tema del <strong data-start=\"6744\" data-end=\"6771\">auxilio de conectividad<\/strong>.<\/span><\/p><\/li><li data-section-id=\"150u1ay\" data-start=\"6813\" data-end=\"6940\"><p data-start=\"6815\" data-end=\"6940\"><span style=\"color: #000000;\">Si tu contrato es de <strong data-start=\"6836\" data-end=\"6856\">salario integral<\/strong> y quieres ver el impacto del <strong data-start=\"6886\" data-end=\"6899\">IBC (70%)<\/strong>.<\/span><\/p><\/li><\/ul><hr data-start=\"7403\" data-end=\"7406\" \/><h2 data-section-id=\"9eqxoy\" data-start=\"7408\" data-end=\"7439\"><span style=\"color: #000000;\">\u2753 Preguntas frecuentes (FAQ)<\/span><\/h2><h3 data-section-id=\"1rx7lu\" data-start=\"7441\" data-end=\"7481\"><span style=\"color: #000000;\">\u00bfLa calculadora es \u201cexacta\u201d al 100%?<\/span><\/h3><p data-start=\"7482\" data-end=\"7657\"><span style=\"color: #000000;\">Es una <strong data-start=\"7489\" data-end=\"7515\">estimaci\u00f3n muy cercana<\/strong>, pero tu n\u00f3mina real puede variar por pol\u00edticas internas, redondeos, acuerdos, conceptos salariales espec\u00edficos, o novedades que no ingreses.<\/span><\/p><h3 data-section-id=\"1ox9oec\" data-start=\"7659\" data-end=\"7704\"><span style=\"color: #000000;\">\u00bfEl auxilio de transporte siempre aplica?<\/span><\/h3><p data-start=\"7705\" data-end=\"7855\"><span style=\"color: #000000;\">No. Usualmente aplica si devengas hasta <strong data-start=\"7745\" data-end=\"7756\">2 SMMLV<\/strong> y depende de tu modalidad (presencial vs trabajo en casa).<\/span><\/p><h3 data-section-id=\"xvy2eq\" data-start=\"7857\" data-end=\"7902\"><span style=\"color: #000000;\">\u00bfDesde qu\u00e9 hora se paga recargo nocturno?<\/span><\/h3><p data-start=\"7903\" data-end=\"8026\"><span style=\"color: #000000;\">Desde el <strong data-start=\"7912\" data-end=\"7939\">25 de diciembre de 2025<\/strong>, desde las <strong data-start=\"7951\" data-end=\"7965\">7:00 p. m.<\/strong> con recargo <strong data-start=\"7978\" data-end=\"7985\">35%<\/strong>.<\/span><\/p><h3 data-section-id=\"ijvcw6\" data-start=\"8028\" data-end=\"8084\"><span style=\"color: #000000;\">\u00bfCu\u00e1nto es el recargo por domingo o festivo en 2026?<\/span><\/h3><p data-start=\"8085\" data-end=\"8240\"><span style=\"color: #000000;\">Depende del semestre: desde el <strong data-start=\"8116\" data-end=\"8138\">1 de julio de 2026<\/strong>, el recargo sube al <strong data-start=\"8159\" data-end=\"8166\">90%<\/strong> (antes era 80% desde julio 2025).<\/span><\/p><h3 data-section-id=\"11pz464\" data-start=\"8242\" data-end=\"8261\"><span style=\"color: #000000;\">\u00bfQu\u00e9 es el IBC?<\/span><\/h3><p data-start=\"8262\" data-end=\"8364\"><span style=\"color: #000000;\">Es el <strong data-start=\"8268\" data-end=\"8298\">Ingreso Base de Cotizaci\u00f3n<\/strong>: la base sobre la que se calculan salud, pensi\u00f3n y otros aportes.<\/span><\/p><h3 data-section-id=\"j6vjwr\" data-start=\"8366\" data-end=\"8418\"><span style=\"color: #000000;\">Si tengo salario integral, \u00bfpor qu\u00e9 el IBC baja?<\/span><\/h3><p data-start=\"8419\" data-end=\"8536\"><span style=\"color: #000000;\">Porque en <strong data-start=\"8429\" data-end=\"8449\">salario integral<\/strong> las cotizaciones se calculan sobre el <strong data-start=\"8488\" data-end=\"8495\">70%<\/strong>.<\/span><\/p><h3 data-section-id=\"1a18nd9\" data-start=\"8538\" data-end=\"8591\"><span style=\"color: #000000;\">\u00bfCu\u00e1ndo aplica el Fondo de Solidaridad Pensional?<\/span><\/h3><p data-start=\"8592\" data-end=\"8723\"><span style=\"color: #000000;\">Cuando tu ingreso mensual es <strong data-start=\"8621\" data-end=\"8651\">igual o superior a 4 SMMLV<\/strong>, se aplica un aporte adicional.<\/span><\/p><hr data-start=\"8725\" data-end=\"8728\" \/><h2 data-section-id=\"86cys8\" data-start=\"8730\" data-end=\"8789\"><span style=\"color: #000000;\">\u2705 Cierre: tu n\u00f3mina no deber\u00eda sentirse como un misterio<\/span><\/h2><p data-start=\"8791\" data-end=\"8893\"><span style=\"color: #000000;\">La idea de este simulador no es que te vuelvas contador. Es que tengas <strong data-start=\"8862\" data-end=\"8874\">claridad<\/strong>, que puedas decir:<\/span><\/p><ul data-start=\"8895\" data-end=\"8999\"><li data-section-id=\"jadlqp\" data-start=\"8895\" data-end=\"8922\"><p data-start=\"8897\" data-end=\"8922\"><span style=\"color: #000000;\">\u201cEsto me deber\u00edan pagar.\u201d<\/span><\/p><\/li><li data-section-id=\"xrdib\" data-start=\"8923\" data-end=\"8954\"><p data-start=\"8925\" data-end=\"8954\"><span style=\"color: #000000;\">\u201cEsto me deber\u00edan descontar.\u201d<\/span><\/p><\/li><li data-section-id=\"mm6ifg\" data-start=\"8955\" data-end=\"8999\"><p data-start=\"8957\" data-end=\"8999\"><span style=\"color: #000000;\">\u201cEsto es lo que realmente me debe llegar.\u201d<\/span><\/p><\/li><\/ul><p data-start=\"9001\" data-end=\"9180\"><span style=\"color: #000000;\">Si lo usas cada vez que cambias de turno, haces extras o te llega una prima\/bono raro, vas a notar algo: <strong data-start=\"9106\" data-end=\"9149\">empiezas a entender tu n\u00f3mina de verdad<\/strong>, sin depender de suposiciones.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calculadora salarial Colombia 2026 Calcula tu salario neto estimado en Colombia y entiende cu\u00e1nto te descuentan por salud, pensi\u00f3n y Fondo de Solidaridad, adem\u00e1s de auxilio, horas extra, recargos y trabajo por d\u00edas o semanas. \u2713 Salario neto \u2713 Salud y pensi\u00f3n \u2713 Horas extra y recargos \u2713 Trabajo por d\u00edas Empieza con lo b\u00e1sico&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":5032,"template":"elementor_header_footer","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-5890","herramientas","type-herramientas","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas"}],"about":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/types\/herramientas"}],"author":[{"embeddable":true,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":39,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5890\/revisions"}],"predecessor-version":[{"id":8808,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5890\/revisions\/8808"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media\/5032"}],"wp:attachment":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media?parent=5890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}