{"id":587,"date":"2026-04-30T21:02:37","date_gmt":"2026-04-30T21:02:37","guid":{"rendered":"https:\/\/investingora.com\/?page_id=587"},"modified":"2026-04-30T21:02:37","modified_gmt":"2026-04-30T21:02:37","slug":"currency-converter-pro","status":"publish","type":"page","link":"https:\/\/investingora.com\/pt\/currency-converter-pro\/","title":{"rendered":"Currency Converter Pro"},"content":{"rendered":"\n<!-- ============================================================\n     investingora.com \u2014 Conversor de Moedas\n     WordPress Custom HTML Block \u2014 Vers\u00e3o Isolada\n     Sem depend\u00eancias externas | CSS totalmente encapsulado\n     ============================================================ -->\n\n<style>\n\/* \u2500\u2500 RESET ISOLADO: afeta apenas #inv-converter e filhos \u2500\u2500 *\/\n#inv-converter,#inv-converter *,#inv-converter *::before,#inv-converter *::after{box-sizing:border-box;margin:0;padding:0}\n#inv-converter{\n  --inv-bg:#f5f4f0;\n  --inv-white:#ffffff;\n  --inv-alt:#eeede7;\n  --inv-border:#e2e1db;\n  --inv-ink:#1c1c1a;\n  --inv-dim:#6a6a62;\n  --inv-muted:#a9a99d;\n  --inv-red:#c0392b;\n  --inv-green:#1a8c5b;\n  --inv-green-bg:#e8f5ee;\n  --inv-red-bg:#fdecea;\n  --inv-r:14px;\n  --inv-rs:9px;\n  --inv-s1:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);\n  --inv-s2:0 4px 18px rgba(0,0,0,.08),0 2px 6px rgba(0,0,0,.04);\n  font-family:'Segoe UI',system-ui,-apple-system,sans-serif;\n  font-size:14px;\n  color:var(--inv-ink);\n  background:var(--inv-bg);\n  width:100%;\n  padding:0 0 32px 0;\n  line-height:1.5;\n}\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n#inv-converter .inv-header{\n  background:var(--inv-white);\n  border-bottom:1px solid var(--inv-border);\n  padding:0 28px;\n  height:58px;\n  display:flex;align-items:center;justify-content:space-between;\n  box-shadow:var(--inv-s1);\n  margin-bottom:0;\n}\n#inv-converter .inv-logo{display:flex;align-items:center;gap:10px}\n#inv-converter .inv-logo-icon{\n  width:34px;height:34px;background:var(--inv-ink);border-radius:8px;\n  display:flex;align-items:center;justify-content:center;\n  color:#fff;font-size:12px;font-weight:800;letter-spacing:-.5px;\n}\n#inv-converter .inv-logo-text{\n  font-size:19px;font-weight:800;letter-spacing:-.5px;color:var(--inv-ink);\n}\n#inv-converter .inv-logo-text span{color:var(--inv-red)}\n#inv-converter .inv-header-right{display:flex;align-items:center;gap:14px}\n#inv-converter .inv-live{\n  display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;\n  color:var(--inv-green);background:var(--inv-green-bg);padding:5px 12px;border-radius:20px;\n}\n#inv-converter .inv-live-dot{\n  width:7px;height:7px;background:var(--inv-green);border-radius:50%;\n  animation:inv-pulse 2s infinite;\n}\n@keyframes inv-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}\n#inv-converter .inv-lang{\n  font-family:inherit;font-size:12.5px;font-weight:600;color:var(--inv-dim);\n  background:none;border:1.5px solid var(--inv-border);padding:5px 28px 5px 10px;\n  border-radius:8px;cursor:pointer;appearance:none;\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236a6a62'\/%3E%3C\/svg%3E\");\n  background-repeat:no-repeat;background-position:right 9px center;\n  outline:none;\n}\n\n\/* \u2500\u2500 TICKER \u2500\u2500 *\/\n#inv-converter .inv-ticker{\n  background:var(--inv-ink);height:32px;overflow:hidden;\n  display:flex;align-items:center;\n}\n#inv-converter .inv-ticker-inner{\n  display:flex;white-space:nowrap;\n  animation:inv-scroll 50s linear infinite;\n}\n#inv-converter .inv-ticker-inner:hover{animation-play-state:paused}\n#inv-converter .inv-tick{\n  display:inline-flex;align-items:center;gap:7px;\n  padding:0 22px;font-size:11.5px;font-family:'Courier New',monospace;\n  border-right:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);\n}\n#inv-converter .inv-tick b{color:#fff;font-weight:600}\n#inv-converter .inv-tick .up{color:#4ecf8b}\n#inv-converter .inv-tick .dn{color:#f07070}\n@keyframes inv-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}\n\n\/* \u2500\u2500 GRID PRINCIPAL \u2500\u2500 *\/\n#inv-converter .inv-main{\n  max-width:1240px;margin:0 auto;padding:28px 24px;\n  display:grid;grid-template-columns:1fr 340px;gap:22px;\n}\n@media(max-width:860px){\n  #inv-converter .inv-main{grid-template-columns:1fr;padding:18px 14px}\n  #inv-converter .inv-sidebar{grid-row:auto!important}\n}\n\n\/* \u2500\u2500 CARD BASE \u2500\u2500 *\/\n#inv-converter .inv-card{\n  background:var(--inv-white);border-radius:var(--inv-r);\n  border:1px solid var(--inv-border);box-shadow:var(--inv-s2);\n}\n\n\/* \u2500\u2500 CONVERTER CARD \u2500\u2500 *\/\n#inv-converter .inv-conv{padding:30px;grid-column:1;grid-row:1}\n#inv-converter .inv-conv-title{\n  font-size:26px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px;\n}\n#inv-converter .inv-conv-sub{font-size:12.5px;color:var(--inv-muted);margin-bottom:26px}\n\n#inv-converter .inv-row{\n  display:grid;grid-template-columns:1fr 48px 1fr;align-items:end;gap:8px;\n}\n#inv-converter .inv-grp{display:flex;flex-direction:column;gap:7px}\n#inv-converter .inv-lbl{\n  font-size:10.5px;font-weight:700;letter-spacing:.09em;\n  text-transform:uppercase;color:var(--inv-muted);\n}\n#inv-converter .inv-picker{\n  display:flex;align-items:center;gap:9px;background:var(--inv-alt);\n  border:1.5px solid var(--inv-border);border-radius:var(--inv-rs);\n  padding:9px 13px;transition:border-color .2s;\n}\n#inv-converter .inv-picker:focus-within{border-color:var(--inv-ink)}\n#inv-converter .inv-flag{font-size:19px;flex-shrink:0;line-height:1}\n#inv-converter .inv-picker select{\n  font-family:inherit;font-size:14px;font-weight:700;color:var(--inv-ink);\n  background:none;border:none;outline:none;width:100%;cursor:pointer;appearance:none;\n}\n#inv-converter .inv-amount{\n  background:var(--inv-white);border:1.5px solid var(--inv-border);\n  border-radius:var(--inv-rs);padding:13px 14px;\n  font-family:'Courier New',monospace;font-size:24px;font-weight:400;\n  color:var(--inv-ink);width:100%;outline:none;transition:border-color .2s;\n}\n#inv-converter .inv-amount:focus{border-color:var(--inv-ink)}\n#inv-converter .inv-amount::placeholder{color:var(--inv-muted)}\n#inv-converter .inv-amount[readonly]{background:var(--inv-alt);color:var(--inv-dim)}\n#inv-converter .inv-note{font-size:11px;color:var(--inv-muted);margin-top:2px}\n\n#inv-converter .inv-swap{\n  width:42px;height:42px;background:var(--inv-ink);border:none;border-radius:50%;\n  color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;\n  transition:transform .35s,background .2s;align-self:center;flex-shrink:0;\n}\n#inv-converter .inv-swap:hover{background:#333;transform:rotate(180deg)}\n#inv-converter .inv-swap svg{width:15px;height:15px;stroke:currentColor;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}\n\n#inv-converter .inv-rate-row{\n  display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;\n  padding-top:14px;border-top:1px solid var(--inv-border);\n}\n#inv-converter .inv-pill{\n  font-family:'Courier New',monospace;font-size:12px;color:var(--inv-dim);\n  background:var(--inv-alt);padding:5px 12px;border-radius:20px;\n}\n#inv-converter .inv-pill b{color:var(--inv-ink);font-weight:600}\n\n\/* QUICK *\/\n#inv-converter .inv-quick{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px;align-items:center}\n#inv-converter .inv-ql{font-size:11.5px;color:var(--inv-muted);font-weight:600}\n#inv-converter .inv-qb{\n  font-family:'Courier New',monospace;font-size:11.5px;font-weight:600;\n  padding:4px 11px;border:1.5px solid var(--inv-border);border-radius:20px;\n  background:none;color:var(--inv-dim);cursor:pointer;transition:all .15s;\n}\n#inv-converter .inv-qb:hover{border-color:var(--inv-ink);color:var(--inv-ink);background:var(--inv-alt)}\n\n\/* CONV TABLE *\/\n#inv-converter .inv-ctitle{\n  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;\n  color:var(--inv-muted);margin:22px 0 10px;display:flex;align-items:center;gap:8px;\n}\n#inv-converter .inv-ctitle::after{content:'';flex:1;height:1px;background:var(--inv-border)}\n#inv-converter .inv-table{width:100%;border-collapse:collapse}\n#inv-converter .inv-table th{\n  text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;\n  color:var(--inv-muted);padding:7px 10px;background:var(--inv-alt);\n}\n#inv-converter .inv-table th:first-child{border-radius:6px 0 0 6px}\n#inv-converter .inv-table th:last-child{border-radius:0 6px 6px 0}\n#inv-converter .inv-table td{\n  padding:8px 10px;font-family:'Courier New',monospace;font-size:12.5px;\n  border-bottom:1px solid var(--inv-border);color:var(--inv-dim);\n}\n#inv-converter .inv-table td:first-child{font-weight:700;color:var(--inv-ink)}\n#inv-converter .inv-table tr:last-child td{border-bottom:none}\n#inv-converter .inv-table tr:hover td{background:var(--inv-alt)}\n\n\/* REFRESH ROW *\/\n#inv-converter .inv-refresh-row{\n  display:flex;align-items:center;justify-content:space-between;\n  margin-top:18px;padding-top:14px;border-top:1px solid var(--inv-border);\n}\n#inv-converter .inv-upd{font-size:11px;color:var(--inv-muted);display:flex;align-items:center;gap:5px}\n#inv-converter .inv-upd svg{width:12px;height:12px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}\n#inv-converter .inv-rbtn{\n  font-family:inherit;font-size:11.5px;font-weight:600;color:var(--inv-dim);\n  background:var(--inv-alt);border:1.5px solid var(--inv-border);\n  padding:5px 13px;border-radius:8px;cursor:pointer;\n  display:flex;align-items:center;gap:5px;transition:all .2s;\n}\n#inv-converter .inv-rbtn:hover{background:var(--inv-ink);color:#fff;border-color:var(--inv-ink)}\n#inv-converter .inv-rbtn svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.5;fill:none;stroke-linecap:round}\n#inv-converter .inv-rbtn.spinning svg{animation:inv-spin 1s linear infinite}\n@keyframes inv-spin{to{transform:rotate(360deg)}}\n\n\/* \u2500\u2500 SIDEBAR \u2500\u2500 *\/\n#inv-converter .inv-sidebar{\n  grid-column:2;grid-row:1\/4;height:fit-content;padding:22px;\n}\n@media(max-width:860px){\n  #inv-converter .inv-sidebar{grid-column:1;grid-row:auto}\n}\n\n#inv-converter .inv-stitle{\n  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;\n  color:var(--inv-muted);margin-bottom:14px;display:flex;align-items:center;gap:8px;\n}\n#inv-converter .inv-stitle::after{content:'';flex:1;height:1px;background:var(--inv-border)}\n\n#inv-converter .inv-search{\n  display:flex;align-items:center;gap:7px;background:var(--inv-alt);\n  border:1.5px solid var(--inv-border);border-radius:var(--inv-rs);\n  padding:7px 12px;margin-bottom:12px;transition:border-color .2s;\n}\n#inv-converter .inv-search:focus-within{border-color:var(--inv-ink);background:var(--inv-white)}\n#inv-converter .inv-search input{\n  font-family:inherit;font-size:13px;color:var(--inv-ink);\n  background:none;border:none;outline:none;width:100%;\n}\n#inv-converter .inv-search input::placeholder{color:var(--inv-muted)}\n\n#inv-converter .inv-pair{\n  display:flex;align-items:center;justify-content:space-between;\n  padding:9px 0;border-bottom:1px solid var(--inv-border);\n  cursor:pointer;transition:all .15s;border-radius:5px;\n}\n#inv-converter .inv-pair:last-child{border-bottom:none}\n#inv-converter .inv-pair:hover{background:var(--inv-alt);padding:9px 8px;margin:0 -8px}\n#inv-converter .inv-pair-name{font-family:'Courier New',monospace;font-size:12.5px;font-weight:600;color:var(--inv-ink)}\n#inv-converter .inv-pair-right{display:flex;align-items:center;gap:8px}\n#inv-converter .inv-pair-rate{font-family:'Courier New',monospace;font-size:13px;font-weight:600}\n#inv-converter .inv-badge{\n  font-size:10.5px;font-weight:700;font-family:'Courier New',monospace;\n  padding:2px 7px;border-radius:4px;min-width:58px;text-align:right;\n}\n#inv-converter .inv-badge.up{color:var(--inv-green);background:var(--inv-green-bg)}\n#inv-converter .inv-badge.dn{color:var(--inv-red);background:var(--inv-red-bg)}\n#inv-converter .inv-badge.nt{color:var(--inv-muted);background:var(--inv-alt)}\n\n\/* \u2500\u2500 BOTTOM GRID \u2500\u2500 *\/\n#inv-converter .inv-bottom{\n  grid-column:1;display:grid;grid-template-columns:1fr 1fr;gap:22px;\n}\n@media(max-width:620px){\n  #inv-converter .inv-bottom{grid-template-columns:1fr}\n}\n\n\/* CRYPTO *\/\n#inv-converter .inv-crypto-card{padding:22px}\n#inv-converter .inv-tabs{\n  display:flex;gap:3px;background:var(--inv-alt);padding:3px;\n  border-radius:9px;margin-bottom:16px;\n}\n#inv-converter .inv-tab{\n  flex:1;font-family:inherit;font-size:11.5px;font-weight:600;\n  padding:6px 8px;border:none;border-radius:7px;cursor:pointer;\n  background:none;color:var(--inv-muted);transition:all .2s;\n}\n#inv-converter .inv-tab.on{background:var(--inv-white);color:var(--inv-ink);box-shadow:var(--inv-s1)}\n\n#inv-converter .inv-crow{\n  display:flex;align-items:center;justify-content:space-between;\n  padding:9px 0;border-bottom:1px solid var(--inv-border);\n  cursor:pointer;border-radius:4px;transition:all .15s;\n}\n#inv-converter .inv-crow:last-child{border-bottom:none}\n#inv-converter .inv-crow:hover{background:var(--inv-alt);padding:9px 7px;margin:0 -7px}\n#inv-converter .inv-cleft{display:flex;align-items:center;gap:9px}\n#inv-converter .inv-cicon{\n  width:30px;height:30px;border-radius:50%;\n  display:flex;align-items:center;justify-content:center;\n  font-size:13px;font-weight:800;flex-shrink:0;\n}\n#inv-converter .inv-csym{font-size:12.5px;font-weight:700;color:var(--inv-ink)}\n#inv-converter .inv-cname{font-size:10.5px;color:var(--inv-muted)}\n#inv-converter .inv-cright{text-align:right}\n#inv-converter .inv-cprice{font-family:'Courier New',monospace;font-size:13px;font-weight:600;color:var(--inv-ink)}\n#inv-converter .inv-cchg{font-family:'Courier New',monospace;font-size:11px;font-weight:600}\n#inv-converter .inv-cchg.up{color:var(--inv-green)}\n#inv-converter .inv-cchg.dn{color:var(--inv-red)}\n\n\/* MARKET *\/\n#inv-converter .inv-mkt-card{padding:22px}\n#inv-converter .inv-mrow{\n  display:flex;align-items:center;justify-content:space-between;\n  padding:10px 0;border-bottom:1px solid var(--inv-border);\n}\n#inv-converter .inv-mrow:last-child{border-bottom:none}\n#inv-converter .inv-mname{font-size:13px;font-weight:600;color:var(--inv-ink)}\n#inv-converter .inv-mtime{font-size:10.5px;color:var(--inv-muted);margin-top:1px}\n#inv-converter .inv-ms{\n  font-size:10.5px;font-weight:700;letter-spacing:.04em;\n  padding:3px 10px;border-radius:20px;text-transform:uppercase;\n}\n#inv-converter .inv-ms.op{background:var(--inv-green-bg);color:var(--inv-green)}\n#inv-converter .inv-ms.cl{background:var(--inv-alt);color:var(--inv-muted)}\n#inv-converter .inv-ms.pr{background:#fff8e6;color:#b8860b}\n\n\/* MINI CHART *\/\n#inv-converter .inv-bars{\n  display:flex;align-items:flex-end;gap:3px;height:38px;margin-top:6px;\n}\n#inv-converter .inv-bar{\n  flex:1;border-radius:3px 3px 0 0;background:var(--inv-alt);transition:background .2s;\n}\n#inv-converter .inv-bar.today{background:var(--inv-ink)}\n#inv-converter .inv-bar.past{background:rgba(26,140,91,.22)}\n#inv-converter .inv-bar-labels{\n  display:flex;justify-content:space-between;margin-top:5px;\n}\n#inv-converter .inv-bar-labels span{font-size:9.5px;color:var(--inv-muted)}\n\n\/* \u2500\u2500 ALL PAIRS \u2500\u2500 *\/\n#inv-converter .inv-all{\n  grid-column:1;padding:26px 30px;margin-top:0;\n}\n@media(max-width:860px){\n  #inv-converter .inv-all{grid-column:1}\n}\n#inv-converter .inv-all-header{\n  display:flex;align-items:center;justify-content:space-between;\n  flex-wrap:wrap;gap:12px;margin-bottom:18px;\n}\n#inv-converter .inv-all-title{font-size:19px;font-weight:800;letter-spacing:-.3px}\n#inv-converter .inv-all-search{\n  display:flex;align-items:center;gap:7px;background:var(--inv-alt);\n  border:1.5px solid var(--inv-border);border-radius:var(--inv-rs);\n  padding:7px 13px;width:240px;transition:border-color .2s;\n}\n#inv-converter .inv-all-search:focus-within{border-color:var(--inv-ink);background:var(--inv-white)}\n#inv-converter .inv-all-search input{\n  font-family:inherit;font-size:13px;color:var(--inv-ink);\n  background:none;border:none;outline:none;width:100%;\n}\n#inv-converter .inv-all-search input::placeholder{color:var(--inv-muted)}\n\n#inv-converter .inv-grid{\n  display:grid;grid-template-columns:repeat(4,1fr);\n  gap:1px;background:var(--inv-border);border-radius:10px;overflow:hidden;\n}\n@media(max-width:640px){\n  #inv-converter .inv-grid{grid-template-columns:repeat(2,1fr)}\n}\n#inv-converter .inv-cell{\n  background:var(--inv-white);padding:11px 14px;cursor:pointer;\n  display:flex;align-items:center;justify-content:space-between;\n  transition:background .12s;\n}\n#inv-converter .inv-cell:hover{background:var(--inv-alt)}\n#inv-converter .inv-cell-name{font-family:'Courier New',monospace;font-size:12px;font-weight:600;color:var(--inv-ink)}\n#inv-converter .inv-cell-rate{font-family:'Courier New',monospace;font-size:12px;color:var(--inv-dim)}\n\n\/* FOOTER *\/\n#inv-converter .inv-footer{\n  background:var(--inv-white);border-top:1px solid var(--inv-border);\n  padding:16px 28px;display:flex;align-items:center;justify-content:space-between;\n  flex-wrap:wrap;gap:8px;margin-top:0;\n}\n#inv-converter .inv-fn{font-size:11px;color:var(--inv-muted)}\n#inv-converter .inv-fl{font-size:14px;font-weight:800;letter-spacing:-.3px;color:var(--inv-dim)}\n#inv-converter .inv-fl span{color:var(--inv-red)}\n<\/style>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 HTML \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div id=\"inv-converter\">\n\n  <!-- HEADER -->\n  <div class=\"inv-header\">\n    <div class=\"inv-logo\">\n      <div class=\"inv-logo-icon\">IN<\/div>\n      <span class=\"inv-logo-text\">investing<span>ora.com<\/span><\/span>\n    <\/div>\n    <div class=\"inv-header-right\">\n      <div class=\"inv-live\">\n        <div class=\"inv-live-dot\"><\/div>\n        Cota\u00e7\u00f5es ao vivo\n      <\/div>\n      <select class=\"inv-lang\" onchange=\"invSetLang(this.value)\">\n        <option value=\"pt\">\ud83c\udde7\ud83c\uddf7 PT<\/option>\n        <option value=\"en\">\ud83c\uddfa\ud83c\uddf8 EN<\/option>\n      <\/select>\n    <\/div>\n  <\/div>\n\n  <!-- TICKER -->\n  <div class=\"inv-ticker\">\n    <div class=\"inv-ticker-inner\" id=\"invTicker\"><\/div>\n  <\/div>\n\n  <!-- MAIN GRID -->\n  <div class=\"inv-main\">\n\n    <!-- \u2500\u2500 CONVERSOR \u2500\u2500 -->\n    <div class=\"inv-card inv-conv\">\n      <div class=\"inv-conv-title\" id=\"invConvTitle\">Conversor de Moedas<\/div>\n      <div class=\"inv-conv-sub\" id=\"invConvSub\">Cota\u00e7\u00f5es ao vivo \u00b7 +150 moedas \u00b7 Criptomoedas<\/div>\n\n      <div class=\"inv-row\">\n        <div class=\"inv-grp\">\n          <div class=\"inv-lbl\" id=\"invLblFrom\">De<\/div>\n          <div class=\"inv-picker\">\n            <span class=\"inv-flag\" id=\"invFromFlag\">\ud83c\uddfa\ud83c\uddf8<\/span>\n            <select id=\"invFrom\" onchange=\"invUpdate()\"><\/select>\n          <\/div>\n          <input class=\"inv-amount\" id=\"invFromAmt\" type=\"number\" value=\"1\" oninput=\"invConvert()\" placeholder=\"0\">\n          <div class=\"inv-note\" id=\"invFromNote\"><\/div>\n        <\/div>\n\n        <button class=\"inv-swap\" onclick=\"invSwap()\" title=\"Inverter\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M7 16V4m0 0L3 8m4-4l4 4\"\/><path d=\"M17 8v12m0 0l4-4m-4 4l-4-4\"\/><\/svg>\n        <\/button>\n\n        <div class=\"inv-grp\">\n          <div class=\"inv-lbl\" id=\"invLblTo\">Para<\/div>\n          <div class=\"inv-picker\">\n            <span class=\"inv-flag\" id=\"invToFlag\">\ud83c\udde7\ud83c\uddf7<\/span>\n            <select id=\"invTo\" onchange=\"invUpdate()\"><\/select>\n          <\/div>\n          <input class=\"inv-amount\" id=\"invToAmt\" readonly placeholder=\"0\">\n          <div class=\"inv-note\" id=\"invToNote\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"inv-rate-row\" id=\"invRateRow\">\n        <span class=\"inv-pill\">Carregando\u2026<\/span>\n      <\/div>\n\n      <div class=\"inv-quick\">\n        <span class=\"inv-ql\" id=\"invQlbl\">R\u00e1pido:<\/span>\n        <button class=\"inv-qb\" onclick=\"invQty(1)\">1<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(5)\">5<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(10)\">10<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(50)\">50<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(100)\">100<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(500)\">500<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(1000)\">1K<\/button>\n        <button class=\"inv-qb\" onclick=\"invQty(10000)\">10K<\/button>\n      <\/div>\n\n      <div class=\"inv-ctitle\" id=\"invTblTitle\">Tabela de convers\u00e3o<\/div>\n      <table class=\"inv-table\">\n        <thead><tr>\n          <th id=\"invTh0\">Montante<\/th>\n          <th id=\"invThFrom\">USD<\/th>\n          <th id=\"invThTo\">BRL<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"invTbody\"><\/tbody>\n      <\/table>\n\n      <div class=\"inv-refresh-row\">\n        <div class=\"inv-upd\">\n          <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n          <span id=\"invUpdLbl\">Atualizado:<\/span> <span id=\"invTime\">\u2014<\/span>\n        <\/div>\n        <button class=\"inv-rbtn\" id=\"invRbtn\" onclick=\"invRefresh()\">\n          <svg viewBox=\"0 0 24 24\"><polyline points=\"23 4 23 10 17 10\"\/><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"\/><\/svg>\n          <span id=\"invRbtnLbl\">Atualizar<\/span>\n        <\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 SIDEBAR PARES \u2500\u2500 -->\n    <div class=\"inv-card inv-sidebar\">\n      <div class=\"inv-stitle\" id=\"invSideTitle\">Pares populares (vs USD)<\/div>\n      <div class=\"inv-search\">\n        <span style=\"color:var(--inv-muted);font-size:13px\">\ud83d\udd0d<\/span>\n        <input type=\"text\" id=\"invPairSearch\" placeholder=\"Buscar par\u2026\" oninput=\"invFilterPairs()\">\n      <\/div>\n      <div id=\"invPairList\"><\/div>\n    <\/div>\n\n    <!-- \u2500\u2500 BOTTOM ROW \u2500\u2500 -->\n    <div class=\"inv-bottom\">\n\n      <!-- CRYPTO -->\n      <div class=\"inv-card inv-crypto-card\">\n        <div class=\"inv-stitle\" id=\"invCryptoTitle\">Pre\u00e7os cripto (USD)<\/div>\n        <div class=\"inv-tabs\">\n          <button class=\"inv-tab on\" onclick=\"invCTab('top',this)\" id=\"invTab0\">Top Moedas<\/button>\n          <button class=\"inv-tab\" onclick=\"invCTab('defi',this)\" id=\"invTab1\">DeFi<\/button>\n          <button class=\"inv-tab\" onclick=\"invCTab('stable',this)\" id=\"invTab2\">Stablecoins<\/button>\n        <\/div>\n        <div id=\"invCryptoList\"><\/div>\n      <\/div>\n\n      <!-- MARKET STATUS -->\n      <div class=\"inv-card inv-mkt-card\">\n        <div class=\"inv-stitle\" id=\"invMktTitle\">Status dos mercados<\/div>\n        <div id=\"invMktList\"><\/div>\n        <div style=\"margin-top:20px\">\n          <div class=\"inv-stitle\" id=\"invChartTitle\">Hist\u00f3rico 7 dias (USD\/BRL)<\/div>\n          <div class=\"inv-bars\" id=\"invBars\"><\/div>\n          <div class=\"inv-bar-labels\">\n            <span>Seg<\/span><span>Ter<\/span><span>Qua<\/span>\n            <span>Qui<\/span><span>Sex<\/span><span>S\u00e1b<\/span><span>Dom<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div><!-- \/bottom -->\n\n    <!-- \u2500\u2500 ALL PAIRS FULL WIDTH \u2500\u2500 -->\n    <div class=\"inv-card inv-all\" style=\"grid-column:1\">\n      <div class=\"inv-all-header\">\n        <div class=\"inv-all-title\" id=\"invAllTitle\">Todos os pares de moedas<\/div>\n        <div class=\"inv-all-search\">\n          <span style=\"color:var(--inv-muted);font-size:13px\">\ud83d\udd0d<\/span>\n          <input type=\"text\" id=\"invAllSearch\" placeholder=\"Filtrar\u2026\" oninput=\"invFilterAll()\">\n        <\/div>\n      <\/div>\n      <div class=\"inv-grid\" id=\"invGrid\"><\/div>\n    <\/div>\n\n  <\/div><!-- \/main -->\n\n  <!-- FOOTER -->\n  <div class=\"inv-footer\">\n    <span class=\"inv-fn\" id=\"invFootNote\">Dados: exchangerate-api.com \u00b7 Apenas informativo<\/span>\n    <span class=\"inv-fl\">investing<span>ora.com<\/span><\/span>\n  <\/div>\n\n<\/div><!-- \/#inv-converter -->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 JS (escopo local) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n(function(){\n'use strict';\n\n\/\/ \u2500\u2500 DADOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst FLAGS={USD:'\ud83c\uddfa\ud83c\uddf8',EUR:'\ud83c\uddea\ud83c\uddfa',GBP:'\ud83c\uddec\ud83c\udde7',JPY:'\ud83c\uddef\ud83c\uddf5',BRL:'\ud83c\udde7\ud83c\uddf7',CNY:'\ud83c\udde8\ud83c\uddf3',CAD:'\ud83c\udde8\ud83c\udde6',AUD:'\ud83c\udde6\ud83c\uddfa',CHF:'\ud83c\udde8\ud83c\udded',HKD:'\ud83c\udded\ud83c\uddf0',SEK:'\ud83c\uddf8\ud83c\uddea',NOK:'\ud83c\uddf3\ud83c\uddf4',DKK:'\ud83c\udde9\ud83c\uddf0',NZD:'\ud83c\uddf3\ud83c\uddff',SGD:'\ud83c\uddf8\ud83c\uddec',MXN:'\ud83c\uddf2\ud83c\uddfd',INR:'\ud83c\uddee\ud83c\uddf3',ZAR:'\ud83c\uddff\ud83c\udde6',ARS:'\ud83c\udde6\ud83c\uddf7',CLP:'\ud83c\udde8\ud83c\uddf1',COP:'\ud83c\udde8\ud83c\uddf4',PEN:'\ud83c\uddf5\ud83c\uddea',UYU:'\ud83c\uddfa\ud83c\uddfe',BOB:'\ud83c\udde7\ud83c\uddf4',PYG:'\ud83c\uddf5\ud83c\uddfe',KRW:'\ud83c\uddf0\ud83c\uddf7',THB:'\ud83c\uddf9\ud83c\udded',IDR:'\ud83c\uddee\ud83c\udde9',MYR:'\ud83c\uddf2\ud83c\uddfe',PHP:'\ud83c\uddf5\ud83c\udded',VND:'\ud83c\uddfb\ud83c\uddf3',TWD:'\ud83c\uddf9\ud83c\uddfc',PLN:'\ud83c\uddf5\ud83c\uddf1',HUF:'\ud83c\udded\ud83c\uddfa',CZK:'\ud83c\udde8\ud83c\uddff',RON:'\ud83c\uddf7\ud83c\uddf4',TRY:'\ud83c\uddf9\ud83c\uddf7',RUB:'\ud83c\uddf7\ud83c\uddfa',UAH:'\ud83c\uddfa\ud83c\udde6',SAR:'\ud83c\uddf8\ud83c\udde6',AED:'\ud83c\udde6\ud83c\uddea',ILS:'\ud83c\uddee\ud83c\uddf1',EGP:'\ud83c\uddea\ud83c\uddec',QAR:'\ud83c\uddf6\ud83c\udde6',KWD:'\ud83c\uddf0\ud83c\uddfc',NGN:'\ud83c\uddf3\ud83c\uddec',KES:'\ud83c\uddf0\ud83c\uddea',MAD:'\ud83c\uddf2\ud83c\udde6',PKR:'\ud83c\uddf5\ud83c\uddf0',BDT:'\ud83c\udde7\ud83c\udde9',BGN:'\ud83c\udde7\ud83c\uddec',HRK:'\ud83c\udded\ud83c\uddf7',ISK:'\ud83c\uddee\ud83c\uddf8',JMD:'\ud83c\uddef\ud83c\uddf2',TTD:'\ud83c\uddf9\ud83c\uddf9'};\n\nconst NAMES={USD:'D\u00f3lar Americano',EUR:'Euro',GBP:'Libra Esterlina',JPY:'Iene Japon\u00eas',BRL:'Real Brasileiro',CNY:'Yuan Chin\u00eas',CAD:'D\u00f3lar Canadense',AUD:'D\u00f3lar Australiano',CHF:'Franco Su\u00ed\u00e7o',HKD:'D\u00f3lar de Hong Kong',SEK:'Coroa Sueca',NOK:'Coroa Norueguesa',DKK:'Coroa Dinamarquesa',NZD:'D\u00f3lar Neozeland\u00eas',SGD:'D\u00f3lar de Singapura',MXN:'Peso Mexicano',INR:'Rupia Indiana',ZAR:'Rand Sul-Africano',ARS:'Peso Argentino',CLP:'Peso Chileno',COP:'Peso Colombiano',PEN:'Sol Peruano',KRW:'Won Coreano',THB:'Baht Tailand\u00eas',IDR:'Rupia Indon\u00e9sia',MYR:'Ringgit Malaio',PHP:'Peso Filipino',VND:'Dong Vietnamita',TWD:'D\u00f3lar Taiwan\u00eas',PLN:'Zloty Polon\u00eas',HUF:'Forint H\u00fangaro',CZK:'Coroa Tcheca',RON:'Leu Romeno',TRY:'Lira Turca',SAR:'Riyal Saudita',AED:'Dirham EAU',ILS:'Shekel Israelense',EGP:'Libra Eg\u00edpcia',QAR:'Riyal Qatar',KWD:'Dinar Kuwaitiano',NGN:'Naira Nigeriana',KES:'Xelim Queniano',MAD:'Dirham Marroquino',PKR:'Rupia Paquistanesa',BDT:'Taka Bangladeshiano',UAH:'Hryvnia Ucraniana',UYU:'Peso Uruguaio',BOB:'Boliviano',PYG:'Guarani Paraguaio',BGN:'Lev B\u00falgaro',HRK:'Kuna Croata',ISK:'Coroa Islandesa',JMD:'D\u00f3lar Jamaicano',TTD:'D\u00f3lar Trinidad'};\n\nconst CRYPTO_TABS={\n  top:[{s:'BTC',n:'Bitcoin',i:'\u20bf',c:'#F7931A',b:'#fff4e6'},{s:'ETH',n:'Ethereum',i:'\u039e',c:'#627EEA',b:'#f0f2ff'},{s:'SOL',n:'Solana',i:'\u25ce',c:'#9945FF',b:'#f5efff'},{s:'BNB',n:'BNB',i:'\u25c6',c:'#F3BA2F',b:'#fffaec'},{s:'XRP',n:'XRP',i:'\u2715',c:'#00AAE4',b:'#e6f7ff'},{s:'ADA',n:'Cardano',i:'\u2b21',c:'#0033AD',b:'#eef1ff'},{s:'DOGE',n:'Dogecoin',i:'\u00d0',c:'#C2A633',b:'#fafaec'},{s:'DOT',n:'Polkadot',i:'\u25cf',c:'#E6007A',b:'#ffe8f5'}],\n  defi:[{s:'UNI',n:'Uniswap',i:'\ud83e\udd84',c:'#FF007A',b:'#ffe6f3'},{s:'LINK',n:'Chainlink',i:'\u2b21',c:'#375BD2',b:'#eef1ff'},{s:'AAVE',n:'Aave',i:'A',c:'#B6509E',b:'#f5ebff'},{s:'COMP',n:'Compound',i:'\u023b',c:'#00D395',b:'#e6fff7'},{s:'MKR',n:'Maker',i:'M',c:'#1AAB9B',b:'#e6faf8'},{s:'SNX',n:'Synthetix',i:'S',c:'#00D1FF',b:'#e5faff'},{s:'CRV',n:'Curve',i:'C',c:'#4D4DE8',b:'#eeeeff'},{s:'SUSHI',n:'SushiSwap',i:'\ud83c\udf63',c:'#FA52A0',b:'#ffecf6'}],\n  stable:[{s:'USDT',n:'Tether',i:'\u20ae',c:'#26A17B',b:'#e9f7f3'},{s:'USDC',n:'USD Coin',i:'$',c:'#2775CA',b:'#edf5ff'},{s:'BUSD',n:'Binance USD',i:'$',c:'#F0B90B',b:'#fffae8'},{s:'DAI',n:'Dai',i:'\u25c8',c:'#F5AC37',b:'#fff8ee'},{s:'TUSD',n:'TrueUSD',i:'$',c:'#1E3799',b:'#eef2ff'},{s:'FRAX',n:'Frax',i:'F',c:'#111',b:'#f5f5f5'}]\n};\n\nlet CP={BTC:{p:94320,c:2.14},ETH:{p:3280,c:1.87},SOL:{p:182,c:3.21},BNB:{p:605,c:0.92},XRP:{p:0.58,c:1.45},ADA:{p:0.48,c:-0.73},DOGE:{p:0.142,c:4.21},DOT:{p:7.8,c:-1.12},UNI:{p:9.4,c:2.3},LINK:{p:14.8,c:1.1},AAVE:{p:88,c:0.9},COMP:{p:52,c:-0.4},MKR:{p:1420,c:1.8},SNX:{p:2.1,c:-2.1},CRV:{p:0.54,c:3.2},SUSHI:{p:1.12,c:0.7},USDT:{p:1,c:0.01},USDC:{p:1,c:0},BUSD:{p:1,c:-0.01},DAI:{p:1,c:0},TUSD:{p:1,c:0.01},FRAX:{p:0.9998,c:0}};\n\nlet PP=[{p:'EUR\/USD',r:1.0842,ch:0.15},{p:'GBP\/USD',r:1.2735,ch:0.08},{p:'USD\/JPY',r:153.42,ch:-0.22},{p:'USD\/BRL',r:5.03,ch:0.41},{p:'USD\/CNY',r:7.23,ch:0.05},{p:'AUD\/USD',r:0.6514,ch:-0.18},{p:'USD\/CAD',r:1.365,ch:0.12},{p:'EUR\/GBP',r:0.8514,ch:0.09},{p:'USD\/CHF',r:0.9012,ch:-0.06},{p:'NZD\/USD',r:0.5982,ch:0.21},{p:'USD\/SGD',r:1.346,ch:-0.03},{p:'USD\/MXN',r:16.84,ch:0.32},{p:'USD\/INR',r:83.42,ch:0.07},{p:'USD\/ZAR',r:18.65,ch:-0.45},{p:'EUR\/JPY',r:166.3,ch:-0.11}];\n\nconst MKTS=[{n:'Forex (Global)',t:'24\/5 \u00b7 Fechado fins de semana',s:'op'},{n:'NYSE \/ NASDAQ',t:'9:30\u201316:00 EST',s:'op'},{n:'Bolsa de Londres',t:'8:00\u201316:30 GMT',s:'cl'},{n:'Bolsa de T\u00f3quio',t:'9:00\u201315:30 JST',s:'cl'},{n:'Bolsa de Frankfurt',t:'9:00\u201317:30 CET',s:'cl'},{n:'Bolsa de Xangai',t:'9:30\u201315:00 CST',s:'cl'},{n:'Mercados Crypto',t:'24\/7 \u00b7 Sempre aberto',s:'op'},{n:'Futuros (CME)',t:'Dom 18h \u2013 Sex 17h',s:'pr'}];\n\nlet RATES={USD:1,EUR:0.9221,GBP:0.7851,JPY:153.42,BRL:5.03,CNY:7.23,CAD:1.365,AUD:1.534,CHF:0.9012,HKD:7.829,SEK:10.48,NOK:10.72,DKK:6.882,NZD:1.672,SGD:1.346,MXN:16.84,INR:83.42,ZAR:18.65,ARS:871.5,CLP:942.3,COP:3875,PEN:3.71,KRW:1342,THB:34.82,IDR:15780,MYR:4.72,PHP:56.2,VND:24850,TWD:31.85,PLN:3.981,HUF:358.2,CZK:23.14,RON:4.569,TRY:32.18,SAR:3.751,AED:3.673,ILS:3.682,EGP:48.7,QAR:3.641,KWD:0.307,NGN:1580,KES:129.4,MAD:9.97,PKR:278.5,BDT:109.8,UAH:39.5,UYU:38.6,BOB:6.91,PYG:7320,BGN:1.803,HRK:6.982,ISK:139.2,JMD:155.4,TTD:6.79};\n\nlet curCTab='top';\n\n\/\/ \u2500\u2500 UTILS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction $(id){return document.getElementById(id)}\nfunction fmt(n){\n  if(n>=1000)return n.toLocaleString('pt-BR',{maximumFractionDigits:2});\n  if(n>=1)return n.toFixed(4);\n  return n.toFixed(6);\n}\n\n\/\/ \u2500\u2500 SELECTS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildSelects(){\n  const fEl=$('invFrom'),tEl=$('invTo');\n  const fv=fEl.value||'USD',tv=tEl.value||'BRL';\n  const sorted=Object.keys(RATES).sort();\n  const html=sorted.map(c=>{\n    const f=FLAGS[c]||'\ud83c\udff3',nm=NAMES[c]||c;\n    return`<option value=\"${c}\">${f} ${c} \u2014 ${nm}<\/option>`;\n  }).join('');\n  fEl.innerHTML=html; tEl.innerHTML=html;\n  fEl.value=fv; tEl.value=tv;\n  updFlags();\n}\n\nfunction updFlags(){\n  const f=$('invFrom').value,t=$('invTo').value;\n  $('invFromFlag').textContent=FLAGS[f]||'\ud83c\udff3';\n  $('invToFlag').textContent=FLAGS[t]||'\ud83c\udff3';\n}\n\n\/\/ \u2500\u2500 CONVERS\u00c3O \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction invConvert(){\n  const f=$('invFrom').value,t=$('invTo').value;\n  const amt=parseFloat($('invFromAmt').value)||0;\n  const fr=RATES[f]||1,tr=RATES[t]||1;\n  const res=(amt\/fr)*tr;\n  $('invToAmt').value=amt===0?'':fmt(res);\n  const rate=tr\/fr,inv=fr\/tr;\n  $('invRateRow').innerHTML=`<span class=\"inv-pill\"><b>1 ${f}<\/b> = ${fmt(rate)} ${t}<\/span><span class=\"inv-pill\"><b>1 ${t}<\/b> = ${fmt(inv)} ${f}<\/span>`;\n  $('invFromNote').textContent=`1 ${f} = ${fmt(rate)} ${t}`;\n  $('invToNote').textContent=`1 ${t} = ${fmt(inv)} ${f}`;\n  buildTable(f,t,fr,tr);\n}\n\nfunction invUpdate(){updFlags();invConvert();}\n\nfunction buildTable(f,t,fr,tr){\n  const amts=[0.5,1,5,10,25,50,100,250,500,1000,5000,10000];\n  const rate=tr\/fr;\n  $('invThFrom').textContent=f;\n  $('invThTo').textContent=t;\n  $('invTbody').innerHTML=amts.map(a=>`<tr><td>${a.toLocaleString('pt-BR')}<\/td><td>${a.toLocaleString('pt-BR')} ${f}<\/td><td>${fmt(a*rate)} ${t}<\/td><\/tr>`).join('');\n}\n\nfunction invSwap(){\n  const f=$('invFrom'),t=$('invTo'),tmp=f.value;\n  f.value=t.value;t.value=tmp;invUpdate();\n}\n\nfunction invQty(v){$('invFromAmt').value=v;invConvert();}\n\n\/\/ \u2500\u2500 POPULAR PAIRS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildPairs(q=''){\n  const list=q?PP.filter(x=>x.p.toLowerCase().includes(q.toLowerCase())):PP;\n  $('invPairList').innerHTML=list.map(x=>{\n    const cls=x.ch>0?'up':x.ch<0?'dn':'nt';\n    const sign=x.ch>0?'+':'';\n    return`<div class=\"inv-pair\" onclick=\"invSetPair('${x.p}')\"><span class=\"inv-pair-name\">${x.p}<\/span><div class=\"inv-pair-right\"><span class=\"inv-pair-rate\">${x.r.toFixed(4)}<\/span><span class=\"inv-badge ${cls}\">${sign}${x.ch.toFixed(2)}%<\/span><\/div><\/div>`;\n  }).join('');\n}\n\nfunction invFilterPairs(){buildPairs($('invPairSearch').value);}\n\nfunction invSetPair(pair){\n  const[f,t]=pair.split('\/');\n  if(RATES[f]&&RATES[t]){$('invFrom').value=f;$('invTo').value=t;invUpdate();}\n}\n\n\/\/ \u2500\u2500 CRYPTO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildCrypto(tab){\n  $('invCryptoList').innerHTML=CRYPTO_TABS[tab].map(c=>{\n    const d=CP[c.s]||{p:100,c:0};\n    const cls=d.c>=0?'up':'dn';\n    const sign=d.c>=0?'+':'';\n    const pr=d.p>=1000?'$'+d.p.toLocaleString('en-US',{maximumFractionDigits:2}):'$'+d.p.toFixed(d.p>=1?4:6);\n    return`<div class=\"inv-crow\"><div class=\"inv-cleft\"><div class=\"inv-cicon\" style=\"background:${c.b};color:${c.c}\">${c.i}<\/div><div><div class=\"inv-csym\">${c.s}<\/div><div class=\"inv-cname\">${c.n}<\/div><\/div><\/div><div class=\"inv-cright\"><div class=\"inv-cprice\">${pr}<\/div><div class=\"inv-cchg ${cls}\">${sign}${d.c.toFixed(2)}%<\/div><\/div><\/div>`;\n  }).join('');\n}\n\nfunction invCTab(tab,btn){\n  curCTab=tab;\n  document.querySelectorAll('#inv-converter .inv-tab').forEach(b=>b.classList.remove('on'));\n  btn.classList.add('on');\n  buildCrypto(tab);\n}\n\n\/\/ \u2500\u2500 MERCADOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildMarkets(){\n  const isWknd=[0,6].includes(new Date().getUTCDay());\n  $('invMktList').innerHTML=MKTS.map(m=>{\n    let s=m.s;\n    if(s==='op'&&isWknd&&m.n.includes('Forex'))s='cl';\n    const lbl={op:'Aberto',cl:'Fechado',pr:'Pr\u00e9-Mkt'}[s];\n    return`<div class=\"inv-mrow\"><div><div class=\"inv-mname\">${m.n}<\/div><div class=\"inv-mtime\">${m.t}<\/div><\/div><span class=\"inv-ms ${s}\">${lbl}<\/span><\/div>`;\n  }).join('');\n}\n\n\/\/ \u2500\u2500 MINI CHART \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildChart(){\n  const v=[4.94,4.97,5.01,5.03,4.99,5.05,5.02];\n  const mx=Math.max(...v),mn=Math.min(...v);\n  const td=new Date().getDay();\n  $('invBars').innerHTML=v.map((x,i)=>{\n    const h=Math.round(((x-mn)\/(mx-mn))*28+8);\n    const cls=i===td-1?'today':'past';\n    return`<div class=\"inv-bar ${cls}\" style=\"height:${h}px\" title=\"${x}\"><\/div>`;\n  }).join('');\n}\n\n\/\/ \u2500\u2500 ALL PAIRS GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildGrid(q=''){\n  const all=Object.keys(RATES).filter(c=>c!=='USD').map(c=>({p:`USD\/${c}`,r:RATES[c],f:FLAGS[c]||'\ud83c\udff3'}));\n  const list=q?all.filter(x=>x.p.toLowerCase().includes(q.toLowerCase())):all;\n  $('invGrid').innerHTML=list.slice(0,120).map(x=>`<div class=\"inv-cell\" onclick=\"invSetAll('${x.p}')\"><span class=\"inv-cell-name\">${x.f} ${x.p}<\/span><span class=\"inv-cell-rate\">${fmt(x.r)}<\/span><\/div>`).join('');\n}\n\nfunction invFilterAll(){buildGrid($('invAllSearch').value);}\n\nfunction invSetAll(pair){\n  const[f,t]=pair.split('\/');\n  $('invFrom').value=f;$('invTo').value=t;invUpdate();\n  $('inv-converter').scrollIntoView({behavior:'smooth'});\n}\n\n\/\/ \u2500\u2500 TICKER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildTicker(){\n  const extra=[{p:'USD\/KRW',r:RATES.KRW||1342,ch:0.12},{p:'USD\/THB',r:RATES.THB||34.82,ch:-0.08},{p:'USD\/ARS',r:RATES.ARS||871.5,ch:0.55}];\n  const items=[...PP,...extra];\n  const html=[...items,...items].map(x=>{\n    const cls=x.ch>0?'up':x.ch<0?'dn':'';\n    const arrow=x.ch>0?'\u25b2':x.ch<0?'\u25bc':'';\n    return`<div class=\"inv-tick\"><b>${x.p}<\/b><span>${x.r.toFixed(4)}<\/span><span class=\"${cls}\">${arrow} ${Math.abs(x.ch).toFixed(2)}%<\/span><\/div>`;\n  }).join('');\n  $('invTicker').innerHTML=html;\n}\n\n\/\/ \u2500\u2500 LIVE RATES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nasync function fetchRates(){\n  try{\n    const r=await fetch('https:\/\/api.exchangerate-api.com\/v4\/latest\/USD');\n    if(!r.ok)throw 0;\n    const d=await r.json();\n    RATES=d.rates;\n    buildSelects();invUpdate();buildGrid();buildPairs();\n    $('invTime').textContent=new Date().toLocaleTimeString('pt-BR');\n  }catch(e){\n    $('invTime').textContent=new Date().toLocaleTimeString('pt-BR')+' (cache)';\n  }\n}\n\n\/\/ \u2500\u2500 REFRESH \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nasync function invRefresh(){\n  const btn=$('invRbtn');\n  btn.classList.add('spinning');btn.disabled=true;\n  await fetchRates();\n  setTimeout(()=>{btn.classList.remove('spinning');btn.disabled=false;},800);\n}\nwindow.invRefresh=invRefresh;\n\n\/\/ \u2500\u2500 FLUTUA\u00c7\u00c3O \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction fluctuate(){\n  PP.forEach(x=>{x.r*=1+(Math.random()-.5)*.0004;x.r=Math.round(x.r*10000)\/10000;x.ch+=((Math.random()-.5)*.05);x.ch=Math.round(x.ch*100)\/100;});\n  Object.keys(CP).forEach(k=>{CP[k].p*=1+(Math.random()-.5)*.003;CP[k].c+=((Math.random()-.5)*.08);CP[k].p=Math.round(CP[k].p*100)\/100;CP[k].c=Math.round(CP[k].c*100)\/100;});\n  buildPairs();buildCrypto(curCTab);buildTicker();invConvert();\n}\n\n\/\/ \u2500\u2500 LANG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst LANG={\n  pt:{title:'Conversor de Moedas',sub:'Cota\u00e7\u00f5es ao vivo \u00b7 +150 moedas \u00b7 Criptomoedas',from:'De',to:'Para',quick:'R\u00e1pido:',tbl:'Tabela de convers\u00e3o',amt:'Montante',upd:'Atualizado:',refresh:'Atualizar',side:'Pares populares (vs USD)',crypto:'Pre\u00e7os cripto (USD)',mkt:'Status dos mercados',hist:'Hist\u00f3rico 7 dias (USD\/BRL)',all:'Todos os pares de moedas',note:'Dados: exchangerate-api.com \u00b7 Apenas informativo',t0:'Top Moedas',t1:'DeFi',t2:'Stablecoins'},\n  en:{title:'Currency Converter',sub:'Live rates \u00b7 150+ currencies \u00b7 Cryptocurrencies',from:'From',to:'To',quick:'Quick:',tbl:'Conversion table',amt:'Amount',upd:'Updated:',refresh:'Refresh',side:'Popular pairs (vs USD)',crypto:'Crypto prices (USD)',mkt:'Market status',hist:'7-day history (USD\/BRL)',all:'All currency pairs',note:'Data: exchangerate-api.com \u00b7 For information only',t0:'Top Coins',t1:'DeFi',t2:'Stablecoins'}\n};\n\nfunction invSetLang(l){\n  const t=LANG[l]||LANG.pt;\n  $('invConvTitle').textContent=t.title;\n  $('invConvSub').textContent=t.sub;\n  $('invLblFrom').textContent=t.from;\n  $('invLblTo').textContent=t.to;\n  $('invQlbl').textContent=t.quick;\n  $('invTblTitle').textContent=t.tbl;\n  $('invTh0').textContent=t.amt;\n  $('invUpdLbl').textContent=t.upd;\n  $('invRbtnLbl').textContent=t.refresh;\n  $('invSideTitle').textContent=t.side;\n  $('invCryptoTitle').textContent=t.crypto;\n  $('invMktTitle').textContent=t.mkt;\n  $('invChartTitle').textContent=t.hist;\n  $('invAllTitle').textContent=t.all;\n  $('invFootNote').textContent=t.note;\n  $('invTab0').textContent=t.t0;\n  $('invTab1').textContent=t.t1;\n  $('invTab2').textContent=t.t2;\n  $('invPairSearch').placeholder=l==='en'?'Search pair\u2026':'Buscar par\u2026';\n  $('invAllSearch').placeholder=l==='en'?'Filter\u2026':'Filtrar\u2026';\n}\nwindow.invSetLang=invSetLang;\n\n\/\/ expor fun\u00e7\u00f5es globais chamadas inline no HTML\nwindow.invUpdate=invUpdate;\nwindow.invConvert=invConvert;\nwindow.invSwap=invSwap;\nwindow.invQty=invQty;\nwindow.invFilterPairs=invFilterPairs;\nwindow.invSetPair=invSetPair;\nwindow.invCTab=invCTab;\nwindow.invFilterAll=invFilterAll;\nwindow.invSetAll=invSetAll;\n\n\/\/ \u2500\u2500 BOOT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction boot(){\n  buildSelects();\n  buildPairs();\n  buildCrypto('top');\n  buildMarkets();\n  buildChart();\n  buildGrid();\n  buildTicker();\n  invConvert();\n  fetchRates();\n  setInterval(fetchRates,60000);\n  setInterval(fluctuate,8000);\n}\n\nif(document.readyState==='loading'){\n  document.addEventListener('DOMContentLoaded',boot);\n}else{\n  boot();\n}\n\n})();\n<\/script>\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>IN investingora.com Cota\u00e7\u00f5es ao vivo \ud83c\udde7\ud83c\uddf7 PT\ud83c\uddfa\ud83c\uddf8 EN Conversor de Moedas Cota\u00e7\u00f5es ao vivo \u00b7 +150 moedas \u00b7 Criptomoedas De \ud83c\uddfa\ud83c\uddf8 Para \ud83c\udde7\ud83c\uddf7 Carregando\u2026 R\u00e1pido: 1 5 10 50 100 500 1K 10K Tabela de convers\u00e3o Montante USD BRL Atualizado: \u2014 Atualizar Pares populares (vs USD) \ud83d\udd0d Pre\u00e7os cripto (USD) Top Moedas DeFi Stablecoins Status [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-587","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/comments?post=587"}],"version-history":[{"count":1,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/587\/revisions"}],"predecessor-version":[{"id":588,"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/pages\/587\/revisions\/588"}],"wp:attachment":[{"href":"https:\/\/investingora.com\/pt\/wp-json\/wp\/v2\/media?parent=587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}