{"id":5911,"date":"2024-09-15T19:56:03","date_gmt":"2024-09-16T00:56:03","guid":{"rendered":"https:\/\/inversionesguru.com\/co\/?post_type=herramientas&#038;p=5911"},"modified":"2026-05-30T11:42:41","modified_gmt":"2026-05-30T16:42:41","slug":"simulador-cuenta-de-ahorros-lulobank-colombia","status":"publish","type":"herramientas","link":"https:\/\/inversionesguru.com\/co\/herramientas\/simulador-cuenta-de-ahorros-lulobank-colombia\/","title":{"rendered":"Simulador Cuenta de Ahorros LuloBank Colombia"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5911\" class=\"elementor elementor-5911\" data-elementor-post-type=\"herramientas\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05cc642 e-flex e-con-boxed e-con e-parent\" data-id=\"05cc642\" 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-bdddd2d elementor-widget elementor-widget-html\" data-id=\"bdddd2d\" 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<style>\r\n  #ig-lulo-bolsillos-sim {\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,.88);\r\n    --ig-line: rgba(23,51,47,.14);\r\n    --ig-line-strong: rgba(23,51,47,.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-gold: #b97809;\r\n    --ig-danger: #b42318;\r\n    --ig-shadow: 0 22px 52px rgba(23, 51, 47, .12);\r\n    --ig-shadow-soft: 0 14px 34px rgba(23, 51, 47, .08);\r\n    --ig-radius: 8px;\r\n    display: block;\r\n    width: 100%;\r\n    overflow: hidden;\r\n    padding: 28px 0;\r\n    color: var(--ig-ink);\r\n    background:\r\n      linear-gradient(90deg, rgba(15,159,122,.065) 1px, transparent 1px),\r\n      linear-gradient(180deg, rgba(23,51,47,.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-lulo-bolsillos-sim *,\r\n  #ig-lulo-bolsillos-sim *::before,\r\n  #ig-lulo-bolsillos-sim *::after { box-sizing: border-box; }\r\n\r\n  #ig-lulo-bolsillos-sim :where(h1,h2,h3,h4,p,ul,li,figure,blockquote) { margin: 0; padding: 0; }\r\n  #ig-lulo-bolsillos-sim :where(button,input,select) { font: inherit; }\r\n  #ig-lulo-bolsillos-sim button,\r\n  #ig-lulo-bolsillos-sim input,\r\n  #ig-lulo-bolsillos-sim select { -webkit-tap-highlight-color: transparent; }\r\n  #ig-lulo-bolsillos-sim input[type=\"number\"]::-webkit-inner-spin-button,\r\n  #ig-lulo-bolsillos-sim input[type=\"number\"]::-webkit-outer-spin-button { opacity: .55; }\r\n  #ig-lulo-bolsillos-sim a { color: inherit; text-decoration: none; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-wrap {\r\n    width: min(1120px, calc(100% - 28px));\r\n    margin: 0 auto;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-tool-ribbon,\r\n  #ig-lulo-bolsillos-sim .ig-card,\r\n  #ig-lulo-bolsillos-sim .ig-panel,\r\n  #ig-lulo-bolsillos-sim .ig-rate-card,\r\n  #ig-lulo-bolsillos-sim .ig-kpi,\r\n  #ig-lulo-bolsillos-sim .ig-result-band,\r\n  #ig-lulo-bolsillos-sim .ig-note,\r\n  #ig-lulo-bolsillos-sim .ig-chart-card { min-width: 0; }\r\n\r\n  #ig-lulo-bolsillos-sim :where(h1,h2,h3,h4,p,span,strong,label,button,td,th) { overflow-wrap: break-word; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-tool-ribbon {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, 1fr) auto;\r\n    gap: 18px;\r\n    align-items: center;\r\n    margin-bottom: 16px;\r\n    padding: 16px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.86);\r\n    box-shadow: var(--ig-shadow-soft);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kicker,\r\n  #ig-lulo-bolsillos-sim .ig-status {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 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-lulo-bolsillos-sim .ig-tool-ribbon strong {\r\n    display: block;\r\n    margin-top: 5px;\r\n    color: var(--ig-ink);\r\n    font-size: 16px;\r\n    line-height: 1.28;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-tool-ribbon p {\r\n    margin-top: 4px;\r\n    color: var(--ig-muted);\r\n    font-size: 13px;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-dot {\r\n    width: 9px;\r\n    height: 9px;\r\n    border-radius: 999px;\r\n    background: var(--ig-accent);\r\n    box-shadow: 0 0 0 5px rgba(15,159,122,.14);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-grid {\r\n    display: grid;\r\n    grid-template-columns: minmax(0, .92fr) minmax(320px, .55fr);\r\n    gap: 18px;\r\n    align-items: start;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-card,\r\n  #ig-lulo-bolsillos-sim .ig-panel,\r\n  #ig-lulo-bolsillos-sim .ig-chart-card,\r\n  #ig-lulo-bolsillos-sim .ig-note {\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-panel-soft);\r\n    box-shadow: var(--ig-shadow);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-card { padding: 24px; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-hero {\r\n    position: relative;\r\n    overflow: hidden;\r\n    background:\r\n      radial-gradient(circle at 95% 0%, rgba(239,106,74,.12), transparent 34%),\r\n      linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.78));\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-hero::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    left: 0;\r\n    right: 0;\r\n    top: 0;\r\n    height: 3px;\r\n    background: linear-gradient(90deg, var(--ig-accent), var(--ig-coral));\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-eyebrow {\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,.24);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.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-lulo-bolsillos-sim h1 {\r\n    margin-top: 14px;\r\n    color: var(--ig-ink);\r\n    font-size: 40px;\r\n    line-height: 1.08;\r\n    font-weight: 930;\r\n    letter-spacing: 0;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim h1 span { color: var(--ig-coral-dark); }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-hero-copy {\r\n    max-width: 760px;\r\n    margin-top: 12px;\r\n    color: var(--ig-muted);\r\n    font-size: 16px;\r\n    line-height: 1.75;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-mini-rates {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0,1fr));\r\n    gap: 10px;\r\n    margin-top: 22px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-mini-rate {\r\n    min-height: 78px;\r\n    padding: 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #fff;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-mini-rate span {\r\n    display: block;\r\n    color: var(--ig-muted);\r\n    font-size: 11px;\r\n    font-weight: 780;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-mini-rate strong {\r\n    display: block;\r\n    margin-top: 5px;\r\n    color: var(--ig-ink);\r\n    font-size: 18px;\r\n    line-height: 1.14;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-form-title {\r\n    display: flex;\r\n    align-items: flex-start;\r\n    justify-content: space-between;\r\n    gap: 14px;\r\n    margin-bottom: 18px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim h2 {\r\n    color: var(--ig-ink);\r\n    font-size: 24px;\r\n    line-height: 1.18;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-form-title p,\r\n  #ig-lulo-bolsillos-sim .ig-muted {\r\n    margin-top: 5px;\r\n    color: var(--ig-muted);\r\n    font-size: 13px;\r\n    line-height: 1.55;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-fields {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0,1fr));\r\n    gap: 14px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-field { display: grid; gap: 7px; }\r\n\r\n  #ig-lulo-bolsillos-sim label,\r\n  #ig-lulo-bolsillos-sim .ig-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-lulo-bolsillos-sim input,\r\n  #ig-lulo-bolsillos-sim select {\r\n    width: 100%;\r\n    min-height: 48px;\r\n    padding: 11px 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    outline: 0;\r\n    background: #fff;\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-lulo-bolsillos-sim input:focus,\r\n  #ig-lulo-bolsillos-sim select:focus {\r\n    border-color: var(--ig-accent);\r\n    box-shadow: 0 0 0 4px rgba(15,159,122,.14);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim input.is-error,\r\n  #ig-lulo-bolsillos-sim select.is-error {\r\n    border-color: var(--ig-danger);\r\n    box-shadow: 0 0 0 4px rgba(180,35,24,.10);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-tabs {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, minmax(0,1fr));\r\n    gap: 10px;\r\n    margin: 18px 0;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice {\r\n    position: relative;\r\n    display: block;\r\n    cursor: pointer;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice input {\r\n    position: absolute;\r\n    opacity: 0;\r\n    pointer-events: none;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice-card {\r\n    display: grid;\r\n    gap: 5px;\r\n    min-height: 92px;\r\n    padding: 14px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #fff;\r\n    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice:hover .ig-choice-card {\r\n    transform: translateY(-2px);\r\n    border-color: var(--ig-line-strong);\r\n    box-shadow: var(--ig-shadow-soft);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice input:checked + .ig-choice-card {\r\n    border-color: rgba(15,159,122,.45);\r\n    background: var(--ig-bg-a);\r\n    box-shadow: inset 0 0 0 1px rgba(15,159,122,.18), var(--ig-shadow-soft);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice-card strong {\r\n    color: var(--ig-ink);\r\n    font-size: 15px;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-choice-card span {\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-subpanel {\r\n    display: grid;\r\n    gap: 14px;\r\n    margin-top: 14px;\r\n    padding: 16px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.76);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-subpanel.is-hidden { display: none; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-radio-row {\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-lulo-bolsillos-sim .ig-switch-line {\r\n    display: flex;\r\n    align-items: flex-start;\r\n    gap: 10px;\r\n    padding: 12px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #fff;\r\n    cursor: pointer;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-switch-line input {\r\n    width: 18px;\r\n    min-height: 18px;\r\n    height: 18px;\r\n    margin-top: 2px;\r\n    accent-color: var(--ig-accent-dark);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-switch-line strong {\r\n    display: block;\r\n    color: var(--ig-ink);\r\n    font-size: 13px;\r\n    font-weight: 850;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-switch-line span {\r\n    display: block;\r\n    margin-top: 2px;\r\n    color: var(--ig-muted);\r\n    font-size: 12px;\r\n    line-height: 1.42;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 10px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .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 18px;\r\n    border: 1px solid transparent;\r\n    border-radius: var(--ig-radius);\r\n    cursor: pointer;\r\n    color: #fff;\r\n    background: var(--ig-ink);\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, opacity 180ms ease;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-btn:hover { transform: translateY(-2px); background: var(--ig-accent-dark); box-shadow: 0 14px 24px rgba(23,51,47,.18); }\r\n  #ig-lulo-bolsillos-sim .ig-btn-secondary { color: var(--ig-ink); background: #fff; border-color: var(--ig-line); }\r\n  #ig-lulo-bolsillos-sim .ig-btn-secondary:hover { background: var(--ig-bg-a); border-color: var(--ig-line-strong); }\r\n  #ig-lulo-bolsillos-sim .ig-btn-coral { background: var(--ig-coral); }\r\n  #ig-lulo-bolsillos-sim .ig-btn-coral:hover { background: var(--ig-coral-dark); }\r\n  #ig-lulo-bolsillos-sim .ig-btn:disabled { opacity: .56; cursor: not-allowed; transform: none; box-shadow: none; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-msg {\r\n    display: none;\r\n    margin-top: 14px;\r\n    padding: 12px 14px;\r\n    border: 1px solid rgba(180,35,24,.18);\r\n    border-radius: var(--ig-radius);\r\n    background: #fee4e2;\r\n    color: var(--ig-danger);\r\n    font-size: 13px;\r\n    font-weight: 750;\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-msg.is-visible { display: block; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-side {\r\n    display: grid;\r\n    gap: 14px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-rate-card {\r\n    padding: 16px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #fff;\r\n    box-shadow: var(--ig-shadow-soft);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-rate-card h3 {\r\n    color: var(--ig-ink);\r\n    font-size: 16px;\r\n    line-height: 1.22;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-rate-list { display: grid; gap: 9px; margin-top: 12px; }\r\n  #ig-lulo-bolsillos-sim .ig-rate-item {\r\n    display: grid;\r\n    grid-template-columns: minmax(0,1fr) auto;\r\n    gap: 10px;\r\n    align-items: center;\r\n    padding-bottom: 9px;\r\n    border-bottom: 1px solid rgba(23,51,47,.09);\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-rate-item:last-child { border-bottom: 0; padding-bottom: 0; }\r\n  #ig-lulo-bolsillos-sim .ig-rate-item span { color: var(--ig-muted); font-size: 12px; line-height: 1.3; }\r\n  #ig-lulo-bolsillos-sim .ig-rate-item strong {\r\n    padding: 4px 8px;\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-green-soft);\r\n    color: var(--ig-accent-dark);\r\n    font-size: 12px;\r\n    white-space: nowrap;\r\n    font-weight: 900;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-results {\r\n    display: none;\r\n    margin-top: 18px;\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-results.is-visible { display: block; animation: ig-lulo-rise 360ms ease both; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-result-band {\r\n    padding: 18px;\r\n    border: 1px solid rgba(23,51,47,.22);\r\n    border-radius: var(--ig-radius);\r\n    background:\r\n      linear-gradient(135deg, rgba(239,106,74,.12), transparent 46%),\r\n      var(--ig-ink);\r\n    box-shadow: 0 22px 48px rgba(23,51,47,.20);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-result-head {\r\n    display: grid;\r\n    grid-template-columns: minmax(0,1fr) auto;\r\n    gap: 16px;\r\n    align-items: center;\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-result-head h2 { color: #fff; }\r\n  #ig-lulo-bolsillos-sim .ig-result-head p { color: rgba(255,255,255,.72); font-size: 13px; margin-top: 4px; }\r\n  #ig-lulo-bolsillos-sim .ig-pill {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 7px;\r\n    min-height: 32px;\r\n    padding: 6px 10px;\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.10);\r\n    color: #dff8ed;\r\n    font-size: 12px;\r\n    font-weight: 850;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kpis {\r\n    display: grid;\r\n    grid-template-columns: repeat(5, minmax(0,1fr));\r\n    gap: 10px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kpi {\r\n    min-height: 106px;\r\n    padding: 13px;\r\n    border: 1px solid rgba(255,255,255,.14);\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.08);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kpi span {\r\n    display: block;\r\n    color: rgba(255,255,255,.72);\r\n    font-size: 11px;\r\n    font-weight: 780;\r\n    line-height: 1.28;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kpi strong {\r\n    display: block;\r\n    margin-top: 7px;\r\n    color: #fff;\r\n    font-size: 18px;\r\n    line-height: 1.08;\r\n    font-weight: 930;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-kpi.is-main {\r\n    background: #fff;\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-kpi.is-main span { color: var(--ig-muted); }\r\n  #ig-lulo-bolsillos-sim .ig-kpi.is-main strong { color: var(--ig-ink); }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-insight {\r\n    display: grid;\r\n    grid-template-columns: auto minmax(0,1fr);\r\n    gap: 12px;\r\n    align-items: start;\r\n    margin-top: 12px;\r\n    padding: 14px;\r\n    border-radius: var(--ig-radius);\r\n    background: rgba(255,255,255,.08);\r\n    color: rgba(255,255,255,.82);\r\n    font-size: 13px;\r\n    line-height: 1.55;\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-insight strong { color: #fff; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-chart-card,\r\n  #ig-lulo-bolsillos-sim .ig-panel { margin-top: 18px; padding: 18px; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-section-head {\r\n    display: grid;\r\n    grid-template-columns: minmax(0,1fr) auto;\r\n    gap: 14px;\r\n    align-items: end;\r\n    margin-bottom: 12px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-section-head h3 {\r\n    color: var(--ig-ink);\r\n    font-size: 18px;\r\n    font-weight: 930;\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-section-head p { color: var(--ig-muted); font-size: 13px; margin-top: 3px; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-chart {\r\n    width: 100%;\r\n    height: 190px;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background:\r\n      linear-gradient(180deg, rgba(15,159,122,.05), transparent),\r\n      #fff;\r\n    overflow: hidden;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }\r\n  #ig-lulo-bolsillos-sim .ig-chart-line {\r\n    stroke-dasharray: 580;\r\n    stroke-dashoffset: 580;\r\n    animation: ig-lulo-draw 950ms ease forwards;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-table-wrap {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n    border: 1px solid var(--ig-line);\r\n    border-radius: var(--ig-radius);\r\n    background: #fff;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim table {\r\n    width: 100%;\r\n    min-width: 760px;\r\n    border-collapse: collapse;\r\n    font-variant-numeric: tabular-nums;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim th {\r\n    padding: 11px 12px;\r\n    background: var(--ig-ink);\r\n    color: #fff;\r\n    font-size: 11px;\r\n    line-height: 1.3;\r\n    font-weight: 850;\r\n    text-align: left;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim td {\r\n    padding: 10px 12px;\r\n    border-bottom: 1px solid var(--ig-line);\r\n    color: var(--ig-ink-2);\r\n    font-size: 13px;\r\n    white-space: nowrap;\r\n  }\r\n  #ig-lulo-bolsillos-sim tbody tr:nth-child(even) { background: rgba(239,251,246,.72); }\r\n  #ig-lulo-bolsillos-sim tbody tr:last-child td { border-bottom: 0; }\r\n  #ig-lulo-bolsillos-sim .ig-num { text-align: right; }\r\n  #ig-lulo-bolsillos-sim .ig-green { color: #08755d; font-weight: 850; }\r\n  #ig-lulo-bolsillos-sim .ig-coral { color: var(--ig-coral-dark); font-weight: 850; }\r\n\r\n  #ig-lulo-bolsillos-sim .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: 14px;\r\n    padding: 14px;\r\n    border: 1px solid rgba(239,106,74,.22);\r\n    border-radius: var(--ig-radius);\r\n    background: var(--ig-bg-b);\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .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-lulo-bolsillos-sim .ig-notes {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, minmax(0,1fr));\r\n    gap: 14px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-note {\r\n    padding: 16px;\r\n    box-shadow: var(--ig-shadow-soft);\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-note h3 { color: var(--ig-ink); font-size: 15px; font-weight: 930; }\r\n  #ig-lulo-bolsillos-sim .ig-note p,\r\n  #ig-lulo-bolsillos-sim .ig-note li { color: var(--ig-muted); font-size: 12.5px; line-height: 1.55; }\r\n  #ig-lulo-bolsillos-sim .ig-note ul { display: grid; gap: 7px; margin-top: 10px; list-style: none; }\r\n  #ig-lulo-bolsillos-sim .ig-note li { position: relative; padding-left: 16px; }\r\n  #ig-lulo-bolsillos-sim .ig-note li::before { content: \"\u2713\"; position: absolute; left: 0; color: var(--ig-accent-dark); font-weight: 900; }\r\n\r\n  #ig-lulo-bolsillos-sim .ig-icon { width: 18px; height: 18px; flex: 0 0 auto; }\r\n  #ig-lulo-bolsillos-sim .ig-icon-box {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 38px;\r\n    height: 38px;\r\n    border-radius: var(--ig-radius);\r\n    color: var(--ig-accent-dark);\r\n    background: var(--ig-green-soft);\r\n  }\r\n  #ig-lulo-bolsillos-sim .ig-icon-box.is-coral { color: var(--ig-coral-dark); background: var(--ig-coral-soft); }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    #ig-lulo-bolsillos-sim *,\r\n    #ig-lulo-bolsillos-sim *::before,\r\n    #ig-lulo-bolsillos-sim *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }\r\n  }\r\n\r\n  @media (max-width: 1020px) {\r\n    #ig-lulo-bolsillos-sim .ig-grid { grid-template-columns: 1fr; }\r\n    #ig-lulo-bolsillos-sim .ig-side { grid-template-columns: repeat(2, minmax(0,1fr)); }\r\n    #ig-lulo-bolsillos-sim .ig-kpis { grid-template-columns: repeat(3, minmax(0,1fr)); }\r\n    #ig-lulo-bolsillos-sim .ig-notes { grid-template-columns: 1fr; }\r\n  }\r\n\r\n  @media (max-width: 780px) {\r\n    #ig-lulo-bolsillos-sim { padding: 16px 0; }\r\n    #ig-lulo-bolsillos-sim .ig-wrap { width: min(100% - 18px, 1120px); }\r\n    #ig-lulo-bolsillos-sim .ig-tool-ribbon,\r\n    #ig-lulo-bolsillos-sim .ig-result-head,\r\n    #ig-lulo-bolsillos-sim .ig-section-head { grid-template-columns: 1fr; align-items: start; }\r\n    #ig-lulo-bolsillos-sim .ig-card { padding: 18px; }\r\n    #ig-lulo-bolsillos-sim h1 { font-size: 31px; }\r\n    #ig-lulo-bolsillos-sim h2 { font-size: 22px; }\r\n    #ig-lulo-bolsillos-sim .ig-fields,\r\n    #ig-lulo-bolsillos-sim .ig-mini-rates,\r\n    #ig-lulo-bolsillos-sim .ig-side,\r\n    #ig-lulo-bolsillos-sim .ig-tabs,\r\n    #ig-lulo-bolsillos-sim .ig-radio-row,\r\n    #ig-lulo-bolsillos-sim .ig-kpis { grid-template-columns: 1fr; }\r\n    #ig-lulo-bolsillos-sim .ig-actions { display: grid; grid-template-columns: 1fr; }\r\n    #ig-lulo-bolsillos-sim .ig-btn { width: 100%; }\r\n    #ig-lulo-bolsillos-sim .ig-pdf-actions { align-items: stretch; flex-direction: column; }\r\n    #ig-lulo-bolsillos-sim .ig-pdf-status { text-align: center; }\r\n  }\r\n\r\n  @media (max-width: 440px) {\r\n    #ig-lulo-bolsillos-sim h1 { font-size: 28px; }\r\n    #ig-lulo-bolsillos-sim .ig-card,\r\n    #ig-lulo-bolsillos-sim .ig-panel,\r\n    #ig-lulo-bolsillos-sim .ig-chart-card,\r\n    #ig-lulo-bolsillos-sim .ig-note { padding: 16px; }\r\n    #ig-lulo-bolsillos-sim .ig-kpi strong { font-size: 17px; }\r\n  }\r\n\r\n  @keyframes ig-lulo-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\r\n  @keyframes ig-lulo-draw { to { stroke-dashoffset: 0; } }\r\n<\/style>\r\n\r\n<section id=\"ig-lulo-bolsillos-sim\" aria-label=\"Simulador de rendimientos de Bolsillos Lulo Bank\">\r\n  <div class=\"ig-wrap\">\r\n    <div class=\"ig-tool-ribbon\">\r\n      <div>\r\n        <span class=\"ig-kicker\">\r\n          <svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 3v18h18\"><\/path><path d=\"m7 16 4-5 4 3 4-7\"><\/path><\/svg>\r\n          Herramienta financiera\r\n        <\/span>\r\n        <strong>Simulador de Bolsillos Lulo Bank<\/strong>\r\n        <p>Compara Bolsillos Flex y Programados con tasas parametrizadas, retenci\u00f3n estimada y reporte descargable.<\/p>\r\n      <\/div>\r\n      <span class=\"ig-status\"><span class=\"ig-dot\"><\/span> PDF disponible despu\u00e9s del c\u00e1lculo<\/span>\r\n    <\/div>\r\n\r\n    <div class=\"ig-grid\">\r\n      <div>\r\n        <article class=\"ig-card ig-hero\">\r\n          <span class=\"ig-eyebrow\">\r\n            <svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 2v20\"><\/path><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7H14a3.5 3.5 0 0 1 0 7H6\"><\/path><\/svg>\r\n            Lulo cuenta \u00b7 Bolsillos\r\n          <\/span>\r\n          <h1>Visualiza cu\u00e1nto puede crecer tu dinero <span>seg\u00fan el bolsillo que elijas.<\/span><\/h1>\r\n          <p class=\"ig-hero-copy\">Usa una proyecci\u00f3n educativa para entender la diferencia entre flexibilidad mensual, plazo programado, perfil Lulo Pro y posible retenci\u00f3n sobre rendimientos.<\/p>\r\n\r\n          <div class=\"ig-mini-rates\" aria-label=\"Tasas destacadas\">\r\n            <div class=\"ig-mini-rate\"><span>Flex est\u00e1ndar<\/span><strong>7,50% E.A.<\/strong><\/div>\r\n            <div class=\"ig-mini-rate\"><span>Flex Lulo Pro<\/span><strong>9,25% E.A.<\/strong><\/div>\r\n            <div class=\"ig-mini-rate\"><span>Programado Pro 90 d\u00edas<\/span><strong>10,00% E.A.<\/strong><\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <article class=\"ig-card\" style=\"margin-top:18px;\">\r\n          <div class=\"ig-form-title\">\r\n            <div>\r\n              <h2>Datos para simular<\/h2>\r\n              <p>Ingresa el monto, elige el tipo de bolsillo y ajusta el escenario. El formato de dinero se organiza autom\u00e1ticamente.<\/p>\r\n            <\/div>\r\n            <span class=\"ig-icon-box\" aria-hidden=\"true\"><svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"16\" height=\"20\" x=\"4\" y=\"2\" rx=\"2\"><\/rect><path d=\"M8 6h8\"><\/path><path d=\"M8 10h8\"><\/path><path d=\"M8 14h4\"><\/path><\/svg><\/span>\r\n          <\/div>\r\n\r\n          <div class=\"ig-fields\">\r\n            <div class=\"ig-field\">\r\n              <label for=\"ig-lulo-monto\">Monto inicial en el bolsillo<\/label>\r\n              <input id=\"ig-lulo-monto\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"Ej: 10.000.000\">\r\n            <\/div>\r\n            <div class=\"ig-field\">\r\n              <label for=\"ig-lulo-fecha\">Fecha de inicio<\/label>\r\n              <input id=\"ig-lulo-fecha\" type=\"date\">\r\n            <\/div>\r\n            <div class=\"ig-field\">\r\n              <label for=\"ig-lulo-uvt\">UVT de referencia<\/label>\r\n              <input id=\"ig-lulo-uvt\" type=\"text\" inputmode=\"numeric\" value=\"52.374\">\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"ig-tabs\" role=\"radiogroup\" aria-label=\"Tipo de bolsillo\">\r\n            <label class=\"ig-choice\">\r\n              <input type=\"radio\" name=\"ig-lulo-producto\" value=\"flex\" checked>\r\n              <span class=\"ig-choice-card\">\r\n                <strong>Bolsillo Flex<\/strong>\r\n                <span>Para ahorrar con disponibilidad y rendimiento mensual sobre saldo promedio.<\/span>\r\n              <\/span>\r\n            <\/label>\r\n            <label class=\"ig-choice\">\r\n              <input type=\"radio\" name=\"ig-lulo-producto\" value=\"programado\">\r\n              <span class=\"ig-choice-card\">\r\n                <strong>Bolsillo Programado<\/strong>\r\n                <span>Para mantener el dinero 60 o 90 d\u00edas y conservar la tasa del plazo elegido.<\/span>\r\n              <\/span>\r\n            <\/label>\r\n          <\/div>\r\n\r\n          <div id=\"ig-lulo-flex-panel\" class=\"ig-subpanel\">\r\n            <div class=\"ig-fields\" style=\"grid-template-columns: repeat(2, minmax(0,1fr));\">\r\n              <div class=\"ig-field\">\r\n                <span class=\"ig-label\">Perfil de rendimiento<\/span>\r\n                <div class=\"ig-radio-row\">\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-flex-perfil\" value=\"estandar\" checked>\r\n                    <span class=\"ig-choice-card\"><strong>Cliente est\u00e1ndar<\/strong><span>7,50% E.A.<\/span><\/span>\r\n                  <\/label>\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-flex-perfil\" value=\"pro\">\r\n                    <span class=\"ig-choice-card\"><strong>Lulo Pro<\/strong><span>9,25% E.A.<\/span><\/span>\r\n                  <\/label>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"ig-field\">\r\n                <label for=\"ig-lulo-meses\">Meses calendario a simular<\/label>\r\n                <input id=\"ig-lulo-meses\" type=\"number\" min=\"1\" max=\"36\" value=\"6\">\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"ig-fields\" style=\"grid-template-columns: repeat(2, minmax(0,1fr));\">\r\n              <div class=\"ig-field\">\r\n                <label for=\"ig-lulo-aporte\">Aporte mensual opcional<\/label>\r\n                <input id=\"ig-lulo-aporte\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"Ej: 300.000\">\r\n              <\/div>\r\n              <label class=\"ig-switch-line\" style=\"margin-top: 22px;\">\r\n                <input id=\"ig-lulo-retencion\" type=\"checkbox\" checked>\r\n                <span><strong>Aplicar retenci\u00f3n estimada<\/strong><span>7% cuando el rendimiento diario estimado supera el umbral configurado.<\/span><\/span>\r\n              <\/label>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div id=\"ig-lulo-programado-panel\" class=\"ig-subpanel is-hidden\">\r\n            <div class=\"ig-fields\" style=\"grid-template-columns: repeat(2, minmax(0,1fr));\">\r\n              <div class=\"ig-field\">\r\n                <span class=\"ig-label\">Plazo del Bolsillo Programado<\/span>\r\n                <div class=\"ig-radio-row\">\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-plazo\" value=\"60\" checked>\r\n                    <span class=\"ig-choice-card\"><strong>60 d\u00edas<\/strong><span>8,50% est\u00e1ndar \u00b7 9,50% Pro<\/span><\/span>\r\n                  <\/label>\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-plazo\" value=\"90\">\r\n                    <span class=\"ig-choice-card\"><strong>90 d\u00edas<\/strong><span>9,00% est\u00e1ndar \u00b7 10,00% Pro<\/span><\/span>\r\n                  <\/label>\r\n                <\/div>\r\n              <\/div>\r\n              <div class=\"ig-field\">\r\n                <span class=\"ig-label\">Perfil<\/span>\r\n                <div class=\"ig-radio-row\">\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-prog-perfil\" value=\"estandar\" checked>\r\n                    <span class=\"ig-choice-card\"><strong>Est\u00e1ndar<\/strong><span>Tasa base del plazo.<\/span><\/span>\r\n                  <\/label>\r\n                  <label class=\"ig-choice\">\r\n                    <input type=\"radio\" name=\"ig-lulo-prog-perfil\" value=\"pro\">\r\n                    <span class=\"ig-choice-card\"><strong>Lulo Pro<\/strong><span>Tasa superior del plazo.<\/span><\/span>\r\n                  <\/label>\r\n                <\/div>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"ig-fields\" style=\"grid-template-columns: repeat(2, minmax(0,1fr));\">\r\n              <label class=\"ig-switch-line\">\r\n                <input id=\"ig-lulo-retiro\" type=\"checkbox\">\r\n                <span><strong>Simular retiro anticipado<\/strong><span>Si se retira antes del plazo, se usa la tasa de Lulo cuenta configurada.<\/span><\/span>\r\n              <\/label>\r\n              <div class=\"ig-field\" id=\"ig-lulo-retiro-fields\" style=\"display:none;\">\r\n                <label for=\"ig-lulo-dias-retiro\">D\u00edas mantenidos antes del retiro<\/label>\r\n                <input id=\"ig-lulo-dias-retiro\" type=\"number\" min=\"1\" max=\"89\" value=\"30\">\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"ig-fields\" style=\"grid-template-columns: repeat(2, minmax(0,1fr));\">\r\n              <div class=\"ig-field\">\r\n                <label for=\"ig-lulo-tasa-retiro\">Tasa Lulo cuenta para retiro anticipado<\/label>\r\n                <input id=\"ig-lulo-tasa-retiro\" type=\"number\" min=\"0\" max=\"20\" step=\"0.01\" value=\"0.10\">\r\n              <\/div>\r\n              <label class=\"ig-switch-line\" style=\"margin-top: 22px;\">\r\n                <input id=\"ig-lulo-retencion-prog\" type=\"checkbox\" checked>\r\n                <span><strong>Aplicar retenci\u00f3n estimada<\/strong><span>Se descuenta sobre rendimientos si supera el umbral diario configurado.<\/span><\/span>\r\n              <\/label>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div id=\"ig-lulo-msg\" class=\"ig-msg\" role=\"alert\"><\/div>\r\n\r\n          <div class=\"ig-actions\">\r\n            <button id=\"ig-lulo-calcular\" class=\"ig-btn\" type=\"button\">\r\n              <svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 5v14\"><\/path><path d=\"M5 12h14\"><\/path><\/svg>\r\n              Calcular rendimiento\r\n            <\/button>\r\n            <button id=\"ig-lulo-limpiar\" class=\"ig-btn ig-btn-secondary\" type=\"button\">Reiniciar<\/button>\r\n          <\/div>\r\n        <\/article>\r\n      <\/div>\r\n\r\n      <aside class=\"ig-side\" aria-label=\"Condiciones usadas en el simulador\">\r\n        <article class=\"ig-rate-card\">\r\n          <h3>Bolsillos Flex<\/h3>\r\n          <div class=\"ig-rate-list\">\r\n            <div class=\"ig-rate-item\"><span>Cliente est\u00e1ndar<\/span><strong>7,50% E.A.<\/strong><\/div>\r\n            <div class=\"ig-rate-item\"><span>Cliente Lulo Pro<\/span><strong>9,25% E.A.<\/strong><\/div>\r\n            <div class=\"ig-rate-item\"><span>Liquidaci\u00f3n<\/span><strong>Mensual<\/strong><\/div>\r\n          <\/div>\r\n          <p class=\"ig-muted\">Estimaci\u00f3n sobre saldo promedio del mes y abono en los primeros d\u00edas del mes siguiente.<\/p>\r\n        <\/article>\r\n        <article class=\"ig-rate-card\">\r\n          <h3>Bolsillos Programados<\/h3>\r\n          <div class=\"ig-rate-list\">\r\n            <div class=\"ig-rate-item\"><span>60 d\u00edas est\u00e1ndar \/ Pro<\/span><strong>8,50% \/ 9,50%<\/strong><\/div>\r\n            <div class=\"ig-rate-item\"><span>90 d\u00edas est\u00e1ndar \/ Pro<\/span><strong>9,00% \/ 10,00%<\/strong><\/div>\r\n            <div class=\"ig-rate-item\"><span>Si se respeta el plazo<\/span><strong>Tasa fija<\/strong><\/div>\r\n          <\/div>\r\n          <p class=\"ig-muted\">Si se retira antes del plazo, el rendimiento se estima con la tasa de Lulo cuenta configurada.<\/p>\r\n        <\/article>\r\n      <\/aside>\r\n    <\/div>\r\n\r\n    <div id=\"ig-lulo-results\" class=\"ig-results\" aria-live=\"polite\">\r\n      <section class=\"ig-result-band\">\r\n        <div class=\"ig-result-head\">\r\n          <div>\r\n            <h2>Resumen de la simulaci\u00f3n<\/h2>\r\n            <p id=\"ig-lulo-periodo\">Resultado estimado con los par\u00e1metros seleccionados.<\/p>\r\n          <\/div>\r\n          <span id=\"ig-lulo-badge\" class=\"ig-pill\"><span class=\"ig-dot\"><\/span> Escenario calculado<\/span>\r\n        <\/div>\r\n        <div class=\"ig-kpis\">\r\n          <div class=\"ig-kpi\"><span>Tasa aplicada<\/span><strong id=\"ig-lulo-kpi-rate\">--<\/strong><\/div>\r\n          <div class=\"ig-kpi\"><span>Rendimiento bruto<\/span><strong id=\"ig-lulo-kpi-gross\">--<\/strong><\/div>\r\n          <div class=\"ig-kpi\"><span>Retenci\u00f3n estimada<\/span><strong id=\"ig-lulo-kpi-tax\">--<\/strong><\/div>\r\n          <div class=\"ig-kpi\"><span>Rendimiento neto<\/span><strong id=\"ig-lulo-kpi-net\">--<\/strong><\/div>\r\n          <div class=\"ig-kpi is-main\"><span>Monto final estimado<\/span><strong id=\"ig-lulo-kpi-final\">--<\/strong><\/div>\r\n        <\/div>\r\n        <div class=\"ig-insight\">\r\n          <span class=\"ig-icon-box is-coral\" aria-hidden=\"true\"><svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a4 4 0 0 1-4 4H7l-4 4V5a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z\"><\/path><\/svg><\/span>\r\n          <p id=\"ig-lulo-insight\"><strong>Lectura r\u00e1pida:<\/strong> completa el formulario y calcula para ver la interpretaci\u00f3n.<\/p>\r\n        <\/div>\r\n        <div class=\"ig-pdf-actions\">\r\n          <button id=\"ig-lulo-pdf\" class=\"ig-btn ig-btn-coral\" type=\"button\" disabled>\r\n            <svg class=\"ig-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><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>\r\n            Descargar reporte PDF\r\n          <\/button>\r\n          <span id=\"ig-lulo-pdf-status\" class=\"ig-pdf-status\">Ejecuta el c\u00e1lculo para habilitar la descarga.<\/span>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"ig-chart-card\">\r\n        <div class=\"ig-section-head\">\r\n          <div>\r\n            <h3>Visual de crecimiento<\/h3>\r\n            <p>Curva estimada del saldo durante el periodo simulado.<\/p>\r\n          <\/div>\r\n          <span id=\"ig-lulo-chart-note\" class=\"ig-pill\" style=\"background:var(--ig-bg-a);color:var(--ig-accent-dark);\">Proyecci\u00f3n educativa<\/span>\r\n        <\/div>\r\n        <div id=\"ig-lulo-chart\" class=\"ig-chart\"><\/div>\r\n      <\/section>\r\n\r\n      <section class=\"ig-panel\">\r\n        <div class=\"ig-section-head\">\r\n          <div>\r\n            <h3 id=\"ig-lulo-table-title\">Detalle<\/h3>\r\n            <p id=\"ig-lulo-table-subtitle\">Tabla de rendimientos estimados.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"ig-table-wrap\">\r\n          <table>\r\n            <thead id=\"ig-lulo-table-head\"><\/thead>\r\n            <tbody id=\"ig-lulo-table-body\"><\/tbody>\r\n          <\/table>\r\n        <\/div>\r\n      <\/section>\r\n    <\/div>\r\n\r\n    <div class=\"ig-notes\">\r\n      <article class=\"ig-note\">\r\n        <h3>C\u00f3mo se estima Flex<\/h3>\r\n        <ul>\r\n          <li>Se usa la tasa E.A. seleccionada y se convierte proporcionalmente por d\u00edas del mes.<\/li>\r\n          <li>El rendimiento se calcula sobre el saldo promedio del periodo mensual simulado.<\/li>\r\n          <li>El abono se marca como estimado para los primeros d\u00edas del mes siguiente.<\/li>\r\n        <\/ul>\r\n      <\/article>\r\n      <article class=\"ig-note\">\r\n        <h3>C\u00f3mo se estima Programado<\/h3>\r\n        <ul>\r\n          <li>Se proyecta el rendimiento hasta 60 o 90 d\u00edas seg\u00fan el plazo elegido.<\/li>\r\n          <li>Si simulas retiro anticipado, se usa la tasa de Lulo cuenta configurada.<\/li>\r\n          <li>La tasa del plazo se conserva en la simulaci\u00f3n si se respeta el tiempo elegido.<\/li>\r\n        <\/ul>\r\n      <\/article>\r\n      <article class=\"ig-note\">\r\n        <h3>Notas importantes<\/h3>\r\n        <ul>\r\n          <li>Las tasas son parametrizadas y pueden cambiar por condiciones de mercado.<\/li>\r\n          <li>La retenci\u00f3n del 7% se estima seg\u00fan el umbral diario de UVT configurado.<\/li>\r\n          <li>Este c\u00e1lculo es educativo y no reemplaza las condiciones oficiales del banco.<\/li>\r\n        <\/ul>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  'use strict';\r\n\r\n  const root = document.getElementById('ig-lulo-bolsillos-sim');\r\n  if (!root || root.dataset.ready === 'true') return;\r\n  root.dataset.ready = 'true';\r\n\r\n  const DEFAULT_UVT_2026 = 52374;\r\n  const RETENTION_RATE = 0.07;\r\n  const RETENTION_UVT_FACTOR = 0.055;\r\n  const rates = {\r\n    flex: { estandar: 0.075, pro: 0.0925 },\r\n    programado: {\r\n      estandar: { 60: 0.085, 90: 0.09 },\r\n      pro: { 60: 0.095, 90: 0.10 }\r\n    }\r\n  };\r\n\r\n  const $ = (selector) => root.querySelector(selector);\r\n  const $$ = (selector) => Array.from(root.querySelectorAll(selector));\r\n\r\n  const els = {\r\n    monto: $('#ig-lulo-monto'),\r\n    fecha: $('#ig-lulo-fecha'),\r\n    uvt: $('#ig-lulo-uvt'),\r\n    meses: $('#ig-lulo-meses'),\r\n    aporte: $('#ig-lulo-aporte'),\r\n    retencionFlex: $('#ig-lulo-retencion'),\r\n    retencionProg: $('#ig-lulo-retencion-prog'),\r\n    flexPanel: $('#ig-lulo-flex-panel'),\r\n    progPanel: $('#ig-lulo-programado-panel'),\r\n    retiro: $('#ig-lulo-retiro'),\r\n    retiroFields: $('#ig-lulo-retiro-fields'),\r\n    diasRetiro: $('#ig-lulo-dias-retiro'),\r\n    tasaRetiro: $('#ig-lulo-tasa-retiro'),\r\n    msg: $('#ig-lulo-msg'),\r\n    calcular: $('#ig-lulo-calcular'),\r\n    limpiar: $('#ig-lulo-limpiar'),\r\n    results: $('#ig-lulo-results'),\r\n    periodo: $('#ig-lulo-periodo'),\r\n    badge: $('#ig-lulo-badge'),\r\n    kpiRate: $('#ig-lulo-kpi-rate'),\r\n    kpiGross: $('#ig-lulo-kpi-gross'),\r\n    kpiTax: $('#ig-lulo-kpi-tax'),\r\n    kpiNet: $('#ig-lulo-kpi-net'),\r\n    kpiFinal: $('#ig-lulo-kpi-final'),\r\n    insight: $('#ig-lulo-insight'),\r\n    chart: $('#ig-lulo-chart'),\r\n    chartNote: $('#ig-lulo-chart-note'),\r\n    tableTitle: $('#ig-lulo-table-title'),\r\n    tableSubtitle: $('#ig-lulo-table-subtitle'),\r\n    tableHead: $('#ig-lulo-table-head'),\r\n    tableBody: $('#ig-lulo-table-body'),\r\n    pdf: $('#ig-lulo-pdf'),\r\n    pdfStatus: $('#ig-lulo-pdf-status')\r\n  };\r\n\r\n  let lastReport = null;\r\n\r\n  const fmtMoney = new Intl.NumberFormat('es-CO', { style: 'currency', currency: 'COP', maximumFractionDigits: 0 });\r\n  const fmtMoney2 = new Intl.NumberFormat('es-CO', { style: 'currency', currency: 'COP', minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n  const fmtNum = new Intl.NumberFormat('es-CO', { maximumFractionDigits: 0 });\r\n  const fmtPercent = new Intl.NumberFormat('es-CO', { style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n  const fmtDate = new Intl.DateTimeFormat('es-CO', { year: 'numeric', month: 'short', day: '2-digit' });\r\n  const fmtMonth = new Intl.DateTimeFormat('es-CO', { year: 'numeric', month: 'long' });\r\n\r\n  function round2(value) { return Math.round((Number(value) || 0) * 100) \/ 100; }\r\n\r\n  function toYMD(date) {\r\n    const y = date.getFullYear();\r\n    const m = String(date.getMonth() + 1).padStart(2, '0');\r\n    const d = String(date.getDate()).padStart(2, '0');\r\n    return `${y}-${m}-${d}`;\r\n  }\r\n\r\n  function fromYMD(value) {\r\n    const parts = String(value || '').split('-').map(Number);\r\n    if (parts.length !== 3 || parts.some(Number.isNaN)) return null;\r\n    return new Date(parts[0], parts[1] - 1, parts[2]);\r\n  }\r\n\r\n  function addDays(date, days) {\r\n    const d = new Date(date);\r\n    d.setDate(d.getDate() + days);\r\n    return d;\r\n  }\r\n\r\n  function daysInclusive(start, end) {\r\n    return Math.max(1, Math.round((end - start) \/ 86400000) + 1);\r\n  }\r\n\r\n  function startOfMonth(date) { return new Date(date.getFullYear(), date.getMonth(), 1); }\r\n  function endOfMonth(date) { return new Date(date.getFullYear(), date.getMonth() + 1, 0); }\r\n  function firstOfNextMonth(date) { return new Date(date.getFullYear(), date.getMonth() + 1, 1); }\r\n\r\n  function isBusinessDay(date) {\r\n    const day = date.getDay();\r\n    return day !== 0 && day !== 6;\r\n  }\r\n\r\n  function addBusinessDays(date, count) {\r\n    let d = new Date(date);\r\n    let added = 0;\r\n    while (added < count) {\r\n      d = addDays(d, 1);\r\n      if (isBusinessDay(d)) added++;\r\n    }\r\n    return d;\r\n  }\r\n\r\n  function parseMoney(value) {\r\n    if (typeof value !== 'string') return NaN;\r\n    let s = value.trim();\r\n    if (!s) return NaN;\r\n    s = s.replace(\/[^\\d.,-]\/g, '');\r\n    const lastDot = s.lastIndexOf('.');\r\n    const lastComma = s.lastIndexOf(',');\r\n    if (lastDot > -1 && lastComma > -1) {\r\n      if (lastComma > lastDot) s = s.replace(\/\\.\/g, '').replace(',', '.');\r\n      else s = s.replace(\/,\/g, '');\r\n    } else if (lastComma > -1) {\r\n      const decimals = s.length - lastComma - 1;\r\n      if (decimals > 0 && decimals <= 2) s = s.replace(\/\\.\/g, '').replace(',', '.');\r\n      else s = s.replace(\/,\/g, '');\r\n    } else if (lastDot > -1) {\r\n      const pieces = s.split('.');\r\n      const decimals = s.length - lastDot - 1;\r\n      if (pieces.length > 2 || decimals === 3) s = s.replace(\/\\.\/g, '');\r\n    }\r\n    const n = Number(s);\r\n    return Number.isFinite(n) ? n : NaN;\r\n  }\r\n\r\n  function formatMoneyInput(input) {\r\n    const numeric = parseMoney(input.value);\r\n    if (!Number.isFinite(numeric) || numeric <= 0) {\r\n      input.value = '';\r\n      return;\r\n    }\r\n    input.value = fmtNum.format(Math.round(numeric));\r\n  }\r\n\r\n  function bindMoneyInput(input) {\r\n    input.addEventListener('input', () => {\r\n      const digits = input.value.replace(\/\\D\/g, '');\r\n      input.value = digits ? fmtNum.format(Number(digits)) : '';\r\n      hideMsg();\r\n      input.classList.remove('is-error');\r\n    });\r\n    input.addEventListener('blur', () => formatMoneyInput(input));\r\n  }\r\n\r\n  function getProduct() {\r\n    return root.querySelector('input[name=\"ig-lulo-producto\"]:checked')?.value || 'flex';\r\n  }\r\n  function getRadio(name) {\r\n    return root.querySelector(`input[name=\"${name}\"]:checked`)?.value;\r\n  }\r\n\r\n  function showMsg(message) {\r\n    els.msg.textContent = message;\r\n    els.msg.classList.add('is-visible');\r\n  }\r\n\r\n  function hideMsg() {\r\n    els.msg.textContent = '';\r\n    els.msg.classList.remove('is-visible');\r\n  }\r\n\r\n  function setProductPanels() {\r\n    const product = getProduct();\r\n    els.flexPanel.classList.toggle('is-hidden', product !== 'flex');\r\n    els.progPanel.classList.toggle('is-hidden', product !== 'programado');\r\n    hideResults();\r\n  }\r\n\r\n  function setRetiroFields() {\r\n    const show = els.retiro.checked;\r\n    els.retiroFields.style.display = show ? 'grid' : 'none';\r\n    const plazo = Number(getRadio('ig-lulo-plazo') || 60);\r\n    els.diasRetiro.max = String(Math.max(1, plazo - 1));\r\n    if (Number(els.diasRetiro.value) >= plazo) els.diasRetiro.value = Math.max(1, plazo - 1);\r\n  }\r\n\r\n  function getUvtValue() {\r\n    const value = parseMoney(els.uvt.value);\r\n    return Number.isFinite(value) && value > 0 ? value : DEFAULT_UVT_2026;\r\n  }\r\n\r\n  function calcTax(grossInterest, days, applyTax) {\r\n    if (!applyTax || grossInterest <= 0) return { tax: 0, threshold: getUvtValue() * RETENTION_UVT_FACTOR, applied: false };\r\n    const threshold = getUvtValue() * RETENTION_UVT_FACTOR;\r\n    const avgDailyInterest = grossInterest \/ Math.max(1, days);\r\n    const applied = avgDailyInterest > threshold;\r\n    return { tax: applied ? round2(grossInterest * RETENTION_RATE) : 0, threshold, applied };\r\n  }\r\n\r\n  function validate() {\r\n    hideMsg();\r\n    $$('#ig-lulo-bolsillos-sim input, #ig-lulo-bolsillos-sim select').forEach(el => el.classList.remove('is-error'));\r\n\r\n    const monto = parseMoney(els.monto.value);\r\n    if (!Number.isFinite(monto) || monto <= 0) {\r\n      els.monto.classList.add('is-error');\r\n      showMsg('Ingresa un monto inicial v\u00e1lido mayor a $0 COP.');\r\n      return null;\r\n    }\r\n\r\n    const fecha = fromYMD(els.fecha.value);\r\n    if (!fecha || Number.isNaN(fecha.getTime())) {\r\n      els.fecha.classList.add('is-error');\r\n      showMsg('Selecciona una fecha de inicio v\u00e1lida.');\r\n      return null;\r\n    }\r\n\r\n    const product = getProduct();\r\n    if (product === 'flex') {\r\n      const meses = Number(els.meses.value);\r\n      if (!Number.isFinite(meses) || meses < 1 || meses > 36) {\r\n        els.meses.classList.add('is-error');\r\n        showMsg('Para Bolsillo Flex, el n\u00famero de meses debe estar entre 1 y 36.');\r\n        return null;\r\n      }\r\n    }\r\n\r\n    if (product === 'programado' && els.retiro.checked) {\r\n      const plazo = Number(getRadio('ig-lulo-plazo') || 60);\r\n      const dias = Number(els.diasRetiro.value);\r\n      if (!Number.isFinite(dias) || dias < 1 || dias >= plazo) {\r\n        els.diasRetiro.classList.add('is-error');\r\n        showMsg('Para retiro anticipado, los d\u00edas mantenidos deben ser menores al plazo elegido.');\r\n        return null;\r\n      }\r\n    }\r\n\r\n    return { monto: Math.round(monto), fecha, product };\r\n  }\r\n\r\n  function calcFlex({ monto, fecha }) {\r\n    const perfil = getRadio('ig-lulo-flex-perfil') || 'estandar';\r\n    const annualRate = rates.flex[perfil];\r\n    const months = Math.max(1, Math.min(36, Number(els.meses.value) || 1));\r\n    const aporte = Math.max(0, Math.round(parseMoney(els.aporte.value) || 0));\r\n    const applyTax = els.retencionFlex.checked;\r\n\r\n    let balance = monto;\r\n    let cursor = new Date(fecha);\r\n    let totalGross = 0;\r\n    let totalTax = 0;\r\n    const rows = [];\r\n    const chart = [{ label: 'Inicial', value: balance }];\r\n\r\n    for (let i = 0; i < months; i++) {\r\n      const periodStart = i === 0 ? new Date(cursor) : startOfMonth(cursor);\r\n      if (i > 0 && aporte > 0) balance = round2(balance + aporte);\r\n      const periodEnd = endOfMonth(periodStart);\r\n      const days = daysInclusive(periodStart, periodEnd);\r\n      const avgBalance = balance;\r\n      const gross = round2(avgBalance * (Math.pow(1 + annualRate, days \/ 365) - 1));\r\n      const taxInfo = calcTax(gross, days, applyTax);\r\n      const net = round2(gross - taxInfo.tax);\r\n      balance = round2(balance + net);\r\n      totalGross = round2(totalGross + gross);\r\n      totalTax = round2(totalTax + taxInfo.tax);\r\n\r\n      rows.push({\r\n        periodo: fmtMonth.format(periodStart),\r\n        dias: days,\r\n        promedio: avgBalance,\r\n        bruto: gross,\r\n        retencion: taxInfo.tax,\r\n        neto: net,\r\n        abono: 'Primeros d\u00edas del mes siguiente',\r\n        saldo: balance\r\n      });\r\n      chart.push({ label: fmtMonth.format(periodStart).slice(0,3), value: balance });\r\n      cursor = firstOfNextMonth(periodStart);\r\n    }\r\n\r\n    const netTotal = round2(totalGross - totalTax);\r\n    return {\r\n      type: 'Bolsillo Flex',\r\n      badge: perfil === 'pro' ? 'Flex \u00b7 Lulo Pro' : 'Flex \u00b7 Est\u00e1ndar',\r\n      rate: annualRate,\r\n      period: `${fmtDate.format(fecha)} \u00b7 ${months} mes${months === 1 ? '' : 'es'} calendario`,\r\n      gross: totalGross,\r\n      tax: totalTax,\r\n      net: netTotal,\r\n      finalAmount: balance,\r\n      chart,\r\n      rows,\r\n      table: {\r\n        title: 'Detalle mensual del Bolsillo Flex',\r\n        subtitle: 'Estimaci\u00f3n sobre saldo promedio mensual y abono en los primeros d\u00edas del mes siguiente.',\r\n        head: ['Periodo', 'D\u00edas', 'Saldo promedio', 'Inter\u00e9s bruto', 'Retenci\u00f3n', 'Inter\u00e9s neto', 'Abono estimado', 'Saldo final'],\r\n        rows: rows.map(r => [r.periodo, String(r.dias), fmtMoney.format(r.promedio), fmtMoney2.format(r.bruto), fmtMoney2.format(r.retencion), fmtMoney2.format(r.neto), r.abono, fmtMoney.format(r.saldo)])\r\n      },\r\n      insight: aporte > 0\r\n        ? `Con un aporte mensual de ${fmtMoney.format(aporte)}, el saldo proyectado combina disciplina de ahorro y rendimiento estimado.`\r\n        : 'El resultado depende principalmente del saldo promedio mensual: mientras m\u00e1s tiempo permanezca el dinero, m\u00e1s clara se vuelve la diferencia entre perfiles.'\r\n    };\r\n  }\r\n\r\n  function calcProgramado({ monto, fecha }) {\r\n    const perfil = getRadio('ig-lulo-prog-perfil') || 'estandar';\r\n    const plazo = Number(getRadio('ig-lulo-plazo') || 60);\r\n    const early = els.retiro.checked;\r\n    const configuredEarlyRate = Math.max(0, Number(els.tasaRetiro.value) || 0) \/ 100;\r\n    const days = early ? Math.max(1, Math.min(plazo - 1, Number(els.diasRetiro.value) || 1)) : plazo;\r\n    const annualRate = early ? configuredEarlyRate : rates.programado[perfil][plazo];\r\n    const applyTax = els.retencionProg.checked;\r\n    const gross = round2(monto * (Math.pow(1 + annualRate, days \/ 365) - 1));\r\n    const taxInfo = calcTax(gross, days, applyTax);\r\n    const tax = taxInfo.tax;\r\n    const net = round2(gross - tax);\r\n    const finalAmount = round2(monto + net);\r\n    const endDate = addDays(fecha, days - 1);\r\n    const payout = early ? fmtDate.format(endDate) : fmtDate.format(addBusinessDays(endDate, 1));\r\n\r\n    const chart = [];\r\n    const steps = Math.min(days, 12);\r\n    for (let i = 0; i <= steps; i++) {\r\n      const d = Math.round((days \/ steps) * i);\r\n      const g = monto * (Math.pow(1 + annualRate, d \/ 365) - 1);\r\n      chart.push({ label: `D\u00eda ${d}`, value: monto + Math.max(0, g) });\r\n    }\r\n\r\n    const rows = [[\r\n      early ? 'Retiro anticipado' : `Plazo ${plazo} d\u00edas`,\r\n      String(days),\r\n      fmtPercent.format(annualRate),\r\n      fmtMoney2.format(gross),\r\n      fmtMoney2.format(tax),\r\n      fmtMoney2.format(net),\r\n      payout,\r\n      fmtMoney.format(finalAmount)\r\n    ]];\r\n\r\n    return {\r\n      type: 'Bolsillo Programado',\r\n      badge: early ? 'Programado \u00b7 retiro anticipado' : `Programado \u00b7 ${plazo} d\u00edas`,\r\n      rate: annualRate,\r\n      period: `${fmtDate.format(fecha)} al ${fmtDate.format(endDate)} \u00b7 ${days} d\u00edas`,\r\n      gross,\r\n      tax,\r\n      net,\r\n      finalAmount,\r\n      chart,\r\n      rows,\r\n      table: {\r\n        title: 'Detalle del Bolsillo Programado',\r\n        subtitle: early ? 'Al simular retiro anticipado, se aplica la tasa de Lulo cuenta configurada.' : 'Estimaci\u00f3n si se respeta el plazo seleccionado.',\r\n        head: ['Escenario', 'D\u00edas', 'Tasa E.A.', 'Inter\u00e9s bruto', 'Retenci\u00f3n', 'Inter\u00e9s neto', 'Abono \/ disponibilidad', 'Monto final'],\r\n        rows\r\n      },\r\n      insight: early\r\n        ? 'Al retirar antes del plazo, el rendimiento estimado baja porque se reemplaza la tasa del Bolsillo Programado por la tasa de Lulo cuenta configurada.'\r\n        : `Respetar el plazo de ${plazo} d\u00edas permite conservar la tasa seleccionada durante el periodo simulado.`\r\n    };\r\n  }\r\n\r\n  function drawChart(points) {\r\n    if (!points || points.length < 2) {\r\n      els.chart.innerHTML = '';\r\n      return;\r\n    }\r\n    const width = 100;\r\n    const height = 100;\r\n    const values = points.map(p => p.value);\r\n    const min = Math.min(...values);\r\n    const max = Math.max(...values);\r\n    const range = max - min || 1;\r\n    const coords = points.map((p, i) => {\r\n      const x = (i \/ (points.length - 1)) * width;\r\n      const y = height - (((p.value - min) \/ range) * 72 + 14);\r\n      return `${x.toFixed(2)},${y.toFixed(2)}`;\r\n    });\r\n    const line = coords.join(' L ');\r\n    const area = `M 0,100 L ${line} L 100,100 Z`;\r\n    const last = points[points.length - 1];\r\n    const first = points[0];\r\n    els.chart.innerHTML = `\r\n      <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\r\n        <defs>\r\n          <linearGradient id=\"igLuloGrad\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\r\n            <stop offset=\"0%\" stop-color=\"#0f9f7a\" stop-opacity=\"0.28\"><\/stop>\r\n            <stop offset=\"100%\" stop-color=\"#0f9f7a\" stop-opacity=\"0\"><\/stop>\r\n          <\/linearGradient>\r\n        <\/defs>\r\n        <path d=\"${area}\" fill=\"url(#igLuloGrad)\"><\/path>\r\n        <path class=\"ig-chart-line\" d=\"M ${line}\" fill=\"none\" stroke=\"#0f9f7a\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\r\n      <\/svg>`;\r\n    els.chartNote.textContent = `${fmtMoney.format(first.value)} \u2192 ${fmtMoney.format(last.value)}`;\r\n  }\r\n\r\n  function renderTable(table) {\r\n    els.tableTitle.textContent = table.title;\r\n    els.tableSubtitle.textContent = table.subtitle;\r\n    els.tableHead.innerHTML = `<tr>${table.head.map(h => `<th>${h}<\/th>`).join('')}<\/tr>`;\r\n    els.tableBody.innerHTML = table.rows.map(row => `<tr>${row.map((cell, index) => `<td class=\"${index > 1 ? 'ig-num' : ''} ${String(cell).startsWith('$') && !String(cell).includes('$0') ? 'ig-green' : ''}\">${cell}<\/td>`).join('')}<\/tr>`).join('');\r\n  }\r\n\r\n  function render(result) {\r\n    els.kpiRate.textContent = fmtPercent.format(result.rate) + ' E.A.';\r\n    els.kpiGross.textContent = fmtMoney2.format(result.gross);\r\n    els.kpiTax.textContent = fmtMoney2.format(result.tax);\r\n    els.kpiNet.textContent = fmtMoney2.format(result.net);\r\n    els.kpiFinal.textContent = fmtMoney.format(result.finalAmount);\r\n    els.periodo.textContent = result.period;\r\n    els.badge.innerHTML = `<span class=\"ig-dot\"><\/span> ${result.badge}`;\r\n    els.insight.innerHTML = `<strong>Lectura r\u00e1pida:<\/strong> ${result.insight}`;\r\n    drawChart(result.chart);\r\n    renderTable(result.table);\r\n    els.results.classList.add('is-visible');\r\n    els.pdf.disabled = false;\r\n    els.pdfStatus.textContent = 'Reporte listo con marca de agua de InversionesGuru.';\r\n\r\n    lastReport = buildReport(result);\r\n    els.results.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n  }\r\n\r\n  function hideResults() {\r\n    els.results.classList.remove('is-visible');\r\n    els.pdf.disabled = true;\r\n    els.pdfStatus.textContent = 'Ejecuta el c\u00e1lculo para habilitar la descarga.';\r\n    lastReport = null;\r\n  }\r\n\r\n  function calculate() {\r\n    const base = validate();\r\n    if (!base) {\r\n      hideResults();\r\n      return;\r\n    }\r\n    const result = base.product === 'flex' ? calcFlex(base) : calcProgramado(base);\r\n    render(result);\r\n  }\r\n\r\n  function reset() {\r\n    els.monto.value = '';\r\n    els.fecha.value = toYMD(new Date());\r\n    els.uvt.value = fmtNum.format(DEFAULT_UVT_2026);\r\n    els.meses.value = '6';\r\n    els.aporte.value = '';\r\n    els.retencionFlex.checked = true;\r\n    els.retencionProg.checked = true;\r\n    els.retiro.checked = false;\r\n    els.diasRetiro.value = '30';\r\n    els.tasaRetiro.value = '0.10';\r\n    root.querySelector('input[name=\"ig-lulo-producto\"][value=\"flex\"]').checked = true;\r\n    root.querySelector('input[name=\"ig-lulo-flex-perfil\"][value=\"estandar\"]').checked = true;\r\n    root.querySelector('input[name=\"ig-lulo-plazo\"][value=\"60\"]').checked = true;\r\n    root.querySelector('input[name=\"ig-lulo-prog-perfil\"][value=\"estandar\"]').checked = true;\r\n    setProductPanels();\r\n    setRetiroFields();\r\n    hideMsg();\r\n    hideResults();\r\n  }\r\n\r\n  function buildReport(result) {\r\n    const product = getProduct() === 'flex' ? 'Bolsillo Flex' : 'Bolsillo Programado';\r\n    return {\r\n      title: 'Reporte de simulaci\u00f3n \u00b7 Bolsillos Lulo Bank',\r\n      inputs: [\r\n        ['Monto inicial', els.monto.value || 'N\/A'],\r\n        ['Producto', product],\r\n        ['Fecha de inicio', els.fecha.value || 'N\/A'],\r\n        ['Escenario', result.badge],\r\n        ['Tasa aplicada', fmtPercent.format(result.rate) + ' E.A.'],\r\n        ['UVT de referencia', els.uvt.value || 'N\/A']\r\n      ],\r\n      summary: [\r\n        ['Periodo simulado', result.period],\r\n        ['Rendimiento bruto', fmtMoney2.format(result.gross)],\r\n        ['Retenci\u00f3n estimada', fmtMoney2.format(result.tax)],\r\n        ['Rendimiento neto', fmtMoney2.format(result.net)],\r\n        ['Monto final estimado', fmtMoney.format(result.finalAmount)]\r\n      ],\r\n      table: result.table,\r\n      disclaimer: 'Reporte educativo de InversionesGuru. Las tasas, condiciones, umbrales, retenciones, GMF y fechas reales de abono pueden variar. Valida siempre la informaci\u00f3n oficial vigente de Lulo Bank antes de tomar una decisi\u00f3n financiera.'\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-lulo-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.igLuloJspdf = 'true';\r\n      script.onload = () => resolve(window.jspdf.jsPDF);\r\n      script.onerror = reject;\r\n      document.head.appendChild(script);\r\n    });\r\n  }\r\n\r\n  function safe(value) { return String(value == null ? '' : value).replace(\/\\s+\/g, ' ').trim(); }\r\n  function escapeHtml(value) { return safe(value).replace(\/[&<>\"']\/g, ch => ({ '&':'&amp;', '<':'&lt;', '>':'&gt;', '\"':'&quot;', \"'\":'&#039;' }[ch])); }\r\n\r\n  function exportWithJsPdf(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\r\n    function decorate() {\r\n      doc.setFillColor(15, 159, 122);\r\n      doc.roundedRect(margin, 12, 12, 12, 2, 2, 'F');\r\n      doc.setTextColor(255,255,255);\r\n      doc.setFontSize(8);\r\n      doc.setFont('helvetica','bold');\r\n      doc.text('IG', margin + 3.2, 19.6);\r\n      doc.setTextColor(23,51,47);\r\n      doc.setFontSize(11);\r\n      doc.text('InversionesGuru', margin + 16, 17);\r\n      doc.setTextColor(91,111,104);\r\n      doc.setFontSize(8);\r\n      doc.setFont('helvetica','normal');\r\n      doc.text('https:\/\/inversionesguru.com\/co\/', margin + 16, 22);\r\n      doc.setDrawColor(215,228,223);\r\n      doc.line(margin, 28, 210 - margin, 28);\r\n      doc.setTextColor(226,239,234);\r\n      doc.setFontSize(20);\r\n      doc.setFont('helvetica','bold');\r\n      doc.text('inversionesguru.com\/co\/', 33, 164, { angle: 32 });\r\n      doc.text('inversionesguru.com\/co\/', 70, 236, { angle: 32 });\r\n      y = 36;\r\n    }\r\n\r\n    function next(required) {\r\n      if (y + required <= 278) return;\r\n      doc.addPage(); decorate();\r\n    }\r\n    function lines(value, maxWidth) { return doc.splitTextToSize(safe(value), maxWidth); }\r\n    function section(title) {\r\n      next(13);\r\n      doc.setFillColor(255,243,236);\r\n      doc.roundedRect(margin, y, width, 8, 2, 2, 'F');\r\n      doc.setTextColor(200,79,52);\r\n      doc.setFont('helvetica','bold');\r\n      doc.setFontSize(10);\r\n      doc.text(title, margin + 3, y + 5.4);\r\n      y += 12;\r\n    }\r\n    function keyValues(rows) {\r\n      rows.forEach(row => {\r\n        next(8);\r\n        const left = lines(row[0], 70);\r\n        const right = lines(row[1], 98);\r\n        const h = Math.max(left.length, right.length);\r\n        doc.setFont('helvetica','normal');\r\n        doc.setFontSize(8.5);\r\n        doc.setTextColor(91,111,104);\r\n        doc.text(left, margin, y);\r\n        doc.setFont('helvetica','bold');\r\n        doc.setTextColor(23,51,47);\r\n        doc.text(right, margin + 74, y);\r\n        y += h * 4.2 + 2;\r\n        doc.setDrawColor(232,239,236);\r\n        doc.line(margin, y - 1, 210 - margin, y - 1);\r\n      });\r\n      y += 2;\r\n    }\r\n    function drawTable(table) {\r\n      if (!table || !table.rows || !table.rows.length) return;\r\n      section(table.title);\r\n      const cols = table.head.length;\r\n      const colW = width \/ cols;\r\n      function drawRow(row, header) {\r\n        const cells = Array.from({length: cols}, (_, i) => lines(row[i] || '', colW - 2));\r\n        const rowLines = Math.max(...cells.map(c => c.length));\r\n        const rowH = Math.max(6, rowLines * 3.2 + 2);\r\n        next(rowH + 2);\r\n        doc.setFillColor(header ? 23 : 255, header ? 51 : 255, header ? 47 : 255);\r\n        if (!header && Math.round(y) % 2 === 0) doc.setFillColor(239,251,246);\r\n        doc.rect(margin, y - 3.6, width, rowH, 'F');\r\n        doc.setFont('helvetica', header ? 'bold' : 'normal');\r\n        doc.setFontSize(header ? 6.4 : 6.2);\r\n        doc.setTextColor(header ? 255 : 36, header ? 255 : 68, header ? 255 : 62);\r\n        cells.forEach((cell, i) => doc.text(cell, margin + i * colW + 1, y));\r\n        y += rowH;\r\n      }\r\n      drawRow(table.head, true);\r\n      table.rows.slice(0, 80).forEach(row => drawRow(row, false));\r\n      if (table.rows.length > 80) {\r\n        next(7);\r\n        doc.setTextColor(91,111,104);\r\n        doc.setFontSize(8);\r\n        doc.text('La tabla fue recortada en el PDF. Consulta el detalle completo en la calculadora.', margin, y + 2);\r\n        y += 7;\r\n      }\r\n    }\r\n\r\n    decorate();\r\n    doc.setTextColor(23,51,47);\r\n    doc.setFont('helvetica','bold');\r\n    doc.setFontSize(18);\r\n    const titleLines = lines(report.title, width);\r\n    doc.text(titleLines, margin, y);\r\n    y += titleLines.length * 7;\r\n    doc.setTextColor(91,111,104);\r\n    doc.setFont('helvetica','normal');\r\n    doc.setFontSize(9);\r\n    doc.text(lines('Reporte informativo generado el ' + new Date().toLocaleString('es-CO'), width), margin, y);\r\n    y += 10;\r\n\r\n    section('Datos ingresados'); keyValues(report.inputs);\r\n    section('Resumen estimado'); keyValues(report.summary);\r\n    drawTable(report.table);\r\n    section('Nota informativa');\r\n    doc.setTextColor(91,111,104);\r\n    doc.setFont('helvetica','normal');\r\n    doc.setFontSize(8.5);\r\n    const note = lines(report.disclaimer, width);\r\n    next(note.length * 4 + 8);\r\n    doc.text(note, margin, y);\r\n\r\n    const pages = doc.getNumberOfPages();\r\n    for (let i = 1; i <= pages; i++) {\r\n      doc.setPage(i);\r\n      doc.setDrawColor(215,228,223);\r\n      doc.line(margin, 286, 210 - margin, 286);\r\n      doc.setTextColor(91,111,104);\r\n      doc.setFontSize(7.5);\r\n      doc.text('https:\/\/inversionesguru.com\/co\/  |  Reporte informativo', margin, 291);\r\n      doc.text('P\u00e1gina ' + i + ' de ' + pages, 210 - margin, 291, { align: 'right' });\r\n    }\r\n\r\n    doc.save('reporte-bolsillos-lulo-bank.pdf');\r\n  }\r\n\r\n  function printFallback(report) {\r\n    const popup = window.open('', '_blank');\r\n    if (!popup) throw new Error('No fue posible abrir la vista de impresi\u00f3n.');\r\n    const list = rows => rows.map(row => `<tr><th>${escapeHtml(row[0])}<\/th><td>${escapeHtml(row[1])}<\/td><\/tr>`).join('');\r\n    const table = report.table ? `<h2>${escapeHtml(report.table.title)}<\/h2><table><thead><tr>${report.table.head.map(h => `<th>${escapeHtml(h)}<\/th>`).join('')}<\/tr><\/thead><tbody>${report.table.rows.map(row => `<tr>${row.map(cell => `<td>${escapeHtml(cell)}<\/td>`).join('')}<\/tr>`).join('')}<\/tbody><\/table>` : '';\r\n    popup.document.write(`<!doctype html><html><head><meta charset=\"utf-8\"><title>${escapeHtml(report.title)}<\/title><style>body{font-family:Arial,sans-serif;color:#17332f;padding:34px;position:relative}body:before{content:\"inversionesguru.com\/co\/\";position:fixed;inset:45% 0;text-align:center;transform:rotate(-28deg);font-size:42px;color:#dfeee9;z-index:-1}h1{font-size:24px}h2{margin-top:24px;color:#c84f34;font-size:16px}table{border-collapse:collapse;width:100%;margin-top:8px}th,td{border-bottom:1px solid #d8e5e0;padding:8px;text-align:left;font-size:12px}.url{color:#08755d;font-weight:700}<\/style><\/head><body><div class=\"url\">https:\/\/inversionesguru.com\/co\/<\/div><h1>${escapeHtml(report.title)}<\/h1><p>Reporte informativo. Usa Imprimir y selecciona Guardar como PDF.<\/p><h2>Datos ingresados<\/h2><table>${list(report.inputs)}<\/table><h2>Resumen estimado<\/h2><table>${list(report.summary)}<\/table>${table}<p>${escapeHtml(report.disclaimer)}<\/p><\/body><\/html>`);\r\n    popup.document.close();\r\n    popup.focus();\r\n    popup.print();\r\n  }\r\n\r\n  async function downloadPdf() {\r\n    if (!lastReport) return;\r\n    const old = els.pdf.innerHTML;\r\n    els.pdf.disabled = true;\r\n    els.pdf.textContent = 'Generando PDF...';\r\n    els.pdfStatus.textContent = 'Preparando tu reporte descargable.';\r\n    try {\r\n      const jsPDF = await ensureJsPdf();\r\n      exportWithJsPdf(jsPDF, lastReport);\r\n      els.pdfStatus.textContent = 'PDF descargado con marca de agua de InversionesGuru.';\r\n    } catch (error) {\r\n      try {\r\n        printFallback(lastReport);\r\n        els.pdfStatus.textContent = 'Se abri\u00f3 la vista de impresi\u00f3n. Elige Guardar como PDF.';\r\n      } catch (fallbackError) {\r\n        els.pdfStatus.textContent = 'No fue posible generar el PDF. Revisa ventanas emergentes o permisos de descarga.';\r\n      }\r\n    } finally {\r\n      els.pdf.innerHTML = old;\r\n      els.pdf.disabled = !lastReport;\r\n    }\r\n  }\r\n\r\n  function init() {\r\n    els.fecha.value = toYMD(new Date());\r\n    els.uvt.value = fmtNum.format(DEFAULT_UVT_2026);\r\n    bindMoneyInput(els.monto);\r\n    bindMoneyInput(els.aporte);\r\n    bindMoneyInput(els.uvt);\r\n    $$('input[name=\"ig-lulo-producto\"]').forEach(input => input.addEventListener('change', setProductPanels));\r\n    $$('input[name=\"ig-lulo-plazo\"]').forEach(input => input.addEventListener('change', setRetiroFields));\r\n    $$('#ig-lulo-bolsillos-sim input, #ig-lulo-bolsillos-sim select').forEach(input => input.addEventListener('change', () => { hideMsg(); hideResults(); }));\r\n    els.retiro.addEventListener('change', () => { setRetiroFields(); hideResults(); });\r\n    els.calcular.addEventListener('click', calculate);\r\n    els.limpiar.addEventListener('click', reset);\r\n    els.pdf.addEventListener('click', downloadPdf);\r\n    [els.monto, els.meses, els.aporte, els.diasRetiro, els.tasaRetiro].forEach(input => {\r\n      input.addEventListener('keydown', event => {\r\n        if (event.key === 'Enter') { event.preventDefault(); calculate(); }\r\n      });\r\n    });\r\n    setProductPanels();\r\n    setRetiroFields();\r\n  }\r\n\r\n  init();\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-44140ee e-flex e-con-boxed e-con e-parent\" data-id=\"44140ee\" 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-93f88cb elementor-widget elementor-widget-text-editor\" data-id=\"93f88cb\" 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<p data-start=\"0\" data-end=\"274\"><span style=\"color: #000000;\"><strong data-start=\"0\" data-end=\"84\">Lulo Bank actualiz\u00f3 la rentabilidad de sus Bolsillos en Colombia (Febrero 2026):<\/strong> ahora el <strong data-start=\"94\" data-end=\"111\">Bolsillo Flex<\/strong> paga <strong data-start=\"117\" data-end=\"132\">7,5% (Lulo)<\/strong> o <strong data-start=\"135\" data-end=\"155\">9,25% (Lulo Pro)<\/strong> E.A., y los <strong data-start=\"168\" data-end=\"193\">Bolsillos Programados<\/strong> quedaron en <strong data-start=\"206\" data-end=\"230\">60 d\u00edas: 8,5% \/ 9,5%<\/strong> y <strong data-start=\"233\" data-end=\"258\">90 d\u00edas: 9,0% \/ 10,0%<\/strong> (Lulo \/ Pro).<\/span><\/p><p data-start=\"276\" data-end=\"670\"><span style=\"color: #000000;\">Si ya usabas Lulo, es normal que te hayas preguntado: \u201c\u00bfme est\u00e1 pagando lo mismo?\u201d o \u201c\u00bfqu\u00e9 me conviene m\u00e1s, Flex o Programado?\u201d. Tranquilo: aqu\u00ed te lo explico <strong data-start=\"435\" data-end=\"450\">en sencillo<\/strong>, con lo que realmente importa: <strong data-start=\"482\" data-end=\"491\">tasas<\/strong>, <strong data-start=\"493\" data-end=\"512\">cu\u00e1ndo te pagan<\/strong>, <strong data-start=\"514\" data-end=\"543\">qu\u00e9 pasa si retiras antes<\/strong>, c\u00f3mo funciona la <strong data-start=\"562\" data-end=\"576\">retefuente<\/strong>, y c\u00f3mo usar nuestra <strong data-start=\"598\" data-end=\"618\">Calculadora Lulo<\/strong> para simular tus rendimientos con n\u00fameros claros.<\/span><\/p><hr data-start=\"672\" data-end=\"675\" \/><h2 data-start=\"677\" data-end=\"728\"><span style=\"color: #000000;\">\u00bfQu\u00e9 cambi\u00f3 exactamente?\u00a0<\/span><\/h2><h3 data-start=\"730\" data-end=\"780\"><span style=\"color: #000000;\"><strong data-start=\"734\" data-end=\"780\">1) Bolsillo Flex (liquidez + pago mensual)<\/strong><\/span><\/h3><ul data-start=\"781\" data-end=\"1062\"><li data-start=\"781\" data-end=\"848\"><p data-start=\"783\" data-end=\"848\"><span style=\"color: #000000;\">Rentabilidad: <strong data-start=\"797\" data-end=\"817\">7,5% E.A. (Lulo)<\/strong> o <strong data-start=\"820\" data-end=\"845\">9,25% E.A. (Lulo Pro)<\/strong>.<\/span><\/p><\/li><li data-start=\"849\" data-end=\"986\"><p data-start=\"851\" data-end=\"986\"><span style=\"color: #000000;\">\u00bfCu\u00e1ndo pagan? Los rendimientos se abonan <strong data-start=\"893\" data-end=\"924\">a inicios del mes siguiente<\/strong> y se calculan sobre el <strong data-start=\"948\" data-end=\"983\">saldo promedio del mes anterior<\/strong>.<\/span><\/p><\/li><li data-start=\"987\" data-end=\"1062\"><p data-start=\"989\" data-end=\"1062\"><span style=\"color: #000000;\">Importante: la tasa puede <strong data-start=\"1015\" data-end=\"1026\">cambiar<\/strong> (porque es un producto \u201cflexible\u201d).<\/span><\/p><\/li><\/ul><h3 data-start=\"1064\" data-end=\"1131\"><span style=\"color: #000000;\"><strong data-start=\"1068\" data-end=\"1131\">2) Bolsillos Programados (60 o 90 d\u00edas, con tasa por plazo)<\/strong><\/span><\/h3><p data-start=\"1132\" data-end=\"1250\"><span style=\"color: #000000;\">Aqu\u00ed s\u00ed eliges un plazo: <strong data-start=\"1157\" data-end=\"1173\">60 o 90 d\u00edas<\/strong>, dejas el dinero quieto y, si lo cumples, te aplican la tasa del Programado:<\/span><\/p><ul data-start=\"1252\" data-end=\"1368\"><li data-start=\"1252\" data-end=\"1309\"><p data-start=\"1254\" data-end=\"1309\"><span style=\"color: #000000;\"><strong data-start=\"1254\" data-end=\"1266\">60 d\u00edas:<\/strong> <strong data-start=\"1267\" data-end=\"1287\">8,5% E.A. (Lulo)<\/strong> | <strong data-start=\"1290\" data-end=\"1309\">9,5% E.A. (Pro)<\/strong><\/span><\/p><\/li><li data-start=\"1310\" data-end=\"1368\"><p data-start=\"1312\" data-end=\"1368\"><span style=\"color: #000000;\"><strong data-start=\"1312\" data-end=\"1324\">90 d\u00edas:<\/strong> <strong data-start=\"1325\" data-end=\"1345\">9,0% E.A. (Lulo)<\/strong> | <strong data-start=\"1348\" data-end=\"1368\">10,0% E.A. (Pro)<\/strong><\/span><\/p><\/li><\/ul><p data-start=\"1370\" data-end=\"1624\"><span style=\"color: #000000;\">\ud83d\udca1 <strong data-start=\"1373\" data-end=\"1398\">Ojo con esto (clave):<\/strong> si retiras <strong data-start=\"1410\" data-end=\"1419\">antes<\/strong> de cumplir el plazo, <strong data-start=\"1441\" data-end=\"1454\">no aplica<\/strong> la tasa del Programado; se liquida con la tasa base de tu <strong data-start=\"1513\" data-end=\"1528\">Lulo cuenta<\/strong> (saldo en cuenta), que es <strong data-start=\"1555\" data-end=\"1569\">0,10% E.A.<\/strong>. Es la diferencia m\u00e1s importante a la hora de simular.<\/span><\/p><hr data-start=\"1626\" data-end=\"1629\" \/><h2 data-start=\"1631\" data-end=\"1679\"><span style=\"color: #000000;\">\u00bfC\u00f3mo funciona cada bolsillo en la vida real?<\/span><\/h2><h3 data-start=\"1681\" data-end=\"1704\"><span style=\"color: #000000;\">\u2705 <strong data-start=\"1687\" data-end=\"1704\">Bolsillo Flex<\/strong><\/span><\/h3><p data-start=\"1705\" data-end=\"1787\"><span style=\"color: #000000;\">Ideal si quieres <strong data-start=\"1722\" data-end=\"1740\">disponibilidad<\/strong>, mover tu plata y aun as\u00ed recibir rendimiento:<\/span><\/p><ul data-start=\"1788\" data-end=\"1949\"><li data-start=\"1788\" data-end=\"1831\"><p data-start=\"1790\" data-end=\"1831\"><span style=\"color: #000000;\">Puedes <strong data-start=\"1797\" data-end=\"1815\">entrar y salir<\/strong> cuando quieras.<\/span><\/p><\/li><li data-start=\"1832\" data-end=\"1893\"><p data-start=\"1834\" data-end=\"1893\"><span style=\"color: #000000;\">Te pagan intereses <strong data-start=\"1853\" data-end=\"1869\">mensualmente<\/strong> (seg\u00fan saldo promedio).<\/span><\/p><\/li><li data-start=\"1894\" data-end=\"1949\"><p data-start=\"1896\" data-end=\"1949\"><span style=\"color: #000000;\">Perfecto para fondo de emergencias o ahorro \u201cactivo\u201d.<\/span><\/p><\/li><\/ul><h3 data-start=\"1951\" data-end=\"1993\"><span style=\"color: #000000;\">\u2705 <strong data-start=\"1957\" data-end=\"1993\">Bolsillo Programado (60\/90 d\u00edas)<\/strong><\/span><\/h3><p data-start=\"1994\" data-end=\"2044\"><span style=\"color: #000000;\">Ideal si puedes \u201cbloquear\u201d el dinero por un plazo:<\/span><\/p><ul data-start=\"2045\" data-end=\"2314\"><li data-start=\"2045\" data-end=\"2105\"><p data-start=\"2047\" data-end=\"2105\"><span style=\"color: #000000;\">Haces un <strong data-start=\"2056\" data-end=\"2074\">dep\u00f3sito \u00fanico<\/strong> (no es para estar recargando).<\/span><\/p><\/li><li data-start=\"2106\" data-end=\"2167\"><p data-start=\"2108\" data-end=\"2167\"><span style=\"color: #000000;\">Si cumples el plazo, se liquida con la tasa del Programado.<\/span><\/p><\/li><li data-start=\"2168\" data-end=\"2314\"><p data-start=\"2170\" data-end=\"2314\"><span style=\"color: #000000;\">Si retiras antes, pierdes el beneficio y te queda con la <strong data-start=\"2227\" data-end=\"2240\">tasa base<\/strong> (0,10% E.A.).<\/span><br data-start=\"2254\" data-end=\"2257\" \/><span style=\"color: #000000;\">En palabras simples: <strong data-start=\"2278\" data-end=\"2313\">Programado premia la disciplina<\/strong>.<\/span><\/p><\/li><\/ul><hr data-start=\"2316\" data-end=\"2319\" \/><h2 data-start=\"2321\" data-end=\"2372\"><span style=\"color: #000000;\">ReteFuente (7%): \u00bfcu\u00e1ndo te la cobran de verdad?<\/span><\/h2><p data-start=\"2373\" data-end=\"2585\"><span style=\"color: #000000;\">Lulo explica que la <strong data-start=\"2393\" data-end=\"2419\">retenci\u00f3n en la fuente<\/strong> es del <strong data-start=\"2427\" data-end=\"2433\">7%<\/strong>, y solo aparece cuando tu <strong data-start=\"2460\" data-end=\"2478\">inter\u00e9s diario<\/strong> supera <strong data-start=\"2486\" data-end=\"2499\">0,055 UVT<\/strong>. En <strong data-start=\"2504\" data-end=\"2512\">2026<\/strong>, la UVT es <strong data-start=\"2524\" data-end=\"2535\">$52.374<\/strong>, as\u00ed que el umbral diario es aprox. <strong data-start=\"2572\" data-end=\"2582\">$2.881<\/strong>.<\/span><\/p><ul data-start=\"2587\" data-end=\"2815\"><li data-start=\"2587\" data-end=\"2723\"><p data-start=\"2589\" data-end=\"2723\"><span style=\"color: #000000;\">En <strong data-start=\"2592\" data-end=\"2600\">Flex<\/strong>, normalmente la ves reflejada cuando te abonan rendimientos (inicio del mes) si durante el mes se super\u00f3 el umbral diario.<\/span><\/p><\/li><li data-start=\"2724\" data-end=\"2815\"><p data-start=\"2726\" data-end=\"2815\"><span style=\"color: #000000;\">En <strong data-start=\"2729\" data-end=\"2744\">Programados<\/strong>, suele verse <strong data-start=\"2758\" data-end=\"2780\">al final del plazo<\/strong>, cuando se liquida el rendimiento.<\/span><\/p><\/li><\/ul><p data-start=\"2817\" data-end=\"2999\"><span style=\"color: #000000;\">\ud83d\udccc Consejo humano y realista: para la mayor\u00eda de personas, la retefuente no aparece con montos peque\u00f1os\/medianos. Si ya est\u00e1s moviendo saldos altos, ah\u00ed s\u00ed vale la pena simular bien.<\/span><\/p><hr data-start=\"3001\" data-end=\"3004\" \/><h2 data-start=\"3006\" data-end=\"3058\"><span style=\"color: #000000;\">Nuestra <strong data-start=\"3017\" data-end=\"3037\">Calculadora Lulo<\/strong> (Flex + Programados)<\/span><\/h2><p data-start=\"3059\" data-end=\"3140\"><span style=\"color: #000000;\">Creamos esta calculadora para que no tengas que adivinar ni sacar cuentas a mano:<\/span><\/p><p data-start=\"3142\" data-end=\"3151\"><span style=\"color: #000000;\">\u2705 Puedes:<\/span><\/p><ul data-start=\"3152\" data-end=\"3491\"><li data-start=\"3152\" data-end=\"3241\"><p data-start=\"3154\" data-end=\"3241\"><span style=\"color: #000000;\">Elegir <strong data-start=\"3161\" data-end=\"3173\">producto<\/strong> (<strong data-start=\"3175\" data-end=\"3183\">Flex<\/strong> o <strong data-start=\"3186\" data-end=\"3200\">Programado<\/strong>) y <strong data-start=\"3204\" data-end=\"3214\">perfil<\/strong> (<strong data-start=\"3216\" data-end=\"3224\">Lulo<\/strong> o <strong data-start=\"3227\" data-end=\"3239\">Lulo Pro<\/strong>).<\/span><\/p><\/li><li data-start=\"3242\" data-end=\"3320\"><p data-start=\"3244\" data-end=\"3320\"><span style=\"color: #000000;\">Ingresar <strong data-start=\"3253\" data-end=\"3262\">monto<\/strong> y <strong data-start=\"3265\" data-end=\"3274\">plazo<\/strong> (meses en Flex \/ 60 o 90 d\u00edas en Programado).<\/span><\/p><\/li><li data-start=\"3321\" data-end=\"3377\"><p data-start=\"3323\" data-end=\"3377\"><span style=\"color: #000000;\">Simular <strong data-start=\"3331\" data-end=\"3352\">retiro anticipado<\/strong> (y ver el impacto real).<\/span><\/p><\/li><li data-start=\"3378\" data-end=\"3491\"><p data-start=\"3380\" data-end=\"3491\"><span style=\"color: #000000;\">Ver <strong data-start=\"3384\" data-end=\"3401\">tasa aplicada<\/strong>, <strong data-start=\"3403\" data-end=\"3424\">rendimiento bruto<\/strong>, <strong data-start=\"3426\" data-end=\"3449\">retefuente estimada<\/strong>, <strong data-start=\"3451\" data-end=\"3466\">monto final<\/strong> y un desglose detallado.<\/span><\/p><\/li><\/ul><p data-start=\"3493\" data-end=\"3636\"><span style=\"color: #000000;\">La calculadora usa la l\u00f3gica pr\u00e1ctica: c\u00e1lculo por tasa efectiva y aplica la <strong data-start=\"3570\" data-end=\"3584\">retefuente<\/strong> solo si corresponde con el umbral de <strong data-start=\"3622\" data-end=\"3635\">0,055 UVT<\/strong>.<\/span><\/p><hr data-start=\"3638\" data-end=\"3641\" \/><h2 data-start=\"3643\" data-end=\"3698\"><span style=\"color: #000000;\">Ejemplos r\u00e1pidos \u201cde calle\u201d (para entender magnitud)<\/span><\/h2><h3 data-start=\"3700\" data-end=\"3752\"><span style=\"color: #000000;\">1) <strong data-start=\"3707\" data-end=\"3737\">Flex (Lulo Pro 9,25% E.A.)<\/strong> por 12 meses<\/span><\/h3><ul data-start=\"3753\" data-end=\"3908\"><li data-start=\"3753\" data-end=\"3778\"><p data-start=\"3755\" data-end=\"3778\"><span style=\"color: #000000;\">Monto: <strong data-start=\"3762\" data-end=\"3776\">$1.000.000<\/strong><\/span><\/p><\/li><li data-start=\"3779\" data-end=\"3875\"><p data-start=\"3781\" data-end=\"3875\"><span style=\"color: #000000;\">Rendimiento aproximado anual: cercano a <strong data-start=\"3821\" data-end=\"3832\">$92.500<\/strong> (sin retefuente en la mayor\u00eda de casos).<\/span><\/p><\/li><li data-start=\"3876\" data-end=\"3908\"><p data-start=\"3878\" data-end=\"3908\"><span style=\"color: #000000;\">Monto final: ~<strong data-start=\"3892\" data-end=\"3906\">$1.092.500<\/strong><\/span><\/p><\/li><\/ul><h3 data-start=\"3910\" data-end=\"3956\"><span style=\"color: #000000;\">2) <strong data-start=\"3917\" data-end=\"3954\">Programado 90 d\u00edas (Pro 10% E.A.)<\/strong><\/span><\/h3><ul data-start=\"3957\" data-end=\"4116\"><li data-start=\"3957\" data-end=\"3982\"><p data-start=\"3959\" data-end=\"3982\"><span style=\"color: #000000;\">Monto: <strong data-start=\"3966\" data-end=\"3980\">$5.000.000<\/strong><\/span><\/p><\/li><li data-start=\"3983\" data-end=\"4083\"><p data-start=\"3985\" data-end=\"4083\"><span style=\"color: #000000;\">Rendimiento estimado 90 d\u00edas: ~<strong data-start=\"4016\" data-end=\"4028\">$123.000<\/strong> (aprox., sin retefuente si no supera umbral diario).<\/span><\/p><\/li><li data-start=\"4084\" data-end=\"4116\"><p data-start=\"4086\" data-end=\"4116\"><span style=\"color: #000000;\">Monto final: ~<strong data-start=\"4100\" data-end=\"4114\">$5.123.000<\/strong><\/span><\/p><\/li><\/ul><blockquote data-start=\"4118\" data-end=\"4233\"><p data-start=\"4120\" data-end=\"4233\"><span style=\"color: #000000;\">Son aproximaciones: en la app el valor exacto puede variar por d\u00edas reales del periodo y la forma de liquidaci\u00f3n.<\/span><\/p><\/blockquote><hr data-start=\"4235\" data-end=\"4238\" \/><h2 data-start=\"4240\" data-end=\"4274\"><span style=\"color: #000000;\">Entonces\u2026 \u00bfqu\u00e9 me conviene hoy?<\/span><\/h2><ul data-start=\"4275\" data-end=\"4592\"><li data-start=\"4275\" data-end=\"4348\"><p data-start=\"4277\" data-end=\"4348\"><span style=\"color: #000000;\">Si quieres <strong data-start=\"4288\" data-end=\"4300\">libertad<\/strong> y que te paguen <strong data-start=\"4317\" data-end=\"4328\">mensual<\/strong>, ve por <strong data-start=\"4337\" data-end=\"4345\">Flex<\/strong>.<\/span><\/p><\/li><li data-start=\"4349\" data-end=\"4447\"><p data-start=\"4351\" data-end=\"4447\"><span style=\"color: #000000;\">Si puedes apartar el dinero <strong data-start=\"4379\" data-end=\"4395\">60 o 90 d\u00edas<\/strong> sin tocarlo, <strong data-start=\"4409\" data-end=\"4423\">Programado<\/strong> suele ganar por tasa.<\/span><\/p><\/li><li data-start=\"4448\" data-end=\"4592\"><p data-start=\"4450\" data-end=\"4592\"><span style=\"color: #000000;\">Si crees que tu saldo puede acercarse a montos altos, revisa el efecto de <strong data-start=\"4524\" data-end=\"4538\">retefuente<\/strong> y prueba escenarios en la calculadora para optimizar.<\/span><\/p><\/li><\/ul>\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>Herramienta financiera Simulador de Bolsillos Lulo Bank Compara Bolsillos Flex y Programados con tasas parametrizadas, retenci\u00f3n estimada y reporte descargable. PDF disponible despu\u00e9s del c\u00e1lculo Lulo cuenta \u00b7 Bolsillos Visualiza cu\u00e1nto puede crecer tu dinero seg\u00fan el bolsillo que elijas. Usa una proyecci\u00f3n educativa para entender la diferencia entre flexibilidad mensual, plazo programado, perfil Lulo&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4016,"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-5911","herramientas","type-herramientas","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5911","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":20,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5911\/revisions"}],"predecessor-version":[{"id":8619,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5911\/revisions\/8619"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media\/4016"}],"wp:attachment":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media?parent=5911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}