(function () { function typoCssVarsForEl(typo, prefix, el) { if (!typo || typeof typo !== 'object') return; var m = { family:'font-family', weight:'font-weight', style:'font-style', transform:'text-transform', decoration:'text-decoration', sizeDesktop:'font-size-d', sizeTablet:'font-size-t', sizeMobile:'font-size-m', sizeUnit:'font-size-unit', lineHeightDesktop:'line-height-d', lineHeightTablet:'line-height-t', lineHeightMobile:'line-height-m', lineHeightUnit:'line-height-unit', letterSpacingDesktop:'letter-spacing-d', letterSpacingTablet:'letter-spacing-t', letterSpacingMobile:'letter-spacing-m', letterSpacingUnit:'letter-spacing-unit', wordSpacingDesktop:'word-spacing-d', wordSpacingTablet:'word-spacing-t', wordSpacingMobile:'word-spacing-m', wordSpacingUnit:'word-spacing-unit' }; var su = typo.sizeUnit || 'px', lu = typo.lineHeightUnit || '', lsu = typo.letterSpacingUnit || 'px', wu = typo.wordSpacingUnit || 'px'; for (var k in m) { if (typo[k] !== undefined && typo[k] !== '') { var v = typo[k], css = m[k]; if (css === 'font-size-d' || css === 'font-size-t' || css === 'font-size-m') v = v + su; else if ((css === 'line-height-d' || css === 'line-height-t' || css === 'line-height-m') && lu) v = v + lu; else if (css === 'letter-spacing-d' || css === 'letter-spacing-t' || css === 'letter-spacing-m') v = v + lsu; else if (css === 'word-spacing-d' || css === 'word-spacing-t' || css === 'word-spacing-m') v = v + wu; el.style.setProperty(prefix + css, '' + v); } } } var VERDICTS = { 'true': { icon: 'โ ', label: 'True', color: '#15803d', bg: '#f0fdf4', border: '#86efac', scaleIdx: 0 }, 'mostly-true': { icon: '๐ข', label: 'Mostly True', color: '#166534', bg: '#dcfce7', border: '#4ade80', scaleIdx: 1 }, 'mixed': { icon: '๐ก', label: 'Mixed', color: '#92400e', bg: '#fffbeb', border: '#fcd34d', scaleIdx: 2 }, 'mostly-false': { icon: '๐ ', label: 'Mostly False', color: '#9a3412', bg: '#fff7ed', border: '#fdba74', scaleIdx: 3 }, 'false': { icon: 'โ', label: 'False', color: '#991b1b', bg: '#fef2f2', border: '#fca5a5', scaleIdx: 4 }, 'unverified': { icon: 'โ', label: 'Unverified', color: '#1e3a5f', bg: '#eff6ff', border: '#93c5fd', scaleIdx: 2 }, 'misleading': { icon: 'โ ๏ธ', label: 'Misleading', color: '#713f12', bg: '#fefce8', border: '#fde047', scaleIdx: 3 }, 'satire': { icon: '๐ญ', label: 'Satire', color: '#4c1d95', bg: '#f5f3ff', border: '#c4b5fd', scaleIdx: -1 } }; var SCALE_COLORS = ['#15803d', '#166534', '#a16207', '#9a3412', '#991b1b']; function init() { document.querySelectorAll('.bkbg-fck-app').forEach(function (el) { if (el.dataset.rendered) return; el.dataset.rendered = '1'; var opts; try { opts = JSON.parse(el.dataset.opts || '{}'); } catch (e) { opts = {}; } var o = Object.assign({ claim: '', verdict: 'mostly-false', explanation: '', sources: [], showSources: true, showRatingScale: true, showReviewer: false, reviewerName: '', reviewerTitle: '', reviewDate: '', openInNewTab: true, bgColor: '#ffffff', borderColor: '#e2e8f0', claimBg: '#f8fafc', claimColor: '#1e293b', labelColor: '#64748b', explanationColor: '#374151', sourceTitleColor: '#374151', sourceLinkColor: '#3b82f6', reviewerColor: '#6b7280', borderRadius: 10, paddingTop: 0, paddingBottom: 0 }, opts); var v = VERDICTS[o.verdict] || VERDICTS['mostly-false']; var target = o.openInNewTab ? '_blank' : '_self'; var outer = document.createElement('div'); outer.style.cssText = 'padding:' + o.paddingTop + 'px 0 ' + o.paddingBottom + 'px;'; var wrap = document.createElement('div'); wrap.className = 'bkbg-fck-wrap'; wrap.style.cssText = 'background:' + o.bgColor + ';border:1px solid ' + o.borderColor + ';border-radius:' + o.borderRadius + 'px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.06);box-sizing:border-box;font-family:inherit;'; typoCssVarsForEl(o.typoClaim || {}, '--bkbg-fck-cl-', wrap); typoCssVarsForEl(o.typoExplanation || {}, '--bkbg-fck-ex-', wrap); /* Verdict banner */ var banner = document.createElement('div'); banner.className = 'bkbg-fck-banner'; banner.style.cssText = 'background:' + v.bg + ';border-bottom:1px solid ' + v.border + ';padding:16px 20px;display:flex;align-items:center;gap:14px;'; banner.innerHTML = '' + '
' + o.claim + '
'; wrap.appendChild(claimSec); } /* Analysis */ if (o.explanation) { var hasSources = o.showSources && o.sources && o.sources.length > 0; var expSec = document.createElement('div'); expSec.className = 'bkbg-fck-explanation'; expSec.style.cssText = 'padding:16px 20px;' + (hasSources ? 'border-bottom:1px solid ' + o.borderColor + ';' : ''); expSec.innerHTML = '