{"id":5880,"date":"2025-10-28T18:37:17","date_gmt":"2025-10-28T23:37:17","guid":{"rendered":"https:\/\/inversionesguru.com\/co\/?post_type=herramientas&#038;p=5880"},"modified":"2026-08-10T17:01:16","modified_gmt":"2026-08-10T22:01:16","slug":"calculadora-bolsillos-davivienda-colombia","status":"publish","type":"herramientas","link":"https:\/\/inversionesguru.com\/co\/herramientas\/calculadora-bolsillos-davivienda-colombia\/","title":{"rendered":"Calculadora Bolsillos Davivienda Colombia | Simula 8% EA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"5880\" class=\"elementor elementor-5880\" data-elementor-post-type=\"herramientas\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29c714b e-con-full e-flex e-con e-parent\" data-id=\"29c714b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e30729 elementor-widget elementor-widget-html\" data-id=\"4e30729\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  #ig-davi-pocket-v2 {\r\n    --ink:#112f2a;\r\n    --ink-2:#24453e;\r\n    --muted:#516b64;\r\n    --muted-2:#71877f;\r\n    --green:#0f9f7a;\r\n    --green-dark:#08755d;\r\n    --green-deep:#0c3d34;\r\n    --green-soft:#e7f8f1;\r\n    --green-soft-2:#f2fbf7;\r\n    --coral:#ef6a4a;\r\n    --coral-dark:#c84f34;\r\n    --coral-soft:#fff0e9;\r\n    --red:#d71920;\r\n    --red-soft:#fff1f2;\r\n    --surface:#ffffff;\r\n    --surface-2:#f7faf9;\r\n    --surface-3:#eef6f2;\r\n    --line:#d7e2de;\r\n    --line-strong:#bfcfca;\r\n    --shadow-xs:0 7px 18px rgba(17,47,42,.045);\r\n    --shadow:0 18px 42px rgba(17,47,42,.085);\r\n    --shadow-strong:0 28px 64px rgba(17,47,42,.15);\r\n    --radius-sm:12px;\r\n    --radius:18px;\r\n    --radius-lg:26px;\r\n    display:block;\r\n    width:100%;\r\n    overflow:hidden;\r\n    color:var(--ink);\r\n    background:\r\n      radial-gradient(circle at 6% 2%,rgba(15,159,122,.10),transparent 22%),\r\n      radial-gradient(circle at 94% 8%,rgba(239,106,74,.07),transparent 19%),\r\n      linear-gradient(180deg,#f4faf7 0%,#fafcfb 46%,#f1f7f4 100%);\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  #ig-davi-pocket-v2 *,#ig-davi-pocket-v2 *::before,#ig-davi-pocket-v2 *::after{box-sizing:border-box}\r\n  #ig-davi-pocket-v2 :where(h1,h2,h3,h4,p,ul,li,figure){margin:0;padding:0}\r\n  #ig-davi-pocket-v2 :where(button,input,select,a,summary){font:inherit;-webkit-tap-highlight-color:transparent}\r\n  #ig-davi-pocket-v2 button,#ig-davi-pocket-v2 summary{cursor:pointer}\r\n  #ig-davi-pocket-v2 a{color:inherit}\r\n  #ig-davi-pocket-v2 :where(button,input,select,a,summary):focus-visible{outline:3px solid rgba(15,159,122,.26);outline-offset:3px}\r\n  #ig-davi-pocket-v2 .ig-wrap{width:min(1180px,calc(100% - 36px));margin:0 auto}\r\n  #ig-davi-pocket-v2 .ig-section{padding:42px 0}\r\n  #ig-davi-pocket-v2 .ig-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}\r\n  #ig-davi-pocket-v2 .ig-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(350px,.88fr);gap:24px;align-items:start}\r\n  #ig-davi-pocket-v2 .ig-main{padding:32px}\r\n  #ig-davi-pocket-v2 .ig-topline{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}\r\n  #ig-davi-pocket-v2 .ig-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:6px 10px;border:1px solid rgba(15,159,122,.27);border-radius:999px;background:#fff;color:var(--green-dark);font-size:12px;font-weight:850;box-shadow:0 3px 9px rgba(17,47,42,.025)}\r\n  #ig-davi-pocket-v2 .ig-chip.is-bank{border-color:rgba(215,25,32,.19);background:#fff6f6;color:#a50d14}\r\n  #ig-davi-pocket-v2 .ig-status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(15,159,122,.12)}\r\n  #ig-davi-pocket-v2 h1{font-size:clamp(38px,4.8vw,62px);line-height:1.01;letter-spacing:-.04em;font-weight:950;max-width:800px;color:#0f213d}\r\n  #ig-davi-pocket-v2 h1 span{color:var(--coral-dark)}\r\n  #ig-davi-pocket-v2 .ig-lead{margin-top:18px;max-width:760px;color:#49645d;font-size:17px;line-height:1.72}\r\n\r\n  #ig-davi-pocket-v2 .ig-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}\r\n  #ig-davi-pocket-v2 .ig-benefit{position:relative;display:flex;gap:11px;align-items:center;min-height:70px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-xs);font-size:13px;font-weight:820;color:var(--ink-2);overflow:hidden}\r\n  #ig-davi-pocket-v2 .ig-benefit::after{content:\"\";position:absolute;inset:auto 0 0 0;height:3px;background:var(--green);opacity:.85}\r\n  #ig-davi-pocket-v2 .ig-benefit:nth-child(2)::after{background:var(--red)}\r\n  #ig-davi-pocket-v2 .ig-benefit:nth-child(3)::after{background:var(--coral)}\r\n  #ig-davi-pocket-v2 .ig-benefit b{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--green-soft);color:var(--green-dark);font-size:12px}\r\n  #ig-davi-pocket-v2 .ig-benefit:nth-child(2) b{background:var(--red-soft);color:#a50d14}\r\n  #ig-davi-pocket-v2 .ig-benefit:nth-child(3) b{background:var(--coral-soft);color:var(--coral-dark)}\r\n\r\n  #ig-davi-pocket-v2 .ig-rate-guide{position:sticky;top:18px;padding:26px;overflow:hidden;background:linear-gradient(148deg,#123b33 0%,#173f37 62%,#24473e 100%);color:#fff;border-color:rgba(255,255,255,.08);box-shadow:var(--shadow-strong)}\r\n  #ig-davi-pocket-v2 .ig-rate-guide::after{content:\"\";position:absolute;right:-95px;top:-110px;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,rgba(239,106,74,.25),transparent 66%);pointer-events:none}\r\n  #ig-davi-pocket-v2 .ig-rate-guide>*{position:relative;z-index:1}\r\n  #ig-davi-pocket-v2 .ig-rate-guide h2{margin-top:12px;font-size:30px;line-height:1.11;font-weight:940;color:#fff;letter-spacing:-.02em}\r\n  #ig-davi-pocket-v2 .ig-rate-guide>p{margin-top:11px;color:rgba(255,255,255,.80);font-size:14px;line-height:1.62}\r\n  #ig-davi-pocket-v2 .ig-rate-table{display:grid;gap:10px;margin-top:20px}\r\n  #ig-davi-pocket-v2 .ig-rate-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 15px;border:1px solid rgba(255,255,255,.16);border-radius:15px;background:rgba(255,255,255,.075);transition:transform .18s ease,background .18s ease,border-color .18s ease}\r\n  #ig-davi-pocket-v2 .ig-rate-row:hover{transform:translateY(-1px);background:rgba(255,255,255,.105);border-color:rgba(255,255,255,.25)}\r\n  #ig-davi-pocket-v2 .ig-rate-row:last-child{border-color:rgba(239,106,74,.55);background:linear-gradient(90deg,rgba(239,106,74,.13),rgba(255,255,255,.07))}\r\n  #ig-davi-pocket-v2 .ig-rate-row small{display:block;color:rgba(255,255,255,.68);font-size:11px;line-height:1.35}\r\n  #ig-davi-pocket-v2 .ig-rate-row strong{display:block;margin-top:3px;color:#fff;font-size:14px;line-height:1.35}\r\n  #ig-davi-pocket-v2 .ig-rate-row b{white-space:nowrap;color:#fff;font-size:26px;line-height:1;font-weight:950;font-variant-numeric:tabular-nums}\r\n  #ig-davi-pocket-v2 .ig-rate-note{margin-top:15px;padding:13px 14px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.095);font-size:12px;line-height:1.55;color:rgba(255,255,255,.86)}\r\n  #ig-davi-pocket-v2 .ig-rate-note strong{color:#fff}\r\n\r\n  #ig-davi-pocket-v2 .ig-form-card{margin-top:26px;padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface-2);overflow:hidden;box-shadow:0 12px 30px rgba(17,47,42,.055)}\r\n  #ig-davi-pocket-v2 .ig-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 22px 18px;border-bottom:1px solid var(--line);background:#fff;margin:0}\r\n  #ig-davi-pocket-v2 .ig-form-head h2{font-size:27px;line-height:1.14;font-weight:940;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-form-head p{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.55;max-width:650px}\r\n  #ig-davi-pocket-v2 .ig-form-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px 22px 0;background:var(--surface-2)}\r\n  #ig-davi-pocket-v2 .ig-flow-step{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink-2);font-size:11.5px;font-weight:820}\r\n  #ig-davi-pocket-v2 .ig-flow-step b{display:grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border-radius:9px;background:var(--green-soft);color:var(--green-dark);font-size:11px}\r\n  #ig-davi-pocket-v2 form{padding:18px 22px 22px}\r\n  #ig-davi-pocket-v2 .ig-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}\r\n  #ig-davi-pocket-v2 .ig-form-section-title{grid-column:1\/-1;display:flex;align-items:center;gap:10px;margin-top:3px;padding:4px 0 2px;color:var(--ink);font-size:13px;font-weight:920}\r\n  #ig-davi-pocket-v2 .ig-form-section-title:not(:first-child){margin-top:10px;padding-top:16px;border-top:1px solid var(--line)}\r\n  #ig-davi-pocket-v2 .ig-form-section-title b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--ink);color:#fff;font-size:11px}\r\n  #ig-davi-pocket-v2 .ig-field{display:grid;gap:7px;min-width:0;padding:13px;border:1px solid transparent;border-radius:14px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}\r\n  #ig-davi-pocket-v2 .ig-field:focus-within{border-color:rgba(15,159,122,.34);box-shadow:0 10px 24px rgba(17,47,42,.055);transform:translateY(-1px)}\r\n  #ig-davi-pocket-v2 .ig-field.is-full{grid-column:1\/-1;padding:0;background:transparent}\r\n  #ig-davi-pocket-v2 .ig-field label{font-size:13px;font-weight:880;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-field input,#ig-davi-pocket-v2 .ig-field select{width:100%;min-height:54px;padding:12px 13px;border:1px solid var(--line-strong);border-radius:12px;outline:0;background:#fff;color:var(--ink);font-size:15px;font-weight:700;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}\r\n  #ig-davi-pocket-v2 .ig-field input:hover,#ig-davi-pocket-v2 .ig-field select:hover{border-color:#9cb4ac}\r\n  #ig-davi-pocket-v2 .ig-field input:focus,#ig-davi-pocket-v2 .ig-field select:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(15,159,122,.11);background:#fff}\r\n  #ig-davi-pocket-v2 .ig-help{color:#60766f;font-size:11.5px;line-height:1.48}\r\n  #ig-davi-pocket-v2 .ig-tax-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px;border:1px solid rgba(239,106,74,.25);border-radius:15px;background:#fff7f2}\r\n  #ig-davi-pocket-v2 .ig-tax-card strong{display:block;font-size:13px;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-tax-card p{margin-top:5px;color:var(--muted);font-size:11.5px;line-height:1.52}\r\n  #ig-davi-pocket-v2 .ig-switch{position:relative;flex:0 0 auto;width:54px;height:30px;margin-top:1px}\r\n  #ig-davi-pocket-v2 .ig-switch input{position:absolute;opacity:0;pointer-events:none}\r\n  #ig-davi-pocket-v2 .ig-switch span{position:absolute;inset:0;border-radius:999px;background:#cbd7d2;transition:.2s}\r\n  #ig-davi-pocket-v2 .ig-switch span::after{content:\"\";position:absolute;width:22px;height:22px;left:4px;top:4px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(17,47,42,.18);transition:.2s}\r\n  #ig-davi-pocket-v2 .ig-switch input:checked+span{background:var(--green)}\r\n  #ig-davi-pocket-v2 .ig-switch input:checked+span::after{transform:translateX(24px)}\r\n  #ig-davi-pocket-v2 .ig-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}\r\n  #ig-davi-pocket-v2 .ig-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 18px;border:1px solid transparent;border-radius:12px;background:var(--ink);color:#fff;font-size:14px;font-weight:900;text-decoration:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease}\r\n  #ig-davi-pocket-v2 .ig-btn:hover{transform:translateY(-2px);background:var(--green-dark);box-shadow:0 12px 24px rgba(17,47,42,.15)}\r\n  #ig-davi-pocket-v2 .ig-btn.secondary{background:#fff;color:var(--ink);border-color:var(--line-strong);box-shadow:none}\r\n  #ig-davi-pocket-v2 .ig-btn.secondary:hover{background:#f1f7f4;border-color:#9fb6ae;transform:none}\r\n  #ig-davi-pocket-v2 .ig-btn.coral{background:var(--coral)}\r\n  #ig-davi-pocket-v2 .ig-btn.coral:hover{background:var(--coral-dark)}\r\n  #ig-davi-pocket-v2 .ig-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}\r\n  #ig-davi-pocket-v2 .ig-toast{display:none;padding:7px 10px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);font-size:12px;font-weight:850}\r\n  #ig-davi-pocket-v2 .ig-toast.is-visible{display:inline-flex}\r\n  #ig-davi-pocket-v2 .ig-error{display:none;margin-top:14px;padding:12px 14px;border:1px solid #fecaca;border-radius:12px;background:#fff1f2;color:#b42318;font-size:13px;font-weight:760}\r\n  #ig-davi-pocket-v2 .ig-error.is-visible{display:block}\r\n\r\n  #ig-davi-pocket-v2 .ig-results{display:none;margin-top:28px}\r\n  #ig-davi-pocket-v2 .ig-results.is-visible{display:block;animation:igDaviRise .35s ease both}\r\n  #ig-davi-pocket-v2 .ig-primary-result{position:relative;padding:30px;background:linear-gradient(138deg,#123b33 0%,#173f37 70%,#204b41 100%);color:#fff;border-color:rgba(255,255,255,.06);box-shadow:var(--shadow-strong);overflow:hidden}\r\n  #ig-davi-pocket-v2 .ig-primary-result::after{content:\"\";position:absolute;right:-100px;bottom:-135px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(15,159,122,.27),transparent 68%);pointer-events:none}\r\n  #ig-davi-pocket-v2 .ig-primary-result>*{position:relative;z-index:1}\r\n  #ig-davi-pocket-v2 .ig-result-label{display:inline-flex;min-height:29px;align-items:center;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}\r\n  #ig-davi-pocket-v2 .ig-primary-result h2{margin-top:14px;color:#fff;font-size:clamp(25px,3vw,37px);line-height:1.11;font-weight:940;letter-spacing:-.02em}\r\n  #ig-davi-pocket-v2 .ig-main-money{display:block;margin-top:10px;font-size:clamp(40px,5.8vw,68px);line-height:.98;font-weight:960;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}\r\n  #ig-davi-pocket-v2 .ig-result-copy{margin-top:13px;max-width:930px;color:rgba(255,255,255,.80);font-size:13px;line-height:1.6}\r\n  #ig-davi-pocket-v2 .ig-result-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px}\r\n  #ig-davi-pocket-v2 .ig-result-mini div{min-width:0;padding:13px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.08)}\r\n  #ig-davi-pocket-v2 .ig-result-mini div:nth-child(2){border-color:rgba(15,159,122,.42);background:rgba(15,159,122,.12)}\r\n  #ig-davi-pocket-v2 .ig-result-mini div:nth-child(3){border-color:rgba(239,106,74,.37);background:rgba(239,106,74,.10)}\r\n  #ig-davi-pocket-v2 .ig-result-mini span{display:block;color:rgba(255,255,255,.69);font-size:10px;text-transform:uppercase;font-weight:850;letter-spacing:.025em}\r\n  #ig-davi-pocket-v2 .ig-result-mini strong{display:block;margin-top:6px;color:#fff;font-size:16px;line-height:1.2;font-weight:920;font-variant-numeric:tabular-nums}\r\n\r\n  #ig-davi-pocket-v2 .ig-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}\r\n  #ig-davi-pocket-v2 .ig-kpi{padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow-xs);min-width:0}\r\n  #ig-davi-pocket-v2 .ig-kpi span{display:block;color:#647972;font-size:10px;text-transform:uppercase;font-weight:870;letter-spacing:.035em}\r\n  #ig-davi-pocket-v2 .ig-kpi strong{display:block;margin-top:7px;color:var(--ink);font-size:clamp(18px,2vw,25px);line-height:1.1;font-weight:940;font-variant-numeric:tabular-nums}\r\n  #ig-davi-pocket-v2 .ig-kpi.is-positive{border-left:4px solid var(--green)}\r\n  #ig-davi-pocket-v2 .ig-kpi.is-warning{border-left:4px solid var(--coral);background:#fffaf8}\r\n\r\n  #ig-davi-pocket-v2 .ig-chart-card,#ig-davi-pocket-v2 .ig-horizon-card,#ig-davi-pocket-v2 details.ig-details,#ig-davi-pocket-v2 .ig-source-card{margin-top:15px;padding:21px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-xs)}\r\n  #ig-davi-pocket-v2 .ig-chart-card{border-top:4px solid var(--green)}\r\n  #ig-davi-pocket-v2 .ig-horizon-card{border-top:4px solid #8bc9b8}\r\n  #ig-davi-pocket-v2 .ig-block-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}\r\n  #ig-davi-pocket-v2 .ig-block-head h3{font-size:21px;line-height:1.18;font-weight:940;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-block-head p{margin-top:5px;color:var(--muted);font-size:12.5px;line-height:1.55}\r\n  #ig-davi-pocket-v2 .ig-chart{position:relative;margin-top:16px;min-height:190px;border:1px solid #e4eee9;border-radius:15px;background:linear-gradient(180deg,#f5fbf8 0%,#fff 100%);overflow:hidden}\r\n  #ig-davi-pocket-v2 .ig-chart::before{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 49.5%,rgba(17,47,42,.05) 50%,transparent 50.5%);pointer-events:none}\r\n  #ig-davi-pocket-v2 .ig-chart svg{position:relative;display:block;width:100%;height:200px;z-index:1}\r\n  #ig-davi-pocket-v2 .ig-chart-meta{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted);font-size:11px;font-weight:650}\r\n  #ig-davi-pocket-v2 .ig-horizons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}\r\n  #ig-davi-pocket-v2 .ig-horizon{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);transition:transform .18s ease,border-color .18s ease,background .18s ease}\r\n  #ig-davi-pocket-v2 .ig-horizon:hover{transform:translateY(-2px);border-color:#b7cdc5;background:#fff}\r\n  #ig-davi-pocket-v2 .ig-horizon span{display:block;color:var(--green-dark);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}\r\n  #ig-davi-pocket-v2 .ig-horizon strong{display:block;margin-top:6px;font-size:20px;line-height:1.12;font-weight:950;color:var(--ink);font-variant-numeric:tabular-nums}\r\n  #ig-davi-pocket-v2 .ig-horizon small{display:block;margin-top:6px;color:var(--muted);font-size:10.5px;line-height:1.45}\r\n\r\n  #ig-davi-pocket-v2 details.ig-details{padding:0;overflow:hidden}\r\n  #ig-davi-pocket-v2 details.ig-details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;color:var(--ink);font-weight:920;background:#fff;transition:background .18s ease}\r\n  #ig-davi-pocket-v2 details.ig-details>summary:hover{background:#f7fbf9}\r\n  #ig-davi-pocket-v2 details.ig-details>summary::-webkit-details-marker{display:none}\r\n  #ig-davi-pocket-v2 details.ig-details>summary::after{content:\"+\";flex:0 0 auto;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--green-soft);color:var(--green-dark);font-size:18px}\r\n  #ig-davi-pocket-v2 details[open].ig-details>summary{border-bottom:1px solid var(--line);background:#fbfdfc}\r\n  #ig-davi-pocket-v2 details[open].ig-details>summary::after{content:\"\u2212\"}\r\n  #ig-davi-pocket-v2 .ig-details-body{padding:18px 20px 20px}\r\n  #ig-davi-pocket-v2 .ig-details-copy{color:var(--muted);font-size:12.5px;line-height:1.62;margin-bottom:13px}\r\n  #ig-davi-pocket-v2 .ig-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}\r\n  #ig-davi-pocket-v2 table{width:100%;min-width:980px;border-collapse:collapse;font-variant-numeric:tabular-nums}\r\n  #ig-davi-pocket-v2 th{padding:11px 10px;background:var(--ink);color:#fff;font-size:10.5px;text-align:left;white-space:nowrap}\r\n  #ig-davi-pocket-v2 td{padding:10px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-2);white-space:nowrap}\r\n  #ig-davi-pocket-v2 tbody tr:nth-child(even){background:#f7fbf9}\r\n  #ig-davi-pocket-v2 .ig-num{text-align:right}\r\n  #ig-davi-pocket-v2 .ig-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:10.5px;font-weight:850}\r\n  #ig-davi-pocket-v2 .ig-badge.is-coral{background:var(--coral-soft);color:var(--coral-dark)}\r\n  #ig-davi-pocket-v2 .ig-table-hint{display:none;margin-bottom:8px;color:var(--muted);font-size:11px}\r\n  #ig-davi-pocket-v2 .ig-load-more{display:none;margin-top:12px}\r\n  #ig-davi-pocket-v2 .ig-load-more.is-visible{display:inline-flex}\r\n\r\n  #ig-davi-pocket-v2 .ig-pdf-card{display:none;margin-top:16px;padding:18px;border:1px solid rgba(239,106,74,.29);border-radius:var(--radius);background:linear-gradient(90deg,#fff8f4,#fff);box-shadow:var(--shadow-xs)}\r\n  #ig-davi-pocket-v2 .ig-pdf-card.is-visible{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}\r\n  #ig-davi-pocket-v2 .ig-pdf-card strong{font-size:15px;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-pdf-status{margin-top:5px;color:var(--muted);font-size:11.5px}\r\n  #ig-davi-pocket-v2 .ig-source-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;background:#fbfdfc}\r\n  #ig-davi-pocket-v2 .ig-source-card h3{font-size:18px;font-weight:930;color:var(--ink)}\r\n  #ig-davi-pocket-v2 .ig-source-card p{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.58}\r\n  #ig-davi-pocket-v2 .ig-source-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}\r\n  #ig-davi-pocket-v2 .ig-source-links a{display:inline-flex;align-items:center;min-height:42px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:11px;background:#fff;color:var(--green-dark);font-size:12px;font-weight:870;text-decoration:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}\r\n  #ig-davi-pocket-v2 .ig-source-links a:hover{border-color:#9fb8af;background:var(--green-soft-2);transform:translateY(-1px)}\r\n  #ig-davi-pocket-v2 footer{margin-top:24px;padding:19px 4px 4px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:11.5px;line-height:1.58}\r\n  #ig-davi-pocket-v2 .ig-reveal{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}\r\n  #ig-davi-pocket-v2 .ig-reveal.is-visible{opacity:1;transform:none}\r\n  @keyframes igDaviRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}\r\n\r\n  @media(max-width:980px){\r\n    #ig-davi-pocket-v2 .ig-hero{grid-template-columns:1fr}\r\n    #ig-davi-pocket-v2 .ig-rate-guide{position:static;order:2}\r\n    #ig-davi-pocket-v2 .ig-result-mini,#ig-davi-pocket-v2 .ig-kpis,#ig-davi-pocket-v2 .ig-horizons{grid-template-columns:repeat(2,minmax(0,1fr))}\r\n  }\r\n  @media(max-width:720px){\r\n    #ig-davi-pocket-v2 .ig-section{padding:22px 0 28px}\r\n    #ig-davi-pocket-v2 .ig-wrap{width:min(100% - 20px,1180px)}\r\n    #ig-davi-pocket-v2 .ig-main{padding:18px}\r\n    #ig-davi-pocket-v2 .ig-topline{margin-bottom:16px}\r\n    #ig-davi-pocket-v2 h1{font-size:clamp(36px,10.5vw,49px);line-height:1.02}\r\n    #ig-davi-pocket-v2 .ig-lead{font-size:15px;line-height:1.65}\r\n    #ig-davi-pocket-v2 .ig-benefits{grid-template-columns:1fr;gap:8px;margin-top:19px}\r\n    #ig-davi-pocket-v2 .ig-benefit{min-height:58px;padding:10px 12px}\r\n    #ig-davi-pocket-v2 .ig-form-card{margin-top:20px}\r\n    #ig-davi-pocket-v2 .ig-form-head{display:block;padding:18px 16px 15px}\r\n    #ig-davi-pocket-v2 .ig-form-head h2{font-size:23px}\r\n    #ig-davi-pocket-v2 .ig-form-flow{grid-template-columns:1fr;padding:10px 16px 0}\r\n    #ig-davi-pocket-v2 .ig-flow-step{min-height:47px}\r\n    #ig-davi-pocket-v2 form{padding:15px 16px 17px}\r\n    #ig-davi-pocket-v2 .ig-form-grid{grid-template-columns:1fr;gap:11px}\r\n    #ig-davi-pocket-v2 .ig-form-section-title,#ig-davi-pocket-v2 .ig-field.is-full{grid-column:auto}\r\n    #ig-davi-pocket-v2 .ig-field{padding:12px}\r\n    #ig-davi-pocket-v2 .ig-field input,#ig-davi-pocket-v2 .ig-field select{font-size:16px;min-height:54px}\r\n    #ig-davi-pocket-v2 .ig-tax-card{align-items:center;padding:14px}\r\n    #ig-davi-pocket-v2 .ig-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:9px}\r\n    #ig-davi-pocket-v2 .ig-actions .ig-btn:first-child{grid-column:1\/-1}\r\n    #ig-davi-pocket-v2 .ig-btn{width:100%;min-height:54px;padding:11px 12px}\r\n    #ig-davi-pocket-v2 .ig-rate-guide{padding:20px}\r\n    #ig-davi-pocket-v2 .ig-rate-guide h2{font-size:27px}\r\n    #ig-davi-pocket-v2 .ig-primary-result{padding:21px 18px}\r\n    #ig-davi-pocket-v2 .ig-main-money{font-size:clamp(30px,8.8vw,50px);white-space:nowrap}\r\n    #ig-davi-pocket-v2 .ig-result-copy{font-size:12.5px}\r\n    #ig-davi-pocket-v2 .ig-chart-card,#ig-davi-pocket-v2 .ig-horizon-card,#ig-davi-pocket-v2 .ig-source-card{padding:17px}\r\n    #ig-davi-pocket-v2 .ig-chart svg{height:180px}\r\n    #ig-davi-pocket-v2 .ig-source-card{grid-template-columns:1fr}\r\n    #ig-davi-pocket-v2 .ig-source-links{justify-content:flex-start}\r\n    #ig-davi-pocket-v2 .ig-source-links a{width:100%;justify-content:center}\r\n    #ig-davi-pocket-v2 .ig-table-hint{display:block}\r\n    #ig-davi-pocket-v2 .ig-table-wrap table th:first-child,#ig-davi-pocket-v2 .ig-table-wrap table td:first-child{position:sticky;left:0;z-index:2}\r\n    #ig-davi-pocket-v2 .ig-table-wrap table th:first-child{background:var(--ink)}\r\n    #ig-davi-pocket-v2 .ig-table-wrap table td:first-child{background:#fff}\r\n    #ig-davi-pocket-v2 .ig-table-wrap tbody tr:nth-child(even) td:first-child{background:#f7fbf9}\r\n    #ig-davi-pocket-v2 .ig-pdf-card.is-visible{display:grid;grid-template-columns:1fr}\r\n    #ig-davi-pocket-v2 .ig-pdf-card .ig-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:4px}\r\n  }\r\n  @media(max-width:430px){\r\n    #ig-davi-pocket-v2 .ig-wrap{width:min(100% - 16px,1180px)}\r\n    #ig-davi-pocket-v2 .ig-main{padding:15px}\r\n    #ig-davi-pocket-v2 .ig-chip{font-size:11px;min-height:30px}\r\n    #ig-davi-pocket-v2 .ig-topline{align-items:flex-start;gap:7px}\r\n    #ig-davi-pocket-v2 h1{font-size:clamp(34px,10.8vw,45px)}\r\n    #ig-davi-pocket-v2 .ig-rate-guide{padding:17px}\r\n    #ig-davi-pocket-v2 .ig-rate-guide h2{font-size:25px}\r\n    #ig-davi-pocket-v2 .ig-rate-row{grid-template-columns:1fr;padding:13px;gap:8px}\r\n    #ig-davi-pocket-v2 .ig-rate-row b{font-size:24px}\r\n    #ig-davi-pocket-v2 .ig-result-mini,#ig-davi-pocket-v2 .ig-kpis,#ig-davi-pocket-v2 .ig-horizons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\r\n    #ig-davi-pocket-v2 .ig-result-mini div,#ig-davi-pocket-v2 .ig-kpi,#ig-davi-pocket-v2 .ig-horizon{padding:11px}\r\n    #ig-davi-pocket-v2 .ig-result-mini strong{font-size:14px}\r\n    #ig-davi-pocket-v2 .ig-kpi strong{font-size:17px}\r\n    #ig-davi-pocket-v2 .ig-main-money{font-size:clamp(28px,8.5vw,40px)}\r\n    #ig-davi-pocket-v2 .ig-chart-meta{display:grid;grid-template-columns:1fr;text-align:left}\r\n    #ig-davi-pocket-v2 .ig-pdf-card .ig-actions{grid-template-columns:1fr}\r\n  }\r\n  @media(max-width:350px){\r\n    #ig-davi-pocket-v2 .ig-result-mini,#ig-davi-pocket-v2 .ig-kpis,#ig-davi-pocket-v2 .ig-horizons{grid-template-columns:1fr}\r\n    #ig-davi-pocket-v2 .ig-actions{grid-template-columns:1fr}\r\n    #ig-davi-pocket-v2 .ig-actions .ig-btn:first-child{grid-column:auto}\r\n  }\r\n  @media(prefers-reduced-motion:reduce){\r\n    #ig-davi-pocket-v2 *,#ig-davi-pocket-v2 *::before,#ig-davi-pocket-v2 *::after{animation-duration:1ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}\r\n    #ig-davi-pocket-v2 .ig-reveal{opacity:1;transform:none}\r\n  }\r\n<\/style>\r\n\r\n\r\n<div id=\"ig-davi-pocket-v2\">\r\n  <section class=\"ig-section\">\r\n    <div class=\"ig-wrap\">\r\n      <div class=\"ig-hero\">\r\n        <article class=\"ig-panel ig-main ig-reveal\">\r\n          <div class=\"ig-topline\">\r\n            <span class=\"ig-chip is-bank\">\u25cf Bolsillos Davivienda<\/span>\r\n            <span class=\"ig-chip\"><span class=\"ig-status-dot\"><\/span> Par\u00e1metros revisados 10\/08\/2026<\/span>\r\n          <\/div>\r\n          <h1>Calcula cu\u00e1nto pueden rendir tus <span>Bolsillos Davivienda<\/span><\/h1>\r\n          <p class=\"ig-lead\">Descubre cu\u00e1nto podr\u00eda generar un Bolsillo Davivienda seg\u00fan tu saldo, tipo de cuenta y tiempo de ahorro. Ver\u00e1s por separado la ganancia estimada, lo que ya estar\u00eda abonado y lo que a\u00fan depender\u00eda del cierre mensual.<\/p>\r\n\r\n          <div class=\"ig-benefits\" aria-label=\"Puntos clave de Bolsillos Davivienda\">\r\n            <div class=\"ig-benefit\"><b>15<\/b><span>Hasta 15 Bolsillos por cuenta<\/span><\/div>\r\n            <div class=\"ig-benefit\"><b>$0<\/b><span>Sin costo adicional por usar Bolsillos<\/span><\/div>\r\n            <div class=\"ig-benefit\"><b>\u21bb<\/b><span>Abonos autom\u00e1ticos programables<\/span><\/div>\r\n          <\/div>\r\n\r\n          <div class=\"ig-form-card\">\r\n            <div class=\"ig-form-head\">\r\n              <div>\r\n                <h2>Simula tu Bolsillo<\/h2>\r\n                <p>Completa solo los datos de este Bolsillo. Si tienes varios, conviene simular cada uno por separado.<\/p>\r\n              <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ig-form-flow\" aria-label=\"Ruta r\u00e1pida para completar la simulaci\u00f3n\">\r\n              <div class=\"ig-flow-step\"><b>01<\/b><span>Elige tu cuenta y saldo<\/span><\/div>\r\n              <div class=\"ig-flow-step\"><b>02<\/b><span>Define plazo y aportes<\/span><\/div>\r\n              <div class=\"ig-flow-step\"><b>03<\/b><span>Calcula y revisa tu ganancia<\/span><\/div>\r\n            <\/div>\r\n\r\n            <form id=\"igDaviForm\" novalidate autocomplete=\"off\">\r\n              <div class=\"ig-form-grid\">\r\n                <div class=\"ig-form-section-title\"><b>01<\/b><span>Datos de tu Bolsillo<\/span><\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviAmount\">Saldo inicial del Bolsillo<\/label>\r\n                  <input id=\"igDaviAmount\" type=\"text\" inputmode=\"decimal\" value=\"10.000.000\" placeholder=\"Ej: 10.000.000\">\r\n                  <span class=\"ig-help\">Es el dinero que ya tienes en el Bolsillo que quieres simular. Si tienes varios Bolsillos, conviene calcular cada uno por separado.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviAccount\">Tipo de cuenta asociada<\/label>\r\n                  <select id=\"igDaviAccount\">\r\n                    <option value=\"traditional\">Cuenta Tradicional y Ni\u00f1os<\/option>\r\n                    <option value=\"payroll\" selected>Cuenta de N\u00f3mina, Pensi\u00f3n y Rural<\/option>\r\n                  <\/select>\r\n                  <span class=\"ig-help\">Desde $10 millones, N\u00f3mina, Pensi\u00f3n y Rural pueden aplicar a 8,25% E.A.; Tradicional y Ni\u00f1os contin\u00faan en 8,00% E.A.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-form-section-title\"><b>02<\/b><span>Tiempo y aportes<\/span><\/div>\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviStartDate\">Fecha inicial<\/label>\r\n                  <input id=\"igDaviStartDate\" type=\"date\" min=\"2026-07-01\" value=\"\">\r\n                  <span class=\"ig-help\">La fecha permite respetar los cierres reales de cada mes.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviMonths\">Tiempo a simular<\/label>\r\n                  <select id=\"igDaviMonths\">\r\n                    <option value=\"1\">1 mes<\/option>\r\n                    <option value=\"3\">3 meses<\/option>\r\n                    <option value=\"6\">6 meses<\/option>\r\n                    <option value=\"12\" selected>12 meses<\/option>\r\n                    <option value=\"24\">24 meses<\/option>\r\n                    <option value=\"36\">36 meses<\/option>\r\n                    <option value=\"60\">60 meses<\/option>\r\n                    <option value=\"120\">120 meses<\/option>\r\n                  <\/select>\r\n                  <span class=\"ig-help\">Un a\u00f1o equivale a 12 meses desde la fecha elegida.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviMonthly\">Aporte mensual programado<\/label>\r\n                  <input id=\"igDaviMonthly\" type=\"text\" inputmode=\"decimal\" value=\"500.000\" placeholder=\"Ej: 500.000\">\r\n                  <span class=\"ig-help\">Se empieza a agregar desde el mes calendario siguiente. Davivienda publica una transferencia m\u00ednima de $5.000 hacia Bolsillos.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-field\">\r\n                  <label for=\"igDaviContributionDay\">D\u00eda del aporte mensual<\/label>\r\n                  <select id=\"igDaviContributionDay\">\r\n                    <option value=\"1\">D\u00eda 1<\/option>\r\n                    <option value=\"5\">D\u00eda 5<\/option>\r\n                    <option value=\"10\">D\u00eda 10<\/option>\r\n                    <option value=\"15\" selected>D\u00eda 15<\/option>\r\n                    <option value=\"20\">D\u00eda 20<\/option>\r\n                    <option value=\"25\">D\u00eda 25<\/option>\r\n                    <option value=\"last\">\u00daltimo d\u00eda del mes<\/option>\r\n                  <\/select>\r\n                  <span class=\"ig-help\">El aporte empieza a generar rendimiento desde el saldo al corte del d\u00eda en que se agrega.<\/span>\r\n                <\/div>\r\n\r\n                <div class=\"ig-form-section-title\"><b>03<\/b><span>Ajuste opcional<\/span><\/div>\r\n                <div class=\"ig-field is-full\">\r\n                  <div class=\"ig-tax-card\">\r\n                    <div>\r\n                      <strong>Estimar retenci\u00f3n en la fuente cuando corresponda<\/strong>\r\n                      <p>Para 2026 usamos como referencia 0,055 UVT de inter\u00e9s diario ($2.880,57) y una tarifa general del 4% sobre el inter\u00e9s sujeto. La liquidaci\u00f3n real depende del banco y de tu situaci\u00f3n tributaria.<\/p>\r\n                    <\/div>\r\n                    <label class=\"ig-switch\" aria-label=\"Estimar retenci\u00f3n en la fuente\">\r\n                      <input id=\"igDaviTax\" type=\"checkbox\" checked>\r\n                      <span aria-hidden=\"true\"><\/span>\r\n                    <\/label>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div>\r\n\r\n              <div class=\"ig-actions\">\r\n                <button class=\"ig-btn\" type=\"submit\">Calcular rendimiento<\/button>\r\n                <button class=\"ig-btn secondary\" id=\"igDaviReset\" type=\"button\">Reiniciar<\/button>\r\n                <button class=\"ig-btn secondary\" id=\"igDaviShare\" type=\"button\">Compartir escenario<\/button>\r\n                <span class=\"ig-toast\" id=\"igDaviToast\" role=\"status\" aria-live=\"polite\">Enlace copiado<\/span>\r\n              <\/div>\r\n              <div class=\"ig-error\" id=\"igDaviError\" role=\"alert\" aria-live=\"assertive\"><\/div>\r\n            <\/form>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <aside class=\"ig-panel ig-rate-guide ig-reveal\" aria-label=\"Tasas vigentes usadas por el simulador\">\r\n          <span class=\"ig-chip\" style=\"background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.17);color:#fff\">Tasas vigentes desde 01\/07\/2026<\/span>\r\n          <h2>\u00bfQu\u00e9 tasa puede aplicar a tu Bolsillo?<\/h2>\r\n          <p>Depende del saldo al corte de cada d\u00eda y del tipo de cuenta asociada. El simulador detecta autom\u00e1ticamente el tramo correspondiente.<\/p>\r\n          <div class=\"ig-rate-table\">\r\n            <div class=\"ig-rate-row\"><div><small>Ambos grupos<\/small><strong>Menos de $5.000.000<\/strong><\/div><b>0,10% E.A.<\/b><\/div>\r\n            <div class=\"ig-rate-row\"><div><small>Ambos grupos<\/small><strong>De $5.000.000 a $9.999.999,99<\/strong><\/div><b>8,00% E.A.<\/b><\/div>\r\n            <div class=\"ig-rate-row\"><div><small>Tradicional y Ni\u00f1os<\/small><strong>Desde $10.000.000<\/strong><\/div><b>8,00% E.A.<\/b><\/div>\r\n            <div class=\"ig-rate-row\"><div><small>N\u00f3mina, Pensi\u00f3n y Rural<\/small><strong>Desde $10.000.000<\/strong><\/div><b>8,25% E.A.<\/b><\/div>\r\n          <\/div>\r\n          <div class=\"ig-rate-note\"><strong>C\u00f3mo leerlo:<\/strong> el rendimiento se genera d\u00eda a d\u00eda y se acumula para el cierre mensual. Si tu saldo cambia de tramo, tambi\u00e9n puede cambiar la tasa aplicada.<\/div>\r\n        <\/aside>\r\n      <\/div>\r\n\r\n      <section class=\"ig-results\" id=\"igDaviResults\" aria-live=\"polite\">\r\n        <article class=\"ig-panel ig-primary-result\">\r\n          <span class=\"ig-result-label\">Lo m\u00e1s importante<\/span>\r\n          <h2>Ganancia neta estimada<\/h2>\r\n          <strong class=\"ig-main-money\" id=\"igDaviNetGenerated\">$0<\/strong>\r\n          <p class=\"ig-result-copy\" id=\"igDaviResultSentence\">Calcula un escenario para ver cu\u00e1nto podr\u00eda generar tu dinero.<\/p>\r\n          <div class=\"ig-result-mini\">\r\n            <div><span>Saldo proyectado<\/span><strong id=\"igDaviEconomicFinal\">$0<\/strong><\/div>\r\n            <div><span>Ya abonado<\/span><strong id=\"igDaviCredited\">$0<\/strong><\/div>\r\n            <div><span>Pendiente de abono<\/span><strong id=\"igDaviPending\">$0<\/strong><\/div>\r\n            <div><span>Retenci\u00f3n estimada<\/span><strong id=\"igDaviTaxTotal\">$0<\/strong><\/div>\r\n          <\/div>\r\n        <\/article>\r\n\r\n        <div class=\"ig-kpis\">\r\n          <div class=\"ig-kpi\"><span>Tu dinero aportado<\/span><strong id=\"igDaviInvested\">$0<\/strong><\/div>\r\n          <div class=\"ig-kpi is-positive\"><span>Inter\u00e9s bruto generado<\/span><strong id=\"igDaviGross\">$0<\/strong><\/div>\r\n          <div class=\"ig-kpi\"><span>Saldo disponible tras abonos<\/span><strong id=\"igDaviActualBalance\">$0<\/strong><\/div>\r\n          <div class=\"ig-kpi is-warning\"><span>D\u00edas con retenci\u00f3n estimada<\/span><strong id=\"igDaviTaxDays\">0<\/strong><\/div>\r\n        <\/div>\r\n\r\n        <article class=\"ig-chart-card\">\r\n          <div class=\"ig-block-head\">\r\n            <div><h3>As\u00ed podr\u00eda crecer tu Bolsillo<\/h3><p>La curva muestra el saldo proyectado despu\u00e9s de aportes y abonos mensuales de rendimiento.<\/p><\/div>\r\n            <span class=\"ig-chip\" id=\"igDaviRateUsed\">Tasa 0,00%<\/span>\r\n          <\/div>\r\n          <div class=\"ig-chart\" id=\"igDaviChart\" aria-label=\"Gr\u00e1fico de crecimiento proyectado\"><\/div>\r\n          <div class=\"ig-chart-meta\"><span id=\"igDaviChartStart\">Inicio: $0<\/span><span id=\"igDaviChartEnd\">Final: $0<\/span><\/div>\r\n        <\/article>\r\n\r\n        <article class=\"ig-horizon-card\">\r\n          <div class=\"ig-block-head\"><div><h3>\u00bfQu\u00e9 pasa si dejas el dinero m\u00e1s tiempo?<\/h3><p>Comparamos el mismo saldo, tipo de cuenta y aporte mensual.<\/p><\/div><\/div>\r\n          <div class=\"ig-horizons\" id=\"igDaviHorizons\"><\/div>\r\n        <\/article>\r\n\r\n        <details class=\"ig-details\" open>\r\n          <summary>C\u00f3mo se calcul\u00f3<\/summary>\r\n          <div class=\"ig-details-body\">\r\n            <p class=\"ig-details-copy\" id=\"igDaviInsights\">El simulador calcula d\u00eda a d\u00eda y acredita el rendimiento acumulado al cierre de cada mes.<\/p>\r\n            <div class=\"ig-kpis\" style=\"margin-top:0\">\r\n              <div class=\"ig-kpi\"><span>Tasa m\u00ednima usada<\/span><strong id=\"igDaviMinRate\">0,00%<\/strong><\/div>\r\n              <div class=\"ig-kpi\"><span>Tasa m\u00e1xima usada<\/span><strong id=\"igDaviMaxRate\">0,00%<\/strong><\/div>\r\n              <div class=\"ig-kpi\"><span>D\u00edas simulados<\/span><strong id=\"igDaviDays\">0<\/strong><\/div>\r\n              <div class=\"ig-kpi\"><span>Aportes realizados<\/span><strong id=\"igDaviContributionTotal\">$0<\/strong><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/details>\r\n\r\n        <details class=\"ig-details\">\r\n          <summary>Detalle mensual<\/summary>\r\n          <div class=\"ig-details-body\">\r\n            <p class=\"ig-details-copy\">Cada fila consolida los d\u00edas realmente simulados de ese mes. \u201cPendiente\u201d significa que el per\u00edodo termin\u00f3 antes del \u00faltimo d\u00eda del mes y ese rendimiento todav\u00eda no se habr\u00eda abonado.<\/p>\r\n            <div class=\"ig-table-hint\">Desliza horizontalmente para ver todas las columnas \u2192<\/div>\r\n            <div class=\"ig-table-wrap\">\r\n              <table aria-label=\"Detalle mensual estimado de Bolsillos Davivienda\">\r\n                <thead><tr><th>Mes<\/th><th>D\u00edas<\/th><th class=\"ig-num\">Saldo promedio<\/th><th>Tasa<\/th><th class=\"ig-num\">Aportes<\/th><th class=\"ig-num\">Inter\u00e9s bruto<\/th><th class=\"ig-num\">Retenci\u00f3n<\/th><th class=\"ig-num\">Neto generado<\/th><th>Estado<\/th><th class=\"ig-num\">Saldo cierre<\/th><\/tr><\/thead>\r\n                <tbody id=\"igDaviMonthlyBody\"><\/tbody>\r\n              <\/table>\r\n            <\/div>\r\n          <\/div>\r\n        <\/details>\r\n\r\n        <details class=\"ig-details\" id=\"igDaviDailyDetails\">\r\n          <summary>Detalle diario<\/summary>\r\n          <div class=\"ig-details-body\">\r\n            <p class=\"ig-details-copy\">Muestra el saldo al corte usado para remunerar, la tasa E.A. de ese d\u00eda y el rendimiento que se acumula hasta el cierre mensual. Para que la consulta sea m\u00e1s c\u00f3moda, mostramos primero hasta 90 d\u00edas. Puedes ver el resto cuando lo necesites.<\/p>\r\n            <div class=\"ig-table-hint\">Desliza horizontalmente para ver todas las columnas \u2192<\/div>\r\n            <div class=\"ig-table-wrap\">\r\n              <table aria-label=\"Detalle diario estimado de Bolsillos Davivienda\">\r\n                <thead><tr><th>Fecha<\/th><th class=\"ig-num\">Saldo al corte<\/th><th>Tasa<\/th><th class=\"ig-num\">Inter\u00e9s bruto<\/th><th class=\"ig-num\">Retenci\u00f3n<\/th><th class=\"ig-num\">Neto del d\u00eda<\/th><th class=\"ig-num\">Abono al cierre<\/th><th class=\"ig-num\">Saldo final<\/th><\/tr><\/thead>\r\n                <tbody id=\"igDaviDailyBody\"><\/tbody>\r\n              <\/table>\r\n            <\/div>\r\n            <button class=\"ig-btn secondary ig-load-more\" id=\"igDaviLoadMore\" type=\"button\">Ver todos los d\u00edas<\/button>\r\n          <\/div>\r\n        <\/details>\r\n\r\n        <div class=\"ig-pdf-card\" id=\"igDaviPdfCard\">\r\n          <div><strong>Guarda o comparte tu simulaci\u00f3n<\/strong><div class=\"ig-pdf-status\" id=\"igDaviPdfStatus\">Descarga un reporte con el logo de InversionesGuru, tu escenario y el resumen del c\u00e1lculo.<\/div><\/div>\r\n          <div class=\"ig-actions\" style=\"margin-top:0\"><button class=\"ig-btn coral\" id=\"igDaviPdf\" type=\"button\">Descargar reporte PDF<\/button><button class=\"ig-btn secondary\" id=\"igDaviPrint\" type=\"button\">Imprimir \/ guardar PDF<\/button><\/div>\r\n        <\/div>\r\n\r\n        <article class=\"ig-source-card\">\r\n          <div><h3>Fuentes oficiales y criterio de c\u00e1lculo<\/h3><p>Tasas de Bolsillos revisadas en Davivienda y su tabla oficial vigente desde el 1 de julio de 2026. La estimaci\u00f3n tributaria usa la UVT 2026 y el umbral diario para intereses de cuentas de ahorro publicado por la DIAN. El modelo calcula un Bolsillo individual y usa $5.000 como aporte m\u00ednimo programado seg\u00fan la tabla oficial de Davivienda.<\/p><\/div>\r\n          <div class=\"ig-source-links\"><a href=\"https:\/\/www.davivienda.com\/personas\/cuentas\/bolsillos\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Bolsillos Davivienda \u2197<\/a><a href=\"https:\/\/normograma.dian.gov.co\/dian\/compilacion\/docs\/decreto_2715_1983.htm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Regla DIAN \u2197<\/a><\/div>\r\n        <\/article>\r\n      <\/section>\r\n\r\n      <footer>Simulaci\u00f3n educativa de InversionesGuru Colombia \u00b7 Par\u00e1metros revisados el 10 de agosto de 2026. Las tasas, redondeos, retenciones y abonos reales dependen de las condiciones vigentes y de la liquidaci\u00f3n efectuada por Davivienda. La proyecci\u00f3n supone que las tasas vigentes desde el 01\/07\/2026 permanecen sin cambios durante todo el horizonte.<\/footer>\r\n    <\/div>\r\n  <\/section>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  'use strict';\r\n  const root=document.getElementById('ig-davi-pocket-v2');\r\n  if(!root||root.dataset.ready==='true')return;\r\n  root.dataset.ready='true';\r\n\r\n  const CONFIG={\r\n    thresholdLow:5000000,\r\n    thresholdHigh:10000000,\r\n    rates:{low:.001,mid:.08,highTraditional:.08,highPayroll:.0825},\r\n    taxRate:.04,\r\n    uvt2026:52374,\r\n    taxThresholdDaily:52374*.055,\r\n    minContribution:5000,\r\n    rateEffectiveFrom:'2026-07-01',\r\n    dailyDisplayLimit:90,\r\n    maxMonths:120,\r\n    logoUrl:'https:\/\/inversionesguru.com\/co\/wp-content\/uploads\/sites\/3\/2026\/08\/inversionesguru_logo.png',\r\n    reportUrl:'https:\/\/inversionesguru.com\/co\/',\r\n    productUrl:'https:\/\/www.davivienda.com\/personas\/cuentas\/bolsillos',\r\n    pdfName:'simulacion-bolsillos-davivienda-inversionesguru.pdf'\r\n  };\r\n\r\n  const $=s=>root.querySelector(s);\r\n  const money0=new Intl.NumberFormat('es-CO',{style:'currency',currency:'COP',maximumFractionDigits:0});\r\n  const money2=new Intl.NumberFormat('es-CO',{style:'currency',currency:'COP',minimumFractionDigits:2,maximumFractionDigits:2});\r\n  const numFmt=new Intl.NumberFormat('es-CO',{maximumFractionDigits:2});\r\n  const fmtMoney0=v=>money0.format(Number(v)||0);\r\n  const fmtMoney2=v=>money2.format(Number(v)||0);\r\n  const fmtRate=v=>numFmt.format((Number(v)||0)*100)+'% E.A.';\r\n  const round2=v=>Math.round((Number(v)+Number.EPSILON)*100)\/100;\r\n\r\n  const el={\r\n    form:$('#igDaviForm'),amount:$('#igDaviAmount'),account:$('#igDaviAccount'),startDate:$('#igDaviStartDate'),months:$('#igDaviMonths'),monthly:$('#igDaviMonthly'),contributionDay:$('#igDaviContributionDay'),tax:$('#igDaviTax'),reset:$('#igDaviReset'),share:$('#igDaviShare'),toast:$('#igDaviToast'),error:$('#igDaviError'),results:$('#igDaviResults'),\r\n    netGenerated:$('#igDaviNetGenerated'),economicFinal:$('#igDaviEconomicFinal'),credited:$('#igDaviCredited'),pending:$('#igDaviPending'),taxTotal:$('#igDaviTaxTotal'),invested:$('#igDaviInvested'),gross:$('#igDaviGross'),actualBalance:$('#igDaviActualBalance'),taxDays:$('#igDaviTaxDays'),resultSentence:$('#igDaviResultSentence'),rateUsed:$('#igDaviRateUsed'),chart:$('#igDaviChart'),chartStart:$('#igDaviChartStart'),chartEnd:$('#igDaviChartEnd'),horizons:$('#igDaviHorizons'),insights:$('#igDaviInsights'),minRate:$('#igDaviMinRate'),maxRate:$('#igDaviMaxRate'),days:$('#igDaviDays'),contributionTotal:$('#igDaviContributionTotal'),monthlyBody:$('#igDaviMonthlyBody'),dailyBody:$('#igDaviDailyBody'),loadMore:$('#igDaviLoadMore'),dailyDetails:$('#igDaviDailyDetails'),pdfCard:$('#igDaviPdfCard'),pdf:$('#igDaviPdf'),print:$('#igDaviPrint'),pdfStatus:$('#igDaviPdfStatus')\r\n  };\r\n\r\n  let state={report:null,showAllDays:false,logoData:null};\r\n\r\n  function onlyDigits(v){return String(v||'').replace(\/\\D\/g,'')}\r\n  function decimalSeparator(value){\r\n    const clean=String(value||'').replace(\/[^\\d.,]\/g,'');\r\n    const c=clean.lastIndexOf(','),d=clean.lastIndexOf('.');\r\n    if(c<0&&d<0)return null;\r\n    if(c>=0&&d>=0)return c>d?',':'.';\r\n    const sep=c>=0?',':'.',last=clean.lastIndexOf(sep),occ=clean.split(sep).length-1,after=clean.slice(last+1).replace(\/\\D\/g,'');\r\n    if(clean.endsWith(sep))return sep;\r\n    if(!after.length)return null;\r\n    if(occ>1)return after.length<=2?sep:null;\r\n    return after.length<=2?sep:null;\r\n  }\r\n  function parts(value){\r\n    const raw=String(value||'').trim().replace(\/\\s\/g,'').replace(\/-\/g,'');\r\n    const sep=decimalSeparator(raw);\r\n    if(!sep)return{int:onlyDigits(raw),dec:'',has:false};\r\n    const i=raw.lastIndexOf(sep);\r\n    return{int:onlyDigits(raw.slice(0,i)),dec:onlyDigits(raw.slice(i+1)).slice(0,2),has:true};\r\n  }\r\n  function parseMoney(value){const p=parts(value);if(!p.int&&!p.dec)return NaN;const n=Number((p.int||'0')+(p.has&&p.dec?'.'+p.dec:''));return Number.isFinite(n)?n:NaN}\r\n  function formatInput(value){const p=parts(value);if(!p.int&&!p.has)return'';const i=(p.int||'0').replace(\/^0+(?=\\d)\/,'').replace(\/\\B(?=(\\d{3})+(?!\\d))\/g,'.');return p.has?i+','+p.dec:i}\r\n  function bindMoney(input){input.addEventListener('input',()=>{input.value=formatInput(input.value)});input.addEventListener('blur',()=>{const n=parseMoney(input.value);if(Number.isFinite(n))input.value=formatInput(String(n.toLocaleString('en-US',{useGrouping:false,maximumFractionDigits:2})))})}\r\n\r\n  function parseDate(s){const m=\/^(\\d{4})-(\\d{2})-(\\d{2})$\/.exec(String(s||''));if(!m)return null;const d=new Date(Number(m[1]),Number(m[2])-1,Number(m[3]),12,0,0,0);return Number.isNaN(d.getTime())?null:d}\r\n  function ymd(d){return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0')}\r\n  function todayYmd(){return ymd(new Date())}\r\n  function addDays(d,n){const x=new Date(d);x.setDate(x.getDate()+n);return x}\r\n  function daysInMonth(y,m){return new Date(y,m+1,0,12).getDate()}\r\n  function addMonthsClamped(d,n){const day=d.getDate(),x=new Date(d.getFullYear(),d.getMonth()+n,1,12);x.setDate(Math.min(day,daysInMonth(x.getFullYear(),x.getMonth())));return x}\r\n  function monthKey(d){return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')}\r\n  function monthLabel(key){const [y,m]=key.split('-').map(Number);return new Intl.DateTimeFormat('es-CO',{month:'long',year:'numeric'}).format(new Date(y,m-1,1,12))}\r\n  function isLastDay(d){return d.getDate()===daysInMonth(d.getFullYear(),d.getMonth())}\r\n  function sameDate(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}\r\n  function contributionDate(year,month,choice){const last=daysInMonth(year,month);const day=choice==='last'?last:Math.min(Number(choice)||15,last);return new Date(year,month,day,12)}\r\n  function dailyRate(ea){return Math.pow(1+ea,1\/365)-1}\r\n  function getRate(account,balance){if(balance<CONFIG.thresholdLow)return CONFIG.rates.low;if(balance<CONFIG.thresholdHigh)return CONFIG.rates.mid;return account==='payroll'?CONFIG.rates.highPayroll:CONFIG.rates.highTraditional}\r\n  function accountLabel(v){return v==='payroll'?'Cuenta de N\u00f3mina, Pensi\u00f3n y Rural':'Cuenta Tradicional y Ni\u00f1os'}\r\n  function escapeHtml(s){return String(s==null?'':s).replace(\/[&<>'\"]\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;',\"'\":'&#39;','\"':'&quot;'}[c]))}\r\n\r\n  function getInputs(){return{amount:parseMoney(el.amount.value),account:el.account.value,startDate:parseDate(el.startDate.value),months:Number(el.months.value),monthly:parseMoney(el.monthly.value||'0')||0,contributionDay:el.contributionDay.value,applyTax:el.tax.checked}}\r\n  function validate(i){\r\n    if(!Number.isFinite(i.amount)||i.amount<0)throw new Error('Ingresa un saldo inicial v\u00e1lido igual o mayor a $0.');\r\n    if(!i.startDate)throw new Error('Selecciona una fecha inicial v\u00e1lida.');\r\n    if(i.startDate<parseDate(CONFIG.rateEffectiveFrom))throw new Error('Estas tasas est\u00e1n parametrizadas desde el 1 de julio de 2026. Elige una fecha igual o posterior.');\r\n    if(!Number.isInteger(i.months)||i.months<1||i.months>CONFIG.maxMonths)throw new Error('Selecciona un plazo entre 1 y 120 meses.');\r\n    if(!Number.isFinite(i.monthly)||i.monthly<0)throw new Error('El aporte mensual no puede ser negativo.');\r\n    if(i.monthly>0&&i.monthly<CONFIG.minContribution)throw new Error('Davivienda publica una transferencia m\u00ednima de $5.000 hacia Bolsillos. Usa $0 o un aporte de al menos $5.000.');\r\n    if(i.amount===0&&i.monthly===0)throw new Error('Ingresa un saldo inicial o un aporte mensual para poder simular.');\r\n    if(!['traditional','payroll'].includes(i.account))throw new Error('Selecciona un tipo de cuenta v\u00e1lido.');\r\n    return i;\r\n  }\r\n  function showError(msg){el.error.textContent=msg;el.error.classList.add('is-visible')}\r\n  function clearError(){el.error.textContent='';el.error.classList.remove('is-visible')}\r\n\r\n  function simulate(inputs,monthsOverride){\r\n    const months=monthsOverride||inputs.months;\r\n    const start=new Date(inputs.startDate);\r\n    const endExclusive=addMonthsClamped(start,months);\r\n    const firstContributionMonth=new Date(start.getFullYear(),start.getMonth()+1,1,12);\r\n    let date=new Date(start),balance=round2(inputs.amount),invested=round2(inputs.amount),contributionTotal=0;\r\n    let grossTotal=0,taxTotal=0,creditedNetTotal=0,taxDays=0,minRate=Infinity,maxRate=0;\r\n    let pendingGross=0,pendingTax=0;\r\n    const dailyRows=[],monthlyMap=new Map(),chartPoints=[{date:new Date(start),balance,economic:balance}];\r\n    let dayIndex=0;\r\n\r\n    while(date<endExclusive){\r\n      const key=monthKey(date);\r\n      if(!monthlyMap.has(key))monthlyMap.set(key,{key,label:monthLabel(key),days:0,opening:balance,contributions:0,balanceSum:0,gross:0,tax:0,netGenerated:0,creditedNet:0,pendingNet:0,minRate:Infinity,maxRate:0,closing:balance,state:'Pendiente'});\r\n      const month=monthlyMap.get(key);\r\n\r\n      let contribution=0;\r\n      if(inputs.monthly>0&&date>=firstContributionMonth){\r\n        const scheduled=contributionDate(date.getFullYear(),date.getMonth(),inputs.contributionDay);\r\n        if(sameDate(date,scheduled)){\r\n          contribution=round2(inputs.monthly);\r\n          balance=round2(balance+contribution);\r\n          invested=round2(invested+contribution);\r\n          contributionTotal=round2(contributionTotal+contribution);\r\n        }\r\n      }\r\n\r\n      const cutoffBalance=balance;\r\n      const rate=getRate(inputs.account,cutoffBalance);\r\n      const gross=round2(cutoffBalance*dailyRate(rate));\r\n      const taxable=inputs.applyTax&&gross>=CONFIG.taxThresholdDaily;\r\n      const tax=taxable?round2(gross*CONFIG.taxRate):0;\r\n      const net=round2(gross-tax);\r\n      pendingGross=round2(pendingGross+gross);\r\n      pendingTax=round2(pendingTax+tax);\r\n      grossTotal=round2(grossTotal+gross);\r\n      taxTotal=round2(taxTotal+tax);\r\n      if(taxable)taxDays++;\r\n      minRate=Math.min(minRate,rate);maxRate=Math.max(maxRate,rate);\r\n\r\n      month.days++;\r\n      month.contributions=round2(month.contributions+contribution);\r\n      month.balanceSum+=cutoffBalance;\r\n      month.gross=round2(month.gross+gross);\r\n      month.tax=round2(month.tax+tax);\r\n      month.netGenerated=round2(month.netGenerated+net);\r\n      month.minRate=Math.min(month.minRate,rate);month.maxRate=Math.max(month.maxRate,rate);\r\n\r\n      let creditedToday=0;\r\n      if(isLastDay(date)){\r\n        creditedToday=round2(pendingGross-pendingTax);\r\n        balance=round2(balance+creditedToday);\r\n        creditedNetTotal=round2(creditedNetTotal+creditedToday);\r\n        month.creditedNet=creditedToday;\r\n        month.state='Abonado';\r\n        pendingGross=0;pendingTax=0;\r\n      }\r\n      month.closing=balance;\r\n\r\n      dailyRows.push({date:new Date(date),dateYMD:ymd(date),cutoffBalance,contribution,rate,gross,tax,net,creditedToday,closing:balance});\r\n      dayIndex++;\r\n      if(dayIndex===1||dayIndex%14===0||isLastDay(date))chartPoints.push({date:new Date(date),balance,economic:round2(balance+(pendingGross-pendingTax))});\r\n      date=addDays(date,1);\r\n    }\r\n\r\n    const pendingNet=round2(pendingGross-pendingTax);\r\n    const rows=Array.from(monthlyMap.values()).map(m=>{m.average=m.days?m.balanceSum\/m.days:0;if(m.state!=='Abonado'){m.pendingNet=m.netGenerated;m.state='Pendiente'};return m});\r\n    const netGenerated=round2(grossTotal-taxTotal);\r\n    const economicFinal=round2(balance+pendingNet);\r\n    if(!Number.isFinite(minRate))minRate=0;\r\n    chartPoints.push({date:addDays(endExclusive,-1),balance,economic:economicFinal});\r\n    return{inputs:{...inputs,months},start,endExclusive,days:dailyRows.length,invested,contributionTotal,grossTotal,taxTotal,netGenerated,creditedNetTotal,pendingNet,actualBalance:balance,economicFinal,taxDays,minRate,maxRate,monthlyRows:rows,dailyRows,chartPoints};\r\n  }\r\n\r\n  function rateRange(r){return r.minRate===r.maxRate?fmtRate(r.minRate):numFmt.format(r.minRate*100)+'% \u2192 '+numFmt.format(r.maxRate*100)+'% E.A.'}\r\n  function renderChart(report){\r\n    const pts=report.chartPoints.filter((p,i,a)=>i===0||p.date.getTime()!==a[i-1].date.getTime());\r\n    const values=pts.map(p=>p.economic),min=Math.min(...values),max=Math.max(...values),span=Math.max(1,max-min);\r\n    const w=760,h=190,pad=16;\r\n    const coords=pts.map((p,i)=>{const x=pad+(i\/(Math.max(1,pts.length-1)))*(w-pad*2);const y=h-pad-((p.economic-min)\/span)*(h-pad*2);return[x,y]});\r\n    const path=coords.map((c,i)=>(i?'L':'M')+c[0].toFixed(2)+' '+c[1].toFixed(2)).join(' ');\r\n    const area=path+' L '+(w-pad)+' '+(h-pad)+' L '+pad+' '+(h-pad)+' Z';\r\n    el.chart.innerHTML='<svg viewBox=\"0 0 '+w+' '+h+'\" preserveAspectRatio=\"none\" role=\"img\" aria-label=\"Crecimiento proyectado del saldo\"><defs><linearGradient id=\"igDaviFill\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0\" stop-color=\"#0f9f7a\" stop-opacity=\".24\"\/><stop offset=\"1\" stop-color=\"#0f9f7a\" stop-opacity=\"0\"\/><\/linearGradient><\/defs><path d=\"'+area+'\" fill=\"url(#igDaviFill)\"\/><path d=\"'+path+'\" fill=\"none\" stroke=\"#0f9f7a\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>';\r\n  }\r\n\r\n  function horizonHtml(label,r){return '<div class=\"ig-horizon\"><span>'+escapeHtml(label)+'<\/span><strong>'+fmtMoney0(r.netGenerated)+'<\/strong><small>Ganancia neta generada \u00b7 saldo estimado '+fmtMoney0(r.economicFinal)+'<\/small><\/div>'}\r\n  function renderHorizons(inputs){\r\n    const items=[['1 mes',1],['6 meses',6],['1 a\u00f1o',12],[inputs.months+' meses',inputs.months]];const seen=new Set();\r\n    el.horizons.innerHTML=items.filter(x=>!seen.has(x[1])&&seen.add(x[1])).map(x=>horizonHtml(x[0],simulate(inputs,x[1]))).join('');\r\n  }\r\n\r\n  function monthlyRow(m){const state=m.state==='Abonado'?'<span class=\"ig-badge\">Abonado<\/span>':'<span class=\"ig-badge is-coral\">Pendiente<\/span>';return '<tr><td><strong>'+escapeHtml(m.label)+'<\/strong><\/td><td>'+m.days+'<\/td><td class=\"ig-num\">'+fmtMoney0(m.average)+'<\/td><td>'+escapeHtml(rateRange(m))+'<\/td><td class=\"ig-num\">'+fmtMoney0(m.contributions)+'<\/td><td class=\"ig-num\">'+fmtMoney2(m.gross)+'<\/td><td class=\"ig-num\">'+fmtMoney2(m.tax)+'<\/td><td class=\"ig-num\"><strong>'+fmtMoney2(m.netGenerated)+'<\/strong><\/td><td>'+state+'<\/td><td class=\"ig-num\"><strong>'+fmtMoney0(m.closing)+'<\/strong><\/td><\/tr>'}\r\n  function dailyRow(d){return '<tr><td><strong>'+escapeHtml(d.dateYMD)+'<\/strong><\/td><td class=\"ig-num\">'+fmtMoney0(d.cutoffBalance)+'<\/td><td>'+fmtRate(d.rate)+'<\/td><td class=\"ig-num\">'+fmtMoney2(d.gross)+'<\/td><td class=\"ig-num\">'+fmtMoney2(d.tax)+'<\/td><td class=\"ig-num\">'+fmtMoney2(d.net)+'<\/td><td class=\"ig-num\">'+(d.creditedToday?'<strong>'+fmtMoney2(d.creditedToday)+'<\/strong>':'\u2014')+'<\/td><td class=\"ig-num\"><strong>'+fmtMoney0(d.closing)+'<\/strong><\/td><\/tr>'}\r\n  function renderDaily(report){const rows=state.showAllDays?report.dailyRows:report.dailyRows.slice(0,CONFIG.dailyDisplayLimit);el.dailyBody.innerHTML=rows.map(dailyRow).join('');el.loadMore.classList.toggle('is-visible',!state.showAllDays&&report.dailyRows.length>CONFIG.dailyDisplayLimit);el.loadMore.textContent='Ver todos los '+report.dailyRows.length+' d\u00edas'}\r\n\r\n  function render(report){\r\n    state.report=report;state.showAllDays=false;\r\n    el.netGenerated.textContent=fmtMoney2(report.netGenerated);\r\n    el.economicFinal.textContent=fmtMoney2(report.economicFinal);\r\n    el.credited.textContent=fmtMoney2(report.creditedNetTotal);\r\n    el.pending.textContent=fmtMoney2(report.pendingNet);\r\n    el.taxTotal.textContent=fmtMoney2(report.taxTotal);\r\n    el.invested.textContent=fmtMoney2(report.invested);\r\n    el.gross.textContent=fmtMoney2(report.grossTotal);\r\n    el.actualBalance.textContent=fmtMoney2(report.actualBalance);\r\n    el.taxDays.textContent=String(report.taxDays);\r\n    el.rateUsed.textContent='Tasa '+(report.minRate===report.maxRate?numFmt.format(report.maxRate*100)+'%':numFmt.format(report.minRate*100)+'% \u2192 '+numFmt.format(report.maxRate*100)+'%');\r\n    el.minRate.textContent=fmtRate(report.minRate);el.maxRate.textContent=fmtRate(report.maxRate);el.days.textContent=String(report.days);el.contributionTotal.textContent=fmtMoney2(report.contributionTotal);\r\n    el.chartStart.textContent='Inicio: '+fmtMoney0(report.inputs.amount);el.chartEnd.textContent='Final estimado: '+fmtMoney0(report.economicFinal);\r\n    const pendingCopy=report.pendingNet>0?' De ese rendimiento, '+fmtMoney2(report.pendingNet)+' quedar\u00edan pendientes hasta el cierre del mes.':'';\r\n    el.resultSentence.textContent='Con '+fmtMoney0(report.invested)+' aportados durante '+report.days+' d\u00edas, el escenario genera aproximadamente '+fmtMoney2(report.netGenerated)+' netos.'+pendingCopy;\r\n    el.insights.textContent='La simulaci\u00f3n corresponde a un Bolsillo individual. Si tienes varios, calcula cada uno por separado. Cada d\u00eda se tom\u00f3 como referencia el saldo al corte. La tasa cambi\u00f3 entre '+fmtRate(report.minRate)+' y '+fmtRate(report.maxRate)+'. '+(report.taxDays?'La retenci\u00f3n estimada se activ\u00f3 en '+report.taxDays+' d\u00eda(s) porque el inter\u00e9s diario alcanz\u00f3 el umbral de referencia.':'El inter\u00e9s diario no alcanz\u00f3 el umbral estimado de retenci\u00f3n en ninguno de los d\u00edas, o la opci\u00f3n fue desactivada.')+' Los rendimientos de meses cerrados se acreditan al saldo; el \u00faltimo mes parcial queda separado como pendiente.';\r\n    el.monthlyBody.innerHTML=report.monthlyRows.map(monthlyRow).join('');\r\n    renderDaily(report);renderChart(report);renderHorizons(report.inputs);\r\n    el.results.classList.add('is-visible');el.pdfCard.classList.add('is-visible');\r\n    requestAnimationFrame(()=>el.results.scrollIntoView({behavior:'smooth',block:'start'}));\r\n  }\r\n\r\n  function buildUrl(inputs){const p=new URLSearchParams();p.set('monto',String(inputs.amount));p.set('cuenta',inputs.account);p.set('fecha',ymd(inputs.startDate));p.set('meses',String(inputs.months));p.set('aporte',String(inputs.monthly));p.set('dia',inputs.contributionDay);p.set('ret',inputs.applyTax?'1':'0');return location.origin+location.pathname+'?'+p.toString()}\r\n  function setFromUrl(){const p=new URLSearchParams(location.search);if(!p.has('monto'))return;el.amount.value=formatInput(p.get('monto'));if(['traditional','payroll'].includes(p.get('cuenta')))el.account.value=p.get('cuenta');if(\/^\\d{4}-\\d{2}-\\d{2}$\/.test(p.get('fecha')||''))el.startDate.value=p.get('fecha');if(['1','3','6','12','24','36','60','120'].includes(p.get('meses')))el.months.value=p.get('meses');if(p.has('aporte'))el.monthly.value=formatInput(p.get('aporte'));if(['1','5','10','15','20','25','last'].includes(p.get('dia')))el.contributionDay.value=p.get('dia');el.tax.checked=p.get('ret')!=='0';setTimeout(()=>el.form.requestSubmit(),50)}\r\n\r\n  async function copyShare(){const report=state.report||calculate();if(!report)return;const url=buildUrl(report.inputs);try{await navigator.clipboard.writeText(url);el.toast.textContent='Enlace copiado';el.toast.classList.add('is-visible');setTimeout(()=>el.toast.classList.remove('is-visible'),2200)}catch(e){el.toast.textContent='Copia la URL desde el navegador';el.toast.classList.add('is-visible');setTimeout(()=>el.toast.classList.remove('is-visible'),3000)}}\r\n\r\n  function ensureJsPdf(){if(window.jspdf&&window.jspdf.jsPDF)return Promise.resolve(window.jspdf.jsPDF);return new Promise((resolve,reject)=>{const existing=document.querySelector('script[data-ig-davi-jspdf=\"1\"]');if(existing){existing.addEventListener('load',()=>window.jspdf&&window.jspdf.jsPDF?resolve(window.jspdf.jsPDF):reject(new Error('jsPDF no disponible')),{once:true});existing.addEventListener('error',reject,{once:true});return}const s=document.createElement('script');s.src='https:\/\/cdn.jsdelivr.net\/npm\/jspdf@2.5.1\/dist\/jspdf.umd.min.js';s.async=true;s.dataset.igDaviJspdf='1';s.onload=()=>window.jspdf&&window.jspdf.jsPDF?resolve(window.jspdf.jsPDF):reject(new Error('jsPDF no disponible'));s.onerror=reject;document.head.appendChild(s)})}\r\n  function blobToDataUrl(blob){return new Promise((resolve,reject)=>{const r=new FileReader();r.onload=()=>resolve(r.result);r.onerror=reject;r.readAsDataURL(blob)})}\r\n  async function getLogo(){if(state.logoData)return state.logoData;const res=await fetch(CONFIG.logoUrl,{cache:'force-cache',credentials:'same-origin'});if(!res.ok)throw new Error('Logo no disponible');state.logoData=await blobToDataUrl(await res.blob());return state.logoData}\r\n  function cleanText(v){return String(v==null?'':v).replace(\/\\s+\/g,' ').trim()}\r\n\r\n  async function exportPdf(report){\r\n    const jsPDF=await ensureJsPdf();const doc=new jsPDF({unit:'mm',format:'a4'});const margin=16,pageW=210,pageH=297,usable=pageW-margin*2;let y=34,logo=null;try{logo=await getLogo()}catch(e){}\r\n    function header(){if(logo){try{doc.addImage(logo,'PNG',margin,10,31,12.4)}catch(e){logo=null}}if(!logo){doc.setFillColor(15,159,122);doc.roundedRect(margin,10,12,12,2,2,'F');doc.setTextColor(255,255,255);doc.setFont('helvetica','bold');doc.setFontSize(8);doc.text('IG',margin+3.2,17.6)}doc.setTextColor(23,51,47);doc.setFont('helvetica','bold');doc.setFontSize(10);doc.text('InversionesGuru Colombia',logo?margin+36:margin+16,15);doc.setTextColor(91,111,104);doc.setFont('helvetica','normal');doc.setFontSize(7.5);doc.text(CONFIG.reportUrl,logo?margin+36:margin+16,20);doc.setDrawColor(220,231,226);doc.line(margin,27,pageW-margin,27);y=35}\r\n    function newPage(h){if(y+h<=278)return;doc.addPage();header()}\r\n    function section(title){newPage(13);doc.setFillColor(255,240,234);doc.roundedRect(margin,y,usable,8,2,2,'F');doc.setTextColor(200,79,52);doc.setFont('helvetica','bold');doc.setFontSize(10);doc.text(cleanText(title),margin+3,y+5.4);y+=13}\r\n    function kv(rows){rows.forEach(r=>{newPage(9);doc.setFontSize(8.5);doc.setFont('helvetica','normal');doc.setTextColor(91,111,104);doc.text(cleanText(r[0]),margin,y);doc.setFont('helvetica','bold');doc.setTextColor(23,51,47);doc.text(cleanText(r[1]),pageW-margin,y,{align:'right'});y+=7});y+=2}\r\n    function table(rows){const heads=['Mes','Promedio','Tasa','Neto','Estado'];const widths=[34,40,37,38,29];newPage(15);let x=margin;doc.setFillColor(23,51,47);doc.rect(margin,y,usable,8,'F');doc.setTextColor(255,255,255);doc.setFont('helvetica','bold');doc.setFontSize(6.7);heads.forEach((h,i)=>{doc.text(h,x+2,y+5.2);x+=widths[i]});y+=8;rows.forEach((r,i)=>{newPage(8);if(i%2===0){doc.setFillColor(244,250,247);doc.rect(margin,y,usable,7.2,'F')}doc.setTextColor(36,68,62);doc.setFont('helvetica','normal');doc.setFontSize(6.5);const cells=[r.label,fmtMoney0(r.average),rateRange(r),fmtMoney2(r.netGenerated),r.state];x=margin;cells.forEach((c,j)=>{doc.text(doc.splitTextToSize(cleanText(c),widths[j]-3),x+2,y+4.7);x+=widths[j]});y+=7.2});y+=4}\r\n    header();doc.setTextColor(23,51,47);doc.setFont('helvetica','bold');doc.setFontSize(18);doc.text('Simulaci\u00f3n de Bolsillos Davivienda',margin,y);y+=9;doc.setFillColor(23,51,47);doc.roundedRect(margin,y,usable,30,3,3,'F');doc.setTextColor(255,255,255);doc.setFontSize(8);doc.text('RENDIMIENTO NETO ESTIMADO GENERADO',margin+5,y+7);doc.setFontSize(21);doc.text(fmtMoney2(report.netGenerated),margin+5,y+18);doc.setFontSize(8);doc.text('Saldo estimado incluyendo pendiente: '+fmtMoney2(report.economicFinal),margin+5,y+25);y+=38;\r\n    section('Datos del escenario');kv([['Saldo inicial',fmtMoney2(report.inputs.amount)],['Tipo de cuenta',accountLabel(report.inputs.account)],['Fecha inicial',ymd(report.inputs.startDate)],['Plazo',report.inputs.months+' meses'],['Aporte mensual',fmtMoney2(report.inputs.monthly)],['D\u00eda del aporte',report.inputs.contributionDay==='last'?'\u00daltimo d\u00eda del mes':'D\u00eda '+report.inputs.contributionDay],['Retenci\u00f3n estimada',report.inputs.applyTax?'4% cuando el inter\u00e9s diario alcanza '+fmtMoney2(CONFIG.taxThresholdDaily):'Desactivada']]);\r\n    section('Resumen');kv([['Dinero aportado',fmtMoney2(report.invested)],['Rendimiento bruto',fmtMoney2(report.grossTotal)],['Retenci\u00f3n estimada',fmtMoney2(report.taxTotal)],['Rendimiento neto generado',fmtMoney2(report.netGenerated)],['Inter\u00e9s ya abonado',fmtMoney2(report.creditedNetTotal)],['Pendiente de cierre mensual',fmtMoney2(report.pendingNet)],['Saldo ya abonado en Bolsillos',fmtMoney2(report.actualBalance)],['Saldo estimado incluyendo pendiente',fmtMoney2(report.economicFinal)],['Tasa usada',report.minRate===report.maxRate?fmtRate(report.maxRate):fmtRate(report.minRate)+' a '+fmtRate(report.maxRate)]]);\r\n    section('Detalle mensual');table(report.monthlyRows);\r\n    section('Metodolog\u00eda');const text='La proyecci\u00f3n calcula un Bolsillo individual cada d\u00eda sobre su saldo al corte. La tasa se determina seg\u00fan el saldo diario y el grupo de cuenta. El rendimiento diario se acumula y se acredita al \u00faltimo d\u00eda del mes. Si la simulaci\u00f3n termina antes del cierre mensual, ese valor se muestra como pendiente. La retenci\u00f3n es una estimaci\u00f3n educativa basada en el umbral de 0,055 UVT de inter\u00e9s diario y la tarifa general del 4%; la liquidaci\u00f3n real corresponde a Davivienda y a las condiciones tributarias del titular.';doc.setTextColor(91,111,104);doc.setFont('helvetica','normal');doc.setFontSize(8);doc.text(doc.splitTextToSize(text,usable),margin,y);\r\n    const pages=doc.getNumberOfPages();for(let i=1;i<=pages;i++){doc.setPage(i);doc.setTextColor(91,111,104);doc.setFontSize(7);doc.text('P\u00e1gina '+i+' de '+pages+' \u00b7 '+CONFIG.reportUrl,pageW-margin,pageH-8,{align:'right'})}doc.save(CONFIG.pdfName)\r\n  }\r\n\r\n  function printableHtml(report){const rows=report.monthlyRows.map(r=>'<tr><td>'+escapeHtml(r.label)+'<\/td><td>'+fmtMoney0(r.average)+'<\/td><td>'+escapeHtml(rateRange(r))+'<\/td><td>'+fmtMoney2(r.netGenerated)+'<\/td><td>'+escapeHtml(r.state)+'<\/td><\/tr>').join('');return '<!doctype html><html lang=\"es\"><head><meta charset=\"utf-8\"><title>Simulaci\u00f3n Bolsillos Davivienda<\/title><style>body{font-family:Arial,sans-serif;color:#17332f;margin:32px}.top{display:flex;align-items:center;gap:14px;border-bottom:1px solid #dce8e3;padding-bottom:14px}.top img{width:125px;height:auto}.hero{margin:20px 0;background:#17332f;color:#fff;padding:20px;border-radius:12px}.hero small{display:block;opacity:.75}.hero strong{display:block;font-size:32px;margin-top:7px}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.box{border:1px solid #dce8e3;border-radius:10px;padding:10px}.box span{display:block;color:#60756e;font-size:11px}.box strong{font-size:18px}table{width:100%;border-collapse:collapse;margin-top:18px;font-size:11px}th{background:#17332f;color:#fff;text-align:left;padding:8px}td{border-bottom:1px solid #dce8e3;padding:8px}@media print{button{display:none}}<\/style><\/head><body><div class=\"top\"><img decoding=\"async\" src=\"'+CONFIG.logoUrl+'\" alt=\"InversionesGuru\"><div><b>InversionesGuru Colombia<\/b><div>'+CONFIG.reportUrl+'<\/div><\/div><\/div><h1>Simulaci\u00f3n de Bolsillos Davivienda<\/h1><div class=\"hero\"><small>RENDIMIENTO NETO ESTIMADO GENERADO<\/small><strong>'+fmtMoney2(report.netGenerated)+'<\/strong><div>Saldo estimado incluyendo pendiente: '+fmtMoney2(report.economicFinal)+'<\/div><\/div><div class=\"grid\"><div class=\"box\"><span>Tu dinero aportado<\/span><strong>'+fmtMoney2(report.invested)+'<\/strong><\/div><div class=\"box\"><span>Ya abonado<\/span><strong>'+fmtMoney2(report.creditedNetTotal)+'<\/strong><\/div><div class=\"box\"><span>Pendiente<\/span><strong>'+fmtMoney2(report.pendingNet)+'<\/strong><\/div><div class=\"box\"><span>Retenci\u00f3n estimada<\/span><strong>'+fmtMoney2(report.taxTotal)+'<\/strong><\/div><\/div><p><b>Tipo de cuenta:<\/b> '+escapeHtml(accountLabel(report.inputs.account))+' \u00b7 <b>Plazo:<\/b> '+report.inputs.months+' meses.<\/p><table><thead><tr><th>Mes<\/th><th>Saldo promedio<\/th><th>Tasa<\/th><th>Neto generado<\/th><th>Estado<\/th><\/tr><\/thead><tbody>'+rows+'<\/tbody><\/table><p>Simulaci\u00f3n educativa. Verifica las condiciones oficiales vigentes en Davivienda.<\/p><script>window.onload=function(){setTimeout(function(){window.print()},300)}<\\\/script><\/body><\/html>'}\r\n  function printReport(report){const w=window.open('','_blank','noopener,noreferrer,width=980,height=720');if(!w)throw new Error('Ventana emergente bloqueada');w.document.open();w.document.write(printableHtml(report));w.document.close()}\r\n\r\n  function calculate(){clearError();try{const inputs=validate(getInputs());const report=simulate(inputs);render(report);history.replaceState(null,'',buildUrl(inputs));return report}catch(e){showError(e.message||'No fue posible calcular. Revisa los datos ingresados.');return null}}\r\n\r\n  bindMoney(el.amount);bindMoney(el.monthly);\r\n  el.form.addEventListener('submit',e=>{e.preventDefault();calculate()});\r\n  el.reset.addEventListener('click',()=>{clearError();el.amount.value='10.000.000';el.account.value='payroll';el.startDate.value=todayYmd();el.months.value='12';el.monthly.value='500.000';el.contributionDay.value='15';el.tax.checked=true;state.report=null;state.showAllDays=false;el.results.classList.remove('is-visible');el.pdfCard.classList.remove('is-visible');history.replaceState(null,'',location.pathname);root.scrollIntoView({behavior:'smooth',block:'start'})});\r\n  el.share.addEventListener('click',copyShare);\r\n  el.loadMore.addEventListener('click',()=>{if(!state.report)return;state.showAllDays=true;renderDaily(state.report)});\r\n  el.pdf.addEventListener('click',async()=>{const report=state.report||calculate();if(!report)return;const old=el.pdf.textContent;el.pdf.disabled=true;el.pdf.textContent='Generando PDF...';el.pdfStatus.textContent='Preparando reporte y logo oficial.';try{await exportPdf(report);el.pdfStatus.textContent='PDF generado correctamente con el logo de InversionesGuru.'}catch(e){try{printReport(report);el.pdfStatus.textContent='No fue posible usar jsPDF. Se abri\u00f3 la vista para guardar como PDF.'}catch(f){el.pdfStatus.textContent='No se pudo generar el PDF. Revisa bloqueadores o intenta de nuevo.'}}finally{el.pdf.disabled=false;el.pdf.textContent=old}});\r\n  el.print.addEventListener('click',()=>{const report=state.report||calculate();if(!report)return;try{printReport(report)}catch(e){showError('No se pudo abrir la vista de impresi\u00f3n. Revisa el bloqueo de ventanas emergentes.')}});\r\n\r\n  function initReveal(){const items=[...root.querySelectorAll('.ig-reveal')];if(!('IntersectionObserver'in window)){items.forEach(x=>x.classList.add('is-visible'));return}const obs=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting){e.target.classList.add('is-visible');obs.unobserve(e.target)}}),{threshold:.1});items.forEach(x=>obs.observe(x))}\r\n  if(!el.startDate.value)el.startDate.value=todayYmd();\r\n  initReveal();setFromUrl();\r\n})();\r\n<\/script>\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>\u25cf Bolsillos Davivienda Par\u00e1metros revisados 10\/08\/2026 Calcula cu\u00e1nto pueden rendir tus Bolsillos Davivienda Descubre cu\u00e1nto podr\u00eda generar un Bolsillo Davivienda seg\u00fan tu saldo, tipo de cuenta y tiempo de ahorro. Ver\u00e1s por separado la ganancia estimada, lo que ya estar\u00eda abonado y lo que a\u00fan depender\u00eda del cierre mensual. 15Hasta 15 Bolsillos por cuenta $0Sin&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5813,"template":"elementor_header_footer","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-5880","herramientas","type-herramientas","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5880","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":26,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5880\/revisions"}],"predecessor-version":[{"id":8827,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/herramientas\/5880\/revisions\/8827"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media\/5813"}],"wp:attachment":[{"href":"https:\/\/inversionesguru.com\/co\/wp-json\/wp\/v2\/media?parent=5880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}