Recarga instantánea · +2 años en el mercado

Cargá
Diamantes
Free Fire

Especialistas en monedas y servicios premium para gaming.
Entrega en minutos · Solo con tu UID · Pago 100% seguro.

💎 Ver Precios
2.400+Clientes
⚡ 5minEntrega máx.
24/7Soporte
Free Fire
💎
FREE
FIRE
🔥
Free Fire
Garena Free Fire · Diamantes · Gift Cards · Membresías
🔥 Free Fire · Gift Cards

Diamantes Free Fire

Todos los packs disponibles. Entrega inmediata solo con tu ID, sin contraseña.

Pack Free Fire Precio Lektec (ARS) Acción

* Precios en ARS calculados sobre el precio más bajo de gift cards globales verificadas · Cotización mayo 2026
Aceptamos Transferencia bancaria y Mercado Pago

🔥 Free Fire · Paquetes

Membresías y Pases Free Fire

Tarjetas con diamantes diarios, pases de temporada y más.

📋 Proceso

¿Cómo comprar?

Cuatro pasos y tus diamantes ya están en tu cuenta.

1
Elegí tu pack

Seleccioná la cantidad de diamantes desde nuestra tabla de precios.

2
Enviá tu ID / Gift Card

Contactanos por WhatsApp con tu ID de Free Fire o el código de tu Gift Card. Nunca pedimos contraseña.

3
Pagá seguro

Por Mercado Pago (tarjeta o transferencia) o directo al CBU. Rápido y sin vueltas.

4
¡A jugar!

Diamantes en tu cuenta en minutos. Te avisamos por WhatsApp cuando está acreditado.

💳 Medio de Pago

¿Cómo pagar?

Transferencia vía Mercado Pago o desde cualquier banco al CBU.

Mercado Pago o Transferencia Bancaria
Transferí desde tu billetera Mercado Pago o desde cualquier banco usando el CBU.
MP · Inmediata
Banco · Hasta 1h
Titular
Cecilia Ederly Sanchez
CBU
0000003100049882828810

Después de pagar envianos el comprobante por WhatsApp junto con tu ID de Free Fire o Gift Card.
Los diamantes se acreditan en minutos una vez confirmado el pago.

⭐ Reseñas

Lo que dicen los jugadores

★★★★★

"Le mandé el UID y en 4 minutos los diamantes estaban. Re serio el servicio."

@lucasgamer_ff
★★★★★

"Compré el pack de 1060, llegó enseguida. Ya compré 3 veces y todo perfecto."

@valen.ff.arg
★★★★★

"Excelente atención, me asesoraron qué paquete me convenía. Diamantes en minutos."

@tomi_booyah
📞 Contacto

Hablá con nosotros

Respondemos en minutos. Atención personalizada 24/7.

💬
WhatsApp Directo
Respondemos en minutos · 24hs los 7 días
+54 11 5180-4090
¡Hola! ¿Querés recargar? 💎

Panel Lektec

⚙ Configuración General
WhatsApp (sin +)
Imagen hero Free Fire (URL)
Nueva contraseña admin

Clic en cada catálogo para abrirlo · Editá nombre, precio, descripción, imagen · Agregá o eliminá productos.

🎮 Catálogos de Juegos
🎁 Catálogos de Gift Cards
✓ Guardado
E html> Lektec — Recarga Free Fire
Recarga instantánea · +2 años en el mercado

Cargá
Diamantes
Free Fire

Especialistas en monedas y servicios premium para gaming.
Entrega en minutos · Solo con tu UID · Pago 100% seguro.

💎 Ver Precios
2.400+Clientes
⚡ 5minEntrega máx.
24/7Soporte
Free Fire
💎
FREE
FIRE
🔥
Free Fire
Garena Free Fire · Diamantes · Gift Cards · Membresías
🔥 Free Fire · Gift Cards

Diamantes Free Fire

Todos los packs disponibles. Entrega inmediata solo con tu ID, sin contraseña.

Pack Free Fire Precio Lektec (ARS) Acción

* Precios en ARS calculados sobre el precio más bajo de gift cards globales verificadas · Cotización mayo 2026
Aceptamos Transferencia bancaria y Mercado Pago

🔥 Free Fire · Paquetes

Membresías y Pases Free Fire

Tarjetas con diamantes diarios, pases de temporada y más.

📋 Proceso

¿Cómo comprar?

Cuatro pasos y tus diamantes ya están en tu cuenta.

1
Elegí tu pack

Seleccioná la cantidad de diamantes desde nuestra tabla de precios.

2
Enviá tu ID / Gift Card

Contactanos por WhatsApp con tu ID de Free Fire o el código de tu Gift Card. Nunca pedimos contraseña.

3
Pagá seguro

Por Mercado Pago (tarjeta o transferencia) o directo al CBU. Rápido y sin vueltas.

4
¡A jugar!

Diamantes en tu cuenta en minutos. Te avisamos por WhatsApp cuando está acreditado.

💳 Medio de Pago

¿Cómo pagar?

Transferencia vía Mercado Pago o desde cualquier banco al CBU.

Mercado Pago o Transferencia Bancaria
Transferí desde tu billetera Mercado Pago o desde cualquier banco usando el CBU.
MP · Inmediata
Banco · Hasta 1h
Titular
Cecilia Ederly Sanchez
CBU
0000003100049882828810

Después de pagar envianos el comprobante por WhatsApp junto con tu ID de Free Fire o Gift Card.
Los diamantes se acreditan en minutos una vez confirmado el pago.

⭐ Reseñas

Lo que dicen los jugadores

★★★★★

"Le mandé el UID y en 4 minutos los diamantes estaban. Re serio el servicio."

@lucasgamer_ff
★★★★★

"Compré el pack de 1060, llegó enseguida. Ya compré 3 veces y todo perfecto."

@valen.ff.arg
★★★★★

"Excelente atención, me asesoraron qué paquete me convenía. Diamantes en minutos."

@tomi_booyah
📞 Contacto

Hablá con nosotros

Respondemos en minutos. Atención personalizada 24/7.

💬
WhatsApp Directo
Respondemos en minutos · 24hs los 7 días
+54 11 5180-4090
¡Hola! ¿Querés recargar? 💎

Panel Lektec

⚙ Configuración General
WhatsApp (sin +)
Imagen hero Free Fire (URL)
Nueva contraseña admin

Clic en cada catálogo para abrirlo · Editá nombre, precio, descripción, imagen · Agregá o eliminá productos.

