(function () { // Load the marketplace design system + page styles if (!document.querySelector('link[href*="/markets/style.css"]')) { var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = '/markets/style.css'; document.head.appendChild(l); } if (!document.getElementById('mss-css')) { var s = document.createElement('style'); s.id = 'mss-css'; s.textContent = ` /* ===== ROY4D Bidding pages (mss) - premium UI ===== */ .mkt-mss-body { background: var(--mkt-bg) !important; } #mss-app { min-height: 100dvh; min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(180deg, var(--mkt-bg) 0%, var(--mkt-bg-2) 100%); } .mkt-mss-top { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: .5rem; padding: calc(env(safe-area-inset-top, 0px) + .7rem) .85rem .7rem; background: var(--mkt-header); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); border-bottom: 1px solid var(--mkt-border); } .mkt-mss-title { flex: 1 1 auto; text-align: center; font-size: 1.1rem; font-weight: 800; color: var(--mkt-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mkt-mss-main { flex: 1 1 auto; width: 100%; max-width: 720px; margin: 0 auto; padding: 1rem .85rem calc(104px + env(safe-area-inset-bottom, 0px)); } .mkt-mss-foot { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: .6rem .85rem calc(env(safe-area-inset-bottom, 0px) + .6rem); background: var(--mkt-dock); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5); border-top: 1px solid var(--mkt-border); } #Amaka .mkt-btn { margin-bottom: 0; } .mkt-mss-checkout { position: absolute; bottom: calc(100% + .5rem); left: .75rem; right: .75rem; border-radius: 16px; } .mkt-mss-checkout:empty { display: none; } .mkt-mss-view { display: flex; flex-direction: column; gap: 1rem; } .mkt-pdct-hero { position: relative; overflow: hidden; border-radius: 24px; padding: 1.1rem 1.1rem 1rem; background: var(--mkt-card); border: 1px solid var(--mkt-border); box-shadow: var(--mkt-shadow); } .mkt-pdct-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; } .mkt-pdct-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--mkt-grad); padding: .3rem .62rem; border-radius: 999px; } .mkt-pdct-count { display: inline-flex; align-items: center; gap: .35rem; font-size: .74rem; font-weight: 700; color: var(--mkt-danger); background: var(--mkt-pink-soft); padding: .3rem .6rem; border-radius: 999px; } .mkt-pdct-name { font-size: 1.2rem; font-weight: 800; color: var(--mkt-text); margin: 0 0 .9rem; line-height: 1.25; } .mkt-pdct-imgwrap { display: grid; place-items: center; min-height: 220px; border-radius: 16px; overflow: hidden; background: var(--mkt-card-2); border: 1px solid var(--mkt-border); } .mkt-pdct-img { max-width: 100%; max-height: 280px; object-fit: contain; } .mkt-pdct-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .9rem; } .mkt-pdct-chip { display: flex; flex-direction: column; gap: .15rem; padding: .6rem .7rem; border-radius: 14px; background: var(--mkt-card-2); border: 1px solid var(--mkt-border); text-align: center; } .mkt-pdct-chip span { font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mkt-muted); } .mkt-pdct-chip b { font-size: .95rem; font-weight: 800; color: var(--mkt-text); } .mkt-pdct-chip b s { color: var(--mkt-muted); } .mkt-pdct-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: .8rem; } .mkt-pill { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; padding: .55rem .4rem; border-radius: 12px; border: 1px solid var(--mkt-border); background: var(--mkt-card-2); color: var(--mkt-text); font-size: .78rem; font-weight: 700; cursor: pointer; transition: transform var(--mkt-transition), border-color var(--mkt-transition), background var(--mkt-transition); } .mkt-pill:hover { border-color: var(--mkt-accent); background: var(--mkt-accent-soft); } .mkt-pill:active { transform: scale(.96); } .mkt-bids { border-radius: 20px; overflow: hidden; background: var(--mkt-card); border: 1px solid var(--mkt-border); box-shadow: var(--mkt-shadow); } .mkt-bids-head { display: flex; align-items: center; justify-content: space-between; padding: .85rem 1rem; background: var(--mkt-card-2); border-bottom: 1px solid var(--mkt-border); } .mkt-bids-head h3 { font-size: 1rem; font-weight: 800; margin: 0; color: var(--mkt-text); } .mkt-bids-live { display: inline-flex; align-items: center; gap: .35rem; font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--mkt-green); } .mkt-bids-live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--mkt-green); animation: mktPulse 1.6s ease-in-out infinite; } .mkt-bids-area { padding: .4rem .6rem .6rem; min-height: 80px; } .mkt-bids-empty { padding: 1.5rem 1rem; text-align: center; color: var(--mkt-muted); font-size: .88rem; } #hedex { list-style: none; margin: 0; padding: 0; } #hedex .mkt-bid { display: flex; align-items: center; gap: .6rem; padding: .65rem .8rem; margin-bottom: .45rem; border: 1px solid var(--mkt-border); border-radius: 12px; background: var(--mkt-card-2); color: var(--mkt-text); font-size: .85rem; animation: mktFadeUp .3s ease both; } .mkt-bid-ava { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 50%; font-size: .8rem; font-weight: 800; color: #fff; background: var(--mkt-grad); } .mkt-bid-name { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; } .mkt-bid-name b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mkt-bid-name code { align-self: flex-start; background: var(--mkt-accent-soft); color: var(--mkt-accent); padding: .05rem .4rem; border-radius: 6px; font-size: .68rem; margin-top: .1rem; } .mkt-bid-ref { flex: none; font-size: .7rem; font-weight: 700; color: var(--mkt-muted); background: var(--mkt-card); border: 1px solid var(--mkt-border); padding: .25rem .5rem; border-radius: 8px; } @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } } `; document.head.appendChild(s); } function applyTheme() { try { document.documentElement.dataset.mktTheme = (window.theme === 'dark') ? 'dark' : 'light'; } catch (e) {} } applyTheme(); document.addEventListener('DOMContentLoaded', applyTheme); if (window.themeListeners) window.themeListeners['mktMss'] = applyTheme; })(); class Mission { constructor(args = null) { this.args = args; this.config = { products: { tv: { dn: 'Smart TV\'s', bp: 100, gpd: 10 }, ha: { dn: 'Home Appliances', bp: 150, gpd: 12 }, as: { dn: 'Audio Systems', bp: 100, gpd: 50 }, lp: { dn: 'Laptops', bp: 150, gpd: 100 }, sp: { dn: 'SmartPhones', bp: 150, gpd: 20 } } } this.create(); this.spinner = ``; self.onnetrestoreEvents = self.onnetrestoreEvents ?? []; this.cpdet = {} } init(c) { try { this.config = { ...this.config, ...c } } catch { console.log('Invalid initialization object'); } this.start(); } sharePdct() { Client.share({ title: mss.pdct?.pname ?? currPdct.dn, text: `@${CALC.parseMoney(currPdct.bp, true)}/-`, url: `${AC.env}${location.pathname.slice(1)}?venture=[0]` }); sessionStorage.exportImage = mss.pdct?.imgs[0] ?? ''; } create() { let x = `
${ref.MSISDN}
#${bid.id}