{"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-02-20T17:26:09","modified_gmt":"2026-02-20T22:26:09","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-flex e-con-boxed e-con e-parent\" data-id=\"7be2195\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\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-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n  \/* === SISTEMA DE DISE\u00d1O ENCAPSULADO === *\/\r\n  #salary-calc-wrapper {\r\n    --brand-primary: #0D9488 !important;\r\n    --brand-primary-hover: #0F766E !important;\r\n    --brand-primary-light: #f0fdfa !important;\r\n    --brand-accent-green: #16a34a !important;\r\n    --brand-accent-amber: #d97706 !important;\r\n    --brand-text-main: #1e293b !important;\r\n    --brand-text-muted: #64748b !important;\r\n    --brand-bg-main: #f8fafc !important;\r\n    --brand-bg-card: #ffffff !important;\r\n    --brand-border-soft: #e2e8f0 !important;\r\n    --brand-border-focus: #5eead4 !important;\r\n  }\r\n\r\n  #salary-calc-wrapper,\r\n  #salary-calc-wrapper * {\r\n    all: revert;\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  #salary-calc-wrapper {\r\n    font-family: 'Inter', sans-serif !important;\r\n    background-color: var(--brand-bg-main) !important;\r\n    color: var(--brand-text-main) !important;\r\n    line-height: 1.5 !important;\r\n    padding: 2rem !important;\r\n    min-height: 100vh !important;\r\n    display: block !important;\r\n    width: 100% !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .calculator-container {\r\n    max-width: 64rem !important;\r\n    margin: 0 auto !important;\r\n    display: block !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .calc-card,\r\n  #salary-calc-wrapper .question-card {\r\n    background-color: var(--brand-bg-card) !important;\r\n    border-radius: 1.25rem !important;\r\n    border: 1px solid var(--brand-border-soft) !important;\r\n    box-shadow: 0 10px 15px -3px rgb(0 0 0 \/ 0.05), 0 4px 6px -4px rgb(0 0 0 \/ 0.05) !important;\r\n    padding: 1.5rem !important;\r\n    margin-bottom: 2rem !important;\r\n  }\r\n  @media (min-width: 768px) {\r\n    #salary-calc-wrapper .question-card { padding: 2.5rem !important; }\r\n  }\r\n\r\n  #salary-calc-wrapper .header-gradient {\r\n    background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-hover)) !important;\r\n    color: #FFFFFF !important;\r\n    padding: 3rem 2rem !important;\r\n    border-radius: 1.25rem !important;\r\n    margin-bottom: 2rem !important;\r\n    box-shadow: 0 10px 15px -3px rgb(0 0 0 \/ 0.05) !important;\r\n    text-align: center !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    min-height: 200px !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .header-gradient > div {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 1rem !important;\r\n    width: 100% !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .header-gradient svg {\r\n    color: #FFFFFF !important;\r\n    stroke: #FFFFFF !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .header-title {\r\n    font-size: 1.875rem !important;\r\n    font-weight: 800 !important;\r\n    color: #FFFFFF !important;\r\n    line-height: 1.3 !important;\r\n    letter-spacing: -0.025em !important;\r\n    margin: 0 !important;\r\n    margin-top: 0.5rem !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .header-gradient p {\r\n    font-size: 0.875rem !important;\r\n    color: rgba(255, 255, 255, 0.95) !important;\r\n    margin: 0 !important;\r\n    line-height: 1.5 !important;\r\n    margin-top: 0.5rem !important;\r\n  }\r\n\r\n  #salary-calc-wrapper #progress-bar-container {\r\n    width: 100% !important;\r\n    height: 0.5rem !important;\r\n    background: var(--brand-border-soft) !important;\r\n    border-radius: 0.75rem !important;\r\n    overflow: hidden !important;\r\n    margin-bottom: 1.5rem !important;\r\n  }\r\n  #salary-calc-wrapper #progress-bar {\r\n    height: 100% !important;\r\n    background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-hover)) !important;\r\n    border-radius: 0.75rem !important;\r\n    transition: width 0.5s ease !important;\r\n  }\r\n  #salary-calc-wrapper .step-label {\r\n    font-size: 0.75rem !important;\r\n    color: var(--brand-text-muted) !important;\r\n    font-weight: 600 !important;\r\n    text-transform: uppercase !important;\r\n    letter-spacing: 0.05em !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .question-card {\r\n    display: none !important;\r\n    opacity: 0 !important;\r\n    transform: translateY(20px) !important;\r\n    transition: opacity 0.4s ease, transform 0.4s ease !important;\r\n  }\r\n  #salary-calc-wrapper .question-card.active { display: block !important; }\r\n  #salary-calc-wrapper .question-card.fade-in { opacity: 1 !important; transform: translateY(0) !important; }\r\n\r\n  #salary-calc-wrapper .question-card h2 {\r\n    font-size: 1.5rem !important;\r\n    font-weight: 700 !important;\r\n    color: var(--brand-text-main) !important;\r\n    margin-bottom: 1rem !important;\r\n    line-height: 1.2 !important;\r\n  }\r\n  #salary-calc-wrapper .question-card p {\r\n    color: var(--brand-text-muted) !important;\r\n    font-size: 0.875rem !important;\r\n    line-height: 1.6 !important;\r\n  }\r\n\r\n  #salary-calc-wrapper label {\r\n    display: block !important;\r\n    font-size: 0.875rem !important;\r\n    font-weight: 600 !important;\r\n    color: var(--brand-text-main) !important;\r\n    margin-bottom: 0.5rem !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .form-input {\r\n    width: 100% !important;\r\n    border: 1px solid var(--brand-border-soft) !important;\r\n    border-radius: 0.75rem !important;\r\n    padding: 0.75rem 1rem !important;\r\n    font-size: 1rem !important;\r\n    transition: all 0.2s !important;\r\n    background: var(--brand-bg-main) !important;\r\n    color: var(--brand-text-main) !important;\r\n    font-family: 'Inter', sans-serif !important;\r\n  }\r\n  #salary-calc-wrapper .form-input:focus {\r\n    outline: none !important;\r\n    border-color: var(--brand-border-focus) !important;\r\n    box-shadow: 0 0 0 3px var(--brand-primary-light) !important;\r\n    background: white !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .radio-option {\r\n    display: block !important;\r\n    cursor: pointer !important;\r\n    position: relative !important;\r\n    margin-bottom: 0.75rem !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option input[type=\"radio\"] {\r\n    position: absolute !important;\r\n    opacity: 0 !important;\r\n    pointer-events: none !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option > div {\r\n    border: 1px solid var(--brand-border-soft) !important;\r\n    border-radius: 0.75rem !important;\r\n    background: var(--brand-bg-card) !important;\r\n    transition: all 0.2s !important;\r\n    padding: 1rem !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option:hover > div {\r\n    border-color: var(--brand-primary) !important;\r\n    background: var(--brand-primary-light) !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option input[type=\"radio\"]:checked + div {\r\n    border-color: var(--brand-primary) !important;\r\n    background: var(--brand-primary-light) !important;\r\n  }\r\n  #salary-calc-wrapper .radio-custom-dot {\r\n    width: 20px !important;\r\n    height: 20px !important;\r\n    border-radius: 50% !important;\r\n    border: 2px solid var(--brand-border-soft) !important;\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    transition: all 0.2s !important;\r\n    flex-shrink: 0 !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option input[type=\"radio\"]:checked + div .radio-custom-dot {\r\n    border-color: var(--brand-primary) !important;\r\n    background: var(--brand-primary) !important;\r\n  }\r\n  #salary-calc-wrapper .radio-option input[type=\"radio\"]:checked + div .radio-custom-dot::after {\r\n    content: '' !important;\r\n    width: 8px !important;\r\n    height: 8px !important;\r\n    border-radius: 50% !important;\r\n    background: #FFFFFF !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .btn {\r\n    padding: 0.875rem 1.5rem !important;\r\n    border-radius: 0.75rem !important;\r\n    font-size: 0.875rem !important;\r\n    font-weight: 700 !important;\r\n    cursor: pointer !important;\r\n    transition: all 0.2s !important;\r\n    border: none !important;\r\n    font-family: 'Inter', sans-serif !important;\r\n    display: inline-flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 0.5rem !important;\r\n  }\r\n  #salary-calc-wrapper .btn:focus { outline: none !important; }\r\n  #salary-calc-wrapper .btn:focus-visible {\r\n    box-shadow: 0 0 0 4px var(--brand-primary-light) !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .btn-primary {\r\n    background-color: var(--brand-primary) !important;\r\n    color: white !important;\r\n  }\r\n  #salary-calc-wrapper .btn-primary:hover { background-color: var(--brand-primary-hover) !important; }\r\n  #salary-calc-wrapper .btn-secondary {\r\n    background-color: transparent !important;\r\n    color: var(--brand-text-muted) !important;\r\n    border: 2px solid var(--brand-border-soft) !important;\r\n  }\r\n  #salary-calc-wrapper .btn-secondary:hover {\r\n    border-color: var(--brand-text-muted) !important;\r\n    color: var(--brand-text-main) !important;\r\n    background-color: var(--brand-bg-main) !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .highlight-value {\r\n    color: var(--brand-primary) !important;\r\n    font-weight: 700 !important;\r\n    padding: 0.25rem 0.5rem !important;\r\n    background: var(--brand-primary-light) !important;\r\n    border-radius: 0.375rem !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .bg-blue-100 {\r\n    background: var(--brand-primary-light) !important;\r\n    padding: 1rem !important;\r\n    border-radius: 0.75rem !important;\r\n    border-left: 4px solid var(--brand-primary) !important;\r\n    font-size: 0.875rem !important;\r\n    margin-bottom: 1.5rem !important;\r\n  }\r\n\r\n  #salary-calc-wrapper .results-table {\r\n    width: 100% !important;\r\n    border-collapse: collapse !important;\r\n    margin-bottom: 1rem !important;\r\n    font-size: 0.875rem !important;\r\n    background: var(--brand-bg-card) !important;\r\n    border-radius: 0.75rem !important;\r\n    overflow: hidden !important;\r\n    box-shadow: 0 1px 3px rgb(0 0 0 \/ 0.05) !important;\r\n    border: 1px solid var(--brand-border-soft) !important;\r\n  }\r\n  #salary-calc-wrapper .results-table thead {\r\n    background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-hover)) !important;\r\n    color: #FFFFFF !important;\r\n  }\r\n  #salary-calc-wrapper .results-table th {\r\n    padding: 0.75rem 1rem !important;\r\n    text-align: left !important;\r\n    font-weight: 600 !important;\r\n    font-size: 0.75rem !important;\r\n    text-transform: uppercase !important;\r\n    letter-spacing: 0.05em !important;\r\n    border: none !important;\r\n  }\r\n  #salary-calc-wrapper .results-table tbody tr { border-bottom: 1px solid var(--brand-border-soft) !important; }\r\n  #salary-calc-wrapper .results-table tbody tr:hover { background: var(--brand-bg-main) !important; }\r\n  #salary-calc-wrapper .results-table td {\r\n    padding: 0.75rem 1rem !important;\r\n    color: var(--brand-text-main) !important;\r\n    border: none !important;\r\n  }\r\n  #salary-calc-wrapper .results-table .amount { text-align: right !important; font-weight: 600 !important; }\r\n  #salary-calc-wrapper .results-table .total-row { background: var(--brand-bg-main) !important; font-weight: 700 !important; }\r\n  #salary-calc-wrapper .results-table .net-pay-row {\r\n    background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-hover)) !important;\r\n    color: #FFFFFF !important;\r\n    font-weight: 700 !important;\r\n    font-size: 0.875rem !important;\r\n  }\r\n  #salary-calc-wrapper .results-table .net-pay-row td { color: #FFFFFF !important; padding: 1rem !important; }\r\n\r\n  \/* Utilities *\/\r\n  #salary-calc-wrapper .text-red-600 { color: #dc2626 !important; }\r\n  #salary-calc-wrapper .text-blue-600 { color: var(--brand-primary) !important; }\r\n  #salary-calc-wrapper .text-green { color: var(--brand-accent-green) !important; font-weight: 600 !important; }\r\n  #salary-calc-wrapper .text-amber { color: var(--brand-accent-amber) !important; font-weight: 600 !important; }\r\n  #salary-calc-wrapper .text-gray-600 { color: var(--brand-text-muted) !important; }\r\n  #salary-calc-wrapper .text-gray-500 { color: #999 !important; }\r\n  #salary-calc-wrapper .text-gray-700 { color: var(--brand-text-main) !important; }\r\n  #salary-calc-wrapper .text-xs { font-size: 0.75rem !important; }\r\n  #salary-calc-wrapper .text-sm { font-size: 0.875rem !important; }\r\n  #salary-calc-wrapper .text-center { text-align: center !important; }\r\n  #salary-calc-wrapper .hidden { display: none !important; }\r\n  #salary-calc-wrapper .font-medium { font-weight: 500 !important; }\r\n  #salary-calc-wrapper .font-semibold { font-weight: 600 !important; }\r\n  #salary-calc-wrapper .font-bold { font-weight: 700 !important; }\r\n\r\n  \/* Spacing *\/\r\n  #salary-calc-wrapper .mb-2 { margin-bottom: 0.5rem !important; }\r\n  #salary-calc-wrapper .mb-3 { margin-bottom: 0.75rem !important; }\r\n  #salary-calc-wrapper .mb-4 { margin-bottom: 1rem !important; }\r\n  #salary-calc-wrapper .mb-6 { margin-bottom: 1.5rem !important; }\r\n  #salary-calc-wrapper .mb-8 { margin-bottom: 2rem !important; }\r\n  #salary-calc-wrapper .mt-1 { margin-top: 0.25rem !important; }\r\n  #salary-calc-wrapper .mt-2 { margin-top: 0.5rem !important; }\r\n  #salary-calc-wrapper .mt-4 { margin-top: 1rem !important; }\r\n  #salary-calc-wrapper .mt-6 { margin-top: 1.5rem !important; }\r\n  #salary-calc-wrapper .mt-8 { margin-top: 2rem !important; }\r\n  #salary-calc-wrapper .p-3 { padding: 0.75rem !important; }\r\n  #salary-calc-wrapper .p-4 { padding: 1rem !important; }\r\n  #salary-calc-wrapper .pr-2 { padding-right: 0.5rem !important; }\r\n\r\n  \/* Flexbox *\/\r\n  #salary-calc-wrapper .flex { display: flex !important; }\r\n  #salary-calc-wrapper .flex-col { flex-direction: column !important; }\r\n  #salary-calc-wrapper .flex-col-reverse { flex-direction: column-reverse !important; }\r\n  #salary-calc-wrapper .items-center { align-items: center !important; }\r\n  #salary-calc-wrapper .justify-between { justify-content: space-between !important; }\r\n  #salary-calc-wrapper .justify-center { justify-content: center !important; }\r\n  #salary-calc-wrapper .justify-end { justify-content: flex-end !important; }\r\n  #salary-calc-wrapper .space-x-3 > * + * { margin-left: 0.75rem !important; }\r\n  #salary-calc-wrapper .space-x-4 > * + * { margin-left: 1rem !important; }\r\n  #salary-calc-wrapper .space-y-2 > * + * { margin-top: 0.5rem !important; }\r\n  #salary-calc-wrapper .flex-shrink-0 { flex-shrink: 0 !important; }\r\n  #salary-calc-wrapper .gap-3 { gap: 0.75rem !important; }\r\n  #salary-calc-wrapper .gap-4 { gap: 1rem !important; }\r\n\r\n  \/* Grid *\/\r\n  #salary-calc-wrapper .grid { display: grid !important; }\r\n  #salary-calc-wrapper .grid-cols-1 { grid-template-columns: 1fr !important; }\r\n  #salary-calc-wrapper .grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }\r\n\r\n  \/* Overflow *\/\r\n  #salary-calc-wrapper .max-h-60 { max-height: 240px !important; overflow-y: auto !important; }\r\n  #salary-calc-wrapper .max-h-80 { max-height: 320px !important; overflow-y: auto !important; }\r\n  #salary-calc-wrapper .overflow-x-auto { overflow-x: auto !important; }\r\n\r\n  \/* Border & Rounded *\/\r\n  #salary-calc-wrapper .border { border: 1px solid var(--brand-border-soft) !important; }\r\n  #salary-calc-wrapper .rounded-xl { border-radius: 0.75rem !important; }\r\n\r\n  \/* Width & Block *\/\r\n  #salary-calc-wrapper .block { display: block !important; }\r\n  #salary-calc-wrapper .w-full { width: 100% !important; }\r\n\r\n  \/* Footer *\/\r\n  #salary-calc-wrapper footer {\r\n    text-align: center !important;\r\n    padding: 2rem !important;\r\n    color: var(--brand-text-muted) !important;\r\n    font-size: 0.75rem !important;\r\n    margin-top: 2rem !important;\r\n    border-top: 1px solid var(--brand-border-soft) !important;\r\n  }\r\n\r\n  \/* Responsive *\/\r\n  @media (min-width: 640px) {\r\n    #salary-calc-wrapper .sm\\:grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }\r\n    #salary-calc-wrapper .sm\\:flex-row { flex-direction: row !important; }\r\n    #salary-calc-wrapper .sm\\:space-y-0 > * + * { margin-top: 0 !important; }\r\n    #salary-calc-wrapper .sm\\:mt-0 { margin-top: 0 !important; }\r\n    #salary-calc-wrapper .sm\\:w-auto { width: auto !important; }\r\n  }\r\n  @media (min-width: 768px) {\r\n    #salary-calc-wrapper .md\\:grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }\r\n    #salary-calc-wrapper .md\\:flex-row { flex-direction: row !important; }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    #salary-calc-wrapper { padding: 1rem !important; }\r\n    #salary-calc-wrapper .question-card { padding: 1.25rem !important; }\r\n    #salary-calc-wrapper .header-gradient { padding: 2rem 1rem !important; min-height: 160px !important; }\r\n    #salary-calc-wrapper .btn { width: 100% !important; }\r\n    #salary-calc-wrapper .header-title { font-size: 1.5rem !important; }\r\n  }\r\n  @media (max-width: 480px) {\r\n    #salary-calc-wrapper { padding: 0.5rem !important; }\r\n    #salary-calc-wrapper .question-card { padding: 1rem !important; }\r\n    #salary-calc-wrapper .header-title { font-size: 1.25rem !important; }\r\n    #salary-calc-wrapper .header-gradient p { font-size: 0.75rem !important; }\r\n    #salary-calc-wrapper .question-card h2 { font-size: 1.25rem !important; }\r\n    #salary-calc-wrapper .header-gradient { padding: 1.5rem 1rem !important; min-height: 140px !important; }\r\n  }\r\n<\/style>\r\n\r\n<div id=\"salary-calc-wrapper\">\r\n  <div id=\"salary-calc-app\">\r\n    <div class=\"calculator-container\">\r\n      <header class=\"header-gradient\">\r\n        <div>\r\n          <div style=\"flex-shrink: 0;\">\r\n            <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"48\" height=\"48\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n              <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\"\/>\r\n            <\/svg>\r\n          <\/div>\r\n          <div class=\"header-content\">\r\n            <h1 class=\"header-title\"> Calculadora Salarial Colombia <span id=\"calcYearLabel\">2026<\/span><\/h1>\r\n            <p>Estima tu salario neto con par\u00e1metros normativos actualizados.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/header>\r\n\r\n      <div id=\"stepper\">\r\n        <div class=\"mb-6\">\r\n          <div id=\"progress-bar-container\">\r\n            <div id=\"progress-bar\" style=\"width: 0%;\"><\/div>\r\n          <\/div>\r\n          <div class=\"flex justify-between mt-2\">\r\n            <span class=\"step-label\">Salario<\/span>\r\n            <span class=\"step-label\">Pagos<\/span>\r\n            <span class=\"step-label\">Horas<\/span>\r\n            <span class=\"step-label\">Resultado<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 1 -->\r\n        <div id=\"step1\" class=\"question-card\">\r\n          <h2>1. Ingreso y Jornada<\/h2>\r\n          <p class=\"mb-6 text-gray-600\">Selecciona la fecha del per\u00edodo (para ajustar recargos\/jornada) y tu salario base.<\/p>\r\n\r\n          <div class=\"mb-6\">\r\n            <label for=\"periodDate\">Fecha del per\u00edodo a liquidar:<\/label>\r\n            <input type=\"date\" id=\"periodDate\" class=\"form-input\">\r\n            <p id=\"normaHints\" class=\"text-xs text-gray-500 mt-2\"><\/p>\r\n          <\/div>\r\n\r\n          <p class=\"mb-2 font-medium\">Modalidad (auxilio):<\/p>\r\n          <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-6\">\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"modalidad\" value=\"presencial\" checked>\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Presencial (Transporte)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"modalidad\" value=\"casa\">\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Trabajo en casa (Conectividad)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n          <\/div>\r\n\r\n          <div class=\"mb-6\">\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"salarioIntegral\" value=\"no\" checked>\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Salario ordinario (normal)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"salarioIntegral\" value=\"si\">\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Salario integral (IBC = 70%)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n            <p class=\"text-xs text-gray-500 mt-2\">Si eliges \u201cintegral\u201d, la base de cotizaci\u00f3n (IBC) se calcula sobre el 70%.<\/p>\r\n          <\/div>\r\n\r\n          <p class=\"mb-2 font-medium\">\u00bfTu salario base es el M\u00ednimo Legal Vigente (SMMLV)?<\/p>\r\n          <p class=\"mb-4 text-sm text-gray-500\">\r\n            SMMLV <span id=\"smmlvYearLabel\">2026<\/span>:\r\n            <span id=\"smmlvValueDisplay\" class=\"highlight-value\">$1.750.905<\/span>\r\n            <span class=\"text-gray-500\"> \u00b7 Auxilio:\r\n              <span id=\"auxValueDisplay\" class=\"highlight-value\">$249.095<\/span>\r\n            <\/span>\r\n          <\/p>\r\n\r\n          <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-6\">\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"salarioTipo\" value=\"minimo\">\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">S\u00ed, gano el SMMLV<\/span>\r\n              <\/div>\r\n            <\/label>\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"salarioTipo\" value=\"otro\">\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">No, es otro valor<\/span>\r\n              <\/div>\r\n            <\/label>\r\n          <\/div>\r\n\r\n          <div id=\"otroSalarioContainer\" class=\"hidden mb-6\">\r\n            <label for=\"salarioBaseManual\">Tu salario base mensual (COP):<\/label>\r\n            <input type=\"text\" id=\"salarioBaseManual\" class=\"form-input\" placeholder=\"Ej: 2.500.000\" inputmode=\"numeric\">\r\n          <\/div>\r\n\r\n          <div>\r\n            <label for=\"horasSemanalesContractuales\">Horas contractuales a la semana:<\/label>\r\n            <input type=\"number\" id=\"horasSemanalesContractuales\" class=\"form-input\" placeholder=\"44\" value=\"44\" min=\"1\">\r\n            <p id=\"maxWeeklyHoursNote\" class=\"text-xs text-gray-500 mt-2\"><\/p>\r\n          <\/div>\r\n\r\n          <p id=\"step1Error\" class=\"text-red-600 text-sm mt-4 hidden\"><\/p>\r\n\r\n          <div class=\"flex justify-center mt-8\">\r\n            <button onclick=\"nextStep(1)\" class=\"btn btn-primary\">Siguiente &rarr;<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 2 -->\r\n        <div id=\"step2\" class=\"question-card\">\r\n          <h2>2. Per\u00edodo de Pago<\/h2>\r\n          <p class=\"mb-6 text-gray-600\">\u00bfCon qu\u00e9 frecuencia recibes tu pago?<\/p>\r\n          <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-4\">\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"periodoPago\" value=\"mensual\" checked>\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Mensual (30 d\u00edas)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n            <label class=\"radio-option\">\r\n              <input type=\"radio\" name=\"periodoPago\" value=\"quincenal\">\r\n              <div class=\"p-4 flex items-center space-x-3 w-full\">\r\n                <span class=\"radio-custom-dot\"><\/span>\r\n                <span class=\"font-medium\">Quincenal (15 d\u00edas)<\/span>\r\n              <\/div>\r\n            <\/label>\r\n          <\/div>\r\n          <div class=\"flex flex-col-reverse sm:flex-row justify-center gap-3 mt-8\">\r\n            <button onclick=\"prevStep(2)\" class=\"btn btn-secondary\">Anterior<\/button>\r\n            <button onclick=\"nextStep(2)\" class=\"btn btn-primary\">Siguiente &rarr;<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 3 -->\r\n        <div id=\"step3\" class=\"question-card\">\r\n          <h2>3. Ausencias No Remuneradas<\/h2>\r\n          <p class=\"mb-6 text-gray-600\">Indica ausencias no remuneradas en este per\u00edodo (licencias, suspensiones, etc.).<\/p>\r\n\r\n          <div>\r\n            <label for=\"diasNoRemunerados\">D\u00edas completos no remunerados:<\/label>\r\n            <input type=\"number\" id=\"diasNoRemunerados\" class=\"form-input\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n          <\/div>\r\n\r\n          <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-4 mt-6\">\r\n            <div>\r\n              <label for=\"horasNoRemuneradas\">Horas adicionales no remuneradas:<\/label>\r\n              <input type=\"number\" id=\"horasNoRemuneradas\" class=\"form-input\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n            <\/div>\r\n            <div>\r\n              <label for=\"minutosNoRemunerados\">Minutos adicionales no remunerados:<\/label>\r\n              <input type=\"number\" id=\"minutosNoRemunerados\" class=\"form-input\" placeholder=\"0\" value=\"0\" min=\"0\" max=\"59\">\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"flex flex-col-reverse sm:flex-row justify-center gap-3 mt-8\">\r\n            <button onclick=\"prevStep(3)\" class=\"btn btn-secondary\">Anterior<\/button>\r\n            <button onclick=\"nextStep(3)\" class=\"btn btn-primary\">Siguiente &rarr;<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 4 -->\r\n        <div id=\"step4\" class=\"question-card\">\r\n          <h2>4. Ingresos y Descuentos Adicionales<\/h2>\r\n          <p class=\"mb-6 text-gray-600\">A\u00f1ade ingresos extra y descuentos (libranzas\/otros) si aplican.<\/p>\r\n\r\n          <div class=\"mb-6\">\r\n            <label for=\"bonificaciones\">Bonificaciones (No Salariales):<\/label>\r\n            <input type=\"text\" id=\"bonificaciones\" class=\"form-input\" placeholder=\"Ej: 100.000\" value=\"0\" inputmode=\"numeric\">\r\n            <p class=\"text-xs text-gray-500 mt-2\">No se incluyen en IBC si realmente son \u201cno salariales\u201d.<\/p>\r\n          <\/div>\r\n\r\n          <div class=\"mb-6\">\r\n            <label for=\"otrosPagosSalariales\">Otros Pagos Salariales (comisiones, etc.):<\/label>\r\n            <input type=\"text\" id=\"otrosPagosSalariales\" class=\"form-input\" placeholder=\"Ej: 350.000\" value=\"0\" inputmode=\"numeric\">\r\n          <\/div>\r\n\r\n          <div>\r\n            <label for=\"otrosDescuentos\">Otros descuentos del per\u00edodo (libranzas, embargos, etc.):<\/label>\r\n            <input type=\"text\" id=\"otrosDescuentos\" class=\"form-input\" placeholder=\"Ej: 120.000\" value=\"0\" inputmode=\"numeric\">\r\n          <\/div>\r\n\r\n          <div class=\"flex flex-col-reverse sm:flex-row justify-center gap-3 mt-8\">\r\n            <button onclick=\"prevStep(4)\" class=\"btn btn-secondary\">Anterior<\/button>\r\n            <button onclick=\"nextStep(4)\" class=\"btn btn-primary\">Siguiente &rarr;<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 5 -->\r\n        <div id=\"step5\" class=\"question-card\">\r\n          <h2>5. Domingos y Festivos (Jornada Ordinaria)<\/h2>\r\n          <p class=\"mb-6 text-gray-600\">\r\n            Registra horas trabajadas en d\u00edas de descanso (dom\/fest) como parte de tu jornada (se calcula solo el recargo adicional).\r\n            <span id=\"domRecargoInfo\" class=\"highlight-value\"><\/span>\r\n          <\/p>\r\n\r\n          <div>\r\n            <label for=\"numDomFestTrabajados\">N\u00famero de d\u00edas (dom\/fest) trabajados (jornada ord.):<\/label>\r\n            <input type=\"number\" id=\"numDomFestTrabajados\" class=\"form-input mb-4\" value=\"0\" min=\"0\" oninput=\"updateDomFestInputs()\">\r\n          <\/div>\r\n\r\n          <div id=\"domFestDetalleContainer\" class=\"max-h-60 overflow-y-auto pr-2\"><\/div>\r\n\r\n          <div class=\"flex flex-col-reverse sm:flex-row justify-center gap-3 mt-8\">\r\n            <button onclick=\"prevStep(5)\" class=\"btn btn-secondary\">Anterior<\/button>\r\n            <button onclick=\"nextStep(5)\" class=\"btn btn-primary\">Siguiente &rarr;<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 6 -->\r\n        <div id=\"step6\" class=\"question-card\">\r\n          <h2>6. Recargos y Horas Extras<\/h2>\r\n          <p class=\"mb-4 text-gray-600\">\r\n            Ingresa recargos\/extras del per\u00edodo.\r\n            Tu valor de hora ordinaria es: <span id=\"valorHoraDisplay\" class=\"highlight-value\"><\/span>\r\n          <\/p>\r\n          <p id=\"noctInfo\" class=\"text-xs text-gray-500 mb-4\"><\/p>\r\n\r\n          <div class=\"grid grid-cols-1 md:grid-cols-2 gap-4 max-h-80 overflow-y-auto pr-2\">\r\n            <div>\r\n              <label for=\"hRN\">Recargo Nocturno (Ord. L-S):<\/label>\r\n              <input type=\"number\" id=\"hRN\" class=\"form-input mt-1\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n              <p class=\"text-xs text-gray-500 mt-1\">Recargo: 35%.<\/p>\r\n            <\/div>\r\n            <div><\/div>\r\n\r\n            <div>\r\n              <label for=\"hED\">Extras Diurnas (L-S):<\/label>\r\n              <input type=\"number\" id=\"hED\" class=\"form-input mt-1\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n              <p class=\"text-xs text-gray-500 mt-1\">Pago: Hora + 25%.<\/p>\r\n            <\/div>\r\n            <div>\r\n              <label for=\"hEN\">Extras Nocturnas (L-S):<\/label>\r\n              <input type=\"number\" id=\"hEN\" class=\"form-input mt-1\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n              <p class=\"text-xs text-gray-500 mt-1\">Pago: Hora + 75%.<\/p>\r\n            <\/div>\r\n\r\n            <div>\r\n              <label for=\"hEDDF\">Extras Diurnas (Dom\/Fest):<\/label>\r\n              <input type=\"number\" id=\"hEDDF\" class=\"form-input mt-1\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n              <p class=\"text-xs text-gray-500 mt-1\">Pago: Hora + recargo dom\/fest + 25%.<\/p>\r\n            <\/div>\r\n            <div>\r\n              <label for=\"hENDF\">Extras Nocturnas (Dom\/Fest):<\/label>\r\n              <input type=\"number\" id=\"hENDF\" class=\"form-input mt-1\" placeholder=\"0\" value=\"0\" min=\"0\">\r\n              <p class=\"text-xs text-gray-500 mt-1\">Pago: Hora + recargo dom\/fest + 75%.<\/p>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"flex flex-col-reverse sm:flex-row justify-center gap-3 mt-8\">\r\n            <button onclick=\"prevStep(6)\" class=\"btn btn-secondary\">Anterior<\/button>\r\n            <button onclick=\"calculateSalary()\" class=\"btn btn-primary\">\u2728 Calcular Salario<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 7 -->\r\n        <div id=\"step7\" class=\"question-card\">\r\n          <div class=\"text-center\">\r\n            <h2>\ud83c\udf89 \u00a1C\u00e1lculo Completo!<\/h2>\r\n            <p class=\"mb-4 text-gray-600\">Resumen estimado de tu liquidaci\u00f3n.<\/p>\r\n            <div class=\"bg-blue-100\">\r\n              Salario Base Mensual: <span id=\"salarioBaseContractualDisplay\" class=\"font-bold\"><\/span>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"overflow-x-auto\">\r\n            <div id=\"resultsContainer\"><\/div>\r\n          <\/div>\r\n\r\n          <p id=\"calculationDate\" class=\"text-xs text-gray-500 mt-6 text-center\"><\/p>\r\n\r\n          <div class=\"flex flex-col sm:flex-row justify-center gap-3 mt-6\">\r\n            <button onclick=\"prevStep(7)\" class=\"btn btn-secondary w-full sm:w-auto\">Ajustar C\u00e1lculo<\/button>\r\n            <button onclick=\"resetCalculator()\" class=\"btn btn-primary w-full sm:w-auto\">Calcular Nuevo Salario<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <footer>\r\n      <p>&copy; <span id=\"currentYear\"><\/span> Calculadora Salarial Colombia. C\u00e1lculo informativo (no reemplaza n\u00f3mina real).<\/p>\r\n    <\/footer>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  'use strict';\r\n\r\n  \/* =========================\r\n     PAR\u00c1METROS OFICIALES (editables por a\u00f1o)\r\n     ========================= *\/\r\n  const YEAR_CONFIG = {\r\n    2025: { smmlv: 1423500, aux: 200000 },\r\n    2026: { smmlv: 1750905, aux: 249095 },\r\n  };\r\n\r\n  \/* =========================\r\n     REGLAS \/ FACTORES\r\n     ========================= *\/\r\n  const PORC_SALUD_EMPLEADO = 0.04;\r\n  const PORC_PENSION_EMPLEADO = 0.04;\r\n  const RECARGO_NOCTURNO = 0.35;\r\n  const FACTOR_EXTRA_DIURNA = 1.25; \/\/ incluye 1.00 + 0.25\r\n  const FACTOR_EXTRA_NOCTURNA = 1.75; \/\/ 1.00 + 0.75\r\n\r\n  const $ = (sel) => document.querySelector('#salary-calc-wrapper ' + sel);\r\n\r\n  let currentStep = 1;\r\n  const totalSteps = 7;\r\n\r\n  document.addEventListener('DOMContentLoaded', () => {\r\n    if (!$('#salary-calc-wrapper') && !$('#smmlvValueDisplay')) return;\r\n\r\n    \/\/ Defaults\r\n    $('#currentYear').textContent = new Date().getFullYear();\r\n    const today = new Date();\r\n    const iso = today.toISOString().slice(0, 10);\r\n    $('#periodDate').value = iso;\r\n\r\n    \/\/ Currency inputs formatting\r\n    ['salarioBaseManual','bonificaciones','otrosPagosSalariales','otrosDescuentos'].forEach(id => {\r\n      const el = $(`#${id}`);\r\n      el.addEventListener('input', formatCurrencyInput);\r\n      el.addEventListener('blur', () => {\r\n        \/\/ normalize empty -> 0 for non salaryBaseManual\r\n        if (id !== 'salarioBaseManual' && (!el.value || parseCurrency(el.value) === 0)) el.value = '0';\r\n      });\r\n    });\r\n\r\n    \/\/ Radios\r\n    document.querySelectorAll('#salary-calc-wrapper input[name=\"salarioTipo\"]').forEach(r => {\r\n      r.addEventListener('change', () => handleSalarioTipoChange(r.value));\r\n    });\r\n    document.querySelectorAll('#salary-calc-wrapper input[name=\"modalidad\"]').forEach(r => {\r\n      r.addEventListener('change', updateNormasUI);\r\n    });\r\n    document.querySelectorAll('#salary-calc-wrapper input[name=\"salarioIntegral\"]').forEach(r => {\r\n      r.addEventListener('change', updateNormasUI);\r\n    });\r\n\r\n    \/\/ Change date -> refresh legal rules\r\n    $('#periodDate').addEventListener('change', () => {\r\n      updateNormasUI();\r\n      autoFixWeeklyHoursIfNeeded();\r\n      updateValorHoraDisplay();\r\n    });\r\n\r\n    \/\/ Change weekly hours \/ salary base\r\n    $('#horasSemanalesContractuales').addEventListener('input', () => {\r\n      autoFixWeeklyHoursIfNeeded(false);\r\n      updateValorHoraDisplay();\r\n      updateNormasUI();\r\n    });\r\n    $('#salarioBaseManual').addEventListener('input', updateValorHoraDisplay);\r\n\r\n    \/\/ Start\r\n    showStep(1);\r\n    updateProgressBar();\r\n    updateNormasUI();\r\n  });\r\n\r\n  function safeDateFromInput() {\r\n    const raw = $('#periodDate').value;\r\n    if (!raw) return new Date();\r\n    const d = new Date(raw + 'T00:00:00');\r\n    return isNaN(d.getTime()) ? new Date() : d;\r\n  }\r\n\r\n  function getConfigByDate(date) {\r\n    const y = date.getFullYear();\r\n    return YEAR_CONFIG[y] || YEAR_CONFIG[2026];\r\n  }\r\n\r\n  \/\/ Jornada m\u00e1xima (Ley 2101) por fecha\r\n  function getMaxWeeklyHoursLegal(date) {\r\n    const d = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n    if (d < new Date('2023-07-15')) return 48;\r\n    if (d < new Date('2024-07-15')) return 47;\r\n    if (d < new Date('2025-07-15')) return 46;\r\n    if (d < new Date('2026-07-15')) return 44;\r\n    return 42;\r\n  }\r\n\r\n  \/\/ Recargo dominical\/festivo (Ley 2466) por fecha\r\n  function getDomFestRecargo(date) {\r\n    const d = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n    if (d < new Date('2025-07-01')) return 0.75;\r\n    if (d < new Date('2026-07-01')) return 0.80;\r\n    if (d < new Date('2027-07-01')) return 0.90;\r\n    return 1.00;\r\n  }\r\n\r\n  \/\/ Inicio franja nocturna (Ley 2466)\r\n  function getNightStartHour(date) {\r\n    const d = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n    return (d < new Date('2025-12-25')) ? 21 : 19; \/\/ 9pm antes, 7pm desde 25 dic 2025\r\n  }\r\n\r\n  function formatNumberAsCurrency(value, withSymbol = true) {\r\n    if (isNaN(value)) return withSymbol ? '$0' : '0';\r\n    const v = Math.round(Number(value) || 0);\r\n    if (!withSymbol) return v.toLocaleString('es-CO');\r\n    return v.toLocaleString('es-CO', { style: 'currency', currency: 'COP', maximumFractionDigits: 0 });\r\n  }\r\n\r\n  function formatCurrencyInput(e) {\r\n    const input = e.target;\r\n    const v = input.value.replace(\/[^\\d]\/g, '');\r\n    if (!v) { input.value = ''; return; }\r\n    input.value = parseInt(v, 10).toLocaleString('es-CO');\r\n  }\r\n\r\n  function parseCurrency(str) {\r\n    if (typeof str !== 'string' || !str) return 0;\r\n    const numeric = str.replace(\/\\.\/g, '').replace(\/,\/g, '').replace(\/[^\\d]\/g, '');\r\n    return parseInt(numeric || '0', 10) || 0;\r\n  }\r\n\r\n  function getNumericValue(id, isCurrency = false) {\r\n    const el = $(`#${id}`);\r\n    if (!el) return 0;\r\n    const v = isCurrency ? parseCurrency(el.value) : parseFloat(el.value);\r\n    if (isNaN(v) || v < 0) return 0;\r\n    return v;\r\n  }\r\n\r\n  function getCheckedValue(name) {\r\n    const el = document.querySelector(`#salary-calc-wrapper input[name=\"${name}\"]:checked`);\r\n    return el ? el.value : null;\r\n  }\r\n\r\n  function autoFixWeeklyHoursIfNeeded(setToLegalDefault = true) {\r\n    const date = safeDateFromInput();\r\n    const maxLegal = getMaxWeeklyHoursLegal(date);\r\n\r\n    const input = $('#horasSemanalesContractuales');\r\n    let h = parseInt(input.value, 10);\r\n    if (isNaN(h) || h <= 0) h = maxLegal;\r\n\r\n    \/\/ Si a\u00fan no escogi\u00f3 salarioTipo y estamos cargando, deja default legal\r\n    const salarioTipo = getCheckedValue('salarioTipo');\r\n    if (!salarioTipo && setToLegalDefault) {\r\n      input.value = String(maxLegal);\r\n      return;\r\n    }\r\n\r\n    \/\/ Para SMMLV: no permitir > m\u00e1xima legal (evita \u201cSMMLV * 44\/42\u201d)\r\n    if (salarioTipo === 'minimo' && h > maxLegal) {\r\n      input.value = String(maxLegal);\r\n    }\r\n  }\r\n\r\n  function updateNormasUI() {\r\n    const date = safeDateFromInput();\r\n    const cfg = getConfigByDate(date);\r\n    const year = (date.getFullYear() in YEAR_CONFIG) ? date.getFullYear() : 2026;\r\n\r\n    $('#calcYearLabel').textContent = year;\r\n    $('#smmlvYearLabel').textContent = year;\r\n    $('#smmlvValueDisplay').textContent = formatNumberAsCurrency(cfg.smmlv);\r\n    $('#auxValueDisplay').textContent = formatNumberAsCurrency(cfg.aux);\r\n\r\n    const maxWeekly = getMaxWeeklyHoursLegal(date);\r\n    const nightStart = getNightStartHour(date);\r\n    const domRecargo = getDomFestRecargo(date);\r\n\r\n    const noctText = nightStart === 19\r\n      ? 'La franja nocturna se considera desde 7:00 p. m. hasta 6:00 a. m. (recargo 35%).'\r\n      : 'La franja nocturna se considera desde 9:00 p. m. hasta 6:00 a. m. (recargo 35%).';\r\n    $('#noctInfo').textContent = noctText;\r\n\r\n    $('#domRecargoInfo').textContent = `Recargo dom\/fest vigente: ${(domRecargo * 100).toFixed(0)}%`;\r\n\r\n    $('#maxWeeklyHoursNote').textContent =\r\n      `Jornada m\u00e1xima legal para esa fecha: ${maxWeekly} h\/semana. (Tu contrato puede ser menor; si es mayor, revisa cumplimiento legal).`;\r\n\r\n    const modalidad = getCheckedValue('modalidad') || 'presencial';\r\n    const auxLabel = modalidad === 'casa' ? 'conectividad digital' : 'transporte';\r\n    const auxTope = 2 * cfg.smmlv;\r\n\r\n    $('#normaHints').textContent =\r\n      `Recargo dom\/fest: ${(domRecargo*100).toFixed(0)}%. Noche inicia: ${nightStart}:00. Auxilio de ${auxLabel} aplica hasta 2 SMMLV (tope aprox. ${formatNumberAsCurrency(auxTope, true)}).`;\r\n\r\n    updateValorHoraDisplay();\r\n  }\r\n\r\n  function getHorasSemanalesContractuales() {\r\n    const input = $('#horasSemanalesContractuales');\r\n    let h = parseInt(input.value, 10);\r\n    if (isNaN(h) || h <= 0) h = 44;\r\n    return h;\r\n  }\r\n\r\n  function computeSalarioBaseMensual(date) {\r\n    const cfg = getConfigByDate(date);\r\n    const salarioTipo = getCheckedValue('salarioTipo');\r\n    const horas = getHorasSemanalesContractuales();\r\n    const maxWeekly = getMaxWeeklyHoursLegal(date);\r\n\r\n    if (salarioTipo === 'minimo') {\r\n      \/\/ SMMLV es el \u201cfull time\u201d de la jornada legal vigente\r\n      const ref = maxWeekly;\r\n      const h = Math.min(horas, ref);\r\n      return (cfg.smmlv \/ ref) * h;\r\n    }\r\n    return getNumericValue('salarioBaseManual', true);\r\n  }\r\n\r\n  function updateValorHoraDisplay() {\r\n    const salarioTipo = getCheckedValue('salarioTipo');\r\n    if (!salarioTipo) { $('#valorHoraDisplay').textContent = 'N\/A'; return; }\r\n\r\n    const date = safeDateFromInput();\r\n    const horas = getHorasSemanalesContractuales();\r\n    if (horas <= 0) { $('#valorHoraDisplay').textContent = 'N\/A'; return; }\r\n\r\n    const salarioBaseMensual = computeSalarioBaseMensual(date);\r\n    if (!salarioBaseMensual || salarioBaseMensual <= 0) {\r\n      $('#valorHoraDisplay').textContent = '$0 \/hora';\r\n      return;\r\n    }\r\n\r\n    \/\/ Gu\u00eda com\u00fan usada en n\u00f3mina: horas\/mes = horas\/semana * 5 (p.ej. 44 -> 220; 42 -> 210)\r\n    const horasMes = horas * 5;\r\n    const valorHora = salarioBaseMensual \/ horasMes;\r\n    $('#valorHoraDisplay').textContent = `${formatNumberAsCurrency(valorHora)} \/hora`;\r\n  }\r\n\r\n  function showStep(n) {\r\n    const all = document.querySelectorAll('#salary-calc-wrapper .question-card');\r\n    all.forEach(s => s.classList.remove('active','fade-in'));\r\n    const card = $(`#step${n}`);\r\n    if (!card) return;\r\n    card.classList.add('active');\r\n    setTimeout(() => card.classList.add('fade-in'), 50);\r\n  }\r\n\r\n  function updateProgressBar() {\r\n    const progress = ((currentStep - 1) \/ (totalSteps - 1)) * 100;\r\n    $('#progress-bar').style.width = `${progress}%`;\r\n  }\r\n\r\n  function setStepError(msg) {\r\n    const el = $('#step1Error');\r\n    if (!el) return;\r\n    if (!msg) { el.classList.add('hidden'); el.textContent = ''; return; }\r\n    el.textContent = msg;\r\n    el.classList.remove('hidden');\r\n  }\r\n\r\n  window.nextStep = function(step) {\r\n    if (!validateStep(step)) return;\r\n    if (currentStep < totalSteps) {\r\n      currentStep++;\r\n      showStep(currentStep);\r\n      updateProgressBar();\r\n      if (currentStep === 6) updateValorHoraDisplay();\r\n    }\r\n  };\r\n\r\n  window.prevStep = function() {\r\n    if (currentStep > 1) {\r\n      currentStep--;\r\n      showStep(currentStep);\r\n      updateProgressBar();\r\n      if (currentStep === 6) updateValorHoraDisplay();\r\n    }\r\n  };\r\n\r\n  function validateStep(step) {\r\n    if (step === 1) {\r\n      setStepError('');\r\n      const salarioTipo = getCheckedValue('salarioTipo');\r\n      if (!salarioTipo) {\r\n        setStepError('Por favor, selecciona una opci\u00f3n de salario (SMMLV u otro).');\r\n        return false;\r\n      }\r\n      if (salarioTipo === 'otro' && getNumericValue('salarioBaseManual', true) <= 0) {\r\n        setStepError('Ingresa un salario base mensual v\u00e1lido.');\r\n        return false;\r\n      }\r\n      autoFixWeeklyHoursIfNeeded(false);\r\n    }\r\n    return true;\r\n  }\r\n\r\n  window.handleSalarioTipoChange = function(value) {\r\n    const otro = $('#otroSalarioContainer');\r\n    if (value === 'otro') {\r\n      otro.classList.remove('hidden');\r\n      $('#salarioBaseManual').focus();\r\n    } else {\r\n      otro.classList.add('hidden');\r\n    }\r\n    autoFixWeeklyHoursIfNeeded(false);\r\n    updateValorHoraDisplay();\r\n  };\r\n\r\n  window.updateDomFestInputs = function() {\r\n    const n = parseInt($('#numDomFestTrabajados').value, 10) || 0;\r\n    const container = $('#domFestDetalleContainer');\r\n    container.innerHTML = '';\r\n\r\n    for (let i = 1; i <= n; i++) {\r\n      const div = document.createElement('div');\r\n      div.classList.add('mb-3','p-3','border','rounded-xl');\r\n      div.innerHTML = `\r\n        <h4 class=\"font-semibold mb-2\">D\u00eda #${i}<\/h4>\r\n        <div class=\"grid grid-cols-2 gap-4\">\r\n          <div>\r\n            <label for=\"domfest${i}_diurnas\" class=\"block text-xs font-medium text-gray-700 mb-1\">Horas Diurnas:<\/label>\r\n            <input type=\"number\" id=\"domfest${i}_diurnas\" class=\"form-input text-sm\" value=\"0\" min=\"0\">\r\n          <\/div>\r\n          <div>\r\n            <label for=\"domfest${i}_nocturnas\" class=\"block text-xs font-medium text-gray-700 mb-1\">Horas Nocturnas:<\/label>\r\n            <input type=\"number\" id=\"domfest${i}_nocturnas\" class=\"form-input text-sm\" value=\"0\" min=\"0\">\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n      container.appendChild(div);\r\n    }\r\n  };\r\n\r\n  function getFspRate(ibc, smmlv) {\r\n    if (!smmlv || smmlv <= 0) return 0;\r\n    const r = ibc \/ smmlv;\r\n    if (r < 4) return 0;\r\n    if (r < 16) return 0.01;\r\n    if (r < 17) return 0.012;\r\n    if (r < 18) return 0.014;\r\n    if (r < 19) return 0.016;\r\n    if (r < 20) return 0.018;\r\n    return 0.02;\r\n  }\r\n\r\n  window.calculateSalary = function() {\r\n    const date = safeDateFromInput();\r\n    const cfg = getConfigByDate(date);\r\n\r\n    const salarioIntegral = (getCheckedValue('salarioIntegral') === 'si');\r\n    const modalidad = getCheckedValue('modalidad') || 'presencial';\r\n\r\n    const horasSemanales = getHorasSemanalesContractuales();\r\n    const horasMes = horasSemanales * 5;\r\n\r\n    const salarioBaseMensual = computeSalarioBaseMensual(date);\r\n    const valorHora = (horasMes > 0) ? (salarioBaseMensual \/ horasMes) : 0;\r\n\r\n    const periodoPago = getCheckedValue('periodoPago') || 'mensual';\r\n    const diasBase = (periodoPago === 'quincenal') ? 15 : 30;\r\n\r\n    const diasNoRem = getNumericValue('diasNoRemunerados');\r\n    const diasTrab = Math.max(0, diasBase - diasNoRem);\r\n\r\n    const valorDia = salarioBaseMensual \/ 30;\r\n    let salarioPorDias = valorDia * diasTrab;\r\n\r\n    const horasNoRem = getNumericValue('horasNoRemuneradas');\r\n    const minsNoRem = getNumericValue('minutosNoRemunerados');\r\n    const descuentoTiempoNoRem = ((horasNoRem * 60 + minsNoRem) \/ 60) * valorHora;\r\n\r\n    let salarioBasePeriodo = Math.max(0, salarioPorDias - descuentoTiempoNoRem);\r\n\r\n    const bonificaciones = getNumericValue('bonificaciones', true);\r\n    const otrosSalariales = getNumericValue('otrosPagosSalariales', true);\r\n    const otrosDescuentos = getNumericValue('otrosDescuentos', true);\r\n\r\n    \/\/ Recargo dominical\/festivo vigente seg\u00fan fecha\r\n    const domRecargo = getDomFestRecargo(date);\r\n    const recargoDomDiurnoOrd = domRecargo;\r\n    const recargoDomNoctOrd = domRecargo + RECARGO_NOCTURNO;\r\n\r\n    let totalRecargoDomDiurno = 0;\r\n    let totalRecargoDomNoct = 0;\r\n\r\n    const nDomFest = parseInt($('#numDomFestTrabajados').value, 10) || 0;\r\n    for (let i = 1; i <= nDomFest; i++) {\r\n      const hD = getNumericValue(`domfest${i}_diurnas`);\r\n      const hN = getNumericValue(`domfest${i}_nocturnas`);\r\n      totalRecargoDomDiurno += hD * valorHora * recargoDomDiurnoOrd;\r\n      totalRecargoDomNoct += hN * valorHora * recargoDomNoctOrd;\r\n    }\r\n\r\n    \/\/ Extras y recargos\r\n    const hRN = getNumericValue('hRN');\r\n    const hED = getNumericValue('hED');\r\n    const hEN = getNumericValue('hEN');\r\n    const hEDDF = getNumericValue('hEDDF');\r\n    const hENDF = getNumericValue('hENDF');\r\n\r\n    const pagoRN = hRN * valorHora * RECARGO_NOCTURNO; \/\/ solo recargo\r\n    const pagoED = hED * valorHora * FACTOR_EXTRA_DIURNA; \/\/ incluye base\r\n    const pagoEN = hEN * valorHora * FACTOR_EXTRA_NOCTURNA; \/\/ incluye base\r\n\r\n    const factorExtraDiurnaDomFest = 1 + domRecargo + 0.25; \/\/ 2.05 \/ 2.15 \/ 2.25\r\n    const factorExtraNoctDomFest = 1 + domRecargo + 0.75;   \/\/ 2.55 \/ 2.65 \/ 2.75\r\n    const pagoEDDF = hEDDF * valorHora * factorExtraDiurnaDomFest;\r\n    const pagoENDF = hENDF * valorHora * factorExtraNoctDomFest;\r\n\r\n    \/\/ Auxilio (transporte\/conectividad): solo si <= 2 SMMLV y si hubo d\u00edas trabajados\r\n    const topeAux = 2 * cfg.smmlv;\r\n    let auxPeriodo = 0;\r\n    if (salarioBaseMensual <= topeAux && diasTrab > 0) {\r\n      auxPeriodo = (cfg.aux \/ 30) * diasTrab;\r\n    }\r\n\r\n    \/\/ Total salarial (base + salariales + recargos\/extras)\r\n    const totalSalarial = salarioBasePeriodo + otrosSalariales + totalRecargoDomDiurno + totalRecargoDomNoct + pagoRN + pagoED + pagoEN + pagoEDDF + pagoENDF;\r\n\r\n    \/\/ IBC: en general = totalSalarial; integral = 70%\r\n    let ibc = salarioIntegral ? (totalSalarial * 0.70) : totalSalarial;\r\n\r\n    \/\/ IBC m\u00ednimo proporcional al SMMLV por d\u00edas laborados (si hay d\u00edas)\r\n    if (diasTrab > 0) {\r\n      const ibcMin = (cfg.smmlv \/ 30) * diasTrab;\r\n      if (ibc < ibcMin) ibc = ibcMin;\r\n    } else {\r\n      ibc = 0;\r\n    }\r\n\r\n    const aporteSalud = ibc * PORC_SALUD_EMPLEADO;\r\n    const aportePension = ibc * PORC_PENSION_EMPLEADO;\r\n\r\n    \/\/ FSP\r\n    const fspRate = getFspRate(ibc, cfg.smmlv);\r\n    const aporteFsp = ibc * fspRate;\r\n\r\n    const deduccionesSS = aporteSalud + aportePension + aporteFsp;\r\n\r\n    \/\/ Total devengado incluye aux + bonificaciones no salariales\r\n    const totalDevengado = totalSalarial + auxPeriodo + bonificaciones;\r\n    const totalDeducido = deduccionesSS + otrosDescuentos;\r\n    const neto = totalDevengado - totalDeducido;\r\n\r\n    displayResults({\r\n      date, cfg, modalidad,\r\n      salarioIntegral,\r\n      salarioBaseMensual,\r\n      horasSemanales,\r\n      valorHora,\r\n      periodoPago,\r\n      diasTrab,\r\n      salarioBasePeriodo,\r\n      auxPeriodo,\r\n      bonificaciones,\r\n      otrosSalariales,\r\n      otrosDescuentos,\r\n      recargos: { totalRecargoDomDiurno, totalRecargoDomNoct, pagoRN },\r\n      extras: { pagoED, pagoEN, pagoEDDF, pagoENDF },\r\n      totalSalarial,\r\n      ibc,\r\n      aporteSalud,\r\n      aportePension,\r\n      aporteFsp,\r\n      fspRate,\r\n      deduccionesSS,\r\n      totalDevengado,\r\n      totalDeducido,\r\n      neto\r\n    });\r\n\r\n    window.nextStep(6);\r\n  };\r\n\r\n  function displayResults(d) {\r\n    $('#salarioBaseContractualDisplay').textContent = formatNumberAsCurrency(d.salarioBaseMensual);\r\n    const results = $('#resultsContainer');\r\n\r\n    const auxLabel = (d.modalidad === 'casa') ? 'Auxilio de Conectividad' : 'Auxilio de Transporte';\r\n    const domRecargo = getDomFestRecargo(d.date);\r\n    const nightStart = getNightStartHour(d.date);\r\n    const maxWeekly = getMaxWeeklyHoursLegal(d.date);\r\n\r\n    const row = (label, value, isDeduction = false) => {\r\n      const v = Number(value || 0);\r\n      if (v <= 0) return '';\r\n      return `\r\n        <tr>\r\n          <td>${label}<\/td>\r\n          <td class=\"amount ${isDeduction ? 'text-red-600' : ''}\">${isDeduction ? '-' : ''}${formatNumberAsCurrency(v)}<\/td>\r\n        <\/tr>\r\n      `;\r\n    };\r\n\r\n    results.innerHTML = `\r\n      <table class=\"results-table\">\r\n        <thead>\r\n          <tr>\r\n            <th>Par\u00e1metros aplicados<\/th>\r\n            <th class=\"amount\">Detalle<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n          <tr>\r\n            <td>Fecha del per\u00edodo<\/td>\r\n            <td class=\"amount\">${d.date.toLocaleDateString('es-CO')}<\/td>\r\n          <\/tr>\r\n          <tr>\r\n            <td>Jornada m\u00e1xima legal (referencia)<\/td>\r\n            <td class=\"amount\">${maxWeekly} h\/sem<\/td>\r\n          <\/tr>\r\n          <tr>\r\n            <td>Recargo dom\/fest vigente<\/td>\r\n            <td class=\"amount\">${(domRecargo*100).toFixed(0)}%<\/td>\r\n          <\/tr>\r\n          <tr>\r\n            <td>Inicio nocturno vigente<\/td>\r\n            <td class=\"amount\">${nightStart}:00<\/td>\r\n          <\/tr>\r\n          <tr>\r\n            <td>Tipo<\/td>\r\n            <td class=\"amount\">${d.salarioIntegral ? 'Salario integral (IBC 70%)' : 'Salario ordinario'}<\/td>\r\n          <\/tr>\r\n        <\/tbody>\r\n      <\/table>\r\n\r\n      <table class=\"results-table\">\r\n        <thead>\r\n          <tr>\r\n            <th>Devengados (Ingresos)<\/th>\r\n            <th class=\"amount\">Valor<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n          ${row(`Salario por d\u00edas laborados (${d.diasTrab} d\u00edas)`, d.salarioBasePeriodo)}\r\n          ${row('Otros pagos salariales (comisiones, etc.)', d.otrosSalariales)}\r\n          ${row('Recargo dominical\/festivo (diurno - adicional)', d.recargos.totalRecargoDomDiurno)}\r\n          ${row('Recargo dominical\/festivo (nocturno - adicional)', d.recargos.totalRecargoDomNoct)}\r\n          ${row('Recargo nocturno (L-S - adicional)', d.recargos.pagoRN)}\r\n          ${row('Horas extra diurnas (L-S)', d.extras.pagoED)}\r\n          ${row('Horas extra nocturnas (L-S)', d.extras.pagoEN)}\r\n          ${row('Horas extra diurnas (Dom\/Fest)', d.extras.pagoEDDF)}\r\n          ${row('Horas extra nocturnas (Dom\/Fest)', d.extras.pagoENDF)}\r\n          ${row(auxLabel, d.auxPeriodo)}\r\n          ${row('Bonificaciones (No salariales)', d.bonificaciones)}\r\n        <\/tbody>\r\n      <\/table>\r\n\r\n      <table class=\"results-table\">\r\n        <thead>\r\n          <tr>\r\n            <th>Deducciones<\/th>\r\n            <th class=\"amount\">Valor<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n          ${row(`Salud (4% sobre IBC ${formatNumberAsCurrency(d.ibc)})`, d.aporteSalud, true)}\r\n          ${row(`Pensi\u00f3n (4% sobre IBC ${formatNumberAsCurrency(d.ibc)})`, d.aportePension, true)}\r\n          ${row(`Fondo de Solidaridad Pensional (${(d.fspRate*100).toFixed(1)}% sobre IBC)`, d.aporteFsp, true)}\r\n          ${row('Otros descuentos del per\u00edodo', d.otrosDescuentos, true)}\r\n        <\/tbody>\r\n      <\/table>\r\n\r\n      <table class=\"results-table\">\r\n        <tfoot>\r\n          <tr class=\"total-row\">\r\n            <td>TOTAL DEVENGADO<\/td>\r\n            <td class=\"amount text-blue-600\">${formatNumberAsCurrency(d.totalDevengado)}<\/td>\r\n          <\/tr>\r\n          <tr class=\"total-row\">\r\n            <td>TOTAL DEDUCIDO<\/td>\r\n            <td class=\"amount text-red-600\">-${formatNumberAsCurrency(d.totalDeducido)}<\/td>\r\n          <\/tr>\r\n          <tr class=\"net-pay-row\">\r\n            <td>NETO A PAGAR<\/td>\r\n            <td class=\"amount\">${formatNumberAsCurrency(d.neto)}<\/td>\r\n          <\/tr>\r\n        <\/tfoot>\r\n      <\/table>\r\n    `;\r\n\r\n    const now = new Date();\r\n    $('#calculationDate').textContent = `C\u00e1lculo realizado el: ${now.toLocaleDateString('es-CO')} a las ${now.toLocaleTimeString('es-CO')}`;\r\n  }\r\n\r\n  window.resetCalculator = function () {\r\n    \/\/ Reset simples\r\n    $('#periodDate').value = new Date().toISOString().slice(0, 10);\r\n\r\n    \/\/ radios\r\n    document.querySelectorAll('#salary-calc-wrapper input[type=\"radio\"]').forEach(r => r.checked = false);\r\n    document.querySelector('#salary-calc-wrapper input[name=\"periodoPago\"][value=\"mensual\"]').checked = true;\r\n    document.querySelector('#salary-calc-wrapper input[name=\"modalidad\"][value=\"presencial\"]').checked = true;\r\n    document.querySelector('#salary-calc-wrapper input[name=\"salarioIntegral\"][value=\"no\"]').checked = true;\r\n\r\n    \/\/ inputs\r\n    $('#salarioBaseManual').value = '';\r\n    $('#bonificaciones').value = '0';\r\n    $('#otrosPagosSalariales').value = '0';\r\n    $('#otrosDescuentos').value = '0';\r\n\r\n    $('#horasSemanalesContractuales').value = String(getMaxWeeklyHoursLegal(safeDateFromInput()));\r\n\r\n    $('#diasNoRemunerados').value = '0';\r\n    $('#horasNoRemuneradas').value = '0';\r\n    $('#minutosNoRemunerados').value = '0';\r\n\r\n    $('#numDomFestTrabajados').value = '0';\r\n    $('#domFestDetalleContainer').innerHTML = '';\r\n\r\n    ['hRN','hED','hEN','hEDDF','hENDF'].forEach(id => $(`#${id}`).value = '0');\r\n\r\n    setStepError('');\r\n    updateNormasUI();\r\n\r\n    currentStep = 1;\r\n    showStep(currentStep);\r\n    updateProgressBar();\r\n  };\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\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\" data-settings=\"{&quot;ekit_has_onepagescroll_dot&quot;:&quot;yes&quot;}\">\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-settings=\"{&quot;ekit_we_effect_on&quot;:&quot;none&quot;}\" 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 Estima tu salario neto con par\u00e1metros normativos actualizados. Salario Pagos Horas Resultado 1. Ingreso y Jornada Selecciona la fecha del per\u00edodo (para ajustar recargos\/jornada) y tu salario base. Fecha del per\u00edodo a liquidar: Modalidad (auxilio): Presencial (Transporte) Trabajo en casa (Conectividad) Salario ordinario (normal) Salario integral (IBC = 70%) Si eliges&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5032,"template":"","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":21,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5890\/revisions"}],"predecessor-version":[{"id":6210,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5890\/revisions\/6210"}],"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}]}}