{"id":988467,"date":"2026-05-06T12:39:03","date_gmt":"2026-05-06T17:39:03","guid":{"rendered":"https:\/\/cgestiona.com\/?page_id=988467"},"modified":"2026-05-06T12:41:25","modified_gmt":"2026-05-06T17:41:25","slug":"tipo-de-cambio","status":"publish","type":"page","link":"https:\/\/cgestiona.com\/en\/tipo-de-cambio\/","title":{"rendered":"Exchange rate"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"988467\" class=\"elementor elementor-988467\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69b39ce3 e-con-full e-flex e-con e-parent\" data-id=\"69b39ce3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4db2097 e-con-full e-flex e-con e-child\" data-id=\"4db2097\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-74feccb e-con-full e-flex e-con e-child\" data-id=\"74feccb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-30c1201 e-con-full e-flex e-con e-child\" data-id=\"30c1201\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c554b83 e-con-full e-flex e-con e-child\" data-id=\"c554b83\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-3bb085a e-con-full e-flex e-con e-child\" data-id=\"3bb085a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-676e621 elementor-widget elementor-widget-heading\" data-id=\"676e621\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Tipo de Cambio<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"vamtam-has-theme-widget-styles elementor-element elementor-element-d781f8c elementor-widget elementor-widget-text-editor\" data-id=\"d781f8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Descubre el tipo de cambio actualizado al instante. Convierte divisas <br \/>f\u00e1cilmente y toma mejores decisiones financieras con informaci\u00f3n confiable.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-62ebf61 e-con-full e-flex e-con e-child\" data-id=\"62ebf61\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1366d06 e-con-full e-flex e-con e-child\" data-id=\"1366d06\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a7b2fa0 elementor-widget elementor-widget-html\" data-id=\"a7b2fa0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     WIDGET TIPO DE CAMBIO PER\u00da \u2014 v10 (Fluid & Flexbox Edition)\r\n     ============================================================ -->\r\n\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n\/* ===== Reset interno fuerte ===== *\/\r\n#tcw7, #tcw7 *, #tcw7 *::before, #tcw7 *::after { box-sizing: border-box; }\r\n#tcw7 *:not(input) {\r\n  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\r\n  margin: 0; padding: 0; line-height: 1.4;\r\n}\r\n#tcw7 button {\r\n  background: none; border: none; padding: 0; margin: 0;\r\n  font-family: inherit; cursor: pointer; color: inherit;\r\n  text-shadow: none; box-shadow: none; outline: none;\r\n  -webkit-appearance: none; appearance: none; border-radius: 0;\r\n}\r\n#tcw7 button:hover, #tcw7 button:focus, #tcw7 button:active {\r\n  background: none; color: inherit; box-shadow: none;\r\n  text-shadow: none; outline: none;\r\n}\r\n#tcw7 input { font-family: 'JetBrains Mono', monospace; }\r\n#tcw7 img { display: block; max-width: 100%; height: auto; }\r\n\r\n\/* ===== Variables ===== *\/\r\n#tcw7 {\r\n  --tc-primary: #0891b2;\r\n  --tc-primary-dark: #0e7490;\r\n  --tc-primary-light: #cffafe;\r\n  --tc-primary-bg: #ecfeff;\r\n  --tc-text: #0f172a;\r\n  --tc-text-soft: #475569;\r\n  --tc-text-mute: #64748b;\r\n  --tc-text-faint: #94a3b8;\r\n  --tc-border: #e2e8f0;\r\n  --tc-border-soft: #f1f5f9;\r\n  --tc-bg: #ffffff;\r\n  --tc-bg-soft: #f8fafc;\r\n  --tc-success: #16a34a;\r\n  --tc-success-bg: #f0fdf4;\r\n  --tc-success-border: #bbf7d0;\r\n  --tc-error: #dc2626;\r\n  --tc-error-bg: #fef2f2;\r\n  --tc-error-border: #fecaca;\r\n\r\n  display: block;\r\n  background: var(--tc-bg);\r\n  border: 1px solid var(--tc-border);\r\n  border-radius: 24px;\r\n  padding: 28px;\r\n  width: 100%;\r\n  max-width: 1280px;\r\n  margin: 0 auto;\r\n  box-shadow: 0 6px 32px rgba(15, 23, 42, 0.06);\r\n  color: var(--tc-text);\r\n  font-family: 'Inter', sans-serif;\r\n}\r\n\r\n\/* ===== HEADER ===== *\/\r\n.tcw7-topbar {\r\n  display: flex; justify-content: space-between; align-items: center;\r\n  gap: 16px; flex-wrap: wrap;\r\n  padding-bottom: 18px;\r\n  border-bottom: 1px solid var(--tc-border-soft);\r\n  margin-bottom: 22px;\r\n}\r\n\r\n.tcw7-logo {\r\n  display: inline-flex; align-items: center;\r\n  flex-shrink: 0;\r\n}\r\n.tcw7-logo-img {\r\n  height: 32px;\r\n  width: auto;\r\n  display: block;\r\n  object-fit: contain;\r\n}\r\n\r\n.tcw7-topbar-right {\r\n  display: flex; flex-direction: column; align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.tcw7-status {\r\n  display: inline-flex; align-items: center; gap: 8px;\r\n  background: var(--tc-success-bg); border: 1px solid var(--tc-success-border);\r\n  border-radius: 30px; padding: 8px 16px;\r\n  font-size: 13px; font-weight: 600; color: var(--tc-success);\r\n  white-space: nowrap; transition: all 0.2s;\r\n}\r\n.tcw7-status:hover { background: #dcfce7; transform: translateY(-1px); }\r\n.tcw7-status.error { background: var(--tc-error-bg); border-color: var(--tc-error-border); color: var(--tc-error); }\r\n.tcw7-status.loading { background: #fefce8; border-color: #fde68a; color: #a16207; }\r\n.tcw7-dot {\r\n  width: 8px; height: 8px; border-radius: 50%; background: currentColor;\r\n  animation: tcw7-pulse 2s ease-in-out infinite; flex-shrink: 0;\r\n}\r\n.tcw7-status-icon { display: inline-flex; align-items: center; gap: 1px; margin-left: 4px; }\r\n.tcw7-status-icon span { display: inline-block; width: 3px; background: currentColor; border-radius: 1px; }\r\n.tcw7-status-icon span:nth-child(1) { height: 5px; }\r\n.tcw7-status-icon span:nth-child(2) { height: 8px; }\r\n.tcw7-status-icon span:nth-child(3) { height: 11px; }\r\n@keyframes tcw7-pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }\r\n\r\n.tcw7-date-info {\r\n  display: flex; align-items: center; gap: 8px;\r\n  font-size: 13px; color: var(--tc-text-soft); font-weight: 500;\r\n  white-space: nowrap;\r\n}\r\n.tcw7-info-icon {\r\n  width: 16px; height: 16px; border-radius: 50%;\r\n  border: 1px solid var(--tc-text-faint); color: var(--tc-text-faint);\r\n  display: inline-flex; align-items: center; justify-content: center;\r\n  font-size: 10px; font-weight: 700; font-style: italic;\r\n}\r\n\r\n\/* ===== Brand row ===== *\/\r\n.tcw7-brand-row {\r\n  display: flex; justify-content: space-between; align-items: center;\r\n  gap: 20px; flex-wrap: wrap;\r\n  margin-bottom: 26px;\r\n}\r\n.tcw7-brand {\r\n  display: flex; align-items: center; gap: 16px;\r\n  min-width: 0; flex: 1;\r\n}\r\n.tcw7-flag-pe {\r\n  width: 56px; height: 56px; border-radius: 50%;\r\n  background: linear-gradient(to right, #d91023 33%, #fff 33%, #fff 66%, #d91023 66%);\r\n  border: 1px solid var(--tc-border); flex-shrink: 0;\r\n  box-shadow: 0 2px 6px rgba(0,0,0,0.06);\r\n}\r\n.tcw7-titles { min-width: 0; }\r\n.tcw7-title {\r\n  font-size: clamp(22px, 3vw, 32px); font-weight: 700;\r\n  color: var(--tc-text); letter-spacing: -0.8px; line-height: 1.1;\r\n}\r\n.tcw7-title em { font-style: normal; color: var(--tc-primary); }\r\n.tcw7-subtitle {\r\n  font-size: 14px; color: var(--tc-text-mute);\r\n  margin-top: 4px; font-weight: 500;\r\n}\r\n\r\n\/* ====== SELECTOR DE DIVISA ====== *\/\r\n.tcw7-currency-block {\r\n  display: flex; flex-direction: column;\r\n  gap: 6px; flex-shrink: 0;\r\n}\r\n.tcw7-currency-label {\r\n  font-size: 11px; font-weight: 700; letter-spacing: 0.8px;\r\n  color: var(--tc-text-mute); text-transform: uppercase;\r\n  display: flex; align-items: center; gap: 6px;\r\n  padding-left: 4px;\r\n}\r\n.tcw7-currency-label::before {\r\n  content: ''; display: inline-block;\r\n  width: 14px; height: 14px;\r\n  background: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'\/><line x1='2' y1='12' x2='22' y2='12'\/><path d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'\/><\/svg>\") center \/ contain no-repeat;\r\n}\r\n.tcw7-currency-switcher {\r\n  display: inline-flex;\r\n  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\r\n  border: 2px solid var(--tc-border);\r\n  border-radius: 14px;\r\n  padding: 5px;\r\n  gap: 4px;\r\n  position: relative;\r\n  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);\r\n}\r\n.tcw7-curr-btn {\r\n  display: inline-flex; align-items: center; gap: 10px;\r\n  padding: 10px 18px;\r\n  border-radius: 10px;\r\n  font-size: 14px; font-weight: 700;\r\n  color: var(--tc-text-soft);\r\n  transition: all 0.2s ease;\r\n  position: relative;\r\n  letter-spacing: 0.3px;\r\n}\r\n.tcw7-curr-btn:hover {\r\n  color: var(--tc-text);\r\n  background: rgba(255,255,255,0.6);\r\n}\r\n.tcw7-curr-btn.active {\r\n  background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);\r\n  color: white;\r\n  box-shadow: 0 4px 12px rgba(8, 145, 178, 0.3), 0 1px 2px rgba(8, 145, 178, 0.2);\r\n  transform: translateY(-1px);\r\n}\r\n.tcw7-curr-btn.active::after {\r\n  content: '';\r\n  position: absolute;\r\n  bottom: -7px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 6px; height: 6px;\r\n  background: var(--tc-primary);\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 3px var(--tc-bg);\r\n}\r\n.tcw7-curr-flag {\r\n  width: 24px; height: 18px; border-radius: 3px;\r\n  background-size: cover; background-position: center;\r\n  flex-shrink: 0;\r\n  border: 1px solid rgba(255,255,255,0.4);\r\n  box-shadow: 0 1px 2px rgba(0,0,0,0.1);\r\n}\r\n.tcw7-curr-flag.usd {\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 60 30'><rect width='60' height='30' fill='%23b22234'\/><path d='M0,3.5h60M0,8.5h60M0,13.5h60M0,18.5h60M0,23.5h60M0,28.5h60' stroke='white' stroke-width='2.3'\/><rect width='24' height='16' fill='%233c3b6e'\/><\/svg>\");\r\n}\r\n.tcw7-curr-flag.eur {\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 60 40'><rect width='60' height='40' fill='%23003399'\/><g fill='%23ffcc00'><circle cx='30' cy='20' r='1.6' transform='translate(0,-10)'\/><circle cx='30' cy='20' r='1.6' transform='translate(8.66,-5)'\/><circle cx='30' cy='20' r='1.6' transform='translate(8.66,5)'\/><circle cx='30' cy='20' r='1.6' transform='translate(0,10)'\/><circle cx='30' cy='20' r='1.6' transform='translate(-8.66,5)'\/><circle cx='30' cy='20' r='1.6' transform='translate(-8.66,-5)'\/><circle cx='30' cy='20' r='1.6' transform='translate(-10,0)'\/><circle cx='30' cy='20' r='1.6' transform='translate(10,0)'\/><circle cx='30' cy='20' r='1.6' transform='translate(-5,8.66)'\/><circle cx='30' cy='20' r='1.6' transform='translate(5,8.66)'\/><circle cx='30' cy='20' r='1.6' transform='translate(-5,-8.66)'\/><circle cx='30' cy='20' r='1.6' transform='translate(5,-8.66)'\/><\/g><\/svg>\");\r\n}\r\n.tcw7-curr-symbol {\r\n  font-size: 16px; font-weight: 800;\r\n  font-family: 'Inter', sans-serif;\r\n}\r\n\r\n\/* ===== Error banner ===== *\/\r\n.tcw7-error-banner {\r\n  background: var(--tc-error-bg); border: 1px solid var(--tc-error-border);\r\n  border-radius: 12px; padding: 12px 16px;\r\n  font-size: 13px; color: var(--tc-error);\r\n  margin-bottom: 18px; display: none; font-weight: 500;\r\n}\r\n.tcw7-error-banner.show { display: block; }\r\n\r\n\/* ===== Cards (Ajustadas con Auto-fit y m\u00e1s aire) ===== *\/\r\n.tcw7-cards {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n  gap: 20px; \r\n  margin-bottom: 50px !important; \/* <--- M\u00e1s separaci\u00f3n entre la fila de arriba y la de abajo *\/\r\n}\r\n.tcw7-card {\r\n  position: relative; background: var(--tc-bg);\r\n  border: 2px solid var(--tc-border); border-radius: 18px;\r\n  padding: 24px 28px !important; \/* <--- M\u00e1s padding interno para despegar los textos del borde *\/\r\n  cursor: pointer; transition: all 0.2s ease;\r\n  display: flex;\r\n  flex-direction: column;\r\n  justify-content: space-between;\r\n}\r\n.tcw7-card:hover {\r\n  border-color: var(--tc-primary-light);\r\n  transform: translateY(-2px);\r\n  box-shadow: 0 8px 16px rgba(8, 145, 178, 0.08);\r\n}\r\n.tcw7-card.selected {\r\n  border-color: var(--tc-primary);\r\n  background: linear-gradient(180deg, #ffffff 0%, #f0fdff 100%);\r\n  box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.1);\r\n}\r\n.tcw7-card.selected::after {\r\n  content: ''; position: absolute; bottom: -12px; left: 50%;\r\n  transform: translateX(-50%);\r\n  width: 26px; height: 26px; border-radius: 50%;\r\n  background: var(--tc-primary);\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'\/><\/svg>\");\r\n  background-repeat: no-repeat; background-position: center;\r\n  box-shadow: 0 2px 8px rgba(8, 145, 178, 0.4);\r\n  border: 3px solid white;\r\n}\r\n.tcw7-card.loading { opacity: 0.5; pointer-events: none; background: var(--tc-bg-soft); }\r\n\r\n.tcw7-card-head {\r\n  display: flex; align-items: center; justify-content: space-between;\r\n  gap: 8px; margin-bottom: 16px;\r\n}\r\n.tcw7-card-name {\r\n  display: flex; align-items: center; gap: 8px;\r\n  font-size: 16px; font-weight: 600; color: var(--tc-text);\r\n  letter-spacing: -0.3px; min-width: 0;\r\n}\r\n.tcw7-card-icon {\r\n  width: 24px; height: 24px; border-radius: 6px;\r\n  display: inline-flex; align-items: center; justify-content: center;\r\n  flex-shrink: 0; font-size: 0;\r\n}\r\n.tcw7-card-icon.google {\r\n  background: white; border: 1px solid #e5e7eb;\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'><path fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'\/><path fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'\/><path fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z'\/><path fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'\/><\/svg>\");\r\n  background-size: 16px 16px; background-position: center; background-repeat: no-repeat;\r\n}\r\n.tcw7-card-icon.sunat {\r\n  background: #c41e3a;\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18'\/><path d='M5 21V7l8-4v18'\/><path d='M19 21V11l-6-4'\/><\/svg>\");\r\n  background-size: 14px 14px; background-position: center; background-repeat: no-repeat;\r\n}\r\n.tcw7-card-icon.sbs {\r\n  background: #0891b2;\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'\/><path d='M8 14s1.5 2 4 2 4-2 4-2'\/><path d='M9 9h.01'\/><path d='M15 9h.01'\/><\/svg>\");\r\n  background-size: 14px 14px; background-position: center; background-repeat: no-repeat;\r\n}\r\n.tcw7-card-icon.cambista {\r\n  background: #475569;\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'\/><circle cx='12' cy='7' r='4'\/><\/svg>\");\r\n  background-size: 14px 14px; background-position: center; background-repeat: no-repeat;\r\n}\r\n.tcw7-card-icon.calle {\r\n  background: #ea580c;\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'\/><circle cx='12' cy='10' r='3'\/><\/svg>\");\r\n  background-size: 14px 14px; background-position: center; background-repeat: no-repeat;\r\n}\r\n\r\n.tcw7-badge {\r\n  font-size: 10px; font-weight: 700; letter-spacing: 0.5px;\r\n  padding: 3px 10px; border-radius: 20px; text-transform: uppercase; flex-shrink: 0;\r\n}\r\n.tcw7-badge.oficial { background: var(--tc-primary-light); color: var(--tc-primary-dark); }\r\n.tcw7-badge.informal { background: #f1f5f9; color: var(--tc-text-soft); }\r\n\r\n.tcw7-rate-block { margin-top: 4px; }\r\n.tcw7-rate-label {\r\n  font-size: 11px; color: var(--tc-text-mute); font-weight: 600;\r\n  text-transform: uppercase; letter-spacing: 0.6px;\r\n}\r\n.tcw7-rate-value-compra {\r\n  font-size: 28px; font-weight: 700; color: var(--tc-text);\r\n  letter-spacing: -1px; line-height: 1.1; margin: 4px 0 14px;\r\n}\r\n.tcw7-rate-value-venta {\r\n  font-size: 28px; font-weight: 700; color: var(--tc-primary);\r\n  letter-spacing: -1px; line-height: 1.1; margin: 4px 0 0;\r\n}\r\n.tcw7-spread {\r\n  font-size: 12px; color: var(--tc-text-mute);\r\n  margin-top: 16px; padding-top: 12px;\r\n  border-top: 1px solid var(--tc-border-soft);\r\n  font-weight: 500;\r\n  display: flex; align-items: center; gap: 6px;\r\n}\r\n.tcw7-spread .tcw7-info-icon { width: 14px; height: 14px; font-size: 9px; }\r\n\r\n\/* ===== Layout principal (Ajustado con Auto-fit) ===== *\/\r\n.tcw7-main-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));\r\n  gap: 30px; \r\n  margin-bottom: 32px;\r\n}\r\n\r\n.tcw7-calc-panel, .tcw7-chart-panel {\r\n  background: var(--tc-bg);\r\n  border: 1px solid var(--tc-border);\r\n  border-radius: 18px;\r\n  padding: 30px; \r\n}\r\n.tcw7-calc-tabs {\r\n  display: inline-flex; \r\n  flex-wrap: wrap;\r\n  background: var(--tc-bg-soft);\r\n  border: 1px solid var(--tc-border); \r\n  border-radius: 12px;\r\n  padding: 8px; \r\n  gap: 8px; \r\n  margin-bottom: 24px;\r\n  max-width: 100%;\r\n}\r\n.tcw7-tab {\r\n  padding: 10px 20px; \r\n  border-radius: 8px;\r\n  font-size: 14px; font-weight: 600;\r\n  color: var(--tc-text-mute); transition: all 0.2s;\r\n  white-space: nowrap;\r\n}\r\n.tcw7-tab.active {\r\n  background: var(--tc-primary); color: white;\r\n  box-shadow: 0 2px 6px rgba(8, 145, 178, 0.25);\r\n}\r\n\r\n\/* ===== Calculadora (Ajustada con Flexbox) ===== *\/\r\n.tcw7-calc-row {\r\n  display: flex;\r\n  flex-wrap: wrap; \r\n  gap: 24px; \r\n  align-items: center;\r\n  justify-content: space-between;\r\n}\r\n\r\n.tcw7-input-group { \r\n  flex: 1 1 220px; \r\n  min-width: 0; \r\n}\r\n.tcw7-input-label {\r\n  font-size: 13px; font-weight: 500; color: var(--tc-text-soft);\r\n  margin-bottom: 8px;\r\n}\r\n.tcw7-input-wrap { display: flex; gap: 8px; }\r\n.tcw7-input-box {\r\n  flex: 1; min-width: 0;\r\n  background: var(--tc-bg); border: 1.5px solid var(--tc-border);\r\n  border-radius: 10px; padding: 12px 16px;\r\n  display: flex; align-items: center;\r\n  transition: all 0.2s;\r\n}\r\n.tcw7-input-box:focus-within {\r\n  border-color: var(--tc-primary);\r\n  box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.1);\r\n}\r\n.tcw7-input {\r\n  flex: 1; border: none; outline: none; background: transparent;\r\n  font-size: 22px; font-weight: 700; color: var(--tc-text);\r\n  width: 100%; min-width: 0; letter-spacing: -0.5px;\r\n  -moz-appearance: textfield;\r\n}\r\n.tcw7-input::-webkit-outer-spin-button,\r\n.tcw7-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }\r\n\r\n.tcw7-currency-pill {\r\n  display: flex; align-items: center; gap: 8px;\r\n  background: var(--tc-bg); border: 1.5px solid var(--tc-border);\r\n  border-radius: 10px; padding: 12px 14px;\r\n  font-size: 14px; font-weight: 700; color: var(--tc-text);\r\n  flex-shrink: 0;\r\n}\r\n.tcw7-flag-mini {\r\n  width: 22px; height: 16px; border-radius: 3px;\r\n  background-size: cover; background-position: center;\r\n  flex-shrink: 0; border: 1px solid rgba(0,0,0,0.05);\r\n}\r\n.tcw7-flag-mini.usd {\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 60 30'><rect width='60' height='30' fill='%23b22234'\/><path d='M0,3.5h60M0,8.5h60M0,13.5h60M0,18.5h60M0,23.5h60M0,28.5h60' stroke='white' stroke-width='2.3'\/><rect width='24' height='16' fill='%233c3b6e'\/><\/svg>\");\r\n}\r\n.tcw7-flag-mini.eur {\r\n  background-image: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 60 40'><rect width='60' height='40' fill='%23003399'\/><g fill='%23ffcc00'><circle cx='30' cy='20' r='1.4' transform='translate(0,-10)'\/><circle cx='30' cy='20' r='1.4' transform='translate(8.66,-5)'\/><circle cx='30' cy='20' r='1.4' transform='translate(8.66,5)'\/><circle cx='30' cy='20' r='1.4' transform='translate(0,10)'\/><circle cx='30' cy='20' r='1.4' transform='translate(-8.66,5)'\/><circle cx='30' cy='20' r='1.4' transform='translate(-8.66,-5)'\/><\/g><\/svg>\");\r\n}\r\n.tcw7-flag-mini.pen {\r\n  background-image: linear-gradient(to right, #d91023 33%, #fff 33%, #fff 66%, #d91023 66%);\r\n}\r\n\r\n.tcw7-presets { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }\r\n.tcw7-preset {\r\n  font-size: 12px; font-weight: 600;\r\n  padding: 6px 14px;\r\n  border: 1.5px solid var(--tc-border) !important;\r\n  background: var(--tc-bg) !important;\r\n  border-radius: 20px;\r\n  color: var(--tc-text-mute) !important;\r\n  transition: all 0.15s;\r\n}\r\n.tcw7-preset:hover {\r\n  border-color: var(--tc-primary) !important;\r\n  color: var(--tc-primary) !important;\r\n}\r\n.tcw7-preset.active {\r\n  background: var(--tc-bg) !important;\r\n  color: var(--tc-primary) !important;\r\n  border-color: var(--tc-primary) !important;\r\n  border-width: 2px !important;\r\n}\r\n\r\n.tcw7-swap {\r\n  flex: 0 0 44px; \r\n  margin: 0 auto; \r\n  width: 44px; height: 44px;\r\n  border-radius: 50%;\r\n  background: var(--tc-primary-bg);\r\n  border: 1.5px solid var(--tc-primary-light);\r\n  display: flex; align-items: center; justify-content: center;\r\n  transition: all 0.2s;\r\n}\r\n.tcw7-swap:hover { background: var(--tc-primary-light); transform: rotate(180deg); }\r\n.tcw7-swap-icon {\r\n  width: 20px; height: 20px;\r\n  background: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%230891b2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='17 1 21 5 17 9'\/><path d='M3 11V9a4 4 0 0 1 4-4h14'\/><polyline points='7 23 3 19 7 15'\/><path d='M21 13v2a4 4 0 0 1-4 4H3'\/><\/svg>\") center \/ contain no-repeat;\r\n}\r\n\r\n.tcw7-result-card {\r\n  flex: 1 1 240px; \r\n  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);\r\n  border-radius: 14px;\r\n  padding: 24px;\r\n  position: relative; overflow: hidden;\r\n  min-height: 160px; \r\n  display: flex; flex-direction: column; justify-content: center;\r\n}\r\n.tcw7-result-card::before {\r\n  content: ''; position: absolute; top: -20px; right: -20px;\r\n  width: 80px; height: 80px; border-radius: 50%;\r\n  background: rgba(8, 145, 178, 0.15);\r\n  filter: blur(20px);\r\n}\r\n.tcw7-result-card-currency-circles {\r\n  position: absolute; top: 16px; right: 16px;\r\n  display: flex; flex-direction: column; gap: 6px;\r\n}\r\n.tcw7-currency-circle {\r\n  width: 30px; height: 30px; border-radius: 50%;\r\n  background: rgba(255,255,255,0.1);\r\n  border: 1px solid rgba(255,255,255,0.15);\r\n  display: flex; align-items: center; justify-content: center;\r\n  font-size: 12px; font-weight: 700;\r\n  color: rgba(255,255,255,0.7);\r\n}\r\n.tcw7-result-label {\r\n  font-size: 13px; color: rgba(255,255,255,0.7);\r\n  font-weight: 500; margin-bottom: 6px; position: relative;\r\n}\r\n.tcw7-result-label-sub { color: rgba(255,255,255,0.5); font-size: 11px; }\r\n.tcw7-result-amount {\r\n  font-size: 38px; font-weight: 700;\r\n  color: var(--tc-primary-light);\r\n  letter-spacing: -1.5px; line-height: 1; position: relative;\r\n  margin-bottom: 10px;\r\n  word-break: break-word;\r\n}\r\n.tcw7-result-currency {\r\n  font-size: 18px; color: rgba(255,255,255,0.7);\r\n  margin-left: 8px; font-weight: 600; letter-spacing: 0;\r\n}\r\n.tcw7-result-formula {\r\n  font-size: 13px; color: rgba(255,255,255,0.7);\r\n  font-weight: 500; position: relative;\r\n}\r\n.tcw7-result-formula strong { color: var(--tc-primary-light); font-weight: 700; }\r\n.tcw7-result-formula em { font-style: normal; color: rgba(255,255,255,0.5); font-size: 11px; }\r\n\r\n.tcw7-source-info-bar {\r\n  margin-top: 18px;\r\n  background: var(--tc-bg-soft);\r\n  border: 1px solid var(--tc-border);\r\n  border-radius: 12px;\r\n  padding: 14px 16px;\r\n  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;\r\n}\r\n.tcw7-shield-icon {\r\n  width: 36px; height: 36px;\r\n  border-radius: 50%;\r\n  background: var(--tc-primary-bg);\r\n  display: inline-flex; align-items: center; justify-content: center;\r\n  flex-shrink: 0;\r\n}\r\n.tcw7-shield-icon::before {\r\n  content: '';\r\n  width: 18px; height: 18px;\r\n  background: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%230891b2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'\/><polyline points='9 12 11 14 15 10'\/><\/svg>\") center \/ contain no-repeat;\r\n}\r\n.tcw7-source-info-text { flex: 1; min-width: 180px; font-size: 13px; }\r\n.tcw7-source-info-title { font-weight: 600; color: var(--tc-text); margin-bottom: 2px; }\r\n.tcw7-source-info-desc { color: var(--tc-text-mute); font-size: 12px; }\r\n.tcw7-source-info-action {\r\n  display: flex; align-items: center; gap: 14px;\r\n  flex-shrink: 0; flex-wrap: wrap;\r\n}\r\n.tcw7-source-current { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }\r\n.tcw7-source-current-label { color: var(--tc-text-mute); font-weight: 500; }\r\n.tcw7-source-current-value {\r\n  display: inline-flex; align-items: center; gap: 6px;\r\n  font-weight: 700; color: var(--tc-text);\r\n}\r\n\r\n\/* ===== Chart panel ===== *\/\r\n.tcw7-chart-panel {\r\n  display: flex; flex-direction: column;\r\n}\r\n.tcw7-chart-title {\r\n  font-size: 15px; font-weight: 600; color: var(--tc-text);\r\n  margin-bottom: 14px;\r\n}\r\n.tcw7-chart-title-sub { color: var(--tc-text-mute); font-weight: 500; font-size: 13px; }\r\n.tcw7-chart-area {\r\n  flex: 1;\r\n  background: var(--tc-bg-soft);\r\n  border-radius: 10px;\r\n  padding: 12px 8px 8px;\r\n  position: relative;\r\n  min-height: 180px;\r\n}\r\n.tcw7-chart-svg { width: 100%; height: 180px; display: block; }\r\n.tcw7-chart-ranges { display: flex; gap: 6px; margin-top: 14px; flex-wrap: wrap; }\r\n.tcw7-range-btn {\r\n  padding: 6px 14px;\r\n  border-radius: 20px;\r\n  border: 1.5px solid var(--tc-border) !important;\r\n  background: var(--tc-bg) !important;\r\n  font-size: 12px; font-weight: 600;\r\n  color: var(--tc-text-mute) !important;\r\n  transition: all 0.15s;\r\n}\r\n.tcw7-range-btn:hover {\r\n  border-color: var(--tc-primary) !important;\r\n  color: var(--tc-primary) !important;\r\n}\r\n.tcw7-range-btn.active {\r\n  background: var(--tc-primary) !important;\r\n  color: white !important;\r\n  border-color: var(--tc-primary) !important;\r\n}\r\n\r\n\/* ===== Footer ===== *\/\r\n.tcw7-footer {\r\n  display: flex; justify-content: space-between; align-items: center;\r\n  flex-wrap: wrap; gap: 8px; padding-top: 18px;\r\n  border-top: 1px solid var(--tc-border-soft);\r\n}\r\n.tcw7-footer-left {\r\n  display: flex; align-items: center; gap: 8px;\r\n  font-size: 13px; color: var(--tc-text-soft); font-weight: 500;\r\n}\r\n.tcw7-clock-icon {\r\n  width: 16px; height: 16px;\r\n  background: url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'\/><polyline points='12 6 12 12 16 14'\/><\/svg>\") center \/ contain no-repeat;\r\n}\r\n.tcw7-footer-right { font-size: 12px; color: var(--tc-text-mute); font-weight: 500; }\r\n\r\n\/* ===== Skeleton ===== *\/\r\n.tcw7-skeleton {\r\n  background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%);\r\n  background-size: 200% 100%;\r\n  animation: tcw7-shimmer 1.4s infinite linear;\r\n  border-radius: 6px; height: 16px;\r\n}\r\n.tcw7-skeleton.large { height: 28px; }\r\n@keyframes tcw7-shimmer {\r\n  0% { background-position: 200% 0; }\r\n  100% { background-position: -200% 0; }\r\n}\r\n\r\n\/* ============================================================\r\n   ===== RESPONSIVE \u2014 REDISE\u00d1ADO PARA FLUIDEZ =====\r\n   ============================================================ *\/\r\n\r\n\/* Solo dejamos ajustes para m\u00f3viles peque\u00f1os, el auto-fit hace el resto *\/\r\n\r\n@media (max-width: 768px) {\r\n  #tcw7 {\r\n    padding: 16px;\r\n    border-radius: 16px;\r\n  }\r\n\r\n  \/* HEADER reorganizado *\/\r\n  .tcw7-topbar {\r\n    flex-direction: column;\r\n    align-items: stretch;\r\n    gap: 12px;\r\n    padding-bottom: 14px;\r\n    margin-bottom: 16px;\r\n  }\r\n  .tcw7-logo { justify-content: flex-start; width: 100%; }\r\n  .tcw7-logo-img { height: 30px; }\r\n\r\n  .tcw7-topbar-right {\r\n    align-items: stretch; width: 100%; flex-direction: row;\r\n    justify-content: space-between; flex-wrap: wrap; gap: 8px;\r\n  }\r\n  .tcw7-status { font-size: 12px; padding: 6px 12px; flex-shrink: 0; }\r\n  .tcw7-date-info { font-size: 11px; flex-shrink: 1; min-width: 0; }\r\n\r\n  \/* BRAND + SELECTOR *\/\r\n  .tcw7-brand-row { flex-direction: column; align-items: stretch; gap: 16px; margin-bottom: 20px; }\r\n  .tcw7-brand { gap: 14px; width: 100%; }\r\n  .tcw7-flag-pe { width: 48px; height: 48px; }\r\n  .tcw7-title { font-size: 22px; }\r\n  .tcw7-subtitle { font-size: 13px; }\r\n\r\n  .tcw7-currency-block { width: 100%; }\r\n  .tcw7-currency-switcher { width: 100%; padding: 4px; }\r\n  .tcw7-curr-btn { flex: 1 1 0; justify-content: center; padding: 11px 8px; font-size: 14px; gap: 8px; }\r\n\r\n  \/* Ajustes en calculadoras y paneles para celular *\/\r\n  .tcw7-calc-panel, .tcw7-chart-panel { padding: 18px; }\r\n  \r\n  .tcw7-calc-tabs { display: flex; width: 100%; }\r\n  .tcw7-tab { flex: 1; text-align: center; padding: 9px 8px; font-size: 12px; }\r\n  \r\n  .tcw7-calc-row { flex-direction: column; align-items: stretch; }\r\n  \r\n  .tcw7-swap { transform: rotate(90deg); margin: 8px auto; width: 40px; height: 40px; }\r\n  .tcw7-swap:hover { transform: rotate(270deg); }\r\n  \r\n  .tcw7-input { font-size: 18px; }\r\n  .tcw7-result-amount { font-size: 28px; }\r\n  .tcw7-result-card { padding: 16px 18px; min-height: 130px; }\r\n\r\n  \/* SOURCE BAR \u2014 stack *\/\r\n  .tcw7-source-info-bar { flex-direction: column; align-items: flex-start; padding: 12px 14px; gap: 10px; }\r\n  .tcw7-source-info-action { width: 100%; justify-content: flex-start; }\r\n\r\n  \/* FOOTER *\/\r\n  .tcw7-footer { flex-direction: column; align-items: flex-start; gap: 6px; }\r\n  .tcw7-footer-left, .tcw7-footer-right { font-size: 11px; }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  #tcw7 { padding: 14px; }\r\n  .tcw7-logo-img { height: 28px; }\r\n  .tcw7-topbar-right { flex-direction: column; align-items: flex-start; gap: 6px; }\r\n  .tcw7-card { padding: 16px; }\r\n  .tcw7-rate-value-compra, .tcw7-rate-value-venta { font-size: 24px; }\r\n  .tcw7-curr-btn { font-size: 13px; gap: 6px; padding: 11px 6px; }\r\n  .tcw7-curr-flag { width: 20px; height: 14px; }\r\n  .tcw7-curr-symbol { font-size: 14px; }\r\n  .tcw7-presets { gap: 4px; }\r\n  .tcw7-preset { padding: 5px 10px; font-size: 11px; }\r\n  .tcw7-title { font-size: 20px; }\r\n  .tcw7-flag-pe { width: 44px; height: 44px; }\r\n  .tcw7-result-amount { font-size: 26px; }\r\n  .tcw7-result-currency { font-size: 16px; }\r\n  .tcw7-tab { font-size: 11px; padding: 8px 6px; }\r\n}\r\n<\/style>\r\n\r\n<div id=\"tcw7\">\r\n\r\n  <!-- ============ HEADER ============ -->\r\n  <div class=\"tcw7-topbar\">\r\n    <div class=\"tcw7-logo\">\r\n      <img decoding=\"async\" class=\"tcw7-logo-img\"\r\n           src=\"https:\/\/cgestiona.com\/wp-content\/uploads\/2026\/05\/C-Gestiona.png\"\r\n           alt=\"C Gestiona\"\r\n           loading=\"eager\">\r\n    <\/div>\r\n\r\n    <div class=\"tcw7-topbar-right\">\r\n      <button class=\"tcw7-status\" id=\"tcw7Status\" type=\"button\" title=\"Click para actualizar\">\r\n        <span class=\"tcw7-dot\"><\/span>\r\n        <span id=\"tcw7StatusText\">Cargando...<\/span>\r\n        <span class=\"tcw7-status-icon\"><span><\/span><span><\/span><span><\/span><\/span>\r\n      <\/button>\r\n      <div class=\"tcw7-date-info\">\r\n        <span id=\"tcw7DateText\">Cargando fecha...<\/span>\r\n        <span class=\"tcw7-info-icon\">i<\/span>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ============ BRAND + SELECTOR DIVISA ============ -->\r\n  <div class=\"tcw7-brand-row\">\r\n    <div class=\"tcw7-brand\">\r\n      <div class=\"tcw7-flag-pe\" aria-hidden=\"true\"><\/div>\r\n      <div class=\"tcw7-titles\">\r\n        <div class=\"tcw7-title\">Tipo de Cambio <em id=\"tcw7CurrencyTitle\">D\u00f3lar<\/em><\/div>\r\n        <div class=\"tcw7-subtitle\" id=\"tcw7PairText\">Per\u00fa \u00b7 USD\/PEN<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tcw7-currency-block\">\r\n      <div class=\"tcw7-currency-label\">Selecciona divisa<\/div>\r\n      <div class=\"tcw7-currency-switcher\" role=\"tablist\">\r\n        <button class=\"tcw7-curr-btn active\" id=\"tcw7CurrUSD\" type=\"button\" data-curr=\"USD\">\r\n          <span class=\"tcw7-curr-flag usd\"><\/span>\r\n          <span class=\"tcw7-curr-symbol\">$<\/span>\r\n          <span>USD<\/span>\r\n        <\/button>\r\n        <button class=\"tcw7-curr-btn\" id=\"tcw7CurrEUR\" type=\"button\" data-curr=\"EUR\">\r\n          <span class=\"tcw7-curr-flag eur\"><\/span>\r\n          <span class=\"tcw7-curr-symbol\">\u20ac<\/span>\r\n          <span>EUR<\/span>\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Error banner -->\r\n  <div class=\"tcw7-error-banner\" id=\"tcw7Error\">\r\n    \u26a0 No se pudo conectar al servidor. Mostrando datos referenciales.\r\n  <\/div>\r\n\r\n  <!-- ============ CARDS ============ -->\r\n  <div class=\"tcw7-cards\" id=\"tcw7Cards\">\r\n    <div class=\"tcw7-card loading\"><div class=\"tcw7-card-head\"><div class=\"tcw7-skeleton\" style=\"width:60%\"><\/div><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\" style=\"margin-bottom:14px\"><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\"><\/div><\/div>\r\n    <div class=\"tcw7-card loading\"><div class=\"tcw7-card-head\"><div class=\"tcw7-skeleton\" style=\"width:60%\"><\/div><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\" style=\"margin-bottom:14px\"><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\"><\/div><\/div>\r\n    <div class=\"tcw7-card loading\"><div class=\"tcw7-card-head\"><div class=\"tcw7-skeleton\" style=\"width:60%\"><\/div><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\" style=\"margin-bottom:14px\"><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\"><\/div><\/div>\r\n    <div class=\"tcw7-card loading\"><div class=\"tcw7-card-head\"><div class=\"tcw7-skeleton\" style=\"width:60%\"><\/div><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\" style=\"margin-bottom:14px\"><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\"><\/div><\/div>\r\n    <div class=\"tcw7-card loading\"><div class=\"tcw7-card-head\"><div class=\"tcw7-skeleton\" style=\"width:60%\"><\/div><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\" style=\"margin-bottom:14px\"><\/div><div class=\"tcw7-skeleton\" style=\"width:40%;margin-bottom:6px\"><\/div><div class=\"tcw7-skeleton large\"><\/div><\/div>\r\n  <\/div>\r\n\r\n  <!-- ============ MAIN GRID ============ -->\r\n  <div class=\"tcw7-main-grid\">\r\n\r\n    <div class=\"tcw7-calc-panel\">\r\n      <div class=\"tcw7-calc-tabs\">\r\n        <button class=\"tcw7-tab active\" id=\"tcw7TabBuy\" type=\"button\"><span id=\"tcw7TabBuyTxt\">USD \u2192 PEN<\/span><\/button>\r\n        <button class=\"tcw7-tab\" id=\"tcw7TabSell\" type=\"button\"><span id=\"tcw7TabSellTxt\">PEN \u2192 USD<\/span><\/button>\r\n      <\/div>\r\n\r\n      <div class=\"tcw7-calc-row\">\r\n        <div class=\"tcw7-input-group\">\r\n          <div class=\"tcw7-input-label\">Monto a convertir<\/div>\r\n          <div class=\"tcw7-input-wrap\">\r\n            <div class=\"tcw7-input-box\">\r\n              <input class=\"tcw7-input\" type=\"number\" id=\"tcw7Amount\" value=\"100\" min=\"0\" step=\"any\" inputmode=\"decimal\" autocomplete=\"off\">\r\n            <\/div>\r\n            <div class=\"tcw7-currency-pill\">\r\n              <span class=\"tcw7-flag-mini usd\" id=\"tcw7FromFlag\"><\/span>\r\n              <span id=\"tcw7FromTag\">USD<\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"tcw7-presets\">\r\n            <button class=\"tcw7-preset\" data-val=\"50\" type=\"button\">50<\/button>\r\n            <button class=\"tcw7-preset active\" data-val=\"100\" type=\"button\">100<\/button>\r\n            <button class=\"tcw7-preset\" data-val=\"200\" type=\"button\">200<\/button>\r\n            <button class=\"tcw7-preset\" data-val=\"500\" type=\"button\">500<\/button>\r\n            <button class=\"tcw7-preset\" data-val=\"1000\" type=\"button\">1,000<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <button class=\"tcw7-swap\" id=\"tcw7Swap\" type=\"button\" title=\"Intercambiar\">\r\n          <span class=\"tcw7-swap-icon\"><\/span>\r\n        <\/button>\r\n\r\n        <div class=\"tcw7-result-card\">\r\n          <div class=\"tcw7-result-card-currency-circles\">\r\n            <div class=\"tcw7-currency-circle\" id=\"tcw7CurrCircle1\">$<\/div>\r\n            <div class=\"tcw7-currency-circle\">S\/<\/div>\r\n          <\/div>\r\n          <div class=\"tcw7-result-label\">Resultado <span class=\"tcw7-result-label-sub\">(Venta)<\/span><\/div>\r\n          <div class=\"tcw7-result-amount\">\r\n            <span id=\"tcw7Result\">\u2014<\/span><span class=\"tcw7-result-currency\" id=\"tcw7ToTag\">PEN<\/span>\r\n          <\/div>\r\n          <div class=\"tcw7-result-formula\">\r\n            <span id=\"tcw7Note\">\u2014<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"tcw7-source-info-bar\">\r\n        <div class=\"tcw7-shield-icon\"><\/div>\r\n        <div class=\"tcw7-source-info-text\">\r\n          <div class=\"tcw7-source-info-title\">Las tasas mostradas son referenciales.<\/div>\r\n          <div class=\"tcw7-source-info-desc\">Verifique con su entidad o cambista antes de realizar operaciones.<\/div>\r\n        <\/div>\r\n        <div class=\"tcw7-source-info-action\">\r\n          <div class=\"tcw7-source-current\">\r\n            <span class=\"tcw7-source-current-label\">Fuente seleccionada:<\/span>\r\n            <span class=\"tcw7-source-current-value\" id=\"tcw7SourceLabel\">\u2014<\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tcw7-chart-panel\">\r\n      <div class=\"tcw7-chart-title\">Tendencia <span id=\"tcw7ChartPair\">USD\/PEN<\/span> <span class=\"tcw7-chart-title-sub\">(Venta)<\/span><\/div>\r\n      <div class=\"tcw7-chart-area\">\r\n        <svg class=\"tcw7-chart-svg\" id=\"tcw7Chart\" viewBox=\"0 0 400 180\" preserveAspectRatio=\"none\"><\/svg>\r\n      <\/div>\r\n      <div class=\"tcw7-chart-ranges\">\r\n        <button class=\"tcw7-range-btn\" data-range=\"1d\" type=\"button\">1D<\/button>\r\n        <button class=\"tcw7-range-btn active\" data-range=\"1s\" type=\"button\">1S<\/button>\r\n        <button class=\"tcw7-range-btn\" data-range=\"1m\" type=\"button\">1M<\/button>\r\n        <button class=\"tcw7-range-btn\" data-range=\"3m\" type=\"button\">3M<\/button>\r\n        <button class=\"tcw7-range-btn\" data-range=\"1a\" type=\"button\">1A<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"tcw7-footer\">\r\n    <div class=\"tcw7-footer-left\">\r\n      <span class=\"tcw7-clock-icon\"><\/span>\r\n      <span id=\"tcw7Updated\">Actualizando...<\/span>\r\n    <\/div>\r\n    <div class=\"tcw7-footer-right\">Solo referencial \u00b7 No para transacciones oficiales<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  'use strict';\r\n\r\n  \/* \u25bc\u25bc\u25bc URL DE TU PROXY (devuelve USD\/PEN) \u25bc\u25bc\u25bc *\/\r\n  var PROXY_URL = 'https:\/\/cgestiona.com\/tc-proxy.php';\r\n  \/* \u25b2\u25b2\u25b2 \u25b2\u25b2\u25b2 *\/\r\n\r\n  var EUR_USD_API = 'https:\/\/api.frankfurter.app\/latest?from=EUR&to=USD';\r\n\r\n  var DEFS = [\r\n    { key:'google',   label:'Google',   iconClass:'google',   badge:'oficial'  },\r\n    { key:'sunat',    label:'SUNAT',    iconClass:'sunat',    badge:'oficial'  },\r\n    { key:'sbs',      label:'SBS',      iconClass:'sbs',      badge:'oficial'  },\r\n    { key:'kambista', label:'Kambista', iconClass:'cambista', badge:'oficial'  },\r\n    { key:'ocona',    label:'Oco\u00f1a',    iconClass:'calle',    badge:'informal' }\r\n  ];\r\n\r\n  \/\/ APIs y datos en tiempo real para Kambista y Oco\u00f1a vienen DIRECTAMENTE del proxy\r\n  \/\/ (el proxy hace scraping de kambista.com y cuantoestaeldolar.pe en el servidor)\r\n\r\n  \/\/ Fallback (solo se usa si el proxy falla por completo)\r\n  var DEMO_USD = {\r\n    google:   { compra: 3.504, venta: 3.512 },\r\n    sunat:    { compra: 3.512, venta: 3.522 },\r\n    sbs:      { compra: 3.512, venta: 3.522 },\r\n    kambista: { compra: 3.475, venta: 3.509 },\r\n    ocona:    { compra: 3.475, venta: 3.500 }\r\n  };\r\n  var DEMO_EUR_USD = 1.085;\r\n\r\n  var state = {\r\n    currency: 'USD',\r\n    ratesUSD: null,\r\n    eurUsd: null,\r\n    rates: {},\r\n    mode: 'buy',\r\n    sel: 'google',\r\n    range: '1s',\r\n    timer: null,\r\n    REFRESH_MS: 300000\r\n  };\r\n\r\n  function $(id){ return document.getElementById(id); }\r\n  function fmt3(n){ return (n != null && !isNaN(n)) ? Number(n).toFixed(3) : '\u2014'; }\r\n  function fmt4(n){ return (n != null && !isNaN(n)) ? Number(n).toFixed(4) : '\u2014'; }\r\n  function nowStr(){\r\n    return new Date().toLocaleTimeString('es-PE',{hour:'2-digit',minute:'2-digit',second:'2-digit'});\r\n  }\r\n  function dateStrFull(){\r\n    var d = new Date();\r\n    var m = ['enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'];\r\n    var time = d.toLocaleTimeString('es-PE',{hour:'2-digit',minute:'2-digit',hour12:true}).toLowerCase();\r\n    return 'Hoy, '+String(d.getDate()).padStart(2,'0')+' de '+m[d.getMonth()]+' de '+d.getFullYear()+' - '+time;\r\n  }\r\n  function getDef(k){ for (var i=0;i<DEFS.length;i++) if (DEFS[i].key===k) return DEFS[i]; return null; }\r\n\r\n  function setStatus(s, text){\r\n    var el = $('tcw7Status');\r\n    el.classList.remove('error','loading');\r\n    if (s==='error') el.classList.add('error');\r\n    else if (s==='loading') el.classList.add('loading');\r\n    $('tcw7StatusText').textContent = text;\r\n  }\r\n\r\n  function deriveEurRates(usdRates, eurUsd){\r\n    var out = {};\r\n    Object.keys(usdRates).forEach(function(k){\r\n      var r = usdRates[k];\r\n      if (!r || r.compra==null || r.venta==null) return;\r\n      out[k] = {\r\n        compra: r.compra * eurUsd,\r\n        venta:  r.venta  * eurUsd\r\n      };\r\n    });\r\n    return out;\r\n  }\r\n\r\n  function applyCurrentRates(){\r\n    if (state.currency === 'USD'){\r\n      state.rates = state.ratesUSD || {};\r\n    } else {\r\n      if (state.ratesUSD && state.eurUsd){\r\n        state.rates = deriveEurRates(state.ratesUSD, state.eurUsd);\r\n      } else {\r\n        state.rates = {};\r\n      }\r\n    }\r\n    renderCards();\r\n    calc();\r\n    updateChart();\r\n  }\r\n\r\n  function fetchEurUsd(){\r\n    return fetch(EUR_USD_API, { cache:'no-store' })\r\n      .then(function(r){ if(!r.ok) throw new Error('EUR\/USD HTTP '+r.status); return r.json(); })\r\n      .then(function(d){\r\n        if (d && d.rates && d.rates.USD){\r\n          state.eurUsd = d.rates.USD;\r\n        } else {\r\n          throw new Error('EUR\/USD respuesta inv\u00e1lida');\r\n        }\r\n      })\r\n      .catch(function(err){\r\n        console.warn('[EUR\/USD] usando fallback:', err);\r\n        state.eurUsd = DEMO_EUR_USD;\r\n      });\r\n  }\r\n\r\n  function fetchUsdRates(){\r\n    var sep = PROXY_URL.indexOf('?')>-1 ? '&' : '?';\r\n    var url = PROXY_URL + sep + '_=' + Date.now();\r\n    return fetch(url, { cache:'no-store' })\r\n      .then(function(r){ if(!r.ok) throw new Error('Proxy HTTP '+r.status); return r.json(); })\r\n      .then(function(data){\r\n        if(!data || !data.ok) throw new Error('Proxy respuesta inv\u00e1lida');\r\n        state.ratesUSD = data.fuentes || {};\r\n        return true;\r\n      })\r\n      .catch(function(err){\r\n        console.warn('[tc-proxy] usando datos demo:', err);\r\n        state.ratesUSD = JSON.parse(JSON.stringify(DEMO_USD));\r\n        return false;\r\n      });\r\n  }\r\n\r\n  function fetchAll(){\r\n    setStatus('loading','Actualizando...');\r\n    $('tcw7Updated').textContent = 'Actualizando...';\r\n    $('tcw7Error').classList.remove('show');\r\n\r\n    Promise.all([fetchUsdRates(), fetchEurUsd()])\r\n      .then(function(results){\r\n        var proxyOk = results[0];\r\n        applyCurrentRates();\r\n        if (proxyOk){\r\n          setStatus('ok','Actualizado en vivo');\r\n          $('tcw7Updated').textContent = 'Actualizado ' + nowStr();\r\n        } else {\r\n          setStatus('error','Sin conexi\u00f3n (demo)');\r\n          $('tcw7Error').classList.add('show');\r\n          $('tcw7Updated').textContent = 'Datos demo \u00b7 Reintentando...';\r\n        }\r\n        $('tcw7DateText').textContent = dateStrFull();\r\n      });\r\n  }\r\n\r\n  function renderCards(){\r\n    var grid = $('tcw7Cards');\r\n    grid.innerHTML = '';\r\n\r\n    \/\/ Filtrar fuentes v\u00e1lidas y contarlas\r\n    var validDefs = DEFS.filter(function(d){\r\n      var r = state.rates[d.key];\r\n      return r && r.compra!=null && r.venta!=null;\r\n    });\r\n\r\n    validDefs.forEach(function(d, idx){\r\n      var r = state.rates[d.key];\r\n      var spread = r.venta - r.compra;\r\n      var isSel = (d.key === state.sel);\r\n\r\n      var card = document.createElement('div');\r\n      var classes = ['tcw7-card'];\r\n      if (isSel) classes.push('selected');\r\n      card.className = classes.join(' ');\r\n      card.setAttribute('role','button');\r\n      card.setAttribute('tabindex','0');\r\n      card.setAttribute('data-key', d.key);\r\n\r\n      card.innerHTML =\r\n        '<div class=\"tcw7-card-head\">' +\r\n          '<div class=\"tcw7-card-name\">' +\r\n            '<span class=\"tcw7-card-icon '+d.iconClass+'\"><\/span>' +\r\n            '<span>'+d.label+'<\/span>' +\r\n          '<\/div>' +\r\n          '<span class=\"tcw7-badge '+d.badge+'\">'+d.badge+'<\/span>' +\r\n        '<\/div>' +\r\n        '<div class=\"tcw7-rate-block\">' +\r\n          '<div class=\"tcw7-rate-label\">COMPRA<\/div>' +\r\n          '<div class=\"tcw7-rate-value-compra\">'+fmt3(r.compra)+'<\/div>' +\r\n          '<div class=\"tcw7-rate-label\">VENTA<\/div>' +\r\n          '<div class=\"tcw7-rate-value-venta\">'+fmt3(r.venta)+'<\/div>' +\r\n        '<\/div>' +\r\n        '<div class=\"tcw7-spread\">Spread '+fmt4(spread)+' <span class=\"tcw7-info-icon\">i<\/span><\/div>';\r\n\r\n      var onSelect = function(){ state.sel = d.key; renderCards(); calc(); updateChart(); updateSourceLabel(); };\r\n      card.addEventListener('click', onSelect);\r\n      card.addEventListener('keydown', function(e){\r\n        if (e.key==='Enter' || e.key===' '){ e.preventDefault(); onSelect(); }\r\n      });\r\n\r\n      grid.appendChild(card);\r\n    });\r\n\r\n    updateSourceLabel();\r\n  }\r\n\r\n  function updateSourceLabel(){\r\n    var def = getDef(state.sel);\r\n    if (def){\r\n      $('tcw7SourceLabel').innerHTML =\r\n        '<span class=\"tcw7-card-icon '+def.iconClass+'\" style=\"width:18px;height:18px;background-size:12px 12px\"><\/span>'+def.label;\r\n    }\r\n  }\r\n\r\n  function calc(){\r\n    var r = state.rates[state.sel];\r\n    if (!r || r.compra==null || r.venta==null) {\r\n      $('tcw7Result').textContent = '\u2014';\r\n      $('tcw7Note').innerHTML = '\u2014';\r\n      return;\r\n    }\r\n    var amount = parseFloat($('tcw7Amount').value) || 0;\r\n    var result, note;\r\n    var c = state.currency;\r\n\r\n    if (state.mode==='buy'){\r\n      result = amount * r.venta;\r\n      note = '1 '+c+' = <strong>'+fmt3(r.venta)+'<\/strong> PEN <em>(venta)<\/em>';\r\n    } else {\r\n      result = amount \/ r.compra;\r\n      note = '1 '+c+' = <strong>'+fmt3(r.compra)+'<\/strong> PEN <em>(compra)<\/em>';\r\n    }\r\n\r\n    $('tcw7Result').textContent = result.toLocaleString('es-PE', {\r\n      minimumFractionDigits: 2, maximumFractionDigits: 2\r\n    });\r\n    $('tcw7Note').innerHTML = note;\r\n  }\r\n\r\n  function setMode(m){\r\n    state.mode = m;\r\n    var c = state.currency;\r\n    $('tcw7TabBuy').classList.toggle('active', m==='buy');\r\n    $('tcw7TabSell').classList.toggle('active', m==='sell');\r\n\r\n    if (m==='buy'){\r\n      $('tcw7FromTag').textContent = c;\r\n      $('tcw7ToTag').textContent = 'PEN';\r\n    } else {\r\n      $('tcw7FromTag').textContent = 'PEN';\r\n      $('tcw7ToTag').textContent = c;\r\n    }\r\n\r\n    var fromFlag = $('tcw7FromFlag');\r\n    fromFlag.classList.remove('usd','eur','pen');\r\n    if (m==='buy'){\r\n      fromFlag.classList.add(c.toLowerCase());\r\n    } else {\r\n      fromFlag.classList.add('pen');\r\n    }\r\n    calc();\r\n  }\r\n\r\n  function setCurrency(c){\r\n    if (state.currency === c) return;\r\n    state.currency = c;\r\n\r\n    $('tcw7CurrUSD').classList.toggle('active', c==='USD');\r\n    $('tcw7CurrEUR').classList.toggle('active', c==='EUR');\r\n\r\n    $('tcw7CurrencyTitle').textContent = (c==='USD') ? 'D\u00f3lar' : 'Euro';\r\n    $('tcw7PairText').textContent = 'Per\u00fa \u00b7 '+c+'\/PEN';\r\n    $('tcw7ChartPair').textContent = c+'\/PEN';\r\n    $('tcw7TabBuyTxt').textContent  = c+' \u2192 PEN';\r\n    $('tcw7TabSellTxt').textContent = 'PEN \u2192 '+c;\r\n    $('tcw7CurrCircle1').textContent = (c==='USD') ? '$' : '\u20ac';\r\n\r\n    setMode(state.mode);\r\n    applyCurrentRates();\r\n  }\r\n\r\n  function generateMockHistory(){\r\n    var r = state.rates[state.sel];\r\n    if (!r || !r.venta) return [];\r\n    var base = r.venta;\r\n    var pts = [];\r\n    var n = 20;\r\n    for (var i=0; i<n; i++){\r\n      var noise = (Math.sin(i*0.7)*0.012) + (Math.cos(i*1.3)*0.008) + (Math.random()-0.5)*0.008;\r\n      pts.push(base - 0.025 + (i\/n)*0.025 + noise);\r\n    }\r\n    pts[n-1] = base;\r\n    return pts;\r\n  }\r\n\r\n  function updateChart(){\r\n    var svg = $('tcw7Chart');\r\n    if (!svg) return;\r\n    var data = generateMockHistory();\r\n    if (!data.length) { svg.innerHTML = ''; return; }\r\n\r\n    var w = 400, h = 180;\r\n    var pad = { top: 22, right: 22, bottom: 22, left: 36 };\r\n    var min = Math.min.apply(null, data);\r\n    var max = Math.max.apply(null, data);\r\n    var rng = (max - min) || 0.01;\r\n    min -= rng*0.2; max += rng*0.2;\r\n    rng = max - min;\r\n\r\n    var xStep = (w - pad.left - pad.right) \/ (data.length - 1);\r\n    var pathD = '', areaD = '', points = [];\r\n\r\n    data.forEach(function(v, i){\r\n      var x = pad.left + i*xStep;\r\n      var y = pad.top + (h - pad.top - pad.bottom) * (1 - (v - min)\/rng);\r\n      points.push({ x: x, y: y, v: v });\r\n      pathD += (i===0 ? 'M' : 'L') + x.toFixed(1) + ',' + y.toFixed(1) + ' ';\r\n    });\r\n    areaD = pathD + 'L' + (pad.left + (data.length-1)*xStep).toFixed(1) + ',' + (h - pad.bottom) + ' L' + pad.left + ',' + (h - pad.bottom) + ' Z';\r\n\r\n    var yLabels = '';\r\n    for (var k=0; k<3; k++){\r\n      var v = min + rng*(k\/2);\r\n      var y = pad.top + (h - pad.top - pad.bottom) * (1 - k\/2);\r\n      yLabels += '<text x=\"6\" y=\"'+(y+3)+'\" font-size=\"9\" fill=\"#94a3b8\" font-family=\"JetBrains Mono\">'+v.toFixed(2)+'<\/text>';\r\n      yLabels += '<line x1=\"'+pad.left+'\" y1=\"'+y+'\" x2=\"'+(w-pad.right)+'\" y2=\"'+y+'\" stroke=\"#e2e8f0\" stroke-width=\"0.5\" stroke-dasharray=\"2,2\"\/>';\r\n    }\r\n\r\n    var xLabelsTxt = ['29 Abr','30 Abr','01 May','02 May','05 May'];\r\n    var xLabels = '';\r\n    xLabelsTxt.forEach(function(lbl, i){\r\n      var x = pad.left + (w-pad.left-pad.right)*(i\/(xLabelsTxt.length-1));\r\n      xLabels += '<text x=\"'+x+'\" y=\"'+(h-6)+'\" font-size=\"9\" fill=\"#94a3b8\" font-family=\"Inter\" text-anchor=\"middle\">'+lbl+'<\/text>';\r\n    });\r\n\r\n    var last = points[points.length-1];\r\n    var lastDot = '<circle cx=\"'+last.x+'\" cy=\"'+last.y+'\" r=\"4\" fill=\"#0891b2\" stroke=\"white\" stroke-width=\"2\"\/>';\r\n    var lastBadge = '<g transform=\"translate('+(last.x-22)+','+(last.y-22)+')\">' +\r\n      '<rect x=\"0\" y=\"0\" width=\"44\" height=\"16\" rx=\"3\" fill=\"#0891b2\"\/>' +\r\n      '<text x=\"22\" y=\"11\" font-size=\"10\" font-weight=\"700\" fill=\"white\" text-anchor=\"middle\" font-family=\"Inter\">'+last.v.toFixed(3)+'<\/text>' +\r\n    '<\/g>';\r\n\r\n    svg.innerHTML =\r\n      '<defs>' +\r\n        '<linearGradient id=\"tcw7GradArea\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">' +\r\n          '<stop offset=\"0%\" stop-color=\"#0891b2\" stop-opacity=\"0.25\"\/>' +\r\n          '<stop offset=\"100%\" stop-color=\"#0891b2\" stop-opacity=\"0\"\/>' +\r\n        '<\/linearGradient>' +\r\n      '<\/defs>' +\r\n      yLabels +\r\n      '<path d=\"'+areaD+'\" fill=\"url(#tcw7GradArea)\"\/>' +\r\n      '<path d=\"'+pathD+'\" fill=\"none\" stroke=\"#0891b2\" stroke-width=\"2\" stroke-linejoin=\"round\" stroke-linecap=\"round\"\/>' +\r\n      lastDot + lastBadge + xLabels;\r\n  }\r\n\r\n  \/\/ ===== Listeners =====\r\n  $('tcw7Status').addEventListener('click', function(){\r\n    if (state.timer) clearInterval(state.timer);\r\n    fetchAll();\r\n    state.timer = setInterval(fetchAll, state.REFRESH_MS);\r\n  });\r\n\r\n  $('tcw7TabBuy').addEventListener('click', function(){ setMode('buy'); });\r\n  $('tcw7TabSell').addEventListener('click', function(){ setMode('sell'); });\r\n\r\n  $('tcw7Swap').addEventListener('click', function(){\r\n    setMode(state.mode === 'buy' ? 'sell' : 'buy');\r\n  });\r\n\r\n  $('tcw7Amount').addEventListener('input', function(){\r\n    var val = this.value;\r\n    document.querySelectorAll('.tcw7-preset').forEach(function(p){\r\n      p.classList.toggle('active', String(p.getAttribute('data-val')) === String(val));\r\n    });\r\n    calc();\r\n  });\r\n\r\n  document.querySelectorAll('.tcw7-preset').forEach(function(btn){\r\n    btn.addEventListener('click', function(){\r\n      $('tcw7Amount').value = this.getAttribute('data-val');\r\n      document.querySelectorAll('.tcw7-preset').forEach(function(p){ p.classList.remove('active'); });\r\n      this.classList.add('active');\r\n      calc();\r\n    });\r\n  });\r\n\r\n  document.querySelectorAll('.tcw7-range-btn').forEach(function(btn){\r\n    btn.addEventListener('click', function(){\r\n      document.querySelectorAll('.tcw7-range-btn').forEach(function(b){ b.classList.remove('active'); });\r\n      this.classList.add('active');\r\n      state.range = this.getAttribute('data-range');\r\n      updateChart();\r\n    });\r\n  });\r\n\r\n  $('tcw7CurrUSD').addEventListener('click', function(){ setCurrency('USD'); });\r\n  $('tcw7CurrEUR').addEventListener('click', function(){ setCurrency('EUR'); });\r\n\r\n  \/\/ ===== Init =====\r\n  $('tcw7DateText').textContent = dateStrFull();\r\n  fetchAll();\r\n  state.timer = setInterval(fetchAll, state.REFRESH_MS);\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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>Tipo de Cambio Descubre el tipo de cambio actualizado al instante. Convierte divisas f\u00e1cilmente y toma mejores decisiones financieras con informaci\u00f3n confiable. Cargando&#8230; Cargando fecha&#8230; i Tipo de Cambio D\u00f3lar Per\u00fa \u00b7 USD\/PEN Selecciona divisa $ USD \u20ac EUR \u26a0 No se pudo conectar al servidor. Mostrando datos referenciales. USD \u2192 PEN PEN \u2192 USD&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"content-type":"","footnotes":""},"class_list":["post-988467","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tipo de Cambio en Tiempo Real - C Gestiona<\/title>\n<meta name=\"description\" content=\"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cgestiona.com\/en\/tipo-de-cambio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tipo de Cambio en Tiempo Real - C Gestiona\" \/>\n<meta property=\"og:description\" content=\"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cgestiona.com\/en\/tipo-de-cambio\/\" \/>\n<meta property=\"og:site_name\" content=\"C Gestiona\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T17:41:25+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cgestiona.com\\\/tipo-de-cambio\\\/\",\"url\":\"https:\\\/\\\/cgestiona.com\\\/tipo-de-cambio\\\/\",\"name\":\"Tipo de Cambio en Tiempo Real - C Gestiona\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#website\"},\"datePublished\":\"2026-05-06T17:39:03+00:00\",\"dateModified\":\"2026-05-06T17:41:25+00:00\",\"description\":\"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cgestiona.com\\\/tipo-de-cambio\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cgestiona.com\\\/tipo-de-cambio\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cgestiona.com\\\/tipo-de-cambio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/cgestiona.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tipo de Cambio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#website\",\"url\":\"https:\\\/\\\/cgestiona.com\\\/\",\"name\":\"C Gestiona\",\"description\":\"Sitio web oficial\",\"publisher\":{\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cgestiona.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#organization\",\"name\":\"C Gestiona\",\"url\":\"https:\\\/\\\/cgestiona.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cgestiona.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/logo-cgestiona-color-img.png\",\"contentUrl\":\"https:\\\/\\\/cgestiona.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/logo-cgestiona-color-img.png\",\"width\":935,\"height\":452,\"caption\":\"C Gestiona\"},\"image\":{\"@id\":\"https:\\\/\\\/cgestiona.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tipo de Cambio en Tiempo Real - C Gestiona","description":"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cgestiona.com\/en\/tipo-de-cambio\/","og_locale":"en_US","og_type":"article","og_title":"Tipo de Cambio en Tiempo Real - C Gestiona","og_description":"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.","og_url":"https:\/\/cgestiona.com\/en\/tipo-de-cambio\/","og_site_name":"C Gestiona","article_modified_time":"2026-05-06T17:41:25+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cgestiona.com\/tipo-de-cambio\/","url":"https:\/\/cgestiona.com\/tipo-de-cambio\/","name":"Tipo de Cambio en Tiempo Real - C Gestiona","isPartOf":{"@id":"https:\/\/cgestiona.com\/#website"},"datePublished":"2026-05-06T17:39:03+00:00","dateModified":"2026-05-06T17:41:25+00:00","description":"Descubre el tipo de cambio actualizado al instante. Convierte divisas y toma mejores decisiones financieras con informaci\u00f3n confiable.","breadcrumb":{"@id":"https:\/\/cgestiona.com\/tipo-de-cambio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cgestiona.com\/tipo-de-cambio\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cgestiona.com\/tipo-de-cambio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/cgestiona.com\/"},{"@type":"ListItem","position":2,"name":"Tipo de Cambio"}]},{"@type":"WebSite","@id":"https:\/\/cgestiona.com\/#website","url":"https:\/\/cgestiona.com\/","name":"C Gestiona","description":"Sitio web oficial","publisher":{"@id":"https:\/\/cgestiona.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cgestiona.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cgestiona.com\/#organization","name":"C Gestiona","url":"https:\/\/cgestiona.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cgestiona.com\/#\/schema\/logo\/image\/","url":"https:\/\/cgestiona.com\/wp-content\/uploads\/2025\/03\/logo-cgestiona-color-img.png","contentUrl":"https:\/\/cgestiona.com\/wp-content\/uploads\/2025\/03\/logo-cgestiona-color-img.png","width":935,"height":452,"caption":"C Gestiona"},"image":{"@id":"https:\/\/cgestiona.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/pages\/988467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/comments?post=988467"}],"version-history":[{"count":4,"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/pages\/988467\/revisions"}],"predecessor-version":[{"id":988471,"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/pages\/988467\/revisions\/988471"}],"wp:attachment":[{"href":"https:\/\/cgestiona.com\/en\/wp-json\/wp\/v2\/media?parent=988467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}