🎮 Catálogos de Juegos
🎁 Catálogos de Gift Cards
✓ Guardado
const USD_ARS = 1425; const WA_SVG = ``; /* ── DEFAULT DATA ── */ const DEFAULT_GC = [ {id:'gc1',diamonds:110, usd:1.49, img:'',popular:false,visible:true}, {id:'gc2',diamonds:310, usd:2.87, img:'',popular:false,visible:true}, {id:'gc3',diamonds:520, usd:4.20, img:'',popular:false,visible:true}, {id:'gc4',diamonds:1060, usd:9.49, img:'',popular:true, visible:true}, {id:'gc5',diamonds:2180, usd:19.34, img:'',popular:false,visible:true}, {id:'gc6',diamonds:5600, usd:41.97, img:'',popular:false,visible:true}, ]; const DEFAULT_EXTRA = [ {id:'e1',name:'Tarjeta Semanal',icon:'📅',img:'',price:6683, desc:'340 diamantes en 7 días (60 al instante + 40 diarios)', feats:['60 al instante','40 diamantes x 7 días','Soporte incluido'],visible:true,popular:false}, {id:'e2',name:'Tarjeta Mensual', icon:'🌙',img:'',price:36450,desc:'1800 diamantes en 30 días (300 al instante + 50 diarios)',feats:['300 al instante','50 diamantes x 30 días','Mejor relación diaria'],visible:true,popular:true}, {id:'e3',name:'Pase Booyah', icon:'🏆',img:'',price:10800,desc:'Acceso completo al pase de temporada Free Fire',feats:['Misiones exclusivas','Skins de temporada','Recompensas diarias'],visible:true,popular:false}, ]; const DEFAULT_CFG = {wa:'5491151804090',img:'',pwd:'pincho',visitas:0,pedidos:0}; /* ── STATE ── */ let gc = JSON.parse(localStorage.getItem('lk2_gc') ||'null') || DEFAULT_GC.map(x=>({...x})); let extra = JSON.parse(localStorage.getItem('lk2_ex') ||'null') || DEFAULT_EXTRA.map(x=>({...x})); let cfg = JSON.parse(localStorage.getItem('lk2_cf') ||'null') || {...DEFAULT_CFG}; // migrate old items without img field gc.forEach(r=>{if(r.img===undefined)r.img='';}); extra.forEach(p=>{if(p.img===undefined)p.img='';}); cfg.visitas=(cfg.visitas||0)+1; save(); function save(){ localStorage.setItem('lk2_gc',JSON.stringify(gc)); localStorage.setItem('lk2_ex',JSON.stringify(extra)); localStorage.setItem('lk2_cf',JSON.stringify(cfg)); } /* ── PARTICLES ── */ (()=>{ const c=document.getElementById('pts'); const cols=['#FF5500','#FF8800','#FFD000','#00CFFF','#FF3300']; for(let i=0;i<35;i++){ const p=document.createElement('div');p.className='p'; p.style.cssText=`left:${Math.random()*100}%;width:${2+Math.random()*4}px;height:${2+Math.random()*4}px;background:${cols[i%5]};animation-duration:${7+Math.random()*11}s;animation-delay:${Math.random()*12}s`; c.appendChild(p); } })(); setTimeout(()=>{const b=document.getElementById('wab');if(b)b.style.opacity='0';},5000); /* ── HERO IMAGE ── */ function applyHeroImg(){ const img=document.getElementById('hero-ff-img'); const ph=document.getElementById('hero-placeholder'); if(cfg.img){img.src=cfg.img;img.style.display='block';ph.style.display='none';} else{img.src='';img.style.display='none';ph.style.display='flex';} } applyHeroImg(); /* ── HELPERS ── */ function arsPrice(usd){return Math.round(usd*USD_ARS*1.35);} function fmt(n){return '$'+parseInt(n).toLocaleString('es-AR');} function imgOrPh(imgUrl,phEmoji,w,h,radius){ var style='width:'+w+';height:'+h+';border-radius:'+radius; if(imgUrl) return ''; return '
'+phEmoji+'
'; } /* ── RENDER TABLE ── */ function renderTable(){ const tb=document.getElementById('gc-tbody'); tb.innerHTML=gc.filter(r=>r.visible).map(r=>`
${imgOrPh(r.img,'💎','44px','44px','8px')}
${r.diamonds.toLocaleString('es-AR')} Diamantes${r.popular?'⭐ Top':''} Free Fire · Gift Card
${fmt(arsPrice(r.usd))} ARS `).join(''); } /* ── RENDER EXTRA CARDS ── */ function renderExtra(){ const g=document.getElementById('extra-grid'); const vis=extra.filter(x=>x.visible); if(!vis.length){g.innerHTML='

Sin paquetes especiales activos.

';return;} g.innerHTML=vis.map(p=>`
${p.popular?'
⭐ Más popular
':''}
${p.img ? `${p.name}` : `
${p.icon}
`}
${p.name}
${p.desc}
${fmt(p.price)} ARS
`).join(''); } /* ── ORDER ── */ let curOrder={}; function abrirOrder(tipo,id){ let prod; if(tipo==='gc'){const r=gc.find(x=>x.id===id);prod={name:`${r.diamonds.toLocaleString('es-AR')} Diamantes`,price:arsPrice(r.usd),icon:'💎'};} else{const p=extra.find(x=>x.id===id);prod={name:p.name,price:p.price,icon:p.icon};} curOrder=prod; document.getElementById('ord-icon').textContent=prod.icon; document.getElementById('ord-title').textContent=prod.name; document.getElementById('ord-pname').textContent=prod.name; document.getElementById('ord-pprice').textContent=fmt(prod.price); document.getElementById('ord-uid').value=''; document.getElementById('ord-wa').value=''; ['ord-s1','ord-s2','ord-s3'].forEach((id,i)=>document.getElementById(id).style.display=i===0?'block':'none'); selPay('mp'); setOS(1); document.getElementById('ovl-order').classList.add('on'); } function cerrarOrder(){document.getElementById('ovl-order').classList.remove('on');} function setOS(n){for(let i=1;i<=3;i++)document.getElementById('os'+i).className='os'+(ix.id===id);if(!p)return; const msg=encodeURIComponent(`Hola Lektec! Me interesa *${p.name}* por *${fmt(p.price)} ARS*. ¿Podés ayudarme? 💎`); window.open(`https://wa.me/${cfg.wa}?text=${msg}`,'_blank'); } function abrirWA(){ window.open(`https://wa.me/${cfg.wa}?text=${encodeURIComponent('Hola Lektec! Quiero recargar diamantes de Free Fire. ¿Cómo funciona? 💎')}`,'_blank'); } function updateWADisplay(){ const raw=cfg.wa.replace(/^54/,'').replace(/^9/,''); document.getElementById('wa-display').textContent='+54 '+raw.substring(0,2)+' '+raw.substring(2,6)+'-'+raw.substring(6); } /* ── GAMES DATA (+40%) ── */ const MC_DATA_DEF = [ {id:'mc1',name:'320 Minecoins', usd:1.99, plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:''}, {id:'mc2',name:'1.020 Minecoins',usd:5.99, plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:''}, {id:'mc3',name:'1.720 Minecoins',usd:9.99, plat:'PC·Xbox·PS·Switch·Mobile',popular:true, img:''}, {id:'mc4',name:'3.500 Minecoins',usd:13.63,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:''}, {id:'mc5',name:'8.800 Minecoins',usd:49.99,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:''}, ]; const APEX_DATA_DEF = [ {id:'ax1',name:'1.000 Apex Coins', usd:8.33, plat:'PC·Xbox·PS',popular:false,img:''}, {id:'ax2',name:'2.150 Apex Coins', usd:17.69,plat:'PC·Xbox·PS',popular:true, img:''}, {id:'ax3',name:'4.350 Apex Coins', usd:34.79,plat:'PC·Xbox·PS',popular:false,img:''}, {id:'ax4',name:'6.700 Apex Coins', usd:59.99,plat:'PC·Xbox·PS',popular:false,img:''}, {id:'ax5',name:'11.500 Apex Coins',usd:83.53,plat:'PC·Xbox·PS',popular:false,img:''}, ]; const COD_DATA_DEF = [ {id:'cd1',name:'200 CP', usd:1.99, plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, {id:'cd2',name:'500 CP', usd:4.99, plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, {id:'cd3',name:'1.100 CP', usd:8.86, plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, {id:'cd4',name:'2.400 CP', usd:15.81,plat:'PC·Xbox·PS·Battle.net',popular:true, img:''}, {id:'cd5',name:'5.000 CP', usd:25.12,plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, {id:'cd6',name:'9.500 CP', usd:47.39,plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, {id:'cd7',name:'13.000 CP',usd:59.86,plat:'PC·Xbox·PS·Battle.net',popular:false,img:''}, ]; const LOL_DATA_DEF = [ {id:'ll1',name:'650 RP', usd:4.99, plat:'PC',popular:false,img:''}, {id:'ll2',name:'1.380 RP', usd:9.99, plat:'PC',popular:false,img:''}, {id:'ll3',name:'2.800 RP', usd:19.99,plat:'PC',popular:true, img:''}, {id:'ll4',name:'5.000 RP', usd:34.99,plat:'PC',popular:false,img:''}, {id:'ll5',name:'7.200 RP', usd:49.99,plat:'PC',popular:false,img:''}, ]; const VAL_DATA_DEF = [ {id:'vl1',name:'475 VP', usd:4.99, plat:'PC',popular:false,img:''}, {id:'vl2',name:'1.000 VP', usd:9.99, plat:'PC',popular:false,img:''}, {id:'vl3',name:'2.050 VP', usd:19.99,plat:'PC',popular:true, img:''}, {id:'vl4',name:'3.650 VP', usd:34.99,plat:'PC',popular:false,img:''}, {id:'vl5',name:'5.350 VP', usd:49.99,plat:'PC',popular:false,img:''}, ]; // Load editable data from localStorage let mcData = JSON.parse(localStorage.getItem('lk_mc') ||'null') || MC_DATA_DEF.map(x=>({...x})); let apexData = JSON.parse(localStorage.getItem('lk_ax') ||'null') || APEX_DATA_DEF.map(x=>({...x})); let codData = JSON.parse(localStorage.getItem('lk_cd') ||'null') || COD_DATA_DEF.map(x=>({...x})); let lolData = JSON.parse(localStorage.getItem('lk_ll') ||'null') || LOL_DATA_DEF.map(x=>({...x})); let valData = JSON.parse(localStorage.getItem('lk_vl') ||'null') || VAL_DATA_DEF.map(x=>({...x})); function saveGameData(){ localStorage.setItem('lk_mc', JSON.stringify(mcData)); localStorage.setItem('lk_ax', JSON.stringify(apexData)); localStorage.setItem('lk_cd', JSON.stringify(codData)); localStorage.setItem('lk_ll', JSON.stringify(lolData)); localStorage.setItem('lk_vl', JSON.stringify(valData)); } function fmtG(usd){return fmt(Math.round(usd * M40));} function makeGameTable(data, tbodyId, accent, icon){ const tb=document.getElementById(tbodyId);if(!tb)return; tb.innerHTML=data.filter(r=>r.visible!==false).map(r=>`
${r.img?`` :`
${icon}
`}
${r.name}${r.popular?`⭐ Top`:''} ${r.plat||'PC'}
${fmtG(r.usd)} ARS ${r.plat||'PC'} `).join(''); } function abrirOrderGame(id,name,price,icon){ curOrder={name,price,icon}; document.getElementById('ord-icon').textContent=icon; document.getElementById('ord-title').textContent=name; document.getElementById('ord-pname').textContent=name; document.getElementById('ord-pprice').textContent=fmt(price); document.getElementById('ord-uid').placeholder='Ej: Tu ID, Riot ID o usuario'; document.getElementById('ord-uid').value='';document.getElementById('ord-wa').value=''; ['ord-s1','ord-s2','ord-s3'].forEach((id,i)=>document.getElementById(id).style.display=i===0?'block':'none'); selPay('mp');setOS(1); document.getElementById('ovl-order').classList.add('on'); } function renderAllGames(){ makeGameTable(mcData, 'mc-tbody', '#5CAD3C','⛏'); makeGameTable(apexData,'apex-tbody','#DA3B2B','🔴'); makeGameTable(codData, 'cod-tbody', '#C8A84B','🎖'); makeGameTable(lolData, 'lol-tbody', '#C89B3C','⚔️'); makeGameTable(valData, 'val-tbody', '#FF4655','🔺'); } /* ── GIFT CARDS DATA (Apple / PSN / Xbox) ── */ const APPLE_DATA_DEF = [ {id:'ap1',name:'Apple Gift Card $10', usd:10, plat:'App Store · iTunes · iCloud', popular:false,img:'',desc:'App Store, juegos, apps, Apple TV+ y más'}, {id:'ap2',name:'Apple Gift Card $25', usd:25, plat:'App Store · iTunes · iCloud', popular:false,img:'',desc:'Ideal para compras en App Store o suscripciones'}, {id:'ap3',name:'Apple Gift Card $50', usd:50, plat:'App Store · iTunes · iCloud', popular:true, img:'',desc:'El más popular — cubre suscripciones + juegos'}, {id:'ap4',name:'Apple Gift Card $100',usd:100, plat:'App Store · iTunes · iCloud', popular:false,img:'',desc:'Crédito completo para todas las apps de Apple'}, {id:'ap5',name:'Apple Gift Card $200',usd:200, plat:'App Store · iTunes · iCloud', popular:false,img:'',desc:'El pack más grande disponible'}, ]; const PSN_DATA_DEF = [ {id:'ps1',name:'PSN Card $10', usd:10, plat:'PS4 · PS5',popular:false,img:'',desc:'Crédito para el PlayStation Store'}, {id:'ps2',name:'PSN Card $20', usd:20, plat:'PS4 · PS5',popular:false,img:'',desc:'Crédito para juegos, DLCs y suscripciones'}, {id:'ps3',name:'PSN Card $50', usd:50, plat:'PS4 · PS5',popular:true, img:'',desc:'El favorito — cubre juegos completos y más'}, {id:'ps4',name:'PSN Card $100',usd:100, plat:'PS4 · PS5',popular:false,img:'',desc:'Máximo crédito para el PlayStation Store'}, ]; const XBOX_DATA_DEF = [ {id:'xb1',name:'Xbox Gift Card $10', usd:10, plat:'Xbox · PC Windows',popular:false,img:'',desc:'Crédito para Microsoft Store'}, {id:'xb2',name:'Xbox Gift Card $25', usd:25, plat:'Xbox · PC Windows',popular:false,img:'',desc:'Juegos indie, DLCs y suscripciones'}, {id:'xb3',name:'Xbox Gift Card $50', usd:50, plat:'Xbox · PC Windows',popular:true, img:'',desc:'Game Pass, juegos y más en Xbox o PC'}, {id:'xb4',name:'Xbox Gift Card $100',usd:100, plat:'Xbox · PC Windows',popular:false,img:'',desc:'Crédito completo para toda la tienda de Xbox'}, ]; /* PSN Plus Memberships */ const PSN_PLUS_DEF = [ /* Essential */ {id:'pe1',name:'PS Plus Essential 1 mes', usd:10.99,tier:'Essential',months:1, popular:false,img:'',desc:'Multijugador online + 2 juegos mensuales'}, {id:'pe2',name:'PS Plus Essential 3 meses',usd:27.99,tier:'Essential',months:3, popular:false,img:'',desc:'3 meses de multijugador + descuentos exclusivos'}, {id:'pe3',name:'PS Plus Essential 12 meses',usd:79.99,tier:'Essential',months:12,popular:false,img:'',desc:'El mejor precio anual para jugar online'}, /* Extra */ {id:'px1',name:'PS Plus Extra 1 mes', usd:16.99,tier:'Extra',months:1, popular:false,img:'',desc:'Todo lo de Essential + catálogo de +400 juegos'}, {id:'px2',name:'PS Plus Extra 3 meses',usd:49.99,tier:'Extra',months:3, popular:true, img:'',desc:'3 meses con catálogo completo de juegos'}, {id:'px3',name:'PS Plus Extra 12 meses',usd:134.99,tier:'Extra',months:12,popular:false,img:'',desc:'Un año completo con el catálogo de Extra'}, /* Premium */ {id:'pp1',name:'PS Plus Premium 1 mes', usd:19.99,tier:'Premium',months:1, popular:false,img:'',desc:'Extra + clásicos PS1/PS2/PS3 + streaming'}, {id:'pp2',name:'PS Plus Premium 3 meses',usd:59.99,tier:'Premium',months:3, popular:false,img:'',desc:'3 meses Premium — la mejor experiencia PS'}, {id:'pp3',name:'PS Plus Premium 12 meses',usd:159.99,tier:'Premium',months:12,popular:false,img:'',desc:'Un año Premium: catálogo + clásicos + streaming'}, ]; let appleData = JSON.parse(localStorage.getItem('lk_ap')||'null') || APPLE_DATA_DEF.map(x=>({...x})); let psnData = JSON.parse(localStorage.getItem('lk_ps')||'null') || PSN_DATA_DEF.map(x=>({...x})); let xboxData = JSON.parse(localStorage.getItem('lk_xb')||'null') || XBOX_DATA_DEF.map(x=>({...x})); let psnPlus = JSON.parse(localStorage.getItem('lk_pp')||'null') || PSN_PLUS_DEF.map(x=>({...x})); function saveGCData(){ localStorage.setItem('lk_ap',JSON.stringify(appleData)); localStorage.setItem('lk_ps',JSON.stringify(psnData)); localStorage.setItem('lk_xb',JSON.stringify(xboxData)); localStorage.setItem('lk_pp',JSON.stringify(psnPlus)); } function renderGiftCardTable(data,tbodyId,accent,icon){ const tb=document.getElementById(tbodyId);if(!tb)return; tb.innerHTML=data.filter(r=>r.visible!==false).map(r=>`
${mkThumb(r.img,accent,icon)}18;border:1px solid ${accent}33;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0">${icon}
`}
${r.name}${r.popular?`⭐ Top`:''} ${r.desc||r.plat||''}
${fmtG(r.usd)} ARS ${r.plat||''} `).join(''); } function renderPSNPlus(){ const grid=document.getElementById('psn-plus-grid');if(!grid)return; const tiers=['Essential','Extra','Premium']; const tierColors={'Essential':'#4D9EFF','Extra':'#FF9B3D','Premium':'#C89B3C'}; const tierIcons={'Essential':'⭐','Extra':'⭐⭐','Premium':'👑'}; const tierDesc={ 'Essential':'Multijugador online + 2 juegos gratis por mes + descuentos exclusivos.', 'Extra':'Todo lo de Essential + acceso al catálogo de +400 juegos sin costo adicional.', 'Premium':'Todo lo de Extra + Classics Catalog (PS1/PS2/PS3) + streaming de juegos en la nube.' }; grid.innerHTML=tiers.map(tier=>{ const color=tierColors[tier]; const items=psnPlus.filter(r=>r.tier===tier&&r.visible!==false); return `
${tierIcons[tier]} PS Plus ${tier}

${tierDesc[tier]}

${items.map(r=>`
${r.months} ${r.months===1?'mes':'meses'}
${r.desc||''}
${fmtG(r.usd)}
ARS
`).join('')}
`; }).join(''); } function renderAllGCs(){ renderGiftCardTable(appleData,'apple-tbody','#A8A8B0','🍎'); renderGiftCardTable(psnData, 'psn-tbody', '#4D9EFF','🎮'); renderGiftCardTable(xboxData, 'xbox-tbody', '#4ED14E','🟩'); renderPSNPlus(); } /* ════════════════════════════════════════════════════════ LEKTEC — CORE SCRIPT ════════════════════════════════════════════════════════ */ /* ── CONFIG & DEFAULTS ── */ const DEFAULT_GC = [ {id:'gc1',diamonds:110, usd:1.49, img:'',popular:false,visible:true}, {id:'gc2',diamonds:310, usd:2.87, img:'',popular:false,visible:true}, {id:'gc3',diamonds:520, usd:4.20, img:'',popular:false,visible:true}, {id:'gc4',diamonds:1060, usd:9.49, img:'',popular:true, visible:true}, {id:'gc5',diamonds:2180, usd:19.34, img:'',popular:false,visible:true}, {id:'gc6',diamonds:5600, usd:41.97, img:'',popular:false,visible:true}, ]; const DEFAULT_EXTRA = [ {id:'e1',name:'Tarjeta Semanal',icon:'📅',img:'',price:6683, desc:'340 diamantes en 7 días',feats:['60 al instante','40 diamantes x 7 días','Soporte incluido'],visible:true,popular:false}, {id:'e2',name:'Tarjeta Mensual', icon:'🌙',img:'',price:36450,desc:'1800 diamantes en 30 días',feats:['300 al instante','50 diamantes x 30 días','Mejor relación diaria'],visible:true,popular:true}, {id:'e3',name:'Pase Booyah', icon:'🏆',img:'',price:10800,desc:'Pase de temporada completo',feats:['Misiones exclusivas','Skins de temporada','Recompensas diarias'],visible:true,popular:false}, ]; const DEFAULT_CFG = {wa:'5491151804090',img:'',pwd:'pincho',visitas:0,pedidos:0}; const ROBLOX_GC_DEF = [ {id:'r1',robux:400, usd:4.99, popular:false,img:'',desc:'Pack inicial de Robux',visible:true}, {id:'r2',robux:800, usd:9.99, popular:true, img:'',desc:'El más popular',visible:true}, {id:'r3',robux:1700, usd:19.99,popular:false,img:'',desc:'Ideal para skins premium',visible:true}, {id:'r4',robux:4500, usd:48.45,popular:false,img:'',desc:'Pack grande',visible:true}, {id:'r5',robux:10000,usd:99.99,popular:false,img:'',desc:'Pack completo',visible:true}, ]; const ML_DATA_DEF = [ {id:'ml1',name:'50 Diamantes MLBB', usd:0.99, plat:'iOS · Android',popular:false,img:'',desc:'Pack mínimo'}, {id:'ml2',name:'100 Diamantes MLBB', usd:1.99, plat:'iOS · Android',popular:false,img:'',desc:'Pequeñas compras'}, {id:'ml3',name:'250 Diamantes MLBB', usd:4.99, plat:'iOS · Android',popular:false,img:'',desc:'Cofres y pases'}, {id:'ml4',name:'500 Diamantes MLBB', usd:9.49, plat:'iOS · Android',popular:false,img:'',desc:'Skins y pases'}, {id:'ml5',name:'1.000 Diamantes MLBB',usd:17.99,plat:'iOS · Android',popular:true, img:'',desc:'El más popular'}, {id:'ml6',name:'2.000 Diamantes MLBB',usd:34.99,plat:'iOS · Android',popular:false,img:'',desc:'Pack grande'}, {id:'ml7',name:'3.500 Diamantes MLBB',usd:59.99,plat:'iOS · Android',popular:false,img:'',desc:'Colección épica'}, {id:'ml8',name:'5.000 Diamantes MLBB',usd:84.99,plat:'iOS · Android',popular:false,img:'',desc:'Pack completo'}, ]; const MC_DATA_DEF=[{id:'mc1',name:'320 Minecoins', usd:1.99,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:'',desc:'Pack mínimo'},{id:'mc2',name:'1.020 Minecoins',usd:5.99,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:'',desc:'Pack estándar'},{id:'mc3',name:'1.720 Minecoins',usd:9.99,plat:'PC·Xbox·PS·Switch·Mobile',popular:true,img:'',desc:'El más popular'},{id:'mc4',name:'3.500 Minecoins',usd:13.63,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:'',desc:'Pack grande'},{id:'mc5',name:'8.800 Minecoins',usd:49.99,plat:'PC·Xbox·PS·Switch·Mobile',popular:false,img:'',desc:'Pack máximo'}]; const APEX_DATA_DEF=[{id:'ax1',name:'1.000 Apex Coins',usd:8.33,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack básico'},{id:'ax2',name:'2.150 Apex Coins',usd:17.69,plat:'PC·Xbox·PS',popular:true,img:'',desc:'El más popular'},{id:'ax3',name:'4.350 Apex Coins',usd:34.79,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack grande'},{id:'ax4',name:'6.700 Apex Coins',usd:59.99,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack pro'},{id:'ax5',name:'11.500 Apex Coins',usd:83.53,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack máximo'}]; const COD_DATA_DEF=[{id:'cd1',name:'200 CP',usd:1.99,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack mínimo'},{id:'cd2',name:'500 CP',usd:4.99,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack básico'},{id:'cd3',name:'1.100 CP',usd:8.86,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Battle Pass'},{id:'cd4',name:'2.400 CP',usd:15.81,plat:'PC·Xbox·PS',popular:true,img:'',desc:'El más popular'},{id:'cd5',name:'5.000 CP',usd:25.12,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack grande'},{id:'cd6',name:'9.500 CP',usd:47.39,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack pro'},{id:'cd7',name:'13.000 CP',usd:59.86,plat:'PC·Xbox·PS',popular:false,img:'',desc:'Pack máximo'}]; const LOL_DATA_DEF=[{id:'ll1',name:'650 RP',usd:4.99,plat:'PC',popular:false,img:'',desc:'Pack básico'},{id:'ll2',name:'1.380 RP',usd:9.99,plat:'PC',popular:false,img:'',desc:'Pack estándar'},{id:'ll3',name:'2.800 RP',usd:19.99,plat:'PC',popular:true,img:'',desc:'El más popular'},{id:'ll4',name:'5.000 RP',usd:34.99,plat:'PC',popular:false,img:'',desc:'Pack grande'},{id:'ll5',name:'7.200 RP',usd:49.99,plat:'PC',popular:false,img:'',desc:'Pack máximo'}]; const VAL_DATA_DEF=[{id:'vl1',name:'475 VP',usd:4.99,plat:'PC',popular:false,img:'',desc:'Pack básico'},{id:'vl2',name:'1.000 VP',usd:9.99,plat:'PC',popular:false,img:'',desc:'Pack estándar'},{id:'vl3',name:'2.050 VP',usd:19.99,plat:'PC',popular:true,img:'',desc:'El más popular'},{id:'vl4',name:'3.650 VP',usd:34.99,plat:'PC',popular:false,img:'',desc:'Pack grande'},{id:'vl5',name:'5.350 VP',usd:49.99,plat:'PC',popular:false,img:'',desc:'Pack máximo'}]; const APPLE_DATA_DEF=[{id:'ap1',name:'Apple Gift Card $10',usd:10,plat:'App Store · iCloud',popular:false,img:'',desc:'App Store, apps, juegos'},{id:'ap2',name:'Apple Gift Card $25',usd:25,plat:'App Store · iCloud',popular:false,img:'',desc:'Suscripciones y compras'},{id:'ap3',name:'Apple Gift Card $50',usd:50,plat:'App Store · iCloud',popular:true,img:'',desc:'El más popular'},{id:'ap4',name:'Apple Gift Card $100',usd:100,plat:'App Store · iCloud',popular:false,img:'',desc:'Crédito completo'},{id:'ap5',name:'Apple Gift Card $200',usd:200,plat:'App Store · iCloud',popular:false,img:'',desc:'Pack máximo'}]; const PSN_DATA_DEF=[{id:'ps1',name:'PSN Card $10',usd:10,plat:'PS4 · PS5',popular:false,img:'',desc:'Crédito PS Store'},{id:'ps2',name:'PSN Card $20',usd:20,plat:'PS4 · PS5',popular:false,img:'',desc:'Juegos y DLCs'},{id:'ps3',name:'PSN Card $50',usd:50,plat:'PS4 · PS5',popular:true,img:'',desc:'El más popular'},{id:'ps4',name:'PSN Card $100',usd:100,plat:'PS4 · PS5',popular:false,img:'',desc:'Crédito máximo'}]; const PSN_PLUS_DEF=[{id:'pe1',name:'PS Plus Essential 1 mes',usd:10.99,tier:'Essential',months:1,popular:false,img:'',desc:'Online + 2 juegos/mes'},{id:'pe2',name:'PS Plus Essential 3 meses',usd:27.99,tier:'Essential',months:3,popular:false,img:'',desc:'3 meses Essential'},{id:'pe3',name:'PS Plus Essential 12 meses',usd:79.99,tier:'Essential',months:12,popular:false,img:'',desc:'Mejor precio anual'},{id:'px1',name:'PS Plus Extra 1 mes',usd:16.99,tier:'Extra',months:1,popular:false,img:'',desc:'Essential + catálogo 400 juegos'},{id:'px2',name:'PS Plus Extra 3 meses',usd:49.99,tier:'Extra',months:3,popular:true,img:'',desc:'3 meses con catálogo'},{id:'px3',name:'PS Plus Extra 12 meses',usd:134.99,tier:'Extra',months:12,popular:false,img:'',desc:'Año completo Extra'},{id:'pp1',name:'PS Plus Premium 1 mes',usd:19.99,tier:'Premium',months:1,popular:false,img:'',desc:'Extra + clásicos + streaming'},{id:'pp2',name:'PS Plus Premium 3 meses',usd:59.99,tier:'Premium',months:3,popular:false,img:'',desc:'3 meses Premium'},{id:'pp3',name:'PS Plus Premium 12 meses',usd:159.99,tier:'Premium',months:12,popular:false,img:'',desc:'Año completo Premium'}]; const XBOX_DATA_DEF=[{id:'xb1',name:'Xbox Gift Card $10',usd:10,plat:'Xbox · PC',popular:false,img:'',desc:'Microsoft Store'},{id:'xb2',name:'Xbox Gift Card $25',usd:25,plat:'Xbox · PC',popular:false,img:'',desc:'Juegos y DLCs'},{id:'xb3',name:'Xbox Gift Card $50',usd:50,plat:'Xbox · PC',popular:true,img:'',desc:'El más popular'},{id:'xb4',name:'Xbox Gift Card $100',usd:100,plat:'Xbox · PC',popular:false,img:'',desc:'Crédito máximo'}]; /* ── STATE ── */ let gc = JSON.parse(localStorage.getItem('lk2_gc')||'null') || DEFAULT_GC.map(x=>({...x})); let extra = JSON.parse(localStorage.getItem('lk2_ex')||'null') || DEFAULT_EXTRA.map(x=>({...x})); let cfg = JSON.parse(localStorage.getItem('lk2_cf')||'null') || {...DEFAULT_CFG}; let rblxData = JSON.parse(localStorage.getItem('lk_rblx')||'null') || ROBLOX_GC_DEF.map(x=>({...x})); let mlData = JSON.parse(localStorage.getItem('lk_ml') ||'null') || ML_DATA_DEF.map(x=>({...x})); let mcData = JSON.parse(localStorage.getItem('lk_mc') ||'null') || MC_DATA_DEF.map(x=>({...x})); let apexData = JSON.parse(localStorage.getItem('lk_ax') ||'null') || APEX_DATA_DEF.map(x=>({...x})); let codData = JSON.parse(localStorage.getItem('lk_cd') ||'null') || COD_DATA_DEF.map(x=>({...x})); let lolData = JSON.parse(localStorage.getItem('lk_ll') ||'null') || LOL_DATA_DEF.map(x=>({...x})); let valData = JSON.parse(localStorage.getItem('lk_vl') ||'null') || VAL_DATA_DEF.map(x=>({...x})); let appleData= JSON.parse(localStorage.getItem('lk_ap') ||'null') || APPLE_DATA_DEF.map(x=>({...x})); let psnData = JSON.parse(localStorage.getItem('lk_ps') ||'null') || PSN_DATA_DEF.map(x=>({...x})); let psnPlus = JSON.parse(localStorage.getItem('lk_pp') ||'null') || PSN_PLUS_DEF.map(x=>({...x})); let xboxData = JSON.parse(localStorage.getItem('lk_xb') ||'null') || XBOX_DATA_DEF.map(x=>({...x})); cfg.visitas = (cfg.visitas||0)+1; function save(){localStorage.setItem('lk2_cf',JSON.stringify(cfg));} function saveRblxData(){localStorage.setItem('lk_rblx',JSON.stringify(rblxData));} function saveMlData(){localStorage.setItem('lk_ml',JSON.stringify(mlData));} function saveGameData(){localStorage.setItem('lk_mc',JSON.stringify(mcData));localStorage.setItem('lk_ax',JSON.stringify(apexData));localStorage.setItem('lk_cd',JSON.stringify(codData));localStorage.setItem('lk_ll',JSON.stringify(lolData));localStorage.setItem('lk_vl',JSON.stringify(valData));} function saveGCData(){localStorage.setItem('lk_ap',JSON.stringify(appleData));localStorage.setItem('lk_ps',JSON.stringify(psnData));localStorage.setItem('lk_pp',JSON.stringify(psnPlus));localStorage.setItem('lk_xb',JSON.stringify(xboxData));} save(); /* ── PARTICLES ── */ (()=>{const c=document.getElementById('pts');const cols=['#FF5500','#FF8800','#FFD000','#00CFFF','#FF3300'];for(let i=0;i<35;i++){const p=document.createElement('div');p.className='p';p.style.cssText=`left:${Math.random()*100}%;width:${2+Math.random()*4}px;height:${2+Math.random()*4}px;background:${cols[i%5]};animation-duration:${7+Math.random()*11}s;animation-delay:${Math.random()*12}s`;c.appendChild(p);}})(); setTimeout(()=>{const b=document.getElementById('wab');if(b)b.style.opacity='0';},5000); /* ── UTILS ── */ function fmt(n){return '$'+parseInt(n).toLocaleString('es-AR');} function arsPrice(usd){return Math.round(usd*1425*1.35);} function fmtG(usd){return fmt(Math.round(usd*M40));} function applyHeroImg(){const img=document.getElementById('hero-ff-img');const ph=document.getElementById('hero-placeholder');if(cfg.img&&img){img.src=cfg.img;img.style.display='block';if(ph)ph.style.display='none';}else if(img){img.src='';img.style.display='none';if(ph)ph.style.display='flex';}} function updateWADisplay(){const raw=cfg.wa.replace(/^54/,'').replace(/^9/,'');const el=document.getElementById('wa-display');if(el)el.textContent='+54 '+raw.substring(0,2)+' '+raw.substring(2,6)+'-'+raw.substring(6);} /* ── RENDER FF TABLE ── */ function renderTable(){ const tb=document.getElementById('gc-tbody');if(!tb)return; tb.innerHTML=gc.filter(r=>r.visible).map(r=>`
${mkThumb(r.img,accent,icon)}
${r.diamonds.toLocaleString('es-AR')} Diamantes${r.popular?'⭐ Top':''}Free Fire · Gift Card
${fmt(arsPrice(r.usd))} ARS `).join(''); } /* ── RENDER FF EXTRA ── */ function renderExtra(){ const g=document.getElementById('extra-grid');if(!g)return; const vis=extra.filter(x=>x.visible); if(!vis.length){g.innerHTML='

Sin paquetes activos.

';return;} g.innerHTML=vis.map(p=>`
${p.popular?'
⭐ Más popular
':''}
${p.img?`${p.name}`:`
${p.icon}
`}
${p.name}
${p.desc}
${fmt(p.price)} ARS
    ${p.feats.map(f=>`
  • ${f}
  • `).join('')}
`).join(''); } /* ── RENDER ROBLOX ── */ function renderRoblox(){ const tb=document.getElementById('roblox-tbody');if(!tb)return; tb.innerHTML=rblxData.filter(r=>r.visible!==false).map(r=>`
${mkThumb(r.img,accent,icon)}
${r.robux.toLocaleString('es-AR')} Robux${r.popular?'⭐ Top':''}Roblox · PC · Xbox · PS5
${fmt(arsPrice(r.usd))} ARS PC · Xbox · PS5 `).join(''); } /* ── RENDER ML ── */ function renderML(){ const tb=document.getElementById('ml-tbody');if(!tb)return; tb.innerHTML=mlData.filter(r=>r.visible!==false).map(r=>`
${mkThumb(r.img,accent,icon)}
${r.name}${r.popular?'⭐ Top':''}${r.desc||'iOS · Android'}
${fmt(Math.round(r.usd*M40))} ARS iOS · Android `).join(''); } /* ── RENDER ALL GAMES ── */ function makeGameTable(data,tbodyId,accent,icon){ const tb=document.getElementById(tbodyId);if(!tb)return; tb.innerHTML=data.filter(r=>r.visible!==false).map(r=>`
${mkThumb(r.img,accent,icon)}18;border:1px solid ${accent}33;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0">${icon}
`}
${r.name}${r.popular?`⭐ Top`:''}${r.plat||''}
${fmtG(r.usd)} ARS ${r.plat||''} `).join(''); } function renderAllGames(){ makeGameTable(mcData, 'mc-tbody', '#5CAD3C','⛏'); makeGameTable(apexData,'apex-tbody','#DA3B2B','🔴'); makeGameTable(codData, 'cod-tbody', '#C8A84B','🎖'); makeGameTable(lolData, 'lol-tbody', '#C89B3C','⚔️'); makeGameTable(valData, 'val-tbody', '#FF4655','🔺'); } /* ── RENDER GC TABLES ── */ function renderGiftCardTable(data,tbodyId,accent,icon){ const tb=document.getElementById(tbodyId);if(!tb)return; tb.innerHTML=data.filter(r=>r.visible!==false).map(r=>`
${mkThumb(r.img,accent,icon)}18;border:1px solid ${accent}33;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0">${icon}
`}
${r.name}${r.popular?`⭐ Top`:''}${r.desc||r.plat||''}
${fmtG(r.usd)} ARS ${r.plat||''} `).join(''); } function renderAllGCs(){ renderGiftCardTable(appleData,'apple-tbody','#A8A8B0','🍎'); renderGiftCardTable(psnData, 'psn-tbody', '#4D9EFF','🎮'); renderGiftCardTable(xboxData, 'xbox-tbody', '#4ED14E','🟩'); renderPSNPlus(); } function renderPSNPlus(){ const grid=document.getElementById('psn-plus-grid');if(!grid)return; const tiers=['Essential','Extra','Premium']; const tc={'Essential':'#4D9EFF','Extra':'#FF9B3D','Premium':'#C89B3C'}; const ti={'Essential':'⭐','Extra':'⭐⭐','Premium':'👑'}; const td={'Essential':'Online + 2 juegos/mes + descuentos.','Extra':'Todo Essential + catálogo +400 juegos.','Premium':'Todo Extra + clásicos PS1/2/3 + streaming.'}; grid.innerHTML=tiers.map(tier=>{ const color=tc[tier]; const items=psnPlus.filter(r=>r.tier===tier&&r.visible!==false); return `
${ti[tier]} PS Plus ${tier}

${td[tier]}

${items.map(r=>`
${r.months} ${r.months===1?'mes':'meses'}
${r.desc||''}
${fmtG(r.usd)}
ARS
`).join('')}
`; }).join(''); } /* ── ORDER MODAL ── */ let curOrder={}; function abrirOrder(tipo,id){ let prod; if(tipo==='gc'){const r=gc.find(x=>x.id===id);prod={name:`${r.diamonds.toLocaleString('es-AR')} Diamantes`,price:arsPrice(r.usd),icon:'💎'};} else{const p=extra.find(x=>x.id===id);prod={name:p.name,price:p.price,icon:p.icon};} curOrder=prod; document.getElementById('ord-icon').textContent=prod.icon; document.getElementById('ord-title').textContent=prod.name; document.getElementById('ord-pname').textContent=prod.name; document.getElementById('ord-pprice').textContent=fmt(prod.price); document.getElementById('ord-uid').value='';document.getElementById('ord-wa').value=''; ['ord-s1','ord-s2','ord-s3'].forEach((id,i)=>document.getElementById(id).style.display=i===0?'block':'none'); selPay('mp');setOS(1); document.getElementById('ovl-order').classList.add('on'); } function abrirOrderGame(id,name,price,icon){ curOrder={name,price,icon}; document.getElementById('ord-icon').textContent=icon; document.getElementById('ord-title').textContent=name; document.getElementById('ord-pname').textContent=name; document.getElementById('ord-pprice').textContent=fmt(price); document.getElementById('ord-uid').placeholder='Tu ID de jugador / usuario'; document.getElementById('ord-uid').value='';document.getElementById('ord-wa').value=''; ['ord-s1','ord-s2','ord-s3'].forEach((id,i)=>document.getElementById(id).style.display=i===0?'block':'none'); selPay('mp');setOS(1); document.getElementById('ovl-order').classList.add('on'); } function cerrarOrder(){document.getElementById('ovl-order').classList.remove('on');} function setOS(n){for(let i=1;i<=3;i++)document.getElementById('os'+i).className='os'+(ix.id===id);if(!p)return;const msg=encodeURIComponent(`Hola Lektec! Me interesa *${p.name}* por *${fmt(p.price)} ARS* 💎`);window.open(`https://wa.me/${cfg.wa}?text=${msg}`,'_blank');} function abrirWA(){window.open(`https://wa.me/${cfg.wa}?text=${encodeURIComponent('Hola Lektec! Quiero recargar. ¿Cómo funciona? 💎')}`,'_blank');} /* ── PAY SELECTION ── */ let selPayMethod='mp'; function selPay(m){ selPayMethod=m; ['mp','bank'].forEach(k=>{const el=document.getElementById('opt-'+k);if(el)el.classList.toggle('sel',k===m);}); } function doCopy(txt,btnId){ navigator.clipboard.writeText(txt).catch(()=>{const ta=document.createElement('textarea');ta.value=txt;document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);}); const btn=document.getElementById(btnId); if(btn){btn.classList.add('copied');const orig=btn.innerHTML;btn.innerHTML='✓ Copiado';setTimeout(()=>{btn.classList.remove('copied');btn.innerHTML=orig;},2200);} } function copiarCBU(){doCopy('0000003100049882828810','btn-copy-cbu');} function copiarCBU2(){doCopy('0000003100049882828810','btn-copy-cbu2');} function copiarMod(e){e.stopPropagation();const btn=e.currentTarget;doCopy(btn.dataset.cbu,btn.id);} /* ── ADMIN ── */ function abrirLoginAdmin(){ document.getElementById('apwd').value=''; document.getElementById('apwd-err').textContent=''; document.getElementById('ovl-login').classList.add('on'); setTimeout(()=>document.getElementById('apwd').focus(),180); } function cerrarLogin(){document.getElementById('ovl-login').classList.remove('on');} function verificarAdmin(){ if(document.getElementById('apwd').value===cfg.pwd){cerrarLogin();abrirAdmin();} else document.getElementById('apwd-err').textContent='Contraseña incorrecta.'; } function abrirAdmin(){ renderAdmStats(); const cfgWa=document.getElementById('cfg-wa');if(cfgWa)cfgWa.value=cfg.wa; const cfgPwd=document.getElementById('cfg-pwd');if(cfgPwd)cfgPwd.value=''; renderAllCatalogs(); document.getElementById('adm-panel').classList.add('open'); } function cerrarAdmin(){document.getElementById('adm-panel').classList.remove('open');} function renderAdmStats(){ document.getElementById('adm-stats').innerHTML=[ {n:cfg.visitas||1,l:'Visitas'},{n:cfg.pedidos||0,l:'Pedidos'}, {n:gc.filter(x=>x.visible).length,l:'FF Gift Cards'},{n:extra.filter(x=>x.visible).length,l:'FF Paquetes'}, ].map(s=>`
${s.n}
${s.l}
`).join(''); } function guardarAdmin(){ saveAllCatData(); const _wa=document.getElementById('cfg-wa');if(_wa&&_wa.value.trim())cfg.wa=_wa.value.trim(); const _pw=document.getElementById('cfg-pwd');if(_pw&&_pw.value.trim())cfg.pwd=_pw.value.trim(); save();applyHeroImg();updateWADisplay();renderAdmStats(); notif('✓ Todos los cambios guardados'); } function notif(msg){const n=document.getElementById('notif');n.textContent=msg;n.classList.add('on');setTimeout(()=>n.classList.remove('on'),2800);} /* ── GOTO ── */ function goTo(view){ const views=['ff','roblox','juegos','mc','apex','cod','lol','val','apple','psn','xbox','giftcards','ml','about']; views.forEach(v=>{const el=document.getElementById('view-'+v);if(el)el.style.display='none';}); const navIds=['nav-ff','nav-roblox','nav-juegos','nav-mc','nav-apex','nav-cod','nav-lol','nav-val','nav-giftcards','nav-ml']; navIds.forEach(id=>{const el=document.getElementById(id);if(el)el.classList.remove('nav-active');}); const navMap={'juegos':'nav-juegos','giftcards':'nav-giftcards','ff':'nav-ff','roblox':'nav-ff','mc':'nav-ff','apex':'nav-ff','cod':'nav-ff','lol':'nav-ff','val':'nav-ff','ml':'nav-ff','apple':'nav-giftcards','psn':'nav-giftcards','xbox':'nav-giftcards','about':null}; const viewEl=document.getElementById('view-'+view);if(viewEl)viewEl.style.display='block'; const navKey=navMap[view];const activeNav=navKey?document.getElementById(navKey):null;if(activeNav)activeNav.classList.add('nav-active'); const extraLis=['nav-pagos-li','nav-como-li','nav-contacto-li']; const showExtra=!['juegos','giftcards','about'].includes(view); extraLis.forEach(id=>{const el=document.getElementById(id);if(el)el.style.display=showExtra?'':'none';}); window.scrollTo({top:0,behavior:'smooth'}); } /* ── CLOSE MODALS ── */ document.querySelectorAll('.ovl').forEach(o=>o.addEventListener('click',e=>{if(e.target===o)o.classList.remove('on');})); /* ── INIT ── */ applyHeroImg(); renderTable();renderExtra();renderRoblox();renderAllGames();renderAllGCs();renderML();updateWADisplay();