{"id":1586,"date":"2026-04-24T16:22:27","date_gmt":"2026-04-24T16:22:27","guid":{"rendered":"https:\/\/millasydestinos.com\/?p=1586"},"modified":"2026-04-25T16:49:06","modified_gmt":"2026-04-25T16:49:06","slug":"calculadora-de-puntos-aereos","status":"publish","type":"post","link":"https:\/\/millasydestinos.com\/pt\/calculadora-de-puntos-aereos\/","title":{"rendered":"Calculadora de Puntos a\u00e9reos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1586\" class=\"elementor elementor-1586\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c47b0f5 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-equal-height-no e-con e-parent\" data-id=\"c47b0f5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-819e134 elementor-widget elementor-widget-html\" data-id=\"819e134\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<html lang=\"es\"><head>\r\n   \r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Calculadora de Puntos A\u00e9reos<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;600;700;800&amp;family=DM+Sans:wght@300;400;500&amp;display=swap\" rel=\"stylesheet\">\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n<script>\r\nconst categoriasMensais = [\r\n  'alquiler','hipoteca','agua','luz','gas','seguros','farmacia','gasolina','ropa','muebles','supermercado','cafeterias','gimnasio','deporte','restaurante','bares','taxi','transporte','escuela','deporte_hijos','streaming','telefono','mascotas','educacion','online','extra'\r\n];\r\nconst categoriasAnuais = [\r\n  'hoteles','airbnb','coche','seguro_viaje','tren','actividades','crucero','regalo','reforma','impuestos','extra_anual','vuelos_corto','vuelos_medio','vuelos_largo','upgrades'\r\n];\r\n\r\nfunction getValorMensal(cat) {\r\n  const mensal = parseFloat(document.getElementById('m-' + cat)?.value || '0');\r\n  const anualInput = document.getElementById('a-' + cat);\r\n  let anual = 0;\r\n  if (anualInput && anualInput.dataset.manual === '1' && anualInput.value) {\r\n    anual = parseFloat(anualInput.value);\r\n  } else {\r\n    anual = mensal * 12;\r\n  }\r\n  return anual;\r\n}\r\n\r\nfunction getValorAnual(cat) {\r\n  return parseFloat(document.getElementById('a-' + cat)?.value || '0');\r\n}\r\n\r\nfunction calcularTotais() {\r\n  let total = 0;\r\n  categoriasMensais.forEach(cat => { total += getValorMensal(cat); });\r\n  categoriasAnuais.forEach(cat => { total += getValorAnual(cat); });\r\n  return total;\r\n}\r\n\r\nfunction updateResultados() {\r\n  const total = calcularTotais();\r\n  const min = Math.round(total * 1);\r\n  const max = Math.round(total * 3);\r\n  document.getElementById('total-gasto').textContent = '\u20ac' + total;\r\n  document.getElementById('pts-min').textContent = min;\r\n  document.getElementById('pts-max').textContent = max;\r\n  document.getElementById('sum-gasto').textContent = '\u20ac' + total;\r\n  document.getElementById('sum-min').textContent = min;\r\n  document.getElementById('sum-max').textContent = max;\r\n  updateEquivalencias(max);\r\n}\r\n\r\nfunction updateCard(cat, tipo) {\r\n  if (categoriasMensais.includes(cat)) {\r\n    const card = document.getElementById('card-' + cat);\r\n    const anualInput = document.getElementById('a-' + cat);\r\n    const mensalInput = document.getElementById('m-' + cat);\r\n    let anual = 0;\r\n    if (tipo === 'mensual') {\r\n      anual = mensalInput.value ? parseFloat(mensalInput.value) * 12 : 0;\r\n      if (anualInput && anualInput.dataset.manual !== '1') anualInput.value = anual ? anual : '';\r\n    } else if (tipo === 'anual_override') {\r\n      anual = anualInput.value ? parseFloat(anualInput.value) : 0;\r\n    } else {\r\n      anual = anualInput && anualInput.value ? parseFloat(anualInput.value) : 0;\r\n    }\r\n    if (card) card.classList[anual > 0 ? 'add' : 'remove']('has-value');\r\n\r\n    \/\/ Badge din\u00e2mico para pontos m\u00ednimos e m\u00e1ximos\r\n    const badge = document.getElementById('badge-' + cat);\r\n    if (badge) {\r\n      if (anual > 0) {\r\n        const min = Math.round(anual * 1);\r\n        const max = Math.round(anual * 3);\r\n        badge.textContent = min + '\u2013' + max + ' pts';\r\n      } else {\r\n        badge.textContent = '';\r\n      }\r\n    }\r\n  }\r\n  updateResultados();\r\n}\r\n\r\nfunction resetAll() {\r\n  categoriasMensais.forEach(cat => {\r\n    const m = document.getElementById('m-' + cat);\r\n    const a = document.getElementById('a-' + cat);\r\n    if (m) m.value = '';\r\n    if (a) a.value = '';\r\n  });\r\n  categoriasAnuais.forEach(cat => {\r\n    const a = document.getElementById('a-' + cat);\r\n    if (a) a.value = '';\r\n  });\r\n  updateResultados();\r\n}\r\n\r\nfunction updateEquivalencias(pontos) {\r\n  \/\/ Exemplo de equival\u00eancias (ajuste conforme necess\u00e1rio)\r\n  const equivalencias = [\r\n    { id: 0, ratio: 800 }, \/\/ Voo curto\r\n    { id: 1, ratio: 1500 }, \/\/ Europa ida\/volta\r\n    { id: 2, ratio: 3500 }, \/\/ Longo radio\r\n    { id: 3, ratio: 12000 }, \/\/ Noite hotel\r\n    { id: 4, ratio: 15000 }, \/\/ Upgrade\r\n    { id: 5, ratio: 5000 } \/\/ Gift card\r\n  ];\r\n  const grid = document.getElementById('equiv-grid');\r\n  if (!grid) return;\r\n  const cards = grid.getElementsByClassName('equiv-card');\r\n  equivalencias.forEach((eq, i) => {\r\n    const num = Math.floor(pontos \/ eq.ratio);\r\n    if (cards[i]) {\r\n      const numDiv = cards[i].querySelector('.num');\r\n      if (numDiv) numDiv.textContent = num + '\u00d7';\r\n    }\r\n  });\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  updateResultados();\r\n});\r\n\r\n\r\n<\/script>\r\n<style>\r\n  :root {\r\n    --sky: #f0a500;\r\n    --sky-light: #f0a500;\r\n    --sky-dark: #a06f07;\r\n    --gold: #f0a500;\r\n    --gold-light: #ffc842;\r\n    --bg: #f0f4fb;\r\n    --card: #ffffff;\r\n    --text: #0d1b3e;\r\n    --muted: #6b7a99;\r\n    --border: #d6e0f5;\r\n    --green: #00b67a;\r\n    --shadow: 0 4px 24px rgba(0,87,184,0.10);\r\n  }\r\n\r\n  * { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n  body {\r\n    font-family: 'DM Sans', sans-serif;\r\n    background: var(--bg);\r\n    color: var(--text);\r\n    min-height: 100vh;\r\n  }\r\n\r\n  \/* HERO *\/\r\n  .hero {\r\n    background: linear-gradient(135deg, var(--sky-dark) 0%, var(--sky) 55%, var(--sky-light) 100%);\r\n    padding: 56px 24px 80px;\r\n    text-align: center;\r\n    position: relative;\r\n    overflow: hidden;\r\n  }\r\n  .hero::before {\r\n    content: '';\r\n    position: absolute;\r\n    inset: 0;\r\n    background: url(\"data:image\/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'\/%3E%3C\/g%3E%3C\/g%3E%3C\/svg%3E\");\r\n  }\r\n  .plane-icon {\r\n    font-size: 3rem;\r\n    margin-bottom: 12px;\r\n    display: block;\r\n    animation: float 3s ease-in-out infinite;\r\n  }\r\n  @keyframes float {\r\n    0%, 100% { transform: translateY(0) rotate(-5deg); }\r\n    50% { transform: translateY(-10px) rotate(5deg); }\r\n  }\r\n  .hero h1 {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: clamp(1.8rem, 5vw, 3rem);\r\n    font-weight: 800;\r\n    color: white;\r\n    letter-spacing: -0.5px;\r\n    margin-bottom: 12px;\r\n  }\r\n  .hero h1 span { color: var(--gold-light); }\r\n  .hero p {\r\n    color: rgba(255,255,255,0.85);\r\n    font-size: 1rem;\r\n    max-width: 600px;\r\n    margin: 0 auto;\r\n    line-height: 1.6;\r\n  }\r\n\r\n  \/* RESULTADO FLOTANTE *\/\r\n  .result-bar {\r\n    background: white;\r\n    border-bottom: 3px solid var(--gold);\r\n    padding: 16px 24px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 32px;\r\n    flex-wrap: wrap;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 100;\r\n    box-shadow: 0 4px 20px rgba(0,0,64,0.12);\r\n  }\r\n  .result-item { text-align: center; }\r\n  .result-label {\r\n    font-size: 0.7rem;\r\n    font-weight: 600;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    color: var(--muted);\r\n  }\r\n  .result-value {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.6rem;\r\n    font-weight: 800;\r\n    color: var(--sky);\r\n  }\r\n  .result-value.gold { color: var(--gold); }\r\n  .result-value.green { color: #f0a500; }\r\n  .result-sep { width: 1px; height: 40px; background: var(--border); }\r\n\r\n  \/* MAIN *\/\r\n  .main { max-width: 880px; margin: 0 auto; padding: 40px 16px 60px; }\r\n\r\n  \/* SECTION HEADER *\/\r\n  .section-header {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 12px;\r\n    margin-bottom: 20px;\r\n    margin-top: 40px;\r\n  }\r\n  .section-icon {\r\n    width: 44px; height: 44px;\r\n    background: linear-gradient(135deg, var(--sky), var(--sky-light));\r\n    border-radius: 12px;\r\n    display: flex;align-items:center;justify-content:center;\r\n    font-size: 1.3rem;\r\n    flex-shrink: 0;\r\n    box-shadow: 0 4px 12px rgba(0,87,184,0.25);\r\n  }\r\n  .section-title {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.65rem;\r\n    font-weight: bold;\r\n    color: var(--text);\r\n  }\r\n  .section-subtitle {\r\n    font-size: 0.82rem;\r\n    color: var(--muted);\r\n  }\r\n\r\n  \/* GRID *\/\r\n  .grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\r\n    gap: 12px;\r\n  }\r\n\r\n  \/* CARD *\/\r\n  .card {\r\n    background: white;\r\n    border-radius: 16px;\r\n    padding: 16px 18px;\r\n    border: 1.5px solid var(--border);\r\n    transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;\r\n    position: relative;\r\n  }\r\n  .card:hover {\r\n    border-color: var(--sky-light);\r\n    box-shadow: var(--shadow);\r\n    transform: translateY(-2px);\r\n  }\r\n  .card.has-value { border-color: var(--sky); }\r\n  .card-label {\r\n    font-size: 0.90rem;\r\n    font-weight: 600;\r\n    color: black;\r\n    margin-bottom: 10px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n  }\r\n  .card-label span { font-size: 1rem; }\r\n  .input-row {\r\n    display: flex;\r\n    gap: 8px;\r\n  }\r\n  .input-group {\r\n    flex: 1;\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 3px;\r\n  }\r\n  .input-group label {\r\n    font-size: 0.85rem;\r\n    font-weight: 600;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.8px;\r\n    color: black;\r\n  }\r\n  .input-wrapper {\r\n    position: relative;\r\n    display: flex;\r\n    align-items: center;\r\n  }\r\n  .input-wrapper .currency {\r\n    position: absolute;\r\n    left: 10px;\r\n    color: var(--sky);\r\n    font-weight: 700;\r\n    font-size: 0.9rem;\r\n    pointer-events: none;\r\n  }\r\n  .input-wrapper input {\r\n    width: 100%;\r\n    padding: 8px 8px 8px 24px;\r\n    border: 1.5px solid var(--border);\r\n    border-radius: 10px;\r\n    font-family: 'DM Sans', sans-serif;\r\n    font-size: 0.9rem;\r\n    color: var(--text);\r\n    background: var(--bg);\r\n    outline: none;\r\n    transition: border-color 0.2s, background 0.2s;\r\n    -moz-appearance: textfield;\r\n  }\r\n  .input-wrapper input::-webkit-outer-spin-button,\r\n  .input-wrapper input::-webkit-inner-spin-button { -webkit-appearance: none; }\r\n  .input-wrapper input:focus {\r\n    border-color: var(--sky);\r\n    background: white;\r\n  }\r\n  .pts-badge {\r\n    position: absolute;\r\n    top: 8px; right: 12px;\r\n    font-size: 0.65rem;\r\n    font-weight: 700;\r\n    color: var(--sky);\r\n    letter-spacing: 0.5px;\r\n    display: none;\r\n  }\r\n  .card.has-value .pts-badge { display: block; }\r\n\r\n  \/* DIVIDER *\/\r\n  .divider {\r\n    border: none;\r\n    border-top: 2px dashed var(--border);\r\n    margin: 32px 0 0;\r\n  }\r\n\r\n  \/* ANNUAL TOGGLE *\/\r\n  .toggle-note {\r\n    background: linear-gradient(135deg, #fff8e6, #fffdf5);\r\n    border: 1.5px solid var(--gold);\r\n    border-radius: 12px;\r\n    padding: 12px 16px;\r\n    font-size: 0.82rem;\r\n    color: #8a6500;\r\n    margin-bottom: 20px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n  }\r\n\r\n  \/* RESUMEN FINAL *\/\r\n  .summary-box {\r\n    margin-top: 40px;\r\n    border-radius: 24px;\r\n    background: linear-gradient(rgba(31, 21, 0, 0.274), rgb(1 14 79 \/ 82%)), url(https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/04\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif);\r\n    background-size: cover;\r\n    background-position: center;\r\n    padding: 32px 28px;\r\n    color: white;\r\n    position: relative;\r\n    overflow: hidden;\r\n    text-align: center;\r\n}\r\n  .summary-box::before {\r\n    content: '\u2708';\r\n    position: absolute;\r\n    right: 24px; top: 20px;\r\n    font-size: 6rem;\r\n    opacity: 0.08;\r\n    transform: rotate(20deg);\r\n  }\r\n  .summary-box h2 {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.4rem;\r\n    font-weight: 800;\r\n    margin-bottom: 6px;\r\n    color: white;\r\n  }\r\n  .summary-box p { font-size: 0.85rem; opacity: 0.8; margin-bottom: 24px; }\r\n  .summary-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, 1fr);\r\n    gap: 16px;\r\n  }\r\n  @media (max-width: 520px) {\r\n    .summary-grid { grid-template-columns: 1fr 1fr; }\r\n  }\r\n.summary-stat {\r\n    background: rgb(215 156 29);\r\n    border-radius: 14px;\r\n    padding: 16px 14px;\r\n    backdrop-filter: blur(8px);\r\n    border: 1px solid rgba(255, 255, 255, 0.18);\r\n}\r\n  .summary-stat-label {\r\n    font-size: 0.7rem;\r\n    font-weight: 600;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    opacity: 0.75;\r\n    margin-bottom: 6px;\r\n  }\r\n  .summary-stat-value {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.5rem;\r\n    font-weight: 800;\r\n  }\r\n  .summary-stat-value.gold { color: white; }\r\n  .summary-stat-sub {\r\n    font-size: 0.7rem;\r\n    opacity: 0.65;\r\n    margin-top: 2px;\r\n  }\r\n\r\n  \/* EQUIVALENCIAS *\/\r\n  .equiv-section {\r\n    margin-top: 24px;\r\n  }\r\n  .equiv-title {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 0.85rem;\r\n    font-weight: 700;\r\n    color: rgba(255,255,255,0.9);\r\n    margin-bottom: 12px;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n  }\r\n .equiv-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\r\n    gap: 10%;\r\n    margin-bottom: 7%;\r\n}\r\n.equiv-card {\r\n    background: rgb(215 156 29);\r\n    border-radius: 12px;\r\n    padding: 12px;\r\n    text-align: center;\r\n    border: 1px solid rgba(255, 255, 255, 0.15);\r\n}\r\n  .equiv-card .big { font-size: 1.8rem; margin-bottom: 4px; }\r\n  .equiv-card .num {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.1rem;\r\n    font-weight: 800;\r\n    color: white;\r\n  }\r\n  .equiv-card .desc { font-size: 0.7rem; opacity: 0.75; margin-top: 2px; }\r\n\r\n  \/* RESET *\/\r\n  .btn-reset {\r\n    display: block;\r\n    margin: 10px auto 0;\r\n    background: #d79c1d;\r\n    color: white;\r\n    border: 1.5px solid rgba(255, 255, 255, 0.3);\r\n    border-radius: 50px;\r\n    padding: 10px 28px;\r\n    font-family: 'Syne', sans-serif;\r\n    font-weight: 700;\r\n    font-size: 0.85rem;\r\n    letter-spacing: 0.5px;\r\n    cursor: pointer;\r\n    transition: background 0.2s;\r\n    width: 300px;\r\n}\r\n  .btn-reset:hover { background: rgba(255,255,255,0.25); }\r\n\r\n  \/* FOOTER NOTE *\/\r\n  .footer-note {\r\n    text-align: center;\r\n    color: var(--muted);\r\n    font-size: 0.78rem;\r\n    margin-top: 32px;\r\n    line-height: 1.6;\r\n    max-width: 600px;\r\n    margin-left: auto;\r\n    margin-right: auto;\r\n  }\r\n\r\n\r\n @media (max-width: 720px) {\r\n\r\n.result-value {\r\n    font-family: 'Syne', sans-serif;\r\n    font-size: 1.6rem;\r\n    font-weight: 800;\r\n    color: var(--sky);\r\n}\r\n\r\n.result-bar {\r\n    background: white;\r\n    border-bottom: 3px solid var(--gold);\r\n    padding: 16px 14px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 0px;\r\n    flex-wrap: wrap;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 100;\r\n    box-shadow: 0 4px 20px rgba(0, 0, 64, 0.12);\r\n}\r\n\r\n.equiv-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\r\n    gap: 1%;\r\n    margin-bottom: 10%;\r\n}\r\n\r\n.summary-box {\r\n    margin-top: 40px;\r\n    border-radius: 24px;\r\n    background: linear-gradient(rgba(31, 21, 0, 0.274), rgb(1 14 79 \/ 82%)), url(https:\/\/img.freepik.com\/fotos-gratis\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.jpg?semt=ais_hybrid&w=740&q=80);\r\n    background-size: cover;\r\n    background-position: center;\r\n    padding: 32px 10px;\r\n    color: white;\r\n    position: relative;\r\n    overflow: hidden;\r\n    text-align: center;\r\n}\r\n\r\n#summary-box {\r\n    font-family: Arial, \"Segoe UI Emoji\", \"Apple Color Emoji\", \"Noto Color Emoji\", sans-serif!important;\r\n}\r\n\r\n.btn-reset {\r\n    display: block;\r\n    margin: 10px auto 0;\r\n    background: #d79c1d;\r\n    color: white;\r\n    border: 1.5px solid rgba(255, 255, 255, 0.3);\r\n    border-radius: 50px;\r\n    padding: 10px 28px;\r\n    font-family: 'Syne', sans-serif;\r\n    font-weight: 700;\r\n    font-size: 0.85rem;\r\n    letter-spacing: 0.5px;\r\n    cursor: pointer;\r\n    transition: background 0.2s;\r\n    width: 100%;\r\n}\r\n\r\n.equiv-section {\r\n    margin-top: 24px;\r\n    margin-bottom: 48px;\r\n}\r\n\r\n }\r\n<\/style>\r\n<\/head>\r\n<body id=\"artifacts-component-root-html\">\r\n\r\n\r\n\r\n<!-- BARRA DE RESULTADO -->\r\n<div class=\"result-bar\">\r\n  <div class=\"result-item\">\r\n    <div class=\"result-label\">Gasto Anual Total<\/div>\r\n    <div class=\"result-value\" id=\"total-gasto\">\u20ac146<\/div>\r\n  <\/div>\r\n  <div class=\"result-sep\"><\/div>\r\n  <div class=\"result-item\">\r\n    <div class=\"result-label\">Puntos M\u00ednimos\/a\u00f1o<\/div>\r\n    <div class=\"result-value gold\" id=\"pts-min\">146<\/div>\r\n  <\/div>\r\n  <div class=\"result-sep\"><\/div>\r\n  <div class=\"result-item\">\r\n    <div class=\"result-label\">Puntos M\u00e1ximos\/a\u00f1o<\/div>\r\n    <div class=\"result-value green\" id=\"pts-max\">438<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- MAIN -->\r\n<div class=\"main\">\r\n\r\n  <!-- SECCI\u00d3N 1: GASTOS MENSUALES -->\r\n  <div class=\"section-header\">\r\n    <div class=\"section-icon\">\ud83d\uddd3\ufe0f<\/div>\r\n    <div>\r\n      <div class=\"section-title\">Gastos Mensuales<\/div>\r\n      <div class=\"section-subtitle\">Escribe cu\u00e1nto gastas cada mes \u2014 se multiplica x12 autom\u00e1ticamente<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"grid\" id=\"grid-mensual\"><div class=\"card has-value\" id=\"card-alquiler\">\r\n      <div class=\"card-label\"><span>\ud83c\udfe0<\/span>Alquiler<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-alquiler\" placeholder=\"0\" oninput=\"updateCard('alquiler','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-alquiler\" placeholder=\"0\" oninput=\"updateCard('alquiler','anual_override')\" data-manual=\"0\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-alquiler\"> <\/span>\r\n    <\/div><div class=\"card has-value\" id=\"card-hipoteca\">\r\n      <div class=\"card-label\"><span>\ud83c\udfe1<\/span>Hipoteca<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-hipoteca\" placeholder=\"0\" oninput=\"updateCard('hipoteca','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-hipoteca\" placeholder=\"0\" oninput=\"updateCard('hipoteca','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-hipoteca\"> <\/span>\r\n    <\/div><div class=\"card has-value\" id=\"card-agua\">\r\n      <div class=\"card-label\"><span>\ud83d\udca7<\/span>Agua<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-agua\" placeholder=\"0\" oninput=\"updateCard('agua','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-agua\" placeholder=\"0\" oninput=\"updateCard('agua','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-agua\"> <\/span>\r\n    <\/div><div class=\"card\" id=\"card-luz\">\r\n      <div class=\"card-label\"><span>\ud83d\udca1<\/span>Luz<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-luz\" placeholder=\"0\" oninput=\"updateCard('luz','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-luz\" placeholder=\"0\" oninput=\"updateCard('luz','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-luz\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-gas\">\r\n      <div class=\"card-label\"><span>\ud83d\udd25<\/span>Gas<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-gas\" placeholder=\"0\" oninput=\"updateCard('gas','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-gas\" placeholder=\"0\" oninput=\"updateCard('gas','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-gas\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-seguros\">\r\n      <div class=\"card-label\"><span>\ud83d\udee1\ufe0f<\/span>Seguros (hogar\/vida\/coche)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-seguros\" placeholder=\"0\" oninput=\"updateCard('seguros','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-seguros\" placeholder=\"0\" oninput=\"updateCard('seguros','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-seguros\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-farmacia\">\r\n      <div class=\"card-label\"><span>\ud83d\udc8a<\/span>Farmacia y cosm\u00e9tica<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-farmacia\" placeholder=\"0\" oninput=\"updateCard('farmacia','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-farmacia\" placeholder=\"0\" oninput=\"updateCard('farmacia','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-farmacia\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-gasolina\">\r\n      <div class=\"card-label\"><span>\u26fd<\/span>Gasolina<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-gasolina\" placeholder=\"0\" oninput=\"updateCard('gasolina','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-gasolina\" placeholder=\"0\" oninput=\"updateCard('gasolina','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-gasolina\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-ropa\">\r\n      <div class=\"card-label\"><span>\ud83d\udc57<\/span>Compras de ropa<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-ropa\" placeholder=\"0\" oninput=\"updateCard('ropa','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-ropa\" placeholder=\"0\" oninput=\"updateCard('ropa','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-ropa\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-muebles\">\r\n      <div class=\"card-label\"><span>\ud83d\udecb\ufe0f<\/span>Muebles y decoraci\u00f3n<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-muebles\" placeholder=\"0\" oninput=\"updateCard('muebles','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-muebles\" placeholder=\"0\" oninput=\"updateCard('muebles','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-muebles\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-supermercado\">\r\n      <div class=\"card-label\"><span>\ud83d\uded2<\/span>Supermercado<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-supermercado\" placeholder=\"0\" oninput=\"updateCard('supermercado','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-supermercado\" placeholder=\"0\" oninput=\"updateCard('supermercado','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-supermercado\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-cafeterias\">\r\n      <div class=\"card-label\"><span>\u2615<\/span>Cafeter\u00edas<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-cafeterias\" placeholder=\"0\" oninput=\"updateCard('cafeterias','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-cafeterias\" placeholder=\"0\" oninput=\"updateCard('cafeterias','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-cafeterias\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-gimnasio\">\r\n      <div class=\"card-label\"><span>\ud83c\udfcb\ufe0f<\/span>Gimnasio<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-gimnasio\" placeholder=\"0\" oninput=\"updateCard('gimnasio','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-gimnasio\" placeholder=\"0\" oninput=\"updateCard('gimnasio','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-gimnasio\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-deporte\">\r\n      <div class=\"card-label\"><span>\u26bd<\/span>Deportes (material\/cuotas)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-deporte\" placeholder=\"0\" oninput=\"updateCard('deporte','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-deporte\" placeholder=\"0\" oninput=\"updateCard('deporte','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-deporte\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-restaurante\">\r\n      <div class=\"card-label\"><span>\ud83c\udf7d\ufe0f<\/span>Restaurantes<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-restaurante\" placeholder=\"0\" oninput=\"updateCard('restaurante','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-restaurante\" placeholder=\"0\" oninput=\"updateCard('restaurante','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-restaurante\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-bares\">\r\n      <div class=\"card-label\"><span>\ud83c\udfb6<\/span>Bares y ocio nocturno<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-bares\" placeholder=\"0\" oninput=\"updateCard('bares','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-bares\" placeholder=\"0\" oninput=\"updateCard('bares','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-bares\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-taxi\">\r\n      <div class=\"card-label\"><span>\ud83d\ude95<\/span>Taxi \/ VTC (Uber, Cabify)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-taxi\" placeholder=\"0\" oninput=\"updateCard('taxi','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-taxi\" placeholder=\"0\" oninput=\"updateCard('taxi','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-taxi\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-transporte\">\r\n      <div class=\"card-label\"><span>\ud83d\ude8c<\/span>Transporte p\u00fablico<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-transporte\" placeholder=\"0\" oninput=\"updateCard('transporte','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-transporte\" placeholder=\"0\" oninput=\"updateCard('transporte','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-transporte\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-escuela\">\r\n      <div class=\"card-label\"><span>\ud83c\udf93<\/span>Escuela de los hijos<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-escuela\" placeholder=\"0\" oninput=\"updateCard('escuela','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-escuela\" placeholder=\"0\" oninput=\"updateCard('escuela','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-escuela\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-deporte_hijos\">\r\n      <div class=\"card-label\"><span>\ud83e\uddd2<\/span>Deporte de los hijos<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-deporte_hijos\" placeholder=\"0\" oninput=\"updateCard('deporte_hijos','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-deporte_hijos\" placeholder=\"0\" oninput=\"updateCard('deporte_hijos','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-deporte_hijos\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-streaming\">\r\n      <div class=\"card-label\"><span>\ud83d\udcfa<\/span>Streaming (Netflix, Spotify\u2026)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-streaming\" placeholder=\"0\" oninput=\"updateCard('streaming','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-streaming\" placeholder=\"0\" oninput=\"updateCard('streaming','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-streaming\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-telefono\">\r\n      <div class=\"card-label\"><span>\ud83d\udcf1<\/span>Tel\u00e9fono e internet<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-telefono\" placeholder=\"0\" oninput=\"updateCard('telefono','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-telefono\" placeholder=\"0\" oninput=\"updateCard('telefono','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-telefono\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-mascotas\">\r\n      <div class=\"card-label\"><span>\ud83d\udc3e<\/span>Mascotas (veterinario, comida)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-mascotas\" placeholder=\"0\" oninput=\"updateCard('mascotas','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-mascotas\" placeholder=\"0\" oninput=\"updateCard('mascotas','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-mascotas\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-educacion\">\r\n      <div class=\"card-label\"><span>\ud83d\udcda<\/span>Libros \/ cursos \/ formaci\u00f3n<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-educacion\" placeholder=\"0\" oninput=\"updateCard('educacion','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-educacion\" placeholder=\"0\" oninput=\"updateCard('educacion','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-educacion\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-online\">\r\n      <div class=\"card-label\"><span>\ud83d\udecd\ufe0f<\/span>Otras compras online<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-online\" placeholder=\"0\" oninput=\"updateCard('online','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-online\" placeholder=\"0\" oninput=\"updateCard('online','anual_override')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-online\"><\/span>\r\n    <\/div><div class=\"card has-value\" id=\"card-extra\">\r\n      <div class=\"card-label\"><span>\u2795<\/span>Otros gastos mensuales<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Mensual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"m-extra\" placeholder=\"0\" oninput=\"updateCard('extra','mensual')\">\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"input-group\">\r\n          <label>Anual <\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-extra\" placeholder=\"0\" oninput=\"updateCard('extra','anual_override')\" data-manual=\"1\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-extra\"><\/span>\r\n    <\/div><\/div>\r\n\r\n  <hr class=\"divider\">\r\n\r\n  <!-- SECCI\u00d3N 2: GASTOS ANUALES -->\r\n  <div class=\"section-header\" style=\"margin-top:40px\">\r\n    <div class=\"section-icon\">\ud83d\udcc5<\/div>\r\n    <div>\r\n      <div class=\"section-title\">Gastos Anuales<\/div>\r\n      <div class=\"section-subtitle\">Introduce el importe total que gastas en 1 a\u00f1o<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"toggle-note\">\r\n    \u2b50 Estos gastos no se repiten cada mes, introduce el total anual directo.\r\n  <\/div>\r\n\r\n  <div class=\"grid\" id=\"grid-anual\"><div class=\"card\" id=\"card-hoteles\">\r\n      <div class=\"card-label\"><span>\ud83c\udfe8<\/span>Hoteles<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-hoteles\" placeholder=\"0\" oninput=\"updateCard('hoteles','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-hoteles\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-airbnb\">\r\n      <div class=\"card-label\"><span>\ud83c\udfd8\ufe0f<\/span>Airbnb \/ apartamentos<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-airbnb\" placeholder=\"0\" oninput=\"updateCard('airbnb','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-airbnb\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-coche\">\r\n      <div class=\"card-label\"><span>\ud83d\ude97<\/span>Alquiler de coche<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-coche\" placeholder=\"0\" oninput=\"updateCard('coche','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-coche\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-seguro_viaje\">\r\n      <div class=\"card-label\"><span>\ud83e\ude7a<\/span>Seguro de viaje<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-seguro_viaje\" placeholder=\"0\" oninput=\"updateCard('seguro_viaje','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-seguro_viaje\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-tren\">\r\n      <div class=\"card-label\"><span>\ud83d\ude84<\/span>Tren (AVE, Renfe, Eurostar\u2026)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-tren\" placeholder=\"0\" oninput=\"updateCard('tren','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-tren\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-actividades\">\r\n      <div class=\"card-label\"><span>\ud83c\udfad<\/span>Actividades tur\u00edsticas<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-actividades\" placeholder=\"0\" oninput=\"updateCard('actividades','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-actividades\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-crucero\">\r\n      <div class=\"card-label\"><span>\ud83d\udea2<\/span>Crucero \/ ferry<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-crucero\" placeholder=\"0\" oninput=\"updateCard('crucero','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-crucero\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-regalo\">\r\n      <div class=\"card-label\"><span>\ud83c\udf81<\/span>Regalos y eventos especiales<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-regalo\" placeholder=\"0\" oninput=\"updateCard('regalo','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-regalo\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-reforma\">\r\n      <div class=\"card-label\"><span>\ud83d\udd28<\/span>Reformas y bricolaje<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-reforma\" placeholder=\"0\" oninput=\"updateCard('reforma','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-reforma\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-impuestos\">\r\n      <div class=\"card-label\"><span>\ud83d\udccb<\/span>Impuestos \/ gestor\u00edas<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-impuestos\" placeholder=\"0\" oninput=\"updateCard('impuestos','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-impuestos\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-extra_anual\">\r\n      <div class=\"card-label\"><span>\u2795<\/span>Otros gastos anuales<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-extra_anual\" placeholder=\"0\" oninput=\"updateCard('extra_anual','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-extra_anual\"><\/span>\r\n    <\/div><\/div>\r\n\r\n  <hr class=\"divider\">\r\n\r\n  <!-- SECCI\u00d3N 3: VUELOS -->\r\n  <div class=\"section-header\" style=\"margin-top:40px\">\r\n    <div class=\"section-icon\">\u2708\ufe0f<\/div>\r\n    <div>\r\n      <div class=\"section-title\">Vuelos Anuales<\/div>\r\n      <div class=\"section-subtitle\">Introduce el gasto total en vuelos al a\u00f1o<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"grid\" id=\"grid-vuelos\"><div class=\"card\" id=\"card-vuelos_corto\">\r\n      <div class=\"card-label\"><span>\ud83d\udeeb<\/span>Vuelos corto radio (&lt; 3h)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-vuelos_corto\" placeholder=\"0\" oninput=\"updateCard('vuelos_corto','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-vuelos_corto\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-vuelos_medio\">\r\n      <div class=\"card-label\"><span>\u2708\ufe0f<\/span>Vuelos medio radio (3\u20136h)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-vuelos_medio\" placeholder=\"0\" oninput=\"updateCard('vuelos_medio','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-vuelos_medio\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-vuelos_largo\">\r\n      <div class=\"card-label\"><span>\ud83c\udf0d<\/span>Vuelos largo radio (&gt; 6h)<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-vuelos_largo\" placeholder=\"0\" oninput=\"updateCard('vuelos_largo','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-vuelos_largo\"><\/span>\r\n    <\/div><div class=\"card\" id=\"card-upgrades\">\r\n      <div class=\"card-label\"><span>\ud83e\udd47<\/span>Upgrades \/ clase bussiness<\/div>\r\n      <div class=\"input-row\">\r\n        <div class=\"input-group\">\r\n          <label>Gasto Anual<\/label>\r\n          <div class=\"input-wrapper\">\r\n            <span class=\"currency\">\u20ac<\/span>\r\n            <input type=\"number\" min=\"0\" id=\"a-upgrades\" placeholder=\"0\" oninput=\"updateCard('upgrades','anual')\">\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n      <span class=\"pts-badge\" id=\"badge-upgrades\"><\/span>\r\n    <\/div><\/div>\r\n\r\n  <!-- RESUMEN -->\r\n  <div class=\"summary-box\" id=\"summary-box\">\r\n    <h2>\ud83c\udfc6 Tu Resumen Anual de Puntos<\/h2>\r\n    <p>Estimaci\u00f3n basada en ratios habituales de programas de fidelizaci\u00f3n (1\u20133 pts \/ \u20ac1)<\/p>\r\n    <div class=\"summary-grid\">\r\n      <div class=\"summary-stat\">\r\n        <div class=\"summary-stat-label\">Gasto Total<\/div>\r\n        <div class=\"summary-stat-value\" id=\"sum-gasto\">\u20ac146<\/div>\r\n        <div class=\"summary-stat-sub\">al a\u00f1o<\/div>\r\n      <\/div>\r\n      <div class=\"summary-stat\">\r\n        <div class=\"summary-stat-value gold\" id=\"sum-min\">146<\/div>\r\n        <div class=\"summary-stat-label\">Puntos m\u00edn.<\/div>\r\n        <div class=\"summary-stat-sub\">ratio 1 pt\/\u20ac<\/div>\r\n      <\/div>\r\n      <div class=\"summary-stat\">\r\n        <div class=\"summary-stat-value gold\" id=\"sum-max\">438<\/div>\r\n        <div class=\"summary-stat-label\">Puntos m\u00e1x.<\/div>\r\n        <div class=\"summary-stat-sub\">ratio 3 pts\/\u20ac<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"equiv-section\">\r\n      <div class=\"equiv-title\">\u00bfA qu\u00e9 equivalen tus puntos m\u00e1ximos?<\/div>\r\n      <div class=\"equiv-grid\" id=\"equiv-grid\"><div class=\"equiv-card\"><div class=\"big\">\ud83d\udeeb<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Vuelos corto radio<\/div><\/div><div class=\"equiv-card\"><div class=\"big\">\u2708\ufe0f<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Vuelo Europa ida\/vuelta<\/div><\/div><div class=\"equiv-card\"><div class=\"big\">\ud83c\udf0d<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Vuelo largo radio<\/div><\/div><div class=\"equiv-card\"><div class=\"big\">\ud83c\udfe8<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Noches de hotel<\/div><\/div><div class=\"equiv-card\"><div class=\"big\">\ud83e\udd47<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Upgrade bussiness<\/div><\/div><div class=\"equiv-card\"><div class=\"big\">\ud83c\udf81<\/div><div class=\"num\">0\u00d7<\/div><div class=\"desc\">Tarjeta regalo \u20ac50<\/div><\/div><\/div>\r\n    <\/div>\r\n\r\n    <button class=\"btn-reset\" id=\"botao1\" onclick=\"resetAll()\">\u21ba Restablecer calculadora\r\n<\/button>\r\n  <button class=\"btn-reset\" id=\"botao2\" onclick=\"exportarPDF()\">\ud83d\udcc4 exportar a pdf\r\n<\/button>\r\n  <\/div>\r\n\r\n  <p class=\"footer-note\">\r\n    \ud83d\udca1 Los ratios de acumulaci\u00f3n var\u00edan seg\u00fan el programa de fidelizaci\u00f3n y la tarjeta. Los valores mostrados (1\u20133 pts por \u20ac1) son estimaciones orientativas. Consulta las condiciones espec\u00edficas de tu programa favorito.\r\n  <\/p>\r\n<\/div>\r\n\r\n<script id=\"h7i7a5\">\r\nasync function exportarPDF() {\r\n    const botao1 = document.querySelector('#botao1');\r\n    const botao2 = document.querySelector('#botao2');\r\n\r\n    botao1.style.display = 'none';\r\n    botao2.style.display = 'none';\r\n\r\n    const elemento = document.getElementById('summary-box');\r\n\r\n    const canvas = await html2canvas(elemento, {\r\n        scale: window.innerWidth < 768 ? 3 : 2,\r\n        useCORS: true,\r\n        backgroundColor: \"#ffffff\",\r\n          allowTaint: true,\r\n        scrollY: -window.scrollY\r\n    });\r\n\r\n    const imgData = canvas.toDataURL('image\/jpeg', 1.0);\r\n\r\n    const { jsPDF } = window.jspdf;\r\n    const pdf = new jsPDF('p', 'mm', 'a4');\r\n\r\n    const pageWidth = 210;\r\n    const pageHeight = 297;\r\n    const margin = 10;\r\n\r\n    const usableWidth = pageWidth - margin * 2;\r\n    const imgHeight = (canvas.height * usableWidth) \/ canvas.width;\r\n\r\n    let heightLeft = imgHeight;\r\n    let position = margin;\r\n\r\n    pdf.addImage(imgData, 'JPEG', margin, position, usableWidth, imgHeight);\r\n    heightLeft -= (pageHeight - margin * 2);\r\n\r\n    while (heightLeft > 0) {\r\n        position = heightLeft - imgHeight + margin;\r\n        pdf.addPage();\r\n        pdf.addImage(imgData, 'JPEG', margin, position, usableWidth, imgHeight);\r\n        heightLeft -= (pageHeight - margin * 2);\r\n    }\r\n\r\n    pdf.save('puntos.pdf');\r\n\r\n    botao1.style.display = 'block';\r\n    botao2.style.display = 'block';\r\n}\r\n<\/script>\r\n\r\n\r\n\r\n\r\n<\/body><\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Calculadora de Puntos A\u00e9reos Gasto Anual Total \u20ac146 Puntos M\u00ednimos\/a\u00f1o 146 Puntos M\u00e1ximos\/a\u00f1o 438 \ud83d\uddd3\ufe0f Gastos Mensuales Escribe cu\u00e1nto gastas cada mes \u2014 se multiplica x12 autom\u00e1ticamente \ud83c\udfe0Alquiler Mensual \u20ac Anual \u20ac \ud83c\udfe1Hipoteca Mensual \u20ac Anual \u20ac \ud83d\udca7Agua Mensual \u20ac Anual \u20ac \ud83d\udca1Luz Mensual \u20ac Anual \u20ac \ud83d\udd25Gas Mensual \u20ac Anual \u20ac \ud83d\udee1\ufe0fSeguros (hogar\/vida\/coche) Mensual \u20ac Anual \u20ac \ud83d\udc8aFarmacia y cosm\u00e9tica Mensual \u20ac Anual \u20ac \u26fdGasolina Mensual \u20ac Anual \u20ac \ud83d\udc57Compras de ropa Mensual \u20ac Anual \u20ac \ud83d\udecb\ufe0fMuebles y decoraci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\uded2Supermercado Mensual \u20ac Anual \u20ac \u2615Cafeter\u00edas Mensual \u20ac Anual \u20ac \ud83c\udfcb\ufe0fGimnasio Mensual \u20ac Anual \u20ac \u26bdDeportes (material\/cuotas) Mensual \u20ac Anual \u20ac \ud83c\udf7d\ufe0fRestaurantes Mensual \u20ac Anual \u20ac \ud83c\udfb6Bares y ocio nocturno Mensual \u20ac Anual \u20ac \ud83d\ude95Taxi \/ VTC (Uber, Cabify) Mensual \u20ac Anual \u20ac \ud83d\ude8cTransporte p\u00fablico Mensual \u20ac Anual \u20ac \ud83c\udf93Escuela de los hijos Mensual \u20ac Anual \u20ac \ud83e\uddd2Deporte de los hijos Mensual \u20ac Anual \u20ac \ud83d\udcfaStreaming (Netflix, Spotify\u2026) Mensual \u20ac Anual \u20ac \ud83d\udcf1Tel\u00e9fono e internet Mensual \u20ac Anual \u20ac \ud83d\udc3eMascotas (veterinario, comida) Mensual \u20ac Anual \u20ac \ud83d\udcdaLibros \/ cursos \/ formaci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\udecd\ufe0fOtras compras online Mensual \u20ac Anual \u20ac \u2795Otros gastos mensuales Mensual \u20ac Anual \u20ac \ud83d\udcc5 Gastos Anuales Introduce el importe total que gastas en 1 a\u00f1o \u2b50 Estos gastos no se repiten cada mes, introduce el total anual directo. \ud83c\udfe8Hoteles Gasto Anual \u20ac \ud83c\udfd8\ufe0fAirbnb \/ apartamentos Gasto Anual \u20ac \ud83d\ude97Alquiler de coche Gasto Anual \u20ac \ud83e\ude7aSeguro de viaje Gasto Anual \u20ac \ud83d\ude84Tren (AVE, Renfe, Eurostar\u2026) Gasto Anual \u20ac \ud83c\udfadActividades tur\u00edsticas Gasto Anual \u20ac \ud83d\udea2Crucero \/ ferry Gasto Anual \u20ac \ud83c\udf81Regalos y eventos especiales Gasto Anual \u20ac \ud83d\udd28Reformas y bricolaje Gasto Anual \u20ac \ud83d\udccbImpuestos \/ gestor\u00edas Gasto Anual \u20ac \u2795Otros gastos anuales Gasto Anual \u20ac \u2708\ufe0f Vuelos Anuales Introduce el gasto total en vuelos al a\u00f1o \ud83d\udeebVuelos corto radio (&lt; 3h) Gasto Anual \u20ac \u2708\ufe0fVuelos medio radio (3\u20136h) Gasto Anual \u20ac \ud83c\udf0dVuelos largo radio (&gt; 6h) Gasto Anual \u20ac \ud83e\udd47Upgrades \/ clase bussiness Gasto Anual \u20ac \ud83c\udfc6 Tu Resumen Anual de Puntos Estimaci\u00f3n basada en ratios habituales de programas de fidelizaci\u00f3n (1\u20133 pts \/ \u20ac1) Gasto Total \u20ac146 al a\u00f1o 146 Puntos m\u00edn. ratio 1 pt\/\u20ac 438 Puntos m\u00e1x. ratio 3 pts\/\u20ac \u00bfA qu\u00e9 equivalen tus puntos m\u00e1ximos? \ud83d\udeeb0\u00d7Vuelos corto radio\u2708\ufe0f0\u00d7Vuelo Europa ida\/vuelta\ud83c\udf0d0\u00d7Vuelo largo radio\ud83c\udfe80\u00d7Noches de hotel\ud83e\udd470\u00d7Upgrade bussiness\ud83c\udf810\u00d7Tarjeta regalo \u20ac50 \u21ba Restablecer calculadora \ud83d\udcc4 exportar a pdf \ud83d\udca1 Los ratios de acumulaci\u00f3n var\u00edan seg\u00fan el programa de fidelizaci\u00f3n y la tarjeta. Los valores mostrados (1\u20133 pts por \u20ac1) son estimaciones orientativas. Consulta las condiciones espec\u00edficas de tu programa favorito.<\/p>","protected":false},"author":3,"featured_media":1619,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[16],"tags":[],"class_list":["post-1586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-educativo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.0 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Calculadora de Puntos a\u00e9reos - Millas y Destinos<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/millasydestinos.com\/pt\/calculadora-de-puntos-aereos\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calculadora de Puntos a\u00e9reos\" \/>\n<meta property=\"og:description\" content=\"Calculadora de Puntos A\u00e9reos Gasto Anual Total \u20ac146 Puntos M\u00ednimos\/a\u00f1o 146 Puntos M\u00e1ximos\/a\u00f1o 438 \ud83d\uddd3\ufe0f Gastos Mensuales Escribe cu\u00e1nto gastas cada mes \u2014 se multiplica x12 autom\u00e1ticamente \ud83c\udfe0Alquiler Mensual \u20ac Anual \u20ac \ud83c\udfe1Hipoteca Mensual \u20ac Anual \u20ac \ud83d\udca7Agua Mensual \u20ac Anual \u20ac \ud83d\udca1Luz Mensual \u20ac Anual \u20ac \ud83d\udd25Gas Mensual \u20ac Anual \u20ac \ud83d\udee1\ufe0fSeguros (hogar\/vida\/coche) Mensual \u20ac Anual \u20ac \ud83d\udc8aFarmacia y cosm\u00e9tica Mensual \u20ac Anual \u20ac \u26fdGasolina Mensual \u20ac Anual \u20ac \ud83d\udc57Compras de ropa Mensual \u20ac Anual \u20ac \ud83d\udecb\ufe0fMuebles y decoraci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\uded2Supermercado Mensual \u20ac Anual \u20ac \u2615Cafeter\u00edas Mensual \u20ac Anual \u20ac \ud83c\udfcb\ufe0fGimnasio Mensual \u20ac Anual \u20ac \u26bdDeportes (material\/cuotas) Mensual \u20ac Anual \u20ac \ud83c\udf7d\ufe0fRestaurantes Mensual \u20ac Anual \u20ac \ud83c\udfb6Bares y ocio nocturno Mensual \u20ac Anual \u20ac \ud83d\ude95Taxi \/ VTC (Uber, Cabify) Mensual \u20ac Anual \u20ac \ud83d\ude8cTransporte p\u00fablico Mensual \u20ac Anual \u20ac \ud83c\udf93Escuela de los hijos Mensual \u20ac Anual \u20ac \ud83e\uddd2Deporte de los hijos Mensual \u20ac Anual \u20ac \ud83d\udcfaStreaming (Netflix, Spotify\u2026) Mensual \u20ac Anual \u20ac \ud83d\udcf1Tel\u00e9fono e internet Mensual \u20ac Anual \u20ac \ud83d\udc3eMascotas (veterinario, comida) Mensual \u20ac Anual \u20ac \ud83d\udcdaLibros \/ cursos \/ formaci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\udecd\ufe0fOtras compras online Mensual \u20ac Anual \u20ac \u2795Otros gastos mensuales Mensual \u20ac Anual \u20ac \ud83d\udcc5 Gastos Anuales Introduce el importe total que gastas en 1 a\u00f1o \u2b50 Estos gastos no se repiten cada mes, introduce el total anual directo. \ud83c\udfe8Hoteles Gasto Anual \u20ac \ud83c\udfd8\ufe0fAirbnb \/ apartamentos Gasto Anual \u20ac \ud83d\ude97Alquiler de coche Gasto Anual \u20ac \ud83e\ude7aSeguro de viaje Gasto Anual \u20ac \ud83d\ude84Tren (AVE, Renfe, Eurostar\u2026) Gasto Anual \u20ac \ud83c\udfadActividades tur\u00edsticas Gasto Anual \u20ac \ud83d\udea2Crucero \/ ferry Gasto Anual \u20ac \ud83c\udf81Regalos y eventos especiales Gasto Anual \u20ac \ud83d\udd28Reformas y bricolaje Gasto Anual \u20ac \ud83d\udccbImpuestos \/ gestor\u00edas Gasto Anual \u20ac \u2795Otros gastos anuales Gasto Anual \u20ac \u2708\ufe0f Vuelos Anuales Introduce el gasto total en vuelos al a\u00f1o \ud83d\udeebVuelos corto radio (&lt; 3h) Gasto Anual \u20ac \u2708\ufe0fVuelos medio radio (3\u20136h) Gasto Anual \u20ac \ud83c\udf0dVuelos largo radio (&gt; 6h) Gasto Anual \u20ac \ud83e\udd47Upgrades \/ clase bussiness Gasto Anual \u20ac \ud83c\udfc6 Tu Resumen Anual de Puntos Estimaci\u00f3n basada en ratios habituales de programas de fidelizaci\u00f3n (1\u20133 pts \/ \u20ac1) Gasto Total \u20ac146 al a\u00f1o 146 Puntos m\u00edn. ratio 1 pt\/\u20ac 438 Puntos m\u00e1x. ratio 3 pts\/\u20ac \u00bfA qu\u00e9 equivalen tus puntos m\u00e1ximos? \ud83d\udeeb0\u00d7Vuelos corto radio\u2708\ufe0f0\u00d7Vuelo Europa ida\/vuelta\ud83c\udf0d0\u00d7Vuelo largo radio\ud83c\udfe80\u00d7Noches de hotel\ud83e\udd470\u00d7Upgrade bussiness\ud83c\udf810\u00d7Tarjeta regalo \u20ac50 \u21ba Restablecer calculadora \ud83d\udcc4 exportar a pdf \ud83d\udca1 Los ratios de acumulaci\u00f3n var\u00edan seg\u00fan el programa de fidelizaci\u00f3n y la tarjeta. Los valores mostrados (1\u20133 pts por \u20ac1) son estimaciones orientativas. Consulta las condiciones espec\u00edficas de tu programa favorito.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/millasydestinos.com\/pt\/calculadora-de-puntos-aereos\/\" \/>\n<meta property=\"og:site_name\" content=\"Millas y Destinos\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-24T16:22:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-25T16:49:06+00:00\" \/>\n<meta name=\"author\" content=\"Clea Rodrigues\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Clea Rodrigues\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/\"},\"author\":{\"name\":\"Clea Rodrigues\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#\\\/schema\\\/person\\\/1397123de81dcb469f132d9f2d41e092\"},\"headline\":\"Calculadora de Puntos a\u00e9reos\",\"datePublished\":\"2026-04-24T16:22:27+00:00\",\"dateModified\":\"2026-04-25T16:49:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/\"},\"wordCount\":363,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif\",\"articleSection\":[\"Educativo\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/\",\"url\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/\",\"name\":\"Calculadora de Puntos a\u00e9reos - Millas y Destinos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif\",\"datePublished\":\"2026-04-24T16:22:27+00:00\",\"dateModified\":\"2026-04-25T16:49:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#primaryimage\",\"url\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif\",\"contentUrl\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif\",\"width\":740,\"height\":416},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/calculadora-de-puntos-aereos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/millasydestinos.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calculadora de Puntos a\u00e9reos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#website\",\"url\":\"https:\\\/\\\/millasydestinos.com\\\/\",\"name\":\"Millas y Destinos\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/millasydestinos.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#organization\",\"name\":\"Millas y Destinos\",\"url\":\"https:\\\/\\\/millasydestinos.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/ar_academy_fly_clea_color-1.png\",\"contentUrl\":\"https:\\\/\\\/millasydestinos.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/ar_academy_fly_clea_color-1.png\",\"width\":1500,\"height\":1920,\"caption\":\"Millas y Destinos\"},\"image\":{\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/millasydestinos.com\\\/#\\\/schema\\\/person\\\/1397123de81dcb469f132d9f2d41e092\",\"name\":\"Clea Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g\",\"caption\":\"Clea Rodrigues\"},\"url\":\"https:\\\/\\\/millasydestinos.com\\\/pt\\\/author\\\/clea-rodrigues\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Calculadora de Puntos a\u00e9reos - Millas y Destinos","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:\/\/millasydestinos.com\/pt\/calculadora-de-puntos-aereos\/","og_locale":"pt_BR","og_type":"article","og_title":"Calculadora de Puntos a\u00e9reos","og_description":"Calculadora de Puntos A\u00e9reos Gasto Anual Total \u20ac146 Puntos M\u00ednimos\/a\u00f1o 146 Puntos M\u00e1ximos\/a\u00f1o 438 \ud83d\uddd3\ufe0f Gastos Mensuales Escribe cu\u00e1nto gastas cada mes \u2014 se multiplica x12 autom\u00e1ticamente \ud83c\udfe0Alquiler Mensual \u20ac Anual \u20ac \ud83c\udfe1Hipoteca Mensual \u20ac Anual \u20ac \ud83d\udca7Agua Mensual \u20ac Anual \u20ac \ud83d\udca1Luz Mensual \u20ac Anual \u20ac \ud83d\udd25Gas Mensual \u20ac Anual \u20ac \ud83d\udee1\ufe0fSeguros (hogar\/vida\/coche) Mensual \u20ac Anual \u20ac \ud83d\udc8aFarmacia y cosm\u00e9tica Mensual \u20ac Anual \u20ac \u26fdGasolina Mensual \u20ac Anual \u20ac \ud83d\udc57Compras de ropa Mensual \u20ac Anual \u20ac \ud83d\udecb\ufe0fMuebles y decoraci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\uded2Supermercado Mensual \u20ac Anual \u20ac \u2615Cafeter\u00edas Mensual \u20ac Anual \u20ac \ud83c\udfcb\ufe0fGimnasio Mensual \u20ac Anual \u20ac \u26bdDeportes (material\/cuotas) Mensual \u20ac Anual \u20ac \ud83c\udf7d\ufe0fRestaurantes Mensual \u20ac Anual \u20ac \ud83c\udfb6Bares y ocio nocturno Mensual \u20ac Anual \u20ac \ud83d\ude95Taxi \/ VTC (Uber, Cabify) Mensual \u20ac Anual \u20ac \ud83d\ude8cTransporte p\u00fablico Mensual \u20ac Anual \u20ac \ud83c\udf93Escuela de los hijos Mensual \u20ac Anual \u20ac \ud83e\uddd2Deporte de los hijos Mensual \u20ac Anual \u20ac \ud83d\udcfaStreaming (Netflix, Spotify\u2026) Mensual \u20ac Anual \u20ac \ud83d\udcf1Tel\u00e9fono e internet Mensual \u20ac Anual \u20ac \ud83d\udc3eMascotas (veterinario, comida) Mensual \u20ac Anual \u20ac \ud83d\udcdaLibros \/ cursos \/ formaci\u00f3n Mensual \u20ac Anual \u20ac \ud83d\udecd\ufe0fOtras compras online Mensual \u20ac Anual \u20ac \u2795Otros gastos mensuales Mensual \u20ac Anual \u20ac \ud83d\udcc5 Gastos Anuales Introduce el importe total que gastas en 1 a\u00f1o \u2b50 Estos gastos no se repiten cada mes, introduce el total anual directo. \ud83c\udfe8Hoteles Gasto Anual \u20ac \ud83c\udfd8\ufe0fAirbnb \/ apartamentos Gasto Anual \u20ac \ud83d\ude97Alquiler de coche Gasto Anual \u20ac \ud83e\ude7aSeguro de viaje Gasto Anual \u20ac \ud83d\ude84Tren (AVE, Renfe, Eurostar\u2026) Gasto Anual \u20ac \ud83c\udfadActividades tur\u00edsticas Gasto Anual \u20ac \ud83d\udea2Crucero \/ ferry Gasto Anual \u20ac \ud83c\udf81Regalos y eventos especiales Gasto Anual \u20ac \ud83d\udd28Reformas y bricolaje Gasto Anual \u20ac \ud83d\udccbImpuestos \/ gestor\u00edas Gasto Anual \u20ac \u2795Otros gastos anuales Gasto Anual \u20ac \u2708\ufe0f Vuelos Anuales Introduce el gasto total en vuelos al a\u00f1o \ud83d\udeebVuelos corto radio (&lt; 3h) Gasto Anual \u20ac \u2708\ufe0fVuelos medio radio (3\u20136h) Gasto Anual \u20ac \ud83c\udf0dVuelos largo radio (&gt; 6h) Gasto Anual \u20ac \ud83e\udd47Upgrades \/ clase bussiness Gasto Anual \u20ac \ud83c\udfc6 Tu Resumen Anual de Puntos Estimaci\u00f3n basada en ratios habituales de programas de fidelizaci\u00f3n (1\u20133 pts \/ \u20ac1) Gasto Total \u20ac146 al a\u00f1o 146 Puntos m\u00edn. ratio 1 pt\/\u20ac 438 Puntos m\u00e1x. ratio 3 pts\/\u20ac \u00bfA qu\u00e9 equivalen tus puntos m\u00e1ximos? \ud83d\udeeb0\u00d7Vuelos corto radio\u2708\ufe0f0\u00d7Vuelo Europa ida\/vuelta\ud83c\udf0d0\u00d7Vuelo largo radio\ud83c\udfe80\u00d7Noches de hotel\ud83e\udd470\u00d7Upgrade bussiness\ud83c\udf810\u00d7Tarjeta regalo \u20ac50 \u21ba Restablecer calculadora \ud83d\udcc4 exportar a pdf \ud83d\udca1 Los ratios de acumulaci\u00f3n var\u00edan seg\u00fan el programa de fidelizaci\u00f3n y la tarjeta. Los valores mostrados (1\u20133 pts por \u20ac1) son estimaciones orientativas. Consulta las condiciones espec\u00edficas de tu programa favorito.","og_url":"https:\/\/millasydestinos.com\/pt\/calculadora-de-puntos-aereos\/","og_site_name":"Millas y Destinos","article_published_time":"2026-04-24T16:22:27+00:00","article_modified_time":"2026-04-25T16:49:06+00:00","author":"Clea Rodrigues","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Clea Rodrigues","Est. tempo de leitura":"20 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#article","isPartOf":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/"},"author":{"name":"Clea Rodrigues","@id":"https:\/\/millasydestinos.com\/#\/schema\/person\/1397123de81dcb469f132d9f2d41e092"},"headline":"Calculadora de Puntos a\u00e9reos","datePublished":"2026-04-24T16:22:27+00:00","dateModified":"2026-04-25T16:49:06+00:00","mainEntityOfPage":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/"},"wordCount":363,"commentCount":0,"publisher":{"@id":"https:\/\/millasydestinos.com\/#organization"},"image":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#primaryimage"},"thumbnailUrl":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/04\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif","articleSection":["Educativo"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/","url":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/","name":"Calculadora de Puntos a\u00e9reos - Millas y Destinos","isPartOf":{"@id":"https:\/\/millasydestinos.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#primaryimage"},"image":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#primaryimage"},"thumbnailUrl":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/04\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif","datePublished":"2026-04-24T16:22:27+00:00","dateModified":"2026-04-25T16:49:06+00:00","breadcrumb":{"@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#primaryimage","url":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/04\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif","contentUrl":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/04\/bilhetes-de-alto-angulo-e-pequeno-aviao_52683-136438.avif","width":740,"height":416},{"@type":"BreadcrumbList","@id":"https:\/\/millasydestinos.com\/calculadora-de-puntos-aereos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/millasydestinos.com\/"},{"@type":"ListItem","position":2,"name":"Calculadora de Puntos a\u00e9reos"}]},{"@type":"WebSite","@id":"https:\/\/millasydestinos.com\/#website","url":"https:\/\/millasydestinos.com\/","name":"Millas y Destinos","description":"","publisher":{"@id":"https:\/\/millasydestinos.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/millasydestinos.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/millasydestinos.com\/#organization","name":"Millas y Destinos","url":"https:\/\/millasydestinos.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/millasydestinos.com\/#\/schema\/logo\/image\/","url":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/03\/ar_academy_fly_clea_color-1.png","contentUrl":"https:\/\/millasydestinos.com\/wp-content\/uploads\/2026\/03\/ar_academy_fly_clea_color-1.png","width":1500,"height":1920,"caption":"Millas y Destinos"},"image":{"@id":"https:\/\/millasydestinos.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/millasydestinos.com\/#\/schema\/person\/1397123de81dcb469f132d9f2d41e092","name":"Clea Rodrigues","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/418c86c8b79ffab2616480452175678ef7016adb87f004ce59d5af24fe2edbd9?s=96&d=mm&r=g","caption":"Clea Rodrigues"},"url":"https:\/\/millasydestinos.com\/pt\/author\/clea-rodrigues\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/posts\/1586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/comments?post=1586"}],"version-history":[{"count":25,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/posts\/1586\/revisions"}],"predecessor-version":[{"id":1629,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/posts\/1586\/revisions\/1629"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/media\/1619"}],"wp:attachment":[{"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/media?parent=1586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/categories?post=1586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/millasydestinos.com\/pt\/wp-json\/wp\/v2\/tags?post=1586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}